@streamr/dht 103.1.2 → 103.2.0-experiment.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/dist/exports-browser.cjs +7636 -0
- package/dist/exports-browser.cjs.map +1 -0
- package/dist/exports-browser.d.ts +1321 -0
- package/dist/exports-browser.js +7611 -0
- package/dist/exports-browser.js.map +1 -0
- package/dist/exports-nodejs.cjs +7833 -0
- package/dist/exports-nodejs.cjs.map +1 -0
- package/dist/exports-nodejs.d.ts +1321 -0
- package/dist/exports-nodejs.js +7808 -0
- package/dist/exports-nodejs.js.map +1 -0
- package/package.json +41 -25
- package/dist/generated/google/protobuf/any.d.ts +0 -180
- package/dist/generated/google/protobuf/any.js +0 -155
- package/dist/generated/google/protobuf/any.js.map +0 -1
- package/dist/generated/google/protobuf/empty.d.ts +0 -31
- package/dist/generated/google/protobuf/empty.js +0 -45
- package/dist/generated/google/protobuf/empty.js.map +0 -1
- package/dist/generated/google/protobuf/timestamp.d.ts +0 -156
- package/dist/generated/google/protobuf/timestamp.js +0 -136
- package/dist/generated/google/protobuf/timestamp.js.map +0 -1
- package/dist/generated/packages/dht/protos/DhtRpc.client.d.ts +0 -371
- package/dist/generated/packages/dht/protos/DhtRpc.client.js +0 -292
- package/dist/generated/packages/dht/protos/DhtRpc.client.js.map +0 -1
- package/dist/generated/packages/dht/protos/DhtRpc.d.ts +0 -1031
- package/dist/generated/packages/dht/protos/DhtRpc.js +0 -702
- package/dist/generated/packages/dht/protos/DhtRpc.js.map +0 -1
- package/dist/generated/packages/dht/protos/DhtRpc.server.d.ts +0 -168
- package/dist/generated/packages/dht/protos/DhtRpc.server.js +0 -3
- package/dist/generated/packages/dht/protos/DhtRpc.server.js.map +0 -1
- package/dist/generated/packages/proto-rpc/protos/ProtoRpc.d.ts +0 -87
- package/dist/generated/packages/proto-rpc/protos/ProtoRpc.js +0 -66
- package/dist/generated/packages/proto-rpc/protos/ProtoRpc.js.map +0 -1
- package/dist/package.json +0 -61
- package/dist/src/connection/Connection.d.ts +0 -12
- package/dist/src/connection/Connection.js +0 -30
- package/dist/src/connection/Connection.js.map +0 -1
- package/dist/src/connection/ConnectionLockRpcLocal.d.ts +0 -22
- package/dist/src/connection/ConnectionLockRpcLocal.js +0 -54
- package/dist/src/connection/ConnectionLockRpcLocal.js.map +0 -1
- package/dist/src/connection/ConnectionLockRpcRemote.d.ts +0 -10
- package/dist/src/connection/ConnectionLockRpcRemote.js +0 -61
- package/dist/src/connection/ConnectionLockRpcRemote.js.map +0 -1
- package/dist/src/connection/ConnectionLockStates.d.ts +0 -27
- package/dist/src/connection/ConnectionLockStates.js +0 -114
- package/dist/src/connection/ConnectionLockStates.js.map +0 -1
- package/dist/src/connection/ConnectionManager.d.ts +0 -85
- package/dist/src/connection/ConnectionManager.js +0 -569
- package/dist/src/connection/ConnectionManager.js.map +0 -1
- package/dist/src/connection/ConnectionsView.d.ts +0 -7
- package/dist/src/connection/ConnectionsView.js +0 -3
- package/dist/src/connection/ConnectionsView.js.map +0 -1
- package/dist/src/connection/ConnectorFacade.d.ts +0 -58
- package/dist/src/connection/ConnectorFacade.js +0 -154
- package/dist/src/connection/ConnectorFacade.js.map +0 -1
- package/dist/src/connection/Handshaker.d.ts +0 -27
- package/dist/src/connection/Handshaker.js +0 -179
- package/dist/src/connection/Handshaker.js.map +0 -1
- package/dist/src/connection/IConnection.d.ts +0 -32
- package/dist/src/connection/IConnection.js +0 -12
- package/dist/src/connection/IConnection.js.map +0 -1
- package/dist/src/connection/ManagedConnection.d.ts +0 -30
- package/dist/src/connection/ManagedConnection.js +0 -129
- package/dist/src/connection/ManagedConnection.js.map +0 -1
- package/dist/src/connection/OutputBuffer.d.ts +0 -9
- package/dist/src/connection/OutputBuffer.js +0 -26
- package/dist/src/connection/OutputBuffer.js.map +0 -1
- package/dist/src/connection/PendingConnection.d.ts +0 -19
- package/dist/src/connection/PendingConnection.js +0 -59
- package/dist/src/connection/PendingConnection.js.map +0 -1
- package/dist/src/connection/connectivityChecker.d.ts +0 -9
- package/dist/src/connection/connectivityChecker.js +0 -138
- package/dist/src/connection/connectivityChecker.js.map +0 -1
- package/dist/src/connection/connectivityRequestHandler.d.ts +0 -4
- package/dist/src/connection/connectivityRequestHandler.js +0 -108
- package/dist/src/connection/connectivityRequestHandler.js.map +0 -1
- package/dist/src/connection/simulator/Simulator.d.ts +0 -36
- package/dist/src/connection/simulator/Simulator.js +0 -290
- package/dist/src/connection/simulator/Simulator.js.map +0 -1
- package/dist/src/connection/simulator/SimulatorConnection.d.ts +0 -18
- package/dist/src/connection/simulator/SimulatorConnection.js +0 -123
- package/dist/src/connection/simulator/SimulatorConnection.js.map +0 -1
- package/dist/src/connection/simulator/SimulatorConnector.d.ts +0 -16
- package/dist/src/connection/simulator/SimulatorConnector.js +0 -80
- package/dist/src/connection/simulator/SimulatorConnector.js.map +0 -1
- package/dist/src/connection/simulator/SimulatorTransport.d.ts +0 -6
- package/dist/src/connection/simulator/SimulatorTransport.js +0 -17
- package/dist/src/connection/simulator/SimulatorTransport.js.map +0 -1
- package/dist/src/connection/simulator/pings.d.ts +0 -21
- package/dist/src/connection/simulator/pings.js +0 -61
- package/dist/src/connection/simulator/pings.js.map +0 -1
- package/dist/src/connection/webrtc/BrowserWebrtcConnection.d.ts +0 -37
- package/dist/src/connection/webrtc/BrowserWebrtcConnection.js +0 -229
- package/dist/src/connection/webrtc/BrowserWebrtcConnection.js.map +0 -1
- package/dist/src/connection/webrtc/IWebrtcConnection.d.ts +0 -21
- package/dist/src/connection/webrtc/IWebrtcConnection.js +0 -9
- package/dist/src/connection/webrtc/IWebrtcConnection.js.map +0 -1
- package/dist/src/connection/webrtc/NodeWebrtcConnection.d.ts +0 -45
- package/dist/src/connection/webrtc/NodeWebrtcConnection.js +0 -229
- package/dist/src/connection/webrtc/NodeWebrtcConnection.js.map +0 -1
- package/dist/src/connection/webrtc/WebrtcConnector.d.ts +0 -43
- package/dist/src/connection/webrtc/WebrtcConnector.js +0 -208
- package/dist/src/connection/webrtc/WebrtcConnector.js.map +0 -1
- package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.d.ts +0 -26
- package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js +0 -82
- package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js.map +0 -1
- package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.d.ts +0 -8
- package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.js +0 -50
- package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.js.map +0 -1
- package/dist/src/connection/webrtc/iceServerAsString.d.ts +0 -2
- package/dist/src/connection/webrtc/iceServerAsString.js +0 -17
- package/dist/src/connection/webrtc/iceServerAsString.js.map +0 -1
- package/dist/src/connection/websocket/AbstractWebsocketClientConnection.d.ts +0 -27
- package/dist/src/connection/websocket/AbstractWebsocketClientConnection.js +0 -107
- package/dist/src/connection/websocket/AbstractWebsocketClientConnection.js.map +0 -1
- package/dist/src/connection/websocket/AutoCertifierClientFacade.d.ts +0 -26
- package/dist/src/connection/websocket/AutoCertifierClientFacade.js +0 -39
- package/dist/src/connection/websocket/AutoCertifierClientFacade.js.map +0 -1
- package/dist/src/connection/websocket/BrowserWebsocketClientConnection.d.ts +0 -7
- package/dist/src/connection/websocket/BrowserWebsocketClientConnection.js +0 -44
- package/dist/src/connection/websocket/BrowserWebsocketClientConnection.js.map +0 -1
- package/dist/src/connection/websocket/NodeWebsocketClientConnection.d.ts +0 -7
- package/dist/src/connection/websocket/NodeWebsocketClientConnection.js +0 -39
- package/dist/src/connection/websocket/NodeWebsocketClientConnection.js.map +0 -1
- package/dist/src/connection/websocket/WebsocketClientConnector.d.ts +0 -26
- package/dist/src/connection/websocket/WebsocketClientConnector.js +0 -86
- package/dist/src/connection/websocket/WebsocketClientConnector.js.map +0 -1
- package/dist/src/connection/websocket/WebsocketClientConnectorRpcLocal.d.ts +0 -18
- package/dist/src/connection/websocket/WebsocketClientConnectorRpcLocal.js +0 -23
- package/dist/src/connection/websocket/WebsocketClientConnectorRpcLocal.js.map +0 -1
- package/dist/src/connection/websocket/WebsocketClientConnectorRpcRemote.d.ts +0 -5
- package/dist/src/connection/websocket/WebsocketClientConnectorRpcRemote.js +0 -17
- package/dist/src/connection/websocket/WebsocketClientConnectorRpcRemote.js.map +0 -1
- package/dist/src/connection/websocket/WebsocketServer.d.ts +0 -25
- package/dist/src/connection/websocket/WebsocketServer.js +0 -146
- package/dist/src/connection/websocket/WebsocketServer.js.map +0 -1
- package/dist/src/connection/websocket/WebsocketServerConnection.d.ts +0 -22
- package/dist/src/connection/websocket/WebsocketServerConnection.js +0 -101
- package/dist/src/connection/websocket/WebsocketServerConnection.js.map +0 -1
- package/dist/src/connection/websocket/WebsocketServerConnector.d.ts +0 -44
- package/dist/src/connection/websocket/WebsocketServerConnector.js +0 -279
- package/dist/src/connection/websocket/WebsocketServerConnector.js.map +0 -1
- package/dist/src/dht/DhtNode.d.ts +0 -119
- package/dist/src/dht/DhtNode.js +0 -500
- package/dist/src/dht/DhtNode.js.map +0 -1
- package/dist/src/dht/DhtNodeRpcLocal.d.ts +0 -23
- package/dist/src/dht/DhtNodeRpcLocal.js +0 -54
- package/dist/src/dht/DhtNodeRpcLocal.js.map +0 -1
- package/dist/src/dht/DhtNodeRpcRemote.d.ts +0 -25
- package/dist/src/dht/DhtNodeRpcRemote.js +0 -83
- package/dist/src/dht/DhtNodeRpcRemote.js.map +0 -1
- package/dist/src/dht/ExternalApiRpcLocal.d.ts +0 -18
- package/dist/src/dht/ExternalApiRpcLocal.js +0 -32
- package/dist/src/dht/ExternalApiRpcLocal.js.map +0 -1
- package/dist/src/dht/ExternalApiRpcRemote.d.ts +0 -10
- package/dist/src/dht/ExternalApiRpcRemote.js +0 -58
- package/dist/src/dht/ExternalApiRpcRemote.js.map +0 -1
- package/dist/src/dht/PeerManager.d.ts +0 -63
- package/dist/src/dht/PeerManager.js +0 -251
- package/dist/src/dht/PeerManager.js.map +0 -1
- package/dist/src/dht/contact/Contact.d.ts +0 -8
- package/dist/src/dht/contact/Contact.js +0 -18
- package/dist/src/dht/contact/Contact.js.map +0 -1
- package/dist/src/dht/contact/ContactList.d.ts +0 -19
- package/dist/src/dht/contact/ContactList.js +0 -35
- package/dist/src/dht/contact/ContactList.js.map +0 -1
- package/dist/src/dht/contact/RandomContactList.d.ts +0 -11
- package/dist/src/dht/contact/RandomContactList.js +0 -47
- package/dist/src/dht/contact/RandomContactList.js.map +0 -1
- package/dist/src/dht/contact/RingContactList.d.ts +0 -28
- package/dist/src/dht/contact/RingContactList.js +0 -126
- package/dist/src/dht/contact/RingContactList.js.map +0 -1
- package/dist/src/dht/contact/RpcRemote.d.ts +0 -19
- package/dist/src/dht/contact/RpcRemote.js +0 -61
- package/dist/src/dht/contact/RpcRemote.js.map +0 -1
- package/dist/src/dht/contact/SortedContactList.d.ts +0 -37
- package/dist/src/dht/contact/SortedContactList.js +0 -134
- package/dist/src/dht/contact/SortedContactList.js.map +0 -1
- package/dist/src/dht/contact/getClosestNodes.d.ts +0 -6
- package/dist/src/dht/contact/getClosestNodes.js +0 -19
- package/dist/src/dht/contact/getClosestNodes.js.map +0 -1
- package/dist/src/dht/contact/ringIdentifiers.d.ts +0 -16
- package/dist/src/dht/contact/ringIdentifiers.js +0 -54
- package/dist/src/dht/contact/ringIdentifiers.js.map +0 -1
- package/dist/src/dht/discovery/DiscoverySession.d.ts +0 -29
- package/dist/src/dht/discovery/DiscoverySession.js +0 -102
- package/dist/src/dht/discovery/DiscoverySession.js.map +0 -1
- package/dist/src/dht/discovery/PeerDiscovery.d.ts +0 -42
- package/dist/src/dht/discovery/PeerDiscovery.js +0 -193
- package/dist/src/dht/discovery/PeerDiscovery.js.map +0 -1
- package/dist/src/dht/discovery/RingDiscoverySession.d.ts +0 -28
- package/dist/src/dht/discovery/RingDiscoverySession.js +0 -116
- package/dist/src/dht/discovery/RingDiscoverySession.js.map +0 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationManager.d.ts +0 -38
- package/dist/src/dht/recursive-operation/RecursiveOperationManager.js +0 -165
- package/dist/src/dht/recursive-operation/RecursiveOperationManager.js.map +0 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.d.ts +0 -14
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js +0 -26
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js.map +0 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.d.ts +0 -6
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.js +0 -44
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.js.map +0 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationSession.d.ts +0 -45
- package/dist/src/dht/recursive-operation/RecursiveOperationSession.js +0 -185
- package/dist/src/dht/recursive-operation/RecursiveOperationSession.js.map +0 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.d.ts +0 -14
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js +0 -20
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js.map +0 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcRemote.d.ts +0 -6
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcRemote.js +0 -21
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcRemote.js.map +0 -1
- package/dist/src/dht/routing/DuplicateDetector.d.ts +0 -10
- package/dist/src/dht/routing/DuplicateDetector.js +0 -31
- package/dist/src/dht/routing/DuplicateDetector.js.map +0 -1
- package/dist/src/dht/routing/Router.d.ts +0 -35
- package/dist/src/dht/routing/Router.js +0 -204
- package/dist/src/dht/routing/Router.js.map +0 -1
- package/dist/src/dht/routing/RouterRpcLocal.d.ts +0 -20
- package/dist/src/dht/routing/RouterRpcLocal.js +0 -67
- package/dist/src/dht/routing/RouterRpcLocal.js.map +0 -1
- package/dist/src/dht/routing/RouterRpcRemote.d.ts +0 -8
- package/dist/src/dht/routing/RouterRpcRemote.js +0 -81
- package/dist/src/dht/routing/RouterRpcRemote.js.map +0 -1
- package/dist/src/dht/routing/RoutingSession.d.ts +0 -56
- package/dist/src/dht/routing/RoutingSession.js +0 -201
- package/dist/src/dht/routing/RoutingSession.js.map +0 -1
- package/dist/src/dht/routing/RoutingTablesCache.d.ts +0 -24
- package/dist/src/dht/routing/RoutingTablesCache.js +0 -46
- package/dist/src/dht/routing/RoutingTablesCache.js.map +0 -1
- package/dist/src/dht/routing/getPreviousPeer.d.ts +0 -2
- package/dist/src/dht/routing/getPreviousPeer.js +0 -12
- package/dist/src/dht/routing/getPreviousPeer.js.map +0 -1
- package/dist/src/dht/store/LocalDataStore.d.ts +0 -14
- package/dist/src/dht/store/LocalDataStore.js +0 -78
- package/dist/src/dht/store/LocalDataStore.js.map +0 -1
- package/dist/src/dht/store/StoreManager.d.ts +0 -32
- package/dist/src/dht/store/StoreManager.js +0 -126
- package/dist/src/dht/store/StoreManager.js.map +0 -1
- package/dist/src/dht/store/StoreRpcLocal.d.ts +0 -21
- package/dist/src/dht/store/StoreRpcLocal.js +0 -65
- package/dist/src/dht/store/StoreRpcLocal.js.map +0 -1
- package/dist/src/dht/store/StoreRpcRemote.d.ts +0 -7
- package/dist/src/dht/store/StoreRpcRemote.js +0 -29
- package/dist/src/dht/store/StoreRpcRemote.js.map +0 -1
- package/dist/src/exports.d.ts +0 -25
- package/dist/src/exports.js +0 -48
- package/dist/src/exports.js.map +0 -1
- package/dist/src/helpers/AddressTools.d.ts +0 -2
- package/dist/src/helpers/AddressTools.js +0 -32
- package/dist/src/helpers/AddressTools.js.map +0 -1
- package/dist/src/helpers/Connectivity.d.ts +0 -4
- package/dist/src/helpers/Connectivity.js +0 -24
- package/dist/src/helpers/Connectivity.js.map +0 -1
- package/dist/src/helpers/browser/isBrowserEnvironment.d.ts +0 -1
- package/dist/src/helpers/browser/isBrowserEnvironment.js +0 -6
- package/dist/src/helpers/browser/isBrowserEnvironment.js.map +0 -1
- package/dist/src/helpers/browser/isBrowserEnvironment_override.d.ts +0 -1
- package/dist/src/helpers/browser/isBrowserEnvironment_override.js +0 -7
- package/dist/src/helpers/browser/isBrowserEnvironment_override.js.map +0 -1
- package/dist/src/helpers/createPeerDescriptor.d.ts +0 -3
- package/dist/src/helpers/createPeerDescriptor.js +0 -58
- package/dist/src/helpers/createPeerDescriptor.js.map +0 -1
- package/dist/src/helpers/createPeerDescriptorSignaturePayload.d.ts +0 -2
- package/dist/src/helpers/createPeerDescriptorSignaturePayload.js +0 -30
- package/dist/src/helpers/createPeerDescriptorSignaturePayload.js.map +0 -1
- package/dist/src/helpers/debugHelpers.d.ts +0 -3
- package/dist/src/helpers/debugHelpers.js +0 -11
- package/dist/src/helpers/debugHelpers.js.map +0 -1
- package/dist/src/helpers/errors.d.ts +0 -72
- package/dist/src/helpers/errors.js +0 -97
- package/dist/src/helpers/errors.js.map +0 -1
- package/dist/src/helpers/offering.d.ts +0 -4
- package/dist/src/helpers/offering.js +0 -18
- package/dist/src/helpers/offering.js.map +0 -1
- package/dist/src/helpers/protoClasses.d.ts +0 -2
- package/dist/src/helpers/protoClasses.js +0 -32
- package/dist/src/helpers/protoClasses.js.map +0 -1
- package/dist/src/helpers/protoToString.d.ts +0 -2
- package/dist/src/helpers/protoToString.js +0 -19
- package/dist/src/helpers/protoToString.js.map +0 -1
- package/dist/src/helpers/version.d.ts +0 -6
- package/dist/src/helpers/version.js +0 -38
- package/dist/src/helpers/version.js.map +0 -1
- package/dist/src/identifiers.d.ts +0 -10
- package/dist/src/identifiers.js +0 -31
- package/dist/src/identifiers.js.map +0 -1
- package/dist/src/rpc-protocol/DhtCallContext.d.ts +0 -12
- package/dist/src/rpc-protocol/DhtCallContext.js +0 -17
- package/dist/src/rpc-protocol/DhtCallContext.js.map +0 -1
- package/dist/src/rpc-protocol/DhtRpcOptions.d.ts +0 -10
- package/dist/src/rpc-protocol/DhtRpcOptions.js +0 -3
- package/dist/src/rpc-protocol/DhtRpcOptions.js.map +0 -1
- package/dist/src/transport/ITransport.d.ts +0 -31
- package/dist/src/transport/ITransport.js +0 -9
- package/dist/src/transport/ITransport.js.map +0 -1
- package/dist/src/transport/ListeningRpcCommunicator.d.ts +0 -11
- package/dist/src/transport/ListeningRpcCommunicator.js +0 -31
- package/dist/src/transport/ListeningRpcCommunicator.js.map +0 -1
- package/dist/src/transport/RoutingRpcCommunicator.d.ts +0 -10
- package/dist/src/transport/RoutingRpcCommunicator.js +0 -60
- package/dist/src/transport/RoutingRpcCommunicator.js.map +0 -1
- package/dist/src/types/ServiceID.d.ts +0 -1
- package/dist/src/types/ServiceID.js +0 -3
- package/dist/src/types/ServiceID.js.map +0 -1
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { ConnectivityResponse, PeerDescriptor } from '../../generated/packages/dht/protos/DhtRpc';
|
|
2
|
-
import { ITransport } from '../transport/ITransport';
|
|
3
|
-
import { PortRange, TlsCertificate } from './ConnectionManager';
|
|
4
|
-
import { Simulator } from './simulator/Simulator';
|
|
5
|
-
import { IceServer } from './webrtc/WebrtcConnector';
|
|
6
|
-
import { DhtAddress } from '../identifiers';
|
|
7
|
-
import { WebsocketServerConnectorOptions } from './websocket/WebsocketServerConnector';
|
|
8
|
-
import { PendingConnection } from './PendingConnection';
|
|
9
|
-
export interface ConnectorFacade {
|
|
10
|
-
createConnection: (peerDescriptor: PeerDescriptor) => PendingConnection;
|
|
11
|
-
getLocalPeerDescriptor: () => PeerDescriptor | undefined;
|
|
12
|
-
start: (onNewConnection: (connection: PendingConnection) => boolean, hasConnection: (nodeId: DhtAddress) => boolean, autoCertifierTransport: ITransport) => Promise<void>;
|
|
13
|
-
stop: () => Promise<void>;
|
|
14
|
-
}
|
|
15
|
-
export interface DefaultConnectorFacadeOptions {
|
|
16
|
-
transport: ITransport;
|
|
17
|
-
websocketHost?: string;
|
|
18
|
-
websocketPortRange?: PortRange;
|
|
19
|
-
entryPoints?: PeerDescriptor[];
|
|
20
|
-
iceServers?: IceServer[];
|
|
21
|
-
webrtcAllowPrivateAddresses?: boolean;
|
|
22
|
-
webrtcDatachannelBufferThresholdLow?: number;
|
|
23
|
-
webrtcDatachannelBufferThresholdHigh?: number;
|
|
24
|
-
externalIp?: string;
|
|
25
|
-
webrtcPortRange?: PortRange;
|
|
26
|
-
maxMessageSize?: number;
|
|
27
|
-
tlsCertificate?: TlsCertificate;
|
|
28
|
-
websocketServerEnableTls?: boolean;
|
|
29
|
-
autoCertifierUrl?: string;
|
|
30
|
-
autoCertifierConfigFile?: string;
|
|
31
|
-
geoIpDatabaseFolder?: string;
|
|
32
|
-
createLocalPeerDescriptor: (connectivityResponse: ConnectivityResponse) => Promise<PeerDescriptor>;
|
|
33
|
-
}
|
|
34
|
-
export declare class DefaultConnectorFacade implements ConnectorFacade {
|
|
35
|
-
private readonly options;
|
|
36
|
-
private localPeerDescriptor?;
|
|
37
|
-
private websocketConnectorRpcCommunicator?;
|
|
38
|
-
private websocketClientConnector?;
|
|
39
|
-
private websocketServerConnector?;
|
|
40
|
-
private webrtcConnector?;
|
|
41
|
-
constructor(options: DefaultConnectorFacadeOptions);
|
|
42
|
-
start(onNewConnection: (connection: PendingConnection) => boolean, hasConnection: (nodeId: DhtAddress) => boolean, autoCertifierTransport: ITransport): Promise<void>;
|
|
43
|
-
private setLocalPeerDescriptor;
|
|
44
|
-
restartWebsocketServerConnector(options: WebsocketServerConnectorOptions): Promise<void>;
|
|
45
|
-
createConnection(peerDescriptor: PeerDescriptor): PendingConnection;
|
|
46
|
-
getLocalPeerDescriptor(): PeerDescriptor | undefined;
|
|
47
|
-
stop(): Promise<void>;
|
|
48
|
-
}
|
|
49
|
-
export declare class SimulatorConnectorFacade implements ConnectorFacade {
|
|
50
|
-
private readonly localPeerDescriptor;
|
|
51
|
-
private simulatorConnector?;
|
|
52
|
-
private simulator;
|
|
53
|
-
constructor(localPeerDescriptor: PeerDescriptor, simulator: Simulator);
|
|
54
|
-
start(onNewConnection: (connection: PendingConnection) => boolean): Promise<void>;
|
|
55
|
-
createConnection(peerDescriptor: PeerDescriptor): PendingConnection;
|
|
56
|
-
getLocalPeerDescriptor(): PeerDescriptor;
|
|
57
|
-
stop(): Promise<void>;
|
|
58
|
-
}
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SimulatorConnectorFacade = exports.DefaultConnectorFacade = void 0;
|
|
4
|
-
const utils_1 = require("@streamr/utils");
|
|
5
|
-
const SimulatorConnector_1 = require("./simulator/SimulatorConnector");
|
|
6
|
-
const WebrtcConnector_1 = require("./webrtc/WebrtcConnector");
|
|
7
|
-
const WebsocketClientConnector_1 = require("./websocket/WebsocketClientConnector");
|
|
8
|
-
const WebsocketServerConnector_1 = require("./websocket/WebsocketServerConnector");
|
|
9
|
-
const ListeningRpcCommunicator_1 = require("../transport/ListeningRpcCommunicator");
|
|
10
|
-
const logger = new utils_1.Logger(module);
|
|
11
|
-
class DefaultConnectorFacade {
|
|
12
|
-
options;
|
|
13
|
-
localPeerDescriptor;
|
|
14
|
-
websocketConnectorRpcCommunicator;
|
|
15
|
-
websocketClientConnector;
|
|
16
|
-
websocketServerConnector;
|
|
17
|
-
webrtcConnector;
|
|
18
|
-
constructor(options) {
|
|
19
|
-
this.options = options;
|
|
20
|
-
}
|
|
21
|
-
async start(onNewConnection, hasConnection, autoCertifierTransport) {
|
|
22
|
-
logger.trace(`Creating WebsocketConnectorRpcLocal`);
|
|
23
|
-
this.websocketConnectorRpcCommunicator = new ListeningRpcCommunicator_1.ListeningRpcCommunicator(WebsocketClientConnector_1.WebsocketClientConnector.WEBSOCKET_CONNECTOR_SERVICE_ID, this.options.transport, { rpcRequestTimeout: 15000 } // TODO use options option or named constant?
|
|
24
|
-
);
|
|
25
|
-
const webSocketClientConnectorOptions = {
|
|
26
|
-
// TODO should we use canConnect also for WebrtcConnector? (NET-1142)
|
|
27
|
-
onNewConnection,
|
|
28
|
-
hasConnection,
|
|
29
|
-
rpcCommunicator: this.websocketConnectorRpcCommunicator
|
|
30
|
-
};
|
|
31
|
-
this.websocketClientConnector = new WebsocketClientConnector_1.WebsocketClientConnector(webSocketClientConnectorOptions);
|
|
32
|
-
const webSocketServerConnectorOptions = {
|
|
33
|
-
rpcCommunicator: this.websocketConnectorRpcCommunicator,
|
|
34
|
-
// TODO should we use canConnect also for WebrtcConnector? (NET-1142)
|
|
35
|
-
onNewConnection,
|
|
36
|
-
hasConnection,
|
|
37
|
-
portRange: this.options.websocketPortRange,
|
|
38
|
-
host: this.options.websocketHost,
|
|
39
|
-
entrypoints: this.options.entryPoints,
|
|
40
|
-
tlsCertificate: this.options.tlsCertificate,
|
|
41
|
-
serverEnableTls: this.options.websocketServerEnableTls,
|
|
42
|
-
autoCertifierUrl: this.options.autoCertifierUrl,
|
|
43
|
-
autoCertifierConfigFile: this.options.autoCertifierConfigFile,
|
|
44
|
-
autoCertifierTransport,
|
|
45
|
-
maxMessageSize: this.options.maxMessageSize,
|
|
46
|
-
geoIpDatabaseFolder: this.options.geoIpDatabaseFolder
|
|
47
|
-
};
|
|
48
|
-
this.websocketServerConnector = new WebsocketServerConnector_1.WebsocketServerConnector(webSocketServerConnectorOptions);
|
|
49
|
-
this.webrtcConnector = new WebrtcConnector_1.WebrtcConnector({
|
|
50
|
-
onNewConnection,
|
|
51
|
-
transport: this.options.transport,
|
|
52
|
-
iceServers: this.options.iceServers,
|
|
53
|
-
allowPrivateAddresses: this.options.webrtcAllowPrivateAddresses,
|
|
54
|
-
bufferThresholdLow: this.options.webrtcDatachannelBufferThresholdLow,
|
|
55
|
-
bufferThresholdHigh: this.options.webrtcDatachannelBufferThresholdHigh,
|
|
56
|
-
externalIp: this.options.externalIp,
|
|
57
|
-
portRange: this.options.webrtcPortRange,
|
|
58
|
-
maxMessageSize: this.options.maxMessageSize
|
|
59
|
-
});
|
|
60
|
-
await this.websocketServerConnector.start();
|
|
61
|
-
// TODO: generate a PeerDescriptor in a single function. Requires changes to the createOwnPeerDescriptor
|
|
62
|
-
// function in the options. Currently it's given by the DhtNode and it sets the PeerDescriptor for the
|
|
63
|
-
// DhtNode in each call.
|
|
64
|
-
// LocalPeerDescriptor could be stored in one place and passed from there to the connectors
|
|
65
|
-
const temporarilySelfSigned = (!this.options.tlsCertificate && this.options.websocketServerEnableTls === true);
|
|
66
|
-
const connectivityResponse = await this.websocketServerConnector.checkConnectivity(temporarilySelfSigned);
|
|
67
|
-
const localPeerDescriptor = await this.options.createLocalPeerDescriptor(connectivityResponse);
|
|
68
|
-
this.setLocalPeerDescriptor(localPeerDescriptor);
|
|
69
|
-
if (localPeerDescriptor.websocket && !this.options.tlsCertificate && this.options.websocketServerEnableTls) {
|
|
70
|
-
try {
|
|
71
|
-
await this.websocketServerConnector.autoCertify();
|
|
72
|
-
const connectivityResponse = await this.websocketServerConnector.checkConnectivity(false);
|
|
73
|
-
const autocertifiedLocalPeerDescriptor = await this.options.createLocalPeerDescriptor(connectivityResponse);
|
|
74
|
-
if (autocertifiedLocalPeerDescriptor.websocket !== undefined) {
|
|
75
|
-
this.setLocalPeerDescriptor(autocertifiedLocalPeerDescriptor);
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
logger.warn('Connectivity check failed after auto-certification, disabling WebSocket server TLS');
|
|
79
|
-
await this.restartWebsocketServerConnector({
|
|
80
|
-
...webSocketServerConnectorOptions,
|
|
81
|
-
serverEnableTls: false
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
catch (err) {
|
|
86
|
-
logger.warn('Failed to auto-certify, disabling WebSocket server TLS', { err });
|
|
87
|
-
await this.restartWebsocketServerConnector({
|
|
88
|
-
...webSocketServerConnectorOptions,
|
|
89
|
-
serverEnableTls: false
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
setLocalPeerDescriptor(peerDescriptor) {
|
|
95
|
-
this.localPeerDescriptor = peerDescriptor;
|
|
96
|
-
this.websocketServerConnector.setLocalPeerDescriptor(peerDescriptor);
|
|
97
|
-
this.websocketClientConnector.setLocalPeerDescriptor(peerDescriptor);
|
|
98
|
-
this.webrtcConnector.setLocalPeerDescriptor(peerDescriptor);
|
|
99
|
-
}
|
|
100
|
-
async restartWebsocketServerConnector(options) {
|
|
101
|
-
await this.websocketServerConnector.destroy();
|
|
102
|
-
this.websocketServerConnector = new WebsocketServerConnector_1.WebsocketServerConnector(options);
|
|
103
|
-
await this.websocketServerConnector.start();
|
|
104
|
-
const connectivityResponse = await this.websocketServerConnector.checkConnectivity(false);
|
|
105
|
-
const localPeerDescriptor = await this.options.createLocalPeerDescriptor(connectivityResponse);
|
|
106
|
-
this.setLocalPeerDescriptor(localPeerDescriptor);
|
|
107
|
-
}
|
|
108
|
-
createConnection(peerDescriptor) {
|
|
109
|
-
if (this.websocketClientConnector.isPossibleToFormConnection(peerDescriptor)) {
|
|
110
|
-
return this.websocketClientConnector.connect(peerDescriptor);
|
|
111
|
-
}
|
|
112
|
-
else if (this.websocketServerConnector.isPossibleToFormConnection(peerDescriptor)) {
|
|
113
|
-
return this.websocketServerConnector.connect(peerDescriptor);
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
return this.webrtcConnector.connect(peerDescriptor, false);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
getLocalPeerDescriptor() {
|
|
120
|
-
return this.localPeerDescriptor;
|
|
121
|
-
}
|
|
122
|
-
async stop() {
|
|
123
|
-
this.websocketConnectorRpcCommunicator.destroy();
|
|
124
|
-
await this.websocketServerConnector.destroy();
|
|
125
|
-
await this.websocketClientConnector.destroy();
|
|
126
|
-
await this.webrtcConnector.stop();
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
exports.DefaultConnectorFacade = DefaultConnectorFacade;
|
|
130
|
-
class SimulatorConnectorFacade {
|
|
131
|
-
localPeerDescriptor;
|
|
132
|
-
simulatorConnector;
|
|
133
|
-
simulator;
|
|
134
|
-
constructor(localPeerDescriptor, simulator) {
|
|
135
|
-
this.localPeerDescriptor = localPeerDescriptor;
|
|
136
|
-
this.simulator = simulator;
|
|
137
|
-
}
|
|
138
|
-
async start(onNewConnection) {
|
|
139
|
-
logger.trace(`Creating SimulatorConnector`);
|
|
140
|
-
this.simulatorConnector = new SimulatorConnector_1.SimulatorConnector(this.localPeerDescriptor, this.simulator, onNewConnection);
|
|
141
|
-
this.simulator.addConnector(this.simulatorConnector);
|
|
142
|
-
}
|
|
143
|
-
createConnection(peerDescriptor) {
|
|
144
|
-
return this.simulatorConnector.connect(peerDescriptor);
|
|
145
|
-
}
|
|
146
|
-
getLocalPeerDescriptor() {
|
|
147
|
-
return this.localPeerDescriptor;
|
|
148
|
-
}
|
|
149
|
-
async stop() {
|
|
150
|
-
await this.simulatorConnector.stop();
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
exports.SimulatorConnectorFacade = SimulatorConnectorFacade;
|
|
154
|
-
//# sourceMappingURL=ConnectorFacade.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectorFacade.js","sourceRoot":"","sources":["../../../src/connection/ConnectorFacade.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from 'eventemitter3';
|
|
2
|
-
import { Message, PeerDescriptor, HandshakeError } from '../../generated/packages/dht/protos/DhtRpc';
|
|
3
|
-
import { IConnection } from './IConnection';
|
|
4
|
-
import { PendingConnection } from './PendingConnection';
|
|
5
|
-
interface HandshakerEvents {
|
|
6
|
-
handshakeRequest: (source: PeerDescriptor, protocolVersion: string, target?: PeerDescriptor) => void;
|
|
7
|
-
handshakeCompleted: (remote: PeerDescriptor) => void;
|
|
8
|
-
handshakeFailed: (error?: HandshakeError) => void;
|
|
9
|
-
}
|
|
10
|
-
export declare const createOutgoingHandshaker: (localPeerDescriptor: PeerDescriptor, pendingConnection: PendingConnection, connection: IConnection, targetPeerDescriptor?: PeerDescriptor) => Handshaker;
|
|
11
|
-
export declare const createIncomingHandshaker: (localPeerDescriptor: PeerDescriptor, pendingConnection: PendingConnection, connection: IConnection) => Handshaker;
|
|
12
|
-
export declare const rejectHandshake: (pendingConnection: PendingConnection, connection: IConnection, handshaker: Handshaker, error: HandshakeError) => void;
|
|
13
|
-
export declare const acceptHandshake: (handshaker: Handshaker, pendingConnection: PendingConnection, connection: IConnection) => void;
|
|
14
|
-
export declare const createHandshakeRequest: (localPeerDescriptor: PeerDescriptor, remotePeerDescriptor: PeerDescriptor) => Message;
|
|
15
|
-
export declare const createHandshakeResponse: (localPeerDescriptor: PeerDescriptor, error?: HandshakeError) => Message;
|
|
16
|
-
export declare class Handshaker extends EventEmitter<HandshakerEvents> {
|
|
17
|
-
static readonly HANDSHAKER_SERVICE_ID = "system/handshaker";
|
|
18
|
-
private localPeerDescriptor;
|
|
19
|
-
private connection;
|
|
20
|
-
private readonly onDataListener;
|
|
21
|
-
constructor(localPeerDescriptor: PeerDescriptor, connection: IConnection);
|
|
22
|
-
private onData;
|
|
23
|
-
sendHandshakeRequest(remotePeerDescriptor?: PeerDescriptor): void;
|
|
24
|
-
sendHandshakeResponse(error?: HandshakeError): void;
|
|
25
|
-
stop(): void;
|
|
26
|
-
}
|
|
27
|
-
export {};
|
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Handshaker = exports.createHandshakeResponse = exports.createHandshakeRequest = exports.acceptHandshake = exports.rejectHandshake = exports.createIncomingHandshaker = exports.createOutgoingHandshaker = void 0;
|
|
4
|
-
const utils_1 = require("@streamr/utils");
|
|
5
|
-
const eventemitter3_1 = require("eventemitter3");
|
|
6
|
-
const uuid_1 = require("uuid");
|
|
7
|
-
const DhtRpc_1 = require("../../generated/packages/dht/protos/DhtRpc");
|
|
8
|
-
const version_1 = require("../helpers/version");
|
|
9
|
-
const identifiers_1 = require("../identifiers");
|
|
10
|
-
const package_json_1 = require("../../package.json");
|
|
11
|
-
const logger = new utils_1.Logger(module);
|
|
12
|
-
// Optimally the Outgoing and Incoming Handshakers could be their own separate classes
|
|
13
|
-
// However, in cases where the PeerDescriptor of the other end of the connection can be known
|
|
14
|
-
// only after a HandshakeRequest a base Handshaker class is needed as the IncomingHandshaker currently
|
|
15
|
-
// requires knowledge of the other ends PeerDescriptor. (Note PendingConnection requires the remote PeerDescriptor)
|
|
16
|
-
const createOutgoingHandshaker = (localPeerDescriptor, pendingConnection, connection, targetPeerDescriptor) => {
|
|
17
|
-
const handshaker = new Handshaker(localPeerDescriptor, connection);
|
|
18
|
-
const stopHandshaker = () => {
|
|
19
|
-
handshaker.stop();
|
|
20
|
-
connection.off('disconnected', disconnectedListener);
|
|
21
|
-
connection.off('connected', connectedListener);
|
|
22
|
-
handshaker.off('handshakeCompleted', handshakeCompletedListener);
|
|
23
|
-
handshaker.off('handshakeFailed', handshakeFailedListener);
|
|
24
|
-
pendingConnection.off('disconnected', managedConnectionDisconnectedListener);
|
|
25
|
-
};
|
|
26
|
-
const handshakeFailedListener = (error) => {
|
|
27
|
-
if (error === DhtRpc_1.HandshakeError.INVALID_TARGET_PEER_DESCRIPTOR || error === DhtRpc_1.HandshakeError.UNSUPPORTED_PROTOCOL_VERSION) {
|
|
28
|
-
pendingConnection.close(false);
|
|
29
|
-
stopHandshaker();
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
// Wait for the other end to close the connection
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
const handshakeCompletedListener = (peerDescriptor) => {
|
|
36
|
-
logger.trace('handshake completed for outgoing connection, ' + (0, identifiers_1.toNodeId)(peerDescriptor));
|
|
37
|
-
pendingConnection.onHandshakeCompleted(connection);
|
|
38
|
-
stopHandshaker();
|
|
39
|
-
};
|
|
40
|
-
const connectedListener = () => handshaker.sendHandshakeRequest(targetPeerDescriptor);
|
|
41
|
-
const disconnectedListener = (graceful) => {
|
|
42
|
-
pendingConnection.close(graceful);
|
|
43
|
-
stopHandshaker();
|
|
44
|
-
};
|
|
45
|
-
const managedConnectionDisconnectedListener = () => {
|
|
46
|
-
connection.close(false);
|
|
47
|
-
stopHandshaker();
|
|
48
|
-
};
|
|
49
|
-
handshaker.once('handshakeFailed', handshakeFailedListener);
|
|
50
|
-
handshaker.once('handshakeCompleted', handshakeCompletedListener);
|
|
51
|
-
connection.once('connected', connectedListener);
|
|
52
|
-
connection.once('disconnected', disconnectedListener);
|
|
53
|
-
pendingConnection.once('disconnected', managedConnectionDisconnectedListener);
|
|
54
|
-
return handshaker;
|
|
55
|
-
};
|
|
56
|
-
exports.createOutgoingHandshaker = createOutgoingHandshaker;
|
|
57
|
-
const createIncomingHandshaker = (localPeerDescriptor, pendingConnection, connection) => {
|
|
58
|
-
const handshaker = new Handshaker(localPeerDescriptor, connection);
|
|
59
|
-
const stopHandshaker = () => {
|
|
60
|
-
handshaker.stop();
|
|
61
|
-
pendingConnection.off('disconnected', connectionDisconnected);
|
|
62
|
-
connection.off('disconnected', connectionDisconnected);
|
|
63
|
-
};
|
|
64
|
-
const onHandshakeRequest = () => {
|
|
65
|
-
stopHandshaker();
|
|
66
|
-
};
|
|
67
|
-
const connectionDisconnected = (graceful) => {
|
|
68
|
-
pendingConnection.close(graceful);
|
|
69
|
-
stopHandshaker();
|
|
70
|
-
};
|
|
71
|
-
const managedConnectionDisconnected = () => {
|
|
72
|
-
connection.close(false);
|
|
73
|
-
stopHandshaker();
|
|
74
|
-
};
|
|
75
|
-
handshaker.on('handshakeRequest', onHandshakeRequest);
|
|
76
|
-
connection.once('disconnected', connectionDisconnected);
|
|
77
|
-
pendingConnection.once('disconnected', managedConnectionDisconnected);
|
|
78
|
-
return handshaker;
|
|
79
|
-
};
|
|
80
|
-
exports.createIncomingHandshaker = createIncomingHandshaker;
|
|
81
|
-
const rejectHandshake = (pendingConnection, connection, handshaker, error) => {
|
|
82
|
-
handshaker.sendHandshakeResponse(error);
|
|
83
|
-
connection.destroy();
|
|
84
|
-
pendingConnection.destroy();
|
|
85
|
-
};
|
|
86
|
-
exports.rejectHandshake = rejectHandshake;
|
|
87
|
-
const acceptHandshake = (handshaker, pendingConnection, connection) => {
|
|
88
|
-
handshaker.sendHandshakeResponse();
|
|
89
|
-
pendingConnection.onHandshakeCompleted(connection);
|
|
90
|
-
};
|
|
91
|
-
exports.acceptHandshake = acceptHandshake;
|
|
92
|
-
const createHandshakeRequest = (localPeerDescriptor, remotePeerDescriptor) => {
|
|
93
|
-
const outgoingHandshake = {
|
|
94
|
-
sourcePeerDescriptor: localPeerDescriptor,
|
|
95
|
-
targetPeerDescriptor: remotePeerDescriptor,
|
|
96
|
-
protocolVersion: version_1.LOCAL_PROTOCOL_VERSION,
|
|
97
|
-
applicationVersion: package_json_1.version
|
|
98
|
-
};
|
|
99
|
-
return {
|
|
100
|
-
serviceId: Handshaker.HANDSHAKER_SERVICE_ID,
|
|
101
|
-
messageId: (0, uuid_1.v4)(),
|
|
102
|
-
body: {
|
|
103
|
-
oneofKind: 'handshakeRequest',
|
|
104
|
-
handshakeRequest: outgoingHandshake
|
|
105
|
-
}
|
|
106
|
-
};
|
|
107
|
-
};
|
|
108
|
-
exports.createHandshakeRequest = createHandshakeRequest;
|
|
109
|
-
const createHandshakeResponse = (localPeerDescriptor, error) => {
|
|
110
|
-
const outgoingHandshakeResponse = {
|
|
111
|
-
sourcePeerDescriptor: localPeerDescriptor,
|
|
112
|
-
error,
|
|
113
|
-
protocolVersion: version_1.LOCAL_PROTOCOL_VERSION,
|
|
114
|
-
applicationVersion: package_json_1.version
|
|
115
|
-
};
|
|
116
|
-
return {
|
|
117
|
-
serviceId: Handshaker.HANDSHAKER_SERVICE_ID,
|
|
118
|
-
messageId: (0, uuid_1.v4)(),
|
|
119
|
-
body: {
|
|
120
|
-
oneofKind: 'handshakeResponse',
|
|
121
|
-
handshakeResponse: outgoingHandshakeResponse
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
};
|
|
125
|
-
exports.createHandshakeResponse = createHandshakeResponse;
|
|
126
|
-
class Handshaker extends eventemitter3_1.EventEmitter {
|
|
127
|
-
static HANDSHAKER_SERVICE_ID = 'system/handshaker';
|
|
128
|
-
localPeerDescriptor;
|
|
129
|
-
connection;
|
|
130
|
-
onDataListener;
|
|
131
|
-
constructor(localPeerDescriptor, connection) {
|
|
132
|
-
super();
|
|
133
|
-
this.localPeerDescriptor = localPeerDescriptor;
|
|
134
|
-
this.connection = connection;
|
|
135
|
-
this.onDataListener = (data) => this.onData(data);
|
|
136
|
-
this.connection.on('data', this.onDataListener);
|
|
137
|
-
}
|
|
138
|
-
onData(data) {
|
|
139
|
-
try {
|
|
140
|
-
const message = DhtRpc_1.Message.fromBinary(data);
|
|
141
|
-
if (message.body.oneofKind === 'handshakeRequest') {
|
|
142
|
-
logger.trace('handshake request received');
|
|
143
|
-
const handshake = message.body.handshakeRequest;
|
|
144
|
-
this.emit('handshakeRequest', handshake.sourcePeerDescriptor, handshake.protocolVersion, handshake.targetPeerDescriptor);
|
|
145
|
-
}
|
|
146
|
-
if (message.body.oneofKind === 'handshakeResponse') {
|
|
147
|
-
logger.trace('handshake response received');
|
|
148
|
-
const handshake = message.body.handshakeResponse;
|
|
149
|
-
const error = !(0, version_1.isMaybeSupportedProtocolVersion)(handshake.protocolVersion)
|
|
150
|
-
? DhtRpc_1.HandshakeError.UNSUPPORTED_PROTOCOL_VERSION : handshake.error;
|
|
151
|
-
if (error !== undefined) {
|
|
152
|
-
this.emit('handshakeFailed', error);
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
this.emit('handshakeCompleted', handshake.sourcePeerDescriptor);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
catch (err) {
|
|
160
|
-
logger.debug('error while parsing handshake message', err);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
sendHandshakeRequest(remotePeerDescriptor) {
|
|
164
|
-
const msg = (0, exports.createHandshakeRequest)(this.localPeerDescriptor, remotePeerDescriptor);
|
|
165
|
-
this.connection.send(DhtRpc_1.Message.toBinary(msg));
|
|
166
|
-
logger.trace('handshake request sent');
|
|
167
|
-
}
|
|
168
|
-
sendHandshakeResponse(error) {
|
|
169
|
-
const msg = (0, exports.createHandshakeResponse)(this.localPeerDescriptor, error);
|
|
170
|
-
this.connection.send(DhtRpc_1.Message.toBinary(msg));
|
|
171
|
-
logger.trace('handshake response sent');
|
|
172
|
-
}
|
|
173
|
-
stop() {
|
|
174
|
-
this.connection.off('data', this.onDataListener);
|
|
175
|
-
this.removeAllListeners();
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
exports.Handshaker = Handshaker;
|
|
179
|
-
//# sourceMappingURL=Handshaker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Handshaker.js","sourceRoot":"","sources":["../../../src/connection/Handshaker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { BrandedString } from '@streamr/utils';
|
|
2
|
-
export interface ConnectionEvents {
|
|
3
|
-
data: (bytes: Uint8Array) => void;
|
|
4
|
-
connected: () => void;
|
|
5
|
-
disconnected: (gracefulLeave: boolean, code?: number, reason?: string) => void;
|
|
6
|
-
error: (name: string) => void;
|
|
7
|
-
}
|
|
8
|
-
export declare enum ConnectionType {
|
|
9
|
-
WEBSOCKET_SERVER = "websocket-server",
|
|
10
|
-
WEBSOCKET_CLIENT = "websocket-client",
|
|
11
|
-
WEBRTC = "webrtc",
|
|
12
|
-
SIMULATOR_SERVER = "simulator-server",
|
|
13
|
-
SIMULATOR_CLIENT = "simulator-client"
|
|
14
|
-
}
|
|
15
|
-
export type ConnectionID = BrandedString<'ConnectionID'>;
|
|
16
|
-
export interface IConnection {
|
|
17
|
-
on(event: 'data', listener: (bytes: Uint8Array) => void): this;
|
|
18
|
-
on(event: 'error', listener: (name: string) => void): this;
|
|
19
|
-
on(event: 'connected', listener: () => void): this;
|
|
20
|
-
on(event: 'disconnected', listener: (gracefulLeave: boolean, code?: number, reason?: string) => void): this;
|
|
21
|
-
once(event: 'data', listener: (bytes: Uint8Array) => void): this;
|
|
22
|
-
once(event: 'error', listener: (name: string) => void): this;
|
|
23
|
-
once(event: 'connected', listener: () => void): this;
|
|
24
|
-
once(event: 'disconnected', listener: (gracefulLeave: boolean, code?: number, reason?: string) => void): this;
|
|
25
|
-
off(event: 'data', listener: (bytes: Uint8Array) => void): void;
|
|
26
|
-
off(event: 'error', listener: (name: string) => void): void;
|
|
27
|
-
off(event: 'connected', listener: () => void): void;
|
|
28
|
-
off(event: 'disconnected', listener: (gracefulLeave: boolean, code?: number, reason?: string) => void): void;
|
|
29
|
-
send(data: Uint8Array): void;
|
|
30
|
-
close(gracefulLeave: boolean): Promise<void>;
|
|
31
|
-
destroy(): void;
|
|
32
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ConnectionType = void 0;
|
|
4
|
-
var ConnectionType;
|
|
5
|
-
(function (ConnectionType) {
|
|
6
|
-
ConnectionType["WEBSOCKET_SERVER"] = "websocket-server";
|
|
7
|
-
ConnectionType["WEBSOCKET_CLIENT"] = "websocket-client";
|
|
8
|
-
ConnectionType["WEBRTC"] = "webrtc";
|
|
9
|
-
ConnectionType["SIMULATOR_SERVER"] = "simulator-server";
|
|
10
|
-
ConnectionType["SIMULATOR_CLIENT"] = "simulator-client";
|
|
11
|
-
})(ConnectionType || (exports.ConnectionType = ConnectionType = {}));
|
|
12
|
-
//# sourceMappingURL=IConnection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IConnection.js","sourceRoot":"","sources":["../../../src/connection/IConnection.ts"],"names":[],"mappings":";;;AASA,IAAY,cAMX;AAND,WAAY,cAAc;IACtB,uDAAqC,CAAA;IACrC,uDAAqC,CAAA;IACrC,mCAAiB,CAAA;IACjB,uDAAqC,CAAA;IACrC,uDAAqC,CAAA;AACzC,CAAC,EANW,cAAc,8BAAd,cAAc,QAMzB"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { ConnectionID, IConnection } from './IConnection';
|
|
2
|
-
import { PeerDescriptor } from '../../generated/packages/dht/protos/DhtRpc';
|
|
3
|
-
import EventEmitter from 'eventemitter3';
|
|
4
|
-
import { DhtAddress } from '../identifiers';
|
|
5
|
-
export interface ManagedConnectionEvents {
|
|
6
|
-
managedData: (bytes: Uint8Array, remotePeerDescriptor: PeerDescriptor) => void;
|
|
7
|
-
disconnected: (gracefulLeave: boolean) => void;
|
|
8
|
-
}
|
|
9
|
-
export declare class ManagedConnection extends EventEmitter<ManagedConnectionEvents> {
|
|
10
|
-
private connection;
|
|
11
|
-
connectionId: ConnectionID;
|
|
12
|
-
private remotePeerDescriptor;
|
|
13
|
-
private lastUsedTimestamp;
|
|
14
|
-
private replacedAsDuplicate;
|
|
15
|
-
private stopped;
|
|
16
|
-
private openedAt;
|
|
17
|
-
private bytesSent;
|
|
18
|
-
private bytesReceived;
|
|
19
|
-
private messagesSent;
|
|
20
|
-
private messagesReceived;
|
|
21
|
-
constructor(peerDescriptor: PeerDescriptor, connection: IConnection);
|
|
22
|
-
private onDisconnected;
|
|
23
|
-
replaceAsDuplicate(): void;
|
|
24
|
-
send(data: Uint8Array): void;
|
|
25
|
-
close(gracefulLeave: boolean): Promise<void>;
|
|
26
|
-
getNodeId(): DhtAddress;
|
|
27
|
-
getLastUsedTimestamp(): number;
|
|
28
|
-
getPeerDescriptor(): PeerDescriptor | undefined;
|
|
29
|
-
getDiagnosticInfo(): Record<string, unknown>;
|
|
30
|
-
}
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.ManagedConnection = void 0;
|
|
40
|
-
const Err = __importStar(require("../helpers/errors"));
|
|
41
|
-
const utils_1 = require("@streamr/utils");
|
|
42
|
-
const eventemitter3_1 = __importDefault(require("eventemitter3"));
|
|
43
|
-
const ConnectionManager_1 = require("./ConnectionManager");
|
|
44
|
-
const identifiers_1 = require("../identifiers");
|
|
45
|
-
const Connection_1 = require("./Connection");
|
|
46
|
-
const logger = new utils_1.Logger(module);
|
|
47
|
-
// ManagedConnection is a component used as a wrapper for IConnection after they have been successfully handshaked.
|
|
48
|
-
// Should only be used in the ConnectionManager.
|
|
49
|
-
class ManagedConnection extends eventemitter3_1.default {
|
|
50
|
-
connection;
|
|
51
|
-
connectionId;
|
|
52
|
-
remotePeerDescriptor;
|
|
53
|
-
lastUsedTimestamp = Date.now();
|
|
54
|
-
replacedAsDuplicate = false;
|
|
55
|
-
stopped = false;
|
|
56
|
-
openedAt = Date.now();
|
|
57
|
-
bytesSent = 0;
|
|
58
|
-
bytesReceived = 0;
|
|
59
|
-
messagesSent = 0;
|
|
60
|
-
messagesReceived = 0;
|
|
61
|
-
constructor(peerDescriptor, connection) {
|
|
62
|
-
super();
|
|
63
|
-
this.connectionId = (0, Connection_1.createRandomConnectionId)();
|
|
64
|
-
this.connection = connection;
|
|
65
|
-
connection.on('data', (bytes) => {
|
|
66
|
-
this.lastUsedTimestamp = Date.now();
|
|
67
|
-
this.messagesReceived += 1;
|
|
68
|
-
this.bytesReceived += bytes.length;
|
|
69
|
-
this.emit('managedData', bytes, this.getPeerDescriptor());
|
|
70
|
-
});
|
|
71
|
-
connection.on('disconnected', (gracefulLeave) => this.onDisconnected(gracefulLeave));
|
|
72
|
-
this.lastUsedTimestamp = Date.now();
|
|
73
|
-
this.remotePeerDescriptor = peerDescriptor;
|
|
74
|
-
}
|
|
75
|
-
onDisconnected(gracefulLeave) {
|
|
76
|
-
logger.trace((0, ConnectionManager_1.getNodeIdOrUnknownFromPeerDescriptor)(this.remotePeerDescriptor) + ' onDisconnected() ' + gracefulLeave);
|
|
77
|
-
if (!this.replacedAsDuplicate) {
|
|
78
|
-
this.emit('disconnected', gracefulLeave);
|
|
79
|
-
}
|
|
80
|
-
this.removeAllListeners();
|
|
81
|
-
}
|
|
82
|
-
// TODO: Can this be removed if ManagedConnections can never be duplicates?
|
|
83
|
-
// Handle duplicates in the ConncetorFacade and no longer have PendingConnections in ConnectionManager
|
|
84
|
-
replaceAsDuplicate() {
|
|
85
|
-
logger.trace((0, ConnectionManager_1.getNodeIdOrUnknownFromPeerDescriptor)(this.remotePeerDescriptor) + ' replaceAsDuplicate');
|
|
86
|
-
this.replacedAsDuplicate = true;
|
|
87
|
-
}
|
|
88
|
-
send(data) {
|
|
89
|
-
if (this.stopped) {
|
|
90
|
-
throw new Err.SendFailed('ManagedConnection is stopped');
|
|
91
|
-
}
|
|
92
|
-
this.lastUsedTimestamp = Date.now();
|
|
93
|
-
this.messagesSent += 1;
|
|
94
|
-
this.bytesSent += data.length;
|
|
95
|
-
this.connection.send(data);
|
|
96
|
-
}
|
|
97
|
-
async close(gracefulLeave) {
|
|
98
|
-
if (this.stopped) {
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
await this.connection.close(gracefulLeave);
|
|
102
|
-
this.removeAllListeners();
|
|
103
|
-
}
|
|
104
|
-
getNodeId() {
|
|
105
|
-
return (0, identifiers_1.toNodeId)(this.remotePeerDescriptor);
|
|
106
|
-
}
|
|
107
|
-
getLastUsedTimestamp() {
|
|
108
|
-
return this.lastUsedTimestamp;
|
|
109
|
-
}
|
|
110
|
-
getPeerDescriptor() {
|
|
111
|
-
return this.remotePeerDescriptor;
|
|
112
|
-
}
|
|
113
|
-
getDiagnosticInfo() {
|
|
114
|
-
return {
|
|
115
|
-
remotePeerDescriptor: this.remotePeerDescriptor,
|
|
116
|
-
lastUsedTimestamp: this.lastUsedTimestamp,
|
|
117
|
-
replacedAsDuplicate: this.replacedAsDuplicate,
|
|
118
|
-
stopped: this.stopped,
|
|
119
|
-
openedAt: this.openedAt,
|
|
120
|
-
bytesSent: this.bytesSent,
|
|
121
|
-
bytesReceived: this.bytesReceived,
|
|
122
|
-
messagesSent: this.messagesSent,
|
|
123
|
-
messagesReceived: this.messagesReceived
|
|
124
|
-
// Add connection type?
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
exports.ManagedConnection = ManagedConnection;
|
|
129
|
-
//# sourceMappingURL=ManagedConnection.js.map
|