@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,26 +0,0 @@
|
|
|
1
|
-
import { CertifiedSubdomain } from '@streamr/autocertifier-client';
|
|
2
|
-
import { ITransport } from '../../transport/ITransport';
|
|
3
|
-
export interface IAutoCertifierClient {
|
|
4
|
-
start(): Promise<void>;
|
|
5
|
-
stop(): void;
|
|
6
|
-
on(eventName: string, cb: (subdomain: CertifiedSubdomain) => void): void;
|
|
7
|
-
off(eventName: string, cb: (subdomain: CertifiedSubdomain) => void): void;
|
|
8
|
-
}
|
|
9
|
-
interface AutoCertifierClientFacadeOptions {
|
|
10
|
-
url: string;
|
|
11
|
-
configFile: string;
|
|
12
|
-
transport: ITransport;
|
|
13
|
-
wsServerPort: number;
|
|
14
|
-
setHost: (host: string) => void;
|
|
15
|
-
updateCertificate: (certificate: string, privateKey: string) => void;
|
|
16
|
-
createClientFactory?: () => IAutoCertifierClient;
|
|
17
|
-
}
|
|
18
|
-
export declare class AutoCertifierClientFacade {
|
|
19
|
-
private autoCertifierClient;
|
|
20
|
-
private readonly rpcCommunicator;
|
|
21
|
-
private readonly options;
|
|
22
|
-
constructor(options: AutoCertifierClientFacadeOptions);
|
|
23
|
-
start(): Promise<void>;
|
|
24
|
-
stop(): void;
|
|
25
|
-
}
|
|
26
|
-
export {};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AutoCertifierClientFacade = void 0;
|
|
4
|
-
const autocertifier_client_1 = require("@streamr/autocertifier-client");
|
|
5
|
-
const ListeningRpcCommunicator_1 = require("../../transport/ListeningRpcCommunicator");
|
|
6
|
-
const utils_1 = require("@streamr/utils");
|
|
7
|
-
const START_TIMEOUT = 60 * 1000;
|
|
8
|
-
const defaultAutoCertifierClientFactory = (configFile, autoCertifierUrl, autoCertifierRpcCommunicator, wsServerPort) => new autocertifier_client_1.AutoCertifierClient(configFile, wsServerPort, autoCertifierUrl, (_serviceId, rpcMethodName, method) => {
|
|
9
|
-
autoCertifierRpcCommunicator.registerRpcMethod(autocertifier_client_1.HasSessionRequest, autocertifier_client_1.HasSessionResponse, rpcMethodName, method);
|
|
10
|
-
});
|
|
11
|
-
const logger = new utils_1.Logger(module);
|
|
12
|
-
class AutoCertifierClientFacade {
|
|
13
|
-
autoCertifierClient;
|
|
14
|
-
rpcCommunicator;
|
|
15
|
-
options;
|
|
16
|
-
constructor(options) {
|
|
17
|
-
this.options = options;
|
|
18
|
-
this.rpcCommunicator = new ListeningRpcCommunicator_1.ListeningRpcCommunicator(autocertifier_client_1.SERVICE_ID, options.transport);
|
|
19
|
-
this.autoCertifierClient = options.createClientFactory ? options.createClientFactory()
|
|
20
|
-
: defaultAutoCertifierClientFactory(options.configFile, options.url, this.rpcCommunicator, options.wsServerPort);
|
|
21
|
-
}
|
|
22
|
-
async start() {
|
|
23
|
-
this.autoCertifierClient.on('updatedCertificate', (subdomain) => {
|
|
24
|
-
this.options.setHost(subdomain.fqdn);
|
|
25
|
-
this.options.updateCertificate(subdomain.certificate, subdomain.privateKey);
|
|
26
|
-
logger.trace(`Updated certificate`);
|
|
27
|
-
});
|
|
28
|
-
await Promise.all([
|
|
29
|
-
(0, utils_1.waitForEvent)(this.autoCertifierClient, 'updatedCertificate', START_TIMEOUT),
|
|
30
|
-
this.autoCertifierClient.start()
|
|
31
|
-
]);
|
|
32
|
-
}
|
|
33
|
-
stop() {
|
|
34
|
-
this.autoCertifierClient.stop();
|
|
35
|
-
this.rpcCommunicator.destroy();
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
exports.AutoCertifierClientFacade = AutoCertifierClientFacade;
|
|
39
|
-
//# sourceMappingURL=AutoCertifierClientFacade.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AutoCertifierClientFacade.js","sourceRoot":"","sources":["../../../../src/connection/websocket/AutoCertifierClientFacade.ts"],"names":[],"mappings":";;;AAAA,wEAOsC;AACtC,uFAAmF;AACnF,0CAAqD;AAGrD,MAAM,aAAa,GAAG,EAAE,GAAG,IAAI,CAAA;AAE/B,MAAM,iCAAiC,GAAG,CACtC,UAAkB,EAClB,gBAAwB,EACxB,4BAAsD,EACtD,YAAoB,EACtB,EAAE,CAAC,IAAI,0CAAmB,CACxB,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,CAAC,UAAkB,EAAE,aAAqB,EAAE,MAAkB,EAAE,EAAE;IAC9D,4BAA4B,CAAC,iBAAiB,CAC1C,wCAAiB,EACjB,yCAAkB,EAClB,aAAa,EACb,MAAM,CACT,CAAA;AACL,CAAC,CACJ,CAAA;AAqBD,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,yBAAyB;IAE1B,mBAAmB,CAAsB;IAChC,eAAe,CAA0B;IACzC,OAAO,CAAkC;IAE1D,YAAY,OAAyC;QACjD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,eAAe,GAAG,IAAI,mDAAwB,CAAC,iCAAyB,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QACjG,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE;YAClF,CAAC,CAAC,iCAAiC,CAC/B,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,GAAG,EACX,IAAI,CAAC,eAAe,EACpB,OAAO,CAAC,YAAY,CACvB,CAAA;IACT,CAAC;IAED,KAAK,CAAC,KAAK;QACP,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,SAA6B,EAAE,EAAE;YAChF,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YACpC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,UAAU,CAAC,CAAA;YAC3E,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;QACvC,CAAC,CAAC,CAAA;QACF,MAAM,OAAO,CAAC,GAAG,CAAC;YACd,IAAA,oBAAY,EAAC,IAAI,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,aAAa,CAAC;YAC3E,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE;SACnC,CAAC,CAAA;IACN,CAAC;IAED,IAAI;QACA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAA;QAC/B,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAA;IAClC,CAAC;CAEJ;AAnCD,8DAmCC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { w3cwebsocket as Websocket } from 'websocket';
|
|
2
|
-
import { AbstractWebsocketClientConnection } from './AbstractWebsocketClientConnection';
|
|
3
|
-
export declare class WebsocketClientConnection extends AbstractWebsocketClientConnection {
|
|
4
|
-
protected socket?: Websocket;
|
|
5
|
-
connect(address: string, selfSigned?: boolean): void;
|
|
6
|
-
protected stopListening(): void;
|
|
7
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WebsocketClientConnection = void 0;
|
|
4
|
-
const utils_1 = require("@streamr/utils");
|
|
5
|
-
const websocket_1 = require("websocket");
|
|
6
|
-
const AbstractWebsocketClientConnection_1 = require("./AbstractWebsocketClientConnection");
|
|
7
|
-
const logger = new utils_1.Logger(module);
|
|
8
|
-
const BINARY_TYPE = 'arraybuffer';
|
|
9
|
-
class WebsocketClientConnection extends AbstractWebsocketClientConnection_1.AbstractWebsocketClientConnection {
|
|
10
|
-
socket;
|
|
11
|
-
// TODO explicit default value for "selfSigned" or make it required
|
|
12
|
-
connect(address, selfSigned) {
|
|
13
|
-
if (!this.destroyed) {
|
|
14
|
-
this.socket = new websocket_1.w3cwebsocket(address, undefined, undefined, undefined, { rejectUnauthorized: !selfSigned });
|
|
15
|
-
this.socket.binaryType = BINARY_TYPE;
|
|
16
|
-
this.socket.onerror = (error) => this.onError(error);
|
|
17
|
-
this.socket.onopen = () => this.onOpen();
|
|
18
|
-
this.socket.onclose = (event) => this.onClose(event.code, event.reason);
|
|
19
|
-
this.socket.onmessage = (message) => {
|
|
20
|
-
if (!this.destroyed) {
|
|
21
|
-
if (typeof message.data === 'string') {
|
|
22
|
-
logger.debug('Received string data, only binary data is supported');
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
this.onMessage(new Uint8Array(message.data));
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
logger.debug('Tried to connect() a stopped connection');
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
stopListening() {
|
|
35
|
-
if (this.socket) {
|
|
36
|
-
this.socket.onopen = undefined;
|
|
37
|
-
this.socket.onclose = undefined;
|
|
38
|
-
this.socket.onerror = undefined;
|
|
39
|
-
this.socket.onmessage = undefined;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
exports.WebsocketClientConnection = WebsocketClientConnection;
|
|
44
|
-
//# sourceMappingURL=BrowserWebsocketClientConnection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserWebsocketClientConnection.js","sourceRoot":"","sources":["../../../../src/connection/websocket/BrowserWebsocketClientConnection.ts"],"names":[],"mappings":";;;AAAA,0CAAuC;AACvC,yCAAiF;AACjF,2FAAuF;AAEvF,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAM,WAAW,GAAG,aAAa,CAAA;AAEjC,MAAa,yBAA0B,SAAQ,qEAAiC;IAElE,MAAM,CAAY;IAE5B,mEAAmE;IAC5D,OAAO,CAAC,OAAe,EAAE,UAAoB;QAChD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,IAAI,wBAAS,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,kBAAkB,EAAE,CAAC,UAAU,EAAE,CAAC,CAAA;YAC1G,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,WAAW,CAAA;YACpC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YAC3D,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA;YACxC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,KAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;YACpF,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,OAAsB,EAAE,EAAE;gBAC/C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;oBAClB,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBACnC,MAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAA;oBACvE,CAAC;yBAAM,CAAC;wBACJ,IAAI,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;oBAChD,CAAC;gBACL,CAAC;YACL,CAAC,CAAA;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAA;QAC3D,CAAC;IACL,CAAC;IAES,aAAa;QACnB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,SAAoC,CAAA;YACzD,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,SAAoC,CAAA;YAC1D,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,SAAoC,CAAA;YAC1D,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,SAAoC,CAAA;QAChE,CAAC;IACL,CAAC;CAEJ;AAnCD,8DAmCC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { WebSocket } from 'ws';
|
|
2
|
-
import { AbstractWebsocketClientConnection } from './AbstractWebsocketClientConnection';
|
|
3
|
-
export declare class WebsocketClientConnection extends AbstractWebsocketClientConnection {
|
|
4
|
-
protected socket?: WebSocket;
|
|
5
|
-
connect(address: string, selfSigned?: boolean): void;
|
|
6
|
-
protected stopListening(): void;
|
|
7
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WebsocketClientConnection = void 0;
|
|
4
|
-
const utils_1 = require("@streamr/utils");
|
|
5
|
-
const ws_1 = require("ws");
|
|
6
|
-
const AbstractWebsocketClientConnection_1 = require("./AbstractWebsocketClientConnection");
|
|
7
|
-
const logger = new utils_1.Logger(module);
|
|
8
|
-
const BINARY_TYPE = 'nodebuffer';
|
|
9
|
-
class WebsocketClientConnection extends AbstractWebsocketClientConnection_1.AbstractWebsocketClientConnection {
|
|
10
|
-
socket;
|
|
11
|
-
// TODO explicit default value for "selfSigned" or make it required
|
|
12
|
-
connect(address, selfSigned) {
|
|
13
|
-
if (!this.destroyed) {
|
|
14
|
-
this.socket = new ws_1.WebSocket(address, { rejectUnauthorized: !selfSigned });
|
|
15
|
-
this.socket.binaryType = BINARY_TYPE;
|
|
16
|
-
this.socket.on('error', (error) => this.onError(error));
|
|
17
|
-
this.socket.on('open', () => this.onOpen());
|
|
18
|
-
this.socket.on('close', (code, reason) => this.onClose(code, (0, utils_1.binaryToUtf8)(reason)));
|
|
19
|
-
this.socket.on('message', (message, isBinary) => {
|
|
20
|
-
if (!this.destroyed) {
|
|
21
|
-
if (isBinary === false) {
|
|
22
|
-
logger.debug('Received string data, only binary data is supported');
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
this.onMessage(new Uint8Array(message));
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
logger.debug('Tried to connect() a stopped connection', { id: this.connectionId });
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
stopListening() {
|
|
35
|
-
this.socket?.removeAllListeners();
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
exports.WebsocketClientConnection = WebsocketClientConnection;
|
|
39
|
-
//# sourceMappingURL=NodeWebsocketClientConnection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NodeWebsocketClientConnection.js","sourceRoot":"","sources":["../../../../src/connection/websocket/NodeWebsocketClientConnection.ts"],"names":[],"mappings":";;;AAAA,0CAAqD;AACrD,2BAA8B;AAC9B,2FAAuF;AAEvF,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAM,WAAW,GAAG,YAAY,CAAA;AAEhC,MAAa,yBAA0B,SAAQ,qEAAiC;IAElE,MAAM,CAAY;IAE5B,mEAAmE;IAC5D,OAAO,CAAC,OAAe,EAAE,UAAoB;QAChD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,IAAI,cAAS,CAAC,OAAO,EAAE,EAAE,kBAAkB,EAAE,CAAC,UAAU,EAAE,CAAC,CAAA;YACzE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,WAAW,CAAA;YACpC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;YAC9D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;YAC3C,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAY,EAAE,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAA,oBAAY,EAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YACnG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAe,EAAE,QAAiB,EAAE,EAAE;gBAC7D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;oBAClB,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;wBACrB,MAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAA;oBACvE,CAAC;yBAAM,CAAC;wBACJ,IAAI,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAA;oBAC3C,CAAC;gBACL,CAAC;YACL,CAAC,CAAC,CAAA;QACN,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA;QACtF,CAAC;IACL,CAAC;IAES,aAAa;QACnB,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAA;IACrC,CAAC;CAEJ;AA9BD,8DA8BC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { ListeningRpcCommunicator } from '../../transport/ListeningRpcCommunicator';
|
|
2
|
-
import { ConnectivityMethod, PeerDescriptor } from '../../../generated/packages/dht/protos/DhtRpc';
|
|
3
|
-
import { DhtAddress } from '../../identifiers';
|
|
4
|
-
import { PendingConnection } from '../PendingConnection';
|
|
5
|
-
export type Action = 'connectivityRequest' | 'connectivityProbe';
|
|
6
|
-
export declare const connectivityMethodToWebsocketUrl: (ws: ConnectivityMethod, action?: Action) => string;
|
|
7
|
-
export interface WebsocketClientConnectorOptions {
|
|
8
|
-
onNewConnection: (connection: PendingConnection) => boolean;
|
|
9
|
-
hasConnection: (nodeId: DhtAddress) => boolean;
|
|
10
|
-
rpcCommunicator: ListeningRpcCommunicator;
|
|
11
|
-
}
|
|
12
|
-
export declare class WebsocketClientConnector {
|
|
13
|
-
static readonly WEBSOCKET_CONNECTOR_SERVICE_ID = "system/websocket-connector";
|
|
14
|
-
private readonly websocketServer?;
|
|
15
|
-
private geoIpLocator?;
|
|
16
|
-
private localPeerDescriptor?;
|
|
17
|
-
private connectingConnections;
|
|
18
|
-
private abortController;
|
|
19
|
-
private readonly options;
|
|
20
|
-
constructor(options: WebsocketClientConnectorOptions);
|
|
21
|
-
private registerLocalRpcMethods;
|
|
22
|
-
isPossibleToFormConnection(targetPeerDescriptor: PeerDescriptor): boolean;
|
|
23
|
-
connect(targetPeerDescriptor: PeerDescriptor): PendingConnection;
|
|
24
|
-
setLocalPeerDescriptor(peerDescriptor: PeerDescriptor): void;
|
|
25
|
-
destroy(): Promise<void>;
|
|
26
|
-
}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WebsocketClientConnector = exports.connectivityMethodToWebsocketUrl = void 0;
|
|
4
|
-
const NodeWebsocketClientConnection_1 = require("./NodeWebsocketClientConnection");
|
|
5
|
-
const IConnection_1 = require("../IConnection");
|
|
6
|
-
const WebsocketClientConnectorRpcLocal_1 = require("./WebsocketClientConnectorRpcLocal");
|
|
7
|
-
const DhtRpc_1 = require("../../../generated/packages/dht/protos/DhtRpc");
|
|
8
|
-
const Handshaker_1 = require("../Handshaker");
|
|
9
|
-
const Connectivity_1 = require("../../helpers/Connectivity");
|
|
10
|
-
const identifiers_1 = require("../../identifiers");
|
|
11
|
-
const PendingConnection_1 = require("../PendingConnection");
|
|
12
|
-
const connectivityMethodToWebsocketUrl = (ws, action) => {
|
|
13
|
-
return (ws.tls ? 'wss://' : 'ws://') + ws.host + ':' + ws.port + ((action !== undefined) ? '?action=' + action : '');
|
|
14
|
-
};
|
|
15
|
-
exports.connectivityMethodToWebsocketUrl = connectivityMethodToWebsocketUrl;
|
|
16
|
-
class WebsocketClientConnector {
|
|
17
|
-
static WEBSOCKET_CONNECTOR_SERVICE_ID = 'system/websocket-connector';
|
|
18
|
-
websocketServer;
|
|
19
|
-
geoIpLocator;
|
|
20
|
-
localPeerDescriptor;
|
|
21
|
-
connectingConnections = new Map();
|
|
22
|
-
abortController = new AbortController();
|
|
23
|
-
options;
|
|
24
|
-
constructor(options) {
|
|
25
|
-
this.options = options;
|
|
26
|
-
this.registerLocalRpcMethods();
|
|
27
|
-
}
|
|
28
|
-
registerLocalRpcMethods() {
|
|
29
|
-
const rpcLocal = new WebsocketClientConnectorRpcLocal_1.WebsocketClientConnectorRpcLocal({
|
|
30
|
-
connect: (targetPeerDescriptor) => this.connect(targetPeerDescriptor),
|
|
31
|
-
hasConnection: (nodeId) => (this.connectingConnections.has(nodeId)
|
|
32
|
-
|| this.options.hasConnection(nodeId)),
|
|
33
|
-
onNewConnection: (connection) => this.options.onNewConnection(connection),
|
|
34
|
-
abortSignal: this.abortController.signal
|
|
35
|
-
});
|
|
36
|
-
this.options.rpcCommunicator.registerRpcNotification(DhtRpc_1.WebsocketConnectionRequest, 'requestConnection', async (req, context) => {
|
|
37
|
-
if (!this.abortController.signal.aborted) {
|
|
38
|
-
return rpcLocal.requestConnection(req, context);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
return {};
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
isPossibleToFormConnection(targetPeerDescriptor) {
|
|
46
|
-
const connectionType = (0, Connectivity_1.expectedConnectionType)(this.localPeerDescriptor, targetPeerDescriptor);
|
|
47
|
-
return connectionType === IConnection_1.ConnectionType.WEBSOCKET_CLIENT;
|
|
48
|
-
}
|
|
49
|
-
connect(targetPeerDescriptor) {
|
|
50
|
-
const nodeId = (0, identifiers_1.toNodeId)(targetPeerDescriptor);
|
|
51
|
-
const existingConnection = this.connectingConnections.get(nodeId);
|
|
52
|
-
if (existingConnection) {
|
|
53
|
-
return existingConnection;
|
|
54
|
-
}
|
|
55
|
-
const socket = new NodeWebsocketClientConnection_1.WebsocketClientConnection();
|
|
56
|
-
const url = (0, exports.connectivityMethodToWebsocketUrl)(targetPeerDescriptor.websocket);
|
|
57
|
-
const pendingConnection = new PendingConnection_1.PendingConnection(targetPeerDescriptor);
|
|
58
|
-
(0, Handshaker_1.createOutgoingHandshaker)(this.localPeerDescriptor, pendingConnection, socket, targetPeerDescriptor);
|
|
59
|
-
this.connectingConnections.set(nodeId, pendingConnection);
|
|
60
|
-
const delFunc = () => {
|
|
61
|
-
if (this.connectingConnections.has(nodeId)) {
|
|
62
|
-
this.connectingConnections.delete(nodeId);
|
|
63
|
-
}
|
|
64
|
-
socket.off('disconnected', delFunc);
|
|
65
|
-
pendingConnection.off('disconnected', delFunc);
|
|
66
|
-
pendingConnection.off('connected', delFunc);
|
|
67
|
-
};
|
|
68
|
-
socket.on('disconnected', delFunc);
|
|
69
|
-
pendingConnection.on('disconnected', delFunc);
|
|
70
|
-
pendingConnection.on('connected', delFunc);
|
|
71
|
-
socket.connect(url, false);
|
|
72
|
-
return pendingConnection;
|
|
73
|
-
}
|
|
74
|
-
setLocalPeerDescriptor(peerDescriptor) {
|
|
75
|
-
this.localPeerDescriptor = peerDescriptor;
|
|
76
|
-
}
|
|
77
|
-
async destroy() {
|
|
78
|
-
this.abortController.abort();
|
|
79
|
-
const requests = Array.from(this.connectingConnections.values());
|
|
80
|
-
requests.forEach((conn) => conn.close(true));
|
|
81
|
-
await this.websocketServer?.stop();
|
|
82
|
-
this.geoIpLocator?.stop();
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
exports.WebsocketClientConnector = WebsocketClientConnector;
|
|
86
|
-
//# sourceMappingURL=WebsocketClientConnector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WebsocketClientConnector.js","sourceRoot":"","sources":["../../../../src/connection/websocket/WebsocketClientConnector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { ServerCallContext } from '@protobuf-ts/runtime-rpc';
|
|
2
|
-
import { PeerDescriptor, WebsocketConnectionRequest } from '../../../generated/packages/dht/protos/DhtRpc';
|
|
3
|
-
import { IWebsocketClientConnectorRpc } from '../../../generated/packages/dht/protos/DhtRpc.server';
|
|
4
|
-
import { Empty } from '../../../generated/google/protobuf/empty';
|
|
5
|
-
import { DhtAddress } from '../../identifiers';
|
|
6
|
-
import { PendingConnection } from '../PendingConnection';
|
|
7
|
-
interface WebsocketClientConnectorRpcLocalOptions {
|
|
8
|
-
connect: (targetPeerDescriptor: PeerDescriptor) => PendingConnection;
|
|
9
|
-
hasConnection: (nodeId: DhtAddress) => boolean;
|
|
10
|
-
onNewConnection: (connection: PendingConnection) => boolean;
|
|
11
|
-
abortSignal: AbortSignal;
|
|
12
|
-
}
|
|
13
|
-
export declare class WebsocketClientConnectorRpcLocal implements IWebsocketClientConnectorRpc {
|
|
14
|
-
private readonly options;
|
|
15
|
-
constructor(options: WebsocketClientConnectorRpcLocalOptions);
|
|
16
|
-
requestConnection(_request: WebsocketConnectionRequest, context: ServerCallContext): Promise<Empty>;
|
|
17
|
-
}
|
|
18
|
-
export {};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WebsocketClientConnectorRpcLocal = void 0;
|
|
4
|
-
const identifiers_1 = require("../../identifiers");
|
|
5
|
-
class WebsocketClientConnectorRpcLocal {
|
|
6
|
-
options;
|
|
7
|
-
constructor(options) {
|
|
8
|
-
this.options = options;
|
|
9
|
-
}
|
|
10
|
-
async requestConnection(_request, context) {
|
|
11
|
-
if (this.options.abortSignal.aborted) {
|
|
12
|
-
return {};
|
|
13
|
-
}
|
|
14
|
-
const senderPeerDescriptor = context.incomingSourceDescriptor;
|
|
15
|
-
if (!this.options.hasConnection((0, identifiers_1.toNodeId)(senderPeerDescriptor))) {
|
|
16
|
-
const connection = this.options.connect(senderPeerDescriptor);
|
|
17
|
-
this.options.onNewConnection(connection);
|
|
18
|
-
}
|
|
19
|
-
return {};
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
exports.WebsocketClientConnectorRpcLocal = WebsocketClientConnectorRpcLocal;
|
|
23
|
-
//# sourceMappingURL=WebsocketClientConnectorRpcLocal.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WebsocketClientConnectorRpcLocal.js","sourceRoot":"","sources":["../../../../src/connection/websocket/WebsocketClientConnectorRpcLocal.ts"],"names":[],"mappings":";;;AAQA,mDAAwD;AAUxD,MAAa,gCAAgC;IAExB,OAAO,CAAyC;IAEjE,YAAY,OAAgD;QACxD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1B,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,QAAoC,EAAE,OAA0B;QAC3F,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACnC,OAAO,EAAE,CAAA;QACb,CAAC;QACD,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAA,sBAAQ,EAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC;YAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;YAC7D,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA;QAC5C,CAAC;QACD,OAAO,EAAE,CAAA;IACb,CAAC;CACJ;AAnBD,4EAmBC"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { RpcRemote } from '../../dht/contact/RpcRemote';
|
|
2
|
-
import { WebsocketClientConnectorRpcClient } from '../../../generated/packages/dht/protos/DhtRpc.client';
|
|
3
|
-
export declare class WebsocketClientConnectorRpcRemote extends RpcRemote<WebsocketClientConnectorRpcClient> {
|
|
4
|
-
requestConnection(): Promise<void>;
|
|
5
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WebsocketClientConnectorRpcRemote = void 0;
|
|
4
|
-
const utils_1 = require("@streamr/utils");
|
|
5
|
-
const RpcRemote_1 = require("../../dht/contact/RpcRemote");
|
|
6
|
-
const identifiers_1 = require("../../identifiers");
|
|
7
|
-
const logger = new utils_1.Logger(module);
|
|
8
|
-
class WebsocketClientConnectorRpcRemote extends RpcRemote_1.RpcRemote {
|
|
9
|
-
async requestConnection() {
|
|
10
|
-
logger.trace(`Requesting WebSocket connection from ${(0, identifiers_1.toNodeId)(this.getLocalPeerDescriptor())}`);
|
|
11
|
-
const request = {};
|
|
12
|
-
const options = this.formDhtRpcOptions();
|
|
13
|
-
return this.getClient().requestConnection(request, options);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
exports.WebsocketClientConnectorRpcRemote = WebsocketClientConnectorRpcRemote;
|
|
17
|
-
//# sourceMappingURL=WebsocketClientConnectorRpcRemote.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WebsocketClientConnectorRpcRemote.js","sourceRoot":"","sources":["../../../../src/connection/websocket/WebsocketClientConnectorRpcRemote.ts"],"names":[],"mappings":";;;AAGA,0CAAuC;AACvC,2DAAuD;AAEvD,mDAA4C;AAE5C,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,iCAAkC,SAAQ,qBAA4C;IAE/F,KAAK,CAAC,iBAAiB;QACnB,MAAM,CAAC,KAAK,CAAC,wCAAwC,IAAA,sBAAQ,EAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,EAAE,CAAC,CAAA;QAC/F,MAAM,OAAO,GAA+B,EAAE,CAAA;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;CACJ;AARD,8EAQC"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import EventEmitter from 'eventemitter3';
|
|
2
|
-
import { PortRange, TlsCertificate } from '../ConnectionManager';
|
|
3
|
-
import { IConnection } from '../IConnection';
|
|
4
|
-
interface WebsocketServerOptions {
|
|
5
|
-
portRange: PortRange;
|
|
6
|
-
enableTls: boolean;
|
|
7
|
-
tlsCertificate?: TlsCertificate;
|
|
8
|
-
maxMessageSize?: number;
|
|
9
|
-
}
|
|
10
|
-
interface Events {
|
|
11
|
-
connected: ((connection: IConnection) => void);
|
|
12
|
-
}
|
|
13
|
-
export declare class WebsocketServer extends EventEmitter<Events> {
|
|
14
|
-
private httpServer?;
|
|
15
|
-
private wsServer?;
|
|
16
|
-
private readonly abortController;
|
|
17
|
-
private readonly options;
|
|
18
|
-
constructor(options: WebsocketServerOptions);
|
|
19
|
-
start(): Promise<number>;
|
|
20
|
-
private startServer;
|
|
21
|
-
updateCertificate(cert: string, key: string): void;
|
|
22
|
-
stop(): Promise<void>;
|
|
23
|
-
private createWsServer;
|
|
24
|
-
}
|
|
25
|
-
export {};
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.WebsocketServer = void 0;
|
|
7
|
-
const http_1 = require("http");
|
|
8
|
-
const https_1 = require("https");
|
|
9
|
-
const eventemitter3_1 = __importDefault(require("eventemitter3"));
|
|
10
|
-
const ws_1 = __importDefault(require("ws"));
|
|
11
|
-
const WebsocketServerConnection_1 = require("./WebsocketServerConnection");
|
|
12
|
-
const utils_1 = require("@streamr/utils");
|
|
13
|
-
const autocertifier_client_1 = require("@streamr/autocertifier-client");
|
|
14
|
-
const errors_1 = require("../../helpers/errors");
|
|
15
|
-
const range_1 = __importDefault(require("lodash/range"));
|
|
16
|
-
const fs_1 = __importDefault(require("fs"));
|
|
17
|
-
const uuid_1 = require("uuid");
|
|
18
|
-
const url_1 = require("url");
|
|
19
|
-
const logger = new utils_1.Logger(module);
|
|
20
|
-
class WebsocketServer extends eventemitter3_1.default {
|
|
21
|
-
httpServer;
|
|
22
|
-
wsServer;
|
|
23
|
-
abortController = new AbortController();
|
|
24
|
-
options;
|
|
25
|
-
constructor(options) {
|
|
26
|
-
super();
|
|
27
|
-
this.options = options;
|
|
28
|
-
}
|
|
29
|
-
async start() {
|
|
30
|
-
const ports = (0, range_1.default)(this.options.portRange.min, this.options.portRange.max + 1);
|
|
31
|
-
for (const port of ports) {
|
|
32
|
-
try {
|
|
33
|
-
await (0, utils_1.asAbortable)(this.startServer(port, this.options.enableTls), this.abortController.signal);
|
|
34
|
-
return port;
|
|
35
|
-
}
|
|
36
|
-
catch (err) {
|
|
37
|
-
if (err.originalError?.code === 'EADDRINUSE') {
|
|
38
|
-
logger.debug(`failed to start WebSocket server on port: ${port} reattempting on next port`);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
throw new errors_1.WebsocketServerStartError(err);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
throw new errors_1.WebsocketServerStartError(`Failed to start WebSocket server on any port in range: ${this.options.portRange.min}-${this.options.portRange.min}`);
|
|
46
|
-
}
|
|
47
|
-
// If tlsCertificate has been given the tls boolean is ignored
|
|
48
|
-
// TODO: could be simplified?
|
|
49
|
-
startServer(port, tls) {
|
|
50
|
-
const requestListener = (request, response) => {
|
|
51
|
-
logger.trace('Received request for ' + request.url);
|
|
52
|
-
response.writeHead(404);
|
|
53
|
-
response.end();
|
|
54
|
-
};
|
|
55
|
-
return new Promise((resolve, reject) => {
|
|
56
|
-
if (this.options.tlsCertificate) {
|
|
57
|
-
this.httpServer = (0, https_1.createServer)({
|
|
58
|
-
key: fs_1.default.readFileSync(this.options.tlsCertificate.privateKeyFileName),
|
|
59
|
-
cert: fs_1.default.readFileSync(this.options.tlsCertificate.certFileName)
|
|
60
|
-
}, requestListener);
|
|
61
|
-
}
|
|
62
|
-
else if (!tls) {
|
|
63
|
-
this.httpServer = (0, http_1.createServer)(requestListener);
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
// TODO use options option or named constant?
|
|
67
|
-
const certificate = (0, autocertifier_client_1.createSelfSignedCertificate)('streamr-self-signed-' + (0, uuid_1.v4)(), 1000);
|
|
68
|
-
this.httpServer = (0, https_1.createServer)({
|
|
69
|
-
key: certificate.serverKey,
|
|
70
|
-
cert: certificate.serverCert
|
|
71
|
-
}, requestListener);
|
|
72
|
-
}
|
|
73
|
-
function originIsAllowed() {
|
|
74
|
-
return true;
|
|
75
|
-
}
|
|
76
|
-
this.wsServer = this.createWsServer();
|
|
77
|
-
this.wsServer.on('connection', (ws, request) => {
|
|
78
|
-
logger.trace(`New connection from ${request.socket.remoteAddress}`);
|
|
79
|
-
if (!originIsAllowed()) {
|
|
80
|
-
// Make sure we only accept requests from an allowed origin
|
|
81
|
-
ws.close();
|
|
82
|
-
logger.trace('IConnection from origin ' + request.headers.origin + ' rejected.');
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
this.emit('connected', new WebsocketServerConnection_1.WebsocketServerConnection(ws, (0, url_1.parse)(request.url), request.socket.remoteAddress));
|
|
86
|
-
});
|
|
87
|
-
this.httpServer.on('upgrade', (request, socket, head) => {
|
|
88
|
-
logger.trace('Received upgrade request for ' + request.url);
|
|
89
|
-
this.wsServer.handleUpgrade(request, socket, head, (ws) => {
|
|
90
|
-
this.wsServer.emit('connection', ws, request);
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
this.httpServer.once('error', (err) => {
|
|
94
|
-
reject(new errors_1.WebsocketServerStartError('Starting Websocket server failed', err));
|
|
95
|
-
});
|
|
96
|
-
this.httpServer.once('listening', () => {
|
|
97
|
-
logger.debug('Websocket server is listening on port ' + port);
|
|
98
|
-
resolve();
|
|
99
|
-
});
|
|
100
|
-
try {
|
|
101
|
-
// Listen only to IPv4 network interfaces, default value listens to IPv6 as well
|
|
102
|
-
this.httpServer.listen(port, '0.0.0.0');
|
|
103
|
-
}
|
|
104
|
-
catch (e) {
|
|
105
|
-
reject(new errors_1.WebsocketServerStartError('Websocket server threw an exception', e));
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
updateCertificate(cert, key) {
|
|
110
|
-
this.httpServer.setSecureContext({
|
|
111
|
-
cert,
|
|
112
|
-
key
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
stop() {
|
|
116
|
-
this.abortController.abort();
|
|
117
|
-
this.removeAllListeners();
|
|
118
|
-
return new Promise((resolve, _reject) => {
|
|
119
|
-
this.wsServer.close();
|
|
120
|
-
for (const ws of this.wsServer.clients) {
|
|
121
|
-
ws.terminate();
|
|
122
|
-
}
|
|
123
|
-
this.httpServer?.once('close', () => {
|
|
124
|
-
// removeAllListeners is maybe not needed?
|
|
125
|
-
this.httpServer?.removeAllListeners();
|
|
126
|
-
resolve();
|
|
127
|
-
});
|
|
128
|
-
this.httpServer?.close();
|
|
129
|
-
// the close method "Stops the server from accepting new connections and closes all
|
|
130
|
-
// connections connected to this server which are not sending a request or waiting for a
|
|
131
|
-
// response." (https://nodejs.org/api/http.html#serverclosecallback)
|
|
132
|
-
// i.e. we need to call closeAllConnections() to close the rest of the connections
|
|
133
|
-
// (in practice this closes the active websocket connections)
|
|
134
|
-
this.httpServer?.closeAllConnections();
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
createWsServer() {
|
|
138
|
-
const maxPayload = this.options.maxMessageSize ?? 1048576;
|
|
139
|
-
return this.wsServer = new ws_1.default.Server({
|
|
140
|
-
noServer: true,
|
|
141
|
-
maxPayload
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
exports.WebsocketServer = WebsocketServer;
|
|
146
|
-
//# sourceMappingURL=WebsocketServer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WebsocketServer.js","sourceRoot":"","sources":["../../../../src/connection/websocket/WebsocketServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import EventEmitter from 'eventemitter3';
|
|
2
|
-
import { IConnection, ConnectionID, ConnectionEvents, ConnectionType } from '../IConnection';
|
|
3
|
-
import WebSocket from 'ws';
|
|
4
|
-
import { Url } from 'url';
|
|
5
|
-
export declare class WebsocketServerConnection extends EventEmitter<ConnectionEvents> implements IConnection {
|
|
6
|
-
readonly connectionId: ConnectionID;
|
|
7
|
-
readonly connectionType = ConnectionType.WEBSOCKET_SERVER;
|
|
8
|
-
readonly resourceURL: Url;
|
|
9
|
-
private readonly remoteIpAddress;
|
|
10
|
-
private socket?;
|
|
11
|
-
private stopped;
|
|
12
|
-
constructor(socket: WebSocket, resourceURL: Url, remoteAddress: string);
|
|
13
|
-
getRemoteIpAddress(): string;
|
|
14
|
-
private onMessage;
|
|
15
|
-
private onClose;
|
|
16
|
-
private onError;
|
|
17
|
-
private stopListening;
|
|
18
|
-
private doDisconnect;
|
|
19
|
-
send(data: Uint8Array): void;
|
|
20
|
-
close(gracefulLeave: boolean): Promise<void>;
|
|
21
|
-
destroy(): void;
|
|
22
|
-
}
|