@streamr/trackerless-network 103.1.2 → 103.2.0-experiment.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/dist/exports.cjs +4489 -0
  2. package/dist/exports.cjs.map +1 -0
  3. package/dist/exports.d.ts +1391 -0
  4. package/dist/exports.js +4477 -0
  5. package/dist/exports.js.map +1 -0
  6. package/package.json +25 -18
  7. package/dist/generated/google/protobuf/any.d.ts +0 -180
  8. package/dist/generated/google/protobuf/any.js +0 -155
  9. package/dist/generated/google/protobuf/any.js.map +0 -1
  10. package/dist/generated/google/protobuf/empty.d.ts +0 -31
  11. package/dist/generated/google/protobuf/empty.js +0 -45
  12. package/dist/generated/google/protobuf/empty.js.map +0 -1
  13. package/dist/generated/google/protobuf/timestamp.d.ts +0 -156
  14. package/dist/generated/google/protobuf/timestamp.js +0 -136
  15. package/dist/generated/google/protobuf/timestamp.js.map +0 -1
  16. package/dist/generated/packages/dht/protos/DhtRpc.client.d.ts +0 -371
  17. package/dist/generated/packages/dht/protos/DhtRpc.client.js +0 -292
  18. package/dist/generated/packages/dht/protos/DhtRpc.client.js.map +0 -1
  19. package/dist/generated/packages/dht/protos/DhtRpc.d.ts +0 -1031
  20. package/dist/generated/packages/dht/protos/DhtRpc.js +0 -702
  21. package/dist/generated/packages/dht/protos/DhtRpc.js.map +0 -1
  22. package/dist/generated/packages/dht/protos/DhtRpc.server.d.ts +0 -168
  23. package/dist/generated/packages/dht/protos/DhtRpc.server.js +0 -3
  24. package/dist/generated/packages/dht/protos/DhtRpc.server.js.map +0 -1
  25. package/dist/generated/packages/proto-rpc/protos/ProtoRpc.d.ts +0 -87
  26. package/dist/generated/packages/proto-rpc/protos/ProtoRpc.js +0 -66
  27. package/dist/generated/packages/proto-rpc/protos/ProtoRpc.js.map +0 -1
  28. package/dist/generated/packages/trackerless-network/protos/NetworkRpc.client.d.ts +0 -237
  29. package/dist/generated/packages/trackerless-network/protos/NetworkRpc.client.js +0 -190
  30. package/dist/generated/packages/trackerless-network/protos/NetworkRpc.client.js.map +0 -1
  31. package/dist/generated/packages/trackerless-network/protos/NetworkRpc.d.ts +0 -687
  32. package/dist/generated/packages/trackerless-network/protos/NetworkRpc.js +0 -479
  33. package/dist/generated/packages/trackerless-network/protos/NetworkRpc.js.map +0 -1
  34. package/dist/generated/packages/trackerless-network/protos/NetworkRpc.server.d.ts +0 -102
  35. package/dist/generated/packages/trackerless-network/protos/NetworkRpc.server.js +0 -3
  36. package/dist/generated/packages/trackerless-network/protos/NetworkRpc.server.js.map +0 -1
  37. package/dist/package.json +0 -56
  38. package/dist/src/ContentDeliveryManager.d.ts +0 -82
  39. package/dist/src/ContentDeliveryManager.js +0 -325
  40. package/dist/src/ContentDeliveryManager.js.map +0 -1
  41. package/dist/src/NetworkNode.d.ts +0 -44
  42. package/dist/src/NetworkNode.js +0 -98
  43. package/dist/src/NetworkNode.js.map +0 -1
  44. package/dist/src/NetworkStack.d.ts +0 -36
  45. package/dist/src/NetworkStack.js +0 -165
  46. package/dist/src/NetworkStack.js.map +0 -1
  47. package/dist/src/NodeInfoClient.d.ts +0 -9
  48. package/dist/src/NodeInfoClient.js +0 -21
  49. package/dist/src/NodeInfoClient.js.map +0 -1
  50. package/dist/src/NodeInfoRpcLocal.d.ts +0 -12
  51. package/dist/src/NodeInfoRpcLocal.js +0 -22
  52. package/dist/src/NodeInfoRpcLocal.js.map +0 -1
  53. package/dist/src/NodeInfoRpcRemote.d.ts +0 -6
  54. package/dist/src/NodeInfoRpcRemote.js +0 -11
  55. package/dist/src/NodeInfoRpcRemote.js.map +0 -1
  56. package/dist/src/StreamPartNetworkSplitAvoidance.d.ts +0 -18
  57. package/dist/src/StreamPartNetworkSplitAvoidance.js +0 -74
  58. package/dist/src/StreamPartNetworkSplitAvoidance.js.map +0 -1
  59. package/dist/src/StreamPartReconnect.d.ts +0 -11
  60. package/dist/src/StreamPartReconnect.js +0 -37
  61. package/dist/src/StreamPartReconnect.js.map +0 -1
  62. package/dist/src/content-delivery-layer/ContentDeliveryLayerNode.d.ts +0 -78
  63. package/dist/src/content-delivery-layer/ContentDeliveryLayerNode.js +0 -240
  64. package/dist/src/content-delivery-layer/ContentDeliveryLayerNode.js.map +0 -1
  65. package/dist/src/content-delivery-layer/ContentDeliveryRpcLocal.d.ts +0 -23
  66. package/dist/src/content-delivery-layer/ContentDeliveryRpcLocal.js +0 -40
  67. package/dist/src/content-delivery-layer/ContentDeliveryRpcLocal.js.map +0 -1
  68. package/dist/src/content-delivery-layer/ContentDeliveryRpcRemote.d.ts +0 -11
  69. package/dist/src/content-delivery-layer/ContentDeliveryRpcRemote.js +0 -38
  70. package/dist/src/content-delivery-layer/ContentDeliveryRpcRemote.js.map +0 -1
  71. package/dist/src/content-delivery-layer/DuplicateMessageDetector.d.ts +0 -55
  72. package/dist/src/content-delivery-layer/DuplicateMessageDetector.js +0 -159
  73. package/dist/src/content-delivery-layer/DuplicateMessageDetector.js.map +0 -1
  74. package/dist/src/content-delivery-layer/NodeList.d.ts +0 -26
  75. package/dist/src/content-delivery-layer/NodeList.js +0 -93
  76. package/dist/src/content-delivery-layer/NodeList.js.map +0 -1
  77. package/dist/src/content-delivery-layer/createContentDeliveryLayerNode.d.ts +0 -14
  78. package/dist/src/content-delivery-layer/createContentDeliveryLayerNode.js +0 -129
  79. package/dist/src/content-delivery-layer/createContentDeliveryLayerNode.js.map +0 -1
  80. package/dist/src/content-delivery-layer/formStreamPartDeliveryServiceId.d.ts +0 -3
  81. package/dist/src/content-delivery-layer/formStreamPartDeliveryServiceId.js +0 -9
  82. package/dist/src/content-delivery-layer/formStreamPartDeliveryServiceId.js.map +0 -1
  83. package/dist/src/content-delivery-layer/inspection/InspectSession.d.ts +0 -19
  84. package/dist/src/content-delivery-layer/inspection/InspectSession.js +0 -43
  85. package/dist/src/content-delivery-layer/inspection/InspectSession.js.map +0 -1
  86. package/dist/src/content-delivery-layer/inspection/Inspector.d.ts +0 -30
  87. package/dist/src/content-delivery-layer/inspection/Inspector.js +0 -75
  88. package/dist/src/content-delivery-layer/inspection/Inspector.js.map +0 -1
  89. package/dist/src/content-delivery-layer/neighbor-discovery/HandshakeRpcLocal.d.ts +0 -29
  90. package/dist/src/content-delivery-layer/neighbor-discovery/HandshakeRpcLocal.js +0 -106
  91. package/dist/src/content-delivery-layer/neighbor-discovery/HandshakeRpcLocal.js.map +0 -1
  92. package/dist/src/content-delivery-layer/neighbor-discovery/HandshakeRpcRemote.d.ts +0 -14
  93. package/dist/src/content-delivery-layer/neighbor-discovery/HandshakeRpcRemote.js +0 -55
  94. package/dist/src/content-delivery-layer/neighbor-discovery/HandshakeRpcRemote.js.map +0 -1
  95. package/dist/src/content-delivery-layer/neighbor-discovery/Handshaker.d.ts +0 -32
  96. package/dist/src/content-delivery-layer/neighbor-discovery/Handshaker.js +0 -149
  97. package/dist/src/content-delivery-layer/neighbor-discovery/Handshaker.js.map +0 -1
  98. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborFinder.d.ts +0 -22
  99. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborFinder.js +0 -64
  100. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborFinder.js.map +0 -1
  101. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborUpdateManager.d.ts +0 -27
  102. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborUpdateManager.js +0 -47
  103. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborUpdateManager.js.map +0 -1
  104. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborUpdateRpcLocal.d.ts +0 -25
  105. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborUpdateRpcLocal.js +0 -52
  106. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborUpdateRpcLocal.js.map +0 -1
  107. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborUpdateRpcRemote.d.ts +0 -11
  108. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborUpdateRpcRemote.js +0 -31
  109. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborUpdateRpcRemote.js.map +0 -1
  110. package/dist/src/content-delivery-layer/plumtree/PausedNeighbors.d.ts +0 -12
  111. package/dist/src/content-delivery-layer/plumtree/PausedNeighbors.js +0 -50
  112. package/dist/src/content-delivery-layer/plumtree/PausedNeighbors.js.map +0 -1
  113. package/dist/src/content-delivery-layer/plumtree/PlumtreeManager.d.ts +0 -37
  114. package/dist/src/content-delivery-layer/plumtree/PlumtreeManager.js +0 -141
  115. package/dist/src/content-delivery-layer/plumtree/PlumtreeManager.js.map +0 -1
  116. package/dist/src/content-delivery-layer/plumtree/PlumtreeRpcLocal.d.ts +0 -20
  117. package/dist/src/content-delivery-layer/plumtree/PlumtreeRpcLocal.js +0 -37
  118. package/dist/src/content-delivery-layer/plumtree/PlumtreeRpcLocal.js.map +0 -1
  119. package/dist/src/content-delivery-layer/plumtree/PlumtreeRpcRemote.d.ts +0 -8
  120. package/dist/src/content-delivery-layer/plumtree/PlumtreeRpcRemote.js +0 -26
  121. package/dist/src/content-delivery-layer/plumtree/PlumtreeRpcRemote.js.map +0 -1
  122. package/dist/src/content-delivery-layer/propagation/FifoMapWithTTL.d.ts +0 -29
  123. package/dist/src/content-delivery-layer/propagation/FifoMapWithTTL.js +0 -93
  124. package/dist/src/content-delivery-layer/propagation/FifoMapWithTTL.js.map +0 -1
  125. package/dist/src/content-delivery-layer/propagation/Propagation.d.ts +0 -35
  126. package/dist/src/content-delivery-layer/propagation/Propagation.js +0 -68
  127. package/dist/src/content-delivery-layer/propagation/Propagation.js.map +0 -1
  128. package/dist/src/content-delivery-layer/propagation/PropagationTaskStore.d.ts +0 -22
  129. package/dist/src/content-delivery-layer/propagation/PropagationTaskStore.js +0 -33
  130. package/dist/src/content-delivery-layer/propagation/PropagationTaskStore.js.map +0 -1
  131. package/dist/src/content-delivery-layer/proxy/ProxyClient.d.ts +0 -46
  132. package/dist/src/content-delivery-layer/proxy/ProxyClient.js +0 -214
  133. package/dist/src/content-delivery-layer/proxy/ProxyClient.js.map +0 -1
  134. package/dist/src/content-delivery-layer/proxy/ProxyConnectionRpcLocal.d.ts +0 -34
  135. package/dist/src/content-delivery-layer/proxy/ProxyConnectionRpcLocal.js +0 -72
  136. package/dist/src/content-delivery-layer/proxy/ProxyConnectionRpcLocal.js.map +0 -1
  137. package/dist/src/content-delivery-layer/proxy/ProxyConnectionRpcRemote.d.ts +0 -7
  138. package/dist/src/content-delivery-layer/proxy/ProxyConnectionRpcRemote.js +0 -27
  139. package/dist/src/content-delivery-layer/proxy/ProxyConnectionRpcRemote.js.map +0 -1
  140. package/dist/src/content-delivery-layer/temporary-connection/TemporaryConnectionRpcLocal.d.ts +0 -26
  141. package/dist/src/content-delivery-layer/temporary-connection/TemporaryConnectionRpcLocal.js +0 -45
  142. package/dist/src/content-delivery-layer/temporary-connection/TemporaryConnectionRpcLocal.js.map +0 -1
  143. package/dist/src/content-delivery-layer/temporary-connection/TemporaryConnectionRpcRemote.d.ts +0 -6
  144. package/dist/src/content-delivery-layer/temporary-connection/TemporaryConnectionRpcRemote.js +0 -31
  145. package/dist/src/content-delivery-layer/temporary-connection/TemporaryConnectionRpcRemote.js.map +0 -1
  146. package/dist/src/control-layer/ControlLayerNode.d.ts +0 -16
  147. package/dist/src/control-layer/ControlLayerNode.js +0 -3
  148. package/dist/src/control-layer/ControlLayerNode.js.map +0 -1
  149. package/dist/src/control-layer/ExternalNetworkRpc.d.ts +0 -16
  150. package/dist/src/control-layer/ExternalNetworkRpc.js +0 -23
  151. package/dist/src/control-layer/ExternalNetworkRpc.js.map +0 -1
  152. package/dist/src/control-layer/PeerDescriptorStoreManager.d.ts +0 -28
  153. package/dist/src/control-layer/PeerDescriptorStoreManager.js +0 -78
  154. package/dist/src/control-layer/PeerDescriptorStoreManager.js.map +0 -1
  155. package/dist/src/discovery-layer/DiscoveryLayerNode.d.ts +0 -28
  156. package/dist/src/discovery-layer/DiscoveryLayerNode.js +0 -3
  157. package/dist/src/discovery-layer/DiscoveryLayerNode.js.map +0 -1
  158. package/dist/src/exports.d.ts +0 -6
  159. package/dist/src/exports.js +0 -24
  160. package/dist/src/exports.js.map +0 -1
  161. package/dist/src/types.d.ts +0 -6
  162. package/dist/src/types.js +0 -3
  163. package/dist/src/types.js.map +0 -1
  164. package/dist/src/utils.d.ts +0 -3
  165. package/dist/src/utils.js +0 -17
  166. package/dist/src/utils.js.map +0 -1
  167. package/dist/test/benchmark/first-message.d.ts +0 -1
  168. package/dist/test/benchmark/first-message.js +0 -139
  169. package/dist/test/benchmark/first-message.js.map +0 -1
  170. package/dist/test/utils/utils.d.ts +0 -15
  171. package/dist/test/utils/utils.js +0 -106
  172. package/dist/test/utils/utils.js.map +0 -1
