@libp2p/utils 6.7.2-8484de8a2 → 6.7.2-87bc8d4fb

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 (164) hide show
  1. package/README.md +1 -1
  2. package/dist/index.min.js +1 -6
  3. package/dist/index.min.js.map +4 -4
  4. package/dist/src/abort-options.d.ts +7 -0
  5. package/dist/src/abort-options.d.ts.map +1 -0
  6. package/dist/src/abort-options.js +14 -0
  7. package/dist/src/abort-options.js.map +1 -0
  8. package/dist/src/abstract-stream.d.ts +130 -14
  9. package/dist/src/abstract-stream.d.ts.map +1 -1
  10. package/dist/src/abstract-stream.js +321 -39
  11. package/dist/src/abstract-stream.js.map +1 -1
  12. package/dist/src/array-equals.d.ts +24 -0
  13. package/dist/src/array-equals.d.ts.map +1 -0
  14. package/dist/src/array-equals.js +31 -0
  15. package/dist/src/array-equals.js.map +1 -0
  16. package/dist/src/close-source.d.ts +4 -0
  17. package/dist/src/close-source.d.ts.map +1 -0
  18. package/dist/src/close-source.js +11 -0
  19. package/dist/src/close-source.js.map +1 -0
  20. package/dist/src/close.d.ts +21 -0
  21. package/dist/src/close.d.ts.map +1 -0
  22. package/dist/src/close.js +49 -0
  23. package/dist/src/close.js.map +1 -0
  24. package/dist/src/errors.d.ts +0 -8
  25. package/dist/src/errors.d.ts.map +1 -1
  26. package/dist/src/errors.js +0 -8
  27. package/dist/src/errors.js.map +1 -1
  28. package/dist/src/get-thin-waist-addresses.browser.d.ts +1 -1
  29. package/dist/src/get-thin-waist-addresses.browser.d.ts.map +1 -1
  30. package/dist/src/get-thin-waist-addresses.browser.js +3 -4
  31. package/dist/src/get-thin-waist-addresses.browser.js.map +1 -1
  32. package/dist/src/get-thin-waist-addresses.d.ts +1 -1
  33. package/dist/src/get-thin-waist-addresses.d.ts.map +1 -1
  34. package/dist/src/get-thin-waist-addresses.js +9 -7
  35. package/dist/src/get-thin-waist-addresses.js.map +1 -1
  36. package/dist/src/index.d.ts +1 -33
  37. package/dist/src/index.d.ts.map +1 -1
  38. package/dist/src/index.js +1 -33
  39. package/dist/src/index.js.map +1 -1
  40. package/dist/src/multiaddr/is-global-unicast.d.ts.map +1 -1
  41. package/dist/src/multiaddr/is-global-unicast.js +9 -8
  42. package/dist/src/multiaddr/is-global-unicast.js.map +1 -1
  43. package/dist/src/multiaddr/is-ip-based.d.ts +6 -0
  44. package/dist/src/multiaddr/is-ip-based.d.ts.map +1 -0
  45. package/dist/src/multiaddr/is-ip-based.js +18 -0
  46. package/dist/src/multiaddr/is-ip-based.js.map +1 -0
  47. package/dist/src/multiaddr/is-link-local.d.ts.map +1 -1
  48. package/dist/src/multiaddr/is-link-local.js +16 -11
  49. package/dist/src/multiaddr/is-link-local.js.map +1 -1
  50. package/dist/src/multiaddr/is-loopback.d.ts.map +1 -1
  51. package/dist/src/multiaddr/is-loopback.js +5 -12
  52. package/dist/src/multiaddr/is-loopback.js.map +1 -1
  53. package/dist/src/multiaddr/is-network-address.d.ts.map +1 -1
  54. package/dist/src/multiaddr/is-network-address.js +16 -4
  55. package/dist/src/multiaddr/is-network-address.js.map +1 -1
  56. package/dist/src/multiaddr/is-private.d.ts.map +1 -1
  57. package/dist/src/multiaddr/is-private.js +10 -9
  58. package/dist/src/multiaddr/is-private.js.map +1 -1
  59. package/dist/src/queue/index.d.ts +0 -3
  60. package/dist/src/queue/index.d.ts.map +1 -1
  61. package/dist/src/queue/index.js +4 -20
  62. package/dist/src/queue/index.js.map +1 -1
  63. package/dist/src/rate-limiter.d.ts +15 -1
  64. package/dist/src/rate-limiter.d.ts.map +1 -1
  65. package/dist/src/rate-limiter.js +14 -1
  66. package/dist/src/rate-limiter.js.map +1 -1
  67. package/dist/src/stream-to-ma-conn.d.ts +23 -0
  68. package/dist/src/stream-to-ma-conn.d.ts.map +1 -0
  69. package/dist/src/stream-to-ma-conn.js +75 -0
  70. package/dist/src/stream-to-ma-conn.js.map +1 -0
  71. package/package.json +163 -19
  72. package/src/abort-options.ts +20 -0
  73. package/src/abstract-stream.ts +464 -51
  74. package/src/array-equals.ts +34 -0
  75. package/src/close-source.ts +14 -0
  76. package/src/close.ts +65 -0
  77. package/src/errors.ts +0 -10
  78. package/src/get-thin-waist-addresses.browser.ts +4 -5
  79. package/src/get-thin-waist-addresses.ts +12 -8
  80. package/src/index.ts +1 -33
  81. package/src/multiaddr/is-global-unicast.ts +11 -8
  82. package/src/multiaddr/is-ip-based.ts +21 -0
  83. package/src/multiaddr/is-link-local.ts +20 -11
  84. package/src/multiaddr/is-loopback.ts +7 -12
  85. package/src/multiaddr/is-network-address.ts +19 -4
  86. package/src/multiaddr/is-private.ts +14 -9
  87. package/src/queue/index.ts +4 -24
  88. package/src/rate-limiter.ts +30 -3
  89. package/src/stream-to-ma-conn.ts +106 -0
  90. package/dist/src/abstract-message-stream.d.ts +0 -129
  91. package/dist/src/abstract-message-stream.d.ts.map +0 -1
  92. package/dist/src/abstract-message-stream.js +0 -389
  93. package/dist/src/abstract-message-stream.js.map +0 -1
  94. package/dist/src/abstract-multiaddr-connection.d.ts +0 -26
  95. package/dist/src/abstract-multiaddr-connection.d.ts.map +0 -1
  96. package/dist/src/abstract-multiaddr-connection.js +0 -66
  97. package/dist/src/abstract-multiaddr-connection.js.map +0 -1
  98. package/dist/src/abstract-stream-muxer.d.ts +0 -53
  99. package/dist/src/abstract-stream-muxer.d.ts.map +0 -1
  100. package/dist/src/abstract-stream-muxer.js +0 -169
  101. package/dist/src/abstract-stream-muxer.js.map +0 -1
  102. package/dist/src/length-prefixed-decoder.d.ts +0 -37
  103. package/dist/src/length-prefixed-decoder.d.ts.map +0 -1
  104. package/dist/src/length-prefixed-decoder.js +0 -64
  105. package/dist/src/length-prefixed-decoder.js.map +0 -1
  106. package/dist/src/message-queue.d.ts +0 -61
  107. package/dist/src/message-queue.d.ts.map +0 -1
  108. package/dist/src/message-queue.js +0 -93
  109. package/dist/src/message-queue.js.map +0 -1
  110. package/dist/src/mock-muxer.d.ts +0 -57
  111. package/dist/src/mock-muxer.d.ts.map +0 -1
  112. package/dist/src/mock-muxer.js +0 -204
  113. package/dist/src/mock-muxer.js.map +0 -1
  114. package/dist/src/mock-stream.d.ts +0 -31
  115. package/dist/src/mock-stream.d.ts.map +0 -1
  116. package/dist/src/mock-stream.js +0 -69
  117. package/dist/src/mock-stream.js.map +0 -1
  118. package/dist/src/multiaddr/get-net-config.d.ts +0 -55
  119. package/dist/src/multiaddr/get-net-config.d.ts.map +0 -1
  120. package/dist/src/multiaddr/get-net-config.js +0 -54
  121. package/dist/src/multiaddr/get-net-config.js.map +0 -1
  122. package/dist/src/multiaddr/index.d.ts +0 -7
  123. package/dist/src/multiaddr/index.d.ts.map +0 -1
  124. package/dist/src/multiaddr/index.js +0 -7
  125. package/dist/src/multiaddr/index.js.map +0 -1
  126. package/dist/src/multiaddr/utils.d.ts +0 -5
  127. package/dist/src/multiaddr/utils.d.ts.map +0 -1
  128. package/dist/src/multiaddr/utils.js +0 -32
  129. package/dist/src/multiaddr/utils.js.map +0 -1
  130. package/dist/src/multiaddr-connection-pair.d.ts +0 -25
  131. package/dist/src/multiaddr-connection-pair.d.ts.map +0 -1
  132. package/dist/src/multiaddr-connection-pair.js +0 -103
  133. package/dist/src/multiaddr-connection-pair.js.map +0 -1
  134. package/dist/src/socket-writer.browser.d.ts +0 -2
  135. package/dist/src/socket-writer.browser.d.ts.map +0 -1
  136. package/dist/src/socket-writer.browser.js +0 -4
  137. package/dist/src/socket-writer.browser.js.map +0 -1
  138. package/dist/src/socket-writer.d.ts +0 -19
  139. package/dist/src/socket-writer.d.ts.map +0 -1
  140. package/dist/src/socket-writer.js +0 -43
  141. package/dist/src/socket-writer.js.map +0 -1
  142. package/dist/src/stream-pair.d.ts +0 -42
  143. package/dist/src/stream-pair.d.ts.map +0 -1
  144. package/dist/src/stream-pair.js +0 -40
  145. package/dist/src/stream-pair.js.map +0 -1
  146. package/dist/src/stream-utils.d.ts +0 -198
  147. package/dist/src/stream-utils.d.ts.map +0 -1
  148. package/dist/src/stream-utils.js +0 -369
  149. package/dist/src/stream-utils.js.map +0 -1
  150. package/src/abstract-message-stream.ts +0 -549
  151. package/src/abstract-multiaddr-connection.ts +0 -93
  152. package/src/abstract-stream-muxer.ts +0 -239
  153. package/src/length-prefixed-decoder.ts +0 -98
  154. package/src/message-queue.ts +0 -156
  155. package/src/mock-muxer.ts +0 -304
  156. package/src/mock-stream.ts +0 -101
  157. package/src/multiaddr/get-net-config.ts +0 -112
  158. package/src/multiaddr/index.ts +0 -6
  159. package/src/multiaddr/utils.ts +0 -46
  160. package/src/multiaddr-connection-pair.ts +0 -147
  161. package/src/socket-writer.browser.ts +0 -3
  162. package/src/socket-writer.ts +0 -64
  163. package/src/stream-pair.ts +0 -90
  164. package/src/stream-utils.ts +0 -873
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @packageDocumentation
3
+ *
4
+ * Provides strategies ensure arrays are equivalent.
5
+ *
6
+ * @example
7
+ *
8
+ * ```typescript
9
+ * import { arrayEquals } from '@libp2p/utils/array-equals'
10
+ * import { multiaddr } from '@multformats/multiaddr'
11
+ *
12
+ * const ma1 = multiaddr('/ip4/127.0.0.1/tcp/9000'),
13
+ * const ma2 = multiaddr('/ip4/82.41.53.1/tcp/9000')
14
+ *
15
+ * console.info(arrayEquals([ma1], [ma1])) // true
16
+ * console.info(arrayEquals([ma1], [ma2])) // false
17
+ * ```
18
+ */
19
+ /**
20
+ * Verify if two arrays of non primitive types with the "equals" function are equal.
21
+ * Compatible with multiaddr, peer-id and others.
22
+ */
23
+ export function arrayEquals(a, b) {
24
+ const sort = (a, b) => a.toString().localeCompare(b.toString());
25
+ if (a.length !== b.length) {
26
+ return false;
27
+ }
28
+ b.sort(sort);
29
+ return a.sort(sort).every((item, index) => b[index].equals(item));
30
+ }
31
+ //# sourceMappingURL=array-equals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-equals.js","sourceRoot":"","sources":["../../src/array-equals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAE,CAAQ,EAAE,CAAQ;IAC7C,MAAM,IAAI,GAAG,CAAC,CAAM,EAAE,CAAM,EAAU,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;IAEjF,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEZ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;AACnE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Logger } from '@libp2p/logger';
2
+ import type { Source } from 'it-stream-types';
3
+ export declare function closeSource(source: Source<unknown>, log: Logger): void;
4
+ //# sourceMappingURL=close-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"close-source.d.ts","sourceRoot":"","sources":["../../src/close-source.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAE7C,wBAAgB,WAAW,CAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAQvE"}
@@ -0,0 +1,11 @@
1
+ import { getIterator } from 'get-iterator';
2
+ import { isPromise } from './is-promise.js';
3
+ export function closeSource(source, log) {
4
+ const res = getIterator(source).return?.();
5
+ if (isPromise(res)) {
6
+ res.catch(err => {
7
+ log.error('could not cause iterator to return', err);
8
+ });
9
+ }
10
+ }
11
+ //# sourceMappingURL=close-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"close-source.js","sourceRoot":"","sources":["../../src/close-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAI3C,MAAM,UAAU,WAAW,CAAE,MAAuB,EAAE,GAAW;IAC/D,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAA;IAE1C,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACd,GAAG,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAA;QACtD,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { Connection, Stream, AbortOptions } from '@libp2p/interface';
2
+ /**
3
+ * Close the passed stream, falling back to aborting the stream if closing
4
+ * cleanly fails.
5
+ */
6
+ export declare function safelyCloseStream(stream?: Stream, options?: AbortOptions): Promise<void>;
7
+ export interface SafelyCloseConnectionOptions extends AbortOptions {
8
+ /**
9
+ * Only close the stream if it either has no protocol streams open or only
10
+ * ones in this list.
11
+ *
12
+ * @default ['/ipfs/id/1.0.0']
13
+ */
14
+ closableProtocols?: string[];
15
+ }
16
+ /**
17
+ * Close the passed connection if it has no streams, or only closable protocol
18
+ * streams, falling back to aborting the connection if closing it cleanly fails.
19
+ */
20
+ export declare function safelyCloseConnectionIfUnused(connection?: Connection, options?: SafelyCloseConnectionOptions): Promise<void>;
21
+ //# sourceMappingURL=close.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"close.d.ts","sourceRoot":"","sources":["../../src/close.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEzE;;;GAGG;AACH,wBAAsB,iBAAiB,CAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAM/F;AAuBD,MAAM,WAAW,4BAA6B,SAAQ,YAAY;IAChE;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC7B;AAED;;;GAGG;AACH,wBAAsB,6BAA6B,CAAE,UAAU,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,4BAA4B,GAAG,OAAO,CAAC,IAAI,CAAC,CAenI"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Close the passed stream, falling back to aborting the stream if closing
3
+ * cleanly fails.
4
+ */
5
+ export async function safelyCloseStream(stream, options) {
6
+ try {
7
+ await stream?.close(options);
8
+ }
9
+ catch (err) {
10
+ stream?.abort(err);
11
+ }
12
+ }
13
+ /**
14
+ * These are speculative protocols that are run automatically on connection open
15
+ * so are usually not the reason the connection was opened.
16
+ *
17
+ * Consequently when requested it should be safe to close connections that only
18
+ * have these protocol streams open.
19
+ */
20
+ const DEFAULT_CLOSABLE_PROTOCOLS = [
21
+ // identify
22
+ '/ipfs/id/1.0.0',
23
+ // identify-push
24
+ '/ipfs/id/push/1.0.0',
25
+ // autonat
26
+ '/libp2p/autonat/1.0.0',
27
+ // dcutr
28
+ '/libp2p/dcutr'
29
+ ];
30
+ /**
31
+ * Close the passed connection if it has no streams, or only closable protocol
32
+ * streams, falling back to aborting the connection if closing it cleanly fails.
33
+ */
34
+ export async function safelyCloseConnectionIfUnused(connection, options) {
35
+ const streamProtocols = connection?.streams?.map(stream => stream.protocol) ?? [];
36
+ const closableProtocols = options?.closableProtocols ?? DEFAULT_CLOSABLE_PROTOCOLS;
37
+ // if the connection has protocols not in the closable protocols list, do not
38
+ // close the connection
39
+ if (streamProtocols.filter(proto => proto != null && !closableProtocols.includes(proto)).length > 0) {
40
+ return;
41
+ }
42
+ try {
43
+ await connection?.close(options);
44
+ }
45
+ catch (err) {
46
+ connection?.abort(err);
47
+ }
48
+ }
49
+ //# sourceMappingURL=close.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"close.js","sourceRoot":"","sources":["../../src/close.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAE,MAAe,EAAE,OAAsB;IAC9E,IAAI,CAAC;QACH,MAAM,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;IACpB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,0BAA0B,GAAG;IACjC,WAAW;IACX,gBAAgB;IAEhB,gBAAgB;IAChB,qBAAqB;IAErB,UAAU;IACV,uBAAuB;IAEvB,QAAQ;IACR,eAAe;CAChB,CAAA;AAYD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAE,UAAuB,EAAE,OAAsC;IAClH,MAAM,eAAe,GAAG,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;IACjF,MAAM,iBAAiB,GAAG,OAAO,EAAE,iBAAiB,IAAI,0BAA0B,CAAA;IAElF,6EAA6E;IAC7E,uBAAuB;IACvB,IAAI,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpG,OAAM;IACR,CAAC;IAED,IAAI,CAAC;QACH,MAAM,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IAClC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;AACH,CAAC"}
@@ -13,12 +13,4 @@ export declare class QueueFullError extends Error {
13
13
  static name: string;
14
14
  constructor(message?: string);
15
15
  }
