libp2p 0.43.4 → 0.44.0-0d46c78f

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 (215) hide show
  1. package/dist/index.min.js +29 -29
  2. package/dist/src/address-manager/index.d.ts +4 -4
  3. package/dist/src/address-manager/index.d.ts.map +1 -1
  4. package/dist/src/address-manager/index.js +9 -6
  5. package/dist/src/address-manager/index.js.map +1 -1
  6. package/dist/src/autonat/index.d.ts +1 -2
  7. package/dist/src/autonat/index.d.ts.map +1 -1
  8. package/dist/src/autonat/index.js +19 -19
  9. package/dist/src/autonat/index.js.map +1 -1
  10. package/dist/src/circuit-relay/server/advert-service.d.ts.map +1 -1
  11. package/dist/src/circuit-relay/server/advert-service.js +2 -2
  12. package/dist/src/circuit-relay/server/advert-service.js.map +1 -1
  13. package/dist/src/circuit-relay/server/index.d.ts.map +1 -1
  14. package/dist/src/circuit-relay/server/index.js +7 -3
  15. package/dist/src/circuit-relay/server/index.js.map +1 -1
  16. package/dist/src/circuit-relay/transport/discovery.d.ts.map +1 -1
  17. package/dist/src/circuit-relay/transport/discovery.js +3 -1
  18. package/dist/src/circuit-relay/transport/discovery.js.map +1 -1
  19. package/dist/src/circuit-relay/transport/index.d.ts +3 -0
  20. package/dist/src/circuit-relay/transport/index.d.ts.map +1 -1
  21. package/dist/src/circuit-relay/transport/index.js +6 -2
  22. package/dist/src/circuit-relay/transport/index.js.map +1 -1
  23. package/dist/src/circuit-relay/transport/listener.d.ts +3 -0
  24. package/dist/src/circuit-relay/transport/listener.d.ts.map +1 -1
  25. package/dist/src/circuit-relay/transport/listener.js +5 -4
  26. package/dist/src/circuit-relay/transport/listener.js.map +1 -1
  27. package/dist/src/circuit-relay/transport/reservation-store.d.ts +4 -1
  28. package/dist/src/circuit-relay/transport/reservation-store.d.ts.map +1 -1
  29. package/dist/src/circuit-relay/transport/reservation-store.js +11 -6
  30. package/dist/src/circuit-relay/transport/reservation-store.js.map +1 -1
  31. package/dist/src/circuit-relay/utils.d.ts.map +1 -1
  32. package/dist/src/circuit-relay/utils.js +3 -1
  33. package/dist/src/circuit-relay/utils.js.map +1 -1
  34. package/dist/src/components.d.ts +7 -69
  35. package/dist/src/components.d.ts.map +1 -1
  36. package/dist/src/components.js +60 -174
  37. package/dist/src/components.js.map +1 -1
  38. package/dist/src/config/connection-gater.browser.d.ts +8 -0
  39. package/dist/src/config/connection-gater.browser.d.ts.map +1 -0
  40. package/dist/src/config/connection-gater.browser.js +27 -0
  41. package/dist/src/config/connection-gater.browser.js.map +1 -0
  42. package/dist/src/config/connection-gater.d.ts +6 -0
  43. package/dist/src/config/connection-gater.d.ts.map +1 -0
  44. package/dist/src/config/connection-gater.js +18 -0
  45. package/dist/src/config/connection-gater.js.map +1 -0
  46. package/dist/src/config.d.ts +2 -1
  47. package/dist/src/config.d.ts.map +1 -1
  48. package/dist/src/config.js +0 -71
  49. package/dist/src/config.js.map +1 -1
  50. package/dist/src/connection-manager/auto-dial.d.ts +39 -0
  51. package/dist/src/connection-manager/auto-dial.d.ts.map +1 -0
  52. package/dist/src/connection-manager/auto-dial.js +136 -0
  53. package/dist/src/connection-manager/auto-dial.js.map +1 -0
  54. package/dist/src/connection-manager/connection-pruner.d.ts +32 -0
  55. package/dist/src/connection-manager/connection-pruner.d.ts.map +1 -0
  56. package/dist/src/connection-manager/connection-pruner.js +111 -0
  57. package/dist/src/connection-manager/connection-pruner.js.map +1 -0
  58. package/dist/src/connection-manager/constants.d.ts +49 -0
  59. package/dist/src/connection-manager/constants.d.ts.map +1 -0
  60. package/dist/src/connection-manager/constants.js +49 -0
  61. package/dist/src/connection-manager/constants.js.map +1 -0
  62. package/dist/src/connection-manager/dial-queue.d.ts +78 -0
  63. package/dist/src/connection-manager/dial-queue.d.ts.map +1 -0
  64. package/dist/src/connection-manager/dial-queue.js +372 -0
  65. package/dist/src/connection-manager/dial-queue.js.map +1 -0
  66. package/dist/src/connection-manager/index.d.ts +70 -73
  67. package/dist/src/connection-manager/index.d.ts.map +1 -1
  68. package/dist/src/connection-manager/index.js +118 -247
  69. package/dist/src/connection-manager/index.js.map +1 -1
  70. package/dist/src/connection-manager/utils.d.ts +9 -0
  71. package/dist/src/connection-manager/utils.d.ts.map +1 -0
  72. package/dist/src/connection-manager/utils.js +66 -0
  73. package/dist/src/connection-manager/utils.js.map +1 -0
  74. package/dist/src/content-routing/index.d.ts +0 -10
  75. package/dist/src/content-routing/index.d.ts.map +1 -1
  76. package/dist/src/content-routing/index.js +7 -42
  77. package/dist/src/content-routing/index.js.map +1 -1
  78. package/dist/src/content-routing/utils.d.ts.map +1 -1
  79. package/dist/src/content-routing/utils.js +3 -1
  80. package/dist/src/content-routing/utils.js.map +1 -1
  81. package/dist/src/fetch/index.d.ts +13 -35
  82. package/dist/src/fetch/index.d.ts.map +1 -1
  83. package/dist/src/fetch/index.js +10 -12
  84. package/dist/src/fetch/index.js.map +1 -1
  85. package/dist/src/identify/index.d.ts +16 -48
  86. package/dist/src/identify/index.d.ts.map +1 -1
  87. package/dist/src/identify/index.js +203 -201
  88. package/dist/src/identify/index.js.map +1 -1
  89. package/dist/src/index.d.ts +11 -67
  90. package/dist/src/index.d.ts.map +1 -1
  91. package/dist/src/index.js.map +1 -1
  92. package/dist/src/insecure/index.d.ts.map +1 -1
  93. package/dist/src/insecure/index.js +3 -1
  94. package/dist/src/insecure/index.js.map +1 -1
  95. package/dist/src/libp2p.d.ts +12 -35
  96. package/dist/src/libp2p.d.ts.map +1 -1
  97. package/dist/src/libp2p.js +141 -206
  98. package/dist/src/libp2p.js.map +1 -1
  99. package/dist/src/peer-routing.d.ts +1 -38
  100. package/dist/src/peer-routing.d.ts.map +1 -1
  101. package/dist/src/peer-routing.js +0 -59
  102. package/dist/src/peer-routing.js.map +1 -1
  103. package/dist/src/ping/constants.d.ts +4 -0
  104. package/dist/src/ping/constants.d.ts.map +1 -1
  105. package/dist/src/ping/constants.js +10 -0
  106. package/dist/src/ping/constants.js.map +1 -1
  107. package/dist/src/ping/index.d.ts +10 -27
  108. package/dist/src/ping/index.d.ts.map +1 -1
  109. package/dist/src/ping/index.js +18 -21
  110. package/dist/src/ping/index.js.map +1 -1
  111. package/dist/src/registrar.d.ts +5 -2
  112. package/dist/src/registrar.d.ts.map +1 -1
  113. package/dist/src/registrar.js +27 -25
  114. package/dist/src/registrar.js.map +1 -1
  115. package/dist/src/transport-manager.d.ts +15 -4
  116. package/dist/src/transport-manager.d.ts.map +1 -1
  117. package/dist/src/transport-manager.js +37 -12
  118. package/dist/src/transport-manager.js.map +1 -1
  119. package/dist/src/upgrader.d.ts +16 -11
  120. package/dist/src/upgrader.d.ts.map +1 -1
  121. package/dist/src/upgrader.js +38 -47
  122. package/dist/src/upgrader.js.map +1 -1
  123. package/dist/src/upnp-nat/index.d.ts +42 -0
  124. package/dist/src/upnp-nat/index.d.ts.map +1 -0
  125. package/dist/src/{nat-manager.js → upnp-nat/index.js} +11 -7
  126. package/dist/src/upnp-nat/index.js.map +1 -0
  127. package/package.json +70 -54
  128. package/src/address-manager/index.ts +12 -8
  129. package/src/autonat/index.ts +20 -22
  130. package/src/circuit-relay/server/advert-service.ts +2 -2
  131. package/src/circuit-relay/server/index.ts +7 -3
  132. package/src/circuit-relay/transport/discovery.ts +3 -1
  133. package/src/circuit-relay/transport/index.ts +10 -2
  134. package/src/circuit-relay/transport/listener.ts +8 -4
  135. package/src/circuit-relay/transport/reservation-store.ts +15 -7
  136. package/src/circuit-relay/utils.ts +3 -1
  137. package/src/components.ts +72 -251
  138. package/src/config/connection-gater.browser.ts +31 -0
  139. package/src/config/connection-gater.ts +19 -0
  140. package/src/config.ts +3 -73
  141. package/src/connection-manager/auto-dial.ts +189 -0
  142. package/src/connection-manager/connection-pruner.ts +157 -0
  143. package/src/connection-manager/constants.ts +60 -0
  144. package/src/connection-manager/dial-queue.ts +506 -0
  145. package/src/connection-manager/index.ts +194 -339
  146. package/src/connection-manager/utils.ts +76 -0
  147. package/src/content-routing/index.ts +7 -55
  148. package/src/content-routing/utils.ts +3 -1
  149. package/src/fetch/index.ts +55 -18
  150. package/src/identify/index.ts +238 -228
  151. package/src/index.ts +12 -76
  152. package/src/insecure/index.ts +9 -5
  153. package/src/libp2p.ts +146 -265
  154. package/src/peer-routing.ts +1 -101
  155. package/src/ping/constants.ts +11 -0
  156. package/src/ping/index.ts +32 -28
  157. package/src/registrar.ts +31 -27
  158. package/src/transport-manager.ts +49 -15
  159. package/src/upgrader.ts +62 -57
  160. package/src/{nat-manager.ts → upnp-nat/index.ts} +15 -16
  161. package/src/version.ts +1 -1
  162. package/dist/src/connection-manager/auto-dialler.d.ts +0 -42
  163. package/dist/src/connection-manager/auto-dialler.d.ts.map +0 -1
  164. package/dist/src/connection-manager/auto-dialler.js +0 -105
  165. package/dist/src/connection-manager/auto-dialler.js.map +0 -1
  166. package/dist/src/connection-manager/dialer/dial-request.d.ts +0 -27
  167. package/dist/src/connection-manager/dialer/dial-request.d.ts.map +0 -1
  168. package/dist/src/connection-manager/dialer/dial-request.js +0 -114
  169. package/dist/src/connection-manager/dialer/dial-request.js.map +0 -1
  170. package/dist/src/connection-manager/dialer/index.d.ts +0 -121
  171. package/dist/src/connection-manager/dialer/index.d.ts.map +0 -1
  172. package/dist/src/connection-manager/dialer/index.js +0 -324
  173. package/dist/src/connection-manager/dialer/index.js.map +0 -1
  174. package/dist/src/connection-manager/latency-monitor.d.ts +0 -120
  175. package/dist/src/connection-manager/latency-monitor.d.ts.map +0 -1
  176. package/dist/src/connection-manager/latency-monitor.js +0 -220
  177. package/dist/src/connection-manager/latency-monitor.js.map +0 -1
  178. package/dist/src/connection-manager/visibility-change-emitter.d.ts +0 -66
  179. package/dist/src/connection-manager/visibility-change-emitter.d.ts.map +0 -1
  180. package/dist/src/connection-manager/visibility-change-emitter.js +0 -118
  181. package/dist/src/connection-manager/visibility-change-emitter.js.map +0 -1
  182. package/dist/src/constants.d.ts +0 -27
  183. package/dist/src/constants.d.ts.map +0 -1
  184. package/dist/src/constants.js +0 -31
  185. package/dist/src/constants.js.map +0 -1
  186. package/dist/src/dht/dht-content-routing.d.ts +0 -17
  187. package/dist/src/dht/dht-content-routing.d.ts.map +0 -1
  188. package/dist/src/dht/dht-content-routing.js +0 -32
  189. package/dist/src/dht/dht-content-routing.js.map +0 -1
  190. package/dist/src/dht/dht-peer-routing.d.ts +0 -15
  191. package/dist/src/dht/dht-peer-routing.d.ts.map +0 -1
  192. package/dist/src/dht/dht-peer-routing.js +0 -26
  193. package/dist/src/dht/dht-peer-routing.js.map +0 -1
  194. package/dist/src/dht/dummy-dht.d.ts +0 -20
  195. package/dist/src/dht/dummy-dht.d.ts.map +0 -1
  196. package/dist/src/dht/dummy-dht.js +0 -46
  197. package/dist/src/dht/dummy-dht.js.map +0 -1
  198. package/dist/src/nat-manager.d.ts +0 -74
  199. package/dist/src/nat-manager.d.ts.map +0 -1
  200. package/dist/src/nat-manager.js.map +0 -1
  201. package/dist/src/peer-record-updater.d.ts +0 -24
  202. package/dist/src/peer-record-updater.d.ts.map +0 -1
  203. package/dist/src/peer-record-updater.js +0 -44
  204. package/dist/src/peer-record-updater.js.map +0 -1
  205. package/dist/typedoc-urls.json +0 -41
  206. package/src/connection-manager/auto-dialler.ts +0 -158
  207. package/src/connection-manager/dialer/dial-request.ts +0 -144
  208. package/src/connection-manager/dialer/index.ts +0 -461
  209. package/src/connection-manager/latency-monitor.ts +0 -319
  210. package/src/connection-manager/visibility-change-emitter.ts +0 -135
  211. package/src/constants.ts +0 -36
  212. package/src/dht/dht-content-routing.ts +0 -44
  213. package/src/dht/dht-peer-routing.ts +0 -36
  214. package/src/dht/dummy-dht.ts +0 -60
  215. package/src/peer-record-updater.ts +0 -65
