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
@@ -0,0 +1,66 @@
1
+ import { multiaddr } from '@multiformats/multiaddr';
2
+ import { logger } from '@libp2p/logger';
3
+ import { anySignal } from 'any-signal';
4
+ import { setMaxListeners } from 'events';
5
+ const log = logger('libp2p:connection-manager:utils');
6
+ /**
7
+ * Resolve multiaddr recursively
8
+ */
9
+ export async function resolveMultiaddrs(ma, options) {
10
+ // TODO: recursive logic should live in multiaddr once dns4/dns6 support is in place
11
+ // Now only supporting resolve for dnsaddr
12
+ const resolvableProto = ma.protoNames().includes('dnsaddr');
13
+ // Multiaddr is not resolvable? End recursion!
14
+ if (!resolvableProto) {
15
+ return [ma];
16
+ }
17
+ const resolvedMultiaddrs = await resolveRecord(ma, options);
18
+ const recursiveMultiaddrs = await Promise.all(resolvedMultiaddrs.map(async (nm) => {
19
+ return await resolveMultiaddrs(nm, options);
20
+ }));
21
+ const addrs = recursiveMultiaddrs.flat();
22
+ const output = addrs.reduce((array, newM) => {
23
+ if (array.find(m => m.equals(newM)) == null) {
24
+ array.push(newM);
25
+ }
26
+ return array;
27
+ }, ([]));
28
+ log('resolved %s to', ma, output.map(ma => ma.toString()));
29
+ return output;
30
+ }
31
+ /**
32
+ * Resolve a given multiaddr. If this fails, an empty array will be returned
33
+ */
34
+ async function resolveRecord(ma, options) {
35
+ try {
36
+ ma = multiaddr(ma.toString()); // Use current multiaddr module
37
+ const multiaddrs = await ma.resolve(options);
38
+ return multiaddrs;
39
+ }
40
+ catch (err) {
41
+ log.error(`multiaddr ${ma.toString()} could not be resolved`, err);
42
+ return [];
43
+ }
44
+ }
45
+ export function combineSignals(...signals) {
46
+ const sigs = [];
47
+ for (const sig of signals) {
48
+ if (sig != null) {
49
+ try {
50
+ // fails on node < 15.4
51
+ setMaxListeners?.(Infinity, sig);
52
+ }
53
+ catch { }
54
+ sigs.push(sig);
55
+ }
56
+ }
57
+ // let any signal abort the dial
58
+ const signal = anySignal(sigs);
59
+ try {
60
+ // fails on node < 15.4
61
+ setMaxListeners?.(Infinity, signal);
62
+ }
63
+ catch { }
64
+ return signal;
65
+ }
66
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/connection-manager/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEjE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAmB,SAAS,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAExC,MAAM,GAAG,GAAG,MAAM,CAAC,iCAAiC,CAAC,CAAA;AAErD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAE,EAAa,EAAE,OAAqB;IAC3E,oFAAoF;IACpF,0CAA0C;IAC1C,MAAM,eAAe,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IAE3D,8CAA8C;IAC9C,IAAI,CAAC,eAAe,EAAE;QACpB,OAAO,CAAC,EAAE,CAAC,CAAA;KACZ;IAED,MAAM,kBAAkB,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IAC3D,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QAChF,OAAO,MAAM,iBAAiB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAC,CAAA;IAEH,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,EAAE,CAAA;IACxC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAc,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACvD,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE;YAC3C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SACjB;QACD,OAAO,KAAK,CAAA;IACd,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAER,GAAG,CAAC,gBAAgB,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IAE1D,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAAE,EAAa,EAAE,OAAqB;IAChE,IAAI;QACF,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA,CAAC,+BAA+B;QAC7D,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC5C,OAAO,UAAU,CAAA;KAClB;IAAC,OAAO,GAAG,EAAE;QACZ,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,wBAAwB,EAAE,GAAG,CAAC,CAAA;QAClE,OAAO,EAAE,CAAA;KACV;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAE,GAAG,OAAuC;IACxE,MAAM,IAAI,GAAkB,EAAE,CAAA;IAE9B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;QACzB,IAAI,GAAG,IAAI,IAAI,EAAE;YACf,IAAI;gBACF,uBAAuB;gBACvB,eAAe,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;aACjC;YAAC,MAAM,GAAG;YACX,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SACf;KACF;IAED,gCAAgC;IAChC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;IAE9B,IAAI;QACF,uBAAuB;QACvB,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;KACpC;IAAC,MAAM,GAAE;IAEV,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -3,15 +3,12 @@ import type { AbortOptions } from '@libp2p/interfaces';
3
3
  import type { Startable } from '@libp2p/interfaces/startable';
