libp2p 0.44.0 → 0.45.0-08d4c261

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 (238) hide show
  1. package/dist/index.min.js +32 -32
  2. package/dist/src/address-manager/index.d.ts +9 -5
  3. package/dist/src/address-manager/index.d.ts.map +1 -1
  4. package/dist/src/address-manager/index.js +44 -7
  5. package/dist/src/address-manager/index.js.map +1 -1
  6. package/dist/src/address-manager/utils.d.ts +2 -0
  7. package/dist/src/address-manager/utils.d.ts.map +1 -0
  8. package/dist/src/address-manager/utils.js +12 -0
  9. package/dist/src/address-manager/utils.js.map +1 -0
  10. package/dist/src/autonat/constants.d.ts +16 -2
  11. package/dist/src/autonat/constants.d.ts.map +1 -1
  12. package/dist/src/autonat/constants.js +16 -2
  13. package/dist/src/autonat/constants.js.map +1 -1
  14. package/dist/src/autonat/index.d.ts +12 -33
  15. package/dist/src/autonat/index.d.ts.map +1 -1
  16. package/dist/src/autonat/index.js +48 -33
  17. package/dist/src/autonat/index.js.map +1 -1
  18. package/dist/src/circuit-relay/index.d.ts +1 -1
  19. package/dist/src/circuit-relay/index.d.ts.map +1 -1
  20. package/dist/src/circuit-relay/server/advert-service.d.ts +2 -2
  21. package/dist/src/circuit-relay/server/advert-service.d.ts.map +1 -1
  22. package/dist/src/circuit-relay/server/advert-service.js +8 -4
  23. package/dist/src/circuit-relay/server/advert-service.js.map +1 -1
  24. package/dist/src/circuit-relay/server/index.d.ts +8 -8
  25. package/dist/src/circuit-relay/server/index.d.ts.map +1 -1
  26. package/dist/src/circuit-relay/server/index.js +32 -12
  27. package/dist/src/circuit-relay/server/index.js.map +1 -1
  28. package/dist/src/circuit-relay/server/reservation-store.d.ts +5 -5
  29. package/dist/src/circuit-relay/server/reservation-store.d.ts.map +1 -1
  30. package/dist/src/circuit-relay/server/reservation-store.js +10 -3
  31. package/dist/src/circuit-relay/server/reservation-store.js.map +1 -1
  32. package/dist/src/circuit-relay/server/reservation-voucher.d.ts.map +1 -1
  33. package/dist/src/circuit-relay/server/reservation-voucher.js +5 -2
  34. package/dist/src/circuit-relay/server/reservation-voucher.js.map +1 -1
  35. package/dist/src/circuit-relay/transport/discovery.d.ts +4 -4
  36. package/dist/src/circuit-relay/transport/discovery.d.ts.map +1 -1
  37. package/dist/src/circuit-relay/transport/discovery.js +13 -5
  38. package/dist/src/circuit-relay/transport/discovery.js.map +1 -1
  39. package/dist/src/circuit-relay/transport/index.d.ts +10 -8
  40. package/dist/src/circuit-relay/transport/index.d.ts.map +1 -1
  41. package/dist/src/circuit-relay/transport/index.js +26 -18
  42. package/dist/src/circuit-relay/transport/index.js.map +1 -1
  43. package/dist/src/circuit-relay/transport/listener.d.ts +1 -1
  44. package/dist/src/circuit-relay/transport/listener.d.ts.map +1 -1
  45. package/dist/src/circuit-relay/transport/listener.js +43 -43
  46. package/dist/src/circuit-relay/transport/listener.js.map +1 -1
  47. package/dist/src/circuit-relay/transport/reservation-store.d.ts +8 -7
  48. package/dist/src/circuit-relay/transport/reservation-store.d.ts.map +1 -1
  49. package/dist/src/circuit-relay/transport/reservation-store.js +65 -52
  50. package/dist/src/circuit-relay/transport/reservation-store.js.map +1 -1
  51. package/dist/src/circuit-relay/utils.d.ts.map +1 -1
  52. package/dist/src/circuit-relay/utils.js +3 -3
  53. package/dist/src/circuit-relay/utils.js.map +1 -1
  54. package/dist/src/components.d.ts +10 -67
  55. package/dist/src/components.d.ts.map +1 -1
  56. package/dist/src/components.js +61 -165
  57. package/dist/src/components.js.map +1 -1
  58. package/dist/src/config/connection-gater.browser.d.ts +8 -0
  59. package/dist/src/config/connection-gater.browser.d.ts.map +1 -0
  60. package/dist/src/config/connection-gater.browser.js +27 -0
  61. package/dist/src/config/connection-gater.browser.js.map +1 -0
  62. package/dist/src/config/connection-gater.d.ts +6 -0
  63. package/dist/src/config/connection-gater.d.ts.map +1 -0
  64. package/dist/src/config/connection-gater.js +18 -0
  65. package/dist/src/config/connection-gater.js.map +1 -0
  66. package/dist/src/config.d.ts +2 -1
  67. package/dist/src/config.d.ts.map +1 -1
  68. package/dist/src/config.js +4 -66
  69. package/dist/src/config.js.map +1 -1
  70. package/dist/src/connection/index.d.ts +3 -3
  71. package/dist/src/connection/index.d.ts.map +1 -1
  72. package/dist/src/connection/index.js +38 -8
  73. package/dist/src/connection/index.js.map +1 -1
  74. package/dist/src/connection-manager/auto-dial.d.ts +4 -1
  75. package/dist/src/connection-manager/auto-dial.d.ts.map +1 -1
  76. package/dist/src/connection-manager/auto-dial.js +44 -13
  77. package/dist/src/connection-manager/auto-dial.js.map +1 -1
  78. package/dist/src/connection-manager/connection-pruner.d.ts +4 -0
  79. package/dist/src/connection-manager/connection-pruner.d.ts.map +1 -1
  80. package/dist/src/connection-manager/connection-pruner.js +28 -8
  81. package/dist/src/connection-manager/connection-pruner.js.map +1 -1
  82. package/dist/src/connection-manager/dial-queue.d.ts +7 -6
  83. package/dist/src/connection-manager/dial-queue.d.ts.map +1 -1
  84. package/dist/src/connection-manager/dial-queue.js +59 -23
  85. package/dist/src/connection-manager/dial-queue.js.map +1 -1
  86. package/dist/src/connection-manager/index.d.ts +16 -15
  87. package/dist/src/connection-manager/index.d.ts.map +1 -1
  88. package/dist/src/connection-manager/index.js +44 -41
  89. package/dist/src/connection-manager/index.js.map +1 -1
  90. package/dist/src/connection-manager/utils.d.ts +2 -3
  91. package/dist/src/connection-manager/utils.d.ts.map +1 -1
  92. package/dist/src/connection-manager/utils.js +3 -3
  93. package/dist/src/connection-manager/utils.js.map +1 -1
  94. package/dist/src/content-routing/index.d.ts +2 -12
  95. package/dist/src/content-routing/index.d.ts.map +1 -1
  96. package/dist/src/content-routing/index.js +12 -44
  97. package/dist/src/content-routing/index.js.map +1 -1
  98. package/dist/src/content-routing/utils.d.ts +1 -1
  99. package/dist/src/content-routing/utils.d.ts.map +1 -1
  100. package/dist/src/content-routing/utils.js +3 -1
  101. package/dist/src/content-routing/utils.js.map +1 -1
  102. package/dist/src/fetch/index.d.ts +15 -37
  103. package/dist/src/fetch/index.d.ts.map +1 -1
  104. package/dist/src/fetch/index.js +19 -16
  105. package/dist/src/fetch/index.js.map +1 -1
  106. package/dist/src/get-peer.d.ts +1 -1
  107. package/dist/src/get-peer.d.ts.map +1 -1
  108. package/dist/src/get-peer.js +3 -3
  109. package/dist/src/get-peer.js.map +1 -1
  110. package/dist/src/identify/identify.d.ts +53 -0
  111. package/dist/src/identify/identify.d.ts.map +1 -0
  112. package/dist/src/identify/identify.js +417 -0
  113. package/dist/src/identify/identify.js.map +1 -0
  114. package/dist/src/identify/index.d.ts +14 -59
  115. package/dist/src/identify/index.d.ts.map +1 -1
  116. package/dist/src/identify/index.js +5 -388
  117. package/dist/src/identify/index.js.map +1 -1
  118. package/dist/src/index.d.ts +28 -79
  119. package/dist/src/index.d.ts.map +1 -1
  120. package/dist/src/index.js +2 -1
  121. package/dist/src/index.js.map +1 -1
  122. package/dist/src/insecure/index.js +6 -8
  123. package/dist/src/insecure/index.js.map +1 -1
  124. package/dist/src/libp2p.d.ts +16 -47
  125. package/dist/src/libp2p.d.ts.map +1 -1
  126. package/dist/src/libp2p.js +141 -201
  127. package/dist/src/libp2p.js.map +1 -1
  128. package/dist/src/peer-routing.d.ts +3 -40
  129. package/dist/src/peer-routing.d.ts.map +1 -1
  130. package/dist/src/peer-routing.js +8 -65
  131. package/dist/src/peer-routing.js.map +1 -1
  132. package/dist/src/ping/constants.d.ts +4 -0
  133. package/dist/src/ping/constants.d.ts.map +1 -1
  134. package/dist/src/ping/constants.js +10 -0
  135. package/dist/src/ping/constants.js.map +1 -1
  136. package/dist/src/ping/index.d.ts +11 -28
  137. package/dist/src/ping/index.d.ts.map +1 -1
  138. package/dist/src/ping/index.js +31 -28
  139. package/dist/src/ping/index.js.map +1 -1
  140. package/dist/src/pnet/crypto.js +3 -3
  141. package/dist/src/pnet/crypto.js.map +1 -1
  142. package/dist/src/pnet/index.d.ts.map +1 -1
  143. package/dist/src/pnet/index.js +9 -6
  144. package/dist/src/pnet/index.js.map +1 -1
  145. package/dist/src/pnet/key-generator.js +1 -1
  146. package/dist/src/pnet/key-generator.js.map +1 -1
  147. package/dist/src/pubsub/dummy-pubsub.d.ts.map +1 -1
  148. package/dist/src/pubsub/dummy-pubsub.js +2 -5
  149. package/dist/src/pubsub/dummy-pubsub.js.map +1 -1
  150. package/dist/src/registrar.d.ts +6 -4
  151. package/dist/src/registrar.d.ts.map +1 -1
  152. package/dist/src/registrar.js +33 -28
  153. package/dist/src/registrar.js.map +1 -1
  154. package/dist/src/transport-manager.d.ts +14 -7
  155. package/dist/src/transport-manager.d.ts.map +1 -1
  156. package/dist/src/transport-manager.js +27 -13
  157. package/dist/src/transport-manager.js.map +1 -1
  158. package/dist/src/upgrader.d.ts +20 -15
  159. package/dist/src/upgrader.d.ts.map +1 -1
  160. package/dist/src/upgrader.js +49 -53
  161. package/dist/src/upgrader.js.map +1 -1
  162. package/dist/src/{nat-manager.d.ts → upnp-nat/index.d.ts} +12 -15
  163. package/dist/src/upnp-nat/index.d.ts.map +1 -0
  164. package/dist/src/{nat-manager.js → upnp-nat/index.js} +23 -10
  165. package/dist/src/upnp-nat/index.js.map +1 -0
  166. package/dist/src/version.d.ts +1 -1
  167. package/dist/src/version.d.ts.map +1 -1
  168. package/dist/src/version.js +1 -1
  169. package/dist/src/version.js.map +1 -1
  170. package/package.json +62 -47
  171. package/src/address-manager/index.ts +52 -10
  172. package/src/address-manager/utils.ts +14 -0
  173. package/src/autonat/constants.ts +17 -2
  174. package/src/autonat/index.ts +65 -57
  175. package/src/circuit-relay/index.ts +1 -1
  176. package/src/circuit-relay/server/advert-service.ts +5 -5
  177. package/src/circuit-relay/server/index.ts +28 -20
  178. package/src/circuit-relay/server/reservation-store.ts +5 -5
  179. package/src/circuit-relay/server/reservation-voucher.ts +1 -1
  180. package/src/circuit-relay/transport/discovery.ts +12 -10
  181. package/src/circuit-relay/transport/index.ts +26 -26
  182. package/src/circuit-relay/transport/listener.ts +43 -33
  183. package/src/circuit-relay/transport/reservation-store.ts +42 -28
  184. package/src/circuit-relay/utils.ts +6 -6
  185. package/src/components.ts +75 -238
  186. package/src/config/connection-gater.browser.ts +31 -0
  187. package/src/config/connection-gater.ts +19 -0
  188. package/src/config.ts +9 -70
  189. package/src/connection/index.ts +6 -10
  190. package/src/connection-manager/auto-dial.ts +46 -17
  191. package/src/connection-manager/connection-pruner.ts +30 -10
  192. package/src/connection-manager/dial-queue.ts +56 -35
  193. package/src/connection-manager/index.ts +45 -57
  194. package/src/connection-manager/utils.ts +4 -5
  195. package/src/content-routing/index.ts +11 -59
  196. package/src/content-routing/utils.ts +4 -2
  197. package/src/fetch/index.ts +63 -26
  198. package/src/get-peer.ts +4 -4
  199. package/src/identify/identify.ts +519 -0
  200. package/src/identify/index.ts +19 -509
  201. package/src/index.ts +25 -88
  202. package/src/insecure/index.ts +10 -10
  203. package/src/libp2p.ts +158 -279
  204. package/src/peer-routing.ts +10 -110
  205. package/src/ping/constants.ts +11 -0
  206. package/src/ping/index.ts +43 -39
  207. package/src/pnet/crypto.ts +3 -3
  208. package/src/pnet/index.ts +6 -6
  209. package/src/pnet/key-generator.ts +1 -1
  210. package/src/pubsub/dummy-pubsub.ts +2 -2
  211. package/src/registrar.ts +34 -31
  212. package/src/transport-manager.ts +33 -19
  213. package/src/upgrader.ts +75 -71
  214. package/src/{nat-manager.ts → upnp-nat/index.ts} +23 -24
  215. package/src/version.ts +1 -1
  216. package/dist/src/dht/dht-content-routing.d.ts +0 -17
  217. package/dist/src/dht/dht-content-routing.d.ts.map +0 -1
  218. package/dist/src/dht/dht-content-routing.js +0 -32
  219. package/dist/src/dht/dht-content-routing.js.map +0 -1
  220. package/dist/src/dht/dht-peer-routing.d.ts +0 -15
  221. package/dist/src/dht/dht-peer-routing.d.ts.map +0 -1
  222. package/dist/src/dht/dht-peer-routing.js +0 -26
  223. package/dist/src/dht/dht-peer-routing.js.map +0 -1
  224. package/dist/src/dht/dummy-dht.d.ts +0 -20
  225. package/dist/src/dht/dummy-dht.d.ts.map +0 -1
  226. package/dist/src/dht/dummy-dht.js +0 -46
  227. package/dist/src/dht/dummy-dht.js.map +0 -1
  228. package/dist/src/nat-manager.d.ts.map +0 -1
  229. package/dist/src/nat-manager.js.map +0 -1
  230. package/dist/src/peer-record-updater.d.ts +0 -24
  231. package/dist/src/peer-record-updater.d.ts.map +0 -1
  232. package/dist/src/peer-record-updater.js +0 -44
  233. package/dist/src/peer-record-updater.js.map +0 -1
  234. package/dist/typedoc-urls.json +0 -41
  235. package/src/dht/dht-content-routing.ts +0 -44
  236. package/src/dht/dht-peer-routing.ts +0 -36
  237. package/src/dht/dummy-dht.ts +0 -60
  238. package/src/peer-record-updater.ts +0 -65
