@streamr/dht 100.0.0-testnet-two.3 → 100.0.0-testnet-three.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/package.json +8 -8
- package/dist/src/connection/Connection.d.ts +1 -0
- package/dist/src/connection/Connection.js +10 -3
- package/dist/src/connection/Connection.js.map +1 -1
- package/dist/src/connection/ConnectionLockHandler.d.ts +3 -3
- package/dist/src/connection/ConnectionLockHandler.js +8 -10
- package/dist/src/connection/ConnectionLockHandler.js.map +1 -1
- package/dist/src/connection/ConnectionLockRpcLocal.js +5 -4
- package/dist/src/connection/ConnectionLockRpcLocal.js.map +1 -1
- package/dist/src/connection/ConnectionLockRpcRemote.js +4 -4
- package/dist/src/connection/ConnectionLockRpcRemote.js.map +1 -1
- package/dist/src/connection/ConnectionManager.d.ts +8 -8
- package/dist/src/connection/ConnectionManager.js +54 -57
- package/dist/src/connection/ConnectionManager.js.map +1 -1
- package/dist/src/connection/ConnectorFacade.d.ts +3 -2
- package/dist/src/connection/ConnectorFacade.js +7 -0
- package/dist/src/connection/ConnectorFacade.js.map +1 -1
- package/dist/src/connection/Handshaker.js +3 -1
- package/dist/src/connection/Handshaker.js.map +1 -1
- package/dist/src/connection/IConnection.d.ts +2 -7
- package/dist/src/connection/IConnection.js +1 -8
- package/dist/src/connection/IConnection.js.map +1 -1
- package/dist/src/connection/ManagedConnection.js +23 -15
- package/dist/src/connection/ManagedConnection.js.map +1 -1
- package/dist/src/connection/ManagedWebrtcConnection.js.map +1 -1
- package/dist/src/connection/connectivityChecker.js.map +1 -1
- package/dist/src/connection/connectivityRequestHandler.js +5 -2
- package/dist/src/connection/connectivityRequestHandler.js.map +1 -1
- package/dist/src/connection/simulator/Simulator.js +32 -20
- package/dist/src/connection/simulator/Simulator.js.map +1 -1
- package/dist/src/connection/simulator/SimulatorConnection.js +13 -10
- package/dist/src/connection/simulator/SimulatorConnection.js.map +1 -1
- package/dist/src/connection/simulator/SimulatorConnector.js +9 -6
- package/dist/src/connection/simulator/SimulatorConnector.js.map +1 -1
- package/dist/src/connection/simulator/pings.js.map +1 -1
- package/dist/src/connection/webrtc/NodeWebrtcConnection.d.ts +1 -1
- package/dist/src/connection/webrtc/NodeWebrtcConnection.js +26 -14
- package/dist/src/connection/webrtc/NodeWebrtcConnection.js.map +1 -1
- package/dist/src/connection/webrtc/WebrtcConnector.d.ts +0 -1
- package/dist/src/connection/webrtc/WebrtcConnector.js +18 -17
- package/dist/src/connection/webrtc/WebrtcConnector.js.map +1 -1
- package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js +10 -9
- package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js.map +1 -1
- package/dist/src/connection/webrtc/iceServerAsString.js.map +1 -1
- package/dist/src/connection/websocket/AutoCertifierClientFacade.js +3 -0
- package/dist/src/connection/websocket/AutoCertifierClientFacade.js.map +1 -1
- package/dist/src/connection/websocket/ClientWebsocket.js +7 -4
- package/dist/src/connection/websocket/ClientWebsocket.js.map +1 -1
- package/dist/src/connection/websocket/ServerWebsocket.d.ts +1 -0
- package/dist/src/connection/websocket/ServerWebsocket.js +22 -3
- package/dist/src/connection/websocket/ServerWebsocket.js.map +1 -1
- package/dist/src/connection/websocket/WebsocketConnector.d.ts +2 -1
- package/dist/src/connection/websocket/WebsocketConnector.js +24 -15
- package/dist/src/connection/websocket/WebsocketConnector.js.map +1 -1
- package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.d.ts +2 -1
- package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js +3 -1
- package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js.map +1 -1
- package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.js +2 -2
- package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.js.map +1 -1
- package/dist/src/connection/websocket/WebsocketServer.js +6 -3
- package/dist/src/connection/websocket/WebsocketServer.js.map +1 -1
- package/dist/src/dht/DhtNode.d.ts +18 -19
- package/dist/src/dht/DhtNode.js +56 -65
- package/dist/src/dht/DhtNode.js.map +1 -1
- package/dist/src/dht/DhtNodeRpcLocal.d.ts +1 -1
- package/dist/src/dht/DhtNodeRpcLocal.js +5 -4
- package/dist/src/dht/DhtNodeRpcLocal.js.map +1 -1
- package/dist/src/dht/DhtNodeRpcRemote.d.ts +2 -1
- package/dist/src/dht/DhtNodeRpcRemote.js +5 -3
- package/dist/src/dht/DhtNodeRpcRemote.js.map +1 -1
- package/dist/src/dht/ExternalApiRpcLocal.d.ts +1 -1
- package/dist/src/dht/ExternalApiRpcLocal.js +4 -3
- package/dist/src/dht/ExternalApiRpcLocal.js.map +1 -1
- package/dist/src/dht/ExternalApiRpcRemote.js.map +1 -1
- package/dist/src/dht/PeerManager.d.ts +5 -5
- package/dist/src/dht/PeerManager.js +31 -24
- package/dist/src/dht/PeerManager.js.map +1 -1
- package/dist/src/dht/contact/Contact.js +3 -2
- package/dist/src/dht/contact/Contact.js.map +1 -1
- package/dist/src/dht/contact/ContactList.js +9 -5
- package/dist/src/dht/contact/ContactList.js.map +1 -1
- package/dist/src/dht/contact/RandomContactList.js +1 -0
- package/dist/src/dht/contact/RandomContactList.js.map +1 -1
- package/dist/src/dht/contact/RpcRemote.d.ts +2 -1
- package/dist/src/dht/contact/RpcRemote.js +4 -0
- package/dist/src/dht/contact/RpcRemote.js.map +1 -1
- package/dist/src/dht/contact/SortedContactList.js +3 -2
- package/dist/src/dht/contact/SortedContactList.js.map +1 -1
- package/dist/src/dht/discovery/DiscoverySession.js +8 -8
- package/dist/src/dht/discovery/DiscoverySession.js.map +1 -1
- package/dist/src/dht/discovery/PeerDiscovery.d.ts +8 -2
- package/dist/src/dht/discovery/PeerDiscovery.js +26 -17
- package/dist/src/dht/discovery/PeerDiscovery.js.map +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationManager.d.ts +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationManager.js +9 -9
- package/dist/src/dht/recursive-operation/RecursiveOperationManager.js.map +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js +3 -2
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js.map +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.js +6 -5
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.js.map +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationSession.d.ts +2 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationSession.js +26 -20
- package/dist/src/dht/recursive-operation/RecursiveOperationSession.js.map +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.d.ts +4 -2
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js +5 -2
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js.map +1 -1
- package/dist/src/dht/routing/DuplicateDetector.d.ts +2 -4
- package/dist/src/dht/routing/DuplicateDetector.js +10 -15
- package/dist/src/dht/routing/DuplicateDetector.js.map +1 -1
- package/dist/src/dht/routing/Router.d.ts +1 -1
- package/dist/src/dht/routing/Router.js +20 -15
- package/dist/src/dht/routing/Router.js.map +1 -1
- package/dist/src/dht/routing/RouterRpcLocal.js +4 -4
- package/dist/src/dht/routing/RouterRpcLocal.js.map +1 -1
- package/dist/src/dht/routing/RouterRpcRemote.js +11 -9
- package/dist/src/dht/routing/RouterRpcRemote.js.map +1 -1
- package/dist/src/dht/routing/RoutingSession.d.ts +2 -0
- package/dist/src/dht/routing/RoutingSession.js +27 -9
- package/dist/src/dht/routing/RoutingSession.js.map +1 -1
- package/dist/src/dht/store/LocalDataStore.js +5 -4
- package/dist/src/dht/store/LocalDataStore.js.map +1 -1
- package/dist/src/dht/store/StoreManager.js +8 -8
- package/dist/src/dht/store/StoreManager.js.map +1 -1
- package/dist/src/dht/store/StoreRpcLocal.js +1 -0
- package/dist/src/dht/store/StoreRpcLocal.js.map +1 -1
- package/dist/src/dht/store/StoreRpcRemote.js +3 -3
- package/dist/src/dht/store/StoreRpcRemote.js.map +1 -1
- package/dist/src/exports.d.ts +1 -4
- package/dist/src/exports.js +4 -7
- package/dist/src/exports.js.map +1 -1
- package/dist/src/helpers/AddressTools.js.map +1 -1
- package/dist/src/helpers/Connectivity.js.map +1 -1
- package/dist/src/helpers/MapWithTtl.js +2 -1
- package/dist/src/helpers/MapWithTtl.js.map +1 -1
- package/dist/src/helpers/createPeerDescriptor.d.ts +3 -0
- package/dist/src/helpers/createPeerDescriptor.js +56 -0
- package/dist/src/helpers/createPeerDescriptor.js.map +1 -0
- package/dist/src/helpers/createPeerDescriptorSignaturePayload.d.ts +2 -0
- package/dist/src/helpers/createPeerDescriptorSignaturePayload.js +30 -0
- package/dist/src/helpers/createPeerDescriptorSignaturePayload.js.map +1 -0
- package/dist/src/helpers/debugHelpers.js.map +1 -1
- package/dist/src/helpers/errors.js +2 -0
- package/dist/src/helpers/errors.js.map +1 -1
- package/dist/src/helpers/offering.d.ts +4 -0
- package/dist/src/helpers/offering.js +18 -0
- package/dist/src/helpers/offering.js.map +1 -0
- package/dist/src/helpers/protoToString.js.map +1 -1
- package/dist/src/identifiers.d.ts +3 -0
- package/dist/src/identifiers.js +9 -1
- package/dist/src/identifiers.js.map +1 -1
- package/dist/src/proto/google/protobuf/any.d.ts +8 -5
- package/dist/src/proto/google/protobuf/any.js +8 -8
- package/dist/src/proto/google/protobuf/any.js.map +1 -1
- package/dist/src/proto/google/protobuf/empty.d.ts +0 -1
- package/dist/src/proto/google/protobuf/empty.js +2 -4
- package/dist/src/proto/google/protobuf/empty.js.map +1 -1
- package/dist/src/proto/google/protobuf/timestamp.d.ts +10 -1
- package/dist/src/proto/google/protobuf/timestamp.js +10 -10
- package/dist/src/proto/google/protobuf/timestamp.js.map +1 -1
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +4 -5
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +38 -29
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
- package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +22 -12
- package/dist/src/proto/packages/dht/protos/DhtRpc.js +11 -16
- package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
- package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +2 -3
- package/dist/src/proto/packages/proto-rpc/protos/ProtoRpc.js +1 -1
- package/dist/src/rpc-protocol/DhtCallContext.d.ts +0 -1
- package/dist/src/rpc-protocol/DhtCallContext.js +8 -0
- package/dist/src/rpc-protocol/DhtCallContext.js.map +1 -1
- package/dist/src/transport/ITransport.d.ts +1 -1
- package/dist/src/transport/ListeningRpcCommunicator.js +2 -0
- package/dist/src/transport/ListeningRpcCommunicator.js.map +1 -1
- package/dist/src/transport/RoutingRpcCommunicator.d.ts +2 -1
- package/dist/src/transport/RoutingRpcCommunicator.js +2 -0
- package/dist/src/transport/RoutingRpcCommunicator.js.map +1 -1
- package/package.json +8 -8
- package/protos/DhtRpc.proto +7 -4
- package/src/connection/Connection.ts +6 -1
- package/src/connection/ConnectionLockHandler.ts +3 -3
- package/src/connection/ConnectionLockRpcLocal.ts +1 -5
- package/src/connection/ConnectionLockRpcRemote.ts +1 -1
- package/src/connection/ConnectionManager.ts +24 -40
- package/src/connection/ConnectorFacade.ts +3 -2
- package/src/connection/IConnection.ts +2 -8
- package/src/connection/ManagedConnection.ts +3 -3
- package/src/connection/connectivityRequestHandler.ts +7 -3
- package/src/connection/simulator/Simulator.ts +1 -2
- package/src/connection/simulator/SimulatorConnection.ts +1 -1
- package/src/connection/simulator/SimulatorConnector.ts +1 -2
- package/src/connection/webrtc/BrowserWebrtcConnection.ts +4 -3
- package/src/connection/webrtc/NodeWebrtcConnection.ts +5 -4
- package/src/connection/webrtc/WebrtcConnector.ts +9 -17
- package/src/connection/webrtc/WebrtcConnectorRpcLocal.ts +7 -7
- package/src/connection/websocket/ClientWebsocket.ts +3 -2
- package/src/connection/websocket/ServerWebsocket.ts +17 -1
- package/src/connection/websocket/WebsocketConnector.ts +10 -9
- package/src/connection/websocket/WebsocketConnectorRpcLocal.ts +4 -2
- package/src/connection/websocket/WebsocketConnectorRpcRemote.ts +1 -1
- package/src/connection/websocket/WebsocketServer.ts +2 -2
- package/src/dht/DhtNode.ts +63 -86
- package/src/dht/DhtNodeRpcLocal.ts +5 -5
- package/src/dht/DhtNodeRpcRemote.ts +3 -3
- package/src/dht/ExternalApiRpcLocal.ts +3 -4
- package/src/dht/PeerManager.ts +14 -20
- package/src/dht/contact/Contact.ts +1 -2
- package/src/dht/contact/RpcRemote.ts +2 -1
- package/src/dht/discovery/DiscoverySession.ts +2 -3
- package/src/dht/discovery/PeerDiscovery.ts +16 -9
- package/src/dht/recursive-operation/RecursiveOperationManager.ts +12 -6
- package/src/dht/recursive-operation/RecursiveOperationRpcLocal.ts +1 -1
- package/src/dht/recursive-operation/RecursiveOperationRpcRemote.ts +3 -2
- package/src/dht/recursive-operation/RecursiveOperationSession.ts +19 -9
- package/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.ts +13 -3
- package/src/dht/routing/DuplicateDetector.ts +9 -21
- package/src/dht/routing/Router.ts +12 -11
- package/src/dht/routing/RouterRpcLocal.ts +1 -2
- package/src/dht/routing/RouterRpcRemote.ts +5 -5
- package/src/dht/routing/RoutingSession.ts +22 -2
- package/src/dht/store/StoreManager.ts +1 -2
- package/src/dht/store/StoreRpcRemote.ts +1 -1
- package/src/exports.ts +9 -4
- package/src/helpers/createPeerDescriptor.ts +56 -0
- package/src/helpers/createPeerDescriptorSignaturePayload.ts +28 -0
- package/src/helpers/offering.ts +15 -0
- package/src/identifiers.ts +10 -1
- package/src/proto/google/protobuf/any.ts +12 -9
- package/src/proto/google/protobuf/empty.ts +2 -5
- package/src/proto/google/protobuf/timestamp.ts +14 -5
- package/src/proto/packages/dht/protos/DhtRpc.client.ts +6 -7
- package/src/proto/packages/dht/protos/DhtRpc.server.ts +3 -4
- package/src/proto/packages/dht/protos/DhtRpc.ts +32 -20
- package/src/proto/packages/proto-rpc/protos/ProtoRpc.ts +1 -1
- package/src/rpc-protocol/DhtCallContext.ts +0 -1
- package/src/transport/ITransport.ts +1 -1
- package/src/transport/RoutingRpcCommunicator.ts +1 -1
- package/test/benchmark/Find.test.ts +6 -8
- package/test/benchmark/KademliaCorrectness.test.ts +2 -3
- package/test/benchmark/SortedContactListBenchmark.test.ts +16 -16
- package/test/benchmark/WebsocketServerMemoryLeak.test.ts +1 -1
- package/test/benchmark/kademlia-simulation/KademliaSimulation.ts +8 -8
- package/test/benchmark/kademlia-simulation/SimulationNode.ts +8 -8
- package/test/end-to-end/Layer0-Layer1.test.ts +1 -1
- package/test/end-to-end/Layer0.test.ts +4 -4
- package/test/end-to-end/Layer0MixedConnectionTypes.test.ts +12 -12
- package/test/end-to-end/Layer0Webrtc-Layer1.test.ts +18 -18
- package/test/end-to-end/Layer0Webrtc.test.ts +13 -10
- package/test/end-to-end/Layer1-Scale-WebSocket.test.ts +2 -2
- package/test/end-to-end/Layer1-Scale-Webrtc.test.ts +2 -2
- package/test/end-to-end/RecoveryFromFailedAutoCertification.test.ts +1 -1
- package/test/end-to-end/WebsocketConnectionRequest.test.ts +3 -3
- package/test/end-to-end/memory-leak.test.ts +2 -2
- package/test/integration/ConnectionLocking.test.ts +60 -47
- package/test/integration/ConnectionManager.test.ts +8 -7
- package/test/integration/DhtJoinPeerDiscovery.test.ts +2 -2
- package/test/integration/DhtNodeExternalAPI.test.ts +1 -2
- package/test/integration/DhtNodeRpcRemote.test.ts +4 -3
- package/test/integration/DhtRpc.test.ts +4 -3
- package/test/integration/Find.test.ts +4 -6
- package/test/integration/Layer1-scale.test.ts +7 -7
- package/test/integration/Mock-Layer1-Layer0.test.ts +21 -24
- package/test/integration/MultipleEntryPointJoining.test.ts +7 -7
- package/test/integration/ReplicateData.test.ts +52 -161
- package/test/integration/RouteMessage.test.ts +24 -47
- package/test/integration/RouterRpcRemote.test.ts +7 -4
- package/test/integration/ScaleDownDht.test.ts +2 -3
- package/test/integration/SimultaneousConnections.test.ts +9 -8
- package/test/integration/Store.test.ts +1 -2
- package/test/integration/StoreAndDelete.test.ts +5 -0
- package/test/integration/StoreOnDhtWithThreeNodes.test.ts +59 -0
- package/test/integration/StoreOnDhtWithTwoNodes.test.ts +1 -1
- package/test/integration/StoreRpcRemote.test.ts +4 -4
- package/test/integration/WebrtcConnectionManagement.test.ts +6 -5
- package/test/integration/WebrtcConnectorRpc.test.ts +3 -2
- package/test/integration/WebsocketConnectionManagement.test.ts +27 -15
- package/test/integration/WebsocketConnectorRpc.test.ts +3 -2
- package/test/integration/{RpcErrors.test.ts → rpc-connections-over-webrpc.test.ts} +6 -3
- package/test/unit/DuplicateDetector.test.ts +2 -2
- package/test/unit/LocalDataStore.test.ts +1 -4
- package/test/unit/RandomContactList.test.ts +2 -4
- package/test/unit/RecursiveOperationManager.test.ts +5 -6
- package/test/unit/RecursiveOperationSession.test.ts +5 -4
- package/test/unit/Router.test.ts +25 -8
- package/test/unit/RoutingSession.test.ts +3 -3
- package/test/unit/SortedContactList.test.ts +2 -4
- package/test/unit/connectivityRequestHandler.test.ts +5 -3
- package/test/unit/createPeerDescriptor.test.ts +63 -0
- package/test/utils/FakeTransport.ts +7 -4
- package/test/utils/mock/Transport.ts +1 -1
- package/test/utils/utils.ts +6 -6
- package/dist/src/helpers/PeerID.d.ts +0 -27
- package/dist/src/helpers/PeerID.js +0 -87
- package/dist/src/helpers/PeerID.js.map +0 -1
- package/dist/src/helpers/UUID.d.ts +0 -8
- package/dist/src/helpers/UUID.js +0 -36
- package/dist/src/helpers/UUID.js.map +0 -1
- package/dist/src/helpers/peerIdFromPeerDescriptor.d.ts +0 -7
- package/dist/src/helpers/peerIdFromPeerDescriptor.js +0 -23
- package/dist/src/helpers/peerIdFromPeerDescriptor.js.map +0 -1
- package/src/helpers/PeerID.ts +0 -97
- package/src/helpers/UUID.ts +0 -35
- package/src/helpers/peerIdFromPeerDescriptor.ts +0 -20
- package/test/unit/PeerID.test.ts +0 -22
- package/test/unit/UUID.test.ts +0 -55
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RouterRpcLocal = exports.createRouteMessageAck = void 0;
|
|
4
4
|
const utils_1 = require("@streamr/utils");
|
|
5
|
-
const peerIdFromPeerDescriptor_1 = require("../../helpers/peerIdFromPeerDescriptor");
|
|
6
5
|
const DhtRpc_1 = require("../../proto/packages/dht/protos/DhtRpc");
|
|
7
6
|
const RoutingSession_1 = require("./RoutingSession");
|
|
8
7
|
const identifiers_1 = require("../../identifiers");
|
|
@@ -16,12 +15,13 @@ const createRouteMessageAck = (routedMessage, error) => {
|
|
|
16
15
|
};
|
|
17
16
|
exports.createRouteMessageAck = createRouteMessageAck;
|
|
18
17
|
class RouterRpcLocal {
|
|
18
|
+
config;
|
|
19
19
|
constructor(config) {
|
|
20
20
|
this.config = config;
|
|
21
21
|
}
|
|
22
22
|
async routeMessage(routedMessage) {
|
|
23
23
|
if (this.config.duplicateRequestDetector.isMostLikelyDuplicate(routedMessage.requestId)) {
|
|
24
|
-
logger.trace(`Routing message ${routedMessage.requestId} from ${(0,
|
|
24
|
+
logger.trace(`Routing message ${routedMessage.requestId} from ${(0, identifiers_1.getNodeIdFromPeerDescriptor)(routedMessage.sourcePeer)} `
|
|
25
25
|
+ `to ${(0, identifiers_1.getDhtAddressFromRaw)(routedMessage.target)} is likely a duplicate`);
|
|
26
26
|
return (0, exports.createRouteMessageAck)(routedMessage, DhtRpc_1.RouteMessageError.DUPLICATE);
|
|
27
27
|
}
|
|
@@ -40,7 +40,7 @@ class RouterRpcLocal {
|
|
|
40
40
|
}
|
|
41
41
|
async forwardMessage(forwardMessage) {
|
|
42
42
|
if (this.config.duplicateRequestDetector.isMostLikelyDuplicate(forwardMessage.requestId)) {
|
|
43
|
-
logger.trace(`Forwarding message ${forwardMessage.requestId} from ${(0,
|
|
43
|
+
logger.trace(`Forwarding message ${forwardMessage.requestId} from ${(0, identifiers_1.getNodeIdFromPeerDescriptor)(forwardMessage.sourcePeer)} `
|
|
44
44
|
+ `to ${(0, identifiers_1.getDhtAddressFromRaw)(forwardMessage.target)} is likely a duplicate`);
|
|
45
45
|
return (0, exports.createRouteMessageAck)(forwardMessage, DhtRpc_1.RouteMessageError.DUPLICATE);
|
|
46
46
|
}
|
|
@@ -57,7 +57,7 @@ class RouterRpcLocal {
|
|
|
57
57
|
forwardToDestination(routedMessage) {
|
|
58
58
|
logger.trace(`Forwarding found message targeted to self ${routedMessage.requestId}`);
|
|
59
59
|
const forwardedMessage = routedMessage.message;
|
|
60
|
-
if ((0,
|
|
60
|
+
if ((0, identifiers_1.areEqualPeerDescriptors)(this.config.localPeerDescriptor, forwardedMessage.targetDescriptor)) {
|
|
61
61
|
this.config.connectionManager?.handleMessage(forwardedMessage);
|
|
62
62
|
return (0, exports.createRouteMessageAck)(routedMessage);
|
|
63
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouterRpcLocal.js","sourceRoot":"","sources":["../../../../src/dht/routing/RouterRpcLocal.ts"],"names":[],"mappings":";;;AAAA,0CAAyD;AAEzD,
|
|
1
|
+
{"version":3,"file":"RouterRpcLocal.js","sourceRoot":"","sources":["../../../../src/dht/routing/RouterRpcLocal.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.RouterRpcRemote = void 0;
|
|
4
4
|
const utils_1 = require("@streamr/utils");
|
|
5
5
|
const uuid_1 = require("uuid");
|
|
6
|
-
const peerIdFromPeerDescriptor_1 = require("../../helpers/peerIdFromPeerDescriptor");
|
|
7
6
|
const DhtRpc_1 = require("../../proto/packages/dht/protos/DhtRpc");
|
|
8
7
|
const RpcRemote_1 = require("../contact/RpcRemote");
|
|
9
8
|
const getPreviousPeer_1 = require("./getPreviousPeer");
|
|
9
|
+
const identifiers_1 = require("../../identifiers");
|
|
10
10
|
const logger = new utils_1.Logger(module);
|
|
11
11
|
class RouterRpcRemote extends RpcRemote_1.RpcRemote {
|
|
12
12
|
async routeMessage(params) {
|
|
@@ -16,7 +16,8 @@ class RouterRpcRemote extends RpcRemote_1.RpcRemote {
|
|
|
16
16
|
message: params.message,
|
|
17
17
|
requestId: params.requestId ?? (0, uuid_1.v4)(),
|
|
18
18
|
reachableThrough: params.reachableThrough ?? [],
|
|
19
|
-
routingPath: params.routingPath
|
|
19
|
+
routingPath: params.routingPath,
|
|
20
|
+
parallelRootNodeIds: params.parallelRootNodeIds
|
|
20
21
|
};
|
|
21
22
|
const options = this.formDhtRpcOptions({
|
|
22
23
|
connect: false
|
|
@@ -35,9 +36,9 @@ class RouterRpcRemote extends RpcRemote_1.RpcRemote {
|
|
|
35
36
|
catch (err) {
|
|
36
37
|
const previousPeer = (0, getPreviousPeer_1.getPreviousPeer)(params);
|
|
37
38
|
const fromNode = previousPeer
|
|
38
|
-
? (0,
|
|
39
|
-
: (0,
|
|
40
|
-
const toNode = (0,
|
|
39
|
+
? (0, identifiers_1.getNodeIdFromPeerDescriptor)(previousPeer)
|
|
40
|
+
: (0, identifiers_1.getNodeIdFromPeerDescriptor)(params.sourcePeer);
|
|
41
|
+
const toNode = (0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getPeerDescriptor());
|
|
41
42
|
logger.trace(`Failed to send routeMessage from ${fromNode} to ${toNode} with: ${err}`);
|
|
42
43
|
return false;
|
|
43
44
|
}
|
|
@@ -50,7 +51,8 @@ class RouterRpcRemote extends RpcRemote_1.RpcRemote {
|
|
|
50
51
|
message: params.message,
|
|
51
52
|
requestId: params.requestId ?? (0, uuid_1.v4)(),
|
|
52
53
|
reachableThrough: params.reachableThrough ?? [],
|
|
53
|
-
routingPath: params.routingPath
|
|
54
|
+
routingPath: params.routingPath,
|
|
55
|
+
parallelRootNodeIds: params.parallelRootNodeIds
|
|
54
56
|
};
|
|
55
57
|
const options = this.formDhtRpcOptions({
|
|
56
58
|
connect: false
|
|
@@ -64,9 +66,9 @@ class RouterRpcRemote extends RpcRemote_1.RpcRemote {
|
|
|
64
66
|
catch (err) {
|
|
65
67
|
const previousPeer = (0, getPreviousPeer_1.getPreviousPeer)(params);
|
|
66
68
|
const fromNode = previousPeer
|
|
67
|
-
? (0,
|
|
68
|
-
: (0,
|
|
69
|
-
const toNode = (0,
|
|
69
|
+
? (0, identifiers_1.getNodeIdFromPeerDescriptor)(previousPeer)
|
|
70
|
+
: (0, identifiers_1.getNodeIdFromPeerDescriptor)(params.sourcePeer);
|
|
71
|
+
const toNode = (0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getPeerDescriptor());
|
|
70
72
|
logger.trace(`Failed to send forwardMessage from ${fromNode} to ${toNode} with: ${err}`);
|
|
71
73
|
return false;
|
|
72
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouterRpcRemote.js","sourceRoot":"","sources":["../../../../src/dht/routing/RouterRpcRemote.ts"],"names":[],"mappings":";;;AAAA,0CAAyD;AACzD,+BAAyB;AACzB,
|
|
1
|
+
{"version":3,"file":"RouterRpcRemote.js","sourceRoot":"","sources":["../../../../src/dht/routing/RouterRpcRemote.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,8 @@ export declare class RoutingSession extends EventEmitter<RoutingSessionEvents> {
|
|
|
48
48
|
private sendRouteMessageRequest;
|
|
49
49
|
updateAndGetRoutablePeers(): RemoteContact[];
|
|
50
50
|
sendMoreRequests(uncontacted: RemoteContact[]): void;
|
|
51
|
+
private addParallelRootIfSource;
|
|
52
|
+
private deleteParallelRootIfSource;
|
|
51
53
|
stop(): void;
|
|
52
54
|
}
|
|
53
55
|
export {};
|
|
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.RoutingSession = exports.RoutingMode = void 0;
|
|
7
7
|
const SortedContactList_1 = require("../contact/SortedContactList");
|
|
8
|
-
const peerIdFromPeerDescriptor_1 = require("../../helpers/peerIdFromPeerDescriptor");
|
|
9
8
|
const utils_1 = require("@streamr/utils");
|
|
10
9
|
const eventemitter3_1 = __importDefault(require("eventemitter3"));
|
|
11
10
|
const uuid_1 = require("uuid");
|
|
@@ -16,9 +15,12 @@ const RecursiveOperationRpcRemote_1 = require("../recursive-operation/RecursiveO
|
|
|
16
15
|
const RpcRemote_1 = require("../contact/RpcRemote");
|
|
17
16
|
const getPreviousPeer_1 = require("./getPreviousPeer");
|
|
18
17
|
const identifiers_1 = require("../../identifiers");
|
|
18
|
+
const lodash_1 = require("lodash");
|
|
19
19
|
const logger = new utils_1.Logger(module);
|
|
20
20
|
const MAX_FAILED_HOPS = 2;
|
|
21
21
|
class RemoteContact extends Contact_1.Contact {
|
|
22
|
+
routerRpcRemote;
|
|
23
|
+
recursiveOperationRpcRemote;
|
|
22
24
|
constructor(peer, localPeerDescriptor, rpcCommunicator) {
|
|
23
25
|
super(peer.getPeerDescriptor());
|
|
24
26
|
this.routerRpcRemote = new RouterRpcRemote_1.RouterRpcRemote(localPeerDescriptor, peer.getPeerDescriptor(), rpcCommunicator, DhtRpc_client_1.RouterRpcClient, RpcRemote_1.EXISTING_CONNECTION_TIMEOUT);
|
|
@@ -38,19 +40,21 @@ var RoutingMode;
|
|
|
38
40
|
RoutingMode[RoutingMode["RECURSIVE"] = 2] = "RECURSIVE";
|
|
39
41
|
})(RoutingMode || (exports.RoutingMode = RoutingMode = {}));
|
|
40
42
|
class RoutingSession extends eventemitter3_1.default {
|
|
43
|
+
sessionId = (0, uuid_1.v4)();
|
|
44
|
+
ongoingRequests = new Set();
|
|
45
|
+
contactList;
|
|
46
|
+
failedHopCounter = 0;
|
|
47
|
+
successfulHopCounter = 0;
|
|
48
|
+
stopped = false;
|
|
49
|
+
config;
|
|
41
50
|
constructor(config) {
|
|
42
51
|
super();
|
|
43
|
-
this.sessionId = (0, uuid_1.v4)();
|
|
44
|
-
this.ongoingRequests = new Set();
|
|
45
|
-
this.failedHopCounter = 0;
|
|
46
|
-
this.successfulHopCounter = 0;
|
|
47
|
-
this.stopped = false;
|
|
48
52
|
this.config = config;
|
|
49
53
|
const previousPeer = (0, getPreviousPeer_1.getPreviousPeer)(config.routedMessage);
|
|
50
|
-
const previousId = previousPeer ? (0,
|
|
54
|
+
const previousId = previousPeer ? (0, identifiers_1.getNodeIdFromPeerDescriptor)(previousPeer) : undefined;
|
|
51
55
|
this.contactList = new SortedContactList_1.SortedContactList({
|
|
52
56
|
referenceId: (0, identifiers_1.getDhtAddressFromRaw)(config.routedMessage.target),
|
|
53
|
-
maxSize: 10000,
|
|
57
|
+
maxSize: 10000, // TODO use config option or named constant?
|
|
54
58
|
allowToContainReferenceId: true,
|
|
55
59
|
nodeIdDistanceLimit: previousId,
|
|
56
60
|
excludedNodeIds: config.excludedNodeIds,
|
|
@@ -65,6 +69,7 @@ class RoutingSession extends eventemitter3_1.default {
|
|
|
65
69
|
if (this.ongoingRequests.has(nodeId)) {
|
|
66
70
|
this.ongoingRequests.delete(nodeId);
|
|
67
71
|
}
|
|
72
|
+
this.deleteParallelRootIfSource(nodeId);
|
|
68
73
|
const contacts = this.updateAndGetRoutablePeers();
|
|
69
74
|
if (contacts.length === 0 && this.ongoingRequests.size === 0) {
|
|
70
75
|
logger.trace('routing failed, emitting routingFailed sessionId: ' + this.sessionId);
|
|
@@ -150,9 +155,10 @@ class RoutingSession extends eventemitter3_1.default {
|
|
|
150
155
|
while ((this.ongoingRequests.size < this.config.parallelism) && (uncontacted.length > 0) && !this.stopped) {
|
|
151
156
|
const nextPeer = uncontacted.shift();
|
|
152
157
|
// eslint-disable-next-line max-len
|
|
153
|
-
logger.trace(`Sending routeMessage request to contact: ${(0,
|
|
158
|
+
logger.trace(`Sending routeMessage request to contact: ${(0, identifiers_1.getNodeIdFromPeerDescriptor)(nextPeer.getPeerDescriptor())} (sessionId=${this.sessionId})`);
|
|
154
159
|
this.contactList.setContacted(nextPeer.getNodeId());
|
|
155
160
|
this.ongoingRequests.add(nextPeer.getNodeId());
|
|
161
|
+
this.addParallelRootIfSource(nextPeer.getNodeId());
|
|
156
162
|
setImmediate(async () => {
|
|
157
163
|
try {
|
|
158
164
|
const succeeded = await this.sendRouteMessageRequest(nextPeer);
|
|
@@ -172,6 +178,18 @@ class RoutingSession extends eventemitter3_1.default {
|
|
|
172
178
|
});
|
|
173
179
|
}
|
|
174
180
|
}
|
|
181
|
+
addParallelRootIfSource(nodeId) {
|
|
182
|
+
if (this.config.mode === RoutingMode.RECURSIVE
|
|
183
|
+
&& (0, identifiers_1.areEqualPeerDescriptors)(this.config.localPeerDescriptor, this.config.routedMessage.sourcePeer)) {
|
|
184
|
+
this.config.routedMessage.parallelRootNodeIds.push(nodeId);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
deleteParallelRootIfSource(nodeId) {
|
|
188
|
+
if (this.config.mode === RoutingMode.RECURSIVE
|
|
189
|
+
&& (0, identifiers_1.areEqualPeerDescriptors)(this.config.localPeerDescriptor, this.config.routedMessage.sourcePeer)) {
|
|
190
|
+
(0, lodash_1.pull)(this.config.routedMessage.parallelRootNodeIds, nodeId);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
175
193
|
stop() {
|
|
176
194
|
this.stopped = true;
|
|
177
195
|
this.contactList.stop();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoutingSession.js","sourceRoot":"","sources":["../../../../src/dht/routing/RoutingSession.ts"],"names":[],"mappings":";;;;;;AACA,oEAAgE;AAChE,
|
|
1
|
+
{"version":3,"file":"RoutingSession.js","sourceRoot":"","sources":["../../../../src/dht/routing/RoutingSession.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,14 @@ exports.LocalDataStore = void 0;
|
|
|
4
4
|
const MapWithTtl_1 = require("../../helpers/MapWithTtl");
|
|
5
5
|
const identifiers_1 = require("../../identifiers");
|
|
6
6
|
class LocalDataStore {
|
|
7
|
+
maxTtl;
|
|
7
8
|
constructor(maxTtl) {
|
|
8
|
-
// A map into which each node can store one value per data key
|
|
9
|
-
// The first key is the key of the data, the second key is the
|
|
10
|
-
// DhtAddress of the creator of the data
|
|
11
|
-
this.store = new Map();
|
|
12
9
|
this.maxTtl = maxTtl;
|
|
13
10
|
}
|
|
11
|
+
// A map into which each node can store one value per data key
|
|
12
|
+
// The first key is the key of the data, the second key is the
|
|
13
|
+
// DhtAddress of the creator of the data
|
|
14
|
+
store = new Map();
|
|
14
15
|
storeEntry(dataEntry) {
|
|
15
16
|
const key = (0, identifiers_1.getDhtAddressFromRaw)(dataEntry.key);
|
|
16
17
|
const creatorNodeId = (0, identifiers_1.getDhtAddressFromRaw)(dataEntry.creator);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalDataStore.js","sourceRoot":"","sources":["../../../../src/dht/store/LocalDataStore.ts"],"names":[],"mappings":";;;AACA,yDAAqD;AACrD,mDAAoE;AAEpE,MAAa,cAAc;
|
|
1
|
+
{"version":3,"file":"LocalDataStore.js","sourceRoot":"","sources":["../../../../src/dht/store/LocalDataStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.StoreManager = void 0;
|
|
4
4
|
const DhtRpc_1 = require("../../proto/packages/dht/protos/DhtRpc");
|
|
5
|
-
const peerIdFromPeerDescriptor_1 = require("../../helpers/peerIdFromPeerDescriptor");
|
|
6
5
|
const utils_1 = require("@streamr/utils");
|
|
7
6
|
const timestamp_1 = require("../../proto/google/protobuf/timestamp");
|
|
8
7
|
const SortedContactList_1 = require("../contact/SortedContactList");
|
|
@@ -13,6 +12,7 @@ const StoreRpcLocal_1 = require("./StoreRpcLocal");
|
|
|
13
12
|
const PeerManager_1 = require("../PeerManager");
|
|
14
13
|
const logger = new utils_1.Logger(module);
|
|
15
14
|
class StoreManager {
|
|
15
|
+
config;
|
|
16
16
|
constructor(config) {
|
|
17
17
|
this.config = config;
|
|
18
18
|
this.registerLocalRpcMethods();
|
|
@@ -32,23 +32,23 @@ class StoreManager {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
replicateAndUpdateStaleState(dataEntry, newNode) {
|
|
35
|
-
const newNodeId = (0,
|
|
35
|
+
const newNodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(newNode);
|
|
36
36
|
const key = (0, identifiers_1.getDhtAddressFromRaw)(dataEntry.key);
|
|
37
37
|
// TODO use config option or named constant?
|
|
38
38
|
const closestToData = this.config.getClosestNeighborsTo(key, 10);
|
|
39
39
|
const sortedList = new SortedContactList_1.SortedContactList({
|
|
40
40
|
referenceId: key,
|
|
41
|
-
maxSize: 20,
|
|
41
|
+
maxSize: 20, // TODO use config option or named constant?
|
|
42
42
|
allowToContainReferenceId: true,
|
|
43
43
|
emitEvents: false
|
|
44
44
|
});
|
|
45
45
|
sortedList.addContact(new Contact_1.Contact(this.config.localPeerDescriptor));
|
|
46
46
|
closestToData.forEach((neighbor) => {
|
|
47
|
-
if (newNodeId !== (0,
|
|
47
|
+
if (newNodeId !== (0, identifiers_1.getNodeIdFromPeerDescriptor)(neighbor)) {
|
|
48
48
|
sortedList.addContact(new Contact_1.Contact(neighbor));
|
|
49
49
|
}
|
|
50
50
|
});
|
|
51
|
-
const selfIsPrimaryStorer = (sortedList.getClosestContactId() === (0,
|
|
51
|
+
const selfIsPrimaryStorer = (sortedList.getClosestContactId() === (0, identifiers_1.getNodeIdFromPeerDescriptor)(this.config.localPeerDescriptor));
|
|
52
52
|
if (selfIsPrimaryStorer) {
|
|
53
53
|
sortedList.addContact(new Contact_1.Contact(newNode));
|
|
54
54
|
const sorted = sortedList.getContactIds();
|
|
@@ -85,7 +85,7 @@ class StoreManager {
|
|
|
85
85
|
for (let i = 0; i < closestNodes.length && successfulNodes.length < this.config.redundancyFactor; i++) {
|
|
86
86
|
const keyRaw = (0, identifiers_1.getRawFromDhtAddress)(key);
|
|
87
87
|
const creatorRaw = (0, identifiers_1.getRawFromDhtAddress)(creator);
|
|
88
|
-
if ((0,
|
|
88
|
+
if ((0, identifiers_1.areEqualPeerDescriptors)(this.config.localPeerDescriptor, closestNodes[i])) {
|
|
89
89
|
this.config.localDataStore.storeEntry({
|
|
90
90
|
key: keyRaw,
|
|
91
91
|
data,
|
|
@@ -145,8 +145,8 @@ class StoreManager {
|
|
|
145
145
|
}
|
|
146
146
|
replicateDataToNeighbors(incomingPeer, dataEntry) {
|
|
147
147
|
// sort own contact list according to data id
|
|
148
|
-
const localNodeId = (0,
|
|
149
|
-
const incomingNodeId = (0,
|
|
148
|
+
const localNodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(this.config.localPeerDescriptor);
|
|
149
|
+
const incomingNodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(incomingPeer);
|
|
150
150
|
const key = (0, identifiers_1.getDhtAddressFromRaw)(dataEntry.key);
|
|
151
151
|
// TODO use config option or named constant?
|
|
152
152
|
const closestToData = this.config.getClosestNeighborsTo(key, 10);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreManager.js","sourceRoot":"","sources":["../../../../src/dht/store/StoreManager.ts"],"names":[],"mappings":";;;AAAA,mEAG+C;AAK/C,
|
|
1
|
+
{"version":3,"file":"StoreManager.js","sourceRoot":"","sources":["../../../../src/dht/store/StoreManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreRpcLocal.js","sourceRoot":"","sources":["../../../../src/dht/store/StoreRpcLocal.ts"],"names":[],"mappings":";;;AACA,0CAAuC;AAEvC,qEAAiE;AAUjE,mDAAoE;AAQpE,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,aAAa;
|
|
1
|
+
{"version":3,"file":"StoreRpcLocal.js","sourceRoot":"","sources":["../../../../src/dht/store/StoreRpcLocal.ts"],"names":[],"mappings":";;;AACA,0CAAuC;AAEvC,qEAAiE;AAUjE,mDAAoE;AAQpE,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,aAAa;IAEL,MAAM,CAAqB;IAE5C,YAAY,MAA2B;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAyB;QACrC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QAC3B,MAAM,GAAG,GAAG,IAAA,kCAAoB,EAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC7C,MAAM,uBAAuB,GAAG,IAAI,CAAC,MAAM,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAA;QAC7E,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC;YAClC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,qBAAS,CAAC,GAAG,EAAE;YACzB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,CAAC,uBAAuB;YAC/B,OAAO,EAAE,KAAK;SACjB,CAAC,CAAA;QACF,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAA;QACxD,CAAC;QACD,OAAO,EAAE,CAAA;IACb,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,OAA6B,EAAE,OAA0B;QAChF,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAM,CAAA;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAClE,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAE,OAA0B,CAAC,wBAAyB,EAAE,OAAO,CAAC,KAAM,CAAC,CAAA;QAC/G,CAAC;QACD,MAAM,GAAG,GAAG,IAAA,kCAAoB,EAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAC/C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,4BAA4B,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAA;QACxD,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAA;QAClD,OAAO,EAAE,CAAA;IACb,CAAC;CACJ;AA1CD,sCA0CC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.StoreRpcRemote = void 0;
|
|
4
|
-
const
|
|
4
|
+
const identifiers_1 = require("../../identifiers");
|
|
5
5
|
const RpcRemote_1 = require("../contact/RpcRemote");
|
|
6
6
|
class StoreRpcRemote extends RpcRemote_1.RpcRemote {
|
|
7
7
|
async storeData(request) {
|
|
@@ -10,8 +10,8 @@ class StoreRpcRemote extends RpcRemote_1.RpcRemote {
|
|
|
10
10
|
await this.getClient().storeData(request, options);
|
|
11
11
|
}
|
|
12
12
|
catch (err) {
|
|
13
|
-
const to = (0,
|
|
14
|
-
const from = (0,
|
|
13
|
+
const to = (0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getPeerDescriptor());
|
|
14
|
+
const from = (0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor());
|
|
15
15
|
throw new Error(`Could not store data to ${to} from ${from} ${err}`);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreRpcRemote.js","sourceRoot":"","sources":["../../../../src/dht/store/StoreRpcRemote.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"StoreRpcRemote.js","sourceRoot":"","sources":["../../../../src/dht/store/StoreRpcRemote.ts"],"names":[],"mappings":";;;AAAA,mDAA+D;AAM/D,oDAA6E;AAE7E,MAAa,cAAe,SAAQ,qBAAyB;IAEzD,KAAK,CAAC,SAAS,CAAC,OAAyB;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxC,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACtD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,EAAE,GAAG,IAAA,yCAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAA;YAChE,MAAM,IAAI,GAAG,IAAA,yCAA2B,EAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAA;YACvE,MAAM,IAAI,KAAK,CAAC,2BAA2B,EAAE,SAAS,IAAI,IAAI,GAAG,EAAE,CAAC,CAAA;QACxE,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAA6B;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,OAAO,EAAE,uCAA2B;SACvC,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC3D,CAAC;CAEJ;AApBD,wCAoBC"}
|
package/dist/src/exports.d.ts
CHANGED
|
@@ -11,13 +11,10 @@ export { LockID } from './connection/ConnectionLockHandler';
|
|
|
11
11
|
export { DefaultConnectorFacade } from './connection/ConnectorFacade';
|
|
12
12
|
export { DhtRpcOptions } from './rpc-protocol/DhtRpcOptions';
|
|
13
13
|
export { RpcRemote, EXISTING_CONNECTION_TIMEOUT } from './dht/contact/RpcRemote';
|
|
14
|
-
export { areEqualPeerDescriptors } from './helpers/peerIdFromPeerDescriptor';
|
|
15
14
|
export { IceServer } from './connection/webrtc/WebrtcConnector';
|
|
16
15
|
export { DhtCallContext } from './rpc-protocol/DhtCallContext';
|
|
17
16
|
export { ClientWebsocket } from './connection/websocket/ClientWebsocket';
|
|
18
17
|
export { ManagedConnection } from './connection/ManagedConnection';
|
|
19
18
|
export { ConnectionType } from './connection/IConnection';
|
|
20
|
-
export { PeerID } from './helpers/PeerID';
|
|
21
19
|
export { ServiceID } from './types/ServiceID';
|
|
22
|
-
export { DhtAddress, DhtAddressRaw, getDhtAddressFromRaw, getRawFromDhtAddress } from './identifiers';
|
|
23
|
-
export { getNodeIdFromPeerDescriptor } from './helpers/peerIdFromPeerDescriptor';
|
|
20
|
+
export { DhtAddress, DhtAddressRaw, getDhtAddressFromRaw, getRawFromDhtAddress, createRandomDhtAddress, areEqualPeerDescriptors, getNodeIdFromPeerDescriptor } from './identifiers';
|
package/dist/src/exports.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getNodeIdFromPeerDescriptor = exports.
|
|
3
|
+
exports.getNodeIdFromPeerDescriptor = exports.areEqualPeerDescriptors = exports.createRandomDhtAddress = exports.getRawFromDhtAddress = exports.getDhtAddressFromRaw = exports.ConnectionType = exports.ManagedConnection = exports.ClientWebsocket = exports.DhtCallContext = exports.EXISTING_CONNECTION_TIMEOUT = exports.RpcRemote = exports.DefaultConnectorFacade = exports.ConnectionManager = exports.DataEntry = exports.NodeType = exports.Message = exports.PeerDescriptor = exports.getRegionDelayMatrix = exports.getRandomRegion = exports.SimulatorTransport = exports.LatencyType = exports.Simulator = exports.RoutingRpcCommunicator = exports.ListeningRpcCommunicator = exports.DhtNode = void 0;
|
|
4
4
|
var DhtNode_1 = require("./dht/DhtNode");
|
|
5
5
|
Object.defineProperty(exports, "DhtNode", { enumerable: true, get: function () { return DhtNode_1.DhtNode; } });
|
|
6
6
|
var ListeningRpcCommunicator_1 = require("./transport/ListeningRpcCommunicator");
|
|
@@ -27,8 +27,6 @@ Object.defineProperty(exports, "DefaultConnectorFacade", { enumerable: true, get
|
|
|
27
27
|
var RpcRemote_1 = require("./dht/contact/RpcRemote");
|
|
28
28
|
Object.defineProperty(exports, "RpcRemote", { enumerable: true, get: function () { return RpcRemote_1.RpcRemote; } });
|
|
29
29
|
Object.defineProperty(exports, "EXISTING_CONNECTION_TIMEOUT", { enumerable: true, get: function () { return RpcRemote_1.EXISTING_CONNECTION_TIMEOUT; } });
|
|
30
|
-
var peerIdFromPeerDescriptor_1 = require("./helpers/peerIdFromPeerDescriptor");
|
|
31
|
-
Object.defineProperty(exports, "areEqualPeerDescriptors", { enumerable: true, get: function () { return peerIdFromPeerDescriptor_1.areEqualPeerDescriptors; } });
|
|
32
30
|
var DhtCallContext_1 = require("./rpc-protocol/DhtCallContext");
|
|
33
31
|
Object.defineProperty(exports, "DhtCallContext", { enumerable: true, get: function () { return DhtCallContext_1.DhtCallContext; } });
|
|
34
32
|
var ClientWebsocket_1 = require("./connection/websocket/ClientWebsocket");
|
|
@@ -37,11 +35,10 @@ var ManagedConnection_1 = require("./connection/ManagedConnection");
|
|
|
37
35
|
Object.defineProperty(exports, "ManagedConnection", { enumerable: true, get: function () { return ManagedConnection_1.ManagedConnection; } });
|
|
38
36
|
var IConnection_1 = require("./connection/IConnection");
|
|
39
37
|
Object.defineProperty(exports, "ConnectionType", { enumerable: true, get: function () { return IConnection_1.ConnectionType; } });
|
|
40
|
-
var PeerID_1 = require("./helpers/PeerID");
|
|
41
|
-
Object.defineProperty(exports, "PeerID", { enumerable: true, get: function () { return PeerID_1.PeerID; } });
|
|
42
38
|
var identifiers_1 = require("./identifiers");
|
|
43
39
|
Object.defineProperty(exports, "getDhtAddressFromRaw", { enumerable: true, get: function () { return identifiers_1.getDhtAddressFromRaw; } });
|
|
44
40
|
Object.defineProperty(exports, "getRawFromDhtAddress", { enumerable: true, get: function () { return identifiers_1.getRawFromDhtAddress; } });
|
|
45
|
-
|
|
46
|
-
Object.defineProperty(exports, "
|
|
41
|
+
Object.defineProperty(exports, "createRandomDhtAddress", { enumerable: true, get: function () { return identifiers_1.createRandomDhtAddress; } });
|
|
42
|
+
Object.defineProperty(exports, "areEqualPeerDescriptors", { enumerable: true, get: function () { return identifiers_1.areEqualPeerDescriptors; } });
|
|
43
|
+
Object.defineProperty(exports, "getNodeIdFromPeerDescriptor", { enumerable: true, get: function () { return identifiers_1.getNodeIdFromPeerDescriptor; } });
|
|
47
44
|
//# sourceMappingURL=exports.js.map
|
package/dist/src/exports.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":";;;AAAA,yCAAsE;AAA7D,kGAAA,OAAO,OAAA;AAChB,iFAA+E;AAAtE,oIAAA,wBAAwB,OAAA;AACjC,6EAA2E;AAAlE,gIAAA,sBAAsB,OAAA;AAC/B,8DAAyE;AAAhE,sGAAA,SAAS,OAAA;AAAE,wGAAA,WAAW,OAAA;AAC/B,gFAA8E;AAArE,wHAAA,kBAAkB,OAAA;AAC3B,sDAAoF;AAA3E,wGAAA,eAAe,OAAA;AAAE,6GAAA,oBAAoB,OAAA;AAC9C,6DAAiG;AAAxF,wGAAA,cAAc,OAAA;AAAE,iGAAA,OAAO,OAAA;AAAE,kGAAA,QAAQ,OAAA;AAAE,mGAAA,SAAS,OAAA;AAErD,oEAA+G;AAAtG,sHAAA,iBAAiB,OAAA;AAE1B,gEAAqE;AAA5D,yHAAA,sBAAsB,OAAA;AAE/B,qDAAgF;AAAvE,sGAAA,SAAS,OAAA;AAAE,wHAAA,2BAA2B,OAAA;
|
|
1
|
+
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":";;;AAAA,yCAAsE;AAA7D,kGAAA,OAAO,OAAA;AAChB,iFAA+E;AAAtE,oIAAA,wBAAwB,OAAA;AACjC,6EAA2E;AAAlE,gIAAA,sBAAsB,OAAA;AAC/B,8DAAyE;AAAhE,sGAAA,SAAS,OAAA;AAAE,wGAAA,WAAW,OAAA;AAC/B,gFAA8E;AAArE,wHAAA,kBAAkB,OAAA;AAC3B,sDAAoF;AAA3E,wGAAA,eAAe,OAAA;AAAE,6GAAA,oBAAoB,OAAA;AAC9C,6DAAiG;AAAxF,wGAAA,cAAc,OAAA;AAAE,iGAAA,OAAO,OAAA;AAAE,kGAAA,QAAQ,OAAA;AAAE,mGAAA,SAAS,OAAA;AAErD,oEAA+G;AAAtG,sHAAA,iBAAiB,OAAA;AAE1B,gEAAqE;AAA5D,yHAAA,sBAAsB,OAAA;AAE/B,qDAAgF;AAAvE,sGAAA,SAAS,OAAA;AAAE,wHAAA,2BAA2B,OAAA;AAE/C,gEAA8D;AAArD,gHAAA,cAAc,OAAA;AACvB,0EAAwE;AAA/D,kHAAA,eAAe,OAAA;AACxB,oEAAkE;AAAzD,sHAAA,iBAAiB,OAAA;AAC1B,wDAAyD;AAAhD,6GAAA,cAAc,OAAA;AAEvB,6CAQsB;AALlB,mHAAA,oBAAoB,OAAA;AACpB,mHAAA,oBAAoB,OAAA;AACpB,qHAAA,sBAAsB,OAAA;AACtB,sHAAA,uBAAuB,OAAA;AACvB,0HAAA,2BAA2B,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddressTools.js","sourceRoot":"","sources":["../../../src/helpers/AddressTools.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA8B;AAE9B,uDAAuD;AACvD,iCAAiC;AACjC,MAAM,iBAAiB,GAAG;IACtB,YAAY;IACZ,eAAe;IACf,gBAAgB;IAChB,aAAa;CAChB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;AAEjC,SAAgB,aAAa,CAAC,OAAe;IACzC,IAAI,mBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"AddressTools.js","sourceRoot":"","sources":["../../../src/helpers/AddressTools.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA8B;AAE9B,uDAAuD;AACvD,iCAAiC;AACjC,MAAM,iBAAiB,GAAG;IACtB,YAAY;IACZ,eAAe;IACf,gBAAgB;IAChB,aAAa;CAChB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;AAEjC,SAAgB,aAAa,CAAC,OAAe;IACzC,IAAI,mBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,mBAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACrC,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;YACpC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClB,OAAO,IAAI,CAAA;YACf,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAA;AAChB,CAAC;AAXD,sCAWC;AAED,SAAgB,0BAA0B,CAAC,SAAiB;IACxD,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACvE,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,mBAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAClF,CAAC;AAHD,gEAGC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Connectivity.js","sourceRoot":"","sources":["../../../src/helpers/Connectivity.ts"],"names":[],"mappings":";;;AAAA,2DAA0D;AAC1D,gEAAkG;AAClG,iDAA8C;AAEvC,MAAM,4BAA4B,GAAG,CAAC,eAAmC,EAAW,EAAE;IACzF,MAAM,iBAAiB,GAAG,CAAC,CAAC,eAAe,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,IAAA,4BAAa,EAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAA;IACzG,OAAO,eAAe,CAAC,GAAG,IAAI,iBAAiB,CAAA;AACnD,CAAC,CAAA;AAHY,QAAA,4BAA4B,gCAGxC;AAEM,MAAM,sBAAsB,GAAG,CAAC,mBAAmC,EAAE,oBAAoC,EAAkB,EAAE;IAChI,IAAI,oBAAoB,CAAC,SAAS;WAC3B,CAAC,mBAAmB,CAAC,IAAI,KAAK,iBAAQ,CAAC,OAAO,IAAI,IAAA,oCAA4B,EAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"Connectivity.js","sourceRoot":"","sources":["../../../src/helpers/Connectivity.ts"],"names":[],"mappings":";;;AAAA,2DAA0D;AAC1D,gEAAkG;AAClG,iDAA8C;AAEvC,MAAM,4BAA4B,GAAG,CAAC,eAAmC,EAAW,EAAE;IACzF,MAAM,iBAAiB,GAAG,CAAC,CAAC,eAAe,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,IAAA,4BAAa,EAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAA;IACzG,OAAO,eAAe,CAAC,GAAG,IAAI,iBAAiB,CAAA;AACnD,CAAC,CAAA;AAHY,QAAA,4BAA4B,gCAGxC;AAEM,MAAM,sBAAsB,GAAG,CAAC,mBAAmC,EAAE,oBAAoC,EAAkB,EAAE;IAChI,IAAI,oBAAoB,CAAC,SAAS;WAC3B,CAAC,mBAAmB,CAAC,IAAI,KAAK,iBAAQ,CAAC,OAAO,IAAI,IAAA,oCAA4B,EAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACrH,OAAO,4BAAc,CAAC,gBAAgB,CAAA;IAC1C,CAAC;SAAM,IAAI,mBAAmB,CAAC,SAAS;WACjC,CAAC,oBAAoB,CAAC,IAAI,KAAK,iBAAQ,CAAC,OAAO,IAAI,IAAA,oCAA4B,EAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACrH,OAAO,4BAAc,CAAC,gBAAgB,CAAA;IAC1C,CAAC;IACD,OAAO,4BAAc,CAAC,MAAM,CAAA;AAChC,CAAC,CAAA;AATY,QAAA,sBAAsB,0BASlC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapWithTtl.js","sourceRoot":"","sources":["../../../src/helpers/MapWithTtl.ts"],"names":[],"mappings":";;;AAKA,MAAa,UAAU;
|
|
1
|
+
{"version":3,"file":"MapWithTtl.js","sourceRoot":"","sources":["../../../src/helpers/MapWithTtl.ts"],"names":[],"mappings":";;;AAKA,MAAa,UAAU;IAEF,QAAQ,GAA4B,IAAI,GAAG,EAAE,CAAA;IAC7C,MAAM,CAAsB;IAE7C,YAAY,MAA4B;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACvC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAClC,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE;YACnB,KAAK;YACL,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC;SAC1C,CAAC,CAAA;IACN,CAAC;IAED,GAAG,CAAC,GAAM;QACN,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACtC,OAAO,OAAO,EAAE,KAAK,CAAA;IACzB,CAAC;IAED,GAAG,CAAC,GAAM;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACjC,CAAC;IAED,MAAM,CAAC,GAAM;QACT,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACvC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;YAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC7B,CAAC;IACL,CAAC;IAED,KAAK;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5B,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;IACzB,CAAC;IAED,IAAI;QACA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAA;IAC7B,CAAC;IAED,CAAC,MAAM;QACH,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACrC,MAAM,CAAC,CAAC,KAAK,CAAA;QACjB,CAAC;IACL,CAAC;IAED,OAAO,CAAC,EAA8B;QAClC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,YAA6B,EAAE,GAAM,EAAE,EAAE;YAC5D,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,aAAa,CAAC,GAAM,EAAE,KAAQ;QAClC,OAAO,UAAU,CAAC,GAAG,EAAE;YACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACpB,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1B,CAAC;CACJ;AAjED,gCAiEC"}
|