@dxos/network-manager 0.8.4-main.fffef41 → 0.8.4-staging.60fe92afc8
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/LICENSE +102 -5
- package/README.md +1 -1
- package/dist/lib/browser/{chunk-E3P563GT.mjs → chunk-ERB3AQAF.mjs} +424 -1897
- package/dist/lib/browser/chunk-ERB3AQAF.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +198 -4
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +10 -34
- package/dist/lib/browser/testing/index.mjs.map +3 -3
- package/dist/lib/browser/transport/tcp/index.mjs +2 -33
- package/dist/lib/browser/transport/tcp/index.mjs.map +4 -4
- package/dist/lib/browser/transport/tcp/tcp-transport.browser.mjs +36 -0
- package/dist/lib/browser/transport/tcp/tcp-transport.browser.mjs.map +7 -0
- package/dist/lib/browser/transport/tcp/tcp-transport.mjs +125 -0
- package/dist/lib/browser/transport/tcp/tcp-transport.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-PKBROUZV.mjs → chunk-KYLPLEZQ.mjs} +424 -1897
- package/dist/lib/node-esm/chunk-KYLPLEZQ.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +198 -4
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +10 -34
- package/dist/lib/node-esm/testing/index.mjs.map +3 -3
- package/dist/lib/node-esm/transport/tcp/index.mjs +2 -157
- package/dist/lib/node-esm/transport/tcp/index.mjs.map +4 -4
- package/dist/lib/node-esm/transport/tcp/tcp-transport.browser.mjs +36 -0
- package/dist/lib/node-esm/transport/tcp/tcp-transport.browser.mjs.map +7 -0
- package/dist/lib/node-esm/transport/tcp/tcp-transport.mjs +125 -0
- package/dist/lib/node-esm/transport/tcp/tcp-transport.mjs.map +7 -0
- package/dist/types/src/connection-log.d.ts.map +1 -1
- package/dist/types/src/network-manager.d.ts +6 -6
- package/dist/types/src/network-manager.d.ts.map +1 -1
- package/dist/types/src/signal/ice.d.ts.map +1 -1
- package/dist/types/src/signal/signal-connection.d.ts +3 -2
- package/dist/types/src/signal/signal-connection.d.ts.map +1 -1
- package/dist/types/src/signal/signal-messenger.d.ts +3 -2
- package/dist/types/src/signal/signal-messenger.d.ts.map +1 -1
- package/dist/types/src/signal/swarm-messenger.d.ts +7 -7
- package/dist/types/src/signal/swarm-messenger.d.ts.map +1 -1
- package/dist/types/src/swarm/connection-limiter.d.ts.map +1 -1
- package/dist/types/src/swarm/connection.d.ts +2 -2
- package/dist/types/src/swarm/connection.d.ts.map +1 -1
- package/dist/types/src/swarm/peer.d.ts +4 -3
- package/dist/types/src/swarm/peer.d.ts.map +1 -1
- package/dist/types/src/swarm/swarm-mapper.d.ts.map +1 -1
- package/dist/types/src/swarm/swarm.d.ts +3 -5
- package/dist/types/src/swarm/swarm.d.ts.map +1 -1
- package/dist/types/src/testing/test-builder.d.ts.map +1 -1
- package/dist/types/src/testing/test-wire-protocol.d.ts.map +1 -1
- package/dist/types/src/tests/basic-test-suite.d.ts.map +1 -1
- package/dist/types/src/tests/property-test-suite.d.ts.map +1 -1
- package/dist/types/src/tests/utils.d.ts.map +1 -1
- package/dist/types/src/topology/fully-connected-topology.d.ts.map +1 -1
- package/dist/types/src/topology/mmst-topology.d.ts.map +1 -1
- package/dist/types/src/topology/star-topology.d.ts.map +1 -1
- package/dist/types/src/transport/memory-transport.d.ts.map +1 -1
- package/dist/types/src/transport/tcp/index.d.ts +1 -1
- package/dist/types/src/transport/tcp/index.d.ts.map +1 -1
- package/dist/types/src/transport/tcp/tcp-transport.browser.d.ts.map +1 -1
- package/dist/types/src/transport/tcp/tcp-transport.d.ts.map +1 -1
- package/dist/types/src/transport/webrtc/rtc-peer-connection.d.ts +4 -4
- package/dist/types/src/transport/webrtc/rtc-peer-connection.d.ts.map +1 -1
- package/dist/types/src/transport/webrtc/rtc-transport-channel.d.ts.map +1 -1
- package/dist/types/src/transport/webrtc/rtc-transport-factory.d.ts.map +1 -1
- package/dist/types/src/transport/webrtc/rtc-transport-proxy.d.ts.map +1 -1
- package/dist/types/src/transport/webrtc/rtc-transport-service.d.ts.map +1 -1
- package/dist/types/src/transport/webrtc/rtc-transport-stats.d.ts.map +1 -1
- package/dist/types/src/transport/webrtc/test-utils.d.ts.map +1 -1
- package/dist/types/src/transport/webrtc/utils.d.ts.map +1 -1
- package/dist/types/src/wire-protocol.d.ts +5 -5
- package/dist/types/src/wire-protocol.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +33 -33
- package/src/network-manager.ts +24 -22
- package/src/signal/integration.node.test.ts +11 -10
- package/src/signal/signal-connection.ts +3 -2
- package/src/signal/signal-messenger.ts +3 -2
- package/src/signal/swarm-messenger.node.test.ts +25 -24
- package/src/signal/swarm-messenger.ts +65 -55
- package/src/swarm/connection.test.ts +6 -7
- package/src/swarm/connection.ts +15 -22
- package/src/swarm/peer.ts +7 -7
- package/src/swarm/swarm.test.ts +2 -3
- package/src/swarm/swarm.ts +10 -17
- package/src/testing/test-builder.ts +4 -4
- package/src/tests/basic-test-suite.ts +0 -1
- package/src/tests/memory-transport.test.ts +0 -2
- package/src/tests/property-test-suite.ts +4 -3
- package/src/tests/tcp-transport.node.test.ts +0 -2
- package/src/tests/webrtc-transport.test.ts +0 -1
- package/src/transport/tcp/index.ts +1 -1
- package/src/transport/webrtc/rtc-peer-connection.ts +1 -2
- package/src/transport/webrtc/rtc-transport-channel.test.ts +0 -2
- package/src/transport/webrtc/rtc-transport-channel.ts +1 -2
- package/src/transport/webrtc/rtc-transport-factory.ts +0 -1
- package/src/transport/webrtc/rtc-transport-proxy.test.ts +0 -2
- package/src/transport/webrtc/rtc-transport-proxy.ts +6 -4
- package/src/transport/webrtc/rtc-transport-service.ts +0 -1
- package/src/transport/webrtc/rtc-transport.test.ts +0 -1
- package/src/wire-protocol.ts +6 -6
- package/dist/lib/browser/chunk-E3P563GT.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PKBROUZV.mjs.map +0 -7
|
@@ -7,22 +7,216 @@ import {
|
|
|
7
7
|
EventType,
|
|
8
8
|
FullyConnectedTopology,
|
|
9
9
|
MAX_CONCURRENT_INITIATING_CONNECTIONS,
|
|
10
|
-
MMSTTopology,
|
|
11
10
|
MemoryTransport,
|
|
12
11
|
MemoryTransportFactory,
|
|
13
12
|
RtcTransportProxy,
|
|
14
13
|
RtcTransportProxyFactory,
|
|
15
14
|
RtcTransportService,
|
|
16
|
-
StarTopology,
|
|
17
15
|
Swarm,
|
|
18
16
|
SwarmMapper,
|
|
19
17
|
SwarmMessenger,
|
|
20
18
|
SwarmNetworkManager,
|
|
21
19
|
TransportKind,
|
|
22
|
-
createIceProvider,
|
|
23
20
|
createRtcTransportFactory,
|
|
24
21
|
createTeleportProtocolFactory
|
|
25
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-ERB3AQAF.mjs";
|
|
23
|
+
|
|
24
|
+
// src/signal/ice.ts
|
|
25
|
+
import { asyncTimeout } from "@dxos/async";
|
|
26
|
+
import { log } from "@dxos/log";
|
|
27
|
+
import { isNonNullable } from "@dxos/util";
|
|
28
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/core/mesh/network-manager/src/signal/ice.ts";
|
|
29
|
+
var createIceProvider = (iceProviders) => {
|
|
30
|
+
let cachedIceServers;
|
|
31
|
+
return {
|
|
32
|
+
getIceServers: async () => {
|
|
33
|
+
if (cachedIceServers) {
|
|
34
|
+
return cachedIceServers;
|
|
35
|
+
}
|
|
36
|
+
cachedIceServers = (await Promise.all(iceProviders.map(({ urls }) => asyncTimeout(fetch(urls, {
|
|
37
|
+
method: "GET"
|
|
38
|
+
}), 1e4).then((response) => response.json()).catch((err) => {
|
|
39
|
+
const isDev = typeof window !== "undefined" && window.location.href.includes("localhost");
|
|
40
|
+
if (!isDev) {
|
|
41
|
+
log.error("Failed to fetch ICE servers from provider", {
|
|
42
|
+
urls,
|
|
43
|
+
err
|
|
44
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 19, S: void 0 });
|
|
45
|
+
}
|
|
46
|
+
})))).filter(isNonNullable).map(({ iceServers }) => iceServers).flat();
|
|
47
|
+
return cachedIceServers;
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
// src/topology/mmst-topology.ts
|
|
53
|
+
import { invariant } from "@dxos/invariant";
|
|
54
|
+
import { log as log2 } from "@dxos/log";
|
|
55
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/core/mesh/network-manager/src/topology/mmst-topology.ts";
|
|
56
|
+
var MIN_UPDATE_INTERVAL = 1e3 * 10;
|
|
57
|
+
var MAX_CHANGES_PER_UPDATE = 1;
|
|
58
|
+
var MMSTTopology = class {
|
|
59
|
+
_originateConnections;
|
|
60
|
+
_maxPeers;
|
|
61
|
+
_sampleSize;
|
|
62
|
+
_controller;
|
|
63
|
+
_sampleCollected = false;
|
|
64
|
+
_lastAction = /* @__PURE__ */ new Date(0);
|
|
65
|
+
constructor({ originateConnections = 2, maxPeers = 4, sampleSize = 10 } = {}) {
|
|
66
|
+
this._originateConnections = originateConnections;
|
|
67
|
+
this._maxPeers = maxPeers;
|
|
68
|
+
this._sampleSize = sampleSize;
|
|
69
|
+
}
|
|
70
|
+
init(controller) {
|
|
71
|
+
invariant(!this._controller, "Already initialized", { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 21, S: this, A: ["!this._controller", "'Already initialized'"] });
|
|
72
|
+
this._controller = controller;
|
|
73
|
+
}
|
|
74
|
+
update() {
|
|
75
|
+
invariant(this._controller, "Not initialized", { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 25, S: this, A: ["this._controller", "'Not initialized'"] });
|
|
76
|
+
const { connected, candidates } = this._controller.getState();
|
|
77
|
+
if (this._sampleCollected || connected.length > this._maxPeers || candidates.length > 0) {
|
|
78
|
+
log2("Running the algorithm.", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 29, S: this });
|
|
79
|
+
this._sampleCollected = true;
|
|
80
|
+
this._runAlgorithm();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
forceUpdate() {
|
|
84
|
+
this._lastAction = /* @__PURE__ */ new Date(0);
|
|
85
|
+
this.update();
|
|
86
|
+
}
|
|
87
|
+
async onOffer(peer) {
|
|
88
|
+
invariant(this._controller, "Not initialized", { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 39, S: this, A: ["this._controller", "'Not initialized'"] });
|
|
89
|
+
const { connected } = this._controller.getState();
|
|
90
|
+
const accept = connected.length < this._maxPeers;
|
|
91
|
+
log2(`Offer ${peer} accept=${accept}`, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 42, S: this });
|
|
92
|
+
return accept;
|
|
93
|
+
}
|
|
94
|
+
async destroy() {
|
|
95
|
+
}
|
|
96
|
+
_runAlgorithm() {
|
|
97
|
+
invariant(this._controller, "Not initialized", { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 49, S: this, A: ["this._controller", "'Not initialized'"] });
|
|
98
|
+
const { connected, candidates, ownPeerId } = this._controller.getState();
|
|
99
|
+
if (connected.length > this._maxPeers) {
|
|
100
|
+
log2(`disconnect ${connected.length - this._maxPeers} peers.`, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 54, S: this });
|
|
101
|
+
const sorted = sortByXorDistance(connected, ownPeerId).reverse().slice(0, this._maxPeers - connected.length);
|
|
102
|
+
invariant(sorted.length === 0, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 56, S: this, A: ["sorted.length === 0", ""] });
|
|
103
|
+
if (sorted.length > MAX_CHANGES_PER_UPDATE) {
|
|
104
|
+
log2(`want to disconnect ${sorted.length} peers but limited to ${MAX_CHANGES_PER_UPDATE}`, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 58, S: this });
|
|
105
|
+
}
|
|
106
|
+
if (Date.now() - this._lastAction.getTime() > MIN_UPDATE_INTERVAL) {
|
|
107
|
+
for (const peer of sorted.slice(0, MAX_CHANGES_PER_UPDATE)) {
|
|
108
|
+
log2(`Disconnect ${peer}.`, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 62, S: this });
|
|
109
|
+
this._controller.disconnect(peer);
|
|
110
|
+
}
|
|
111
|
+
this._lastAction = /* @__PURE__ */ new Date();
|
|
112
|
+
} else {
|
|
113
|
+
log2("rate limited disconnect", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 67, S: this });
|
|
114
|
+
}
|
|
115
|
+
} else if (connected.length < this._originateConnections) {
|
|
116
|
+
log2(`connect ${this._originateConnections - connected.length} peers.`, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 71, S: this });
|
|
117
|
+
const sample = candidates.sort(() => Math.random() - 0.5).slice(0, this._sampleSize);
|
|
118
|
+
const sorted = sortByXorDistance(sample, ownPeerId).slice(0, this._originateConnections - connected.length);
|
|
119
|
+
if (sorted.length > MAX_CHANGES_PER_UPDATE) {
|
|
120
|
+
log2(`want to connect ${sorted.length} peers but limited to ${MAX_CHANGES_PER_UPDATE}`, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 75, S: this });
|
|
121
|
+
}
|
|
122
|
+
if (Date.now() - this._lastAction.getTime() > MIN_UPDATE_INTERVAL) {
|
|
123
|
+
for (const peer of sorted.slice(0, MAX_CHANGES_PER_UPDATE)) {
|
|
124
|
+
log2(`Connect ${peer}.`, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 79, S: this });
|
|
125
|
+
this._controller.connect(peer);
|
|
126
|
+
}
|
|
127
|
+
this._lastAction = /* @__PURE__ */ new Date();
|
|
128
|
+
} else {
|
|
129
|
+
log2("rate limited connect", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 84, S: this });
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
toString() {
|
|
134
|
+
return "MMSTTopology";
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
var sortByXorDistance = (keys, reference) => {
|
|
138
|
+
const sorted = keys.sort((a, b) => {
|
|
139
|
+
return compareXor(distXor(a.asBuffer(), reference.asBuffer()), distXor(b.asBuffer(), reference.asBuffer()));
|
|
140
|
+
});
|
|
141
|
+
log2("Sorted keys", {
|
|
142
|
+
keys,
|
|
143
|
+
reference,
|
|
144
|
+
sorted
|
|
145
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 96, S: void 0 });
|
|
146
|
+
return sorted;
|
|
147
|
+
};
|
|
148
|
+
var distXor = (a, b) => {
|
|
149
|
+
const maxLength = Math.max(a.length, b.length);
|
|
150
|
+
const result = Buffer.allocUnsafe(maxLength);
|
|
151
|
+
for (let i = 0; i < maxLength; i++) {
|
|
152
|
+
result[i] = (a[i] || 0) ^ (b[i] || 0);
|
|
153
|
+
}
|
|
154
|
+
return result;
|
|
155
|
+
};
|
|
156
|
+
var compareXor = (a, b) => {
|
|
157
|
+
const maxLength = Math.max(a.length, b.length);
|
|
158
|
+
for (let i = 0; i < maxLength; i++) {
|
|
159
|
+
if ((a[i] || 0) === (b[i] || 0)) {
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
return (a[i] || 0) < (b[i] || 0) ? -1 : 1;
|
|
163
|
+
}
|
|
164
|
+
return 0;
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
// src/topology/star-topology.ts
|
|
168
|
+
import { invariant as invariant2 } from "@dxos/invariant";
|
|
169
|
+
import { log as log3 } from "@dxos/log";
|
|
170
|
+
var __dxlog_file3 = "/__w/dxos/dxos/packages/core/mesh/network-manager/src/topology/star-topology.ts";
|
|
171
|
+
var StarTopology = class {
|
|
172
|
+
_centralPeer;
|
|
173
|
+
_controller;
|
|
174
|
+
constructor(_centralPeer) {
|
|
175
|
+
this._centralPeer = _centralPeer;
|
|
176
|
+
}
|
|
177
|
+
toString() {
|
|
178
|
+
return `StarTopology(${this._centralPeer.truncate()})`;
|
|
179
|
+
}
|
|
180
|
+
init(controller) {
|
|
181
|
+
invariant2(!this._controller, "Already initialized.", { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 16, S: this, A: ["!this._controller", "'Already initialized.'"] });
|
|
182
|
+
this._controller = controller;
|
|
183
|
+
}
|
|
184
|
+
update() {
|
|
185
|
+
invariant2(this._controller, "Not initialized.", { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 20, S: this, A: ["this._controller", "'Not initialized.'"] });
|
|
186
|
+
const { candidates, connected, ownPeerId } = this._controller.getState();
|
|
187
|
+
if (!ownPeerId.equals(this._centralPeer)) {
|
|
188
|
+
log3("leaf peer dropping all connections apart from central peer.", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 23, S: this });
|
|
189
|
+
for (const peer of connected) {
|
|
190
|
+
if (!peer.equals(this._centralPeer)) {
|
|
191
|
+
log3("dropping connection", {
|
|
192
|
+
peer
|
|
193
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 27, S: this });
|
|
194
|
+
this._controller.disconnect(peer);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
for (const peer of candidates) {
|
|
199
|
+
if (peer.equals(this._centralPeer) || ownPeerId.equals(this._centralPeer)) {
|
|
200
|
+
log3("connecting to peer", {
|
|
201
|
+
peer
|
|
202
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 37, S: this });
|
|
203
|
+
this._controller.connect(peer);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
async onOffer(peer) {
|
|
208
|
+
invariant2(this._controller, "Not initialized.", { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 45, S: this, A: ["this._controller", "'Not initialized.'"] });
|
|
209
|
+
const { ownPeerId } = this._controller.getState();
|
|
210
|
+
log3("offer", {
|
|
211
|
+
peer,
|
|
212
|
+
isCentral: peer.equals(this._centralPeer),
|
|
213
|
+
isSelfCentral: ownPeerId.equals(this._centralPeer)
|
|
214
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 47, S: this });
|
|
215
|
+
return ownPeerId.equals(this._centralPeer) || peer.equals(this._centralPeer);
|
|
216
|
+
}
|
|
217
|
+
async destroy() {
|
|
218
|
+
}
|
|
219
|
+
};
|
|
26
220
|
export {
|
|
27
221
|
Connection,
|
|
28
222
|
ConnectionLimiter,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [],
|
|
4
|
-
"sourcesContent": [],
|
|
5
|
-
"mappings": "",
|
|
6
|
-
"names": []
|
|
3
|
+
"sources": ["../../../src/signal/ice.ts", "../../../src/topology/mmst-topology.ts", "../../../src/topology/star-topology.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { asyncTimeout } from '@dxos/async';\nimport { log } from '@dxos/log';\nimport { type Runtime } from '@dxos/protocols/proto/dxos/config';\nimport { isNonNullable } from '@dxos/util';\n\nexport interface IceProvider {\n getIceServers: () => Promise<RTCIceServer[]>;\n}\n\nexport const createIceProvider = (iceProviders: Runtime.Services.IceProvider[]): IceProvider => {\n let cachedIceServers: RTCIceServer[];\n return {\n getIceServers: async () => {\n if (cachedIceServers) {\n return cachedIceServers;\n }\n\n cachedIceServers = (\n await Promise.all(\n iceProviders.map(({ urls }) =>\n asyncTimeout(fetch(urls, { method: 'GET' }), 10_000)\n .then((response) => response.json())\n .catch((err) => {\n const isDev = typeof window !== 'undefined' && window.location.href.includes('localhost');\n if (!isDev) {\n log.error('Failed to fetch ICE servers from provider', { urls, err });\n }\n }),\n ),\n )\n )\n .filter(isNonNullable)\n .map(({ iceServers }: { iceServers: RTCIceServer[] }) => iceServers)\n .flat();\n\n return cachedIceServers;\n },\n };\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\nimport { invariant } from '@dxos/invariant';\nimport { type PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\n\nimport { type SwarmController, type Topology } from './topology';\n\nconst MIN_UPDATE_INTERVAL = 1000 * 10;\nconst MAX_CHANGES_PER_UPDATE = 1;\n\nexport interface MMSTTopologyOptions {\n /**\n * Number of connections the peer will originate by itself.\n */\n originateConnections?: number;\n\n /**\n * Maximum number of connections allowed, all other connections will be dropped.\n */\n maxPeers?: number;\n\n /**\n * Size of random sample from which peer candidates are selected.\n */\n sampleSize?: number;\n}\n\nexport class MMSTTopology implements Topology {\n private readonly _originateConnections: number;\n private readonly _maxPeers: number;\n private readonly _sampleSize: number;\n\n private _controller?: SwarmController;\n\n private _sampleCollected = false;\n\n private _lastAction = new Date(0);\n\n constructor({ originateConnections = 2, maxPeers = 4, sampleSize = 10 }: MMSTTopologyOptions = {}) {\n this._originateConnections = originateConnections;\n this._maxPeers = maxPeers;\n this._sampleSize = sampleSize;\n }\n\n init(controller: SwarmController): void {\n invariant(!this._controller, 'Already initialized');\n this._controller = controller;\n }\n\n update(): void {\n invariant(this._controller, 'Not initialized');\n const { connected, candidates } = this._controller.getState();\n // Run the algorithms if we have first candidates, ran it before, or have more connections than needed.\n if (this._sampleCollected || connected.length > this._maxPeers || candidates.length > 0) {\n log('Running the algorithm.');\n this._sampleCollected = true;\n this._runAlgorithm();\n }\n }\n\n forceUpdate(): void {\n this._lastAction = new Date(0);\n this.update();\n }\n\n async onOffer(peer: PublicKey): Promise<boolean> {\n invariant(this._controller, 'Not initialized');\n const { connected } = this._controller.getState();\n const accept = connected.length < this._maxPeers;\n log(`Offer ${peer} accept=${accept}`);\n return accept;\n }\n\n async destroy(): Promise<void> {\n // Nothing to do.\n }\n\n private _runAlgorithm(): void {\n invariant(this._controller, 'Not initialized');\n const { connected, candidates, ownPeerId } = this._controller.getState();\n\n // TODO(nf): does this rate limiting/flap dampening logic belong here or in the SwarmController?\n if (connected.length > this._maxPeers) {\n // Disconnect extra peers.\n log(`disconnect ${connected.length - this._maxPeers} peers.`);\n const sorted = sortByXorDistance(connected, ownPeerId)\n .reverse()\n .slice(0, this._maxPeers - connected.length);\n invariant(sorted.length === 0);\n\n if (sorted.length > MAX_CHANGES_PER_UPDATE) {\n log(`want to disconnect ${sorted.length} peers but limited to ${MAX_CHANGES_PER_UPDATE}`);\n }\n\n if (Date.now() - this._lastAction.getTime() > MIN_UPDATE_INTERVAL) {\n for (const peer of sorted.slice(0, MAX_CHANGES_PER_UPDATE)) {\n log(`Disconnect ${peer}.`);\n this._controller.disconnect(peer);\n }\n this._lastAction = new Date();\n } else {\n log('rate limited disconnect');\n }\n } else if (connected.length < this._originateConnections) {\n // Connect new peers to reach desired quota.\n log(`connect ${this._originateConnections - connected.length} peers.`);\n const sample = candidates.sort(() => Math.random() - 0.5).slice(0, this._sampleSize);\n const sorted = sortByXorDistance(sample, ownPeerId).slice(0, this._originateConnections - connected.length);\n\n if (sorted.length > MAX_CHANGES_PER_UPDATE) {\n log(`want to connect ${sorted.length} peers but limited to ${MAX_CHANGES_PER_UPDATE}`);\n }\n if (Date.now() - this._lastAction.getTime() > MIN_UPDATE_INTERVAL) {\n for (const peer of sorted.slice(0, MAX_CHANGES_PER_UPDATE)) {\n log(`Connect ${peer}.`);\n this._controller.connect(peer);\n }\n this._lastAction = new Date();\n } else {\n log('rate limited connect');\n }\n }\n }\n\n toString(): string {\n return 'MMSTTopology';\n }\n}\n\nconst sortByXorDistance = (keys: PublicKey[], reference: PublicKey): PublicKey[] => {\n const sorted = keys.sort((a, b) => {\n return compareXor(distXor(a.asBuffer(), reference.asBuffer()), distXor(b.asBuffer(), reference.asBuffer()));\n });\n log('Sorted keys', { keys, reference, sorted });\n return sorted;\n};\n\nconst distXor = (a: Buffer, b: Buffer) => {\n const maxLength = Math.max(a.length, b.length);\n const result = Buffer.allocUnsafe(maxLength);\n for (let i = 0; i < maxLength; i++) {\n result[i] = (a[i] || 0) ^ (b[i] || 0);\n }\n return result;\n};\n\nconst compareXor = (a: Buffer, b: Buffer) => {\n const maxLength = Math.max(a.length, b.length);\n for (let i = 0; i < maxLength; i++) {\n if ((a[i] || 0) === (b[i] || 0)) {\n continue;\n }\n return (a[i] || 0) < (b[i] || 0) ? -1 : 1;\n }\n return 0;\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\nimport { invariant } from '@dxos/invariant';\nimport { type PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\n\nimport { type SwarmController, type Topology } from './topology';\n\nexport class StarTopology implements Topology {\n private _controller?: SwarmController;\n\n constructor(private readonly _centralPeer: PublicKey) {}\n\n toString(): string {\n return `StarTopology(${this._centralPeer.truncate()})`;\n }\n\n init(controller: SwarmController): void {\n invariant(!this._controller, 'Already initialized.');\n this._controller = controller;\n }\n\n update(): void {\n invariant(this._controller, 'Not initialized.');\n const { candidates, connected, ownPeerId } = this._controller.getState();\n if (!ownPeerId.equals(this._centralPeer)) {\n log('leaf peer dropping all connections apart from central peer.');\n\n // Drop all connections other than central peer.\n for (const peer of connected) {\n if (!peer.equals(this._centralPeer)) {\n log('dropping connection', { peer });\n this._controller.disconnect(peer);\n }\n }\n }\n\n for (const peer of candidates) {\n // Connect to central peer.\n if (peer.equals(this._centralPeer) || ownPeerId.equals(this._centralPeer)) {\n log('connecting to peer', { peer });\n this._controller.connect(peer);\n }\n }\n }\n\n async onOffer(peer: PublicKey): Promise<boolean> {\n invariant(this._controller, 'Not initialized.');\n const { ownPeerId } = this._controller.getState();\n log('offer', {\n peer,\n isCentral: peer.equals(this._centralPeer),\n isSelfCentral: ownPeerId.equals(this._centralPeer),\n });\n return ownPeerId.equals(this._centralPeer) || peer.equals(this._centralPeer);\n }\n\n async destroy(): Promise<void> {\n // Nothing to do.\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["asyncTimeout", "log", "isNonNullable", "createIceProvider", "getIceServers", "cachedIceServers", "response", "catch", "err", "isDev", "urls", "filter", "iceServers", "invariant", "log", "__dxlog_file", "MIN_UPDATE_INTERVAL", "MMSTTopology", "_originateConnections", "_maxPeers", "_sampleSize", "_controller", "_sampleCollected", "_lastAction", "originateConnections", "maxPeers", "sampleSize", "init", "controller", "update", "connected", "length", "forceUpdate", "onOffer", "peer", "accept", "destroy", "sorted", "MAX_CHANGES_PER_UPDATE", "Date", "getTime", "disconnect", "sortByXorDistance", "ownPeerId", "slice", "connect", "toString", "distXor", "reference", "result", "Buffer", "i", "maxLength", "compareXor", "invariant", "log", "__dxlog_file", "StarTopology", "_controller", "toString", "init", "controller", "update", "ownPeerId", "equals", "_centralPeer", "peer", "isCentral", "isSelfCentral", "destroy"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/swarm/connection.ts":{"bytes":55115,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","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}],"format":"esm"},"src/signal/ice.ts":{"bytes":4538,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/signal/swarm-messenger.ts":{"bytes":22177,"imports":[{"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","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/signal/index.ts":{"bytes":678,"imports":[{"path":"src/signal/ice.ts","kind":"import-statement","original":"./ice"},{"path":"src/signal/swarm-messenger.ts","kind":"import-statement","original":"./swarm-messenger"}],"format":"esm"},"src/swarm/peer.ts":{"bytes":47065,"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":"src/swarm/connection.ts","kind":"import-statement","original":"./connection"}],"format":"esm"},"src/swarm/swarm.ts":{"bytes":54941,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","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/messaging","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/signal/index.ts","kind":"import-statement","original":"../signal"},{"path":"src/swarm/connection.ts","kind":"import-statement","original":"./connection"},{"path":"src/swarm/peer.ts","kind":"import-statement","original":"./peer"}],"format":"esm"},"src/swarm/swarm-mapper.ts":{"bytes":12086,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/messaging","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/swarm/connection-limiter.ts":{"bytes":8455,"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"},"src/swarm/index.ts":{"bytes":768,"imports":[{"path":"src/swarm/connection.ts","kind":"import-statement","original":"./connection"},{"path":"src/swarm/swarm.ts","kind":"import-statement","original":"./swarm"},{"path":"src/swarm/swarm-mapper.ts","kind":"import-statement","original":"./swarm-mapper"},{"path":"src/swarm/connection-limiter.ts","kind":"import-statement","original":"./connection-limiter"}],"format":"esm"},"src/connection-log.ts":{"bytes":16208,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/swarm/index.ts","kind":"import-statement","original":"./swarm"}],"format":"esm"},"src/network-manager.ts":{"bytes":27172,"imports":[{"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/messaging","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/connection-log.ts","kind":"import-statement","original":"./connection-log"},{"path":"src/swarm/index.ts","kind":"import-statement","original":"./swarm"}],"format":"esm"},"src/topology/fully-connected-topology.ts":{"bytes":3536,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true}],"format":"esm"},"src/topology/mmst-topology.ts":{"bytes":20376,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/topology/star-topology.ts":{"bytes":8007,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/topology/index.ts":{"bytes":760,"imports":[{"path":"src/topology/fully-connected-topology.ts","kind":"import-statement","original":"./fully-connected-topology"},{"path":"src/topology/mmst-topology.ts","kind":"import-statement","original":"./mmst-topology"},{"path":"src/topology/star-topology.ts","kind":"import-statement","original":"./star-topology"}],"format":"esm"},"src/transport/memory-transport.ts":{"bytes":23009,"imports":[{"path":"@dxos/node-std/stream","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","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/util","kind":"import-statement","external":true}],"format":"esm"},"src/transport/transport.ts":{"bytes":3009,"imports":[],"format":"esm"},"src/transport/webrtc/rtc-connection-factory.ts":{"bytes":8665,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"#node-datachannel","kind":"dynamic-import","external":true},{"path":"#node-datachannel/polyfill","kind":"dynamic-import","external":true}],"format":"esm"},"src/transport/webrtc/rtc-transport-stats.ts":{"bytes":7336,"imports":[],"format":"esm"},"src/transport/webrtc/rtc-transport-channel.ts":{"bytes":22671,"imports":[{"path":"@dxos/node-std/stream","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"src/transport/webrtc/rtc-transport-stats.ts","kind":"import-statement","original":"./rtc-transport-stats"}],"format":"esm"},"src/transport/webrtc/utils.ts":{"bytes":3889,"imports":[],"format":"esm"},"src/transport/webrtc/rtc-peer-connection.ts":{"bytes":63948,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"src/transport/webrtc/rtc-transport-channel.ts","kind":"import-statement","original":"./rtc-transport-channel"},{"path":"src/transport/webrtc/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/transport/webrtc/rtc-transport-factory.ts":{"bytes":3420,"imports":[{"path":"src/transport/webrtc/rtc-connection-factory.ts","kind":"import-statement","original":"./rtc-connection-factory"},{"path":"src/transport/webrtc/rtc-peer-connection.ts","kind":"import-statement","original":"./rtc-peer-connection"}],"format":"esm"},"src/transport/webrtc/rtc-transport-proxy.ts":{"bytes":29114,"imports":[{"path":"@dxos/node-std/stream","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","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/bridge","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/transport/webrtc/rtc-transport-service.ts":{"bytes":21401,"imports":[{"path":"@dxos/node-std/stream","kind":"import-statement","external":true},{"path":"@dxos/codec-protobuf/stream","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/proto/dxos/mesh/bridge","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/transport/webrtc/rtc-transport-factory.ts","kind":"import-statement","original":"./rtc-transport-factory"}],"format":"esm"},"src/transport/webrtc/index.ts":{"bytes":751,"imports":[{"path":"src/transport/webrtc/rtc-transport-factory.ts","kind":"import-statement","original":"./rtc-transport-factory"},{"path":"src/transport/webrtc/rtc-transport-proxy.ts","kind":"import-statement","original":"./rtc-transport-proxy"},{"path":"src/transport/webrtc/rtc-transport-service.ts","kind":"import-statement","original":"./rtc-transport-service"}],"format":"esm"},"src/transport/index.ts":{"bytes":666,"imports":[{"path":"src/transport/memory-transport.ts","kind":"import-statement","original":"./memory-transport"},{"path":"src/transport/transport.ts","kind":"import-statement","original":"./transport"},{"path":"src/transport/webrtc/index.ts","kind":"import-statement","original":"./webrtc"}],"format":"esm"},"src/wire-protocol.ts":{"bytes":4254,"imports":[{"path":"@dxos/teleport","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":1071,"imports":[{"path":"src/connection-log.ts","kind":"import-statement","original":"./connection-log"},{"path":"src/network-manager.ts","kind":"import-statement","original":"./network-manager"},{"path":"src/signal/index.ts","kind":"import-statement","original":"./signal"},{"path":"src/swarm/index.ts","kind":"import-statement","original":"./swarm"},{"path":"src/topology/index.ts","kind":"import-statement","original":"./topology"},{"path":"src/transport/index.ts","kind":"import-statement","original":"./transport"},{"path":"src/wire-protocol.ts","kind":"import-statement","original":"./wire-protocol"}],"format":"esm"},"src/testing/test-wire-protocol.ts":{"bytes":12575,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/teleport","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/wire-protocol.ts","kind":"import-statement","original":"../wire-protocol"}],"format":"esm"},"src/testing/test-builder.ts":{"bytes":25936,"imports":[{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/messaging","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/rpc","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"#tcp-transport","kind":"import-statement","external":true},{"path":"src/network-manager.ts","kind":"import-statement","original":"../network-manager"},{"path":"src/topology/index.ts","kind":"import-statement","original":"../topology"},{"path":"src/transport/index.ts","kind":"import-statement","original":"../transport"},{"path":"src/testing/test-wire-protocol.ts","kind":"import-statement","original":"./test-wire-protocol"}],"format":"esm"},"src/testing/index.ts":{"bytes":481,"imports":[{"path":"src/testing/test-builder.ts","kind":"import-statement","original":"./test-builder"}],"format":"esm"},"src/transport/tcp/tcp-transport.browser.ts":{"bytes":3255,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"format":"esm"},"src/transport/tcp/index.ts":{"bytes":492,"imports":[{"path":"src/transport/tcp/tcp-transport.browser.ts","kind":"import-statement","original":"./tcp-transport"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-E3P563GT.mjs","kind":"import-statement"}],"exports":["Connection","ConnectionLimiter","ConnectionLog","ConnectionState","EventType","FullyConnectedTopology","MAX_CONCURRENT_INITIATING_CONNECTIONS","MMSTTopology","MemoryTransport","MemoryTransportFactory","RtcTransportProxy","RtcTransportProxyFactory","RtcTransportService","StarTopology","Swarm","SwarmMapper","SwarmMessenger","SwarmNetworkManager","TransportKind","createIceProvider","createRtcTransportFactory","createTeleportProtocolFactory"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0}},"bytes":1048},"dist/lib/browser/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":19154},"dist/lib/browser/testing/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-E3P563GT.mjs","kind":"import-statement"},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/messaging","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/rpc","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"#tcp-transport","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/teleport","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["TEST_SIGNAL_HOSTS","TestBuilder","TestPeer","TestSwarmConnection"],"entryPoint":"src/testing/index.ts","inputs":{"src/testing/test-builder.ts":{"bytesInOutput":6197},"src/testing/test-wire-protocol.ts":{"bytesInOutput":3194},"src/testing/index.ts":{"bytesInOutput":0}},"bytes":9888},"dist/lib/browser/chunk-E3P563GT.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":216115},"dist/lib/browser/chunk-E3P563GT.mjs":{"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","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/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","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","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/debug","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/messaging","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/async","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/messaging","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/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/util","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/messaging","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/node-std/stream","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","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/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"#node-datachannel","kind":"dynamic-import","external":true},{"path":"#node-datachannel/polyfill","kind":"dynamic-import","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/node-std/stream","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/node-std/stream","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","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/bridge","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/node-std/stream","kind":"import-statement","external":true},{"path":"@dxos/codec-protobuf/stream","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/proto/dxos/mesh/bridge","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/teleport","kind":"import-statement","external":true}],"exports":["Connection","ConnectionLimiter","ConnectionLog","ConnectionState","EventType","FullyConnectedTopology","MAX_CONCURRENT_INITIATING_CONNECTIONS","MMSTTopology","MemoryTransport","MemoryTransportFactory","RtcTransportProxy","RtcTransportProxyFactory","RtcTransportService","StarTopology","Swarm","SwarmMapper","SwarmMessenger","SwarmNetworkManager","TransportKind","createIceProvider","createRtcTransportFactory","createTeleportProtocolFactory"],"inputs":{"src/swarm/connection.ts":{"bytesInOutput":16467},"src/signal/ice.ts":{"bytesInOutput":1085},"src/signal/swarm-messenger.ts":{"bytesInOutput":6293},"src/signal/index.ts":{"bytesInOutput":0},"src/swarm/swarm.ts":{"bytesInOutput":16647},"src/swarm/peer.ts":{"bytesInOutput":13895},"src/swarm/swarm-mapper.ts":{"bytesInOutput":2233},"src/swarm/connection-limiter.ts":{"bytesInOutput":2575},"src/swarm/index.ts":{"bytesInOutput":0},"src/connection-log.ts":{"bytesInOutput":3409},"src/network-manager.ts":{"bytesInOutput":7433},"src/topology/fully-connected-topology.ts":{"bytesInOutput":967},"src/topology/mmst-topology.ts":{"bytesInOutput":6025},"src/topology/star-topology.ts":{"bytesInOutput":2507},"src/topology/index.ts":{"bytesInOutput":0},"src/transport/memory-transport.ts":{"bytesInOutput":6200},"src/transport/transport.ts":{"bytesInOutput":263},"src/transport/webrtc/rtc-connection-factory.ts":{"bytesInOutput":1521},"src/transport/webrtc/rtc-peer-connection.ts":{"bytesInOutput":19296},"src/transport/webrtc/rtc-transport-channel.ts":{"bytesInOutput":6086},"src/transport/webrtc/rtc-transport-stats.ts":{"bytesInOutput":1668},"src/transport/webrtc/utils.ts":{"bytesInOutput":718},"src/transport/webrtc/rtc-transport-factory.ts":{"bytesInOutput":528},"src/transport/webrtc/rtc-transport-proxy.ts":{"bytesInOutput":7898},"src/transport/webrtc/rtc-transport-service.ts":{"bytesInOutput":6050},"src/transport/index.ts":{"bytesInOutput":0},"src/transport/webrtc/index.ts":{"bytesInOutput":0},"src/wire-protocol.ts":{"bytesInOutput":537}},"bytes":131810},"dist/lib/browser/transport/tcp/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1815},"dist/lib/browser/transport/tcp/index.mjs":{"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"exports":["TcpTransport","TcpTransportFactory"],"entryPoint":"src/transport/tcp/index.ts","inputs":{"src/transport/tcp/tcp-transport.browser.ts":{"bytesInOutput":602},"src/transport/tcp/index.ts":{"bytesInOutput":0}},"bytes":767}}}
|
|
1
|
+
{"inputs":{"src/swarm/connection.ts":{"bytes":51118,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true}],"format":"esm"},"src/signal/ice.ts":{"bytes":4387,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/signal/swarm-messenger.ts":{"bytes":21334,"imports":[{"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","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/signal/index.ts":{"bytes":586,"imports":[{"path":"src/signal/ice.ts","kind":"import-statement","original":"./ice"},{"path":"src/signal/swarm-messenger.ts","kind":"import-statement","original":"./swarm-messenger"}],"format":"esm"},"src/swarm/peer.ts":{"bytes":44591,"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":"src/swarm/connection.ts","kind":"import-statement","original":"./connection"}],"format":"esm"},"src/swarm/swarm.ts":{"bytes":50834,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","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/messaging","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/signal/index.ts","kind":"import-statement","original":"../signal"},{"path":"src/swarm/connection.ts","kind":"import-statement","original":"./connection"},{"path":"src/swarm/peer.ts","kind":"import-statement","original":"./peer"}],"format":"esm"},"src/swarm/swarm-mapper.ts":{"bytes":11947,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/messaging","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/swarm/connection-limiter.ts":{"bytes":8137,"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"},"src/swarm/index.ts":{"bytes":677,"imports":[{"path":"src/swarm/connection.ts","kind":"import-statement","original":"./connection"},{"path":"src/swarm/swarm.ts","kind":"import-statement","original":"./swarm"},{"path":"src/swarm/swarm-mapper.ts","kind":"import-statement","original":"./swarm-mapper"},{"path":"src/swarm/connection-limiter.ts","kind":"import-statement","original":"./connection-limiter"}],"format":"esm"},"src/connection-log.ts":{"bytes":16110,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/swarm/index.ts","kind":"import-statement","original":"./swarm"}],"format":"esm"},"src/network-manager.ts":{"bytes":25588,"imports":[{"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/messaging","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/connection-log.ts","kind":"import-statement","original":"./connection-log"},{"path":"src/swarm/index.ts","kind":"import-statement","original":"./swarm"}],"format":"esm"},"src/topology/fully-connected-topology.ts":{"bytes":3329,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true}],"format":"esm"},"src/topology/mmst-topology.ts":{"bytes":18740,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/topology/star-topology.ts":{"bytes":7304,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/topology/index.ts":{"bytes":666,"imports":[{"path":"src/topology/fully-connected-topology.ts","kind":"import-statement","original":"./fully-connected-topology"},{"path":"src/topology/mmst-topology.ts","kind":"import-statement","original":"./mmst-topology"},{"path":"src/topology/star-topology.ts","kind":"import-statement","original":"./star-topology"}],"format":"esm"},"src/transport/memory-transport.ts":{"bytes":22258,"imports":[{"path":"@dxos/node-std/stream","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","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/util","kind":"import-statement","external":true}],"format":"esm"},"src/transport/transport.ts":{"bytes":2906,"imports":[],"format":"esm"},"src/transport/webrtc/rtc-connection-factory.ts":{"bytes":8542,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"#node-datachannel","kind":"dynamic-import","external":true},{"path":"#node-datachannel/polyfill","kind":"dynamic-import","external":true}],"format":"esm"},"src/transport/webrtc/rtc-transport-stats.ts":{"bytes":7220,"imports":[],"format":"esm"},"src/transport/webrtc/rtc-transport-channel.ts":{"bytes":21707,"imports":[{"path":"@dxos/node-std/stream","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"src/transport/webrtc/rtc-transport-stats.ts","kind":"import-statement","original":"./rtc-transport-stats"}],"format":"esm"},"src/transport/webrtc/utils.ts":{"bytes":3787,"imports":[],"format":"esm"},"src/transport/webrtc/rtc-peer-connection.ts":{"bytes":61379,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"src/transport/webrtc/rtc-transport-channel.ts","kind":"import-statement","original":"./rtc-transport-channel"},{"path":"src/transport/webrtc/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/transport/webrtc/rtc-transport-factory.ts":{"bytes":3298,"imports":[{"path":"src/transport/webrtc/rtc-connection-factory.ts","kind":"import-statement","original":"./rtc-connection-factory"},{"path":"src/transport/webrtc/rtc-peer-connection.ts","kind":"import-statement","original":"./rtc-peer-connection"}],"format":"esm"},"src/transport/webrtc/rtc-transport-proxy.ts":{"bytes":28608,"imports":[{"path":"@dxos/node-std/stream","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","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/bridge","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/transport/webrtc/rtc-transport-service.ts":{"bytes":20556,"imports":[{"path":"@dxos/node-std/stream","kind":"import-statement","external":true},{"path":"@dxos/codec-protobuf/stream","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/proto/dxos/mesh/bridge","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/transport/webrtc/rtc-transport-factory.ts","kind":"import-statement","original":"./rtc-transport-factory"}],"format":"esm"},"src/transport/webrtc/index.ts":{"bytes":645,"imports":[{"path":"src/transport/webrtc/rtc-transport-factory.ts","kind":"import-statement","original":"./rtc-transport-factory"},{"path":"src/transport/webrtc/rtc-transport-proxy.ts","kind":"import-statement","original":"./rtc-transport-proxy"},{"path":"src/transport/webrtc/rtc-transport-service.ts","kind":"import-statement","original":"./rtc-transport-service"}],"format":"esm"},"src/transport/index.ts":{"bytes":571,"imports":[{"path":"src/transport/memory-transport.ts","kind":"import-statement","original":"./memory-transport"},{"path":"src/transport/transport.ts","kind":"import-statement","original":"./transport"},{"path":"src/transport/webrtc/index.ts","kind":"import-statement","original":"./webrtc"}],"format":"esm"},"src/wire-protocol.ts":{"bytes":4146,"imports":[{"path":"@dxos/teleport","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":986,"imports":[{"path":"src/connection-log.ts","kind":"import-statement","original":"./connection-log"},{"path":"src/network-manager.ts","kind":"import-statement","original":"./network-manager"},{"path":"src/signal/index.ts","kind":"import-statement","original":"./signal"},{"path":"src/swarm/index.ts","kind":"import-statement","original":"./swarm"},{"path":"src/topology/index.ts","kind":"import-statement","original":"./topology"},{"path":"src/transport/index.ts","kind":"import-statement","original":"./transport"},{"path":"src/wire-protocol.ts","kind":"import-statement","original":"./wire-protocol"}],"format":"esm"},"src/testing/test-wire-protocol.ts":{"bytes":12438,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/teleport","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/wire-protocol.ts","kind":"import-statement","original":"../wire-protocol"}],"format":"esm"},"src/testing/test-builder.ts":{"bytes":26162,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/messaging","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/rpc","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"#tcp-transport","kind":"import-statement","external":true},{"path":"src/network-manager.ts","kind":"import-statement","original":"../network-manager"},{"path":"src/topology/index.ts","kind":"import-statement","original":"../topology"},{"path":"src/transport/index.ts","kind":"import-statement","original":"../transport"},{"path":"src/testing/test-wire-protocol.ts","kind":"import-statement","original":"./test-wire-protocol"}],"format":"esm"},"src/testing/index.ts":{"bytes":388,"imports":[{"path":"src/testing/test-builder.ts","kind":"import-statement","original":"./test-builder"}],"format":"esm"},"src/transport/tcp/index.ts":{"bytes":401,"imports":[{"path":"#tcp-transport-impl","kind":"import-statement","external":true}],"format":"esm"},"src/transport/tcp/tcp-transport.ts":{"bytes":13582,"imports":[{"path":"@dxos/node-std/net","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/node-std/net","kind":"dynamic-import","external":true}],"format":"esm"},"src/transport/tcp/tcp-transport.browser.ts":{"bytes":3140,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":15264},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-ERB3AQAF.mjs","kind":"import-statement"},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["Connection","ConnectionLimiter","ConnectionLog","ConnectionState","EventType","FullyConnectedTopology","MAX_CONCURRENT_INITIATING_CONNECTIONS","MMSTTopology","MemoryTransport","MemoryTransportFactory","RtcTransportProxy","RtcTransportProxyFactory","RtcTransportService","StarTopology","Swarm","SwarmMapper","SwarmMessenger","SwarmNetworkManager","TransportKind","createIceProvider","createRtcTransportFactory","createTeleportProtocolFactory"],"entryPoint":"src/index.ts","inputs":{"src/signal/ice.ts":{"bytesInOutput":1018},"src/index.ts":{"bytesInOutput":0},"src/topology/mmst-topology.ts":{"bytesInOutput":5380},"src/topology/star-topology.ts":{"bytesInOutput":2246}},"bytes":9729},"dist/lib/browser/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18166},"dist/lib/browser/testing/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-ERB3AQAF.mjs","kind":"import-statement"},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/messaging","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/rpc","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"#tcp-transport","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/teleport","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["TEST_SIGNAL_HOSTS","TestBuilder","TestPeer","TestSwarmConnection"],"entryPoint":"src/testing/index.ts","inputs":{"src/testing/test-builder.ts":{"bytesInOutput":6354},"src/testing/test-wire-protocol.ts":{"bytesInOutput":3142},"src/testing/index.ts":{"bytesInOutput":0}},"bytes":9993},"dist/lib/browser/chunk-ERB3AQAF.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":200022},"dist/lib/browser/chunk-ERB3AQAF.mjs":{"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","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","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/debug","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/messaging","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/async","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/messaging","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/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/util","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/messaging","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/node-std/stream","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","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/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"#node-datachannel","kind":"dynamic-import","external":true},{"path":"#node-datachannel/polyfill","kind":"dynamic-import","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/node-std/stream","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/node-std/stream","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","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/bridge","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/node-std/stream","kind":"import-statement","external":true},{"path":"@dxos/codec-protobuf/stream","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/proto/dxos/mesh/bridge","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/teleport","kind":"import-statement","external":true}],"exports":["Connection","ConnectionLimiter","ConnectionLog","ConnectionState","EventType","FullyConnectedTopology","MAX_CONCURRENT_INITIATING_CONNECTIONS","MemoryTransport","MemoryTransportFactory","RtcTransportProxy","RtcTransportProxyFactory","RtcTransportService","Swarm","SwarmMapper","SwarmMessenger","SwarmNetworkManager","TransportKind","createRtcTransportFactory","createTeleportProtocolFactory"],"inputs":{"src/swarm/connection.ts":{"bytesInOutput":15073},"src/signal/swarm-messenger.ts":{"bytesInOutput":5828},"src/swarm/swarm.ts":{"bytesInOutput":15096},"src/swarm/peer.ts":{"bytesInOutput":12842},"src/swarm/swarm-mapper.ts":{"bytesInOutput":2180},"src/swarm/connection-limiter.ts":{"bytesInOutput":2483},"src/connection-log.ts":{"bytesInOutput":3409},"src/network-manager.ts":{"bytesInOutput":6732},"src/topology/fully-connected-topology.ts":{"bytesInOutput":911},"src/transport/memory-transport.ts":{"bytesInOutput":5905},"src/transport/transport.ts":{"bytesInOutput":263},"src/transport/webrtc/rtc-connection-factory.ts":{"bytesInOutput":1521},"src/transport/webrtc/rtc-peer-connection.ts":{"bytesInOutput":18266},"src/transport/webrtc/rtc-transport-channel.ts":{"bytesInOutput":5680},"src/transport/webrtc/rtc-transport-stats.ts":{"bytesInOutput":1668},"src/transport/webrtc/utils.ts":{"bytesInOutput":718},"src/transport/webrtc/rtc-transport-factory.ts":{"bytesInOutput":528},"src/transport/webrtc/rtc-transport-proxy.ts":{"bytesInOutput":7665},"src/transport/webrtc/rtc-transport-service.ts":{"bytesInOutput":5765},"src/wire-protocol.ts":{"bytesInOutput":535}},"bytes":114434},"dist/lib/browser/transport/tcp/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":227},"dist/lib/browser/transport/tcp/index.mjs":{"imports":[{"path":"#tcp-transport-impl","kind":"import-statement","external":true}],"exports":[],"entryPoint":"src/transport/tcp/index.ts","inputs":{"src/transport/tcp/index.ts":{"bytesInOutput":37}},"bytes":136},"dist/lib/browser/transport/tcp/tcp-transport.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6522},"dist/lib/browser/transport/tcp/tcp-transport.mjs":{"imports":[{"path":"@dxos/node-std/net","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/node-std/net","kind":"dynamic-import","external":true}],"exports":["TcpTransport","TcpTransportFactory"],"entryPoint":"src/transport/tcp/tcp-transport.ts","inputs":{"src/transport/tcp/tcp-transport.ts":{"bytesInOutput":3482}},"bytes":3647},"dist/lib/browser/transport/tcp/tcp-transport.browser.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1791},"dist/lib/browser/transport/tcp/tcp-transport.browser.mjs":{"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"exports":["TcpTransport","TcpTransportFactory"],"entryPoint":"src/transport/tcp/tcp-transport.browser.ts","inputs":{"src/transport/tcp/tcp-transport.browser.ts":{"bytesInOutput":602}},"bytes":783}}}
|
|
@@ -8,9 +8,10 @@ import {
|
|
|
8
8
|
TransportKind,
|
|
9
9
|
createRtcTransportFactory,
|
|
10
10
|
createTeleportProtocolFactory
|
|
11
|
-
} from "../chunk-
|
|
11
|
+
} from "../chunk-ERB3AQAF.mjs";
|
|
12
12
|
|
|
13
13
|
// src/testing/test-builder.ts
|
|
14
|
+
import { Context } from "@dxos/context";
|
|
14
15
|
import { PublicKey as PublicKey2 } from "@dxos/keys";
|
|
15
16
|
import { log as log2 } from "@dxos/log";
|
|
16
17
|
import { MemorySignalManager, MemorySignalManagerContext, WebsocketSignalManager } from "@dxos/messaging";
|
|
@@ -40,12 +41,7 @@ var TestWireProtocol = class {
|
|
|
40
41
|
factory = createTeleportProtocolFactory(async (teleport) => {
|
|
41
42
|
log("create", {
|
|
42
43
|
remotePeerId: teleport.remotePeerId
|
|
43
|
-
}, {
|
|
44
|
-
F: __dxlog_file,
|
|
45
|
-
L: 35,
|
|
46
|
-
S: this,
|
|
47
|
-
C: (f, a) => f(...a)
|
|
48
|
-
});
|
|
44
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 21, S: this });
|
|
49
45
|
const handleDisconnect = () => {
|
|
50
46
|
this.connections.delete(teleport.remotePeerId);
|
|
51
47
|
this.disconnected.emit(teleport.remotePeerId);
|
|
@@ -78,12 +74,7 @@ var TestWireProtocol = class {
|
|
|
78
74
|
}
|
|
79
75
|
log("waitForConnection", {
|
|
80
76
|
peerId
|
|
81
|
-
}, {
|
|
82
|
-
F: __dxlog_file,
|
|
83
|
-
L: 66,
|
|
84
|
-
S: this,
|
|
85
|
-
C: (f, a) => f(...a)
|
|
86
|
-
});
|
|
77
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 54, S: this });
|
|
87
78
|
await asyncTimeout(
|
|
88
79
|
this.connected.waitFor((connectedId) => connectedId.equals(peerId)),
|
|
89
80
|
// TODO(nf): Make this configurable.
|
|
@@ -165,12 +156,7 @@ var TestPeer = class {
|
|
|
165
156
|
createNetworkManager(transport) {
|
|
166
157
|
let transportFactory;
|
|
167
158
|
if (this.testBuilder.options.signalHosts) {
|
|
168
|
-
log2.info(`using ${transport} transport with signal server.`, void 0, {
|
|
169
|
-
F: __dxlog_file2,
|
|
170
|
-
L: 102,
|
|
171
|
-
S: this,
|
|
172
|
-
C: (f, a) => f(...a)
|
|
173
|
-
});
|
|
159
|
+
log2.info(`using ${transport} transport with signal server.`, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 72, S: this });
|
|
174
160
|
switch (transport) {
|
|
175
161
|
case TransportKind.MEMORY:
|
|
176
162
|
throw new Error("Memory transport not supported with signal server.");
|
|
@@ -214,19 +200,9 @@ var TestPeer = class {
|
|
|
214
200
|
}
|
|
215
201
|
} else {
|
|
216
202
|
if (transport !== TransportKind.MEMORY && transport !== TransportKind.TCP) {
|
|
217
|
-
log2.warn(`specified transport ${transport} but no signalling configured, using memory transport instead`, void 0, {
|
|
218
|
-
F: __dxlog_file2,
|
|
219
|
-
L: 148,
|
|
220
|
-
S: this,
|
|
221
|
-
C: (f, a) => f(...a)
|
|
222
|
-
});
|
|
203
|
+
log2.warn(`specified transport ${transport} but no signalling configured, using memory transport instead`, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 117, S: this });
|
|
223
204
|
}
|
|
224
|
-
log2.info(`using ${transport} transport without signal server.`, void 0, {
|
|
225
|
-
F: __dxlog_file2,
|
|
226
|
-
L: 150,
|
|
227
|
-
S: this,
|
|
228
|
-
C: (f, a) => f(...a)
|
|
229
|
-
});
|
|
205
|
+
log2.info(`using ${transport} transport without signal server.`, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 119, S: this });
|
|
230
206
|
transportFactory = MemoryTransportFactory;
|
|
231
207
|
}
|
|
232
208
|
return new SwarmNetworkManager({
|
|
@@ -244,7 +220,7 @@ var TestPeer = class {
|
|
|
244
220
|
this._swarms.clear();
|
|
245
221
|
await this._proxy?.close();
|
|
246
222
|
await this._service?.close();
|
|
247
|
-
await this._networkManager.close();
|
|
223
|
+
await this._networkManager.close(Context.default(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 137 }));
|
|
248
224
|
}
|
|
249
225
|
getSwarm(topic) {
|
|
250
226
|
const swarm = this._swarms.get(topic);
|
|
@@ -279,7 +255,7 @@ var TestSwarmConnection = class {
|
|
|
279
255
|
// TODO(burdon): Need to create new plugin instance per swarm?
|
|
280
256
|
// If so, then perhaps joinSwarm should return swarm object with access to plugins.
|
|
281
257
|
async join(topology = new FullyConnectedTopology()) {
|
|
282
|
-
await this.peer._networkManager.joinSwarm({
|
|
258
|
+
await this.peer._networkManager.joinSwarm(Context.default(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 179 }), {
|
|
283
259
|
topic: this.topic,
|
|
284
260
|
peerInfo: {
|
|
285
261
|
peerKey: this.peer.peerId.toHex(),
|
|
@@ -291,7 +267,7 @@ var TestSwarmConnection = class {
|
|
|
291
267
|
return this;
|
|
292
268
|
}
|
|
293
269
|
async leave() {
|
|
294
|
-
await this.peer._networkManager.leaveSwarm(this.topic);
|
|
270
|
+
await this.peer._networkManager.leaveSwarm(Context.default(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 191 }), this.topic);
|
|
295
271
|
return this;
|
|
296
272
|
}
|
|
297
273
|
};
|