16
- export declare class UnexpectedEOFError extends Error {
17
- static name: string;
18
- name: string;
19
- }
20
- export declare class MaxEarlyStreamsError extends Error {
21
- static name: string;
22
- name: string;
23
- }
24
16
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,OAAO,CAAA;gBAEb,OAAO,oBAAwB,EAAE,KAAK,EAAE,iBAAiB;CAQvE;AAED,qBAAa,cAAe,SAAQ,KAAK;IACvC,MAAM,CAAC,IAAI,SAAmB;gBAEjB,OAAO,GAAE,MAA6B;CAIpD;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,MAAM,CAAC,IAAI,SAAuB;IAClC,IAAI,SAAuB;CAC5B;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,MAAM,CAAC,IAAI,SAAyB;IACpC,IAAI,SAAyB;CAC9B"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,OAAO,CAAA;gBAEb,OAAO,oBAAwB,EAAE,KAAK,EAAE,iBAAiB;CAQvE;AAED,qBAAa,cAAe,SAAQ,KAAK;IACvC,MAAM,CAAC,IAAI,SAAmB;gBAEjB,OAAO,GAAE,MAA6B;CAIpD"}
@@ -22,12 +22,4 @@ export class QueueFullError extends Error {
22
22
  this.name = 'QueueFullError';
23
23
  }
