@streamr/trackerless-network 103.0.0-rc.15 → 103.0.0-rc.17
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 +5 -5
- package/dist/src/{logic/ContentDeliveryManager.d.ts → ContentDeliveryManager.d.ts} +8 -6
- package/dist/src/{logic/ContentDeliveryManager.js → ContentDeliveryManager.js} +7 -4
- package/dist/src/ContentDeliveryManager.js.map +1 -0
- package/dist/src/NetworkNode.d.ts +5 -2
- package/dist/src/NetworkNode.js +7 -1
- package/dist/src/NetworkNode.js.map +1 -1
- package/dist/src/NetworkStack.d.ts +2 -2
- package/dist/src/NetworkStack.js +3 -3
- package/dist/src/NetworkStack.js.map +1 -1
- package/dist/src/{logic/node-info/NodeInfoClient.d.ts → NodeInfoClient.d.ts} +1 -1
- package/dist/src/{logic/node-info/NodeInfoClient.js → NodeInfoClient.js} +1 -1
- package/dist/src/NodeInfoClient.js.map +1 -0
- package/dist/src/{logic/node-info/NodeInfoRpcLocal.d.ts → NodeInfoRpcLocal.d.ts} +3 -3
- package/dist/src/{logic/node-info/NodeInfoRpcLocal.js → NodeInfoRpcLocal.js} +1 -1
- package/dist/src/NodeInfoRpcLocal.js.map +1 -0
- package/dist/src/NodeInfoRpcRemote.d.ts +6 -0
- package/dist/src/NodeInfoRpcRemote.js.map +1 -0
- package/dist/src/{logic/StreamPartNetworkSplitAvoidance.d.ts → StreamPartNetworkSplitAvoidance.d.ts} +1 -1
- package/dist/src/StreamPartNetworkSplitAvoidance.js.map +1 -0
- package/dist/src/{logic/StreamPartReconnect.d.ts → StreamPartReconnect.d.ts} +2 -2
- package/dist/src/{logic/StreamPartReconnect.js → StreamPartReconnect.js} +1 -1
- package/dist/src/StreamPartReconnect.js.map +1 -0
- package/dist/src/{logic → content-delivery-layer}/ContentDeliveryLayerNode.d.ts +6 -3
- package/dist/src/{logic → content-delivery-layer}/ContentDeliveryLayerNode.js +8 -1
- package/dist/src/content-delivery-layer/ContentDeliveryLayerNode.js.map +1 -0
- package/dist/src/{logic → content-delivery-layer}/ContentDeliveryRpcLocal.d.ts +1 -1
- package/dist/src/content-delivery-layer/ContentDeliveryRpcLocal.js.map +1 -0
- package/dist/src/{logic → content-delivery-layer}/ContentDeliveryRpcRemote.d.ts +9 -1
- package/dist/src/{logic → content-delivery-layer}/ContentDeliveryRpcRemote.js +16 -0
- package/dist/src/content-delivery-layer/ContentDeliveryRpcRemote.js.map +1 -0
- package/dist/src/content-delivery-layer/DuplicateMessageDetector.js.map +1 -0
- package/dist/src/{logic → content-delivery-layer}/NodeList.d.ts +2 -0
- package/dist/src/{logic → content-delivery-layer}/NodeList.js +7 -0
- package/dist/src/content-delivery-layer/NodeList.js.map +1 -0
- package/dist/src/{logic → content-delivery-layer}/createContentDeliveryLayerNode.js +2 -2
- package/dist/src/content-delivery-layer/createContentDeliveryLayerNode.js.map +1 -0
- package/dist/src/content-delivery-layer/formStreamPartDeliveryServiceId.js.map +1 -0
- package/dist/src/content-delivery-layer/inspection/InspectSession.js.map +1 -0
- package/dist/src/content-delivery-layer/inspection/Inspector.js.map +1 -0
- package/dist/src/content-delivery-layer/neighbor-discovery/HandshakeRpcLocal.js.map +1 -0
- package/dist/src/content-delivery-layer/neighbor-discovery/HandshakeRpcRemote.js.map +1 -0
- package/dist/src/content-delivery-layer/neighbor-discovery/Handshaker.js.map +1 -0
- package/dist/src/content-delivery-layer/neighbor-discovery/NeighborFinder.js.map +1 -0
- package/dist/src/content-delivery-layer/neighbor-discovery/NeighborUpdateManager.js.map +1 -0
- package/dist/src/content-delivery-layer/neighbor-discovery/NeighborUpdateRpcLocal.js.map +1 -0
- package/dist/src/content-delivery-layer/neighbor-discovery/NeighborUpdateRpcRemote.js.map +1 -0
- package/dist/src/content-delivery-layer/plum-tree/PausedNeighbors.js.map +1 -0
- package/dist/src/content-delivery-layer/plum-tree/PlumTreeManager.js.map +1 -0
- package/dist/src/content-delivery-layer/plum-tree/PlumTreeRpcLocal.js.map +1 -0
- package/dist/src/content-delivery-layer/plum-tree/PlumTreeRpcRemote.js.map +1 -0
- package/dist/src/content-delivery-layer/propagation/FifoMapWithTTL.js.map +1 -0
- package/dist/src/content-delivery-layer/propagation/Propagation.js.map +1 -0
- package/dist/src/content-delivery-layer/propagation/PropagationTaskStore.js.map +1 -0
- package/dist/src/{logic → content-delivery-layer}/proxy/ProxyClient.js +1 -1
- package/dist/src/content-delivery-layer/proxy/ProxyClient.js.map +1 -0
- package/dist/src/content-delivery-layer/proxy/ProxyConnectionRpcLocal.js.map +1 -0
- package/dist/src/content-delivery-layer/proxy/ProxyConnectionRpcRemote.js.map +1 -0
- package/dist/src/content-delivery-layer/temporary-connection/TemporaryConnectionRpcLocal.js.map +1 -0
- package/dist/src/content-delivery-layer/temporary-connection/TemporaryConnectionRpcRemote.js.map +1 -0
- package/dist/src/control-layer/ControlLayerNode.js.map +1 -0
- package/dist/src/control-layer/ExternalNetworkRpc.js.map +1 -0
- package/dist/src/control-layer/PeerDescriptorStoreManager.js.map +1 -0
- package/dist/src/discovery-layer/DiscoveryLayerNode.js.map +1 -0
- package/dist/src/exports.d.ts +2 -2
- package/dist/src/exports.js +1 -1
- package/dist/src/exports.js.map +1 -1
- package/dist/src/utils.d.ts +3 -0
- package/dist/src/{logic/utils.js → utils.js} +1 -1
- package/dist/src/utils.js.map +1 -0
- package/dist/test/benchmark/first-message.js +1 -1
- package/dist/test/benchmark/first-message.js.map +1 -1
- package/dist/test/utils/utils.d.ts +4 -4
- package/dist/test/utils/utils.js +3 -3
- package/dist/test/utils/utils.js.map +1 -1
- package/package.json +5 -5
- package/dist/src/logic/ContentDeliveryLayerNode.js.map +0 -1
- package/dist/src/logic/ContentDeliveryManager.js.map +0 -1
- package/dist/src/logic/ContentDeliveryRpcLocal.js.map +0 -1
- package/dist/src/logic/ContentDeliveryRpcRemote.js.map +0 -1
- package/dist/src/logic/ControlLayerNode.js.map +0 -1
- package/dist/src/logic/DiscoveryLayerNode.js.map +0 -1
- package/dist/src/logic/DuplicateMessageDetector.js.map +0 -1
- package/dist/src/logic/ExternalNetworkRpc.js.map +0 -1
- package/dist/src/logic/NodeList.js.map +0 -1
- package/dist/src/logic/PeerDescriptorStoreManager.js.map +0 -1
- package/dist/src/logic/StreamPartNetworkSplitAvoidance.js.map +0 -1
- package/dist/src/logic/StreamPartReconnect.js.map +0 -1
- package/dist/src/logic/createContentDeliveryLayerNode.js.map +0 -1
- package/dist/src/logic/formStreamPartDeliveryServiceId.js.map +0 -1
- package/dist/src/logic/inspect/InspectSession.js.map +0 -1
- package/dist/src/logic/inspect/Inspector.js.map +0 -1
- package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.js.map +0 -1
- package/dist/src/logic/neighbor-discovery/HandshakeRpcRemote.js.map +0 -1
- package/dist/src/logic/neighbor-discovery/Handshaker.js.map +0 -1
- package/dist/src/logic/neighbor-discovery/NeighborFinder.js.map +0 -1
- package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js.map +0 -1
- package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js.map +0 -1
- package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcRemote.js.map +0 -1
- package/dist/src/logic/node-info/NodeInfoClient.js.map +0 -1
- package/dist/src/logic/node-info/NodeInfoRpcLocal.js.map +0 -1
- package/dist/src/logic/node-info/NodeInfoRpcRemote.d.ts +0 -6
- package/dist/src/logic/node-info/NodeInfoRpcRemote.js.map +0 -1
- package/dist/src/logic/plumtree/PausedNeighbors.js.map +0 -1
- package/dist/src/logic/plumtree/PlumTreeManager.js.map +0 -1
- package/dist/src/logic/plumtree/PlumTreeRpcLocal.js.map +0 -1
- package/dist/src/logic/plumtree/PlumTreeRpcRemote.js.map +0 -1
- package/dist/src/logic/propagation/FifoMapWithTTL.js.map +0 -1
- package/dist/src/logic/propagation/Propagation.js.map +0 -1
- package/dist/src/logic/propagation/PropagationTaskStore.js.map +0 -1
- package/dist/src/logic/proxy/ProxyClient.js.map +0 -1
- package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js.map +0 -1
- package/dist/src/logic/proxy/ProxyConnectionRpcRemote.js.map +0 -1
- package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js.map +0 -1
- package/dist/src/logic/temporary-connection/TemporaryConnectionRpcRemote.js.map +0 -1
- package/dist/src/logic/utils.d.ts +0 -3
- package/dist/src/logic/utils.js.map +0 -1
- /package/dist/src/{logic/node-info/NodeInfoRpcRemote.js → NodeInfoRpcRemote.js} +0 -0
- /package/dist/src/{logic/StreamPartNetworkSplitAvoidance.js → StreamPartNetworkSplitAvoidance.js} +0 -0
- /package/dist/src/{logic → content-delivery-layer}/ContentDeliveryRpcLocal.js +0 -0
- /package/dist/src/{logic → content-delivery-layer}/DuplicateMessageDetector.d.ts +0 -0
- /package/dist/src/{logic → content-delivery-layer}/DuplicateMessageDetector.js +0 -0
- /package/dist/src/{logic → content-delivery-layer}/createContentDeliveryLayerNode.d.ts +0 -0
- /package/dist/src/{logic → content-delivery-layer}/formStreamPartDeliveryServiceId.d.ts +0 -0
- /package/dist/src/{logic → content-delivery-layer}/formStreamPartDeliveryServiceId.js +0 -0
- /package/dist/src/{logic/inspect → content-delivery-layer/inspection}/InspectSession.d.ts +0 -0
- /package/dist/src/{logic/inspect → content-delivery-layer/inspection}/InspectSession.js +0 -0
- /package/dist/src/{logic/inspect → content-delivery-layer/inspection}/Inspector.d.ts +0 -0
- /package/dist/src/{logic/inspect → content-delivery-layer/inspection}/Inspector.js +0 -0
- /package/dist/src/{logic → content-delivery-layer}/neighbor-discovery/HandshakeRpcLocal.d.ts +0 -0
- /package/dist/src/{logic → content-delivery-layer}/neighbor-discovery/HandshakeRpcLocal.js +0 -0
- /package/dist/src/{logic → content-delivery-layer}/neighbor-discovery/HandshakeRpcRemote.d.ts +0 -0
- /package/dist/src/{logic → content-delivery-layer}/neighbor-discovery/HandshakeRpcRemote.js +0 -0
- /package/dist/src/{logic → content-delivery-layer}/neighbor-discovery/Handshaker.d.ts +0 -0
- /package/dist/src/{logic → content-delivery-layer}/neighbor-discovery/Handshaker.js +0 -0
- /package/dist/src/{logic → content-delivery-layer}/neighbor-discovery/NeighborFinder.d.ts +0 -0
- /package/dist/src/{logic → content-delivery-layer}/neighbor-discovery/NeighborFinder.js +0 -0
- /package/dist/src/{logic → content-delivery-layer}/neighbor-discovery/NeighborUpdateManager.d.ts +0 -0
- /package/dist/src/{logic → content-delivery-layer}/neighbor-discovery/NeighborUpdateManager.js +0 -0
- /package/dist/src/{logic → content-delivery-layer}/neighbor-discovery/NeighborUpdateRpcLocal.d.ts +0 -0
- /package/dist/src/{logic → content-delivery-layer}/neighbor-discovery/NeighborUpdateRpcLocal.js +0 -0
- /package/dist/src/{logic → content-delivery-layer}/neighbor-discovery/NeighborUpdateRpcRemote.d.ts +0 -0
- /package/dist/src/{logic → content-delivery-layer}/neighbor-discovery/NeighborUpdateRpcRemote.js +0 -0
- /package/dist/src/{logic/plumtree → content-delivery-layer/plum-tree}/PausedNeighbors.d.ts +0 -0
- /package/dist/src/{logic/plumtree → content-delivery-layer/plum-tree}/PausedNeighbors.js +0 -0
- /package/dist/src/{logic/plumtree → content-delivery-layer/plum-tree}/PlumTreeManager.d.ts +0 -0
- /package/dist/src/{logic/plumtree → content-delivery-layer/plum-tree}/PlumTreeManager.js +0 -0
- /package/dist/src/{logic/plumtree → content-delivery-layer/plum-tree}/PlumTreeRpcLocal.d.ts +0 -0
- /package/dist/src/{logic/plumtree → content-delivery-layer/plum-tree}/PlumTreeRpcLocal.js +0 -0
- /package/dist/src/{logic/plumtree → content-delivery-layer/plum-tree}/PlumTreeRpcRemote.d.ts +0 -0
- /package/dist/src/{logic/plumtree → content-delivery-layer/plum-tree}/PlumTreeRpcRemote.js +0 -0
- /package/dist/src/{logic → content-delivery-layer}/propagation/FifoMapWithTTL.d.ts +0 -0
- /package/dist/src/{logic → content-delivery-layer}/propagation/FifoMapWithTTL.js +0 -0
- /package/dist/src/{logic → content-delivery-layer}/propagation/Propagation.d.ts +0 -0
- /package/dist/src/{logic → content-delivery-layer}/propagation/Propagation.js +0 -0
- /package/dist/src/{logic → content-delivery-layer}/propagation/PropagationTaskStore.d.ts +0 -0
- /package/dist/src/{logic → content-delivery-layer}/propagation/PropagationTaskStore.js +0 -0
- /package/dist/src/{logic → content-delivery-layer}/proxy/ProxyClient.d.ts +0 -0
- /package/dist/src/{logic → content-delivery-layer}/proxy/ProxyConnectionRpcLocal.d.ts +0 -0
- /package/dist/src/{logic → content-delivery-layer}/proxy/ProxyConnectionRpcLocal.js +0 -0
- /package/dist/src/{logic → content-delivery-layer}/proxy/ProxyConnectionRpcRemote.d.ts +0 -0
- /package/dist/src/{logic → content-delivery-layer}/proxy/ProxyConnectionRpcRemote.js +0 -0
- /package/dist/src/{logic → content-delivery-layer}/temporary-connection/TemporaryConnectionRpcLocal.d.ts +0 -0
- /package/dist/src/{logic → content-delivery-layer}/temporary-connection/TemporaryConnectionRpcLocal.js +0 -0
- /package/dist/src/{logic → content-delivery-layer}/temporary-connection/TemporaryConnectionRpcRemote.d.ts +0 -0
- /package/dist/src/{logic → content-delivery-layer}/temporary-connection/TemporaryConnectionRpcRemote.js +0 -0
- /package/dist/src/{logic → control-layer}/ControlLayerNode.d.ts +0 -0
- /package/dist/src/{logic → control-layer}/ControlLayerNode.js +0 -0
- /package/dist/src/{logic → control-layer}/ExternalNetworkRpc.d.ts +0 -0
- /package/dist/src/{logic → control-layer}/ExternalNetworkRpc.js +0 -0
- /package/dist/src/{logic → control-layer}/PeerDescriptorStoreManager.d.ts +0 -0
- /package/dist/src/{logic → control-layer}/PeerDescriptorStoreManager.js +0 -0
- /package/dist/src/{logic → discovery-layer}/DiscoveryLayerNode.d.ts +0 -0
- /package/dist/src/{logic → discovery-layer}/DiscoveryLayerNode.js +0 -0
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@streamr/trackerless-network",
|
|
3
|
-
"version": "103.0.0-rc.
|
|
3
|
+
"version": "103.0.0-rc.17",
|
|
4
4
|
"description": "Minimal and extendable implementation of the Streamr Network node.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -36,9 +36,9 @@
|
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@protobuf-ts/runtime": "^2.8.2",
|
|
38
38
|
"@protobuf-ts/runtime-rpc": "^2.8.2",
|
|
39
|
-
"@streamr/dht": "103.0.0-rc.
|
|
40
|
-
"@streamr/proto-rpc": "103.0.0-rc.
|
|
41
|
-
"@streamr/utils": "103.0.0-rc.
|
|
39
|
+
"@streamr/dht": "103.0.0-rc.17",
|
|
40
|
+
"@streamr/proto-rpc": "103.0.0-rc.17",
|
|
41
|
+
"@streamr/utils": "103.0.0-rc.17",
|
|
42
42
|
"eventemitter3": "^5.0.0",
|
|
43
43
|
"lodash": "^4.17.21",
|
|
44
44
|
"ts-essentials": "^10.0.4",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@streamr/browser-test-runner": "^0.0.1",
|
|
50
|
-
"@streamr/test-utils": "103.0.0-rc.
|
|
50
|
+
"@streamr/test-utils": "103.0.0-rc.17",
|
|
51
51
|
"@types/lodash": "^4.17.16",
|
|
52
52
|
"@types/yallist": "^4.0.1",
|
|
53
53
|
"expect": "^29.6.2",
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { ConnectionLocker, DhtAddress, ITransport, PeerDescriptor } from '@streamr/dht';
|
|
2
2
|
import { MetricsContext, StreamPartID, UserID } from '@streamr/utils';
|
|
3
3
|
import { EventEmitter } from 'eventemitter3';
|
|
4
|
-
import { ProxyDirection, StreamMessage } from '
|
|
5
|
-
import { ContentDeliveryLayerNode } from './ContentDeliveryLayerNode';
|
|
6
|
-
import { ControlLayerNode } from './ControlLayerNode';
|
|
7
|
-
import { DiscoveryLayerNode } from './DiscoveryLayerNode';
|
|
4
|
+
import { ProxyDirection, StreamMessage } from '../generated/packages/trackerless-network/protos/NetworkRpc';
|
|
5
|
+
import { ContentDeliveryLayerNode } from './content-delivery-layer/ContentDeliveryLayerNode';
|
|
6
|
+
import { ControlLayerNode } from './control-layer/ControlLayerNode';
|
|
7
|
+
import { DiscoveryLayerNode } from './discovery-layer/DiscoveryLayerNode';
|
|
8
8
|
import { StreamPartNetworkSplitAvoidance } from './StreamPartNetworkSplitAvoidance';
|
|
9
|
-
import { ProxyClient } from './proxy/ProxyClient';
|
|
10
|
-
import { StreamPartitionInfo } from '
|
|
9
|
+
import { ProxyClient } from './content-delivery-layer/proxy/ProxyClient';
|
|
10
|
+
import { StreamPartitionInfo } from './types';
|
|
11
|
+
import { ContentDeliveryRpcRemote } from './content-delivery-layer/ContentDeliveryRpcRemote';
|
|
11
12
|
export type StreamPartDelivery = {
|
|
12
13
|
broadcast: (msg: StreamMessage) => void;
|
|
13
14
|
stop: () => Promise<void>;
|
|
@@ -24,6 +25,7 @@ export type StreamPartDelivery = {
|
|
|
24
25
|
});
|
|
25
26
|
export interface Events {
|
|
26
27
|
newMessage: (msg: StreamMessage) => void;
|
|
28
|
+
neighborListUpdated: (streamPartId: StreamPartID, neighbors: ContentDeliveryRpcRemote[]) => void;
|
|
27
29
|
}
|
|
28
30
|
export interface ContentDeliveryManagerOptions {
|
|
29
31
|
metricsContext?: MetricsContext;
|
|
@@ -9,12 +9,12 @@ const utils_1 = require("@streamr/utils");
|
|
|
9
9
|
const crypto_1 = require("crypto");
|
|
10
10
|
const eventemitter3_1 = require("eventemitter3");
|
|
11
11
|
const sampleSize_1 = __importDefault(require("lodash/sampleSize"));
|
|
12
|
-
const PeerDescriptorStoreManager_1 = require("./PeerDescriptorStoreManager");
|
|
12
|
+
const PeerDescriptorStoreManager_1 = require("./control-layer/PeerDescriptorStoreManager");
|
|
13
13
|
const StreamPartNetworkSplitAvoidance_1 = require("./StreamPartNetworkSplitAvoidance");
|
|
14
14
|
const StreamPartReconnect_1 = require("./StreamPartReconnect");
|
|
15
|
-
const createContentDeliveryLayerNode_1 = require("./createContentDeliveryLayerNode");
|
|
16
|
-
const ProxyClient_1 = require("./proxy/ProxyClient");
|
|
17
|
-
const Propagation_1 = require("./propagation/Propagation");
|
|
15
|
+
const createContentDeliveryLayerNode_1 = require("./content-delivery-layer/createContentDeliveryLayerNode");
|
|
16
|
+
const ProxyClient_1 = require("./content-delivery-layer/proxy/ProxyClient");
|
|
17
|
+
const Propagation_1 = require("./content-delivery-layer/propagation/Propagation");
|
|
18
18
|
const logger = new utils_1.Logger(module);
|
|
19
19
|
const streamPartIdToDataKey = (streamPartId) => {
|
|
20
20
|
return (0, dht_1.toDhtAddress)(new Uint8Array(((0, crypto_1.createHash)('sha1').update(streamPartId).digest())));
|
|
@@ -120,6 +120,9 @@ class ContentDeliveryManager extends eventemitter3_1.EventEmitter {
|
|
|
120
120
|
node.on('message', (message) => {
|
|
121
121
|
this.emit('newMessage', message);
|
|
122
122
|
});
|
|
123
|
+
node.on('neighborListUpdated', (neighbors) => {
|
|
124
|
+
this.emit('neighborListUpdated', streamPartId, neighbors);
|
|
125
|
+
});
|
|
123
126
|
const handleEntryPointLeave = async () => {
|
|
124
127
|
if (this.destroyed || peerDescriptorStoreManager.isLocalNodeStored() || this.knownStreamPartEntryPoints.has(streamPartId)) {
|
|
125
128
|
return;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContentDeliveryManager.js","sourceRoot":"","sources":["../../src/ContentDeliveryManager.ts"],"names":[],"mappings":";;;;;;AAAA,sCAUqB;AACrB,0CAQuB;AACvB,mCAAmC;AACnC,iDAA4C;AAC5C,mEAA0C;AAK1C,2FAAuG;AACvG,uFAAqJ;AACrJ,+DAA2D;AAC3D,4GAAwG;AACxG,4EAAwE;AAExE,kFAIyD;AAuBzD,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAsB1B,MAAM,qBAAqB,GAAG,CAAC,YAA0B,EAAc,EAAE;IAC5E,OAAO,IAAA,kBAAY,EAAC,IAAI,UAAU,CAAC,CAAC,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAA;AAC3F,CAAC,CAAA;AAFY,QAAA,qBAAqB,yBAEjC;AAED,MAAa,sBAAuB,SAAQ,4BAAoB;IAEpD,SAAS,CAAa;IACtB,gBAAgB,CAAmB;IACnC,gBAAgB,CAAmB;IAC1B,cAAc,CAAgB;IAC9B,OAAO,CAAS;IAChB,OAAO,CAA+B;IACtC,WAAW,CAAuC;IAClD,0BAA0B,GAAwC,IAAI,GAAG,EAAE,CAAA;IACpF,OAAO,GAAG,KAAK,CAAA;IACf,SAAS,GAAG,KAAK,CAAA;IAEzB,YAAY,OAAsC;QAC9C,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,sBAAc,EAAE,CAAA;QACpE,IAAI,CAAC,OAAO,GAAG;YACX,0BAA0B,EAAE,IAAI,kBAAU,EAAE;YAC5C,uBAAuB,EAAE,IAAI,kBAAU,EAAE;SAC5C,CAAA;QACD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IACxD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,gCAAkD,EAAE,SAAqB,EAAE,gBAAkC;QACrH,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjC,OAAM;QACV,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,IAAI,CAAC,gBAAgB,GAAG,gCAAgC,CAAA;QACxD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,OAAO;QACT,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAClC,OAAM;QACV,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAA;QACjD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QAC/F,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;QACxB,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACzB,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAA;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAA;IACrC,CAAC;IAED,SAAS,CAAC,GAAkB,EAAE,yBAAqD;QAC/E,MAAM,YAAY,GAAG,IAAA,sBAAc,EAAC,GAAG,CAAC,SAAU,CAAC,QAAoB,EAAE,GAAG,CAAC,SAAU,CAAC,eAAe,CAAC,CAAA;QACxG,MAAM,CAAC,KAAK,CAAC,+BAA+B,YAAY,EAAE,CAAC,CAAA;QAC3D,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,yBAAyB,CAAC,CAAA;QAC5D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAClD,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,gBAAgB,EAAE,CAAC;YAC1C,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YACjD,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACvF,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,YAA0B;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACrD,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,UAAU,CAAC,IAAI,EAAE,CAAA;YACvB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QACzC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,YAA0B,EAAE,yBAAqD;QAC5F,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACnD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAM;QACV,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,oBAAoB,YAAY,EAAE,CAAC,CAAA;QAChD,MAAM,kBAAkB,GAAG,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAA;QAC/H,MAAM,0BAA0B,GAAG,IAAI,uDAA0B,CAAC;YAC9D,GAAG,EAAE,IAAA,6BAAqB,EAAC,YAAY,CAAC;YACxC,mBAAmB,EAAE,IAAI,CAAC,iBAAiB,EAAE;YAC7C,gBAAgB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAiB,CAAC,gBAAgB,CAAC,GAAG,CAAC;YACvE,cAAc,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAiB,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC;YAC/E,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAiB,CAAC,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,CAAC;SACxH,CAAC,CAAA;QACF,MAAM,qBAAqB,GAAG,IAAI,iEAA+B,CAAC;YAC9D,kBAAkB;YAClB,mBAAmB,EAAE,KAAK,IAAI,EAAE,CAAC,0BAA0B,CAAC,UAAU,EAAE;SAC3E,CAAC,CAAA;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,8BAA8B,CAC5C,YAAY,EACZ,kBAAkB,EAClB,GAAG,EAAE,CAAC,0BAA0B,CAAC,iBAAiB,EAAE,EACpD,yBAAyB,CAC5B,CAAA;QACD,MAAM,mBAAmB,GAAG,IAAI,yCAAmB,CAAC,kBAAkB,EAAE,0BAA0B,CAAC,CAAA;QACnG,UAAU,GAAG;YACT,OAAO,EAAE,KAAK;YACd,kBAAkB;YAClB,IAAI;YACJ,qBAAqB;YACrB,SAAS,EAAE,CAAC,GAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;YACtD,IAAI,EAAE,KAAK,IAAI,EAAE;gBACb,mBAAmB,CAAC,OAAO,EAAE,CAAA;gBAC7B,qBAAqB,CAAC,OAAO,EAAE,CAAA;gBAC/B,MAAM,0BAA0B,CAAC,OAAO,EAAE,CAAA;gBAC1C,IAAI,CAAC,IAAI,EAAE,CAAA;gBACX,MAAM,kBAAkB,CAAC,IAAI,EAAE,CAAA;YACnC,CAAC;YACD,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE;SACpD,CAAA;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;QAC9C,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAsB,EAAE,EAAE;YAC1C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QACpC,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,SAAqC,EAAE,EAAE;YACrE,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,YAAY,EAAE,SAAS,CAAC,CAAA;QAC7D,CAAC,CAAC,CAAA;QACF,MAAM,qBAAqB,GAAG,KAAK,IAAI,EAAE;YACrC,IAAI,IAAI,CAAC,SAAS,IAAI,0BAA0B,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;gBACxH,OAAM;YACV,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,0BAA0B,CAAC,UAAU,EAAE,CAAA;YACjE,IAAI,WAAW,CAAC,MAAM,GAAG,2CAAc,EAAE,CAAC;gBACtC,MAAM,0BAA0B,CAAC,qBAAqB,EAAE,CAAA;YAC5D,CAAC;QACL,CAAC,CAAA;QACD,kBAAkB,CAAC,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YACrD,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,EAAE,CAAC;gBACzE,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,EAAE,YAAY,EAAE,CAAC,CAAA;gBACxE,MAAM,mBAAmB,CAAC,SAAS,EAAE,CAAA;YACzC,CAAC;QACL,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC,CAAA;QACjE,YAAY,CAAC,KAAK,IAAI,EAAE;YACpB,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAA;YAC9E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC,iCAAiC,YAAY,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YACzE,CAAC;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,YAA0B,EAAE,0BAAsD;QAClH,MAAM,CAAC,KAAK,CAAC,6CAA6C,YAAY,EAAE,CAAC,CAAA;QACzE,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACrD,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACnD,0FAA0F;YAC1F,OAAM;QACV,CAAC;QACD,IAAK,IAAI,CAAC,SAAgC,CAAC,mBAAmB,EAAE,EAAE,CAAC;YAC/D,MAAO,IAAI,CAAC,SAAgC,CAAC,wBAAwB,EAAE,CAAA;QAC3E,CAAC;QACD,MAAM,UAAU,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAA;QAC3C,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;QAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAC1E,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,OAAO,CAAC,GAAG,CAAC;gBACd,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,CAAC;gBACvD,UAAU,CAAC,kBAAkB,CAAC,QAAQ,EAAE;aAC3C,CAAC,CAAA;QACN,CAAC;aAAM,CAAC;YACJ,MAAM,WAAW,GAAG,MAAM,0BAA0B,CAAC,UAAU,EAAE,CAAA;YACjE,MAAM,OAAO,CAAC,GAAG,CAAC;gBACd,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAA,oBAAU,EAAC,WAAW,EAAE,oDAA0C,CAAC,CAAC;gBAC1G,UAAU,CAAC,kBAAkB,CAAC,QAAQ,EAAE;aAC3C,CAAC,CAAA;YACF,IAAI,WAAW,CAAC,MAAM,GAAG,2CAAc,EAAE,CAAC;gBACtC,MAAM,0BAA0B,CAAC,qBAAqB,EAAE,CAAA;gBACxD,IAAI,UAAU,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,GAAG,oDAA0C,EAAE,CAAC;oBAChG,YAAY,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,qBAAqB,CAAC,iBAAiB,EAAE,CAAC,CAAA;gBAC5E,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAEO,wBAAwB,CAAC,YAA0B,EAAE,WAA6B;QACtF,OAAO,IAAI,aAAO,CAAC;YACf,SAAS,EAAE,IAAI,CAAC,gBAAiB;YACjC,eAAe,EAAE,IAAI,CAAC,gBAAiB,CAAC,kBAAkB,EAAE;YAC5D,SAAS,EAAE,UAAU,GAAG,YAAY;YACpC,cAAc,EAAE,IAAI,CAAC,gBAAiB,CAAC,sBAAsB,EAAE;YAC/D,WAAW;YACX,uBAAuB,EAAE,CAAC,EAAG,6CAA6C;YAC1E,iBAAiB,EAAE,iCAA2B;YAC9C,cAAc,EAAE,KAAK,EAAG,6CAA6C;YACrE,yBAAyB,EAAE,IAAI;YAC/B,4BAA4B,EAAE,IAAI;YAClC,iBAAiB,EAAE,EAAE;SACxB,CAAC,CAAA;IACN,CAAC;IAEO,8BAA8B,CAClC,YAA0B,EAC1B,kBAAsC,EACtC,qBAAoC,EACpC,yBAAqD;QAErD,OAAO,IAAA,+DAA8B,EAAC;YAClC,YAAY;YACZ,SAAS,EAAE,IAAI,CAAC,SAAU;YAC1B,kBAAkB;YAClB,gBAAgB,EAAE,IAAI,CAAC,gBAAiB;YACxC,mBAAmB,EAAE,IAAI,CAAC,gBAAiB,CAAC,sBAAsB,EAAE;YACpE,qBAAqB,EAAE,IAAI,CAAC,OAAO,CAAC,oCAAoC;YACxE,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,kCAAkC;YACpE,wBAAwB,EAAE,IAAI,CAAC,OAAO,CAAC,uCAAuC;YAC9E,sBAAsB,EAAE,IAAI,CAAC,OAAO,CAAC,sBAAsB;YAC3D,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB;YACjD,sBAAsB,EAAE,IAAI,CAAC,OAAO,CAAC,sBAAsB;YAC3D,qBAAqB;YACrB,0BAA0B,EAAE,IAAI,CAAC,OAAO,CAAC,0BAA0B;YACnE,oBAAoB,EAAE,yBAAyB,EAAE,oBAAoB;SACxE,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,UAAU,CACZ,YAA0B,EAC1B,KAAuB,EACvB,SAAyB,EACzB,MAAc,EACd,eAAwB;QAExB,+EAA+E;QAC/E,IAAI,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;QAC1E,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,KAAK,SAAS,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAA;QAC/F,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,MAAmB,CAAA;YACvB,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAA;YAC7D,IAAI,cAAc,EAAE,CAAC;gBACjB,MAAM,GAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAA8B,CAAC,MAAM,CAAA;YACpF,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAA;gBAC7C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE;oBAC/B,OAAO,EAAE,IAAI;oBACb,MAAM;oBACN,SAAS,EAAE,CAAC,GAAkB,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;oBACxD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;oBAC/B,iBAAiB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,EAAE;iBACtD,CAAC,CAAA;gBACF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAsB,EAAE,EAAE;oBAC5C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;gBACpC,CAAC,CAAC,CAAA;gBACF,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBAClF,MAAO,IAAI,CAAC,SAAgC,CAAC,uBAAuB,EAAE,CAAA;gBAC1E,CAAC;gBACD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;YACxB,CAAC;YACD,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,CAAA;QACtE,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAA;YAChD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QACzC,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,YAA0B;QAChD,OAAO,IAAI,yBAAW,CAAC;YACnB,SAAS,EAAE,IAAI,CAAC,SAAU;YAC1B,mBAAmB,EAAE,IAAI,CAAC,gBAAiB,CAAC,sBAAsB,EAAE;YACpE,YAAY;YACZ,gBAAgB,EAAE,IAAI,CAAC,gBAAiB;YACxC,qBAAqB,EAAE,IAAI,CAAC,OAAO,CAAC,oCAAoC,IAAI,6CAA+B;YAC3G,wBAAwB,EAAE,IAAI,CAAC,OAAO,CAAC,uCAAuC,IAAI,iDAAmC;YACrH,oBAAoB,EAAE,4CAA8B;SACvD,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,cAA8B,EAAE,YAA0B;QACpE,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACrD,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACpD,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAClD,CAAC;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,2BAA2B;IAC3B,WAAW;QACP,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,CAAA;QACxG,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,EAAE;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAgF,CAAA;YAChI,OAAO;gBACH,EAAE,EAAE,YAAY;gBAChB,qBAAqB,EAAE,MAAM,CAAC,kBAAkB,CAAC,YAAY,EAAE;gBAC/D,uCAAuC,EAAE,EAAE;gBAC3C,6BAA6B,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;aACxD,CAAA;QACL,CAAC,CAAC,CAAA;IAEN,CAAC;IAED,wBAAwB,CAAC,YAA0B,EAAE,WAA6B;QAC9E,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;IAClE,CAAC;IAED,mBAAmB,CAAC,YAA0B,EAAE,SAA0B;QACtE,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACrD,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC;eAC1B,UAAU,CAAC,OAAO;eAClB,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,SAAS,CAAC,CAAC,CAAA;IAC1F,CAAC;IAED,qBAAqB,CAAC,YAA0B;QAC5C,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IAC7C,CAAC;IAED,aAAa,CAAC,YAA0B;QACpC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IAC7C,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,gBAAiB,CAAC,sBAAsB,EAAE,CAAA;IAC1D,CAAC;IAED,SAAS;QACL,OAAO,IAAA,cAAQ,EAAC,IAAI,CAAC,gBAAiB,CAAC,sBAAsB,EAAE,CAAC,CAAA;IACpE,CAAC;IAED,YAAY,CAAC,YAA0B;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACrD,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,KAAK,KAAK,CAAC;YAC/D,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,cAAQ,EAAC,CAAC,CAAC,CAAC;YACxD,CAAC,CAAC,EAAE,CAAA;IACZ,CAAC;IAED,cAAc;QACV,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,yBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;IACvF,CAAC;IAED,iBAAiB;QACb,OAAO;YACH,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBAC1C,OAAO;oBACH,EAAE;oBACF,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAE,CAAC,iBAAiB,EAAE;iBAC5D,CAAA;YACL,CAAC,CAAC;SACL,CAAA;IACL,CAAC;CACJ;AAjVD,wDAiVC"}
|
|
@@ -3,11 +3,12 @@ import { ServerCallContext } from '@protobuf-ts/runtime-rpc';
|
|
|
3
3
|
import { DhtAddress, PeerDescriptor } from '@streamr/dht';
|
|
4
4
|
import { ProtoRpcClient } from '@streamr/proto-rpc';
|
|
5
5
|
import { MetricsContext, StreamPartID, UserID } from '@streamr/utils';
|
|
6
|
-
import { ExternalRpcClient, ExternalRpcClientClass } from './
|
|
6
|
+
import { ExternalRpcClient, ExternalRpcClientClass } from './control-layer/ExternalNetworkRpc';
|
|
7
7
|
import { NetworkOptions, NetworkStack } from './NetworkStack';
|
|
8
8
|
import { ProxyDirection, StreamMessage } from '../generated/packages/trackerless-network/protos/NetworkRpc';
|
|
9
9
|
import { NodeInfo } from './types';
|
|
10
|
-
import {
|
|
10
|
+
import { ContentDeliveryRpcRemote } from './content-delivery-layer/ContentDeliveryRpcRemote';
|
|
11
|
+
import { StreamPartDeliveryOptions } from './ContentDeliveryManager';
|
|
11
12
|
export declare const createNetworkNode: (opts: NetworkOptions) => NetworkNode;
|
|
12
13
|
/**
|
|
13
14
|
* Convenience wrapper for building client-facing functionality. Used by client.
|
|
@@ -26,8 +27,10 @@ export declare class NetworkNode {
|
|
|
26
27
|
setProxies(streamPartId: StreamPartID, nodes: PeerDescriptor[], direction: ProxyDirection, userId: UserID, connectionCount?: number): Promise<void>;
|
|
27
28
|
isProxiedStreamPart(streamPartId: StreamPartID): boolean;
|
|
28
29
|
addMessageListener(listener: (msg: StreamMessage) => void): void;
|
|
30
|
+
addNeighborListUpdatedListener(listener: (streamPartId: StreamPartID, neighbors: ContentDeliveryRpcRemote[]) => void): void;
|
|
29
31
|
setStreamPartEntryPoints(streamPartId: StreamPartID, contactPeerDescriptors: PeerDescriptor[]): void;
|
|
30
32
|
removeMessageListener(listener: (msg: StreamMessage) => void): void;
|
|
33
|
+
removeNeighborListUpdatedListener(listener: (streamPartId: StreamPartID, neighbors: ContentDeliveryRpcRemote[]) => void): void;
|
|
31
34
|
leave(streamPartId: StreamPartID): Promise<void>;
|
|
32
35
|
getNeighbors(streamPartId: StreamPartID): readonly DhtAddress[];
|
|
33
36
|
hasStreamPart(streamPartId: StreamPartID): boolean;
|
package/dist/src/NetworkNode.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NetworkNode = exports.createNetworkNode = void 0;
|
|
4
|
-
const ExternalNetworkRpc_1 = require("./
|
|
4
|
+
const ExternalNetworkRpc_1 = require("./control-layer/ExternalNetworkRpc");
|
|
5
5
|
const NetworkStack_1 = require("./NetworkStack");
|
|
6
6
|
const createNetworkNode = (opts) => {
|
|
7
7
|
return new NetworkNode(new NetworkStack_1.NetworkStack(opts));
|
|
@@ -40,12 +40,18 @@ class NetworkNode {
|
|
|
40
40
|
addMessageListener(listener) {
|
|
41
41
|
this.stack.getContentDeliveryManager().on('newMessage', listener);
|
|
42
42
|
}
|
|
43
|
+
addNeighborListUpdatedListener(listener) {
|
|
44
|
+
this.stack.getContentDeliveryManager().on('neighborListUpdated', listener);
|
|
45
|
+
}
|
|
43
46
|
setStreamPartEntryPoints(streamPartId, contactPeerDescriptors) {
|
|
44
47
|
this.stack.getContentDeliveryManager().setStreamPartEntryPoints(streamPartId, contactPeerDescriptors);
|
|
45
48
|
}
|
|
46
49
|
removeMessageListener(listener) {
|
|
47
50
|
this.stack.getContentDeliveryManager().off('newMessage', listener);
|
|
48
51
|
}
|
|
52
|
+
removeNeighborListUpdatedListener(listener) {
|
|
53
|
+
this.stack.getContentDeliveryManager().off('neighborListUpdated', listener);
|
|
54
|
+
}
|
|
49
55
|
async leave(streamPartId) {
|
|
50
56
|
if (this.stopped) {
|
|
51
57
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkNode.js","sourceRoot":"","sources":["../../src/NetworkNode.ts"],"names":[],"mappings":";;;AAKA,
|
|
1
|
+
{"version":3,"file":"NetworkNode.js","sourceRoot":"","sources":["../../src/NetworkNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DhtNodeOptions, PeerDescriptor } from '@streamr/dht';
|
|
2
2
|
import { MetricsContext, StreamPartID } from '@streamr/utils';
|
|
3
|
-
import { ContentDeliveryManager, ContentDeliveryManagerOptions, StreamPartDeliveryOptions } from './
|
|
4
|
-
import { ControlLayerNode } from './
|
|
3
|
+
import { ContentDeliveryManager, ContentDeliveryManagerOptions, StreamPartDeliveryOptions } from './ContentDeliveryManager';
|
|
4
|
+
import { ControlLayerNode } from './control-layer/ControlLayerNode';
|
|
5
5
|
import { StreamMessage } from '../generated/packages/trackerless-network/protos/NetworkRpc';
|
|
6
6
|
import { NodeInfo } from './types';
|
|
7
7
|
export interface NetworkOptions {
|
package/dist/src/NetworkStack.js
CHANGED
|
@@ -8,9 +8,9 @@ const dht_1 = require("@streamr/dht");
|
|
|
8
8
|
const utils_1 = require("@streamr/utils");
|
|
9
9
|
const pull_1 = __importDefault(require("lodash/pull"));
|
|
10
10
|
const package_json_1 = require("../package.json");
|
|
11
|
-
const ContentDeliveryManager_1 = require("./
|
|
12
|
-
const NodeInfoClient_1 = require("./
|
|
13
|
-
const NodeInfoRpcLocal_1 = require("./
|
|
11
|
+
const ContentDeliveryManager_1 = require("./ContentDeliveryManager");
|
|
12
|
+
const NodeInfoClient_1 = require("./NodeInfoClient");
|
|
13
|
+
const NodeInfoRpcLocal_1 = require("./NodeInfoRpcLocal");
|
|
14
14
|
const NetworkRpc_1 = require("../generated/packages/trackerless-network/protos/NetworkRpc");
|
|
15
15
|
const logger = new utils_1.Logger(module);
|
|
16
16
|
const instances = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkStack.js","sourceRoot":"","sources":["../../src/NetworkStack.ts"],"names":[],"mappings":";;;;;;AAAA,sCAQqB;AACrB,0CAAsG;AACtG,uDAA8B;AAC9B,kDAA+D;AAC/D,
|
|
1
|
+
{"version":3,"file":"NetworkStack.js","sourceRoot":"","sources":["../../src/NetworkStack.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DhtCallContext, PeerDescriptor } from '@streamr/dht';
|
|
2
2
|
import { RpcCommunicator } from '@streamr/proto-rpc';
|
|
3
|
-
import { NodeInfo } from '
|
|
3
|
+
import { NodeInfo } from './types';
|
|
4
4
|
export declare class NodeInfoClient {
|
|
5
5
|
private readonly ownPeerDescriptor;
|
|
6
6
|
private readonly rpcCommunicator;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NodeInfoClient = void 0;
|
|
4
|
-
const NetworkRpc_client_1 = require("
|
|
4
|
+
const NetworkRpc_client_1 = require("../generated/packages/trackerless-network/protos/NetworkRpc.client");
|
|
5
5
|
const NodeInfoRpcRemote_1 = require("./NodeInfoRpcRemote");
|
|
6
6
|
class NodeInfoClient {
|
|
7
7
|
ownPeerDescriptor;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeInfoClient.js","sourceRoot":"","sources":["../../src/NodeInfoClient.ts"],"names":[],"mappings":";;;AAGA,0GAAsG;AACtG,2DAAuD;AAEvD,MAAa,cAAc;IACN,iBAAiB,CAAgB;IACjC,eAAe,CAAiC;IAEjE,YAAY,iBAAiC,EAAE,eAAgD;QAC3F,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;QAC1C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAoB;QAC9B,MAAM,MAAM,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,qCAAiB,CAAC,CAAA;QAC3G,4FAA4F;QAC5F,sDAAsD;QACtD,OAAO,MAAM,CAAC,OAAO,EAAyB,CAAA;IAClD,CAAC;CAEJ;AAhBD,wCAgBC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { NodeInfoResponse } from '
|
|
2
|
-
import { INodeInfoRpc } from '
|
|
3
|
-
import { NetworkStack } from '
|
|
1
|
+
import { NodeInfoResponse } from '../generated/packages/trackerless-network/protos/NetworkRpc';
|
|
2
|
+
import { INodeInfoRpc } from '../generated/packages/trackerless-network/protos/NetworkRpc.server';
|
|
3
|
+
import { NetworkStack } from './NetworkStack';
|
|
4
4
|
import { ListeningRpcCommunicator } from '@streamr/dht';
|
|
5
5
|
export declare const NODE_INFO_RPC_SERVICE_ID = "system/node-info-rpc";
|
|
6
6
|
export declare class NodeInfoRpcLocal implements INodeInfoRpc {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NodeInfoRpcLocal = exports.NODE_INFO_RPC_SERVICE_ID = void 0;
|
|
4
|
-
const NetworkRpc_1 = require("
|
|
4
|
+
const NetworkRpc_1 = require("../generated/packages/trackerless-network/protos/NetworkRpc");
|
|
5
5
|
exports.NODE_INFO_RPC_SERVICE_ID = 'system/node-info-rpc';
|
|
6
6
|
class NodeInfoRpcLocal {
|
|
7
7
|
stack;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeInfoRpcLocal.js","sourceRoot":"","sources":["../../src/NodeInfoRpcLocal.ts"],"names":[],"mappings":";;;AAAA,4FAA+G;AAKlG,QAAA,wBAAwB,GAAG,sBAAsB,CAAA;AAE9D,MAAa,gBAAgB;IAER,KAAK,CAAc;IACnB,eAAe,CAA0B;IAE1D,YAAY,KAAmB,EAAE,eAAyC;QACtE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,IAAI,CAAC,4BAA4B,EAAE,CAAA;IACvC,CAAC;IAEO,4BAA4B;QAChC,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,4BAAe,EAAE,6BAAgB,EAAE,SAAS,EAC/E,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAA;IACtC,CAAC;CAEJ;AApBD,4CAoBC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { NodeInfoResponse } from '../generated/packages/trackerless-network/protos/NetworkRpc';
|
|
2
|
+
import { NodeInfoRpcClient } from '../generated/packages/trackerless-network/protos/NetworkRpc.client';
|
|
3
|
+
import { RpcRemote } from '@streamr/dht';
|
|
4
|
+
export declare class NodeInfoRpcRemote extends RpcRemote<NodeInfoRpcClient> {
|
|
5
|
+
getInfo(): Promise<NodeInfoResponse>;
|
|
6
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeInfoRpcRemote.js","sourceRoot":"","sources":["../../src/NodeInfoRpcRemote.ts"],"names":[],"mappings":";;;AAEA,sCAAwC;AAExC,MAAa,iBAAkB,SAAQ,eAA4B;IAE/D,KAAK,CAAC,OAAO;QACT,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAA;IACjE,CAAC;CAEJ;AAND,8CAMC"}
|
package/dist/src/{logic/StreamPartNetworkSplitAvoidance.d.ts → StreamPartNetworkSplitAvoidance.d.ts}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DhtAddress, PeerDescriptor } from '@streamr/dht';
|
|
2
|
-
import { DiscoveryLayerNode } from './DiscoveryLayerNode';
|
|
2
|
+
import { DiscoveryLayerNode } from './discovery-layer/DiscoveryLayerNode';
|
|
3
3
|
export declare const MIN_NEIGHBOR_COUNT = 4;
|
|
4
4
|
export interface StreamPartNetworkSplitAvoidanceOptions {
|
|
5
5
|
discoveryLayerNode: DiscoveryLayerNode;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamPartNetworkSplitAvoidance.js","sourceRoot":"","sources":["../../src/StreamPartNetworkSplitAvoidance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { PeerDescriptorStoreManager } from './PeerDescriptorStoreManager';
|
|
2
|
-
import { DiscoveryLayerNode } from './DiscoveryLayerNode';
|
|
1
|
+
import { PeerDescriptorStoreManager } from './control-layer/PeerDescriptorStoreManager';
|
|
2
|
+
import { DiscoveryLayerNode } from './discovery-layer/DiscoveryLayerNode';
|
|
3
3
|
export declare class StreamPartReconnect {
|
|
4
4
|
private abortController?;
|
|
5
5
|
private readonly discoveryLayerNode;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.StreamPartReconnect = void 0;
|
|
4
4
|
const utils_1 = require("@streamr/utils");
|
|
5
|
-
const PeerDescriptorStoreManager_1 = require("./PeerDescriptorStoreManager");
|
|
5
|
+
const PeerDescriptorStoreManager_1 = require("./control-layer/PeerDescriptorStoreManager");
|
|
6
6
|
const DEFAULT_RECONNECT_INTERVAL = 30 * 1000;
|
|
7
7
|
class StreamPartReconnect {
|
|
8
8
|
abortController;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamPartReconnect.js","sourceRoot":"","sources":["../../src/StreamPartReconnect.ts"],"names":[],"mappings":";;;AAAA,0CAAmD;AACnD,2FAAuG;AAGvG,MAAM,0BAA0B,GAAG,EAAE,GAAG,IAAI,CAAA;AAC5C,MAAa,mBAAmB;IACpB,eAAe,CAAkB;IACxB,kBAAkB,CAAoB;IACtC,0BAA0B,CAA4B;IAEvE,YAAY,kBAAsC,EAAE,0BAAsD;QACtG,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;QAC5C,IAAI,CAAC,0BAA0B,GAAG,0BAA0B,CAAA;IAChE,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAO,GAAG,0BAA0B;QAChD,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAC5C,MAAM,IAAA,0BAAkB,EAAC,KAAK,IAAI,EAAE;YAChC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,UAAU,EAAE,CAAA;YACtE,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;YAClD,4DAA4D;YAC5D,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,EAAE,IAAI,WAAW,CAAC,MAAM,GAAG,2CAAc,EAAE,CAAC;gBAC9F,MAAM,IAAI,CAAC,0BAA0B,CAAC,qBAAqB,EAAE,CAAA;YACjE,CAAC;YACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC,eAAgB,CAAC,KAAK,EAAE,CAAA;YACjC,CAAC;QACL,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;IAClD,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAA;IAC9E,CAAC;IAED,OAAO;QACH,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,CAAA;IACjC,CAAC;CACJ;AAhCD,kDAgCC"}
|
|
@@ -2,9 +2,10 @@ import { ConnectionLocker, DhtAddress, ITransport, ListeningRpcCommunicator, Pee
|
|
|
2
2
|
import { StreamPartID } from '@streamr/utils';
|
|
3
3
|
import { EventEmitter } from 'eventemitter3';
|
|
4
4
|
import { StreamMessage } from '../../generated/packages/trackerless-network/protos/NetworkRpc';
|
|
5
|
-
import {
|
|
5
|
+
import { ContentDeliveryRpcRemote } from './ContentDeliveryRpcRemote';
|
|
6
|
+
import { DiscoveryLayerNode } from '../discovery-layer/DiscoveryLayerNode';
|
|
6
7
|
import { NodeList } from './NodeList';
|
|
7
|
-
import { Inspector } from './
|
|
8
|
+
import { Inspector } from './inspection/Inspector';
|
|
8
9
|
import { Handshaker } from './neighbor-discovery/Handshaker';
|
|
9
10
|
import { NeighborFinder } from './neighbor-discovery/NeighborFinder';
|
|
10
11
|
import { NeighborUpdateManager } from './neighbor-discovery/NeighborUpdateManager';
|
|
@@ -12,10 +13,11 @@ import { Propagation } from './propagation/Propagation';
|
|
|
12
13
|
import { ProxyConnectionRpcLocal } from './proxy/ProxyConnectionRpcLocal';
|
|
13
14
|
import { TemporaryConnectionRpcLocal } from './temporary-connection/TemporaryConnectionRpcLocal';
|
|
14
15
|
import { ContentDeliveryLayerNeighborInfo } from '../types';
|
|
15
|
-
import { PlumTreeManager } from './
|
|
16
|
+
import { PlumTreeManager } from './plum-tree/PlumTreeManager';
|
|
16
17
|
export interface Events {
|
|
17
18
|
message: (message: StreamMessage) => void;
|
|
18
19
|
neighborConnected: (nodeId: DhtAddress) => void;
|
|
20
|
+
neighborListUpdated: (neighbors: ContentDeliveryRpcRemote[]) => void;
|
|
19
21
|
entryPointLeaveDetected: () => void;
|
|
20
22
|
}
|
|
21
23
|
export interface StrictContentDeliveryLayerNodeOptions {
|
|
@@ -63,6 +65,7 @@ export declare class ContentDeliveryLayerNode extends EventEmitter<Events> {
|
|
|
63
65
|
private onRandomContactAdded;
|
|
64
66
|
private onRandomContactRemoved;
|
|
65
67
|
private onNodeDisconnected;
|
|
68
|
+
private onStatisticsUpdated;
|
|
66
69
|
hasProxyConnection(nodeId: DhtAddress): boolean;
|
|
67
70
|
stop(): void;
|
|
68
71
|
broadcast(msg: StreamMessage, previousNode?: DhtAddress): void;
|
|
@@ -8,7 +8,7 @@ const NetworkRpc_1 = require("../../generated/packages/trackerless-network/proto
|
|
|
8
8
|
const NetworkRpc_client_1 = require("../../generated/packages/trackerless-network/protos/NetworkRpc.client");
|
|
9
9
|
const ContentDeliveryRpcLocal_1 = require("./ContentDeliveryRpcLocal");
|
|
10
10
|
const ContentDeliveryRpcRemote_1 = require("./ContentDeliveryRpcRemote");
|
|
11
|
-
const utils_2 = require("
|
|
11
|
+
const utils_2 = require("../utils");
|
|
12
12
|
exports.DEFAULT_NODE_VIEW_SIZE = 20;
|
|
13
13
|
exports.DEFAULT_NEIGHBOR_TARGET_COUNT = 4;
|
|
14
14
|
exports.DEFAULT_ACCEPT_PROXY_CONNECTIONS = false;
|
|
@@ -67,6 +67,7 @@ class ContentDeliveryLayerNode extends eventemitter3_1.EventEmitter {
|
|
|
67
67
|
(0, utils_1.addManagedEventListener)(this.options.discoveryLayerNode, 'ringContactAdded', () => this.onRingContactsUpdated(), this.abortController.signal);
|
|
68
68
|
(0, utils_1.addManagedEventListener)(this.options.discoveryLayerNode, 'ringContactRemoved', () => this.onRingContactsUpdated(), this.abortController.signal);
|
|
69
69
|
(0, utils_1.addManagedEventListener)(this.options.transport, 'disconnected', (peerDescriptor) => this.onNodeDisconnected(peerDescriptor), this.abortController.signal);
|
|
70
|
+
(0, utils_1.addManagedEventListener)(this.options.transport, 'statisticsUpdated', (peerDescriptor, statistics) => this.onStatisticsUpdated(peerDescriptor, statistics), this.abortController.signal);
|
|
70
71
|
(0, utils_1.addManagedEventListener)(this.options.neighbors, 'nodeAdded', (id, remote) => {
|
|
71
72
|
this.options.propagation.onNeighborJoined(id);
|
|
72
73
|
this.options.connectionLocker.weakLockConnection((0, dht_1.toNodeId)(remote.getPeerDescriptor()), this.options.streamPartId);
|
|
@@ -75,6 +76,7 @@ class ContentDeliveryLayerNode extends eventemitter3_1.EventEmitter {
|
|
|
75
76
|
(0, utils_1.addManagedEventListener)(this.options.neighbors, 'nodeRemoved', (_id, remote) => {
|
|
76
77
|
this.options.connectionLocker.weakUnlockConnection((0, dht_1.toNodeId)(remote.getPeerDescriptor()), this.options.streamPartId);
|
|
77
78
|
}, this.abortController.signal);
|
|
79
|
+
(0, utils_1.addManagedEventListener)(this.options.neighbors, 'nodeListUpdated', () => this.emit('neighborListUpdated', this.options.neighbors.getAll()), this.abortController.signal);
|
|
78
80
|
if (this.options.proxyConnectionRpcLocal !== undefined) {
|
|
79
81
|
(0, utils_1.addManagedEventListener)(this.options.proxyConnectionRpcLocal, 'newConnection', (id) => this.options.propagation.onNeighborJoined(id), this.abortController.signal);
|
|
80
82
|
}
|
|
@@ -153,6 +155,11 @@ class ContentDeliveryLayerNode extends eventemitter3_1.EventEmitter {
|
|
|
153
155
|
this.options.temporaryConnectionRpcLocal.removeNode(nodeId);
|
|
154
156
|
}
|
|
155
157
|
}
|
|
158
|
+
onStatisticsUpdated(peerDescriptor, statistics) {
|
|
159
|
+
if (this.options.neighbors.has((0, dht_1.toNodeId)(peerDescriptor))) {
|
|
160
|
+
this.options.neighbors.get((0, dht_1.toNodeId)(peerDescriptor)).setStatistics(statistics);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
156
163
|
hasProxyConnection(nodeId) {
|
|
157
164
|
if (this.options.proxyConnectionRpcLocal) {
|
|
158
165
|
return this.options.proxyConnectionRpcLocal.hasConnection(nodeId);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContentDeliveryLayerNode.js","sourceRoot":"","sources":["../../../src/content-delivery-layer/ContentDeliveryLayerNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { StreamPartID } from '@streamr/utils';
|
|
|
4
4
|
import { Empty } from '../../generated/google/protobuf/empty';
|
|
5
5
|
import { LeaveStreamPartNotice, MessageID, MessageRef, StreamMessage } from '../../generated/packages/trackerless-network/protos/NetworkRpc';
|
|
6
6
|
import { IContentDeliveryRpc } from '../../generated/packages/trackerless-network/protos/NetworkRpc.server';
|
|
7
|
-
import { PlumTreeManager } from './
|
|
7
|
+
import { PlumTreeManager } from './plum-tree/PlumTreeManager';
|
|
8
8
|
export interface ContentDeliveryRpcLocalOptions {
|
|
9
9
|
localPeerDescriptor: PeerDescriptor;
|
|
10
10
|
streamPartId: StreamPartID;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContentDeliveryRpcLocal.js","sourceRoot":"","sources":["../../../src/content-delivery-layer/ContentDeliveryRpcLocal.ts"],"names":[],"mappings":";;;AACA,sCAA6G;AAE7G,iEAA6D;AAqB7D,MAAa,uBAAuB;IAEf,OAAO,CAAgC;IAExD,YAAY,OAAuC;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAAsB,EAAE,OAA0B;QACtE,MAAM,YAAY,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAC1E,MAAM,cAAc,GAAG,IAAA,cAAQ,EAAC,YAAY,CAAC,CAAA;QAC7C,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,SAAU,CAAC,CAAA;QAClE,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAC7C,IAAI,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,SAAU,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACrF,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;YACnD,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,SAAU,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC5F,uEAAuE;YACvE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;QACnE,CAAC;aAAM,CAAC;YACJ,2DAA2D;YAC3D,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,SAAU,CAAC,cAAc,CAAC,CAAA;QACrG,CAAC;QACD,OAAO,aAAK,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,OAA8B,EAAE,OAA0B;QAClF,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YACrD,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;YAClF,MAAM,YAAY,GAAG,IAAA,cAAQ,EAAC,oBAAoB,CAAC,CAAA;YACnD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;QAClE,CAAC;QACD,OAAO,aAAK,CAAA;IAChB,CAAC;CACJ;AAlCD,0DAkCC"}
|
|
@@ -1,11 +1,19 @@
|
|
|
1
|
-
import { RpcRemote } from '@streamr/dht';
|
|
1
|
+
import { ConnectionStatistics, RpcRemote } from '@streamr/dht';
|
|
2
2
|
import { StreamPartID } from '@streamr/utils';
|
|
3
3
|
import { StreamMessage } from '../../generated/packages/trackerless-network/protos/NetworkRpc';
|
|
4
4
|
import { ContentDeliveryRpcClient } from '../../generated/packages/trackerless-network/protos/NetworkRpc.client';
|
|
5
|
+
import { EventEmitter } from 'eventemitter3';
|
|
6
|
+
export interface ContentDeliveryRpcRemoteEvents {
|
|
7
|
+
statisticsChanged: (statistics: ConnectionStatistics) => void;
|
|
8
|
+
}
|
|
5
9
|
export declare class ContentDeliveryRpcRemote extends RpcRemote<ContentDeliveryRpcClient> {
|
|
6
10
|
private rtt?;
|
|
11
|
+
private statistics;
|
|
12
|
+
readonly emitter: EventEmitter<ContentDeliveryRpcRemoteEvents>;
|
|
7
13
|
sendStreamMessage(msg: StreamMessage, doNotBufferWhileConnecting?: boolean): Promise<void>;
|
|
8
14
|
leaveStreamPartNotice(streamPartId: StreamPartID, isLocalNodeEntryPoint: boolean): void;
|
|
9
15
|
setRtt(rtt: number): void;
|
|
10
16
|
getRtt(): number | undefined;
|
|
17
|
+
setStatistics(statistics: ConnectionStatistics): void;
|
|
18
|
+
getStatistics(): ConnectionStatistics;
|
|
11
19
|
}
|
|
@@ -3,9 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ContentDeliveryRpcRemote = void 0;
|
|
4
4
|
const dht_1 = require("@streamr/dht");
|
|
5
5
|
const utils_1 = require("@streamr/utils");
|
|
6
|
+
const eventemitter3_1 = require("eventemitter3");
|
|
6
7
|
const logger = new utils_1.Logger(module);
|
|
7
8
|
class ContentDeliveryRpcRemote extends dht_1.RpcRemote {
|
|
8
9
|
rtt;
|
|
10
|
+
statistics = {
|
|
11
|
+
uploadRateBytesPerSecond: 0,
|
|
12
|
+
downloadRateBytesPerSecond: 0,
|
|
13
|
+
bufferedAmount: 0
|
|
14
|
+
};
|
|
15
|
+
emitter = new eventemitter3_1.EventEmitter();
|
|
9
16
|
async sendStreamMessage(msg, doNotBufferWhileConnecting) {
|
|
10
17
|
const options = this.formDhtRpcOptions({
|
|
11
18
|
notification: true,
|
|
@@ -33,6 +40,15 @@ class ContentDeliveryRpcRemote extends dht_1.RpcRemote {
|
|
|
33
40
|
getRtt() {
|
|
34
41
|
return this.rtt;
|
|
35
42
|
}
|
|
43
|
+
setStatistics(statistics) {
|
|
44
|
+
if (statistics != this.statistics) {
|
|
45
|
+
this.statistics = statistics;
|
|
46
|
+
this.emitter.emit('statisticsChanged', statistics);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
getStatistics() {
|
|
50
|
+
return this.statistics;
|
|
51
|
+
}
|
|
36
52
|
}
|
|
37
53
|
exports.ContentDeliveryRpcRemote = ContentDeliveryRpcRemote;
|
|
38
54
|
//# sourceMappingURL=ContentDeliveryRpcRemote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContentDeliveryRpcRemote.js","sourceRoot":"","sources":["../../../src/content-delivery-layer/ContentDeliveryRpcRemote.ts"],"names":[],"mappings":";;;AAAA,sCAA8D;AAC9D,0CAAqD;AAMrD,iDAA4C;AAC5C,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAMjC,MAAa,wBAAyB,SAAQ,eAAmC;IAErE,GAAG,CAAS;IACZ,UAAU,GAAyB;QACvC,wBAAwB,EAAE,CAAC;QAC3B,0BAA0B,EAAE,CAAC;QAC7B,cAAc,EAAE,CAAC;KACpB,CAAA;IACe,OAAO,GAAiD,IAAI,4BAAY,EAAkC,CAAA;IAE1H,KAAK,CAAC,iBAAiB,CAAC,GAAkB,EAAE,0BAAoC;QAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,YAAY,EAAE,IAAI;YAClB,0BAA0B;SAC7B,CAAC,CAAA;QACF,IAAI,CAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACxD,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAC/C,CAAC,CAAC,CAAA;IACN,CAAC;IAED,qBAAqB,CAAC,YAA0B,EAAE,qBAA8B;QAC5E,MAAM,YAAY,GAA0B;YACxC,YAAY;YACZ,YAAY,EAAE,qBAAqB;SACtC,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,YAAY,EAAE,IAAI;SACrB,CAAC,CAAA;QACF,IAAI,CAAC,SAAS,EAAE,CAAC,qBAAqB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACrE,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;QACxD,CAAC,CAAC,CAAA;IACN,CAAC;IAED,MAAM,CAAC,GAAW;QACd,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAClB,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,GAAG,CAAA;IACnB,CAAC;IAED,aAAa,CAAC,UAAgC;QAC1C,IAAI,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;YAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAA;QACtD,CAAC;IACL,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,UAAU,CAAA;IAC1B,CAAC;CACJ;AAnDD,4DAmDC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DuplicateMessageDetector.js","sourceRoot":"","sources":["../../../src/content-delivery-layer/DuplicateMessageDetector.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,12 +4,14 @@ import { EventEmitter } from 'eventemitter3';
|
|
|
4
4
|
export interface Events {
|
|
5
5
|
nodeAdded: (id: DhtAddress, remote: ContentDeliveryRpcRemote) => void;
|
|
6
6
|
nodeRemoved: (id: DhtAddress, remote: ContentDeliveryRpcRemote) => void;
|
|
7
|
+
nodeListUpdated: () => void;
|
|
7
8
|
}
|
|
8
9
|
export declare class NodeList extends EventEmitter<Events> {
|
|
9
10
|
private readonly nodes;
|
|
10
11
|
private readonly limit;
|
|
11
12
|
private ownId;
|
|
12
13
|
constructor(ownId: DhtAddress, limit: number);
|
|
14
|
+
private onStatisticsChanged;
|
|
13
15
|
add(remote: ContentDeliveryRpcRemote): void;
|
|
14
16
|
remove(nodeId: DhtAddress): void;
|
|
15
17
|
has(nodeId: DhtAddress): boolean;
|
|
@@ -26,21 +26,28 @@ class NodeList extends eventemitter3_1.EventEmitter {
|
|
|
26
26
|
this.limit = limit;
|
|
27
27
|
this.ownId = ownId;
|
|
28
28
|
}
|
|
29
|
+
onStatisticsChanged = () => {
|
|
30
|
+
this.emit('nodeListUpdated');
|
|
31
|
+
};
|
|
29
32
|
add(remote) {
|
|
30
33
|
const nodeId = (0, dht_1.toNodeId)(remote.getPeerDescriptor());
|
|
31
34
|
if ((this.ownId !== nodeId) && (this.nodes.size < this.limit)) {
|
|
35
|
+
remote.emitter.on('statisticsChanged', this.onStatisticsChanged);
|
|
32
36
|
const isExistingNode = this.nodes.has(nodeId);
|
|
33
37
|
this.nodes.set(nodeId, remote);
|
|
34
38
|
if (!isExistingNode) {
|
|
35
39
|
this.emit('nodeAdded', nodeId, remote);
|
|
40
|
+
this.emit('nodeListUpdated');
|
|
36
41
|
}
|
|
37
42
|
}
|
|
38
43
|
}
|
|
39
44
|
remove(nodeId) {
|
|
40
45
|
if (this.nodes.has(nodeId)) {
|
|
41
46
|
const remote = this.nodes.get(nodeId);
|
|
47
|
+
remote.emitter.off('statisticsChanged', this.onStatisticsChanged);
|
|
42
48
|
this.nodes.delete(nodeId);
|
|
43
49
|
this.emit('nodeRemoved', nodeId, remote);
|
|
50
|
+
this.emit('nodeListUpdated');
|
|
44
51
|
}
|
|
45
52
|
}
|
|
46
53
|
has(nodeId) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeList.js","sourceRoot":"","sources":["../../../src/content-delivery-layer/NodeList.ts"],"names":[],"mappings":"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"}
|