@dxos/network-manager 0.1.13 → 0.1.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/index.mjs +2127 -0
- package/dist/lib/browser/index.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -0
- package/dist/lib/browser/testing/index.mjs +2197 -0
- package/dist/lib/browser/testing/index.mjs.map +7 -0
- package/dist/lib/node/index.cjs +2173 -0
- package/dist/lib/node/index.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -0
- package/dist/lib/node/testing/index.cjs +2225 -0
- package/dist/lib/node/testing/index.cjs.map +7 -0
- package/dist/{src → types/src}/connection-log.d.ts +0 -0
- package/dist/types/src/connection-log.d.ts.map +1 -0
- package/dist/{src → types/src}/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -0
- package/dist/{src → types/src}/network-manager.d.ts +9 -11
- package/dist/types/src/network-manager.d.ts.map +1 -0
- package/dist/{src → types/src}/protocol-factory.d.ts +11 -5
- package/dist/types/src/protocol-factory.d.ts.map +1 -0
- package/dist/{src → types/src}/signal/index.d.ts +0 -0
- package/dist/types/src/signal/index.d.ts.map +1 -0
- package/dist/{src → types/src}/signal/integration.test.d.ts +0 -0
- package/dist/types/src/signal/integration.test.d.ts.map +1 -0
- package/dist/{src → types/src}/signal/message-router.d.ts +0 -0
- package/dist/types/src/signal/message-router.d.ts.map +1 -0
- package/dist/{src → types/src}/signal/message-router.test.d.ts +0 -0
- package/dist/types/src/signal/message-router.test.d.ts.map +1 -0
- package/dist/{src → types/src}/signal/signal-connection.d.ts +0 -0
- package/dist/types/src/signal/signal-connection.d.ts.map +1 -0
- package/dist/{src → types/src}/signal/signal-messenger.d.ts +0 -0
- package/dist/types/src/signal/signal-messenger.d.ts.map +1 -0
- package/dist/{src → types/src}/swarm/connection.d.ts +5 -17
- package/dist/types/src/swarm/connection.d.ts.map +1 -0
- package/dist/{src → types/src}/swarm/index.d.ts +0 -0
- package/dist/types/src/swarm/index.d.ts.map +1 -0
- package/dist/types/src/swarm/peer.d.ts +70 -0
- package/dist/types/src/swarm/peer.d.ts.map +1 -0
- package/dist/{src → types/src}/swarm/swarm-mapper.d.ts +1 -1
- package/dist/types/src/swarm/swarm-mapper.d.ts.map +1 -0
- package/dist/{src → types/src}/swarm/swarm.d.ts +4 -8
- package/dist/types/src/swarm/swarm.d.ts.map +1 -0
- package/dist/{src → types/src}/swarm/swarm.test.d.ts +0 -0
- package/dist/types/src/swarm/swarm.test.d.ts.map +1 -0
- package/dist/{src → types/src}/testing/index.d.ts +0 -0
- package/dist/types/src/testing/index.d.ts.map +1 -0
- package/dist/{src → types/src}/testing/test-builder.d.ts +1 -1
- package/dist/types/src/testing/test-builder.d.ts.map +1 -0
- package/dist/{src → types/src}/testing/test-protocol.d.ts +2 -2
- package/dist/types/src/testing/test-protocol.d.ts.map +1 -0
- package/dist/{src → types/src}/tests/basic-test-suite.d.ts +0 -0
- package/dist/types/src/tests/basic-test-suite.d.ts.map +1 -0
- package/dist/{src → types/src}/tests/memory-transport.test.d.ts +0 -0
- package/dist/types/src/tests/memory-transport.test.d.ts.map +1 -0
- package/dist/{src → types/src}/tests/presence.test.d.ts +0 -0
- package/dist/types/src/tests/presence.test.d.ts.map +1 -0
- package/dist/{src → types/src}/tests/property-test-suite.d.ts +0 -0
- package/dist/types/src/tests/property-test-suite.d.ts.map +1 -0
- package/dist/{src → types/src}/tests/utils.d.ts +0 -0
- package/dist/types/src/tests/utils.d.ts.map +1 -0
- package/dist/{src → types/src}/tests/webrtc-transport.test.d.ts +0 -0
- package/dist/types/src/tests/webrtc-transport.test.d.ts.map +1 -0
- package/dist/{src → types/src}/topology/fully-connected-topology.d.ts +0 -0
- package/dist/types/src/topology/fully-connected-topology.d.ts.map +1 -0
- package/dist/{src → types/src}/topology/index.d.ts +0 -0
- package/dist/types/src/topology/index.d.ts.map +1 -0
- package/dist/{src → types/src}/topology/mmst-topology.d.ts +0 -0
- package/dist/types/src/topology/mmst-topology.d.ts.map +1 -0
- package/dist/{src → types/src}/topology/star-topology.d.ts +0 -0
- package/dist/types/src/topology/star-topology.d.ts.map +1 -0
- package/dist/{src → types/src}/topology/topology.d.ts +0 -0
- package/dist/types/src/topology/topology.d.ts.map +1 -0
- package/dist/{src → types/src}/transport/index.d.ts +0 -0
- package/dist/types/src/transport/index.d.ts.map +1 -0
- package/dist/{src → types/src}/transport/memory-transport.d.ts +0 -0
- package/dist/types/src/transport/memory-transport.d.ts.map +1 -0
- package/dist/{src → types/src}/transport/memory-transport.test.d.ts +0 -0
- package/dist/types/src/transport/memory-transport.test.d.ts.map +1 -0
- package/dist/{src → types/src}/transport/transport.d.ts +1 -1
- package/dist/types/src/transport/transport.d.ts.map +1 -0
- package/dist/{src → types/src}/transport/webrtc-simple-peer.test.d.ts +0 -0
- package/dist/types/src/transport/webrtc-simple-peer.test.d.ts.map +1 -0
- package/dist/{src → types/src}/transport/webrtc-transport-proxy.d.ts +1 -1
- package/dist/types/src/transport/webrtc-transport-proxy.d.ts.map +1 -0
- package/dist/{src → types/src}/transport/webrtc-transport-proxy.test.d.ts +0 -0
- package/dist/types/src/transport/webrtc-transport-proxy.test.d.ts.map +1 -0
- package/dist/{src → types/src}/transport/webrtc-transport-service.d.ts +0 -0
- package/dist/types/src/transport/webrtc-transport-service.d.ts.map +1 -0
- package/dist/{src → types/src}/transport/webrtc-transport.d.ts +1 -1
- package/dist/types/src/transport/webrtc-transport.d.ts.map +1 -0
- package/dist/{src → types/src}/transport/webrtc-transport.test.d.ts +0 -0
- package/dist/types/src/transport/webrtc-transport.test.d.ts.map +1 -0
- package/dist/{src → types/src}/transport/webrtc.d.ts +0 -0
- package/dist/types/src/transport/webrtc.d.ts.map +1 -0
- package/dist/types/src/types.d.ts +6 -0
- package/dist/types/src/types.d.ts.map +1 -0
- package/dist/types/src/wire-protocol.d.ts +37 -0
- package/dist/types/src/wire-protocol.d.ts.map +1 -0
- package/package.json +24 -22
- package/src/connection-log.ts +8 -8
- package/src/globals.d.ts +1 -1
- package/src/index.ts +1 -0
- package/src/network-manager.ts +14 -5
- package/src/protocol-factory.ts +7 -4
- package/src/signal/integration.test.ts +8 -7
- package/src/signal/message-router.test.ts +14 -15
- package/src/signal/message-router.ts +1 -1
- package/src/swarm/connection.ts +11 -55
- package/src/swarm/peer.ts +119 -30
- package/src/swarm/swarm.test.ts +9 -8
- package/src/swarm/swarm.ts +97 -116
- package/src/testing/test-builder.ts +4 -1
- package/src/testing/test-protocol.ts +1 -1
- package/src/tests/basic-test-suite.ts +7 -6
- package/src/tests/memory-transport.test.ts +1 -1
- package/src/tests/presence.test.ts +5 -4
- package/src/tests/property-test-suite.ts +4 -3
- package/src/tests/utils.ts +1 -1
- package/src/tests/webrtc-transport.test.ts +2 -2
- package/src/transport/memory-transport.test.ts +4 -4
- package/src/transport/memory-transport.ts +5 -5
- package/src/transport/webrtc-simple-peer.test.ts +13 -10
- package/src/transport/webrtc-transport-proxy.test.ts +9 -13
- package/src/transport/webrtc-transport-proxy.ts +1 -1
- package/src/transport/webrtc-transport-service.ts +2 -2
- package/src/transport/webrtc-transport.test.ts +4 -4
- package/src/transport/webrtc-transport.ts +3 -3
- package/src/wire-protocol.ts +75 -0
- package/testing.d.ts +1 -1
- package/testing.js +1 -1
- package/dist/src/connection-log.d.ts.map +0 -1
- package/dist/src/connection-log.js +0 -98
- package/dist/src/connection-log.js.map +0 -1
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -28
- package/dist/src/index.js.map +0 -1
- package/dist/src/network-manager.d.ts.map +0 -1
- package/dist/src/network-manager.js +0 -118
- package/dist/src/network-manager.js.map +0 -1
- package/dist/src/protocol-factory.d.ts.map +0 -1
- package/dist/src/protocol-factory.js +0 -66
- package/dist/src/protocol-factory.js.map +0 -1
- package/dist/src/signal/index.d.ts.map +0 -1
- package/dist/src/signal/index.js +0 -23
- package/dist/src/signal/index.js.map +0 -1
- package/dist/src/signal/integration.test.d.ts.map +0 -1
- package/dist/src/signal/integration.test.js +0 -105
- package/dist/src/signal/integration.test.js.map +0 -1
- package/dist/src/signal/message-router.d.ts.map +0 -1
- package/dist/src/signal/message-router.js +0 -135
- package/dist/src/signal/message-router.js.map +0 -1
- package/dist/src/signal/message-router.test.d.ts.map +0 -1
- package/dist/src/signal/message-router.test.js +0 -211
- package/dist/src/signal/message-router.test.js.map +0 -1
- package/dist/src/signal/signal-connection.d.ts.map +0 -1
- package/dist/src/signal/signal-connection.js +0 -6
- package/dist/src/signal/signal-connection.js.map +0 -1
- package/dist/src/signal/signal-messenger.d.ts.map +0 -1
- package/dist/src/signal/signal-messenger.js +0 -6
- package/dist/src/signal/signal-messenger.js.map +0 -1
- package/dist/src/swarm/connection.d.ts.map +0 -1
- package/dist/src/swarm/connection.js +0 -204
- package/dist/src/swarm/connection.js.map +0 -1
- package/dist/src/swarm/index.d.ts.map +0 -1
- package/dist/src/swarm/index.js +0 -23
- package/dist/src/swarm/index.js.map +0 -1
- package/dist/src/swarm/peer.d.ts +0 -45
- package/dist/src/swarm/peer.d.ts.map +0 -1
- package/dist/src/swarm/peer.js +0 -113
- package/dist/src/swarm/peer.js.map +0 -1
- package/dist/src/swarm/swarm-mapper.d.ts.map +0 -1
- package/dist/src/swarm/swarm-mapper.js +0 -92
- package/dist/src/swarm/swarm-mapper.js.map +0 -1
- package/dist/src/swarm/swarm.d.ts.map +0 -1
- package/dist/src/swarm/swarm.js +0 -305
- package/dist/src/swarm/swarm.js.map +0 -1
- package/dist/src/swarm/swarm.test.d.ts.map +0 -1
- package/dist/src/swarm/swarm.test.js +0 -135
- package/dist/src/swarm/swarm.test.js.map +0 -1
- package/dist/src/testing/index.d.ts.map +0 -1
- package/dist/src/testing/index.js +0 -22
- package/dist/src/testing/index.js.map +0 -1
- package/dist/src/testing/test-builder.d.ts.map +0 -1
- package/dist/src/testing/test-builder.js +0 -145
- package/dist/src/testing/test-builder.js.map +0 -1
- package/dist/src/testing/test-protocol.d.ts.map +0 -1
- package/dist/src/testing/test-protocol.js +0 -143
- package/dist/src/testing/test-protocol.js.map +0 -1
- package/dist/src/tests/basic-test-suite.d.ts.map +0 -1
- package/dist/src/tests/basic-test-suite.js +0 -142
- package/dist/src/tests/basic-test-suite.js.map +0 -1
- package/dist/src/tests/memory-transport.test.d.ts.map +0 -1
- package/dist/src/tests/memory-transport.test.js +0 -12
- package/dist/src/tests/memory-transport.test.js.map +0 -1
- package/dist/src/tests/presence.test.d.ts.map +0 -1
- package/dist/src/tests/presence.test.js +0 -61
- package/dist/src/tests/presence.test.js.map +0 -1
- package/dist/src/tests/property-test-suite.d.ts.map +0 -1
- package/dist/src/tests/property-test-suite.js +0 -203
- package/dist/src/tests/property-test-suite.js.map +0 -1
- package/dist/src/tests/utils.d.ts.map +0 -1
- package/dist/src/tests/utils.js +0 -76
- package/dist/src/tests/utils.js.map +0 -1
- package/dist/src/tests/webrtc-transport.test.d.ts.map +0 -1
- package/dist/src/tests/webrtc-transport.test.js +0 -16
- package/dist/src/tests/webrtc-transport.test.js.map +0 -1
- package/dist/src/topology/fully-connected-topology.d.ts.map +0 -1
- package/dist/src/topology/fully-connected-topology.js +0 -35
- package/dist/src/topology/fully-connected-topology.js.map +0 -1
- package/dist/src/topology/index.d.ts.map +0 -1
- package/dist/src/topology/index.js +0 -24
- package/dist/src/topology/index.js.map +0 -1
- package/dist/src/topology/mmst-topology.d.ts.map +0 -1
- package/dist/src/topology/mmst-topology.js +0 -73
- package/dist/src/topology/mmst-topology.js.map +0 -1
- package/dist/src/topology/star-topology.d.ts.map +0 -1
- package/dist/src/topology/star-topology.js +0 -60
- package/dist/src/topology/star-topology.js.map +0 -1
- package/dist/src/topology/topology.d.ts.map +0 -1
- package/dist/src/topology/topology.js +0 -6
- package/dist/src/topology/topology.js.map +0 -1
- package/dist/src/transport/index.d.ts.map +0 -1
- package/dist/src/transport/index.js +0 -25
- package/dist/src/transport/index.js.map +0 -1
- package/dist/src/transport/memory-transport.d.ts.map +0 -1
- package/dist/src/transport/memory-transport.js +0 -138
- package/dist/src/transport/memory-transport.js.map +0 -1
- package/dist/src/transport/memory-transport.test.d.ts.map +0 -1
- package/dist/src/transport/memory-transport.test.js +0 -96
- package/dist/src/transport/memory-transport.test.js.map +0 -1
- package/dist/src/transport/transport.d.ts.map +0 -1
- package/dist/src/transport/transport.js +0 -6
- package/dist/src/transport/transport.js.map +0 -1
- package/dist/src/transport/webrtc-simple-peer.test.d.ts.map +0 -1
- package/dist/src/transport/webrtc-simple-peer.test.js +0 -24
- package/dist/src/transport/webrtc-simple-peer.test.js.map +0 -1
- package/dist/src/transport/webrtc-transport-proxy.d.ts.map +0 -1
- package/dist/src/transport/webrtc-transport-proxy.js +0 -139
- package/dist/src/transport/webrtc-transport-proxy.js.map +0 -1
- package/dist/src/transport/webrtc-transport-proxy.test.d.ts.map +0 -1
- package/dist/src/transport/webrtc-transport-proxy.test.js +0 -219
- package/dist/src/transport/webrtc-transport-proxy.test.js.map +0 -1
- package/dist/src/transport/webrtc-transport-service.d.ts.map +0 -1
- package/dist/src/transport/webrtc-transport-service.js +0 -93
- package/dist/src/transport/webrtc-transport-service.js.map +0 -1
- package/dist/src/transport/webrtc-transport.d.ts.map +0 -1
- package/dist/src/transport/webrtc-transport.js +0 -77
- package/dist/src/transport/webrtc-transport.js.map +0 -1
- package/dist/src/transport/webrtc-transport.test.d.ts.map +0 -1
- package/dist/src/transport/webrtc-transport.test.js +0 -91
- package/dist/src/transport/webrtc-transport.test.js.map +0 -1
- package/dist/src/transport/webrtc.d.ts.map +0 -1
- package/dist/src/transport/webrtc.js +0 -17
- package/dist/src/transport/webrtc.js.map +0 -1
- package/dist/src/types.d.ts +0 -6
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -6
- package/dist/src/types.js.map +0 -1
package/dist/src/swarm/swarm.js
DELETED
|
@@ -1,305 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
//
|
|
3
|
-
// Copyright 2020 DXOS.org
|
|
4
|
-
//
|
|
5
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.Swarm = void 0;
|
|
10
|
-
const node_assert_1 = __importDefault(require("node:assert"));
|
|
11
|
-
const async_1 = require("@dxos/async");
|
|
12
|
-
const crypto_1 = require("@dxos/crypto");
|
|
13
|
-
const debug_1 = require("@dxos/debug");
|
|
14
|
-
const keys_1 = require("@dxos/keys");
|
|
15
|
-
const log_1 = require("@dxos/log");
|
|
16
|
-
const util_1 = require("@dxos/util");
|
|
17
|
-
const signal_1 = require("../signal");
|
|
18
|
-
const peer_1 = require("./peer");
|
|
19
|
-
const INITIATION_DELAY = 100;
|
|
20
|
-
// TODO(burdon): Factor out.
|
|
21
|
-
const getClassName = (obj) => Object.getPrototypeOf(obj).constructor.name;
|
|
22
|
-
/**
|
|
23
|
-
* A single peer's view of the swarm.
|
|
24
|
-
* Manages a set of connections implemented by simple-peer instances.
|
|
25
|
-
* Routes signal events and maintains swarm topology.
|
|
26
|
-
*/
|
|
27
|
-
class Swarm {
|
|
28
|
-
// TODO(burdon): Swarm => Peer.create/destroy =< Connection.open/close
|
|
29
|
-
// TODO(burdon): Split up properties.
|
|
30
|
-
constructor(_topic, _ownPeerId, _topology, _protocolProvider, _messenger, _transportFactory, _label) {
|
|
31
|
-
this._topic = _topic;
|
|
32
|
-
this._ownPeerId = _ownPeerId;
|
|
33
|
-
this._topology = _topology;
|
|
34
|
-
this._protocolProvider = _protocolProvider;
|
|
35
|
-
this._messenger = _messenger;
|
|
36
|
-
this._transportFactory = _transportFactory;
|
|
37
|
-
this._label = _label;
|
|
38
|
-
this._peers = new util_1.ComplexMap(keys_1.PublicKey.hash);
|
|
39
|
-
this._destroyed = false;
|
|
40
|
-
/**
|
|
41
|
-
* Unique id of the swarm, local to the current peer, generated when swarm is joined.
|
|
42
|
-
*/
|
|
43
|
-
this.id = keys_1.PublicKey.random();
|
|
44
|
-
/**
|
|
45
|
-
* New connection to a peer is started.
|
|
46
|
-
* @internal
|
|
47
|
-
*/
|
|
48
|
-
this.connectionAdded = new async_1.Event();
|
|
49
|
-
/**
|
|
50
|
-
* Connection to a peer is dropped.
|
|
51
|
-
* @internal
|
|
52
|
-
*/
|
|
53
|
-
this.disconnected = new async_1.Event();
|
|
54
|
-
/**
|
|
55
|
-
* Connection is established to a new peer.
|
|
56
|
-
* @internal
|
|
57
|
-
*/
|
|
58
|
-
this.connected = new async_1.Event();
|
|
59
|
-
this.errors = new debug_1.ErrorStream();
|
|
60
|
-
(0, log_1.log)('creating swarm', { id: this.id, topic: this._topic, peerId: _ownPeerId }, { file: "packages/core/mesh/network-manager/src/swarm/swarm.ts", line: 79, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) });
|
|
61
|
-
_topology.init(this._getSwarmController());
|
|
62
|
-
this._swarmMessenger = new signal_1.MessageRouter({
|
|
63
|
-
sendMessage: async (msg) => await this._messenger.sendMessage(msg),
|
|
64
|
-
onSignal: async (msg) => await this.onSignal(msg),
|
|
65
|
-
onOffer: async (msg) => await this.onOffer(msg),
|
|
66
|
-
topic: this._topic
|
|
67
|
-
});
|
|
68
|
-
this._messenger
|
|
69
|
-
.listen({
|
|
70
|
-
peerId: this._ownPeerId,
|
|
71
|
-
payloadType: 'dxos.mesh.swarm.SwarmMessage',
|
|
72
|
-
onMessage: async (message) => await this._swarmMessenger.receiveMessage(message)
|
|
73
|
-
})
|
|
74
|
-
.catch((error) => log_1.log.catch(error, {}, { file: "packages/core/mesh/network-manager/src/swarm/swarm.ts", line: 95, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) }));
|
|
75
|
-
}
|
|
76
|
-
get connections() {
|
|
77
|
-
return Array.from(this._peers.values())
|
|
78
|
-
.map((peer) => peer.connection)
|
|
79
|
-
.filter(util_1.isNotNullOrUndefined);
|
|
80
|
-
}
|
|
81
|
-
get ownPeerId() {
|
|
82
|
-
return this._ownPeerId;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Custom label assigned to this swarm. Used in devtools to display human-readable names for swarms.
|
|
86
|
-
*/
|
|
87
|
-
get label() {
|
|
88
|
-
return this._label;
|
|
89
|
-
}
|
|
90
|
-
get topic() {
|
|
91
|
-
return this._topic;
|
|
92
|
-
}
|
|
93
|
-
// TODO(burdon): async open?
|
|
94
|
-
async destroy() {
|
|
95
|
-
(0, log_1.log)('destroying', { id: this.id, topic: this._topic }, { file: "packages/core/mesh/network-manager/src/swarm/swarm.ts", line: 121, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) });
|
|
96
|
-
this._destroyed = true;
|
|
97
|
-
await this._topology.destroy();
|
|
98
|
-
await Promise.all(Array.from(this._peers.keys()).map((key) => this._closeConnection(key)));
|
|
99
|
-
}
|
|
100
|
-
async setTopology(topology) {
|
|
101
|
-
if (topology === this._topology) {
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
(0, log_1.log)('setting topology', {
|
|
105
|
-
id: this.id,
|
|
106
|
-
topic: this._topic,
|
|
107
|
-
previous: getClassName(this._topology),
|
|
108
|
-
topology: getClassName(topology)
|
|
109
|
-
}, { file: "packages/core/mesh/network-manager/src/swarm/swarm.ts", line: 131, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) });
|
|
110
|
-
await this._topology.destroy();
|
|
111
|
-
this._topology = topology;
|
|
112
|
-
this._topology.init(this._getSwarmController());
|
|
113
|
-
this._topology.update();
|
|
114
|
-
}
|
|
115
|
-
_getOrCreatePeer(peerId) {
|
|
116
|
-
let peer = this._peers.get(peerId);
|
|
117
|
-
if (!peer) {
|
|
118
|
-
peer = new peer_1.Peer(peerId, this._topic, this._ownPeerId, {
|
|
119
|
-
onConnected: () => {
|
|
120
|
-
this.connected.emit(peerId);
|
|
121
|
-
},
|
|
122
|
-
onDisconnected: async () => {
|
|
123
|
-
if (!peer.advertizing) {
|
|
124
|
-
await this._destroyPeer(peer.id);
|
|
125
|
-
}
|
|
126
|
-
this.disconnected.emit(peerId);
|
|
127
|
-
this._topology.update();
|
|
128
|
-
},
|
|
129
|
-
onRejected: () => {
|
|
130
|
-
// If the peer rejected our connection remove it from the set of candidates.
|
|
131
|
-
// TODO(dmaretskyi): Set flag instead.
|
|
132
|
-
if (this._peers.has(peerId)) {
|
|
133
|
-
void this._destroyPeer(peerId);
|
|
134
|
-
}
|
|
135
|
-
},
|
|
136
|
-
onAccepted: () => {
|
|
137
|
-
this._topology.update();
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
this._peers.set(peerId, peer);
|
|
141
|
-
}
|
|
142
|
-
return peer;
|
|
143
|
-
}
|
|
144
|
-
async _destroyPeer(peerId) {
|
|
145
|
-
(0, node_assert_1.default)(this._peers.has(peerId));
|
|
146
|
-
await this._peers.get(peerId).destroy();
|
|
147
|
-
this._peers.delete(peerId);
|
|
148
|
-
}
|
|
149
|
-
onSwarmEvent(swarmEvent) {
|
|
150
|
-
(0, log_1.log)('swarm event', { id: this.id, topic: this._topic, swarmEvent }, { file: "packages/core/mesh/network-manager/src/swarm/swarm.ts", line: 183, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) }); // TODO(burdon): Stringify.
|
|
151
|
-
if (this._destroyed) {
|
|
152
|
-
log_1.log.warn('ignored for destroyed swarm', { peerId: this.id, topic: this._topic }, { file: "packages/core/mesh/network-manager/src/swarm/swarm.ts", line: 185, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) });
|
|
153
|
-
return;
|
|
154
|
-
}
|
|
155
|
-
if (swarmEvent.peerAvailable) {
|
|
156
|
-
const peerId = keys_1.PublicKey.from(swarmEvent.peerAvailable.peer);
|
|
157
|
-
(0, log_1.log)('new peer', { id: this.id, topic: this._topic, peerId }, { file: "packages/core/mesh/network-manager/src/swarm/swarm.ts", line: 191, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) });
|
|
158
|
-
if (!peerId.equals(this._ownPeerId)) {
|
|
159
|
-
const peer = this._getOrCreatePeer(peerId);
|
|
160
|
-
peer.advertizing = true;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
else if (swarmEvent.peerLeft) {
|
|
164
|
-
const peer = this._peers.get(keys_1.PublicKey.from(swarmEvent.peerLeft.peer));
|
|
165
|
-
if (peer) {
|
|
166
|
-
peer.advertizing = false;
|
|
167
|
-
if (!peer.connection) {
|
|
168
|
-
void this._destroyPeer(peer.id);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
this._topology.update();
|
|
173
|
-
}
|
|
174
|
-
async onOffer(message) {
|
|
175
|
-
var _a, _b;
|
|
176
|
-
(0, log_1.log)('offer', { id: this.id, topic: this._topic, message }, { file: "packages/core/mesh/network-manager/src/swarm/swarm.ts", line: 210, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) });
|
|
177
|
-
if (this._destroyed) {
|
|
178
|
-
log_1.log.warn('ignored for destroyed swarm', { peerId: this.id, topic: this._topic }, { file: "packages/core/mesh/network-manager/src/swarm/swarm.ts", line: 212, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) });
|
|
179
|
-
return { accept: false };
|
|
180
|
-
}
|
|
181
|
-
// Id of the peer offering us the connection.
|
|
182
|
-
(0, node_assert_1.default)(message.author);
|
|
183
|
-
const remoteId = message.author;
|
|
184
|
-
if (!((_a = message.recipient) === null || _a === void 0 ? void 0 : _a.equals(this._ownPeerId))) {
|
|
185
|
-
(0, log_1.log)('rejecting offer with incorrect peerId', { id: this.id, topic: this._topic, message }, { file: "packages/core/mesh/network-manager/src/swarm/swarm.ts", line: 220, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) });
|
|
186
|
-
return { accept: false };
|
|
187
|
-
}
|
|
188
|
-
if (!((_b = message.topic) === null || _b === void 0 ? void 0 : _b.equals(this._topic))) {
|
|
189
|
-
(0, log_1.log)('rejecting offer with incorrect topic', { id: this.id, topic: this._topic, message }, { file: "packages/core/mesh/network-manager/src/swarm/swarm.ts", line: 224, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) });
|
|
190
|
-
return { accept: false };
|
|
191
|
-
}
|
|
192
|
-
const peer = this._getOrCreatePeer(remoteId);
|
|
193
|
-
// Check if we are already trying to connect to that peer.
|
|
194
|
-
if (peer.connection) {
|
|
195
|
-
// Peer with the highest Id closes its connection, and accepts remote peer's offer.
|
|
196
|
-
if (remoteId.toHex() < this._ownPeerId.toHex()) {
|
|
197
|
-
(0, log_1.log)("closing local connection and accepting remote peer's offer", {
|
|
198
|
-
id: this.id,
|
|
199
|
-
topic: this._topic,
|
|
200
|
-
peerId: this._ownPeerId
|
|
201
|
-
}, { file: "packages/core/mesh/network-manager/src/swarm/swarm.ts", line: 234, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) });
|
|
202
|
-
// Close our connection and accept remote peer's connection.
|
|
203
|
-
await this._closeConnection(remoteId).catch((err) => {
|
|
204
|
-
this.errors.raise(err);
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
else {
|
|
208
|
-
// Continue with our origination attempt, the remote peer will close it's connection and accept ours.
|
|
209
|
-
return { accept: true };
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
let accept = false;
|
|
213
|
-
if (await this._topology.onOffer(remoteId)) {
|
|
214
|
-
if (!peer.connection) {
|
|
215
|
-
// Connection might have been already established.
|
|
216
|
-
(0, node_assert_1.default)(message.sessionId);
|
|
217
|
-
const connection = this._createConnection(false, message.author, message.sessionId);
|
|
218
|
-
try {
|
|
219
|
-
connection.openConnection();
|
|
220
|
-
}
|
|
221
|
-
catch (err) {
|
|
222
|
-
this.errors.raise(err);
|
|
223
|
-
}
|
|
224
|
-
accept = true;
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
this._topology.update();
|
|
228
|
-
return { accept };
|
|
229
|
-
}
|
|
230
|
-
async onSignal(message) {
|
|
231
|
-
var _a, _b;
|
|
232
|
-
(0, log_1.log)('signal', { id: this.id, topic: this._topic, message }, { file: "packages/core/mesh/network-manager/src/swarm/swarm.ts", line: 270, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) });
|
|
233
|
-
if (this._destroyed) {
|
|
234
|
-
log_1.log.warn('ignored for destroyed swarm', { peerId: this.id, topic: this._topic }, { file: "packages/core/mesh/network-manager/src/swarm/swarm.ts", line: 272, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) });
|
|
235
|
-
return;
|
|
236
|
-
}
|
|
237
|
-
(0, node_assert_1.default)((_a = message.recipient) === null || _a === void 0 ? void 0 : _a.equals(this._ownPeerId), `Invalid signal peer id expected=${this.ownPeerId}, actual=${message.recipient}`);
|
|
238
|
-
(0, node_assert_1.default)((_b = message.topic) === null || _b === void 0 ? void 0 : _b.equals(this._topic));
|
|
239
|
-
(0, node_assert_1.default)(message.author);
|
|
240
|
-
const peer = this._getOrCreatePeer(message.author);
|
|
241
|
-
await peer.onSignal(message);
|
|
242
|
-
}
|
|
243
|
-
_getSwarmController() {
|
|
244
|
-
return {
|
|
245
|
-
getState: () => ({
|
|
246
|
-
ownPeerId: this._ownPeerId,
|
|
247
|
-
connected: Array.from(this._peers.values())
|
|
248
|
-
.filter((peer) => peer.connection)
|
|
249
|
-
.map((peer) => peer.id),
|
|
250
|
-
candidates: Array.from(this._peers.values())
|
|
251
|
-
.filter((peer) => !peer.connection && peer.advertizing)
|
|
252
|
-
.map((peer) => peer.id)
|
|
253
|
-
}),
|
|
254
|
-
connect: (peer) => this._initiateConnection(peer),
|
|
255
|
-
disconnect: async (peer) => {
|
|
256
|
-
try {
|
|
257
|
-
await this._closeConnection(peer);
|
|
258
|
-
}
|
|
259
|
-
catch (err) {
|
|
260
|
-
this.errors.raise(err);
|
|
261
|
-
}
|
|
262
|
-
this._topology.update();
|
|
263
|
-
}
|
|
264
|
-
};
|
|
265
|
-
}
|
|
266
|
-
/**
|
|
267
|
-
* Creates a connection then sends message over signal network.
|
|
268
|
-
*/
|
|
269
|
-
async _initiateConnection(remoteId) {
|
|
270
|
-
var _a;
|
|
271
|
-
// It is likely that the other peer will also try to connect to us at the same time.
|
|
272
|
-
// If our peerId is higher, we will wait for a bit so that other peer has a chance to connect first.
|
|
273
|
-
if (remoteId.toHex() < this._ownPeerId.toHex()) {
|
|
274
|
-
await (0, async_1.sleep)(INITIATION_DELAY);
|
|
275
|
-
}
|
|
276
|
-
if ((_a = this._peers.get(remoteId)) === null || _a === void 0 ? void 0 : _a.connection) {
|
|
277
|
-
// Do nothing if peer is already connected.
|
|
278
|
-
return;
|
|
279
|
-
}
|
|
280
|
-
const sessionId = keys_1.PublicKey.random();
|
|
281
|
-
(0, log_1.log)('initiating...', { id: this.id, topic: this._topic, peerId: remoteId, sessionId }, { file: "packages/core/mesh/network-manager/src/swarm/swarm.ts", line: 326, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) });
|
|
282
|
-
const connection = this._createConnection(true, remoteId, sessionId);
|
|
283
|
-
connection.initiate();
|
|
284
|
-
this._topology.update();
|
|
285
|
-
(0, log_1.log)('initiated', { id: this.id, topic: this._topic }, { file: "packages/core/mesh/network-manager/src/swarm/swarm.ts", line: 330, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) });
|
|
286
|
-
}
|
|
287
|
-
/**
|
|
288
|
-
* Synchronously create a connection, which must be initialized.
|
|
289
|
-
*/
|
|
290
|
-
_createConnection(initiator, remoteId, sessionId) {
|
|
291
|
-
const peer = this._getOrCreatePeer(remoteId);
|
|
292
|
-
const connection = peer.createConnection(this._swarmMessenger, initiator, sessionId, this._protocolProvider({ channel: (0, crypto_1.discoveryKey)(this._topic), initiator }), this._transportFactory);
|
|
293
|
-
this.connectionAdded.emit(connection);
|
|
294
|
-
return connection;
|
|
295
|
-
}
|
|
296
|
-
async _closeConnection(peerId) {
|
|
297
|
-
const peer = this._peers.get(peerId);
|
|
298
|
-
if (!peer) {
|
|
299
|
-
return;
|
|
300
|
-
}
|
|
301
|
-
await peer.closeConnection();
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
exports.Swarm = Swarm;
|
|
305
|
-
//# sourceMappingURL=swarm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"swarm.js","sourceRoot":"","sources":["../../../src/swarm/swarm.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"swarm.test.d.ts","sourceRoot":"","sources":["../../../src/swarm/swarm.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
//
|
|
3
|
-
// Copyright 2020 DXOS.org
|
|
4
|
-
//
|
|
5
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
// @dxos/mocha platform=nodejs
|
|
10
|
-
const earljs_1 = require("earljs");
|
|
11
|
-
const wait_for_expect_1 = __importDefault(require("wait-for-expect"));
|
|
12
|
-
const async_1 = require("@dxos/async");
|
|
13
|
-
const keys_1 = require("@dxos/keys");
|
|
14
|
-
const log_1 = require("@dxos/log");
|
|
15
|
-
const messaging_1 = require("@dxos/messaging");
|
|
16
|
-
const testutils_1 = require("@dxos/testutils");
|
|
17
|
-
const testing_1 = require("../testing");
|
|
18
|
-
const topology_1 = require("../topology");
|
|
19
|
-
const transport_1 = require("../transport");
|
|
20
|
-
const swarm_1 = require("./swarm");
|
|
21
|
-
describe('Swarm', function () {
|
|
22
|
-
const context = new messaging_1.MemorySignalManagerContext();
|
|
23
|
-
let signalManager;
|
|
24
|
-
beforeEach(function () {
|
|
25
|
-
signalManager = new messaging_1.MemorySignalManager(context);
|
|
26
|
-
(0, testutils_1.afterTest)(() => signalManager.destroy());
|
|
27
|
-
});
|
|
28
|
-
const setupSwarm = ({ topic, peerId }) => {
|
|
29
|
-
const plugin = new testing_1.TestProtocolPlugin(peerId.asBuffer());
|
|
30
|
-
const swarm = new swarm_1.Swarm(topic, peerId, new topology_1.FullyConnectedTopology(), (0, testing_1.testProtocolProvider)(topic.asBuffer(), peerId, plugin), new messaging_1.Messenger({ signalManager }), (0, transport_1.createWebRTCTransportFactory)(), undefined);
|
|
31
|
-
(0, testutils_1.afterTest)(async () => {
|
|
32
|
-
await swarm.destroy();
|
|
33
|
-
});
|
|
34
|
-
return { swarm, plugin };
|
|
35
|
-
};
|
|
36
|
-
it('connects two peers in a swarm', async function () {
|
|
37
|
-
const topic = keys_1.PublicKey.random();
|
|
38
|
-
const peerId1 = keys_1.PublicKey.random();
|
|
39
|
-
const peerId2 = keys_1.PublicKey.random();
|
|
40
|
-
const data = 'Hello';
|
|
41
|
-
const { swarm: swarm1, plugin: plugin1 } = setupSwarm({ topic, peerId: peerId1 });
|
|
42
|
-
let receivedData;
|
|
43
|
-
plugin1.on('receive', async (_, payload) => {
|
|
44
|
-
receivedData = payload;
|
|
45
|
-
});
|
|
46
|
-
const { swarm: swarm2, plugin: plugin2 } = setupSwarm({ topic, peerId: peerId2 });
|
|
47
|
-
plugin2.on('connect', async () => {
|
|
48
|
-
await plugin2.send(peerId1.asBuffer(), data);
|
|
49
|
-
});
|
|
50
|
-
(0, earljs_1.expect)(swarm1.connections.length).toEqual(0);
|
|
51
|
-
(0, earljs_1.expect)(swarm2.connections.length).toEqual(0);
|
|
52
|
-
const promise = Promise.all([
|
|
53
|
-
(0, async_1.asyncTimeout)(swarm1.connected.waitForCount(1), 3000, new Error('Swarm1 connect timeout.')),
|
|
54
|
-
(0, async_1.asyncTimeout)(swarm2.connected.waitForCount(1), 3000, new Error('Swarm2 connect timeout.'))
|
|
55
|
-
]);
|
|
56
|
-
// Behavior of the Signal Server.
|
|
57
|
-
swarm1.onSwarmEvent({
|
|
58
|
-
peerAvailable: {
|
|
59
|
-
peer: peerId1.asUint8Array(),
|
|
60
|
-
since: new Date()
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
swarm1.onSwarmEvent({
|
|
64
|
-
peerAvailable: {
|
|
65
|
-
peer: peerId2.asUint8Array(),
|
|
66
|
-
since: new Date()
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
(0, log_1.log)('Candidates changed', {}, { file: "packages/core/mesh/network-manager/src/swarm/swarm.test.ts", line: 89, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) });
|
|
70
|
-
await promise;
|
|
71
|
-
(0, log_1.log)('Swarms connected', {}, { file: "packages/core/mesh/network-manager/src/swarm/swarm.test.ts", line: 91, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) });
|
|
72
|
-
await (0, wait_for_expect_1.default)(() => {
|
|
73
|
-
(0, earljs_1.expect)(receivedData).toEqual(data);
|
|
74
|
-
});
|
|
75
|
-
}).timeout(5000);
|
|
76
|
-
it('two peers try to originate connections to each other simultaneously', async function () {
|
|
77
|
-
const topic = keys_1.PublicKey.random();
|
|
78
|
-
const peerId1 = keys_1.PublicKey.random();
|
|
79
|
-
const peerId2 = keys_1.PublicKey.random();
|
|
80
|
-
const { swarm: swarm1 } = setupSwarm({ topic, peerId: peerId1 });
|
|
81
|
-
const { swarm: swarm2 } = setupSwarm({ topic, peerId: peerId2 });
|
|
82
|
-
(0, earljs_1.expect)(swarm1.connections.length).toEqual(0);
|
|
83
|
-
(0, earljs_1.expect)(swarm2.connections.length).toEqual(0);
|
|
84
|
-
const connectPromises = Promise.all([swarm1.connected.waitForCount(1), swarm2.connected.waitForCount(1)]);
|
|
85
|
-
swarm1.onSwarmEvent({
|
|
86
|
-
peerAvailable: {
|
|
87
|
-
peer: peerId2.asUint8Array(),
|
|
88
|
-
since: new Date()
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
swarm2.onSwarmEvent({
|
|
92
|
-
peerAvailable: {
|
|
93
|
-
peer: peerId1.asUint8Array(),
|
|
94
|
-
since: new Date()
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
await connectPromises;
|
|
98
|
-
}).timeout(5000);
|
|
99
|
-
it('second peer discovered after delay', async function () {
|
|
100
|
-
const topic = keys_1.PublicKey.random();
|
|
101
|
-
const peerId1 = keys_1.PublicKey.random();
|
|
102
|
-
const peerId2 = keys_1.PublicKey.random();
|
|
103
|
-
const data = 'Hello';
|
|
104
|
-
const { swarm: swarm1, plugin: plugin1 } = setupSwarm({ topic, peerId: peerId1 });
|
|
105
|
-
let receivedData;
|
|
106
|
-
plugin1.on('receive', async (_, payload) => {
|
|
107
|
-
receivedData = payload;
|
|
108
|
-
});
|
|
109
|
-
const { swarm: swarm2, plugin: plugin2 } = setupSwarm({ topic, peerId: peerId2 });
|
|
110
|
-
plugin2.on('connect', async () => {
|
|
111
|
-
await plugin2.send(peerId1.asBuffer(), data);
|
|
112
|
-
});
|
|
113
|
-
(0, earljs_1.expect)(swarm1.connections.length).toEqual(0);
|
|
114
|
-
(0, earljs_1.expect)(swarm2.connections.length).toEqual(0);
|
|
115
|
-
const connectPromises = Promise.all([swarm1.connected.waitForCount(1), swarm2.connected.waitForCount(1)]);
|
|
116
|
-
swarm1.onSwarmEvent({
|
|
117
|
-
peerAvailable: {
|
|
118
|
-
peer: peerId2.asUint8Array(),
|
|
119
|
-
since: new Date()
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
await (0, async_1.sleep)(15);
|
|
123
|
-
swarm2.onSwarmEvent({
|
|
124
|
-
peerAvailable: {
|
|
125
|
-
peer: peerId1.asUint8Array(),
|
|
126
|
-
since: new Date()
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
await connectPromises;
|
|
130
|
-
await (0, wait_for_expect_1.default)(() => {
|
|
131
|
-
(0, earljs_1.expect)(receivedData).toEqual(data);
|
|
132
|
-
});
|
|
133
|
-
}).timeout(10000);
|
|
134
|
-
});
|
|
135
|
-
//# sourceMappingURL=swarm.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"swarm.test.js","sourceRoot":"","sources":["../../../src/swarm/swarm.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
//
|
|
3
|
-
// Copyright 2020 DXOS.org
|
|
4
|
-
//
|
|
5
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
-
}
|
|
11
|
-
Object.defineProperty(o, k2, desc);
|
|
12
|
-
}) : (function(o, m, k, k2) {
|
|
13
|
-
if (k2 === undefined) k2 = k;
|
|
14
|
-
o[k2] = m[k];
|
|
15
|
-
}));
|
|
16
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
-
};
|
|
19
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
__exportStar(require("./test-builder"), exports);
|
|
21
|
-
__exportStar(require("./test-protocol"), exports);
|
|
22
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;AAEF,iDAA+B;AAC/B,kDAAgC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-builder.d.ts","sourceRoot":"","sources":["../../../src/testing/test-builder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAA8B,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAK1G,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAQrD,OAAO,EAAE,kBAAkB,EAAwB,MAAM,iBAAiB,CAAC;AAG3E,eAAO,MAAM,eAAe,8CAA8C,CAAC;AAE3E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,qBAAa,WAAW;aAGM,OAAO,EAAE,kBAAkB;IAFvD,OAAO,CAAC,cAAc,CAAoC;gBAE9B,OAAO,GAAE,kBAAuB;IAE5D,mBAAmB;IAQnB,UAAU;CAGX;AAED;;GAEG;AACH,qBAAa,QAAQ;IAaP,OAAO,CAAC,QAAQ,CAAC,WAAW;IAZxC,QAAQ,CAAC,MAAM,YAAsB;IAErC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkE;IAO1F,OAAO,CAAC,MAAM,CAAC,CAAoB;IACnC,OAAO,CAAC,QAAQ,CAAC,CAAoB;gBAER,WAAW,EAAE,WAAW;IAKrD,oBAAoB;IA6Cd,IAAI;IAKJ,KAAK;IASX,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,mBAAmB;IAS/C,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,mBAAmB;CAUnD;AAGD,qBAAa,mBAAmB;IAGlB,QAAQ,CAAC,IAAI,EAAE,QAAQ;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS;IAF9D,MAAM,EAAE,kBAAkB,CAAC;gBAEN,IAAI,EAAE,QAAQ,EAAW,KAAK,EAAE,SAAS;IAQxD,IAAI,CAAC,QAAQ,yBAA+B;IAW5C,KAAK;CAIZ"}
|