package/dist/package.json DELETED
@@ -1,56 +0,0 @@
1
- {
2
- "name": "@streamr/trackerless-network",
3
- "version": "103.1.2",
4
- "description": "Minimal and extendable implementation of the Streamr Network node.",
5
- "repository": {
6
- "type": "git",
7
- "url": "git+https://github.com/streamr-dev/network-monorepo.git",
8
- "directory": "packages/trackerless-network"
9
- },
10
- "main": "dist/src/exports.js",
11
- "types": "dist/src/exports.d.ts",
12
- "files": [
13
- "dist",
14
- "!*.tsbuildinfo",
15
- "README.md",
16
- "LICENSE"
17
- ],
18
- "license": "STREAMR NETWORK OPEN SOURCE LICENSE",
19
- "author": "Streamr Network AG <contact@streamr.network>",
20
- "scripts": {
21
- "build": "tsc -b tsconfig.node.json",
22
- "build-browser": "webpack --mode=development --progress",
23
- "prebuild": "./proto.sh",
24
- "check": "tsc -p ./tsconfig.jest.json",
25
- "clean": "jest --clearCache || true; rm -rf dist *.tsbuildinfo node_modules/.cache || true",
26
- "coverage": "jest --coverage",
27
- "eslint": "eslint --cache --cache-location=node_modules/.cache/.eslintcache/ '*/**/*.{js,ts}'",
28
- "test": "npm run test-unit && npm run test-integration && npm run test-end-to-end",
29
- "test-browser": "karma start karma.config.js",
30
- "test-unit": "jest test/unit",
31
- "test-integration": "jest --bail test/integration",
32
- "test-end-to-end": "jest --bail test/end-to-end",
33
- "network": "ts-node bin/network",
34
- "run-joining-benchmark": "node --max-old-space-size=24288 dist/test/benchmark/first-message.js"
35
- },
36
- "dependencies": {
37
- "@protobuf-ts/runtime": "^2.8.2",
38
- "@protobuf-ts/runtime-rpc": "^2.8.2",
39
- "@streamr/dht": "103.1.2",
40
- "@streamr/proto-rpc": "103.1.2",
41
- "@streamr/utils": "103.1.2",
42
- "eventemitter3": "^5.0.0",
43
- "lodash": "^4.17.21",
44
- "ts-essentials": "^10.1.1",
45
- "uuid": "^11.1.0",
46
- "yallist": "^5.0.0"
47
- },
48
- "devDependencies": {
49
- "@streamr/browser-test-runner": "^0.0.1",
50
- "@streamr/test-utils": "103.1.2",
51
- "@types/lodash": "^4.17.20",
52
- "@types/yallist": "^5.0.0",
53
- "expect": "^30.0.5",
54
- "ts-node": "^10.9.2"
55
- }
56
- }
@@ -1,82 +0,0 @@
1
- import { ConnectionLocker, DhtAddress, ITransport, PeerDescriptor } from '@streamr/dht';
2
- import { MetricsContext, StreamPartID, UserID } from '@streamr/utils';
3
- import { EventEmitter } from 'eventemitter3';
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
- import { StreamPartNetworkSplitAvoidance } from './StreamPartNetworkSplitAvoidance';
9
- import { ProxyClient } from './content-delivery-layer/proxy/ProxyClient';
10
- import { StreamPartitionInfo } from './types';
11
- export type StreamPartDelivery = {
12
- broadcast: (msg: StreamMessage) => void;
13
- stop: () => Promise<void>;
14
- } & ({
15
- proxied: false;
16
- discoveryLayerNode: DiscoveryLayerNode;
17
- node: ContentDeliveryLayerNode;
18
- networkSplitAvoidance: StreamPartNetworkSplitAvoidance;
19
- getDiagnosticInfo: () => Record<string, unknown>;
20
- } | {
21
- proxied: true;
22
- client: ProxyClient;
23
- getDiagnosticInfo: () => Record<string, unknown>;
24
- });
25
- export interface Events {
26
- newMessage: (msg: StreamMessage) => void;
27
- }
28
- export interface ContentDeliveryManagerOptions {
29
- metricsContext?: MetricsContext;
30
- streamPartitionNeighborTargetCount?: number;
31
- streamPartitionMinPropagationTargets?: number;
32
- streamPartitionMaxPropagationBufferSize?: number;
33
- acceptProxyConnections?: boolean;
34
- rpcRequestTimeout?: number;
35
- neighborUpdateInterval?: number;
36
- doNotBufferWhileConnecting?: boolean;
37
- }
38
- type PlumtreeOptions = {
39
- enabled: true;
40
- maxPausedNeighbors?: number;
41
- } | {
42
- enabled: false;
43
- };
44
- export interface StreamPartDeliveryOptions {
45
- plumtreeOptimization?: PlumtreeOptions;
46
- }
47
- export declare const streamPartIdToDataKey: (streamPartId: StreamPartID) => DhtAddress;
48
- export declare class ContentDeliveryManager extends EventEmitter<Events> {
49
- private transport?;
50
- private connectionLocker?;
51
- private controlLayerNode?;
52
- private readonly metricsContext;
53
- private readonly metrics;
54
- private readonly options;
55
- private readonly streamParts;
56
- private readonly knownStreamPartEntryPoints;
57
- private started;
58
- private destroyed;
59
- constructor(options: ContentDeliveryManagerOptions);
60
- start(startedAndJoinedControlLayerNode: ControlLayerNode, transport: ITransport, connectionLocker: ConnectionLocker): Promise<void>;
61
- destroy(): Promise<void>;
62
- broadcast(msg: StreamMessage, streamPartDeliveryOptions?: StreamPartDeliveryOptions): void;
63
- leaveStreamPart(streamPartId: StreamPartID): Promise<void>;
64
- joinStreamPart(streamPartId: StreamPartID, streamPartDeliveryOptions?: StreamPartDeliveryOptions): void;
65
- private startLayersAndJoinDht;
66
- private createDiscoveryLayerNode;
67
- private createContentDeliveryLayerNode;
68
- setProxies(streamPartId: StreamPartID, nodes: PeerDescriptor[], direction: ProxyDirection, userId: UserID, connectionCount?: number): Promise<void>;
69
- private createProxyClient;
70
- inspect(peerDescriptor: PeerDescriptor, streamPartId: StreamPartID): Promise<boolean>;
71
- getNodeInfo(): StreamPartitionInfo[];
72
- setStreamPartEntryPoints(streamPartId: StreamPartID, entryPoints: PeerDescriptor[]): void;
73
- isProxiedStreamPart(streamPartId: StreamPartID, direction?: ProxyDirection): boolean;
74
- getStreamPartDelivery(streamPartId: StreamPartID): StreamPartDelivery | undefined;
75
- hasStreamPart(streamPartId: StreamPartID): boolean;
76
- getPeerDescriptor(): PeerDescriptor;
77
- getNodeId(): DhtAddress;
78
- getNeighbors(streamPartId: StreamPartID): DhtAddress[];
79
- getStreamParts(): StreamPartID[];
80
- getDiagnosticInfo(): Record<string, unknown>;
81
- }
82
- export {};
@@ -1,325 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ContentDeliveryManager = exports.streamPartIdToDataKey = void 0;
7
- const dht_1 = require("@streamr/dht");
8
- const utils_1 = require("@streamr/utils");
9
- const crypto_1 = require("crypto");
10
- const eventemitter3_1 = require("eventemitter3");
11
- const sampleSize_1 = __importDefault(require("lodash/sampleSize"));
12
- const PeerDescriptorStoreManager_1 = require("./control-layer/PeerDescriptorStoreManager");
13
- const StreamPartNetworkSplitAvoidance_1 = require("./StreamPartNetworkSplitAvoidance");
14
- const StreamPartReconnect_1 = require("./StreamPartReconnect");
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
- const logger = new utils_1.Logger(module);
19
- const streamPartIdToDataKey = (streamPartId) => {
20
- return (0, dht_1.toDhtAddress)(new Uint8Array(((0, crypto_1.createHash)('sha1').update(streamPartId).digest())));
21
- };
22
- exports.streamPartIdToDataKey = streamPartIdToDataKey;
23
- class ContentDeliveryManager extends eventemitter3_1.EventEmitter {
24
- transport;
25
- connectionLocker;
26
- controlLayerNode;
27
- metricsContext;
28
- metrics;
29
- options;
30
- streamParts;
31
- knownStreamPartEntryPoints = new Map();
32
- started = false;
33
- destroyed = false;
34
- constructor(options) {
35
- super();
36
- this.options = options;
37
- this.streamParts = new Map();
38
- this.metricsContext = options.metricsContext ?? new utils_1.MetricsContext();
39
- this.metrics = {
40
- broadcastMessagesPerSecond: new utils_1.RateMetric(),
41
- broadcastBytesPerSecond: new utils_1.RateMetric()
42
- };
43
- this.metricsContext.addMetrics('node', this.metrics);
44
- }
45
- async start(startedAndJoinedControlLayerNode, transport, connectionLocker) {
46
- if (this.started || this.destroyed) {
47
- return;
48
- }
49
- this.started = true;
50
- this.controlLayerNode = startedAndJoinedControlLayerNode;
51
- this.transport = transport;
52
- this.connectionLocker = connectionLocker;
53
- }
54
- async destroy() {
55
- if (!this.started || this.destroyed) {
56
- return;
57
- }
58
- logger.trace('Destroying ContentDeliveryManager');
59
- this.destroyed = true;
60
- await Promise.all(Array.from(this.streamParts.values()).map((streamPart) => streamPart.stop()));
61
- this.streamParts.clear();
62
- this.removeAllListeners();
63
- this.controlLayerNode = undefined;
64
- this.transport = undefined;
65
- this.connectionLocker = undefined;
66
- }
67
- broadcast(msg, streamPartDeliveryOptions) {
68
- const streamPartId = (0, utils_1.toStreamPartID)(msg.messageId.streamId, msg.messageId.streamPartition);
69
- logger.debug(`Broadcasting to stream part ${streamPartId}`);
70
- this.joinStreamPart(streamPartId, streamPartDeliveryOptions);
71
- this.streamParts.get(streamPartId).broadcast(msg);
72
- if (msg.body.oneofKind === 'contentMessage') {
73
- this.metrics.broadcastMessagesPerSecond.record(1);
74
- this.metrics.broadcastBytesPerSecond.record(msg.body.contentMessage.content.length);
75
- }
76
- }
77
- async leaveStreamPart(streamPartId) {
78
- const streamPart = this.streamParts.get(streamPartId);
79
- if (streamPart) {
80
- await streamPart.stop();
81
- this.streamParts.delete(streamPartId);
82
- }
83
- }
84
- joinStreamPart(streamPartId, streamPartDeliveryOptions) {
85
- let streamPart = this.streamParts.get(streamPartId);
86
- if (streamPart !== undefined) {
87
- return;
88
- }
89
- logger.debug(`Join stream part ${streamPartId}`);
90
- const discoveryLayerNode = this.createDiscoveryLayerNode(streamPartId, this.knownStreamPartEntryPoints.get(streamPartId) ?? []);
91
- const peerDescriptorStoreManager = new PeerDescriptorStoreManager_1.PeerDescriptorStoreManager({
92
- key: (0, exports.streamPartIdToDataKey)(streamPartId),
93
- localPeerDescriptor: this.getPeerDescriptor(),
94
- fetchDataFromDht: (key) => this.controlLayerNode.fetchDataFromDht(key),
95
- storeDataToDht: (key, data) => this.controlLayerNode.storeDataToDht(key, data),
96
- deleteDataFromDht: async (key, waitForCompletion) => this.controlLayerNode.deleteDataFromDht(key, waitForCompletion)
97
- });
98
- const networkSplitAvoidance = new StreamPartNetworkSplitAvoidance_1.StreamPartNetworkSplitAvoidance({
99
- discoveryLayerNode,
100
- discoverEntryPoints: async () => peerDescriptorStoreManager.fetchNodes()
101
- });
102
- const node = this.createContentDeliveryLayerNode(streamPartId, discoveryLayerNode, () => peerDescriptorStoreManager.isLocalNodeStored(), streamPartDeliveryOptions);
103
- const streamPartReconnect = new StreamPartReconnect_1.StreamPartReconnect(discoveryLayerNode, peerDescriptorStoreManager);
104
- streamPart = {
105
- proxied: false,
106
- discoveryLayerNode,
107
- node,
108
- networkSplitAvoidance,
109
- broadcast: (msg) => node.broadcast(msg),
110
- stop: async () => {
111
- streamPartReconnect.destroy();
112
- networkSplitAvoidance.destroy();
113
- await peerDescriptorStoreManager.destroy();
114
- node.stop();
115
- await discoveryLayerNode.stop();
116
- },
117
- getDiagnosticInfo: () => node.getDiagnosticInfo()
118
- };
119
- this.streamParts.set(streamPartId, streamPart);
120
- node.on('message', (message) => {
121
- this.emit('newMessage', message);
122
- });
123
- const handleEntryPointLeave = async () => {
124
- if (this.destroyed || peerDescriptorStoreManager.isLocalNodeStored() || this.knownStreamPartEntryPoints.has(streamPartId)) {
125
- return;
126
- }
127
- const entryPoints = await peerDescriptorStoreManager.fetchNodes();
128
- if (entryPoints.length < PeerDescriptorStoreManager_1.MAX_NODE_COUNT) {
129
- await peerDescriptorStoreManager.storeAndKeepLocalNode();
130
- }
131
- };
132
- discoveryLayerNode.on('manualRejoinRequired', async () => {
133
- if (!streamPartReconnect.isRunning() && !networkSplitAvoidance.isRunning()) {
134
- logger.debug('Manual rejoin required for stream part', { streamPartId });
135
- await streamPartReconnect.reconnect();
136
- }
137
- });
138
- node.on('entryPointLeaveDetected', () => handleEntryPointLeave());
139
- setImmediate(async () => {
140
- try {
141
- await this.startLayersAndJoinDht(streamPartId, peerDescriptorStoreManager);
142
- }
143
- catch (err) {
144
- logger.warn(`Failed to join to stream part ${streamPartId}`, { err });
145
- }
146
- });
147
- }
148
- async startLayersAndJoinDht(streamPartId, peerDescriptorStoreManager) {
149
- logger.debug(`Start layers and join DHT for stream part ${streamPartId}`);
150
- const streamPart = this.streamParts.get(streamPartId);
151
- if ((streamPart === undefined) || streamPart.proxied) {
152
- // leaveStreamPart has been called (or leaveStreamPart called, and then setProxies called)
153
- return;
154
- }
155
- if (this.transport.isPrivateClientMode()) {
156
- await this.transport.disablePrivateClientMode();
157
- }
158
- await streamPart.discoveryLayerNode.start();
159
- await streamPart.node.start();
160
- const knownEntryPoints = this.knownStreamPartEntryPoints.get(streamPartId);
161
- if (knownEntryPoints !== undefined) {
162
- await Promise.all([
163
- streamPart.discoveryLayerNode.joinDht(knownEntryPoints),
164
- streamPart.discoveryLayerNode.joinRing()
165
- ]);
166
- }
167
- else {
168
- const entryPoints = await peerDescriptorStoreManager.fetchNodes();
169
- await Promise.all([
170
- streamPart.discoveryLayerNode.joinDht((0, sampleSize_1.default)(entryPoints, StreamPartNetworkSplitAvoidance_1.MIN_NEIGHBOR_COUNT)),
171
- streamPart.discoveryLayerNode.joinRing()
172
- ]);
173
- if (entryPoints.length < PeerDescriptorStoreManager_1.MAX_NODE_COUNT) {
174
- await peerDescriptorStoreManager.storeAndKeepLocalNode();
175
- if (streamPart.discoveryLayerNode.getNeighborCount() < StreamPartNetworkSplitAvoidance_1.MIN_NEIGHBOR_COUNT) {
176
- setImmediate(() => streamPart.networkSplitAvoidance.avoidNetworkSplit());
177
- }
178
- }
179
- }
180
- }
181
- createDiscoveryLayerNode(streamPartId, entryPoints) {
182
- return new dht_1.DhtNode({
183
- transport: this.controlLayerNode,
184
- connectionsView: this.controlLayerNode.getConnectionsView(),
185
- serviceId: 'layer1::' + streamPartId,
186
- peerDescriptor: this.controlLayerNode.getLocalPeerDescriptor(),
187
- entryPoints,
188
- numberOfNodesPerKBucket: 4, // TODO use options option or named constant?
189
- rpcRequestTimeout: dht_1.EXISTING_CONNECTION_TIMEOUT,
190
- dhtJoinTimeout: 20000, // TODO use options option or named constant?
191
- periodicallyPingNeighbors: true,
192
- periodicallyPingRingContacts: true,
193
- neighborPingLimit: 16
194
- });
195
- }
196
- createContentDeliveryLayerNode(streamPartId, discoveryLayerNode, isLocalNodeEntryPoint, streamPartDeliveryOptions) {
197
- return (0, createContentDeliveryLayerNode_1.createContentDeliveryLayerNode)({
198
- streamPartId,
199
- transport: this.transport,
200
- discoveryLayerNode,
201
- connectionLocker: this.connectionLocker,
202
- localPeerDescriptor: this.controlLayerNode.getLocalPeerDescriptor(),
203
- minPropagationTargets: this.options.streamPartitionMinPropagationTargets,
204
- neighborTargetCount: this.options.streamPartitionNeighborTargetCount,
205
- maxPropagationBufferSize: this.options.streamPartitionMaxPropagationBufferSize,
206
- acceptProxyConnections: this.options.acceptProxyConnections,
207
- rpcRequestTimeout: this.options.rpcRequestTimeout,
208
- neighborUpdateInterval: this.options.neighborUpdateInterval,
209
- isLocalNodeEntryPoint,
210
- doNotBufferWhileConnecting: this.options.doNotBufferWhileConnecting,
211
- plumtreeOptimization: streamPartDeliveryOptions?.plumtreeOptimization?.enabled,
212
- plumtreeMaxPausedNeighbors: streamPartDeliveryOptions?.plumtreeOptimization?.enabled === true ?
213
- streamPartDeliveryOptions?.plumtreeOptimization?.maxPausedNeighbors : undefined
214
- });
215
- }
216
- async setProxies(streamPartId, nodes, direction, userId, connectionCount) {
217
- // TODO explicit default value for "acceptProxyConnections" or make it required
218
- if (this.options.acceptProxyConnections) {
219
- throw new Error('cannot set proxies when acceptProxyConnections=true');
220
- }
221
- const enable = (nodes.length > 0) && ((connectionCount === undefined) || (connectionCount > 0));
222
- if (enable) {
223
- let client;
224
- const alreadyProxied = this.isProxiedStreamPart(streamPartId);
225
- if (alreadyProxied) {
226
- client = this.streamParts.get(streamPartId).client;
227
- }
228
- else {
229
- client = this.createProxyClient(streamPartId);
230
- this.streamParts.set(streamPartId, {
231
- proxied: true,
232
- client,
233
- broadcast: (msg) => client.broadcast(msg),
234
- stop: async () => client.stop(),
235
- getDiagnosticInfo: () => client.getDiagnosticInfo()
236
- });
237
- client.on('message', (message) => {
238
- this.emit('newMessage', message);
239
- });
240
- if (Array.from(this.streamParts.values()).every((streamPart) => streamPart.proxied)) {
241
- await this.transport.enablePrivateClientMode();
242
- }
243
- await client.start();
244
- }
245
- await client.setProxies(nodes, direction, userId, connectionCount);
246
- }
247
- else {
248
- await this.streamParts.get(streamPartId)?.stop();
249
- this.streamParts.delete(streamPartId);
250
- }
251
- }
252
- createProxyClient(streamPartId) {
253
- return new ProxyClient_1.ProxyClient({
254
- transport: this.transport,
255
- localPeerDescriptor: this.controlLayerNode.getLocalPeerDescriptor(),
256
- streamPartId,
257
- connectionLocker: this.connectionLocker,
258
- minPropagationTargets: this.options.streamPartitionMinPropagationTargets ?? Propagation_1.DEFAULT_MIN_PROPAGATION_TARGETS,
259
- maxPropagationBufferSize: this.options.streamPartitionMaxPropagationBufferSize ?? Propagation_1.DEFAULT_MAX_PROPAGATION_BUFFER_SIZE,
260
- propagationBufferTtl: Propagation_1.DEFAULT_PROPAGATION_BUFFER_TTL
261
- });
262
- }
263
- async inspect(peerDescriptor, streamPartId) {
264
- const streamPart = this.streamParts.get(streamPartId);
265
- if ((streamPart !== undefined) && !streamPart.proxied) {
266
- return streamPart.node.inspect(peerDescriptor);
267
- }
268
- return false;
269
- }
270
- // TODO inline this method?
271
- getNodeInfo() {
272
- const streamParts = Array.from(this.streamParts.entries()).filter(([_, node]) => node.proxied === false);
273
- return streamParts.map(([streamPartId]) => {
274
- const stream = this.streamParts.get(streamPartId);
275
- return {
276
- id: streamPartId,
277
- controlLayerNeighbors: stream.discoveryLayerNode.getNeighbors(),
278
- deprecatedContentDeliveryLayerNeighbors: [],
279
- contentDeliveryLayerNeighbors: stream.node.getInfos()
280
- };
281
- });
282
- }
283
- setStreamPartEntryPoints(streamPartId, entryPoints) {
284
- this.knownStreamPartEntryPoints.set(streamPartId, entryPoints);
285
- }
286
- isProxiedStreamPart(streamPartId, direction) {
287
- const streamPart = this.streamParts.get(streamPartId);
288
- return (streamPart !== undefined)
289
- && streamPart.proxied
290
- && ((direction === undefined) || (streamPart.client.getDirection() === direction));
291
- }
292
- getStreamPartDelivery(streamPartId) {
293
- return this.streamParts.get(streamPartId);
294
- }
295
- hasStreamPart(streamPartId) {
296
- return this.streamParts.has(streamPartId);
297
- }
298
- getPeerDescriptor() {
299
- return this.controlLayerNode.getLocalPeerDescriptor();
300
- }
301
- getNodeId() {
302
- return (0, dht_1.toNodeId)(this.controlLayerNode.getLocalPeerDescriptor());
303
- }
304
- getNeighbors(streamPartId) {
305
- const streamPart = this.streamParts.get(streamPartId);
306
- return streamPart?.proxied === false
307
- ? streamPart.node.getNeighbors().map((n) => (0, dht_1.toNodeId)(n))
308
- : [];
309
- }
310
- getStreamParts() {
311
- return Array.from(this.streamParts.keys()).map((id) => utils_1.StreamPartIDUtils.parse(id));
312
- }
313
- getDiagnosticInfo() {
314
- return {
315
- streamParts: this.getStreamParts().map((id) => {
316
- return {
317
- id,
318
- info: this.getStreamPartDelivery(id).getDiagnosticInfo()
319
- };
320
- })
321
- };
322
- }
323
- }
324
- exports.ContentDeliveryManager = ContentDeliveryManager;
325
- //# sourceMappingURL=ContentDeliveryManager.js.map
@@ -1 +0,0 @@
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;AAqBzD,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AA4B1B,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,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,EAAE,OAAO;YAC9E,0BAA0B,EACtB,yBAAyB,EAAE,oBAAoB,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC;gBAC/D,yBAAyB,EAAE,oBAAoB,EAAE,kBAAkB,CAAC,CAAC,CAAC,SAAS;SAC1F,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,UAAU,EAAE,OAAO,KAAK,KAAK;YAChC,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"}
@@ -1,44 +0,0 @@
1
- import { IMessageType } from '@protobuf-ts/runtime';
2
- import { ServerCallContext } from '@protobuf-ts/runtime-rpc';
3
- import { DhtAddress, PeerDescriptor } from '@streamr/dht';
4
- import { ProtoRpcClient } from '@streamr/proto-rpc';
5
- import { MetricsContext, StreamPartID, UserID } from '@streamr/utils';
6
- import { ExternalRpcClient, ExternalRpcClientClass } from './control-layer/ExternalNetworkRpc';
7
- import { NetworkOptions, NetworkStack } from './NetworkStack';
8
- import { ProxyDirection, StreamMessage } from '../generated/packages/trackerless-network/protos/NetworkRpc';
9
- import { NodeInfo } from './types';
10
- import { StreamPartDeliveryOptions } from './ContentDeliveryManager';
11
- export declare const createNetworkNode: (opts: NetworkOptions) => NetworkNode;
12
- /**
13
- * Convenience wrapper for building client-facing functionality. Used by client.
14
- */
15
- export declare class NetworkNode {
16
- readonly stack: NetworkStack;
17
- private stopped;
18
- private externalNetworkRpc?;
19
- start(doJoin?: boolean): Promise<void>;
20
- inspect(node: PeerDescriptor, streamPartId: StreamPartID): Promise<boolean>;
21
- broadcast(msg: StreamMessage, streamPartDeliveryOptions?: StreamPartDeliveryOptions): Promise<void>;
22
- join(streamPartId: StreamPartID, neighborRequirement?: {
23
- minCount: number;
24
- timeout: number;
25
- }, streamPartDeliveryOptions?: StreamPartDeliveryOptions): Promise<void>;
26
- setProxies(streamPartId: StreamPartID, nodes: PeerDescriptor[], direction: ProxyDirection, userId: UserID, connectionCount?: number): Promise<void>;
27
- isProxiedStreamPart(streamPartId: StreamPartID): boolean;
28
- addMessageListener(listener: (msg: StreamMessage) => void): void;
29
- setStreamPartEntryPoints(streamPartId: StreamPartID, contactPeerDescriptors: PeerDescriptor[]): void;
30
- removeMessageListener(listener: (msg: StreamMessage) => void): void;
31
- leave(streamPartId: StreamPartID): Promise<void>;
32
- getNeighbors(streamPartId: StreamPartID): readonly DhtAddress[];
33
- hasStreamPart(streamPartId: StreamPartID): boolean;
34
- stop(): Promise<void>;
35
- getPeerDescriptor(): PeerDescriptor;
36
- getMetricsContext(): MetricsContext;
37
- getNodeId(): DhtAddress;
38
- getOptions(): NetworkOptions;
39
- getStreamParts(): StreamPartID[];
40
- fetchNodeInfo(node: PeerDescriptor): Promise<NodeInfo>;
41
- getDiagnosticInfo(): Record<string, unknown>;
42
- registerExternalNetworkRpcMethod<RequestClass extends IMessageType<RequestType>, ResponseClass extends IMessageType<ResponseType>, RequestType extends object, ResponseType extends object>(request: RequestClass, response: ResponseClass, name: string, fn: (req: RequestType, context: ServerCallContext) => Promise<ResponseType>): void;
43
- createExternalRpcClient<T extends ExternalRpcClient>(clientClass: ExternalRpcClientClass<T>): ProtoRpcClient<T>;
44
- }
@@ -1,98 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NetworkNode = exports.createNetworkNode = void 0;
4
- const ExternalNetworkRpc_1 = require("./control-layer/ExternalNetworkRpc");
5
- const NetworkStack_1 = require("./NetworkStack");
6
- const createNetworkNode = (opts) => {
7
- return new NetworkNode(new NetworkStack_1.NetworkStack(opts));
8
- };
9
- exports.createNetworkNode = createNetworkNode;
10
- /**
11
- * Convenience wrapper for building client-facing functionality. Used by client.
12
- */
13
- class NetworkNode {
14
- stack;
15
- stopped = false;
16
- externalNetworkRpc;
17
- /** @internal */
18
- constructor(stack) {
19
- this.stack = stack;
20
- }
21
- async start(doJoin) {
22
- await this.stack.start(doJoin);
23
- this.externalNetworkRpc = new ExternalNetworkRpc_1.ExternalNetworkRpc(this.stack.getControlLayerNode().getTransport());
24
- }
25
- async inspect(node, streamPartId) {
26
- return this.stack.getContentDeliveryManager().inspect(node, streamPartId);
27
- }
28
- async broadcast(msg, streamPartDeliveryOptions) {
29
- await this.stack.broadcast(msg, streamPartDeliveryOptions);
30
- }
31
- async join(streamPartId, neighborRequirement, streamPartDeliveryOptions) {
32
- await this.stack.joinStreamPart(streamPartId, neighborRequirement, streamPartDeliveryOptions);
33
- }
34
- async setProxies(streamPartId, nodes, direction, userId, connectionCount) {
35
- await this.stack.getContentDeliveryManager().setProxies(streamPartId, nodes, direction, userId, connectionCount);
36
- }
37
- isProxiedStreamPart(streamPartId) {
38
- return this.stack.getContentDeliveryManager().isProxiedStreamPart(streamPartId);
39
- }
40
- addMessageListener(listener) {
41
- this.stack.getContentDeliveryManager().on('newMessage', listener);
42
- }
43
- setStreamPartEntryPoints(streamPartId, contactPeerDescriptors) {
44
- this.stack.getContentDeliveryManager().setStreamPartEntryPoints(streamPartId, contactPeerDescriptors);
45
- }
46
- removeMessageListener(listener) {
47
- this.stack.getContentDeliveryManager().off('newMessage', listener);
48
- }
49
- async leave(streamPartId) {
50
- if (this.stopped) {
51
- return;
52
- }
53
- await this.stack.getContentDeliveryManager().leaveStreamPart(streamPartId);
54
- }
55
- getNeighbors(streamPartId) {
56
- return this.stack.getContentDeliveryManager().getNeighbors(streamPartId);
57
- }
58
- hasStreamPart(streamPartId) {
59
- return this.stack.getContentDeliveryManager().hasStreamPart(streamPartId);
60
- }
61
- async stop() {
62
- this.stopped = true;
63
- this.externalNetworkRpc.destroy();
64
- await this.stack.stop();
65
- }
66
- getPeerDescriptor() {
67
- return this.stack.getControlLayerNode().getLocalPeerDescriptor();
68
- }
69
- getMetricsContext() {
70
- return this.stack.getMetricsContext();
71
- }
72
- getNodeId() {
73
- return this.stack.getContentDeliveryManager().getNodeId();
74
- }
75
- getOptions() {
76
- return this.stack.getOptions();
77
- }
78
- getStreamParts() {
79
- return this.stack.getContentDeliveryManager().getStreamParts();
80
- }
81
- async fetchNodeInfo(node) {
82
- return this.stack.fetchNodeInfo(node);
83
- }
84
- getDiagnosticInfo() {
85
- return {
86
- controlLayer: this.stack.getControlLayerNode().getDiagnosticInfo(),
87
- contentLayer: this.stack.getContentDeliveryManager().getDiagnosticInfo()
88
- };
89
- }
90
- registerExternalNetworkRpcMethod(request, response, name, fn) {
91
- this.externalNetworkRpc.registerRpcMethod(request, response, name, fn);
92
- }
93
- createExternalRpcClient(clientClass) {
94
- return this.externalNetworkRpc.createRpcClient(clientClass);
95
- }
96
- }
97
- exports.NetworkNode = NetworkNode;
98
- //# sourceMappingURL=NetworkNode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NetworkNode.js","sourceRoot":"","sources":["../../src/NetworkNode.ts"],"names":[],"mappings":"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"}