24
24
  }
25
- export class UnexpectedEOFError extends Error {
26
- static name = 'UnexpectedEOFError';
27
- name = 'UnexpectedEOFError';
28
- }
29
- export class MaxEarlyStreamsError extends Error {
30
- static name = 'MaxEarlyStreamsError';
31
- name = 'MaxEarlyStreamsError';
32
- }
33
25
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,eAAe,CAAQ;IACvB,YAAY,CAAQ;IACpB,cAAc,CAAQ;IACtB,iBAAiB,CAAS;IAE1B,YAAa,OAAO,GAAG,qBAAqB,EAAE,KAAwB;QACpE,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;QAC5B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAA;QAC5C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;QACtC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAA;QAC1C,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAA;IAClD,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,MAAM,CAAC,IAAI,GAAG,gBAAgB,CAAA;IAE9B,YAAa,UAAkB,oBAAoB;QACjD,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;IAC9B,CAAC;;AAGH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,MAAM,CAAC,IAAI,GAAG,oBAAoB,CAAA;IAClC,IAAI,GAAG,oBAAoB,CAAA;;AAG7B,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,MAAM,CAAC,IAAI,GAAG,sBAAsB,CAAA;IACpC,IAAI,GAAG,sBAAsB,CAAA"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,eAAe,CAAQ;IACvB,YAAY,CAAQ;IACpB,cAAc,CAAQ;IACtB,iBAAiB,CAAS;IAE1B,YAAa,OAAO,GAAG,qBAAqB,EAAE,KAAwB;QACpE,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;QAC5B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAA;QAC5C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;QACtC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAA;QAC1C,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAA;IAClD,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,MAAM,CAAC,IAAI,GAAG,gBAAgB,CAAA;IAE9B,YAAa,UAAkB,oBAAoB;QACjD,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;IAC9B,CAAC"}
@@ -5,5 +5,5 @@ import type { Multiaddr } from '@multiformats/multiaddr';
5
5
  *
