@dxos/network-manager 0.1.0
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 +21 -0
- package/dist/src/connection-log.d.ts +23 -0
- package/dist/src/connection-log.d.ts.map +1 -0
- package/dist/src/connection-log.js +98 -0
- package/dist/src/connection-log.js.map +1 -0
- package/dist/src/index.d.ts +9 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +28 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/network-manager.d.ts +80 -0
- package/dist/src/network-manager.d.ts.map +1 -0
- package/dist/src/network-manager.js +123 -0
- package/dist/src/network-manager.js.map +1 -0
- package/dist/src/network-manager.test.d.ts +2 -0
- package/dist/src/network-manager.test.d.ts.map +1 -0
- package/dist/src/network-manager.test.js +621 -0
- package/dist/src/network-manager.test.js.map +1 -0
- package/dist/src/presence.test.d.ts +2 -0
- package/dist/src/presence.test.d.ts.map +1 -0
- package/dist/src/presence.test.js +60 -0
- package/dist/src/presence.test.js.map +1 -0
- package/dist/src/protocol-factory.d.ts +30 -0
- package/dist/src/protocol-factory.d.ts.map +1 -0
- package/dist/src/protocol-factory.js +64 -0
- package/dist/src/protocol-factory.js.map +1 -0
- package/dist/src/signal/index.d.ts +4 -0
- package/dist/src/signal/index.d.ts.map +1 -0
- package/dist/src/signal/index.js +23 -0
- package/dist/src/signal/index.js.map +1 -0
- package/dist/src/signal/integration.test.d.ts +2 -0
- package/dist/src/signal/integration.test.d.ts.map +1 -0
- package/dist/src/signal/integration.test.js +105 -0
- package/dist/src/signal/integration.test.js.map +1 -0
- package/dist/src/signal/message-router.d.ts +39 -0
- package/dist/src/signal/message-router.d.ts.map +1 -0
- package/dist/src/signal/message-router.js +135 -0
- package/dist/src/signal/message-router.js.map +1 -0
- package/dist/src/signal/message-router.test.d.ts +2 -0
- package/dist/src/signal/message-router.test.d.ts.map +1 -0
- package/dist/src/signal/message-router.test.js +211 -0
- package/dist/src/signal/message-router.test.js.map +1 -0
- package/dist/src/signal/signal-connection.d.ts +21 -0
- package/dist/src/signal/signal-connection.d.ts.map +1 -0
- package/dist/src/signal/signal-connection.js +6 -0
- package/dist/src/signal/signal-connection.js.map +1 -0
- package/dist/src/signal/signal-messaging.d.ts +34 -0
- package/dist/src/signal/signal-messaging.d.ts.map +1 -0
- package/dist/src/signal/signal-messaging.js +6 -0
- package/dist/src/signal/signal-messaging.js.map +1 -0
- package/dist/src/swarm/connection.d.ts +69 -0
- package/dist/src/swarm/connection.d.ts.map +1 -0
- package/dist/src/swarm/connection.js +187 -0
- package/dist/src/swarm/connection.js.map +1 -0
- package/dist/src/swarm/index.d.ts +4 -0
- package/dist/src/swarm/index.d.ts.map +1 -0
- package/dist/src/swarm/index.js +23 -0
- package/dist/src/swarm/index.js.map +1 -0
- package/dist/src/swarm/swarm-mapper.d.ts +30 -0
- package/dist/src/swarm/swarm-mapper.d.ts.map +1 -0
- package/dist/src/swarm/swarm-mapper.js +90 -0
- package/dist/src/swarm/swarm-mapper.js.map +1 -0
- package/dist/src/swarm/swarm.d.ts +64 -0
- package/dist/src/swarm/swarm.d.ts.map +1 -0
- package/dist/src/swarm/swarm.js +276 -0
- package/dist/src/swarm/swarm.js.map +1 -0
- package/dist/src/swarm/swarm.test.d.ts +2 -0
- package/dist/src/swarm/swarm.test.d.ts.map +1 -0
- package/dist/src/swarm/swarm.test.js +145 -0
- package/dist/src/swarm/swarm.test.js.map +1 -0
- package/dist/src/testing/index.d.ts +2 -0
- package/dist/src/testing/index.d.ts.map +1 -0
- package/dist/src/testing/index.js +21 -0
- package/dist/src/testing/index.js.map +1 -0
- package/dist/src/testing/test-protocol.d.ts +59 -0
- package/dist/src/testing/test-protocol.d.ts.map +1 -0
- package/dist/src/testing/test-protocol.js +140 -0
- package/dist/src/testing/test-protocol.js.map +1 -0
- package/dist/src/topology/fully-connected-topology.d.ts +11 -0
- package/dist/src/topology/fully-connected-topology.d.ts.map +1 -0
- package/dist/src/topology/fully-connected-topology.js +34 -0
- package/dist/src/topology/fully-connected-topology.js.map +1 -0
- package/dist/src/topology/index.d.ts +5 -0
- package/dist/src/topology/index.d.ts.map +1 -0
- package/dist/src/topology/index.js +24 -0
- package/dist/src/topology/index.js.map +1 -0
- package/dist/src/topology/mmst-topology.d.ts +31 -0
- package/dist/src/topology/mmst-topology.d.ts.map +1 -0
- package/dist/src/topology/mmst-topology.js +73 -0
- package/dist/src/topology/mmst-topology.js.map +1 -0
- package/dist/src/topology/star-topology.d.ts +13 -0
- package/dist/src/topology/star-topology.d.ts.map +1 -0
- package/dist/src/topology/star-topology.js +60 -0
- package/dist/src/topology/star-topology.js.map +1 -0
- package/dist/src/topology/topology.d.ts +56 -0
- package/dist/src/topology/topology.d.ts.map +1 -0
- package/dist/src/topology/topology.js +6 -0
- package/dist/src/topology/topology.js.map +1 -0
- package/dist/src/transport/index.d.ts +6 -0
- package/dist/src/transport/index.d.ts.map +1 -0
- package/dist/src/transport/index.js +25 -0
- package/dist/src/transport/index.js.map +1 -0
- package/dist/src/transport/memory-transport.d.ts +32 -0
- package/dist/src/transport/memory-transport.d.ts.map +1 -0
- package/dist/src/transport/memory-transport.js +98 -0
- package/dist/src/transport/memory-transport.js.map +1 -0
- package/dist/src/transport/memory-transport.test.d.ts +2 -0
- package/dist/src/transport/memory-transport.test.d.ts.map +1 -0
- package/dist/src/transport/memory-transport.test.js +84 -0
- package/dist/src/transport/memory-transport.test.js.map +1 -0
- package/dist/src/transport/transport.d.ts +38 -0
- package/dist/src/transport/transport.d.ts.map +1 -0
- package/dist/src/transport/transport.js +6 -0
- package/dist/src/transport/transport.js.map +1 -0
- package/dist/src/transport/webrtc-transport-proxy.d.ts +48 -0
- package/dist/src/transport/webrtc-transport-proxy.d.ts.map +1 -0
- package/dist/src/transport/webrtc-transport-proxy.js +139 -0
- package/dist/src/transport/webrtc-transport-proxy.js.map +1 -0
- package/dist/src/transport/webrtc-transport-proxy.test.d.ts +2 -0
- package/dist/src/transport/webrtc-transport-proxy.test.d.ts.map +1 -0
- package/dist/src/transport/webrtc-transport-proxy.test.js +245 -0
- package/dist/src/transport/webrtc-transport-proxy.test.js.map +1 -0
- package/dist/src/transport/webrtc-transport-service.d.ts +15 -0
- package/dist/src/transport/webrtc-transport-service.d.ts.map +1 -0
- package/dist/src/transport/webrtc-transport-service.js +97 -0
- package/dist/src/transport/webrtc-transport-service.js.map +1 -0
- package/dist/src/transport/webrtc-transport.d.ts +34 -0
- package/dist/src/transport/webrtc-transport.d.ts.map +1 -0
- package/dist/src/transport/webrtc-transport.js +100 -0
- package/dist/src/transport/webrtc-transport.js.map +1 -0
- package/dist/src/transport/webrtc-transport.test.d.ts +2 -0
- package/dist/src/transport/webrtc-transport.test.d.ts.map +1 -0
- package/dist/src/transport/webrtc-transport.test.js +80 -0
- package/dist/src/transport/webrtc-transport.test.js.map +1 -0
- package/dist/src/transport/webrtc.d.ts +6 -0
- package/dist/src/transport/webrtc.d.ts.map +1 -0
- package/dist/src/transport/webrtc.js +17 -0
- package/dist/src/transport/webrtc.js.map +1 -0
- package/dist/src/transport/wrtc-simple-peer.test.d.ts +2 -0
- package/dist/src/transport/wrtc-simple-peer.test.d.ts.map +1 -0
- package/dist/src/transport/wrtc-simple-peer.test.js +24 -0
- package/dist/src/transport/wrtc-simple-peer.test.js.map +1 -0
- package/dist/src/types.d.ts +6 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +6 -0
- package/dist/src/types.js.map +1 -0
- package/package.json +58 -0
- package/src/connection-log.ts +102 -0
- package/src/globals.d.ts +7 -0
- package/src/index.ts +12 -0
- package/src/network-manager.test.ts +764 -0
- package/src/network-manager.ts +204 -0
- package/src/presence.test.ts +78 -0
- package/src/protocol-factory.ts +83 -0
- package/src/signal/index.ts +7 -0
- package/src/signal/integration.test.ts +129 -0
- package/src/signal/message-router.test.ts +274 -0
- package/src/signal/message-router.ts +200 -0
- package/src/signal/signal-connection.ts +20 -0
- package/src/signal/signal-messaging.ts +38 -0
- package/src/swarm/connection.ts +206 -0
- package/src/swarm/index.ts +7 -0
- package/src/swarm/swarm-mapper.ts +120 -0
- package/src/swarm/swarm.test.ts +192 -0
- package/src/swarm/swarm.ts +328 -0
- package/src/testing/index.ts +5 -0
- package/src/testing/test-protocol.ts +160 -0
- package/src/topology/fully-connected-topology.ts +38 -0
- package/src/topology/index.ts +8 -0
- package/src/topology/mmst-topology.ts +105 -0
- package/src/topology/star-topology.ts +67 -0
- package/src/topology/topology.ts +69 -0
- package/src/transport/index.ts +9 -0
- package/src/transport/memory-transport.test.ts +110 -0
- package/src/transport/memory-transport.ts +128 -0
- package/src/transport/transport.ts +47 -0
- package/src/transport/webrtc-transport-proxy.test.ts +290 -0
- package/src/transport/webrtc-transport-proxy.ts +167 -0
- package/src/transport/webrtc-transport-service.ts +115 -0
- package/src/transport/webrtc-transport.test.ts +112 -0
- package/src/transport/webrtc-transport.ts +122 -0
- package/src/transport/webrtc.ts +15 -0
- package/src/transport/wrtc-simple-peer.test.ts +24 -0
- package/src/types.ts +10 -0
- package/src/typings.d.ts +7 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022 DXOS.org
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Event } from '@dxos/async';
|
|
2
|
+
import { PublicKey } from '@dxos/keys';
|
|
3
|
+
import { SwarmInfo } from '@dxos/protocols/proto/dxos/devtools/swarmLog';
|
|
4
|
+
import { Swarm } from './swarm';
|
|
5
|
+
export declare enum EventType {
|
|
6
|
+
CONNECTION_STATE_CHANGED = "CONNECTION_STATE_CHANGED",
|
|
7
|
+
PROTOCOL_ERROR = "PROTOCOL_ERROR",
|
|
8
|
+
PROTOCOL_EXTENSIONS_INITIALIZED = "PROTOCOL_EXTENSIONS_INITIALIZED",
|
|
9
|
+
PROTOCOL_EXTENSIONS_HANDSHAKE = "PROTOCOL_EXTENSIONS_HANDSHAKE",
|
|
10
|
+
PROTOCOL_HANDSHAKE = "PROTOCOL_HANDSHAKE"
|
|
11
|
+
}
|
|
12
|
+
export declare class ConnectionLog {
|
|
13
|
+
/**
|
|
14
|
+
* SwarmId => info
|
|
15
|
+
*/
|
|
16
|
+
private readonly _swarms;
|
|
17
|
+
readonly update: Event<void>;
|
|
18
|
+
getSwarmInfo(swarmId: PublicKey): SwarmInfo;
|
|
19
|
+
get swarms(): SwarmInfo[];
|
|
20
|
+
swarmJoined(swarm: Swarm): void;
|
|
21
|
+
swarmLeft(swarm: Swarm): void;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=connection-log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection-log.d.ts","sourceRoot":"","sources":["../../src/connection-log.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,SAAS,EAAkB,MAAM,8CAA8C,CAAC;AAGzF,OAAO,EAAmB,KAAK,EAAE,MAAM,SAAS,CAAC;AAEjD,oBAAY,SAAS;IACnB,wBAAwB,6BAA6B;IACrD,cAAc,mBAAmB;IACjC,+BAA+B,oCAAoC;IACnE,6BAA6B,kCAAkC;IAC/D,kBAAkB,uBAAuB;CAC1C;AAED,qBAAa,aAAa;IACxB;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwD;IAEhF,QAAQ,CAAC,MAAM,cAAe;IAE9B,YAAY,CAAC,OAAO,EAAE,SAAS;IAI/B,IAAI,MAAM,IAAI,SAAS,EAAE,CAExB;IAED,WAAW,CAAC,KAAK,EAAE,KAAK;IA6DxB,SAAS,CAAC,KAAK,EAAE,KAAK;CAIvB"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//
|
|
3
|
+
// Copyright 2021 DXOS.org
|
|
4
|
+
//
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ConnectionLog = exports.EventType = void 0;
|
|
7
|
+
const async_1 = require("@dxos/async");
|
|
8
|
+
const debug_1 = require("@dxos/debug");
|
|
9
|
+
const keys_1 = require("@dxos/keys");
|
|
10
|
+
const util_1 = require("@dxos/util");
|
|
11
|
+
const swarm_1 = require("./swarm");
|
|
12
|
+
var EventType;
|
|
13
|
+
(function (EventType) {
|
|
14
|
+
EventType["CONNECTION_STATE_CHANGED"] = "CONNECTION_STATE_CHANGED";
|
|
15
|
+
EventType["PROTOCOL_ERROR"] = "PROTOCOL_ERROR";
|
|
16
|
+
EventType["PROTOCOL_EXTENSIONS_INITIALIZED"] = "PROTOCOL_EXTENSIONS_INITIALIZED";
|
|
17
|
+
EventType["PROTOCOL_EXTENSIONS_HANDSHAKE"] = "PROTOCOL_EXTENSIONS_HANDSHAKE";
|
|
18
|
+
EventType["PROTOCOL_HANDSHAKE"] = "PROTOCOL_HANDSHAKE";
|
|
19
|
+
})(EventType = exports.EventType || (exports.EventType = {}));
|
|
20
|
+
class ConnectionLog {
|
|
21
|
+
constructor() {
|
|
22
|
+
/**
|
|
23
|
+
* SwarmId => info
|
|
24
|
+
*/
|
|
25
|
+
this._swarms = new util_1.ComplexMap(keys_1.PublicKey.hash);
|
|
26
|
+
this.update = new async_1.Event();
|
|
27
|
+
}
|
|
28
|
+
getSwarmInfo(swarmId) {
|
|
29
|
+
var _a;
|
|
30
|
+
return (_a = this._swarms.get(swarmId)) !== null && _a !== void 0 ? _a : (0, debug_1.raise)(new Error(`Swarm not found: ${swarmId}`));
|
|
31
|
+
}
|
|
32
|
+
get swarms() {
|
|
33
|
+
return Array.from(this._swarms.values());
|
|
34
|
+
}
|
|
35
|
+
swarmJoined(swarm) {
|
|
36
|
+
const info = {
|
|
37
|
+
id: swarm.id,
|
|
38
|
+
topic: swarm.topic,
|
|
39
|
+
isActive: true,
|
|
40
|
+
label: swarm.label,
|
|
41
|
+
connections: []
|
|
42
|
+
};
|
|
43
|
+
this._swarms.set(swarm.id, info);
|
|
44
|
+
this.update.emit();
|
|
45
|
+
swarm.connectionAdded.on((connection) => {
|
|
46
|
+
const connectionInfo = {
|
|
47
|
+
state: swarm_1.ConnectionState.INITIAL,
|
|
48
|
+
remotePeerId: connection.remoteId,
|
|
49
|
+
sessionId: connection.sessionId,
|
|
50
|
+
transport: connection.transport && Object.getPrototypeOf(connection.transport).constructor.name,
|
|
51
|
+
protocolExtensions: connection.protocol.extensionNames,
|
|
52
|
+
events: []
|
|
53
|
+
};
|
|
54
|
+
info.connections.push(connectionInfo);
|
|
55
|
+
this.update.emit();
|
|
56
|
+
connection.stateChanged.on((state) => {
|
|
57
|
+
connectionInfo.state = state;
|
|
58
|
+
connectionInfo.events.push({
|
|
59
|
+
type: EventType.CONNECTION_STATE_CHANGED,
|
|
60
|
+
newState: state
|
|
61
|
+
});
|
|
62
|
+
this.update.emit();
|
|
63
|
+
});
|
|
64
|
+
connection.protocol.error.on((error) => {
|
|
65
|
+
var _a;
|
|
66
|
+
connectionInfo.events.push({
|
|
67
|
+
type: EventType.PROTOCOL_ERROR,
|
|
68
|
+
error: (_a = error.stack) !== null && _a !== void 0 ? _a : error.message
|
|
69
|
+
});
|
|
70
|
+
this.update.emit();
|
|
71
|
+
});
|
|
72
|
+
connection.protocol.extensionsInitialized.on(() => {
|
|
73
|
+
connectionInfo.events.push({
|
|
74
|
+
type: EventType.PROTOCOL_EXTENSIONS_INITIALIZED
|
|
75
|
+
});
|
|
76
|
+
this.update.emit();
|
|
77
|
+
});
|
|
78
|
+
connection.protocol.extensionsHandshake.on(() => {
|
|
79
|
+
connectionInfo.events.push({
|
|
80
|
+
type: EventType.PROTOCOL_EXTENSIONS_HANDSHAKE
|
|
81
|
+
});
|
|
82
|
+
this.update.emit();
|
|
83
|
+
});
|
|
84
|
+
connection.protocol.handshake.on(() => {
|
|
85
|
+
connectionInfo.events.push({
|
|
86
|
+
type: EventType.PROTOCOL_HANDSHAKE
|
|
87
|
+
});
|
|
88
|
+
this.update.emit();
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
swarmLeft(swarm) {
|
|
93
|
+
this.getSwarmInfo(swarm.id).isActive = false;
|
|
94
|
+
this.update.emit();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
exports.ConnectionLog = ConnectionLog;
|
|
98
|
+
//# sourceMappingURL=connection-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection-log.js","sourceRoot":"","sources":["../../src/connection-log.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './network-manager';
|
|
2
|
+
export * from './protocol-factory';
|
|
3
|
+
export * from './swarm';
|
|
4
|
+
export * from './topology';
|
|
5
|
+
export * from './transport';
|
|
6
|
+
export * from './signal';
|
|
7
|
+
export * from './types';
|
|
8
|
+
export * from './connection-log';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
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("./network-manager"), exports);
|
|
21
|
+
__exportStar(require("./protocol-factory"), exports);
|
|
22
|
+
__exportStar(require("./swarm"), exports);
|
|
23
|
+
__exportStar(require("./topology"), exports);
|
|
24
|
+
__exportStar(require("./transport"), exports);
|
|
25
|
+
__exportStar(require("./signal"), exports);
|
|
26
|
+
__exportStar(require("./types"), exports);
|
|
27
|
+
__exportStar(require("./connection-log"), exports);
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;AAEF,oDAAkC;AAClC,qDAAmC;AACnC,0CAAwB;AACxB,6CAA2B;AAC3B,8CAA4B;AAC5B,2CAAyB;AACzB,0CAAwB;AACxB,mDAAiC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Event } from '@dxos/async';
|
|
3
|
+
import { PublicKey } from '@dxos/keys';
|
|
4
|
+
import { Protocol } from '@dxos/mesh-protocol';
|
|
5
|
+
import { SignalManager } from '@dxos/messaging';
|
|
6
|
+
import { ConnectionLog } from './connection-log';
|
|
7
|
+
import { Swarm, SwarmMapper } from './swarm';
|
|
8
|
+
import { Topology } from './topology';
|
|
9
|
+
import { TransportFactory } from './transport';
|
|
10
|
+
export declare type ProtocolProvider = (opts: {
|
|
11
|
+
channel: Buffer;
|
|
12
|
+
initiator: boolean;
|
|
13
|
+
}) => Protocol;
|
|
14
|
+
export declare type SwarmConnection = {
|
|
15
|
+
close(): Promise<void>;
|
|
16
|
+
};
|
|
17
|
+
export declare type SwarmOptions = {
|
|
18
|
+
/**
|
|
19
|
+
* Swarm topic.
|
|
20
|
+
*/
|
|
21
|
+
topic: PublicKey;
|
|
22
|
+
/**
|
|
23
|
+
* This node's peer id.
|
|
24
|
+
*/
|
|
25
|
+
peerId: PublicKey;
|
|
26
|
+
/**
|
|
27
|
+
* Protocol to use for every connection.
|
|
28
|
+
*/
|
|
29
|
+
protocol: ProtocolProvider;
|
|
30
|
+
/**
|
|
31
|
+
* Requested topology. Must be a new instance for every swarm.
|
|
32
|
+
*/
|
|
33
|
+
topology?: Topology;
|
|
34
|
+
/**
|
|
35
|
+
* Presence plugin for network mapping, if exists.
|
|
36
|
+
*/
|
|
37
|
+
presence?: any;
|
|
38
|
+
/**
|
|
39
|
+
* Custom label assigned to this swarm. Used in devtools to display human-readable names for swarms.
|
|
40
|
+
*/
|
|
41
|
+
label?: string;
|
|
42
|
+
};
|
|
43
|
+
export declare type NetworkManagerOptions = {
|
|
44
|
+
transportFactory: TransportFactory;
|
|
45
|
+
signalManager: SignalManager;
|
|
46
|
+
log?: boolean;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Manages connection to the swarm.
|
|
50
|
+
*/
|
|
51
|
+
export declare class NetworkManager {
|
|
52
|
+
private readonly _transportFactory;
|
|
53
|
+
private readonly _swarms;
|
|
54
|
+
private readonly _mappers;
|
|
55
|
+
private readonly _signalManager;
|
|
56
|
+
private readonly _messenger;
|
|
57
|
+
private readonly _signalConnection;
|
|
58
|
+
private readonly _connectionLog?;
|
|
59
|
+
readonly topicsUpdated: Event<void>;
|
|
60
|
+
constructor({ transportFactory, signalManager, log }: NetworkManagerOptions);
|
|
61
|
+
get signal(): SignalManager;
|
|
62
|
+
get topics(): PublicKey[];
|
|
63
|
+
get connectionLog(): ConnectionLog | undefined;
|
|
64
|
+
getSwarmMap(topic: PublicKey): SwarmMapper | undefined;
|
|
65
|
+
getSwarm(topic: PublicKey): Swarm | undefined;
|
|
66
|
+
/**
|
|
67
|
+
* Join the swarm.
|
|
68
|
+
*/
|
|
69
|
+
openSwarmConnection({ topic, peerId, topology, protocol, presence, label }: SwarmOptions): Promise<SwarmConnection>;
|
|
70
|
+
/**
|
|
71
|
+
* Close the connection.
|
|
72
|
+
*/
|
|
73
|
+
closeSwarmConnection(topic: PublicKey): Promise<void>;
|
|
74
|
+
/**
|
|
75
|
+
* @deprecated
|
|
76
|
+
*/
|
|
77
|
+
start(): Promise<void>;
|
|
78
|
+
destroy(): Promise<void>;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=network-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-manager.d.ts","sourceRoot":"","sources":["../../src/network-manager.ts"],"names":[],"mappings":";AAMA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAa,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG3D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,oBAAY,gBAAgB,GAAG,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,KAAK,QAAQ,CAAC;AAE3F,oBAAY,eAAe,GAAG;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC;AAGF,oBAAY,YAAY,GAAG;IACzB;;OAEG;IACH,KAAK,EAAE,SAAS,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,SAAS,CAAC;IAElB;;OAEG;IACH,QAAQ,EAAE,gBAAgB,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC;IAEf;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,oBAAY,qBAAqB,GAAG;IAClC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IAErD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoD;IAC5E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0D;IAEnF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IACrD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAgB;IAEhD,SAAgB,aAAa,cAAqB;gBAEtC,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,qBAAqB;IAkB3E,IAAI,MAAM,kBAET;IAGD,IAAI,MAAM,gBAET;IAGD,IAAI,aAAa,8BAEhB;IAED,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS;IAItD,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,GAAG,SAAS;IAI7C;;OAEG;IAEG,mBAAmB,CAAC,EACxB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,KAAK,EACN,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC;IA4B1C;;OAEG;IACG,oBAAoB,CAAC,KAAK,EAAE,SAAS;IAsB3C;;OAEG;IAEG,KAAK;IAKL,OAAO;CAUd"}
|
|
@@ -0,0 +1,123 @@
|
|
|
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.NetworkManager = void 0;
|
|
10
|
+
const node_assert_1 = __importDefault(require("node:assert"));
|
|
11
|
+
const async_1 = require("@dxos/async");
|
|
12
|
+
const keys_1 = require("@dxos/keys");
|
|
13
|
+
const log_1 = require("@dxos/log");
|
|
14
|
+
const messaging_1 = require("@dxos/messaging");
|
|
15
|
+
const util_1 = require("@dxos/util");
|
|
16
|
+
const connection_log_1 = require("./connection-log");
|
|
17
|
+
const swarm_1 = require("./swarm");
|
|
18
|
+
/**
|
|
19
|
+
* Manages connection to the swarm.
|
|
20
|
+
*/
|
|
21
|
+
class NetworkManager {
|
|
22
|
+
constructor({ transportFactory, signalManager, log }) {
|
|
23
|
+
this._swarms = new util_1.ComplexMap(keys_1.PublicKey.hash);
|
|
24
|
+
this._mappers = new util_1.ComplexMap(keys_1.PublicKey.hash);
|
|
25
|
+
this.topicsUpdated = new async_1.Event();
|
|
26
|
+
this._transportFactory = transportFactory;
|
|
27
|
+
// Listen for signal manager events.
|
|
28
|
+
this._signalManager = signalManager;
|
|
29
|
+
this._signalManager.swarmEvent.on(({ topic, swarmEvent: event }) => { var _a; return (_a = this._swarms.get(topic)) === null || _a === void 0 ? void 0 : _a.onSwarmEvent(event); });
|
|
30
|
+
this._messenger = new messaging_1.Messenger({ signalManager: this._signalManager });
|
|
31
|
+
this._signalConnection = {
|
|
32
|
+
join: (opts) => this._signalManager.join(opts),
|
|
33
|
+
leave: (opts) => this._signalManager.leave(opts)
|
|
34
|
+
};
|
|
35
|
+
if (log) {
|
|
36
|
+
this._connectionLog = new connection_log_1.ConnectionLog();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
get signal() {
|
|
40
|
+
return this._signalManager;
|
|
41
|
+
}
|
|
42
|
+
// TODO(burdon): Reconcile with "discovery_key".
|
|
43
|
+
get topics() {
|
|
44
|
+
return Array.from(this._swarms.keys());
|
|
45
|
+
}
|
|
46
|
+
// TODO(burdon): Factor out devtools.
|
|
47
|
+
get connectionLog() {
|
|
48
|
+
return this._connectionLog;
|
|
49
|
+
}
|
|
50
|
+
getSwarmMap(topic) {
|
|
51
|
+
return this._mappers.get(topic);
|
|
52
|
+
}
|
|
53
|
+
getSwarm(topic) {
|
|
54
|
+
return this._swarms.get(topic);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Join the swarm.
|
|
58
|
+
*/
|
|
59
|
+
// TODO(burdon): Join/Open?
|
|
60
|
+
async openSwarmConnection({ topic, peerId, topology, protocol, presence, label }) {
|
|
61
|
+
var _a;
|
|
62
|
+
(0, node_assert_1.default)(keys_1.PublicKey.isPublicKey(topic));
|
|
63
|
+
(0, node_assert_1.default)(keys_1.PublicKey.isPublicKey(peerId));
|
|
64
|
+
(0, node_assert_1.default)(topology);
|
|
65
|
+
(0, node_assert_1.default)(typeof protocol === 'function');
|
|
66
|
+
if (this._swarms.has(topic)) {
|
|
67
|
+
throw new Error(`Already connected to swarm: ${topic}`);
|
|
68
|
+
}
|
|
69
|
+
(0, log_1.log)('joining', { topic, peerId, topology: topology.toString() }, { file: "packages/core/mesh/network-manager/src/network-manager.ts", line: 141 });
|
|
70
|
+
const swarm = new swarm_1.Swarm(topic, peerId, topology, protocol, this._messenger, this._transportFactory, label);
|
|
71
|
+
swarm.errors.handle((error) => {
|
|
72
|
+
(0, log_1.log)(`Swarm error: ${error}`, {}, { file: "packages/core/mesh/network-manager/src/network-manager.ts", line: 144 });
|
|
73
|
+
});
|
|
74
|
+
this._swarms.set(topic, swarm);
|
|
75
|
+
this._signalConnection.join({ topic, peerId }).catch((error) => log_1.log.catch(error, {}, { file: "packages/core/mesh/network-manager/src/network-manager.ts", line: 148 }));
|
|
76
|
+
this._mappers.set(topic, new swarm_1.SwarmMapper(swarm, presence));
|
|
77
|
+
this.topicsUpdated.emit();
|
|
78
|
+
(_a = this._connectionLog) === null || _a === void 0 ? void 0 : _a.swarmJoined(swarm);
|
|
79
|
+
(0, log_1.log)('open', { topic }, { file: "packages/core/mesh/network-manager/src/network-manager.ts", line: 153 });
|
|
80
|
+
return {
|
|
81
|
+
close: () => this.closeSwarmConnection(topic)
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Close the connection.
|
|
86
|
+
*/
|
|
87
|
+
async closeSwarmConnection(topic) {
|
|
88
|
+
var _a;
|
|
89
|
+
if (!this._swarms.has(topic)) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
(0, log_1.log)('closing', { topic }, { file: "packages/core/mesh/network-manager/src/network-manager.ts", line: 168 });
|
|
93
|
+
const swarm = this._swarms.get(topic);
|
|
94
|
+
await this._signalConnection.leave({ topic, peerId: swarm.ownPeerId });
|
|
95
|
+
const map = this._mappers.get(topic);
|
|
96
|
+
map.destroy();
|
|
97
|
+
this._mappers.delete(topic);
|
|
98
|
+
(_a = this._connectionLog) === null || _a === void 0 ? void 0 : _a.swarmLeft(swarm);
|
|
99
|
+
await swarm.destroy();
|
|
100
|
+
this._swarms.delete(topic);
|
|
101
|
+
await this.topicsUpdated.emit();
|
|
102
|
+
(0, log_1.log)('closed', { topic }, { file: "packages/core/mesh/network-manager/src/network-manager.ts", line: 182 });
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* @deprecated
|
|
106
|
+
*/
|
|
107
|
+
// TODO(dmaretskyi): Remove.
|
|
108
|
+
async start() {
|
|
109
|
+
console.warn('NetworkManger.start is deprecated.');
|
|
110
|
+
}
|
|
111
|
+
// TODO(burdon): Open/close?
|
|
112
|
+
async destroy() {
|
|
113
|
+
for (const topic of this._swarms.keys()) {
|
|
114
|
+
await this.closeSwarmConnection(topic).catch((err) => {
|
|
115
|
+
(0, log_1.log)(`Failed to leave swarm ${topic} on NetworkManager.destroy}`, {}, { file: "packages/core/mesh/network-manager/src/network-manager.ts", line: 197 });
|
|
116
|
+
(0, log_1.log)(err, {}, { file: "packages/core/mesh/network-manager/src/network-manager.ts", line: 198 });
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
await this._signalManager.destroy();
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
exports.NetworkManager = NetworkManager;
|
|
123
|
+
//# sourceMappingURL=network-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-manager.js","sourceRoot":"","sources":["../../src/network-manager.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,8DAAiC;AAEjC,uCAAoC;AACpC,qCAAuC;AACvC,mCAAgC;AAEhC,+CAA2D;AAC3D,qCAAwC;AAExC,qDAAiD;AAEjD,mCAA6C;AAiD7C;;GAEG;AACH,MAAa,cAAc;IAazB,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,EAAyB;QAV1D,YAAO,GAAG,IAAI,iBAAU,CAAmB,gBAAS,CAAC,IAAI,CAAC,CAAC;QAC3D,aAAQ,GAAG,IAAI,iBAAU,CAAyB,gBAAS,CAAC,IAAI,CAAC,CAAC;QAOnE,kBAAa,GAAG,IAAI,aAAK,EAAQ,CAAC;QAGhD,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;QAE1C,oCAAoC;QACpC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,0CAAE,YAAY,CAAC,KAAK,CAAC,CAAA,EAAA,CAAC,CAAC;QAClH,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAS,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAExE,IAAI,CAAC,iBAAiB,GAAG;YACvB,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9C,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC;SACjD,CAAC;QAEF,IAAI,GAAG,EAAE;YACP,IAAI,CAAC,cAAc,GAAG,IAAI,8BAAa,EAAE,CAAC;SAC3C;IACH,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,gDAAgD;IAChD,IAAI,MAAM;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,qCAAqC;IACrC,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,WAAW,CAAC,KAAgB;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,QAAQ,CAAC,KAAgB;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,2BAA2B;IAC3B,KAAK,CAAC,mBAAmB,CAAC,EACxB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,KAAK,EACQ;;QACb,IAAA,qBAAM,EAAC,gBAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,IAAA,qBAAM,EAAC,gBAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QACtC,IAAA,qBAAM,EAAC,QAAQ,CAAC,CAAC;QACjB,IAAA,qBAAM,EAAC,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;SACzD;QAED,IAAA,SAAG,EAAC,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,mFAAC,CAAC;QACjE,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QAC3G,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5B,IAAA,SAAG,EAAC,gBAAgB,KAAK,EAAE,uFAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAG,CAAC,KAAK,CAAC,KAAK,uFAAC,CAAC,CAAC;QAClF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,mBAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE3D,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1B,MAAA,IAAI,CAAC,cAAc,0CAAE,WAAW,CAAC,KAAK,CAAC,CAAC;QACxC,IAAA,SAAG,EAAC,MAAM,EAAE,EAAE,KAAK,EAAE,mFAAC,CAAC;QAEvB,OAAO;YACL,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;SAC9C,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CAAC,KAAgB;;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC5B,OAAO;SACR;QAED,IAAA,SAAG,EAAC,SAAS,EAAE,EAAE,KAAK,EAAE,mFAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;QACvC,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QAEvE,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;QACtC,GAAG,CAAC,OAAO,EAAE,CAAC;QACd,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE5B,MAAA,IAAI,CAAC,cAAc,0CAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAEtC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3B,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAChC,IAAA,SAAG,EAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,mFAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,4BAA4B;IAC5B,KAAK,CAAC,KAAK;QACT,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACrD,CAAC;IAED,4BAA4B;IAC5B,KAAK,CAAC,OAAO;QACX,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE;YACvC,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnD,IAAA,SAAG,EAAC,yBAAyB,KAAK,6BAA6B,uFAAC,CAAC;gBACjE,IAAA,SAAG,EAAC,GAAG,uFAAC,CAAC;YACX,CAAC,CAAC,CAAC;SACJ;QAED,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;CACF;AAxID,wCAwIC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-manager.test.d.ts","sourceRoot":"","sources":["../../src/network-manager.test.ts"],"names":[],"mappings":""}
|