@@ -1,15 +1,14 @@
1
- import { logger } from '@libp2p/logger';
1
+ import { setMaxListeners } from 'events';
2
2
  import { CodeError } from '@libp2p/interfaces/errors';
3
+ import { logger } from '@libp2p/logger';
3
4
  import * as mss from '@libp2p/multistream-select';
4
- import { codes } from './errors.js';
5
- import { createConnection } from './connection/index.js';
6
- import { CustomEvent, EventEmitter } from '@libp2p/interfaces/events';
7
5
  import { peerIdFromString } from '@libp2p/peer-id';
8
- import { DEFAULT_MAX_INBOUND_STREAMS, DEFAULT_MAX_OUTBOUND_STREAMS } from './registrar.js';
9
- import { TimeoutController } from 'timeout-abort-controller';
10
6
  import { abortableDuplex } from 'abortable-iterator';
11
- import { setMaxListeners } from 'events';
7
+ import { anySignal } from 'any-signal';
8
+ import { createConnection } from './connection/index.js';
12
9
  import { INBOUND_UPGRADE_TIMEOUT } from './connection-manager/constants.js';
10
+ import { codes } from './errors.js';
11
+ import { DEFAULT_MAX_INBOUND_STREAMS, DEFAULT_MAX_OUTBOUND_STREAMS } from './registrar.js';
13
12
  const log = logger('libp2p:upgrader');
