@streamr/dht 103.1.2 → 103.2.0-experiment.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/dist/exports-browser.cjs +7636 -0
  2. package/dist/exports-browser.cjs.map +1 -0
  3. package/dist/exports-browser.d.ts +1321 -0
  4. package/dist/exports-browser.js +7611 -0
  5. package/dist/exports-browser.js.map +1 -0
  6. package/dist/exports-nodejs.cjs +7833 -0
  7. package/dist/exports-nodejs.cjs.map +1 -0
  8. package/dist/exports-nodejs.d.ts +1321 -0
  9. package/dist/exports-nodejs.js +7808 -0
  10. package/dist/exports-nodejs.js.map +1 -0
  11. package/package.json +41 -25
  12. package/dist/generated/google/protobuf/any.d.ts +0 -180
  13. package/dist/generated/google/protobuf/any.js +0 -155
  14. package/dist/generated/google/protobuf/any.js.map +0 -1
  15. package/dist/generated/google/protobuf/empty.d.ts +0 -31
  16. package/dist/generated/google/protobuf/empty.js +0 -45
  17. package/dist/generated/google/protobuf/empty.js.map +0 -1
  18. package/dist/generated/google/protobuf/timestamp.d.ts +0 -156
  19. package/dist/generated/google/protobuf/timestamp.js +0 -136
  20. package/dist/generated/google/protobuf/timestamp.js.map +0 -1
  21. package/dist/generated/packages/dht/protos/DhtRpc.client.d.ts +0 -371
  22. package/dist/generated/packages/dht/protos/DhtRpc.client.js +0 -292
  23. package/dist/generated/packages/dht/protos/DhtRpc.client.js.map +0 -1
  24. package/dist/generated/packages/dht/protos/DhtRpc.d.ts +0 -1031
  25. package/dist/generated/packages/dht/protos/DhtRpc.js +0 -702
  26. package/dist/generated/packages/dht/protos/DhtRpc.js.map +0 -1
  27. package/dist/generated/packages/dht/protos/DhtRpc.server.d.ts +0 -168
  28. package/dist/generated/packages/dht/protos/DhtRpc.server.js +0 -3
  29. package/dist/generated/packages/dht/protos/DhtRpc.server.js.map +0 -1
  30. package/dist/generated/packages/proto-rpc/protos/ProtoRpc.d.ts +0 -87
  31. package/dist/generated/packages/proto-rpc/protos/ProtoRpc.js +0 -66
  32. package/dist/generated/packages/proto-rpc/protos/ProtoRpc.js.map +0 -1
  33. package/dist/package.json +0 -61
  34. package/dist/src/connection/Connection.d.ts +0 -12
  35. package/dist/src/connection/Connection.js +0 -30
  36. package/dist/src/connection/Connection.js.map +0 -1
  37. package/dist/src/connection/ConnectionLockRpcLocal.d.ts +0 -22
  38. package/dist/src/connection/ConnectionLockRpcLocal.js +0 -54
  39. package/dist/src/connection/ConnectionLockRpcLocal.js.map +0 -1
  40. package/dist/src/connection/ConnectionLockRpcRemote.d.ts +0 -10
  41. package/dist/src/connection/ConnectionLockRpcRemote.js +0 -61
  42. package/dist/src/connection/ConnectionLockRpcRemote.js.map +0 -1
  43. package/dist/src/connection/ConnectionLockStates.d.ts +0 -27
  44. package/dist/src/connection/ConnectionLockStates.js +0 -114
  45. package/dist/src/connection/ConnectionLockStates.js.map +0 -1
  46. package/dist/src/connection/ConnectionManager.d.ts +0 -85
  47. package/dist/src/connection/ConnectionManager.js +0 -569
  48. package/dist/src/connection/ConnectionManager.js.map +0 -1
  49. package/dist/src/connection/ConnectionsView.d.ts +0 -7
  50. package/dist/src/connection/ConnectionsView.js +0 -3
  51. package/dist/src/connection/ConnectionsView.js.map +0 -1
  52. package/dist/src/connection/ConnectorFacade.d.ts +0 -58
  53. package/dist/src/connection/ConnectorFacade.js +0 -154
  54. package/dist/src/connection/ConnectorFacade.js.map +0 -1
  55. package/dist/src/connection/Handshaker.d.ts +0 -27
  56. package/dist/src/connection/Handshaker.js +0 -179
  57. package/dist/src/connection/Handshaker.js.map +0 -1
  58. package/dist/src/connection/IConnection.d.ts +0 -32
  59. package/dist/src/connection/IConnection.js +0 -12
  60. package/dist/src/connection/IConnection.js.map +0 -1
  61. package/dist/src/connection/ManagedConnection.d.ts +0 -30
  62. package/dist/src/connection/ManagedConnection.js +0 -129
  63. package/dist/src/connection/ManagedConnection.js.map +0 -1
  64. package/dist/src/connection/OutputBuffer.d.ts +0 -9
  65. package/dist/src/connection/OutputBuffer.js +0 -26
  66. package/dist/src/connection/OutputBuffer.js.map +0 -1
  67. package/dist/src/connection/PendingConnection.d.ts +0 -19
  68. package/dist/src/connection/PendingConnection.js +0 -59
  69. package/dist/src/connection/PendingConnection.js.map +0 -1
  70. package/dist/src/connection/connectivityChecker.d.ts +0 -9
  71. package/dist/src/connection/connectivityChecker.js +0 -138
  72. package/dist/src/connection/connectivityChecker.js.map +0 -1
  73. package/dist/src/connection/connectivityRequestHandler.d.ts +0 -4
  74. package/dist/src/connection/connectivityRequestHandler.js +0 -108
  75. package/dist/src/connection/connectivityRequestHandler.js.map +0 -1
  76. package/dist/src/connection/simulator/Simulator.d.ts +0 -36
  77. package/dist/src/connection/simulator/Simulator.js +0 -290
  78. package/dist/src/connection/simulator/Simulator.js.map +0 -1
  79. package/dist/src/connection/simulator/SimulatorConnection.d.ts +0 -18
  80. package/dist/src/connection/simulator/SimulatorConnection.js +0 -123
  81. package/dist/src/connection/simulator/SimulatorConnection.js.map +0 -1
  82. package/dist/src/connection/simulator/SimulatorConnector.d.ts +0 -16
  83. package/dist/src/connection/simulator/SimulatorConnector.js +0 -80
  84. package/dist/src/connection/simulator/SimulatorConnector.js.map +0 -1
  85. package/dist/src/connection/simulator/SimulatorTransport.d.ts +0 -6
  86. package/dist/src/connection/simulator/SimulatorTransport.js +0 -17
  87. package/dist/src/connection/simulator/SimulatorTransport.js.map +0 -1
  88. package/dist/src/connection/simulator/pings.d.ts +0 -21
  89. package/dist/src/connection/simulator/pings.js +0 -61
  90. package/dist/src/connection/simulator/pings.js.map +0 -1
  91. package/dist/src/connection/webrtc/BrowserWebrtcConnection.d.ts +0 -37
  92. package/dist/src/connection/webrtc/BrowserWebrtcConnection.js +0 -229
  93. package/dist/src/connection/webrtc/BrowserWebrtcConnection.js.map +0 -1
  94. package/dist/src/connection/webrtc/IWebrtcConnection.d.ts +0 -21
  95. package/dist/src/connection/webrtc/IWebrtcConnection.js +0 -9
  96. package/dist/src/connection/webrtc/IWebrtcConnection.js.map +0 -1
  97. package/dist/src/connection/webrtc/NodeWebrtcConnection.d.ts +0 -45
  98. package/dist/src/connection/webrtc/NodeWebrtcConnection.js +0 -229
  99. package/dist/src/connection/webrtc/NodeWebrtcConnection.js.map +0 -1
  100. package/dist/src/connection/webrtc/WebrtcConnector.d.ts +0 -43
  101. package/dist/src/connection/webrtc/WebrtcConnector.js +0 -208
  102. package/dist/src/connection/webrtc/WebrtcConnector.js.map +0 -1
  103. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.d.ts +0 -26
  104. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js +0 -82
  105. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js.map +0 -1
  106. package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.d.ts +0 -8
  107. package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.js +0 -50
  108. package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.js.map +0 -1
  109. package/dist/src/connection/webrtc/iceServerAsString.d.ts +0 -2
  110. package/dist/src/connection/webrtc/iceServerAsString.js +0 -17
  111. package/dist/src/connection/webrtc/iceServerAsString.js.map +0 -1
  112. package/dist/src/connection/websocket/AbstractWebsocketClientConnection.d.ts +0 -27
  113. package/dist/src/connection/websocket/AbstractWebsocketClientConnection.js +0 -107
  114. package/dist/src/connection/websocket/AbstractWebsocketClientConnection.js.map +0 -1
  115. package/dist/src/connection/websocket/AutoCertifierClientFacade.d.ts +0 -26
  116. package/dist/src/connection/websocket/AutoCertifierClientFacade.js +0 -39
  117. package/dist/src/connection/websocket/AutoCertifierClientFacade.js.map +0 -1
  118. package/dist/src/connection/websocket/BrowserWebsocketClientConnection.d.ts +0 -7
  119. package/dist/src/connection/websocket/BrowserWebsocketClientConnection.js +0 -44
  120. package/dist/src/connection/websocket/BrowserWebsocketClientConnection.js.map +0 -1
  121. package/dist/src/connection/websocket/NodeWebsocketClientConnection.d.ts +0 -7
  122. package/dist/src/connection/websocket/NodeWebsocketClientConnection.js +0 -39
  123. package/dist/src/connection/websocket/NodeWebsocketClientConnection.js.map +0 -1
  124. package/dist/src/connection/websocket/WebsocketClientConnector.d.ts +0 -26
  125. package/dist/src/connection/websocket/WebsocketClientConnector.js +0 -86
  126. package/dist/src/connection/websocket/WebsocketClientConnector.js.map +0 -1
  127. package/dist/src/connection/websocket/WebsocketClientConnectorRpcLocal.d.ts +0 -18
  128. package/dist/src/connection/websocket/WebsocketClientConnectorRpcLocal.js +0 -23
  129. package/dist/src/connection/websocket/WebsocketClientConnectorRpcLocal.js.map +0 -1
  130. package/dist/src/connection/websocket/WebsocketClientConnectorRpcRemote.d.ts +0 -5
  131. package/dist/src/connection/websocket/WebsocketClientConnectorRpcRemote.js +0 -17
  132. package/dist/src/connection/websocket/WebsocketClientConnectorRpcRemote.js.map +0 -1
  133. package/dist/src/connection/websocket/WebsocketServer.d.ts +0 -25
  134. package/dist/src/connection/websocket/WebsocketServer.js +0 -146
  135. package/dist/src/connection/websocket/WebsocketServer.js.map +0 -1
  136. package/dist/src/connection/websocket/WebsocketServerConnection.d.ts +0 -22
  137. package/dist/src/connection/websocket/WebsocketServerConnection.js +0 -101
  138. package/dist/src/connection/websocket/WebsocketServerConnection.js.map +0 -1
  139. package/dist/src/connection/websocket/WebsocketServerConnector.d.ts +0 -44
  140. package/dist/src/connection/websocket/WebsocketServerConnector.js +0 -279
  141. package/dist/src/connection/websocket/WebsocketServerConnector.js.map +0 -1
  142. package/dist/src/dht/DhtNode.d.ts +0 -119
  143. package/dist/src/dht/DhtNode.js +0 -500
  144. package/dist/src/dht/DhtNode.js.map +0 -1
  145. package/dist/src/dht/DhtNodeRpcLocal.d.ts +0 -23
  146. package/dist/src/dht/DhtNodeRpcLocal.js +0 -54
  147. package/dist/src/dht/DhtNodeRpcLocal.js.map +0 -1
  148. package/dist/src/dht/DhtNodeRpcRemote.d.ts +0 -25
  149. package/dist/src/dht/DhtNodeRpcRemote.js +0 -83
  150. package/dist/src/dht/DhtNodeRpcRemote.js.map +0 -1
  151. package/dist/src/dht/ExternalApiRpcLocal.d.ts +0 -18
  152. package/dist/src/dht/ExternalApiRpcLocal.js +0 -32
  153. package/dist/src/dht/ExternalApiRpcLocal.js.map +0 -1
  154. package/dist/src/dht/ExternalApiRpcRemote.d.ts +0 -10
  155. package/dist/src/dht/ExternalApiRpcRemote.js +0 -58
  156. package/dist/src/dht/ExternalApiRpcRemote.js.map +0 -1
  157. package/dist/src/dht/PeerManager.d.ts +0 -63
  158. package/dist/src/dht/PeerManager.js +0 -251
  159. package/dist/src/dht/PeerManager.js.map +0 -1
  160. package/dist/src/dht/contact/Contact.d.ts +0 -8
  161. package/dist/src/dht/contact/Contact.js +0 -18
  162. package/dist/src/dht/contact/Contact.js.map +0 -1
  163. package/dist/src/dht/contact/ContactList.d.ts +0 -19
  164. package/dist/src/dht/contact/ContactList.js +0 -35
  165. package/dist/src/dht/contact/ContactList.js.map +0 -1
  166. package/dist/src/dht/contact/RandomContactList.d.ts +0 -11
  167. package/dist/src/dht/contact/RandomContactList.js +0 -47
  168. package/dist/src/dht/contact/RandomContactList.js.map +0 -1
  169. package/dist/src/dht/contact/RingContactList.d.ts +0 -28
  170. package/dist/src/dht/contact/RingContactList.js +0 -126
  171. package/dist/src/dht/contact/RingContactList.js.map +0 -1
  172. package/dist/src/dht/contact/RpcRemote.d.ts +0 -19
  173. package/dist/src/dht/contact/RpcRemote.js +0 -61
  174. package/dist/src/dht/contact/RpcRemote.js.map +0 -1
  175. package/dist/src/dht/contact/SortedContactList.d.ts +0 -37
  176. package/dist/src/dht/contact/SortedContactList.js +0 -134
  177. package/dist/src/dht/contact/SortedContactList.js.map +0 -1
  178. package/dist/src/dht/contact/getClosestNodes.d.ts +0 -6
  179. package/dist/src/dht/contact/getClosestNodes.js +0 -19
  180. package/dist/src/dht/contact/getClosestNodes.js.map +0 -1
  181. package/dist/src/dht/contact/ringIdentifiers.d.ts +0 -16
  182. package/dist/src/dht/contact/ringIdentifiers.js +0 -54
  183. package/dist/src/dht/contact/ringIdentifiers.js.map +0 -1
  184. package/dist/src/dht/discovery/DiscoverySession.d.ts +0 -29
  185. package/dist/src/dht/discovery/DiscoverySession.js +0 -102
  186. package/dist/src/dht/discovery/DiscoverySession.js.map +0 -1
  187. package/dist/src/dht/discovery/PeerDiscovery.d.ts +0 -42
  188. package/dist/src/dht/discovery/PeerDiscovery.js +0 -193
  189. package/dist/src/dht/discovery/PeerDiscovery.js.map +0 -1
  190. package/dist/src/dht/discovery/RingDiscoverySession.d.ts +0 -28
  191. package/dist/src/dht/discovery/RingDiscoverySession.js +0 -116
  192. package/dist/src/dht/discovery/RingDiscoverySession.js.map +0 -1
  193. package/dist/src/dht/recursive-operation/RecursiveOperationManager.d.ts +0 -38
  194. package/dist/src/dht/recursive-operation/RecursiveOperationManager.js +0 -165
  195. package/dist/src/dht/recursive-operation/RecursiveOperationManager.js.map +0 -1
  196. package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.d.ts +0 -14
  197. package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js +0 -26
  198. package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js.map +0 -1
  199. package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.d.ts +0 -6
  200. package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.js +0 -44
  201. package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.js.map +0 -1
  202. package/dist/src/dht/recursive-operation/RecursiveOperationSession.d.ts +0 -45
  203. package/dist/src/dht/recursive-operation/RecursiveOperationSession.js +0 -185
  204. package/dist/src/dht/recursive-operation/RecursiveOperationSession.js.map +0 -1
  205. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.d.ts +0 -14
  206. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js +0 -20
  207. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js.map +0 -1
  208. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcRemote.d.ts +0 -6
  209. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcRemote.js +0 -21
  210. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcRemote.js.map +0 -1
  211. package/dist/src/dht/routing/DuplicateDetector.d.ts +0 -10
  212. package/dist/src/dht/routing/DuplicateDetector.js +0 -31
  213. package/dist/src/dht/routing/DuplicateDetector.js.map +0 -1
  214. package/dist/src/dht/routing/Router.d.ts +0 -35
  215. package/dist/src/dht/routing/Router.js +0 -204
  216. package/dist/src/dht/routing/Router.js.map +0 -1
  217. package/dist/src/dht/routing/RouterRpcLocal.d.ts +0 -20
  218. package/dist/src/dht/routing/RouterRpcLocal.js +0 -67
  219. package/dist/src/dht/routing/RouterRpcLocal.js.map +0 -1
  220. package/dist/src/dht/routing/RouterRpcRemote.d.ts +0 -8
  221. package/dist/src/dht/routing/RouterRpcRemote.js +0 -81
  222. package/dist/src/dht/routing/RouterRpcRemote.js.map +0 -1
  223. package/dist/src/dht/routing/RoutingSession.d.ts +0 -56
  224. package/dist/src/dht/routing/RoutingSession.js +0 -201
  225. package/dist/src/dht/routing/RoutingSession.js.map +0 -1
  226. package/dist/src/dht/routing/RoutingTablesCache.d.ts +0 -24
  227. package/dist/src/dht/routing/RoutingTablesCache.js +0 -46
  228. package/dist/src/dht/routing/RoutingTablesCache.js.map +0 -1
  229. package/dist/src/dht/routing/getPreviousPeer.d.ts +0 -2
  230. package/dist/src/dht/routing/getPreviousPeer.js +0 -12
  231. package/dist/src/dht/routing/getPreviousPeer.js.map +0 -1
  232. package/dist/src/dht/store/LocalDataStore.d.ts +0 -14
  233. package/dist/src/dht/store/LocalDataStore.js +0 -78
  234. package/dist/src/dht/store/LocalDataStore.js.map +0 -1
  235. package/dist/src/dht/store/StoreManager.d.ts +0 -32
  236. package/dist/src/dht/store/StoreManager.js +0 -126
  237. package/dist/src/dht/store/StoreManager.js.map +0 -1
  238. package/dist/src/dht/store/StoreRpcLocal.d.ts +0 -21
  239. package/dist/src/dht/store/StoreRpcLocal.js +0 -65
  240. package/dist/src/dht/store/StoreRpcLocal.js.map +0 -1
  241. package/dist/src/dht/store/StoreRpcRemote.d.ts +0 -7
  242. package/dist/src/dht/store/StoreRpcRemote.js +0 -29
  243. package/dist/src/dht/store/StoreRpcRemote.js.map +0 -1
  244. package/dist/src/exports.d.ts +0 -25
  245. package/dist/src/exports.js +0 -48
  246. package/dist/src/exports.js.map +0 -1
  247. package/dist/src/helpers/AddressTools.d.ts +0 -2
  248. package/dist/src/helpers/AddressTools.js +0 -32
  249. package/dist/src/helpers/AddressTools.js.map +0 -1
  250. package/dist/src/helpers/Connectivity.d.ts +0 -4
  251. package/dist/src/helpers/Connectivity.js +0 -24
  252. package/dist/src/helpers/Connectivity.js.map +0 -1
  253. package/dist/src/helpers/browser/isBrowserEnvironment.d.ts +0 -1
  254. package/dist/src/helpers/browser/isBrowserEnvironment.js +0 -6
  255. package/dist/src/helpers/browser/isBrowserEnvironment.js.map +0 -1
  256. package/dist/src/helpers/browser/isBrowserEnvironment_override.d.ts +0 -1
  257. package/dist/src/helpers/browser/isBrowserEnvironment_override.js +0 -7
  258. package/dist/src/helpers/browser/isBrowserEnvironment_override.js.map +0 -1
  259. package/dist/src/helpers/createPeerDescriptor.d.ts +0 -3
  260. package/dist/src/helpers/createPeerDescriptor.js +0 -58
  261. package/dist/src/helpers/createPeerDescriptor.js.map +0 -1
  262. package/dist/src/helpers/createPeerDescriptorSignaturePayload.d.ts +0 -2
  263. package/dist/src/helpers/createPeerDescriptorSignaturePayload.js +0 -30
  264. package/dist/src/helpers/createPeerDescriptorSignaturePayload.js.map +0 -1
  265. package/dist/src/helpers/debugHelpers.d.ts +0 -3
  266. package/dist/src/helpers/debugHelpers.js +0 -11
  267. package/dist/src/helpers/debugHelpers.js.map +0 -1
  268. package/dist/src/helpers/errors.d.ts +0 -72
  269. package/dist/src/helpers/errors.js +0 -97
  270. package/dist/src/helpers/errors.js.map +0 -1
  271. package/dist/src/helpers/offering.d.ts +0 -4
  272. package/dist/src/helpers/offering.js +0 -18
  273. package/dist/src/helpers/offering.js.map +0 -1
  274. package/dist/src/helpers/protoClasses.d.ts +0 -2
  275. package/dist/src/helpers/protoClasses.js +0 -32
  276. package/dist/src/helpers/protoClasses.js.map +0 -1
  277. package/dist/src/helpers/protoToString.d.ts +0 -2
  278. package/dist/src/helpers/protoToString.js +0 -19
  279. package/dist/src/helpers/protoToString.js.map +0 -1
  280. package/dist/src/helpers/version.d.ts +0 -6
  281. package/dist/src/helpers/version.js +0 -38
  282. package/dist/src/helpers/version.js.map +0 -1
  283. package/dist/src/identifiers.d.ts +0 -10
  284. package/dist/src/identifiers.js +0 -31
  285. package/dist/src/identifiers.js.map +0 -1
  286. package/dist/src/rpc-protocol/DhtCallContext.d.ts +0 -12
  287. package/dist/src/rpc-protocol/DhtCallContext.js +0 -17
  288. package/dist/src/rpc-protocol/DhtCallContext.js.map +0 -1
  289. package/dist/src/rpc-protocol/DhtRpcOptions.d.ts +0 -10
  290. package/dist/src/rpc-protocol/DhtRpcOptions.js +0 -3
  291. package/dist/src/rpc-protocol/DhtRpcOptions.js.map +0 -1
  292. package/dist/src/transport/ITransport.d.ts +0 -31
  293. package/dist/src/transport/ITransport.js +0 -9
  294. package/dist/src/transport/ITransport.js.map +0 -1
  295. package/dist/src/transport/ListeningRpcCommunicator.d.ts +0 -11
  296. package/dist/src/transport/ListeningRpcCommunicator.js +0 -31
  297. package/dist/src/transport/ListeningRpcCommunicator.js.map +0 -1
  298. package/dist/src/transport/RoutingRpcCommunicator.d.ts +0 -10
  299. package/dist/src/transport/RoutingRpcCommunicator.js +0 -60
  300. package/dist/src/transport/RoutingRpcCommunicator.js.map +0 -1
  301. package/dist/src/types/ServiceID.d.ts +0 -1
  302. package/dist/src/types/ServiceID.js +0 -3
  303. package/dist/src/types/ServiceID.js.map +0 -1