4
4
  import type { CID } from 'multiformats/cid';
5
5
  import type { PeerStore } from '@libp2p/interface-peer-store';
6
- import type { DualDHT } from '@libp2p/interface-dht';
7
6
  import type { PeerInfo } from '@libp2p/interface-peer-info';
8
- import type { PeerId } from '@libp2p/interface-peer-id';
9
7
  export interface CompoundContentRoutingInit {
10
8
  routers: ContentRouting[];
11
9
  }
12
10
  export interface CompoundContentRoutingComponents {
13
11
  peerStore: PeerStore;
14
- dht?: DualDHT;
15
12
  }
16
13
  export declare class CompoundContentRouting implements ContentRouting, Startable {
17
14
  private readonly routers;
@@ -39,12 +36,5 @@ export declare class CompoundContentRouting implements ContentRouting, Startable
39
36
  * Times out after 1 minute by default.
40
37
  */
41
38
  get(key: Uint8Array, options?: AbortOptions): Promise<Uint8Array>;
42
- /**
43
- * Get the `n` values to the given key without sorting
44
- */
45
- getMany(key: Uint8Array, nVals: number, options: AbortOptions): AsyncIterable<{
46
- from: PeerId;
47
- val: Uint8Array;
48
- }>;
49
39
  }
50
40
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/content-routing/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAEvD,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,cAAc,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,gCAAgC;IAC/C,SAAS,EAAE,SAAS,CAAA;IACpB,GAAG,CAAC,EAAE,OAAO,CAAA;CACd;AAED,qBAAa,sBAAuB,YAAW,cAAc,EAAE,SAAS;IACtE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;gBAEhD,UAAU,EAAE,gCAAgC,EAAE,IAAI,EAAE,0BAA0B;IAM3F,SAAS,IAAK,OAAO;IAIf,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAIvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACK,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,YAAiB,GAAG,aAAa,CAAC,QAAQ,CAAC;IAerF;;;OAGG;IACG,OAAO,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnE;;OAEG;IACG,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrF;;;OAGG;IACG,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAkBxE;;OAEG;IACK,OAAO,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,UAAU,CAAA;KAAE,CAAC;CA8B1H"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/content-routing/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAE3D,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,cAAc,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,gCAAgC;IAC/C,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,qBAAa,sBAAuB,YAAW,cAAc,EAAE,SAAS;IACtE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;gBAEhD,UAAU,EAAE,gCAAgC,EAAE,IAAI,EAAE,0BAA0B;IAM3F,SAAS,IAAK,OAAO;IAIf,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAIvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACK,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,YAAiB,GAAG,aAAa,CAAC,QAAQ,CAAC;IAerF;;;OAGG;IACG,OAAO,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnE;;OAEG;IACG,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrF;;;OAGG;IACG,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;CASzE"}
@@ -1,7 +1,6 @@
1
1
  import { CodeError } from '@libp2p/interfaces/errors';
2
2
  import { messages, codes } from '../errors.js';
3
3
  import { storeAddresses, uniquePeers, requirePeers } from './utils.js';
4
- import drain from 'it-drain';
5
4
  import merge from 'it-merge';
6
5
  import { pipe } from 'it-pipe';