14
13
  function findIncomingStreamLimit(protocol, registrar) {
15
14
  try {
@@ -44,9 +43,13 @@ function countStreams(protocol, direction, connection) {
44
43
  });
45
44
  return streamCount;
46
45
  }
47
- export class DefaultUpgrader extends EventEmitter {
46
+ export class DefaultUpgrader {
47
+ components;
48
+ connectionEncryption;
49
+ muxers;
50
+ inboundUpgradeTimeout;
51
+ events;
48
52
  constructor(components, init) {
49
- super();
50
53
  this.components = components;
51
54
  this.connectionEncryption = new Map();
52
55
  init.connectionEncryption.forEach(encrypter => {
@@ -57,6 +60,15 @@ export class DefaultUpgrader extends EventEmitter {
57
60
  this.muxers.set(muxer.protocol, muxer);
58
61
  });
59
62
  this.inboundUpgradeTimeout = init.inboundUpgradeTimeout ?? INBOUND_UPGRADE_TIMEOUT;
63
+ this.events = components.events;
64
+ }
65
+ async shouldBlockConnection(remotePeer, maConn, connectionType) {
66
+ const connectionGater = this.components.connectionGater[connectionType];
67
+ if (connectionGater !== undefined) {
68
+ if (await connectionGater(remotePeer, maConn)) {
69
+ throw new CodeError(`The multiaddr connection is blocked by gater.${connectionType}`, codes.ERR_CONNECTION_INTERCEPTED);
70
+ }
71
+ }
60
72
  }
61
73
  /**
62
74
  * Upgrades an inbound connection
@@ -71,14 +83,14 @@ export class DefaultUpgrader extends EventEmitter {
71
83
  let upgradedConn;
72
84
  let muxerFactory;
73
85
  let cryptoProtocol;
74
- const timeoutController = new TimeoutController(this.inboundUpgradeTimeout);
86
+ const signal = anySignal([AbortSignal.timeout(this.inboundUpgradeTimeout)]);
75
87
  try {
76
88
  // fails on node < 15.4
77
- setMaxListeners?.(Infinity, timeoutController.signal);
89
+ setMaxListeners?.(Infinity, signal);
78
90
  }
79
91
  catch { }
80
92
  try {
81
- const abortableStream = abortableDuplex(maConn, timeoutController.signal);
93
+ const abortableStream = abortableDuplex(maConn, signal);
82
94
  maConn.source = abortableStream.source;
83
95
  maConn.sink = abortableStream.sink;
84
96
  if ((await this.components.connectionGater.denyInboundConnection?.(maConn)) === true) {
@@ -104,12 +116,11 @@ export class DefaultUpgrader extends EventEmitter {
104
116
  remotePeer,
105
117
  protocol: cryptoProtocol
106
118
  } = await this._encryptInbound(protectedConn));
107
- if ((await this.components.connectionGater.denyInboundEncryptedConnection?.(remotePeer, {
119
+ const maConn = {
108
120
  ...protectedConn,
109
121
  ...encryptedConn
110
- })) === true) {
111
- throw new CodeError('The multiaddr connection is blocked by gater.acceptEncryptedConnection', codes.ERR_CONNECTION_INTERCEPTED);
112
- }
122
+ };
123
+ await this.shouldBlockConnection(remotePeer, maConn, 'denyInboundEncryptedConnection');
113
124
  }
114
125
  else {
115
126
  const idStr = maConn.remoteAddr.getPeerId();
@@ -138,12 +149,7 @@ export class DefaultUpgrader extends EventEmitter {
138
149
  log.error('Failed to upgrade inbound connection', err);
139
150
  throw err;
140
151
  }
141
- if ((await this.components.connectionGater.denyInboundUpgradedConnection?.(remotePeer, {
142
- ...protectedConn,
143
- ...encryptedConn
144
- })) === true) {
145
- throw new CodeError('The multiaddr connection is blocked by gater.acceptEncryptedConnection', codes.ERR_CONNECTION_INTERCEPTED);
146
- }
152
+ await this.shouldBlockConnection(remotePeer, maConn, 'denyInboundUpgradedConnection');
147
153
  log('Successfully upgraded inbound connection');
148
154
  return this._createConnection({
149
155
  cryptoProtocol,
@@ -156,7 +162,7 @@ export class DefaultUpgrader extends EventEmitter {
156
162
  }
157
163
  finally {
158
164
  this.components.connectionManager.afterUpgradeInbound();
159
- timeoutController.clear();
165
+ signal.clear();
160
166
  }
161
167
  }
162
168
  /**
@@ -167,9 +173,7 @@ export class DefaultUpgrader extends EventEmitter {
167
173
  let remotePeerId;
168
174
  if (idStr != null) {
169
175
  remotePeerId = peerIdFromString(idStr);
170
- if ((await this.components.connectionGater.denyOutboundConnection?.(remotePeerId, maConn)) === true) {
171
- throw new CodeError('The multiaddr connection is blocked by connectionGater.denyOutboundConnection', codes.ERR_CONNECTION_INTERCEPTED);
172
- }
176
+ await this.shouldBlockConnection(remotePeerId, maConn, 'denyOutboundConnection');
173
177
  }
174
178
  let encryptedConn;
175
179
  let remotePeer;
@@ -197,12 +201,11 @@ export class DefaultUpgrader extends EventEmitter {
197
201
  remotePeer,
198
202
  protocol: cryptoProtocol
199
203
  } = await this._encryptOutbound(protectedConn, remotePeerId));
200
- if ((await this.components.connectionGater.denyOutboundEncryptedConnection?.(remotePeer, {
204
+ const maConn = {
201
205
  ...protectedConn,
202
206
  ...encryptedConn
203
- })) === true) {
204
- throw new CodeError('The multiaddr connection is blocked by gater.acceptEncryptedConnection', codes.ERR_CONNECTION_INTERCEPTED);
205
- }
207
+ };
208
+ await this.shouldBlockConnection(remotePeer, maConn, 'denyOutboundEncryptedConnection');
206
209
  }
207
210
  else {
208
211
  if (remotePeerId == null) {
@@ -230,12 +233,7 @@ export class DefaultUpgrader extends EventEmitter {
230
233
  await maConn.close(err);
231
234
  throw err;
232
235
  }
233
- if ((await this.components.connectionGater.denyOutboundUpgradedConnection?.(remotePeer, {
234
- ...protectedConn,
235
- ...encryptedConn
236
- })) === true) {
237
- throw new CodeError('The multiaddr connection is blocked by gater.acceptEncryptedConnection', codes.ERR_CONNECTION_INTERCEPTED);
238
- }
236
+ await this.shouldBlockConnection(remotePeer, maConn, 'denyOutboundUpgradedConnection');
239
237
  log('Successfully upgraded outbound connection');
240
238
  return this._createConnection({
241
239
  cryptoProtocol,
@@ -274,8 +272,9 @@ export class DefaultUpgrader extends EventEmitter {
274
272
  const incomingLimit = findIncomingStreamLimit(protocol, this.components.registrar);
275
273
  const streamCount = countStreams(protocol, 'inbound', connection);
276
274
  if (streamCount === incomingLimit) {
277
- muxedStream.abort(new CodeError(`Too many inbound protocol streams for protocol "${protocol}" - limit ${incomingLimit}`, codes.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS));
278
- return;
275
+ const err = new CodeError(`Too many inbound protocol streams for protocol "${protocol}" - limit ${incomingLimit}`, codes.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS);
276
+ muxedStream.abort(err);
277
+ throw err;
279
278
  }
280
279
  // after the handshake the returned stream can have early data so override
281
280
  // the souce/sink
@@ -284,7 +283,9 @@ export class DefaultUpgrader extends EventEmitter {
284
283
  muxedStream.stat.protocol = protocol;
285
284
  // If a protocol stream has been successfully negotiated and is to be passed to the application,
286
285
  // the peerstore should ensure that the peer is registered with that protocol
287
- this.components.peerStore.protoBook.add(remotePeer, [protocol]).catch(err => { log.error(err); });
286
+ await this.components.peerStore.merge(remotePeer, {
287
+ protocols: [protocol]
288
+ });
288
289
  connection.addStream(muxedStream);
289
290
  this.components.metrics?.trackProtocolStream(muxedStream, connection);
290
291
  this._onStream({ connection, stream: muxedStream, protocol });
@@ -307,15 +308,13 @@ export class DefaultUpgrader extends EventEmitter {
307
308
  }
308
309
  log('%s: starting new stream on %s', direction, protocols);
309
310
  const muxedStream = await muxer.newStream();
310
- let controller;
311
311
  try {
312
312
  if (options.signal == null) {
313
313
  log('No abort signal was passed while trying to negotiate protocols %s falling back to default timeout', protocols);
314
- controller = new TimeoutController(30000);
315
- options.signal = controller.signal;
314
+ options.signal = AbortSignal.timeout(30000);
316
315
  try {
317
316
  // fails on node < 15.4
318
- setMaxListeners?.(Infinity, controller.signal);
317
+ setMaxListeners?.(Infinity, options.signal);
319
318
  }
320
319
  catch { }
321
320
  }
@@ -329,7 +328,9 @@ export class DefaultUpgrader extends EventEmitter {
329
328
  }
330
329
  // If a protocol stream has been successfully negotiated and is to be passed to the application,
331
330
  // the peerstore should ensure that the peer is registered with that protocol
332
- this.components.peerStore.protoBook.add(remotePeer, [protocol]).catch(err => { log.error(err); });
331
+ await this.components.peerStore.merge(remotePeer, {
332
+ protocols: [protocol]
333
+ });
333
334
  // after the handshake the returned stream can have early data so override
334
335
  // the souce/sink
335
336
  muxedStream.source = stream.source;
@@ -348,11 +349,6 @@ export class DefaultUpgrader extends EventEmitter {
348
349
  }
349
350
  throw new CodeError(String(err), codes.ERR_UNSUPPORTED_PROTOCOL);
350
351
  }
351
- finally {
352
- if (controller != null) {
353
- controller.clear();
354
- }
355
- }
356
352
  };
357
353
  // Pipe all data through the muxer
358
354
  void Promise.all([
@@ -377,9 +373,9 @@ export class DefaultUpgrader extends EventEmitter {
377
373
  log.error(err);
378
374
  }
379
375
  finally {
380
- this.dispatchEvent(new CustomEvent('connectionEnd', {
376
+ this.events.safeDispatchEvent('connection:close', {
381
377
  detail: connection
382
- }));
378
+ });
383
379
  }
384
380
  })().catch(err => {
385
381
  log.error(err);
@@ -418,9 +414,9 @@ export class DefaultUpgrader extends EventEmitter {
418
414
  }
419
415
  }
420
416
  });
421
- this.dispatchEvent(new CustomEvent('connection', {
417
+ this.events.safeDispatchEvent('connection:open', {
422
418
  detail: connection
423
- }));
419
+ });
424
420
  return connection;
425
421
  }
426
422
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,15 @@
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';
1
+ import { type NatAPI } from '@achingbrain/nat-port-mapper';
5
2
  import type { AddressManager } from '@libp2p/interface-address-manager';
3
+ import type { PeerId } from '@libp2p/interface-peer-id';
4
+ import type { TransportManager } from '@libp2p/interface-transport';
5
+ import type { Startable } from '@libp2p/interfaces/startable';
6
6
  export interface PMPOptions {
7
7
  /**
8
8
  * Whether to enable PMP as well as UPnP
9
9
  */
10
10
  enabled?: boolean;
11
11
  }
12
- export interface NatManagerInit {
13
- /**
14
- * Whether to enable the NAT manager
15
- */
16
- enabled: boolean;
12
+ export interface UPnPNATInit {
17
13
  /**
18
14
  * Pass a value to use instead of auto-detection
19
15
  */
@@ -33,20 +29,19 @@ export interface NatManagerInit {
33
29
  /**
34
30
  * Whether to automatically refresh UPnP port mappings when their TTL is reached
35
31
  */
36
- keepAlive: boolean;
32
+ keepAlive?: boolean;
37
33
  /**
38
34
  * Pass a value to use instead of auto-detection
39
35
  */
40
36
  gateway?: string;
41
37
  }
42
- export interface NatManagerComponents {
38
+ export interface UPnPNATComponents {
43
39
  peerId: PeerId;
44
40
  transportManager: TransportManager;
45
41
  addressManager: AddressManager;
46
42
  }
47
- export declare class NatManager implements Startable {
43
+ declare class UPnPNAT implements Startable {
48
44
  private readonly components;
49
- private readonly enabled;
50
45
  private readonly externalAddress?;
51
46
  private readonly localAddress?;
52
47
  private readonly description;
@@ -55,7 +50,7 @@ export declare class NatManager implements Startable {
55
50
  private readonly gateway?;
56
51
  private started;
57
52
  private client?;
58
- constructor(components: NatManagerComponents, init: NatManagerInit);
53
+ constructor(components: UPnPNATComponents, init: UPnPNATInit);
59
54
  isStarted(): boolean;
60
55
  start(): void;
61
56
  /**
@@ -71,4 +66,6 @@ export declare class NatManager implements Startable {
71
66
  */
72
67
  stop(): Promise<void>;
73
68
  }
74
- //# sourceMappingURL=nat-manager.d.ts.map
69
+ export declare function uPnPNATService(init?: UPnPNATInit): (components: UPnPNATComponents) => UPnPNAT;
70
+ export {};
71
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/upnp-nat/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,8BAA8B,CAAA;AASnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAS7D,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B;;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,CAAC,EAAE,OAAO,CAAA;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED,cAAM,OAAQ,YAAW,SAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,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,iBAAiB,EAAE,IAAI,EAAE,WAAW;IAgB7D,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;AAED,wBAAgB,cAAc,CAAE,IAAI,GAAE,WAAgB,GAAG,CAAC,UAAU,EAAE,iBAAiB,KAAK,OAAO,CAIlG"}
@@ -1,22 +1,30 @@
1
1
  import { upnpNat } from '@achingbrain/nat-port-mapper';
2
+ import { CodeError } from '@libp2p/interfaces/errors';
2
3
  import { logger } from '@libp2p/logger';
4
+ import { isLoopback } from '@libp2p/utils/multiaddr/is-loopback';
3
5
  import { fromNodeAddress } from '@multiformats/multiaddr';
4
- import { isBrowser } from 'wherearewe';
5
6
  import isPrivateIp from 'private-ip';
6
- import * as pkg from './version.js';
7
- import { CodeError } from '@libp2p/interfaces/errors';
8
- import { codes } from './errors.js';
9
- import { isLoopback } from '@libp2p/utils/multiaddr/is-loopback';
10
- const log = logger('libp2p:nat');
7
+ import { isBrowser } from 'wherearewe';
8
+ import { codes } from '../errors.js';
9
+ import * as pkg from '../version.js';
10
+ const log = logger('libp2p:upnp-nat');
11
11
  const DEFAULT_TTL = 7200;
12
12
  function highPort(min = 1024, max = 65535) {
13
13
  return Math.floor(Math.random() * (max - min + 1) + min);
14
14
  }
15
- export class NatManager {
15
+ class UPnPNAT {
16
+ components;
17
+ externalAddress;
18
+ localAddress;
19
+ description;
20
+ ttl;
21
+ keepAlive;
22
+ gateway;
23
+ started;
24
+ client;
16
25
  constructor(components, init) {
17
26
  this.components = components;
18
27
  this.started = false;
19
- this.enabled = init.enabled;
20
28
  this.externalAddress = init.externalAddress;
21
29
  this.localAddress = init.localAddress;
22
30
  this.description = init.description ?? `${pkg.name}@${pkg.version} ${this.components.peerId.toString()}`;
@@ -39,7 +47,7 @@ export class NatManager {
39
47
  * Run after start to ensure the transport manager has all addresses configured.
40
48
  */
41
49
  afterStart() {
42
- if (isBrowser || !this.enabled || this.started) {
50
+ if (isBrowser || this.started) {
43
51
  return;
44
52
  }
45
53
  this.started = true;
@@ -120,4 +128,9 @@ export class NatManager {
120
128
  }
121
129
  }
122
130
  }
123
- //# sourceMappingURL=nat-manager.js.map
131
+ export function uPnPNATService(init = {}) {
132
+ return (components) => {
133
+ return new UPnPNAT(components, init);
134
+ };
135
+ }
136
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/upnp-nat/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- export declare const version = "0.0.0";
1
+ export declare const version = "0.45.0-08d4c261";
2
2
  export declare const name = "libp2p";
3
3
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAA;AAC9B,eAAO,MAAM,IAAI,WAAW,CAAA"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,oBAAoB,CAAA;AACxC,eAAO,MAAM,IAAI,WAAW,CAAA"}
@@ -1,3 +1,3 @@
1
- export const version = '0.0.0';
1
+ export const version = '0.45.0-08d4c261';
2
2
  export const name = 'libp2p';
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAA;AAC9B,MAAM,CAAC,MAAM,IAAI,GAAG,QAAQ,CAAA"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,iBAAiB,CAAA;AACxC,MAAM,CAAC,MAAM,IAAI,GAAG,QAAQ,CAAA"}