6
6
  * Wildcard IP4/6 addresses will be expanded into all available interfaces.
7
7
  */
8
- export declare function getThinWaistAddresses(ma?: Multiaddr, port?: number | string): Multiaddr[];
8
+ export declare function getThinWaistAddresses(ma?: Multiaddr, port?: number): Multiaddr[];
9
9
  //# sourceMappingURL=get-thin-waist-addresses.browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-thin-waist-addresses.browser.d.ts","sourceRoot":"","sources":["../../src/get-thin-waist-addresses.browser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,CAU1F"}
1
+ {"version":3,"file":"get-thin-waist-addresses.browser.d.ts","sourceRoot":"","sources":["../../src/get-thin-waist-addresses.browser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,CAUjF"}
@@ -1,5 +1,4 @@
1
- import { getNetConfig } from "./multiaddr/get-net-config.js";
2
- import { netConfigToMultiaddr } from "./multiaddr/utils.js";
1
+ import { multiaddr } from '@multiformats/multiaddr';
3
2
  /**
4
3
  * Get all thin waist addresses on the current host that match the family of the
5
4
  * passed multiaddr and optionally override the port.
@@ -10,9 +9,9 @@ export function getThinWaistAddresses(ma, port) {
10
9
  if (ma == null) {
11
10
  return [];
12
11
  }
13
- const config = getNetConfig(ma);
12
+ const options = ma.toOptions();
14
13
  return [
15
- netConfigToMultiaddr(config, port)
14
+ multiaddr(`/ip${options.family}/${options.host}/${options.transport}/${port ?? options.port}`)
16
15
  ];
17
16
  }
18
17
  //# sourceMappingURL=get-thin-waist-addresses.browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-thin-waist-addresses.browser.js","sourceRoot":"","sources":["../../src/get-thin-waist-addresses.browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAG3D;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAE,EAAc,EAAE,IAAsB;IAC3E,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QACf,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;IAE/B,OAAO;QACL,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC;KACnC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"get-thin-waist-addresses.browser.js","sourceRoot":"","sources":["../../src/get-thin-waist-addresses.browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAGnD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAE,EAAc,EAAE,IAAa;IAClE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QACf,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,SAAS,EAAE,CAAA;IAE9B,OAAO;QACL,SAAS,CAAC,MAAM,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;KAC/F,CAAA;AACH,CAAC"}
@@ -5,5 +5,5 @@ import type { Multiaddr } from '@multiformats/multiaddr';
5
5
  *
6
6
  * Wildcard IP4/6 addresses will be expanded into all available interfaces.
7
7
  */
8
- export declare function getThinWaistAddresses(ma?: Multiaddr, port?: number | string): Multiaddr[];
8
+ export declare function getThinWaistAddresses(ma?: Multiaddr, port?: number): Multiaddr[];
9
9
  //# sourceMappingURL=get-thin-waist-addresses.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-thin-waist-addresses.d.ts","sourceRoot":"","sources":["../../src/get-thin-waist-addresses.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AA6BxD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,CAe1F"}
1
+ {"version":3,"file":"get-thin-waist-addresses.d.ts","sourceRoot":"","sources":["../../src/get-thin-waist-addresses.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AA6BxD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,CAoBjF"}
@@ -1,7 +1,6 @@
1
1
  import os from 'node:os';
2
+ import { multiaddr } from '@multiformats/multiaddr';
2
3
  import { isLinkLocalIp } from './link-local-ip.js';
3
- import { getNetConfig } from "./multiaddr/get-net-config.js";
4
- import { netConfigToMultiaddr } from "./multiaddr/utils.js";
5
4
  const FAMILIES = { 4: 'IPv4', 6: 'IPv6' };
6
5
  function isWildcard(ip) {
7
6
  return ['0.0.0.0', '::'].includes(ip);
@@ -33,13 +32,16 @@ export function getThinWaistAddresses(ma, port) {
33
32
  if (ma == null) {
34
33
  return [];
35
34
  }
36
- const config = getNetConfig(ma);
37
- if ((config.type === 'ip4' || config.type === 'ip6') && isWildcard(config.host)) {
38
- return getNetworkAddrs(config.type === 'ip4' ? 4 : 6)
39
- .map(host => netConfigToMultiaddr(config, port, host));
35
+ const options = ma.toOptions();
36
+ if (isWildcard(options.host)) {
37
+ const addrs = [];
38
+ for (const host of getNetworkAddrs(options.family)) {
39
+ addrs.push(multiaddr(`/ip${options.family}/${host}/${options.transport}/${port ?? options.port}`));
40
+ }
41
+ return addrs;
40
42
  }
41
43
  return [
42
- netConfigToMultiaddr(config, port)
44
+ multiaddr(`/ip${options.family}/${options.host}/${options.transport}/${port ?? options.port}`)
43
45
  ];
44
46
  }
45
47
  //# sourceMappingURL=get-thin-waist-addresses.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-thin-waist-addresses.js","sourceRoot":"","sources":["../../src/get-thin-waist-addresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAG3D,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;AAEzC,SAAS,UAAU,CAAE,EAAU;IAC7B,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;AACvC,CAAC;AAED,SAAS,eAAe,CAAE,MAAa;IACrC,MAAM,SAAS,GAAa,EAAE,CAAA;IAC9B,MAAM,QAAQ,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAA;IAEvC,KAAK,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACrB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnC,SAAQ;gBACV,CAAC;gBAED,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACxC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAE,EAAc,EAAE,IAAsB;IAC3E,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QACf,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;IAE/B,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAChF,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAClD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IAC1D,CAAC;IAED,OAAO;QACL,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC;KACnC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"get-thin-waist-addresses.js","sourceRoot":"","sources":["../../src/get-thin-waist-addresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAGlD,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;AAEzC,SAAS,UAAU,CAAE,EAAU;IAC7B,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;AACvC,CAAC;AAED,SAAS,eAAe,CAAE,MAAa;IACrC,MAAM,SAAS,GAAa,EAAE,CAAA;IAC9B,MAAM,QAAQ,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAA;IAEvC,KAAK,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACrB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnC,SAAQ;gBACV,CAAC;gBAED,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACxC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAE,EAAc,EAAE,IAAa;IAClE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QACf,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,SAAS,EAAE,CAAA;IAE9B,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,EAAE,CAAA;QAEhB,KAAK,MAAM,IAAI,IAAI,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,OAAO,CAAC,MAAM,IAAI,IAAI,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QACpG,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO;QACL,SAAS,CAAC,MAAM,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;KAC/F,CAAA;AACH,CAAC"}
@@ -3,37 +3,5 @@
3
3
  *
4
4
  * This module contains utility functions used by libp2p modules.
5
5
  */
6
- export * from './filters/index.js';
7
- export * from './multiaddr/index.js';
8
- export * from './queue/index.js';
9
- export * from './abstract-message-stream.js';
10
- export * from './abstract-multiaddr-connection.js';
11
- export * from './abstract-stream-muxer.js';
12
- export * from './abstract-stream.js';
13
- export * from './adaptive-timeout.js';
14
- export * from './debounce.js';
15
- export * from './errors.js';
16
- export * from './get-thin-waist-addresses.js';
17
- export * from './global-unicast-ip.js';
18
- export * from './ip-port-to-multiaddr.js';
19
- export * from './is-async-generator.js';
20
- export * from './is-generator.js';
21
- export * from './is-promise.js';
22
- export * from './length-prefixed-decoder.js';
23
- export * from './link-local-ip.js';
24
- export * from './merge-options.js';
25
- export * from './mock-muxer.js';
26
- export * from './mock-stream.js';
27
- export * from './moving-average.js';
28
- export * from './multiaddr-connection-pair.js';
29
- export * from './peer-queue.js';
30
- export * from './priority-queue.js';
31
- export * from './private-ip.js';
32
- export * from './rate-limiter.js';
33
- export * from './repeating-task.js';
34
- export * from './stream-pair.js';
35
- export * from './stream-utils.js';
36
- export * from './socket-writer.js';
37
- export * from './tracked-list.js';
38
- export * from './tracked-map.js';
6
+ export {};
39
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,oCAAoC,CAAA;AAClD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,+BAA+B,CAAA;AAC7C,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAA"}
package/dist/src/index.js CHANGED
@@ -3,37 +3,5 @@
3
3
  *
4
4
  * This module contains utility functions used by libp2p modules.
5
5
  */
6
- export * from './filters/index.js';
7
- export * from './multiaddr/index.js';
8
- export * from './queue/index.js';
9
- export * from './abstract-message-stream.js';
10
- export * from './abstract-multiaddr-connection.js';
11
- export * from './abstract-stream-muxer.js';
12
- export * from './abstract-stream.js';
13
- export * from './adaptive-timeout.js';
14
- export * from './debounce.js';
15
- export * from './errors.js';
16
- export * from './get-thin-waist-addresses.js';
17
- export * from './global-unicast-ip.js';
18
- export * from './ip-port-to-multiaddr.js';
19
- export * from './is-async-generator.js';
20
- export * from './is-generator.js';
21
- export * from './is-promise.js';
22
- export * from './length-prefixed-decoder.js';
23
- export * from './link-local-ip.js';
24
- export * from './merge-options.js';
25
- export * from './mock-muxer.js';
26
- export * from './mock-stream.js';
27
- export * from './moving-average.js';
28
- export * from './multiaddr-connection-pair.js';
29
- export * from './peer-queue.js';
30
- export * from './priority-queue.js';
31
- export * from './private-ip.js';
32
- export * from './rate-limiter.js';
33
- export * from './repeating-task.js';
34
- export * from './stream-pair.js';
35
- export * from './stream-utils.js';
36
- export * from './socket-writer.js';
37
- export * from './tracked-list.js';
38
- export * from './tracked-map.js';
6
+ export {};
39
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,oCAAoC,CAAA;AAClD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,+BAA+B,CAAA;AAC7C,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"is-global-unicast.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/is-global-unicast.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;GAEG;AACH,wBAAgB,eAAe,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAavD"}
1
+ {"version":3,"file":"is-global-unicast.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/is-global-unicast.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;GAEG;AACH,wBAAgB,eAAe,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAgBvD"}
@@ -1,20 +1,21 @@
1
1
  import { cidrContains } from '@chainsafe/netmask';
2
- import { getNetConfig } from "./get-net-config.js";
2
+ import { CODE_IP6 } from '@multiformats/multiaddr';
3
3
  /**
4
4
  * Check if a given multiaddr is an IPv6 global unicast address
5
5
  */
6
6
  export function isGlobalUnicast(ma) {
7
7
  try {
8
- const config = getNetConfig(ma);
9
- switch (config.type) {
10
- case 'ip6':
11
- return cidrContains('2000::/3', config.host);
12
- default:
13
- return false;
8
+ for (const { code, value } of ma.getComponents()) {
9
+ if (value == null) {
10
+ continue;
11
+ }
12
+ if (code === CODE_IP6) {
13
+ return cidrContains('2000::/3', value);
14
+ }
14
15
  }
15
16
  }
16
17
  catch {
17
- return false;
18
18
  }
19
+ return false;
19
20
  }
20
21
  //# sourceMappingURL=is-global-unicast.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"is-global-unicast.js","sourceRoot":"","sources":["../../../src/multiaddr/is-global-unicast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGlD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAE,EAAa;IAC5C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;QAE/B,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,KAAK;gBACR,OAAO,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;YAC9C;gBACE,OAAO,KAAK,CAAA;QAChB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"is-global-unicast.js","sourceRoot":"","sources":["../../../src/multiaddr/is-global-unicast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAGlD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAE,EAAa;IAC5C,IAAI,CAAC;QACH,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC;YACjD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClB,SAAQ;YACV,CAAC;YAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,OAAO,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Multiaddr } from '@multiformats/multiaddr';
2
+ /**
3
+ * Check if a given multiaddr is IP-based
4
+ */
5
+ export declare function isIpBased(ma: Multiaddr): boolean;
6
+ //# sourceMappingURL=is-ip-based.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-ip-based.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/is-ip-based.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;GAEG;AACH,wBAAgB,SAAS,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAcjD"}
@@ -0,0 +1,18 @@
1
+ import { CODE_IP4, CODE_IP6, CODE_IP6ZONE } from '@multiformats/multiaddr';
2
+ /**
3
+ * Check if a given multiaddr is IP-based
4
+ */
5
+ export function isIpBased(ma) {
6
+ try {
7
+ for (const { code } of ma.getComponents()) {
8
+ if (code === CODE_IP6ZONE) {
9
+ continue;
10
+ }
11
+ return code === CODE_IP4 || code === CODE_IP6;
12
+ }
13
+ }
14
+ catch {
15
+ }
16
+ return false;
17
+ }
18
+ //# sourceMappingURL=is-ip-based.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-ip-based.js","sourceRoot":"","sources":["../../../src/multiaddr/is-ip-based.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAG1E;;GAEG;AACH,MAAM,UAAU,SAAS,CAAE,EAAa;IACtC,IAAI,CAAC;QACH,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC;YAC1C,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC1B,SAAQ;YACV,CAAC;YAED,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,CAAA;QAC/C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"is-link-local.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/is-link-local.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;GAEG;AACH,wBAAgB,WAAW,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAenD"}
1
+ {"version":3,"file":"is-link-local.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/is-link-local.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;GAEG;AACH,wBAAgB,WAAW,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAwBnD"}
@@ -1,21 +1,26 @@
1
- import { getNetConfig } from "./get-net-config.js";
1
+ import { CODE_IP4, CODE_IP6, CODE_IP6ZONE } from '@multiformats/multiaddr';
2
2
  /**
3
3
  * Check if a given multiaddr is a link-local address
4
4
  */
5
5
  export function isLinkLocal(ma) {
6
6
  try {
7
- const config = getNetConfig(ma);
8
- switch (config.type) {
9
- case 'ip4':
10
- return config.host.startsWith('169.254.');
11
- case 'ip6':
12
- return config.host.toLowerCase().startsWith('fe80');
13
- default:
14
- return false;
7
+ for (const { code, value } of ma.getComponents()) {
8
+ if (code === CODE_IP6ZONE) {
9
+ continue;
10
+ }
11
+ if (value == null) {
12
+ continue;
13
+ }
14
+ if (code === CODE_IP4) {
15
+ return value.startsWith('169.254.');
16
+ }
17
+ if (code === CODE_IP6) {
18
+ return value.toLowerCase().startsWith('fe80');
19
+ }
15
20
  }
16
21
  }
17
- catch (err) {
18
- return false;
22
+ catch {
19
23
  }
24
+ return false;
20
25
  }
21
26
  //# sourceMappingURL=is-link-local.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"is-link-local.js","sourceRoot":"","sources":["../../../src/multiaddr/is-link-local.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGlD;;GAEG;AACH,MAAM,UAAU,WAAW,CAAE,EAAa;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;QAE/B,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,KAAK;gBACR,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;YAC3C,KAAK,KAAK;gBACR,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YACrD;gBACE,OAAO,KAAK,CAAA;QAChB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"is-link-local.js","sourceRoot":"","sources":["../../../src/multiaddr/is-link-local.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAG1E;;GAEG;AACH,MAAM,UAAU,WAAW,CAAE,EAAa;IACxC,IAAI,CAAC;QACH,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC;YACjD,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC1B,SAAQ;YACV,CAAC;YAED,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClB,SAAQ;YACV,CAAC;YAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;YACrC,CAAC;YAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"is-loopback.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/is-loopback.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;GAEG;AACH,wBAAgB,UAAU,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAclD"}
1
+ {"version":3,"file":"is-loopback.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/is-loopback.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;GAEG;AACH,wBAAgB,UAAU,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CASlD"}
@@ -1,21 +1,14 @@
1
1
  import { isLoopbackAddr } from 'is-loopback-addr';
2
- import { getNetConfig } from "./get-net-config.js";
2
+ import { isIpBased } from './is-ip-based.js';
3
3
  /**
4
4
  * Check if a given multiaddr is a loopback address.
5
5
  */
6
6
  export function isLoopback(ma) {
7
- try {
8
- const config = getNetConfig(ma);
9
- switch (config.type) {
10
- case 'ip4':
11
- case 'ip6':
12
- return isLoopbackAddr(config.host);
13
- default:
14
- return false;
15
- }
16
- }
17
- catch {
7
+ if (!isIpBased(ma)) {
8
+ // not an IP based multiaddr, cannot be private
18
9
  return false;
19
10
  }
11
+ const { address } = ma.nodeAddress();
12
+ return isLoopbackAddr(address);
20
13
  }
21
14
  //# sourceMappingURL=is-loopback.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"is-loopback.js","sourceRoot":"","sources":["../../../src/multiaddr/is-loopback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGlD;;GAEG;AACH,MAAM,UAAU,UAAU,CAAE,EAAa;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;QAE/B,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,KAAK,CAAC;YACX,KAAK,KAAK;gBACR,OAAO,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACpC;gBACE,OAAO,KAAK,CAAA;QAChB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"is-loopback.js","sourceRoot":"","sources":["../../../src/multiaddr/is-loopback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAG5C;;GAEG;AACH,MAAM,UAAU,UAAU,CAAE,EAAa;IACvC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;QACnB,+CAA+C;QAC/C,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAA;IAEpC,OAAO,cAAc,CAAC,OAAO,CAAC,CAAA;AAChC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"is-network-address.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/is-network-address.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;GAEG;AACH,wBAAgB,gBAAgB,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAQxD"}
1
+ {"version":3,"file":"is-network-address.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/is-network-address.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAWxD;;GAEG;AACH,wBAAgB,gBAAgB,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAcxD"}
@@ -1,14 +1,26 @@
1
- import { getNetConfig } from "./get-net-config.js";
1
+ import { CODE_IP4, CODE_IP6, CODE_IP6ZONE, CODE_DNS, CODE_DNS4, CODE_DNS6, CODE_DNSADDR } from '@multiformats/multiaddr';
2
+ const NETWORK_CODECS = [
3
+ CODE_IP4,
4
+ CODE_IP6,
5
+ CODE_DNS,
6
+ CODE_DNS4,
7
+ CODE_DNS6,
8
+ CODE_DNSADDR
9
+ ];
2
10
  /**
3
11
  * Check if a given multiaddr is a network address
4
12
  */
5
13
  export function isNetworkAddress(ma) {
6
14
  try {
7
- getNetConfig(ma);
8
- return true;
15
+ for (const { code } of ma.getComponents()) {
16
+ if (code === CODE_IP6ZONE) {
17
+ continue;
18
+ }
19
+ return NETWORK_CODECS.includes(code);
20
+ }
9
21
  }
10
22
  catch {
11
- return false;
12
23
  }
24
+ return false;
13
25
  }
14
26
  //# sourceMappingURL=is-network-address.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"is-network-address.js","sourceRoot":"","sources":["../../../src/multiaddr/is-network-address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGlD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAE,EAAa;IAC7C,IAAI,CAAC;QACH,YAAY,CAAC,EAAE,CAAC,CAAA;QAEhB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"is-network-address.js","sourceRoot":"","sources":["../../../src/multiaddr/is-network-address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAGxH,MAAM,cAAc,GAAG;IACrB,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,SAAS;IACT,YAAY;CACb,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAE,EAAa;IAC7C,IAAI,CAAC;QACH,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC;YAC1C,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC1B,SAAQ;YACV,CAAC;YAED,OAAO,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"is-private.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/is-private.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;GAEG;AACH,wBAAgB,SAAS,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAcjD"}
1
+ {"version":3,"file":"is-private.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/is-private.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;GAEG;AACH,wBAAgB,SAAS,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAmBjD"}