7
6
  export class CompoundContentRouting {
@@ -24,7 +23,7 @@ export class CompoundContentRouting {
24
23
  */
25
24
  async *findProviders(key, options = {}) {
26
25
  if (this.routers.length === 0) {
27
- throw new CodeError('No content this.routers available', codes.ERR_NO_ROUTERS_AVAILABLE);
26
+ throw new CodeError('No content routers available', codes.ERR_NO_ROUTERS_AVAILABLE);
28
27
  }
29
28
  yield* pipe(merge(...this.routers.map(router => router.findProviders(key, options))), (source) => storeAddresses(source, this.components.peerStore), (source) => uniquePeers(source), (source) => requirePeers(source));
30
29
  }
@@ -45,10 +44,9 @@ export class CompoundContentRouting {
45
44
  if (!this.isStarted()) {
46
45
  throw new CodeError(messages.NOT_STARTED_YET, codes.DHT_NOT_STARTED);
47
46
  }
48
- const dht = this.components.dht;
49
- if (dht != null) {
50
- await drain(dht.put(key, value, options));
51
- }
47
+ await Promise.all(this.routers.map(async (router) => {
48
+ await router.put(key, value, options);
49
+ }));
52
50
  }
53
51
  /**
54
52
  * Get the value to the given key.
@@ -58,42 +56,9 @@ export class CompoundContentRouting {
58
56
  if (!this.isStarted()) {
59
57
  throw new CodeError(messages.NOT_STARTED_YET, codes.DHT_NOT_STARTED);
60
58
  }
61
- const dht = this.components.dht;
62
- if (dht != null) {
63
- for await (const event of dht.get(key, options)) {
64
- if (event.name === 'VALUE') {
65
- return event.value;
66
- }
67
- }
68
- }
69
- throw new CodeError(messages.NOT_FOUND, codes.ERR_NOT_FOUND);
70
- }
71
- /**
72
- * Get the `n` values to the given key without sorting
73
- */
74
- async *getMany(key, nVals, options) {
75
- if (!this.isStarted()) {
76
- throw new CodeError(messages.NOT_STARTED_YET, codes.DHT_NOT_STARTED);
77
- }
78
- if (nVals == null || nVals === 0) {
79
- return;
80
- }
81
- let gotValues = 0;
82
- const dht = this.components.dht;
83
- if (dht != null) {
84
- for await (const event of dht.get(key, options)) {
85
- if (event.name === 'VALUE') {
86
- yield { from: event.from, val: event.value };
87
- gotValues++;
88
- if (gotValues === nVals) {
89
- break;
90
- }
91
- }
92
- }
93
- }
94
- if (gotValues === 0) {
95
- throw new CodeError(messages.NOT_FOUND, codes.ERR_NOT_FOUND);
96
- }
59
+ return await Promise.any(this.routers.map(async (router) => {
60
+ return await router.get(key, options);
61
+ }));
97
62
  }
98
63
  }
99
64
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/content-routing/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/content-routing/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/content-routing/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAE7D;;GAEG;AACH,wBAAwB,cAAc,CAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,CAO/G;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAc9E;AAED;;GAEG;AACH,wBAAwB,YAAY,CAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAE,MAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,CAYxG"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/content-routing/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAE7D;;GAEG;AACH,wBAAwB,cAAc,CAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,CAS/G;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAc9E;AAED;;GAEG;AACH,wBAAwB,YAAY,CAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAE,MAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,CAYxG"}
@@ -7,7 +7,9 @@ import map from 'it-map';
7
7
  export async function* storeAddresses(source, peerStore) {
8
8
  yield* map(source, async (peer) => {
9
9
  // ensure we have the addresses for a given peer
10
- await peerStore.addressBook.add(peer.id, peer.multiaddrs);
10
+ await peerStore.merge(peer.id, {
11
+ multiaddrs: peer.multiaddrs
12
+ });
11
13
  return peer;
12
14
  });
13
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/content-routing/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,GAAG,MAAM,QAAQ,CAAA;AAKxB;;GAEG;AACH,MAAM,CAAC,KAAK,SAAU,CAAC,CAAC,cAAc,CAAE,MAAwB,EAAE,SAAoB;IACpF,KAAM,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACjC,gDAAgD;QAChD,MAAM,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAEzD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAE,MAAwB;IACnD,wBAAwB;IACxB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,CAAA;IAEtB,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAC7B,oBAAoB;QACpB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE;YAChC,OAAO,KAAK,CAAA;SACb;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;QAE5B,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,SAAU,CAAC,CAAC,YAAY,CAAE,MAAwB,EAAE,MAAc,CAAC;IAC7E,IAAI,IAAI,GAAG,CAAC,CAAA;IAEZ,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE;QAC/B,IAAI,EAAE,CAAA;QAEN,MAAM,IAAI,CAAA;KACX;IAED,IAAI,IAAI,GAAG,GAAG,EAAE;QACd,MAAM,IAAI,SAAS,CAAC,8BAA8B,IAAI,UAAU,GAAG,EAAE,EAAE,WAAW,CAAC,CAAA;KACpF;AACH,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/content-routing/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,GAAG,MAAM,QAAQ,CAAA;AAKxB;;GAEG;AACH,MAAM,CAAC,KAAK,SAAU,CAAC,CAAC,cAAc,CAAE,MAAwB,EAAE,SAAoB;IACpF,KAAM,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACjC,gDAAgD;QAChD,MAAM,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAE,MAAwB;IACnD,wBAAwB;IACxB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,CAAA;IAEtB,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAC7B,oBAAoB;QACpB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE;YAChC,OAAO,KAAK,CAAA;SACb;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;QAE5B,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,SAAU,CAAC,CAAC,YAAY,CAAE,MAAwB,EAAE,MAAc,CAAC;IAC7E,IAAI,IAAI,GAAG,CAAC,CAAA;IAEZ,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE;QAC/B,IAAI,EAAE,CAAA;QAEN,MAAM,IAAI,CAAA;KACX;IAED,IAAI,IAAI,GAAG,GAAG,EAAE;QACd,MAAM,IAAI,SAAS,CAAC,8BAA8B,IAAI,UAAU,GAAG,EAAE,EAAE,WAAW,CAAC,CAAA;KACpF;AACH,CAAC"}
@@ -1,17 +1,16 @@
1
1
  import type { PeerId } from '@libp2p/interface-peer-id';
2
- import type { Startable } from '@libp2p/interfaces/startable';
3
2
  import type { Stream } from '@libp2p/interface-connection';
4
- import type { IncomingStreamData, Registrar } from '@libp2p/interface-registrar';
3
+ import type { Registrar } from '@libp2p/interface-registrar';
5
4
  import type { AbortOptions } from '@libp2p/interfaces';
6
5
  import type { ConnectionManager } from '@libp2p/interface-connection-manager';
7
6
  export interface FetchServiceInit {
8
- protocolPrefix: string;
9
- maxInboundStreams: number;
10
- maxOutboundStreams: number;
7
+ protocolPrefix?: string;
8
+ maxInboundStreams?: number;
9
+ maxOutboundStreams?: number;
11
10
  /**
12
11
  * How long we should wait for a remote peer to send any data
13
12
  */
14
- timeout: number;
13
+ timeout?: number;
15
14
  }
16
15
  export interface HandleMessageOptions {
17
16
  stream: Stream;
@@ -24,37 +23,15 @@ export interface FetchServiceComponents {
24
23
  registrar: Registrar;
25
24
  connectionManager: ConnectionManager;
26
25
  }
27
- /**
28
- * A simple libp2p protocol for requesting a value corresponding to a key from a peer.
29
- * Developers can register one or more lookup function for retrieving the value corresponding to
30
- * a given key. Each lookup function must act on a distinct part of the overall key space, defined
31
- * by a fixed prefix that all keys that should be routed to that lookup function will start with.
32
- */
33
- export declare class FetchService implements Startable {
34
- readonly protocol: string;
35
- private readonly components;
36
- private readonly lookupFunctions;
37
- private started;
38
- private readonly init;
39
- constructor(components: FetchServiceComponents, init: FetchServiceInit);
40
- start(): Promise<void>;
41
- stop(): Promise<void>;
42
- isStarted(): boolean;
26
+ export interface FetchService {
43
27
  /**
44
- * Sends a request to fetch the value associated with the given key from the given peer
45
- */
46
- fetch(peer: PeerId, key: string, options?: AbortOptions): Promise<Uint8Array | null>;
47
- /**
48
- * Invoked when a fetch request is received. Reads the request message off the given stream and
49
- * responds based on looking up the key in the request via the lookup callback that corresponds
50
- * to the key's prefix.
28
+ * The protocol name used by this fetch service
51
29
  */
52
- handleMessage(data: IncomingStreamData): Promise<void>;
30
+ protocol: string;
53
31
  /**
54
- * Given a key, finds the appropriate function for looking up its corresponding value, based on
55
- * the key's prefix.
32
+ * Sends a request to fetch the value associated with the given key from the given peer
56
33
  */
57
- _getLookupFunction(key: string): LookupFunction | undefined;
34
+ fetch: (peer: PeerId, key: string, options?: AbortOptions) => Promise<Uint8Array | null>;
58
35
  /**
59
36
  * Registers a new lookup callback that can map keys to values, for a given set of keys that
60
37
  * share the same prefix
@@ -66,7 +43,7 @@ export declare class FetchService implements Startable {
66
43
  * libp2p.fetchService.registerLookupFunction('/prefix', (key) => { ... })
67
44
  * ```
68
45
  */
69
- registerLookupFunction(prefix: string, lookup: LookupFunction): void;
46
+ registerLookupFunction: (prefix: string, lookup: LookupFunction) => void;
70
47
  /**
71
48
  * Registers a new lookup callback that can map keys to values, for a given set of keys that
72
49
  * share the same prefix.
@@ -78,6 +55,7 @@ export declare class FetchService implements Startable {
78
55
  * libp2p.fetchService.unregisterLookupFunction('/prefix')
79
56
  * ```
80
57
  */
81
- unregisterLookupFunction(prefix: string, lookup?: LookupFunction): void;
58
+ unregisterLookupFunction: (prefix: string, lookup?: LookupFunction) => void;
82
59
  }
60
+ export declare function fetchService(init?: FetchServiceInit): (components: FetchServiceComponents) => FetchService;
83
61
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fetch/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAQtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAI7E,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,MAAM,CAAA;IACzB,kBAAkB,EAAE,MAAM,CAAA;IAE1B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,SAAS,CAAA;IACpB,iBAAiB,EAAE,iBAAiB,CAAA;CACrC;AAED;;;;;GAKG;AACH,qBAAa,YAAa,YAAW,SAAS;IAC5C,SAAgB,QAAQ,EAAE,MAAM,CAAA;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;IAC7D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkB;gBAE1B,UAAU,EAAE,sBAAsB,EAAE,IAAI,EAAE,gBAAgB;IASjE,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAgBvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAK5B,SAAS,IAAK,OAAO;IAIrB;;OAEG;IACG,KAAK,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IA8E/F;;;;OAIG;IACG,aAAa,CAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0C7D;;;OAGG;IACH,kBAAkB,CAAE,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAQ5D;;;;;;;;;;OAUG;IACH,sBAAsB,CAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;IAQrE;;;;;;;;;;OAUG;IACH,wBAAwB,CAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI;CAWzE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fetch/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAEvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,KAAK,EAAsB,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAOtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAM7E,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAE3B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,SAAS,CAAA;IACpB,iBAAiB,EAAE,iBAAiB,CAAA;CACrC;AAED,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;IAExF;;;;;;;;;;OAUG;IACH,sBAAsB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,KAAK,IAAI,CAAA;IAExE;;;;;;;;;;OAUG;IACH,wBAAwB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,KAAK,IAAI,CAAA;CAC5E;AAkOD,wBAAgB,YAAY,CAAE,IAAI,GAAE,gBAAqB,GAAG,CAAC,UAAU,EAAE,sBAAsB,KAAK,YAAY,CAE/G"}
@@ -7,18 +7,18 @@ import { PROTOCOL_NAME, PROTOCOL_VERSION } from './constants.js';
7
7
  import { abortableDuplex } from 'abortable-iterator';
8
8
  import { pipe } from 'it-pipe';
9
9
  import first from 'it-first';
10
- import { TimeoutController } from 'timeout-abort-controller';
11
10
  import { setMaxListeners } from 'events';
12
11
  import { fromString as uint8arrayFromString } from 'uint8arrays/from-string';
13
12
  import { toString as uint8arrayToString } from 'uint8arrays/to-string';
14
13
  const log = logger('libp2p:fetch');
14
+ const DEFAULT_TIMEOUT = 10000;
15
15
  /**
16
16
  * A simple libp2p protocol for requesting a value corresponding to a key from a peer.
17
17
  * Developers can register one or more lookup function for retrieving the value corresponding to
18
18
  * a given key. Each lookup function must act on a distinct part of the overall key space, defined
19
19
  * by a fixed prefix that all keys that should be routed to that lookup function will start with.
20
20
  */
21
- export class FetchService {
21
+ class DefaultFetchService {
22
22
  constructor(components, init) {
23
23
  this.started = false;
24
24
  this.components = components;
@@ -55,17 +55,15 @@ export class FetchService {
55
55
  async fetch(peer, key, options = {}) {
56
56
  log('dialing %s to %p', this.protocol, peer);
57
57
  const connection = await this.components.connectionManager.openConnection(peer, options);
58
- let timeoutController;
59
58
  let signal = options.signal;
60
59
  let stream;
61
60
  // create a timeout if no abort signal passed
62
61
  if (signal == null) {
63
62
  log('using default timeout of %d ms', this.init.timeout);
64
- timeoutController = new TimeoutController(this.init.timeout);
65
- signal = timeoutController.signal;
63
+ signal = AbortSignal.timeout(this.init.timeout ?? DEFAULT_TIMEOUT);
66
64
  try {
67
65
  // fails on node < 15.4
68
- setMaxListeners?.(Infinity, timeoutController.signal);
66
+ setMaxListeners?.(Infinity, signal);
69
67
  }
70
68
  catch { }
71
69
  }
@@ -76,7 +74,7 @@ export class FetchService {
76
74
  // make stream abortable
77
75
  const source = abortableDuplex(stream, signal);
78
76
  log('fetch %s', key);
79
- const result = await pipe([FetchRequest.encode({ identifier: key })], lp.encode(), source, lp.decode(), async function (source) {
77
+ const result = await pipe([FetchRequest.encode({ identifier: key })], (source) => lp.encode(source), source, (source) => lp.decode(source), async function (source) {
80
78
  const buf = await first(source);
81
79
  if (buf == null) {
82
80
  throw new CodeError('No data received', codes.ERR_INVALID_MESSAGE);
@@ -105,9 +103,6 @@ export class FetchService {
105
103
  return result ?? null;
106
104
  }
107
105
  finally {
108
- if (timeoutController != null) {
109
- timeoutController.clear();
110
- }
111
106
  if (stream != null) {
112
107
  stream.close();
113
108
  }
@@ -121,7 +116,7 @@ export class FetchService {
121
116
  async handleMessage(data) {
122
117
  const { stream } = data;
123
118
  const self = this;
124
- await pipe(stream, lp.decode(), async function* (source) {
119
+ await pipe(stream, (source) => lp.decode(source), async function* (source) {
125
120
  const buf = await first(source);
126
121
  if (buf == null) {
127
122
  throw new CodeError('No data received', codes.ERR_INVALID_MESSAGE);
@@ -148,7 +143,7 @@ export class FetchService {
148
143
  response = { status: FetchResponse.StatusCode.ERROR, data: errmsg };
149
144
  }
150
145
  yield FetchResponse.encode(response);
151
- }, lp.encode(), stream);
146
+ }, (source) => lp.encode(source), stream);
152
147
  }
153
148
  /**
154
149
  * Given a key, finds the appropriate function for looking up its corresponding value, based on
@@ -199,4 +194,7 @@ export class FetchService {
199
194
  this.lookupFunctions.delete(prefix);
200
195
  }
201
196
  }
197
+ export function fetchService(init = {}) {
198
+ return (components) => new DefaultFetchService(components, init);
199
+ }
202
200
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/fetch/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/fetch/index.ts"],"names":[],"mappings":"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"}
@@ -1,37 +1,34 @@
1
- import { Multiaddr } from '@multiformats/multiaddr';
2
1
  import { Identify } from './pb/message.js';
3
- import type { IncomingStreamData, Registrar } from '@libp2p/interface-registrar';
2
+ import type { Registrar } from '@libp2p/interface-registrar';
4
3
  import type { Connection } from '@libp2p/interface-connection';
5
- import type { Startable } from '@libp2p/interfaces/startable';
6
4
  import type { AbortOptions } from '@libp2p/interfaces';
7
5
  import type { ConnectionManager } from '@libp2p/interface-connection-manager';
8
6
  import type { PeerId } from '@libp2p/interface-peer-id';
9
7
  import type { PeerStore } from '@libp2p/interface-peer-store';
10
8
  import type { AddressManager } from '@libp2p/interface-address-manager';
11
- export interface HostProperties {
12
- agentVersion: string;
13
- }
9
+ import type { EventEmitter } from '@libp2p/interfaces/events';
10
+ import type { Libp2pEvents } from '@libp2p/interface-libp2p';
14
11
  export interface IdentifyServiceInit {
15
12
  /**
16
13
  * The prefix to use for the protocol (default: 'ipfs')
17
14
  */
18
- protocolPrefix: string;
15
+ protocolPrefix?: string;
19
16
  /**
20
17
  * What details we should send as part of an identify message
21
18
  */
22
- host: HostProperties;
19
+ agentVersion?: string;
23
20
  /**
24
21
  * How long we should wait for a remote peer to send their identify response
25
22
  */
26
- timeout: number;
23
+ timeout?: number;
27
24
  /**
28
25
  * Identify responses larger than this in bytes will be rejected (default: 8192)
29
26
  */
30
27
  maxIdentifyMessageSize?: number;
31
- maxInboundStreams: number;
32
- maxOutboundStreams: number;
33
- maxPushIncomingStreams: number;
34
- maxPushOutgoingStreams: number;
28
+ maxInboundStreams?: number;
29
+ maxOutboundStreams?: number;
30
+ maxPushIncomingStreams?: number;
31
+ maxPushOutgoingStreams?: number;
35
32
  maxObservedAddresses?: number;
36
33
  }
37
34
  export interface IdentifyServiceComponents {
@@ -40,49 +37,19 @@ export interface IdentifyServiceComponents {
40
37
  connectionManager: ConnectionManager;
41
38
  registrar: Registrar;
42
39
  addressManager: AddressManager;
40
+ events: EventEmitter<Libp2pEvents>;
43
41
  }
44
- export declare class IdentifyService implements Startable {
45
- private readonly components;
46
- private readonly identifyProtocolStr;
47
- private readonly identifyPushProtocolStr;
48
- readonly host: {
49
- protocolVersion: string;
50
- agentVersion: string;
51
- };
52
- private readonly init;
53
- private started;
54
- constructor(components: IdentifyServiceComponents, init: IdentifyServiceInit);
55
- isStarted(): boolean;
56
- start(): Promise<void>;
57
- stop(): Promise<void>;
58
- /**
59
- * Send an Identify Push update to the list of connections
60
- */
61
- push(connections: Connection[]): Promise<void>;
62
- /**
63
- * Calls `push` on all peer connections
64
- */
65
- pushToPeerStore(): Promise<void>;
66
- _identify(connection: Connection, options?: AbortOptions): Promise<Identify>;
42
+ export interface IdentifyService {
67
43
  /**
68
44
  * Requests the `Identify` message from peer associated with the given `connection`.
69
45
  * If the identified peer does not match the `PeerId` associated with the connection,
70
46
  * an error will be thrown.
71
47
  */
72
- identify(connection: Connection, options?: AbortOptions): Promise<void>;
48
+ identify: (connection: Connection, options?: AbortOptions) => Promise<void>;
73
49
  /**
74
- * Sends the `Identify` response with the Signed Peer Record
75
- * to the requesting peer over the given `connection`
76
- */
77
- _handleIdentify(data: IncomingStreamData): Promise<void>;
78
- /**
79
- * Reads the Identify Push message from the given `connection`
80
- */
81
- _handlePush(data: IncomingStreamData): Promise<void>;
82
- /**
83
- * Takes the `addr` and converts it to a Multiaddr if possible
50
+ * Calls `push` on all peer connections
84
51
  */
85
- static getCleanMultiaddr(addr: Uint8Array | string | null | undefined): Multiaddr | undefined;
52
+ push: () => Promise<void>;
86
53
  }
87
54
  /**
88
55
  * The protocols the IdentifyService supports
@@ -94,4 +61,5 @@ export declare const multicodecs: {
94
61
  export declare const Message: {
95
62
  Identify: typeof Identify;
96
63
  };
64
+ export declare function identifyService(init?: IdentifyServiceInit): (components: IdentifyServiceComponents) => IdentifyService;
97
65
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/identify/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/identify/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAa1C,OAAO,KAAK,EAAsB,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAChF,OAAO,KAAK,EAAE,UAAU,EAAU,MAAM,8BAA8B,CAAA;AAGtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAQ,SAAS,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAEvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAU5D,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAE/B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAE3B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,SAAS,EAAE,SAAS,CAAA;IACpB,cAAc,EAAE,cAAc,CAAA;IAC9B,MAAM,EAAE,YAAY,CAAC,YAAY,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAE3E;;OAEG;IACH,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1B;AA2cD;;GAEG;AACH,eAAO,MAAM,WAAW;;;CAGvB,CAAA;AAED,eAAO,MAAM,OAAO;;CAAe,CAAA;AAEnC,wBAAgB,eAAe,CAAE,IAAI,GAAE,mBAAwB,GAAG,CAAC,UAAU,EAAE,yBAAyB,KAAK,eAAe,CAE3H"}