@@ -1,32 +0,0 @@
1
- import drain from 'it-drain';
2
- import { CodeError } from '@libp2p/interfaces/errors';
3
- /**
4
- * Wrapper class to convert events into returned values
5
- */
6
- export class DHTContentRouting {
7
- constructor(dht) {
8
- this.dht = dht;
9
- }
10
- async provide(cid) {
11
- await drain(this.dht.provide(cid));
12
- }
13
- async *findProviders(cid, options = {}) {
14
- for await (const event of this.dht.findProviders(cid, options)) {
15
- if (event.name === 'PROVIDER') {
16
- yield* event.providers;
17
- }
18
- }
19
- }
20
- async put(key, value, options) {
21
- await drain(this.dht.put(key, value, options));
22
- }
23
- async get(key, options) {
24
- for await (const event of this.dht.get(key, options)) {
25
- if (event.name === 'VALUE') {
26
- return event.value;
27
- }
28
- }
29
- throw new CodeError('Not found', 'ERR_NOT_FOUND');
30
- }
31
- }
32
- //# sourceMappingURL=dht-content-routing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dht-content-routing.js","sourceRoot":"","sources":["../../../src/dht/dht-content-routing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAOrD;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAG5B,YAAa,GAAQ;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,OAAO,CAAE,GAAQ;QACrB,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,CAAE,aAAa,CAAE,GAAQ,EAAE,UAAwB,EAAE;QACzD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE;YAC9D,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;gBAC7B,KAAM,CAAC,CAAC,KAAK,CAAC,SAAS,CAAA;aACxB;SACF;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,GAAe,EAAE,KAAiB,EAAE,OAAsB;QACnE,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,GAAe,EAAE,OAAsB;QAChD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE;YACpD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;gBAC1B,OAAO,KAAK,CAAC,KAAK,CAAA;aACnB;SACF;QAED,MAAM,IAAI,SAAS,CAAC,WAAW,EAAE,eAAe,CAAC,CAAA;IACnD,CAAC;CACF"}
@@ -1,15 +0,0 @@
1
- import type { PeerRouting } from '@libp2p/interface-peer-routing';
2
- import type { DHT } from '@libp2p/interface-dht';
3
- import type { PeerId } from '@libp2p/interface-peer-id';
4
- import type { AbortOptions } from '@libp2p/interfaces';
5
- import type { PeerInfo } from '@libp2p/interface-peer-info';
6
- /**
7
- * Wrapper class to convert events into returned values
8
- */
9
- export declare class DHTPeerRouting implements PeerRouting {
10
- private readonly dht;
11
- constructor(dht: DHT);
12
- findPeer(peerId: PeerId, options?: AbortOptions): Promise<PeerInfo>;
13
- getClosestPeers(key: Uint8Array, options?: AbortOptions): AsyncIterable<PeerInfo>;
14
- }
15
- //# sourceMappingURL=dht-peer-routing.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dht-peer-routing.d.ts","sourceRoot":"","sources":["../../../src/dht/dht-peer-routing.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAE3D;;GAEG;AACH,qBAAa,cAAe,YAAW,WAAW;IAChD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAK;gBAEZ,GAAG,EAAE,GAAG;IAIf,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAUtE,eAAe,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,aAAa,CAAC,QAAQ,CAAC;CAO/F"}
@@ -1,26 +0,0 @@
1
- import { CodeError } from '@libp2p/interfaces/errors';
2
- import { messages, codes } from '../errors.js';
3
- /**
4
- * Wrapper class to convert events into returned values
5
- */
6
- export class DHTPeerRouting {
7
- constructor(dht) {
8
- this.dht = dht;
9
- }
10
- async findPeer(peerId, options = {}) {
11
- for await (const event of this.dht.findPeer(peerId, options)) {
12
- if (event.name === 'FINAL_PEER') {
13
- return event.peer;
14
- }
15
- }
16
- throw new CodeError(messages.NOT_FOUND, codes.ERR_NOT_FOUND);
17
- }
18
- async *getClosestPeers(key, options = {}) {
19
- for await (const event of this.dht.getClosestPeers(key, options)) {
20
- if (event.name === 'FINAL_PEER') {
21
- yield event.peer;
22
- }
23
- }
24
- }
25
- }
26
- //# sourceMappingURL=dht-peer-routing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dht-peer-routing.js","sourceRoot":"","sources":["../../../src/dht/dht-peer-routing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAO9C;;GAEG;AACH,MAAM,OAAO,cAAc;IAGzB,YAAa,GAAQ;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAE,MAAc,EAAE,UAAwB,EAAE;QACxD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;YAC5D,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;gBAC/B,OAAO,KAAK,CAAC,IAAI,CAAA;aAClB;SACF;QAED,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;IAC9D,CAAC;IAED,KAAK,CAAC,CAAE,eAAe,CAAE,GAAe,EAAE,UAAwB,EAAE;QAClE,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE;YAChE,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;gBAC/B,MAAM,KAAK,CAAC,IAAI,CAAA;aACjB;SACF;IACH,CAAC;CACF"}
@@ -1,20 +0,0 @@
1
- import type { DualDHT, QueryEvent, SingleDHT } from '@libp2p/interface-dht';
2
- import type { PeerDiscoveryEvents } from '@libp2p/interface-peer-discovery';
3
- import { EventEmitter } from '@libp2p/interfaces/events';
4
- import { symbol } from '@libp2p/interface-peer-discovery';
5
- export declare class DummyDHT extends EventEmitter<PeerDiscoveryEvents> implements DualDHT {
6
- get [symbol](): true;
7
- get [Symbol.toStringTag](): '@libp2p/dummy-dht';
8
- get wan(): SingleDHT;
9
- get lan(): SingleDHT;
10
- get(): AsyncIterable<QueryEvent>;
11
- findProviders(): AsyncIterable<QueryEvent>;
12
- findPeer(): AsyncIterable<QueryEvent>;
13
- getClosestPeers(): AsyncIterable<QueryEvent>;
14
- provide(): AsyncIterable<QueryEvent>;
15
- put(): AsyncIterable<QueryEvent>;
16
- getMode(): Promise<'client' | 'server'>;
17
- setMode(): Promise<void>;
18
- refreshRoutingTable(): Promise<void>;
19
- }
20
- //# sourceMappingURL=dummy-dht.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dummy-dht.d.ts","sourceRoot":"","sources":["../../../src/dht/dummy-dht.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAG3E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AAEzD,qBAAa,QAAS,SAAQ,YAAY,CAAC,mBAAmB,CAAE,YAAW,OAAO;IAChF,IAAI,CAAC,MAAM,CAAC,IAAK,IAAI,CAEpB;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAK,mBAAmB,CAE/C;IAED,IAAI,GAAG,IAAK,SAAS,CAEpB;IAED,IAAI,GAAG,IAAK,SAAS,CAEpB;IAED,GAAG,IAAK,aAAa,CAAC,UAAU,CAAC;IAIjC,aAAa,IAAK,aAAa,CAAC,UAAU,CAAC;IAI3C,QAAQ,IAAK,aAAa,CAAC,UAAU,CAAC;IAItC,eAAe,IAAK,aAAa,CAAC,UAAU,CAAC;IAI7C,OAAO,IAAK,aAAa,CAAC,UAAU,CAAC;IAIrC,GAAG,IAAK,aAAa,CAAC,UAAU,CAAC;IAI3B,OAAO,IAAK,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAIxC,OAAO,IAAK,OAAO,CAAC,IAAI,CAAC;IAIzB,mBAAmB,IAAK,OAAO,CAAC,IAAI,CAAC;CAG5C"}
@@ -1,46 +0,0 @@
1
- import { CodeError } from '@libp2p/interfaces/errors';
2
- import { messages, codes } from '../errors.js';
3
- import { EventEmitter } from '@libp2p/interfaces/events';
4
- import { symbol } from '@libp2p/interface-peer-discovery';
5
- export class DummyDHT extends EventEmitter {
6
- get [symbol]() {
7
- return true;
8
- }
9
- get [Symbol.toStringTag]() {
10
- return '@libp2p/dummy-dht';
11
- }
12
- get wan() {
13
- throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED);
14
- }
15
- get lan() {
16
- throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED);
17
- }
18
- get() {
19
- throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED);
20
- }
21
- findProviders() {
22
- throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED);
23
- }
24
- findPeer() {
25
- throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED);
26
- }
27
- getClosestPeers() {
28
- throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED);
29
- }
30
- provide() {
31
- throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED);
32
- }
33
- put() {
34
- throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED);
35
- }
36
- async getMode() {
37
- throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED);
38
- }
39
- async setMode() {
40
- throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED);
41
- }
42
- async refreshRoutingTable() {
43
- throw new CodeError(messages.DHT_DISABLED, codes.DHT_DISABLED);
44
- }
45
- }
46
- //# sourceMappingURL=dummy-dht.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dummy-dht.js","sourceRoot":"","sources":["../../../src/dht/dummy-dht.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AAEzD,MAAM,OAAO,QAAS,SAAQ,YAAiC;IAC7D,IAAI,CAAC,MAAM,CAAC;QACV,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,mBAAmB,CAAA;IAC5B,CAAC;IAED,IAAI,GAAG;QACL,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAChE,CAAC;IAED,IAAI,GAAG;QACL,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAChE,CAAC;IAED,GAAG;QACD,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAChE,CAAC;IAED,aAAa;QACX,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAChE,CAAC;IAED,QAAQ;QACN,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAChE,CAAC;IAED,eAAe;QACb,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAChE,CAAC;IAED,OAAO;QACL,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAChE,CAAC;IAED,GAAG;QACD,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAChE,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAChE,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAChE,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAChE,CAAC;CACF"}
@@ -1,74 +0,0 @@
1
- import { NatAPI } from '@achingbrain/nat-port-mapper';
2
- import type { Startable } from '@libp2p/interfaces/startable';
3
- import type { TransportManager } from '@libp2p/interface-transport';
4
- import type { PeerId } from '@libp2p/interface-peer-id';
5
- import type { AddressManager } from '@libp2p/interface-address-manager';
6
- export interface PMPOptions {
7
- /**
8
- * Whether to enable PMP as well as UPnP
9
- */
10
- enabled?: boolean;
11
- }
12
- export interface NatManagerInit {
13
- /**
14
- * Whether to enable the NAT manager
15
- */
16
- enabled: boolean;
17
- /**
18
- * Pass a value to use instead of auto-detection
19
- */
20
- externalAddress?: string;
21
- /**
22
- * Pass a value to use instead of auto-detection
23
- */
24
- localAddress?: string;
25
- /**
26
- * A string value to use for the port mapping description on the gateway
27
- */
28
- description?: string;
29
- /**
30
- * How long UPnP port mappings should last for in seconds (minimum 1200)
31
- */
32
- ttl?: number;
33
- /**
34
- * Whether to automatically refresh UPnP port mappings when their TTL is reached
35
- */
36
- keepAlive: boolean;
37
- /**
38
- * Pass a value to use instead of auto-detection
39
- */
40
- gateway?: string;
41
- }
42
- export interface NatManagerComponents {
43
- peerId: PeerId;
44
- transportManager: TransportManager;
45
- addressManager: AddressManager;
46
- }
47
- export declare class NatManager implements Startable {
48
- private readonly components;
49
- private readonly enabled;
50
- private readonly externalAddress?;
51
- private readonly localAddress?;
52
- private readonly description;
53
- private readonly ttl;
54
- private readonly keepAlive;
55
- private readonly gateway?;
56
- private started;
57
- private client?;
58
- constructor(components: NatManagerComponents, init: NatManagerInit);
59
- isStarted(): boolean;
60
- start(): void;
61
- /**
62
- * Attempt to use uPnP to configure port mapping using the current gateway.
63
- *
64
- * Run after start to ensure the transport manager has all addresses configured.
65
- */
66
- afterStart(): void;
67
- _start(): Promise<void>;
68
- _getClient(): Promise<NatAPI>;
69
- /**
70
- * Stops the NAT manager
71
- */
72
- stop(): Promise<void>;
73
- }
74
- //# sourceMappingURL=nat-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nat-manager.d.ts","sourceRoot":"","sources":["../../src/nat-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAS9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AASvE,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;IAEhB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED,qBAAa,UAAW,YAAW,SAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAQ;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAC,CAAQ;gBAEV,UAAU,EAAE,oBAAoB,EAAE,IAAI,EAAE,cAAc;IAiBnE,SAAS,IAAK,OAAO;IAIrB,KAAK,IAAK,IAAI;IAId;;;;OAIG;IACH,UAAU,IAAK,IAAI;IAcb,MAAM,IAAK,OAAO,CAAC,IAAI,CAAC;IAuDxB,UAAU,IAAK,OAAO,CAAC,MAAM,CAAC;IAepC;;OAEG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;CAY7B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"nat-manager.js","sourceRoot":"","sources":["../../src/nat-manager.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import type { Startable } from '@libp2p/interfaces/startable';
2
- import type { TransportManager } from '@libp2p/interface-transport';
3
- import type { AddressManager } from '@libp2p/interface-address-manager';
4
- import type { PeerId } from '@libp2p/interface-peer-id';
5
- import type { PeerStore } from '@libp2p/interface-peer-store';
6
- export interface PeerRecordUpdaterComponents {
7
- peerId: PeerId;
8
- peerStore: PeerStore;
9
- transportManager: TransportManager;
10
- addressManager: AddressManager;
11
- }
12
- export declare class PeerRecordUpdater implements Startable {
13
- private readonly components;
14
- private started;
15
- constructor(components: PeerRecordUpdaterComponents);
16
- isStarted(): boolean;
17
- start(): Promise<void>;
18
- stop(): Promise<void>;
19
- /**
20
- * Create (or update if existing) self peer record and store it in the AddressBook.
21
- */
22
- update(): void;
23
- }
24
- //# sourceMappingURL=peer-record-updater.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"peer-record-updater.d.ts","sourceRoot":"","sources":["../../src/peer-record-updater.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAG7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAI7D,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED,qBAAa,iBAAkB,YAAW,SAAS;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,OAAO,CAAS;gBAEX,UAAU,EAAE,2BAA2B;IAMpD,SAAS,IAAK,OAAO;IAIf,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAOvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAO5B;;OAEG;IACH,MAAM,IAAK,IAAI;CAehB"}
@@ -1,44 +0,0 @@
1
- import { RecordEnvelope, PeerRecord } from '@libp2p/peer-record';
2
- import { logger } from '@libp2p/logger';
3
- import { protocols } from '@multiformats/multiaddr';
4
- const log = logger('libp2p:peer-record-updater');
5
- export class PeerRecordUpdater {
6
- constructor(components) {
7
- this.components = components;
8
- this.started = false;
9
- this.update = this.update.bind(this);
10
- }
11
- isStarted() {
12
- return this.started;
13
- }
14
- async start() {
15
- this.started = true;
16
- this.components.transportManager.addEventListener('listener:listening', this.update);
17
- this.components.transportManager.addEventListener('listener:close', this.update);
18
- this.components.addressManager.addEventListener('change:addresses', this.update);
19
- }
20
- async stop() {
21
- this.started = false;
22
- this.components.transportManager.removeEventListener('listener:listening', this.update);
23
- this.components.transportManager.removeEventListener('listener:close', this.update);
24
- this.components.addressManager.removeEventListener('change:addresses', this.update);
25
- }
26
- /**
27
- * Create (or update if existing) self peer record and store it in the AddressBook.
28
- */
29
- update() {
30
- Promise.resolve()
31
- .then(async () => {
32
- const peerRecord = new PeerRecord({
33
- peerId: this.components.peerId,
34
- multiaddrs: this.components.addressManager.getAddresses().map(ma => ma.decapsulateCode(protocols('p2p').code))
35
- });
36
- const envelope = await RecordEnvelope.seal(peerRecord, this.components.peerId);
37
- await this.components.peerStore.addressBook.consumePeerRecord(envelope);
38
- })
39
- .catch(err => {
40
- log.error('Could not update self peer record: %o', err);
41
- });
42
- }
43
- }
44
- //# sourceMappingURL=peer-record-updater.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"peer-record-updater.js","sourceRoot":"","sources":["../../src/peer-record-updater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAMnD,MAAM,GAAG,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAA;AAShD,MAAM,OAAO,iBAAiB;IAI5B,YAAa,UAAuC;QAClD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACpF,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAChF,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAClF,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACvF,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACnF,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACrF,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,CAAC,OAAO,EAAE;aACd,IAAI,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;gBAChC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;gBAC9B,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;aAC/G,CAAC,CAAA;YAEF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YAC9E,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;QACzE,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,CAAC,EAAE;YACX,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;IACN,CAAC;CACF"}
@@ -1,41 +0,0 @@
1
- {
2
- "codec": "https://libp2p.github.io/js-libp2p/functions/circuit_relay._internal_.Limit.codec.html",
3
- "decode": "https://libp2p.github.io/js-libp2p/functions/circuit_relay._internal_.Limit.decode.html",
4
- "encode": "https://libp2p.github.io/js-libp2p/functions/circuit_relay._internal_.Limit.encode.html",
5
- "AdvertServiceComponents": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay._internal_.AdvertServiceComponents.html",
6
- "AdvertServiceInit": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay._internal_.AdvertServiceInit.html",
7
- "CircuitRelayServerComponents": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay._internal_.CircuitRelayServerComponents.html",
8
- "CircuitRelayServerInit": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay._internal_.CircuitRelayServerInit.html",
9
- "CircuitRelayTransportComponents": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay._internal_.CircuitRelayTransportComponents.html",
10
- "CircuitRelayTransportInit": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay._internal_.CircuitRelayTransportInit.html",
11
- "Limit": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay._internal_.Limit-1.html",
12
- "RelayDiscoveryComponents": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay._internal_.RelayDiscoveryComponents.html",
13
- "RelayStoreInit": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay._internal_.RelayStoreInit.html",
14
- "ReservationStoreInit": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay._internal_.ReservationStoreInit.html",
15
- "CircuitRelayService": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay.CircuitRelayService.html",
16
- "CircuitRelayServiceEvents": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay.CircuitRelayServiceEvents.html",
17
- "RelayReservation": "https://libp2p.github.io/js-libp2p/interfaces/circuit_relay.RelayReservation.html",
18
- "circuitRelayServer": "https://libp2p.github.io/js-libp2p/functions/circuit_relay.circuitRelayServer.html",
19
- "circuitRelayTransport": "https://libp2p.github.io/js-libp2p/functions/circuit_relay.circuitRelayTransport.html",
20
- "AddressFilter": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.AddressFilter.html",
21
- "AddressManagerInit": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.AddressManagerInit.html",
22
- "AutonatServiceInit": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.AutonatServiceInit.html",
23
- "Components": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.Components.html",
24
- "ConnectionManagerConfig": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.ConnectionManagerConfig.html",
25
- "FetchServiceInit": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.FetchServiceInit.html",
26
- "HostProperties": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.HostProperties.html",
27
- "IdentifyServiceInit": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.IdentifyServiceInit.html",
28
- "NatManagerInit": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.NatManagerInit.html",
29
- "PeerRoutingInit": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.PeerRoutingInit.html",
30
- "PingServiceInit": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.PingServiceInit.html",
31
- "RefreshManagerInit": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.RefreshManagerInit.html",
32
- "TransportManagerInit": "https://libp2p.github.io/js-libp2p/interfaces/index._internal_.TransportManagerInit.html",
33
- "Libp2pEvents": "https://libp2p.github.io/js-libp2p/interfaces/index.Libp2pEvents.html",
34
- "Libp2pInit": "https://libp2p.github.io/js-libp2p/interfaces/index.Libp2pInit.html",
35
- "Libp2pOptions": "https://libp2p.github.io/js-libp2p/types/index.Libp2pOptions.html",
36
- "createLibp2p": "https://libp2p.github.io/js-libp2p/functions/index.createLibp2p.html",
37
- "plaintext": "https://libp2p.github.io/js-libp2p/functions/insecure.plaintext.html",
38
- "ProtectorInit": "https://libp2p.github.io/js-libp2p/interfaces/pnet.ProtectorInit.html",
39
- "generateKey": "https://libp2p.github.io/js-libp2p/functions/pnet.generateKey.html",
40
- "preSharedKey": "https://libp2p.github.io/js-libp2p/functions/pnet.preSharedKey.html"
41
- }
@@ -1,158 +0,0 @@
1
- import { logger } from '@libp2p/logger'
2
- import mergeOptions from 'merge-options'
3
- // @ts-expect-error retimer does not have types
4
- import retimer from 'retimer'
5
- import type { Startable } from '@libp2p/interfaces/startable'
6
- import type { PeerId } from '@libp2p/interface-peer-id'
7
- import type { ConnectionManager } from '@libp2p/interface-connection-manager'
8
- import type { PeerStore } from '@libp2p/interface-peer-store'
9
-
10
- const log = logger('libp2p:connection-manager:auto-dialler')
11
-
12
- export interface AutoDiallerInit {
13
- /**
14
- * The minimum number of connections to avoid pruning
15
- */
16
- minConnections?: number
17
-
18
- /**
19
- * How often, in milliseconds, it should preemptively guarantee connections are above the low watermark
20
- */
21
- autoDialInterval?: number
22
- }
23
-
24
- export interface AutoDiallerComponents {
25
- peerId: PeerId
26
- connectionManager: ConnectionManager
27
- peerStore: PeerStore
28
- }
29
-
30
- const defaultOptions: Partial<AutoDiallerInit> = {
31
- minConnections: 0,
32
- autoDialInterval: 10000
33
- }
34
-
35
- export class AutoDialler implements Startable {
36
- private readonly components: AutoDiallerComponents
37
- private readonly options: Required<AutoDiallerInit>
38
- private running: boolean
39
- private autoDialTimeout?: ReturnType<retimer>
40
-
41
- /**
42
- * Proactively tries to connect to known peers stored in the PeerStore.
43
- * It will keep the number of connections below the upper limit and sort
44
- * the peers to connect based on wether we know their keys and protocols.
45
- */
46
- constructor (components: AutoDiallerComponents, init: AutoDiallerInit) {
47
- this.components = components
48
- this.options = mergeOptions.call({ ignoreUndefined: true }, defaultOptions, init)
49
- this.running = false
50
- this._autoDial = this._autoDial.bind(this)
51
-
52
- log('options: %j', this.options)
53
- }
54
-
55
- isStarted (): boolean {
56
- return this.running
57
- }
58
-
59
- /**
60
- * Starts the auto dialer
61
- */
62
- async start (): Promise<void> {
63
- this.running = true
64
-
65
- void this._autoDial().catch(err => {
66
- log.error('could not start autodial', err)
67
- })
68
-
69
- log('started')
70
- }
71
-
72
- /**
73
- * Stops the auto dialler
74
- */
75
- async stop (): Promise<void> {
76
- this.running = false
77
-
78
- if (this.autoDialTimeout != null) {
79
- this.autoDialTimeout.clear()
80
- }
81
-
82
- log('stopped')
83
- }
84
-
85
- async _autoDial (): Promise<void> {
86
- if (this.autoDialTimeout != null) {
87
- this.autoDialTimeout.clear()
88
- }
89
-
90
- const minConnections = this.options.minConnections
91
-
92
- // Already has enough connections
93
- if (this.components.connectionManager.getConnections().length >= minConnections) {
94
- this.autoDialTimeout = retimer(this._autoDial, this.options.autoDialInterval)
95
-
96
- return
97
- }
98
-
99
- // Sort peers on whether we know protocols or public keys for them
100
- let peers = await this.components.peerStore.all()
101
-
102
- peers = peers.filter((peer) => {
103
- // do not dial ourselves
104
- if (peer.id.equals(this.components.peerId)) {
105
- return false
106
- }
107
-
108
- // do not dial peers without multiaddrs
109
- if (peer.addresses.length === 0) {
110
- return false
111
- }
112
-
113
- return true
114
- })
115
-
116
- // shuffle the peers
117
- peers = peers.sort(() => Math.random() > 0.5 ? 1 : -1)
118
-
119
- peers = peers.sort((a, b) => {
120
- // dial peers with the most protocols first
121
- if (b.protocols.length > a.protocols.length) {
122
- return 1
123
- }
124
-
125
- // dial peers with public keys first
126
- if (b.id.publicKey != null && a.id.publicKey == null) {
127
- return 1
128
- }
129
-
130
- return -1
131
- })
132
-
133
- for (let i = 0; this.running && i < peers.length && this.components.connectionManager.getConnections().length < minConnections; i++) {
134
- // Connection Manager was stopped during async dial
135
- if (!this.running) {
136
- return
137
- }
138
-
139
- const peer = peers[i]
140
-
141
- if (this.components.connectionManager.getConnections(peer.id).length === 0) {
142
- log('connecting to a peerStore stored peer %p', peer.id)
143
- try {
144
- await this.components.connectionManager.openConnection(peer.id)
145
- } catch (err: any) {
146
- log.error('could not connect to peerStore stored peer', err)
147
- }
148
- }
149
- }
150
-
151
- // Connection Manager was stopped
152
- if (!this.running) {
153
- return
154
- }
155
-
156
- this.autoDialTimeout = retimer(this._autoDial, this.options.autoDialInterval)
157
- }
158
- }