@@ -1,101 +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.WebsocketServerConnection = void 0;
7
- const eventemitter3_1 = __importDefault(require("eventemitter3"));
8
- const IConnection_1 = require("../IConnection");
9
- const utils_1 = require("@streamr/utils");
10
- const AbstractWebsocketClientConnection_1 = require("./AbstractWebsocketClientConnection");
11
- const Connection_1 = require("../Connection");
12
- const logger = new utils_1.Logger(module);
13
- class WebsocketServerConnection extends eventemitter3_1.default {
14
- connectionId;
15
- connectionType = IConnection_1.ConnectionType.WEBSOCKET_SERVER;
16
- resourceURL;
17
- remoteIpAddress;
18
- socket;
19
- stopped = false;
20
- constructor(socket, resourceURL, remoteAddress) {
21
- super();
22
- this.onMessage = this.onMessage.bind(this);
23
- this.onClose = this.onClose.bind(this);
24
- this.onError = this.onError.bind(this);
25
- this.resourceURL = resourceURL;
26
- this.connectionId = (0, Connection_1.createRandomConnectionId)();
27
- this.remoteIpAddress = remoteAddress;
28
- socket.on('message', this.onMessage);
29
- socket.on('close', this.onClose);
30
- socket.on('error', this.onError);
31
- this.socket = socket;
32
- }
33
- // use a getter to make it possible to mock the value in tests
34
- getRemoteIpAddress() {
35
- return this.remoteIpAddress;
36
- }
37
- onMessage(message, isBinary) {
38
- if (!isBinary) {
39
- logger.trace('Received string Message');
40
- }
41
- else {
42
- logger.trace('Websocket server received Message');
43
- this.emit('data', new Uint8Array(message));
44
- }
45
- }
46
- onClose(reasonCode, description) {
47
- logger.trace('Peer ' + this.remoteIpAddress + ' disconnected.');
48
- this.doDisconnect(reasonCode, description);
49
- }
50
- onError(error) {
51
- this.emit('error', error.name);
52
- }
53
- stopListening() {
54
- this.socket?.off('message', this.onMessage);
55
- this.socket?.off('close', this.onClose);
56
- this.socket?.off('error', this.onError);
57
- }
58
- doDisconnect(reasonCode, description) {
59
- this.stopped = true;
60
- this.stopListening();
61
- this.socket = undefined;
62
- const gracefulLeave = (reasonCode === AbstractWebsocketClientConnection_1.GOING_AWAY) || (reasonCode === AbstractWebsocketClientConnection_1.CUSTOM_GOING_AWAY);
63
- this.emit('disconnected', gracefulLeave, reasonCode, description);
64
- }
65
- send(data) {
66
- // TODO: no need to check this.socket as it is always defined when stopped is false?
67
- if (!this.stopped && this.socket) {
68
- this.socket.send(data, { binary: true });
69
- }
70
- else {
71
- logger.debug('Tried to call send() on a stopped socket');
72
- }
73
- }
74
- async close(gracefulLeave) {
75
- this.emit('disconnected', gracefulLeave, undefined, 'close() called');
76
- this.removeAllListeners();
77
- if (!this.stopped) {
78
- this.socket?.close(gracefulLeave ? AbstractWebsocketClientConnection_1.GOING_AWAY : undefined);
79
- }
80
- else {
81
- logger.debug('Tried to close a stopped connection');
82
- }
83
- }
84
- // TODO could rename to "closeSilently?"
85
- destroy() {
86
- if (!this.stopped) {
87
- this.removeAllListeners();
88
- if (this.socket) {
89
- this.stopListening();
90
- this.socket.close();
91
- this.socket = undefined;
92
- }
93
- this.stopped = true;
94
- }
95
- else {
96
- logger.debug('Tried to destroy() a stopped connection');
97
- }
98
- }
99
- }
100
- exports.WebsocketServerConnection = WebsocketServerConnection;
101
- //# sourceMappingURL=WebsocketServerConnection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebsocketServerConnection.js","sourceRoot":"","sources":["../../../../src/connection/websocket/WebsocketServerConnection.ts"],"names":[],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- import { ListeningRpcCommunicator } from '../../transport/ListeningRpcCommunicator';
2
- import { DhtAddress } from '../../identifiers';
3
- import { ConnectivityResponse, PeerDescriptor } from '../../../generated/packages/dht/protos/DhtRpc';
4
- import { PortRange, TlsCertificate } from '../ConnectionManager';
5
- import { ITransport } from '../../transport/ITransport';
6
- import { PendingConnection } from '../PendingConnection';
7
- export interface WebsocketServerConnectorOptions {
8
- onNewConnection: (connection: PendingConnection) => boolean;
9
- rpcCommunicator: ListeningRpcCommunicator;
10
- hasConnection: (nodeId: DhtAddress) => boolean;
11
- portRange?: PortRange;
12
- maxMessageSize?: number;
13
- host?: string;
14
- entrypoints?: PeerDescriptor[];
15
- tlsCertificate?: TlsCertificate;
16
- autoCertifierTransport: ITransport;
17
- autoCertifierUrl: string;
18
- autoCertifierConfigFile: string;
19
- serverEnableTls: boolean;
20
- geoIpDatabaseFolder?: string;
21
- }
22
- export declare class WebsocketServerConnector {
23
- private readonly websocketServer?;
24
- private geoIpLocator?;
25
- private readonly ongoingConnectRequests;
26
- private host?;
27
- private autoCertifierClient?;
28
- private selectedPort?;
29
- private localPeerDescriptor?;
30
- private abortController;
31
- private readonly options;
32
- constructor(options: WebsocketServerConnectorOptions);
33
- start(): Promise<void>;
34
- private attachHandshaker;
35
- private onServerSocketHandshakeRequest;
36
- checkConnectivity(allowSelfSignedCertificate: boolean): Promise<ConnectivityResponse>;
37
- autoCertify(): Promise<void>;
38
- private setHost;
39
- connect(targetPeerDescriptor: PeerDescriptor): PendingConnection;
40
- private requestConnectionFromPeer;
41
- isPossibleToFormConnection(targetPeerDescriptor: PeerDescriptor): boolean;
42
- setLocalPeerDescriptor(localPeerDescriptor: PeerDescriptor): void;
43
- destroy(): Promise<void>;
44
- }
@@ -1,279 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.WebsocketServerConnector = void 0;
40
- const geoip_location_1 = require("@streamr/geoip-location");
41
- const WebsocketClientConnector_1 = require("./WebsocketClientConnector");
42
- const WebsocketServer_1 = require("./WebsocketServer");
43
- const identifiers_1 = require("../../identifiers");
44
- const AutoCertifierClientFacade_1 = require("./AutoCertifierClientFacade");
45
- const DhtRpc_1 = require("../../../generated/packages/dht/protos/DhtRpc");
46
- const ConnectionManager_1 = require("../ConnectionManager");
47
- const utils_1 = require("@streamr/utils");
48
- const connectivityRequestHandler_1 = require("../connectivityRequestHandler");
49
- const IConnection_1 = require("../IConnection");
50
- const version_1 = require("../../helpers/version");
51
- const shuffle_1 = __importDefault(require("lodash/shuffle"));
52
- const connectivityChecker_1 = require("../connectivityChecker");
53
- const Handshaker_1 = require("../Handshaker");
54
- const WebsocketClientConnectorRpcRemote_1 = require("./WebsocketClientConnectorRpcRemote");
55
- const DhtRpc_client_1 = require("../../../generated/packages/dht/protos/DhtRpc.client");
56
- const errors_1 = require("../../helpers/errors");
57
- const Err = __importStar(require("../../helpers/errors"));
58
- const Connectivity_1 = require("../../helpers/Connectivity");
59
- const PendingConnection_1 = require("../PendingConnection");
60
- const logger = new utils_1.Logger(module);
61
- // TODO: Move server starting logic including autocertification and connectivity checking to WebsocketServer.ts?
62
- class WebsocketServerConnector {
63
- websocketServer;
64
- geoIpLocator;
65
- ongoingConnectRequests = new Map();
66
- host;
67
- autoCertifierClient;
68
- selectedPort;
69
- localPeerDescriptor;
70
- abortController = new AbortController();
71
- options;
72
- constructor(options) {
73
- this.options = options;
74
- this.websocketServer = options.portRange ? new WebsocketServer_1.WebsocketServer({
75
- portRange: options.portRange,
76
- tlsCertificate: options.tlsCertificate,
77
- maxMessageSize: options.maxMessageSize,
78
- enableTls: options.serverEnableTls
79
- }) : undefined;
80
- this.host = options.host;
81
- }
82
- async start() {
83
- if (!this.abortController.signal.aborted && this.websocketServer) {
84
- this.websocketServer.on('connected', (connection) => {
85
- const serverSocket = connection;
86
- const urlParams = new URLSearchParams(serverSocket.resourceURL.query ?? '');
87
- const action = urlParams.get('action');
88
- logger.trace('WebSocket client connected', { action, remoteAddress: serverSocket.getRemoteIpAddress() });
89
- if (action === 'connectivityRequest') {
90
- (0, connectivityRequestHandler_1.attachConnectivityRequestHandler)(serverSocket, this.geoIpLocator);
91
- }
92
- else if (action === 'connectivityProbe') {
93
- // no-op
94
- }
95
- else {
96
- // The localPeerDescriptor can be undefined here as the WS server is used for connectivity checks
97
- // before the localPeerDescriptor is set during start.
98
- // Handshaked connections should be rejected before the localPeerDescriptor is set.
99
- // eslint-disable-next-line no-lonely-if
100
- if (this.localPeerDescriptor !== undefined) {
101
- this.attachHandshaker(connection);
102
- }
103
- else {
104
- logger.trace('incoming Websocket connection before localPeerDescriptor was set, closing connection');
105
- connection.close(false).catch(() => { });
106
- }
107
- }
108
- });
109
- if (this.options.geoIpDatabaseFolder) {
110
- const geoIpLocator = new geoip_location_1.GeoIpLocator(this.options.geoIpDatabaseFolder);
111
- try {
112
- await geoIpLocator.start();
113
- this.geoIpLocator = geoIpLocator;
114
- }
115
- catch (err) {
116
- logger.error('Failed to start GeoIpLocator', { err });
117
- }
118
- }
119
- const port = await this.websocketServer.start();
120
- this.selectedPort = port;
121
- }
122
- }
123
- attachHandshaker(connection) {
124
- // TODO: use createIncomingHandshaker here?
125
- const handshaker = new Handshaker_1.Handshaker(this.localPeerDescriptor, connection);
126
- handshaker.once('handshakeRequest', (localPeerDescriptor, remoteProtocolVersion, remotePeerDescriptor) => {
127
- this.onServerSocketHandshakeRequest(localPeerDescriptor, connection, handshaker, remoteProtocolVersion, remotePeerDescriptor);
128
- });
129
- }
130
- onServerSocketHandshakeRequest(remotePeerDescriptor, websocketServerConnection, handshaker, remoteProtocolVersion, targetPeerDescriptor) {
131
- const nodeId = (0, identifiers_1.toNodeId)(remotePeerDescriptor);
132
- if (this.ongoingConnectRequests.has(nodeId)) {
133
- const { pendingConnection, delFunc } = this.ongoingConnectRequests.get(nodeId);
134
- if (!(0, version_1.isMaybeSupportedProtocolVersion)(remoteProtocolVersion)) {
135
- (0, Handshaker_1.rejectHandshake)(pendingConnection, websocketServerConnection, handshaker, DhtRpc_1.HandshakeError.UNSUPPORTED_PROTOCOL_VERSION);
136
- delFunc();
137
- }
138
- else if (targetPeerDescriptor && !(0, identifiers_1.areEqualPeerDescriptors)(this.localPeerDescriptor, targetPeerDescriptor)) {
139
- (0, Handshaker_1.rejectHandshake)(pendingConnection, websocketServerConnection, handshaker, DhtRpc_1.HandshakeError.INVALID_TARGET_PEER_DESCRIPTOR);
140
- delFunc();
141
- }
142
- else {
143
- (0, Handshaker_1.acceptHandshake)(handshaker, pendingConnection, websocketServerConnection);
144
- }
145
- }
146
- else {
147
- const pendingConnection = new PendingConnection_1.PendingConnection(remotePeerDescriptor);
148
- if (!(0, version_1.isMaybeSupportedProtocolVersion)(remoteProtocolVersion)) {
149
- (0, Handshaker_1.rejectHandshake)(pendingConnection, websocketServerConnection, handshaker, DhtRpc_1.HandshakeError.UNSUPPORTED_PROTOCOL_VERSION);
150
- }
151
- else if (targetPeerDescriptor && !(0, identifiers_1.areEqualPeerDescriptors)(this.localPeerDescriptor, targetPeerDescriptor)) {
152
- (0, Handshaker_1.rejectHandshake)(pendingConnection, websocketServerConnection, handshaker, DhtRpc_1.HandshakeError.INVALID_TARGET_PEER_DESCRIPTOR);
153
- }
154
- else if (this.options.onNewConnection(pendingConnection)) {
155
- (0, Handshaker_1.acceptHandshake)(handshaker, pendingConnection, websocketServerConnection);
156
- }
157
- else {
158
- (0, Handshaker_1.rejectHandshake)(pendingConnection, websocketServerConnection, handshaker, DhtRpc_1.HandshakeError.DUPLICATE_CONNECTION);
159
- }
160
- }
161
- }
162
- async checkConnectivity(allowSelfSignedCertificate) {
163
- // TODO: this could throw?
164
- if (this.abortController.signal.aborted) {
165
- return {
166
- host: '127.0.0.1',
167
- natType: ConnectionManager_1.NatType.UNKNOWN,
168
- ipAddress: (0, utils_1.ipv4ToNumber)('127.0.0.1'),
169
- protocolVersion: version_1.LOCAL_PROTOCOL_VERSION
170
- };
171
- }
172
- if (!this.options.entrypoints || this.options.entrypoints.length === 0) {
173
- // return connectivity info given in options
174
- return {
175
- host: this.host,
176
- natType: ConnectionManager_1.NatType.OPEN_INTERNET,
177
- websocket: {
178
- host: this.host,
179
- port: this.selectedPort,
180
- tls: this.options.tlsCertificate !== undefined
181
- },
182
- // TODO: Resolve the given host name or or use as is if IP was given.
183
- ipAddress: (0, utils_1.ipv4ToNumber)('127.0.0.1'),
184
- protocolVersion: version_1.LOCAL_PROTOCOL_VERSION
185
- };
186
- }
187
- const shuffledEntrypoints = (0, shuffle_1.default)(this.options.entrypoints);
188
- while (shuffledEntrypoints.length > 0 && !this.abortController.signal.aborted) {
189
- const entryPoint = shuffledEntrypoints[0];
190
- try {
191
- // Do real connectivity checking
192
- const connectivityRequest = {
193
- port: this.selectedPort ?? connectivityRequestHandler_1.DISABLE_CONNECTIVITY_PROBE,
194
- host: this.host,
195
- tls: this.websocketServer ? this.options.serverEnableTls : false,
196
- allowSelfSignedCertificate
197
- };
198
- if (!this.abortController.signal.aborted) {
199
- return await (0, connectivityChecker_1.sendConnectivityRequest)(connectivityRequest, entryPoint);
200
- }
201
- else {
202
- throw new Err.ConnectionFailed('ConnectivityChecker is destroyed');
203
- }
204
- }
205
- catch (err) {
206
- const error = `Failed to connect to entrypoint with id ${(0, identifiers_1.toNodeId)(entryPoint)} `
207
- + `and URL ${(0, WebsocketClientConnector_1.connectivityMethodToWebsocketUrl)(entryPoint.websocket)}`;
208
- logger.error(error, { err });
209
- shuffledEntrypoints.shift();
210
- await (0, utils_1.wait)(2000, this.abortController.signal);
211
- }
212
- }
213
- throw new errors_1.WebsocketServerStartError(`Failed to connect to the entrypoints after ${this.options.entrypoints.length} attempts\n`
214
- + `Attempted hosts: ${this.options.entrypoints.map((entry) => `${entry.websocket.host}:${entry.websocket.port}`).join(', ')}`);
215
- }
216
- async autoCertify() {
217
- this.autoCertifierClient = new AutoCertifierClientFacade_1.AutoCertifierClientFacade({
218
- configFile: this.options.autoCertifierConfigFile,
219
- transport: this.options.autoCertifierTransport,
220
- url: this.options.autoCertifierUrl,
221
- wsServerPort: this.selectedPort,
222
- setHost: (hostName) => this.setHost(hostName),
223
- updateCertificate: (certificate, privateKey) => this.websocketServer.updateCertificate(certificate, privateKey)
224
- });
225
- logger.trace(`AutoCertifying subdomain...`);
226
- await this.autoCertifierClient.start();
227
- }
228
- setHost(hostName) {
229
- logger.trace(`Setting host name to ${hostName}`);
230
- this.host = hostName;
231
- }
232
- connect(targetPeerDescriptor) {
233
- const nodeId = (0, identifiers_1.toNodeId)(targetPeerDescriptor);
234
- if (this.ongoingConnectRequests.has(nodeId)) {
235
- return this.ongoingConnectRequests.get(nodeId).pendingConnection;
236
- }
237
- return this.requestConnectionFromPeer(this.localPeerDescriptor, targetPeerDescriptor);
238
- }
239
- requestConnectionFromPeer(localPeerDescriptor, targetPeerDescriptor) {
240
- setImmediate(() => {
241
- const remoteConnector = new WebsocketClientConnectorRpcRemote_1.WebsocketClientConnectorRpcRemote(localPeerDescriptor, targetPeerDescriptor, this.options.rpcCommunicator, DhtRpc_client_1.WebsocketClientConnectorRpcClient);
242
- remoteConnector.requestConnection().then(() => {
243
- logger.trace('Sent WebsocketConnectionRequest notification to peer', { targetPeerDescriptor });
244
- }, (err) => {
245
- logger.debug('Failed to send WebsocketConnectionRequest notification to peer ', {
246
- error: err, targetPeerDescriptor
247
- });
248
- });
249
- });
250
- const pendingConnection = new PendingConnection_1.PendingConnection(targetPeerDescriptor);
251
- const nodeId = (0, identifiers_1.toNodeId)(targetPeerDescriptor);
252
- // TODO: can this leak?
253
- const delFunc = () => {
254
- pendingConnection.off('connected', delFunc);
255
- pendingConnection.off('disconnected', delFunc);
256
- this.ongoingConnectRequests.delete(nodeId);
257
- };
258
- pendingConnection.on('connected', delFunc);
259
- pendingConnection.on('disconnected', delFunc);
260
- this.ongoingConnectRequests.set(nodeId, { pendingConnection, delFunc });
261
- return pendingConnection;
262
- }
263
- isPossibleToFormConnection(targetPeerDescriptor) {
264
- const connectionType = (0, Connectivity_1.expectedConnectionType)(this.localPeerDescriptor, targetPeerDescriptor);
265
- return (connectionType === IConnection_1.ConnectionType.WEBSOCKET_SERVER);
266
- }
267
- setLocalPeerDescriptor(localPeerDescriptor) {
268
- this.localPeerDescriptor = localPeerDescriptor;
269
- }
270
- async destroy() {
271
- this.abortController.abort();
272
- const requests = Array.from(this.ongoingConnectRequests.values());
273
- requests.forEach((ongoingConnectRequest) => ongoingConnectRequest.pendingConnection.close(true));
274
- await this.websocketServer?.stop();
275
- this.geoIpLocator?.stop();
276
- }
277
- }
278
- exports.WebsocketServerConnector = WebsocketServerConnector;
279
- //# sourceMappingURL=WebsocketServerConnector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebsocketServerConnector.js","sourceRoot":"","sources":["../../../../src/connection/websocket/WebsocketServerConnector.ts"],"names":[],"mappings":"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"}
@@ -1,119 +0,0 @@
1
- import { MetricsContext } from '@streamr/utils';
2
- import { EventEmitter } from 'eventemitter3';
3
- import { ConnectionLocker, PortRange, TlsCertificate } from '../connection/ConnectionManager';
4
- import { ConnectionsView } from '../connection/ConnectionsView';
5
- import { IceServer } from '../connection/webrtc/WebrtcConnector';
6
- import { DhtAddress } from '../identifiers';
7
- import { Any } from '../../generated/google/protobuf/any';
8
- import { DataEntry, Message, PeerDescriptor } from '../../generated/packages/dht/protos/DhtRpc';
9
- import { ITransport, TransportEvents } from '../transport/ITransport';
10
- import { ServiceID } from '../types/ServiceID';
11
- import { RingContacts } from './contact/RingContactList';
12
- import { RingIdRaw } from './contact/ringIdentifiers';
13
- export interface DhtNodeEvents extends TransportEvents {
14
- nearbyContactAdded: (peerDescriptor: PeerDescriptor) => void;
15
- nearbyContactRemoved: (peerDescriptor: PeerDescriptor) => void;
16
- randomContactAdded: (peerDescriptor: PeerDescriptor) => void;
17
- randomContactRemoved: (peerDescriptor: PeerDescriptor) => void;
18
- ringContactAdded: (peerDescriptor: PeerDescriptor) => void;
19
- ringContactRemoved: (peerDescriptor: PeerDescriptor) => void;
20
- manualRejoinRequired: () => void;
21
- }
22
- export interface DhtNodeOptions {
23
- serviceId?: ServiceID;
24
- joinParallelism?: number;
25
- maxContactCount?: number;
26
- numberOfNodesPerKBucket?: number;
27
- joinNoProgressLimit?: number;
28
- peerDiscoveryQueryBatchSize?: number;
29
- dhtJoinTimeout?: number;
30
- metricsContext?: MetricsContext;
31
- storeHighestTtl?: number;
32
- storeMaxTtl?: number;
33
- networkConnectivityTimeout?: number;
34
- storageRedundancyFactor?: number;
35
- periodicallyPingNeighbors?: boolean;
36
- periodicallyPingRingContacts?: boolean;
37
- neighborPingLimit?: number;
38
- transport?: ITransport;
39
- connectionsView?: ConnectionsView;
40
- connectionLocker?: ConnectionLocker;
41
- peerDescriptor?: PeerDescriptor;
42
- entryPoints?: PeerDescriptor[];
43
- websocketHost?: string;
44
- websocketPortRange?: PortRange;
45
- websocketServerEnableTls?: boolean;
46
- nodeId?: DhtAddress;
47
- region?: number;
48
- rpcRequestTimeout?: number;
49
- iceServers?: IceServer[];
50
- webrtcAllowPrivateAddresses?: boolean;
51
- webrtcDatachannelBufferThresholdLow?: number;
52
- webrtcDatachannelBufferThresholdHigh?: number;
53
- webrtcPortRange?: PortRange;
54
- maxMessageSize?: number;
55
- maxConnections?: number;
56
- tlsCertificate?: TlsCertificate;
57
- externalIp?: string;
58
- autoCertifierUrl?: string;
59
- autoCertifierConfigFile?: string;
60
- geoIpDatabaseFolder?: string;
61
- allowIncomingPrivateConnections?: boolean;
62
- }
63
- export declare const NUMBER_OF_NODES_PER_KBUCKET_DEFAULT = 8;
64
- export declare const CONTROL_LAYER_NODE_SERVICE_ID = "layer0";
65
- export declare class DhtNode extends EventEmitter<DhtNodeEvents> implements ITransport {
66
- private readonly options;
67
- private rpcCommunicator?;
68
- private transport?;
69
- private localPeerDescriptor?;
70
- private router?;
71
- private storeManager?;
72
- private localDataStore;
73
- private recursiveOperationManager?;
74
- private peerDiscovery?;
75
- private peerManager?;
76
- private connectionsView?;
77
- connectionLocker?: ConnectionLocker;
78
- private started;
79
- private abortController;
80
- constructor(conf: DhtNodeOptions);
81
- private validateOptions;
82
- start(): Promise<void>;
83
- private initPeerManager;
84
- private bindRpcLocalMethods;
85
- private handleMessageFromTransport;
86
- private handleMessageFromRouter;
87
- private generatePeerDescriptorCallBack;
88
- getClosestContacts(limit?: number): PeerDescriptor[];
89
- getRandomContacts(limit?: number): PeerDescriptor[];
90
- getRingContacts(): RingContacts;
91
- getClosestRingContactsTo(ringIdRaw: RingIdRaw, limit?: number): RingContacts;
92
- getNodeId(): DhtAddress;
93
- getNeighborCount(): number;
94
- removeContact(nodeId: DhtAddress): void;
95
- send(msg: Message): Promise<void>;
96
- private getConnectedEntryPoints;
97
- joinDht(entryPointDescriptors: PeerDescriptor[], doAdditionalDistantPeerDiscovery?: boolean, retry?: boolean): Promise<void>;
98
- joinRing(): Promise<void>;
99
- storeDataToDht(key: DhtAddress, data: Any, creator?: DhtAddress): Promise<PeerDescriptor[]>;
100
- storeDataToDhtViaPeer(key: DhtAddress, data: Any, peer: PeerDescriptor): Promise<PeerDescriptor[]>;
101
- fetchDataFromDht(key: DhtAddress): Promise<DataEntry[]>;
102
- fetchDataFromDhtViaPeer(key: DhtAddress, peer: PeerDescriptor): Promise<DataEntry[]>;
103
- private executeRecursiveOperation;
104
- deleteDataFromDht(key: DhtAddress, waitForCompletion: boolean): Promise<void>;
105
- findClosestNodesFromDht(key: DhtAddress): Promise<PeerDescriptor[]>;
106
- private findClosestNodesViaPeer;
107
- getTransport(): ITransport;
108
- getLocalPeerDescriptor(): PeerDescriptor;
109
- getNeighbors(): PeerDescriptor[];
110
- getConnectionsView(): ConnectionsView;
111
- getLocalLockedConnectionCount(): number;
112
- getRemoteLockedConnectionCount(): number;
113
- getWeakLockedConnectionCount(): number;
114
- waitForNetworkConnectivity(): Promise<void>;
115
- hasJoined(): boolean;
116
- getDiagnosticInfo(): Record<string, unknown>;
117
- stop(): Promise<void>;
118
- private createDhtNodeRpcRemote;
119
- }