@libp2p/utils 6.7.1 → 6.7.2-8484de8a2

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 (165) hide show
  1. package/README.md +16 -1
  2. package/dist/index.min.js +6 -1
  3. package/dist/index.min.js.map +4 -4
  4. package/dist/src/abstract-message-stream.d.ts +129 -0
  5. package/dist/src/abstract-message-stream.d.ts.map +1 -0
  6. package/dist/src/abstract-message-stream.js +389 -0
  7. package/dist/src/abstract-message-stream.js.map +1 -0
  8. package/dist/src/abstract-multiaddr-connection.d.ts +26 -0
  9. package/dist/src/abstract-multiaddr-connection.d.ts.map +1 -0
  10. package/dist/src/abstract-multiaddr-connection.js +66 -0
  11. package/dist/src/abstract-multiaddr-connection.js.map +1 -0
  12. package/dist/src/abstract-stream-muxer.d.ts +53 -0
  13. package/dist/src/abstract-stream-muxer.d.ts.map +1 -0
  14. package/dist/src/abstract-stream-muxer.js +169 -0
  15. package/dist/src/abstract-stream-muxer.js.map +1 -0
  16. package/dist/src/abstract-stream.d.ts +14 -130
  17. package/dist/src/abstract-stream.d.ts.map +1 -1
  18. package/dist/src/abstract-stream.js +39 -321
  19. package/dist/src/abstract-stream.js.map +1 -1
  20. package/dist/src/errors.d.ts +8 -0
  21. package/dist/src/errors.d.ts.map +1 -1
  22. package/dist/src/errors.js +8 -0
  23. package/dist/src/errors.js.map +1 -1
  24. package/dist/src/get-thin-waist-addresses.browser.d.ts +1 -1
  25. package/dist/src/get-thin-waist-addresses.browser.d.ts.map +1 -1
  26. package/dist/src/get-thin-waist-addresses.browser.js +4 -3
  27. package/dist/src/get-thin-waist-addresses.browser.js.map +1 -1
  28. package/dist/src/get-thin-waist-addresses.d.ts +1 -1
  29. package/dist/src/get-thin-waist-addresses.d.ts.map +1 -1
  30. package/dist/src/get-thin-waist-addresses.js +7 -9
  31. package/dist/src/get-thin-waist-addresses.js.map +1 -1
  32. package/dist/src/index.d.ts +33 -1
  33. package/dist/src/index.d.ts.map +1 -1
  34. package/dist/src/index.js +33 -1
  35. package/dist/src/index.js.map +1 -1
  36. package/dist/src/length-prefixed-decoder.d.ts +37 -0
  37. package/dist/src/length-prefixed-decoder.d.ts.map +1 -0
  38. package/dist/src/length-prefixed-decoder.js +64 -0
  39. package/dist/src/length-prefixed-decoder.js.map +1 -0
  40. package/dist/src/message-queue.d.ts +61 -0
  41. package/dist/src/message-queue.d.ts.map +1 -0
  42. package/dist/src/message-queue.js +93 -0
  43. package/dist/src/message-queue.js.map +1 -0
  44. package/dist/src/mock-muxer.d.ts +57 -0
  45. package/dist/src/mock-muxer.d.ts.map +1 -0
  46. package/dist/src/mock-muxer.js +204 -0
  47. package/dist/src/mock-muxer.js.map +1 -0
  48. package/dist/src/mock-stream.d.ts +31 -0
  49. package/dist/src/mock-stream.d.ts.map +1 -0
  50. package/dist/src/mock-stream.js +69 -0
  51. package/dist/src/mock-stream.js.map +1 -0
  52. package/dist/src/multiaddr/get-net-config.d.ts +55 -0
  53. package/dist/src/multiaddr/get-net-config.d.ts.map +1 -0
  54. package/dist/src/multiaddr/get-net-config.js +54 -0
  55. package/dist/src/multiaddr/get-net-config.js.map +1 -0
  56. package/dist/src/multiaddr/index.d.ts +7 -0
  57. package/dist/src/multiaddr/index.d.ts.map +1 -0
  58. package/dist/src/multiaddr/index.js +7 -0
  59. package/dist/src/multiaddr/index.js.map +1 -0
  60. package/dist/src/multiaddr/is-global-unicast.d.ts.map +1 -1
  61. package/dist/src/multiaddr/is-global-unicast.js +8 -9
  62. package/dist/src/multiaddr/is-global-unicast.js.map +1 -1
  63. package/dist/src/multiaddr/is-link-local.d.ts.map +1 -1
  64. package/dist/src/multiaddr/is-link-local.js +11 -16
  65. package/dist/src/multiaddr/is-link-local.js.map +1 -1
  66. package/dist/src/multiaddr/is-loopback.d.ts.map +1 -1
  67. package/dist/src/multiaddr/is-loopback.js +12 -5
  68. package/dist/src/multiaddr/is-loopback.js.map +1 -1
  69. package/dist/src/multiaddr/is-network-address.d.ts.map +1 -1
  70. package/dist/src/multiaddr/is-network-address.js +4 -16
  71. package/dist/src/multiaddr/is-network-address.js.map +1 -1
  72. package/dist/src/multiaddr/is-private.d.ts.map +1 -1
  73. package/dist/src/multiaddr/is-private.js +9 -10
  74. package/dist/src/multiaddr/is-private.js.map +1 -1
  75. package/dist/src/multiaddr/utils.d.ts +5 -0
  76. package/dist/src/multiaddr/utils.d.ts.map +1 -0
  77. package/dist/src/multiaddr/utils.js +32 -0
  78. package/dist/src/multiaddr/utils.js.map +1 -0
  79. package/dist/src/multiaddr-connection-pair.d.ts +25 -0
  80. package/dist/src/multiaddr-connection-pair.d.ts.map +1 -0
  81. package/dist/src/multiaddr-connection-pair.js +103 -0
  82. package/dist/src/multiaddr-connection-pair.js.map +1 -0
  83. package/dist/src/queue/index.d.ts +5 -0
  84. package/dist/src/queue/index.d.ts.map +1 -1
  85. package/dist/src/queue/index.js +24 -9
  86. package/dist/src/queue/index.js.map +1 -1
  87. package/dist/src/rate-limiter.d.ts +1 -15
  88. package/dist/src/rate-limiter.d.ts.map +1 -1
  89. package/dist/src/rate-limiter.js +1 -14
  90. package/dist/src/rate-limiter.js.map +1 -1
  91. package/dist/src/socket-writer.browser.d.ts +2 -0
  92. package/dist/src/socket-writer.browser.d.ts.map +1 -0
  93. package/dist/src/socket-writer.browser.js +4 -0
  94. package/dist/src/socket-writer.browser.js.map +1 -0
  95. package/dist/src/socket-writer.d.ts +19 -0
  96. package/dist/src/socket-writer.d.ts.map +1 -0
  97. package/dist/src/socket-writer.js +43 -0
  98. package/dist/src/socket-writer.js.map +1 -0
  99. package/dist/src/stream-pair.d.ts +42 -0
  100. package/dist/src/stream-pair.d.ts.map +1 -0
  101. package/dist/src/stream-pair.js +40 -0
  102. package/dist/src/stream-pair.js.map +1 -0
  103. package/dist/src/stream-utils.d.ts +198 -0
  104. package/dist/src/stream-utils.d.ts.map +1 -0
  105. package/dist/src/stream-utils.js +369 -0
  106. package/dist/src/stream-utils.js.map +1 -0
  107. package/package.json +19 -163
  108. package/src/abstract-message-stream.ts +549 -0
  109. package/src/abstract-multiaddr-connection.ts +93 -0
  110. package/src/abstract-stream-muxer.ts +239 -0
  111. package/src/abstract-stream.ts +51 -464
  112. package/src/errors.ts +10 -0
  113. package/src/get-thin-waist-addresses.browser.ts +5 -4
  114. package/src/get-thin-waist-addresses.ts +8 -12
  115. package/src/index.ts +33 -1
  116. package/src/length-prefixed-decoder.ts +98 -0
  117. package/src/message-queue.ts +156 -0
  118. package/src/mock-muxer.ts +304 -0
  119. package/src/mock-stream.ts +101 -0
  120. package/src/multiaddr/get-net-config.ts +112 -0
  121. package/src/multiaddr/index.ts +6 -0
  122. package/src/multiaddr/is-global-unicast.ts +8 -11
  123. package/src/multiaddr/is-link-local.ts +11 -20
  124. package/src/multiaddr/is-loopback.ts +12 -7
  125. package/src/multiaddr/is-network-address.ts +4 -19
  126. package/src/multiaddr/is-private.ts +9 -14
  127. package/src/multiaddr/utils.ts +46 -0
  128. package/src/multiaddr-connection-pair.ts +147 -0
  129. package/src/queue/index.ts +30 -9
  130. package/src/rate-limiter.ts +3 -30
  131. package/src/socket-writer.browser.ts +3 -0
  132. package/src/socket-writer.ts +64 -0
  133. package/src/stream-pair.ts +90 -0
  134. package/src/stream-utils.ts +873 -0
  135. package/dist/src/abort-options.d.ts +0 -7
  136. package/dist/src/abort-options.d.ts.map +0 -1
  137. package/dist/src/abort-options.js +0 -14
  138. package/dist/src/abort-options.js.map +0 -1
  139. package/dist/src/array-equals.d.ts +0 -24
  140. package/dist/src/array-equals.d.ts.map +0 -1
  141. package/dist/src/array-equals.js +0 -31
  142. package/dist/src/array-equals.js.map +0 -1
  143. package/dist/src/close-source.d.ts +0 -4
  144. package/dist/src/close-source.d.ts.map +0 -1
  145. package/dist/src/close-source.js +0 -11
  146. package/dist/src/close-source.js.map +0 -1
  147. package/dist/src/close.d.ts +0 -21
  148. package/dist/src/close.d.ts.map +0 -1
  149. package/dist/src/close.js +0 -49
  150. package/dist/src/close.js.map +0 -1
  151. package/dist/src/multiaddr/is-ip-based.d.ts +0 -6
  152. package/dist/src/multiaddr/is-ip-based.d.ts.map +0 -1
  153. package/dist/src/multiaddr/is-ip-based.js +0 -18
  154. package/dist/src/multiaddr/is-ip-based.js.map +0 -1
  155. package/dist/src/stream-to-ma-conn.d.ts +0 -23
  156. package/dist/src/stream-to-ma-conn.d.ts.map +0 -1
  157. package/dist/src/stream-to-ma-conn.js +0 -75
  158. package/dist/src/stream-to-ma-conn.js.map +0 -1
  159. package/dist/typedoc-urls.json +0 -147
  160. package/src/abort-options.ts +0 -20
  161. package/src/array-equals.ts +0 -34
  162. package/src/close-source.ts +0 -14
  163. package/src/close.ts +0 -65
  164. package/src/multiaddr/is-ip-based.ts +0 -21
  165. package/src/stream-to-ma-conn.ts +0 -105
@@ -1,342 +1,60 @@
1
- import { StreamResetError, StreamStateError } from '@libp2p/interface';
2
- import { pushable } from 'it-pushable';
3
- import defer from 'p-defer';
4
- import { raceSignal } from 'race-signal';
5
- import { Uint8ArrayList } from 'uint8arraylist';
6
- import { closeSource } from './close-source.js';
7
- const DEFAULT_SEND_CLOSE_WRITE_TIMEOUT = 5000;
8
- function isPromise(thing) {
9
- if (thing == null) {
10
- return false;
11
- }
12
- return typeof thing.then === 'function' &&
13
- typeof thing.catch === 'function' &&
14
- typeof thing.finally === 'function';
15
- }
16
- export class AbstractStream {
1
+ import { pEvent } from 'p-event';
2
+ import { AbstractMessageStream } from './abstract-message-stream.js';
3
+ export class AbstractStream extends AbstractMessageStream {
17
4
  id;
18
- direction;
19
- timeline;
20
5
  protocol;
21
- metadata;
22
- source;
23
- status;
24
- readStatus;
25
- writeStatus;
26
- log;
27
- sinkController;
28
- sinkEnd;
29
- closed;
30
- endErr;
31
- streamSource;
32
- onEnd;
33
- onCloseRead;
34
- onCloseWrite;
35
- onReset;
36
- onAbort;
37
- sendCloseWriteTimeout;
38
- sendingData;
39
6
  constructor(init) {
40
- this.sinkController = new AbortController();
41
- this.sinkEnd = defer();
42
- this.closed = defer();
43
- this.log = init.log;
44
- // stream status
45
- this.status = 'open';
46
- this.readStatus = 'ready';
47
- this.writeStatus = 'ready';
7
+ super(init);
48
8
  this.id = init.id;
49
- this.metadata = init.metadata ?? {};
50
- this.direction = init.direction;
51
- this.timeline = {
52
- open: Date.now()
53
- };
54
- this.sendCloseWriteTimeout = init.sendCloseWriteTimeout ?? DEFAULT_SEND_CLOSE_WRITE_TIMEOUT;
55
- this.onEnd = init.onEnd;
56
- this.onCloseRead = init.onCloseRead;
57
- this.onCloseWrite = init.onCloseWrite;
58
- this.onReset = init.onReset;
59
- this.onAbort = init.onAbort;
60
- this.source = this.streamSource = pushable({
61
- onEnd: (err) => {
62
- if (err != null) {
63
- this.log.trace('source ended with error', err);
64
- }
65
- else {
66
- this.log.trace('source ended');
67
- }
68
- this.onSourceEnd(err);
69
- }
70
- });
71
- // necessary because the libp2p upgrader wraps the sink function
72
- this.sink = this.sink.bind(this);
73
- }
74
- async sink(source) {
75
- if (this.writeStatus !== 'ready') {
76
- throw new StreamStateError(`writable end state is "${this.writeStatus}" not "ready"`);
77
- }
78
- try {
79
- this.writeStatus = 'writing';
80
- const options = {
81
- signal: this.sinkController.signal
82
- };
83
- if (this.direction === 'outbound') { // If initiator, open a new stream
84
- const res = this.sendNewStream(options);
85
- if (isPromise(res)) {
86
- await res;
87
- }
88
- }
89
- const abortListener = () => {
90
- closeSource(source, this.log);
91
- };
92
- try {
93
- this.sinkController.signal.addEventListener('abort', abortListener);
94
- this.log.trace('sink reading from source');
95
- for await (let data of source) {
96
- data = data instanceof Uint8Array ? new Uint8ArrayList(data) : data;
97
- const res = this.sendData(data, options);
98
- if (isPromise(res)) {
99
- this.sendingData = defer();
100
- await res;
101
- this.sendingData.resolve();
102
- this.sendingData = undefined;
103
- }
104
- }
105
- }
106
- finally {
107
- this.sinkController.signal.removeEventListener('abort', abortListener);
108
- }
109
- this.log.trace('sink finished reading from source, write status is "%s"', this.writeStatus);
110
- if (this.writeStatus === 'writing') {
111
- this.writeStatus = 'closing';
112
- this.log.trace('send close write to remote');
113
- await this.sendCloseWrite({
114
- signal: AbortSignal.timeout(this.sendCloseWriteTimeout)
115
- });
116
- this.writeStatus = 'closed';
117
- }
118
- this.onSinkEnd();
119
- }
120
- catch (err) {
121
- this.log.trace('sink ended with error, calling abort with error', err);
122
- this.abort(err);
123
- throw err;
124
- }
125
- finally {
126
- this.log.trace('resolve sink end');
127
- this.sinkEnd.resolve();
128
- }
129
- }
130
- onSourceEnd(err) {
131
- if (this.timeline.closeRead != null) {
132
- return;
133
- }
134
- this.timeline.closeRead = Date.now();
135
- this.readStatus = 'closed';
136
- if (err != null && this.endErr == null) {
137
- this.endErr = err;
138
- }
139
- this.onCloseRead?.();
140
- if (this.timeline.closeWrite != null) {
141
- this.log.trace('source and sink ended');
142
- this.timeline.close = Date.now();
143
- if (this.status !== 'aborted' && this.status !== 'reset') {
144
- this.status = 'closed';
145
- }
146
- if (this.onEnd != null) {
147
- this.onEnd(this.endErr);
148
- }
149
- this.closed.resolve();
150
- }
151
- else {
152
- this.log.trace('source ended, waiting for sink to end');
153
- }
9
+ this.protocol = init.protocol ?? '';
154
10
  }
155
- onSinkEnd(err) {
156
- if (this.timeline.closeWrite != null) {
157
- return;
158
- }
159
- this.timeline.closeWrite = Date.now();
160
- this.writeStatus = 'closed';
161
- if (err != null && this.endErr == null) {
162
- this.endErr = err;
163
- }
164
- this.onCloseWrite?.();
165
- if (this.timeline.closeRead != null) {
166
- this.log.trace('sink and source ended');
167
- this.timeline.close = Date.now();
168
- if (this.status !== 'aborted' && this.status !== 'reset') {
169
- this.status = 'closed';
170
- }
171
- if (this.onEnd != null) {
172
- this.onEnd(this.endErr);
173
- }
174
- this.closed.resolve();
175
- }
176
- else {
177
- this.log.trace('sink ended, waiting for source to end');
178
- }
179
- }
180
- // Close for both Reading and Writing
181
11
  async close(options) {
182
- if (this.status !== 'open') {
183
- return;
184
- }
185
- this.log.trace('closing gracefully');
186
- this.status = 'closing';
187
- // wait for read and write ends to close
188
- await raceSignal(Promise.all([
189
- this.closeWrite(options),
190
- this.closeRead(options),
191
- this.closed.promise
192
- ]), options?.signal);
193
- this.status = 'closed';
194
- this.log.trace('closed gracefully');
195
- }
196
- async closeRead(options = {}) {
197
- if (this.readStatus === 'closing' || this.readStatus === 'closed') {
198
- return;
199
- }
200
- this.log.trace('closing readable end of stream with starting read status "%s"', this.readStatus);
201
- const readStatus = this.readStatus;
202
- this.readStatus = 'closing';
203
- if (this.status !== 'reset' && this.status !== 'aborted' && this.timeline.closeRead == null) {
204
- this.log.trace('send close read to remote');
205
- await this.sendCloseRead(options);
206
- }
207
- if (readStatus === 'ready') {
208
- this.log.trace('ending internal source queue with %d queued bytes', this.streamSource.readableLength);
209
- this.streamSource.end();
210
- }
211
- this.log.trace('closed readable end of stream');
212
- }
213
- async closeWrite(options = {}) {
214
12
  if (this.writeStatus === 'closing' || this.writeStatus === 'closed') {
215
13
  return;
216
14
  }
217
- this.log.trace('closing writable end of stream with starting write status "%s"', this.writeStatus);
218
- if (this.writeStatus === 'ready') {
219
- this.log.trace('sink was never sunk, sink an empty array');
220
- await raceSignal(this.sink([]), options.signal);
221
- }
222
- if (this.writeStatus === 'writing') {
223
- // try to let sending outgoing data succeed
224
- if (this.sendingData != null) {
225
- await raceSignal(this.sendingData.promise, options.signal);
226
- }
227
- // stop reading from the source passed to `.sink`
228
- this.log.trace('aborting source passed to .sink');
229
- this.sinkController.abort();
230
- await raceSignal(this.sinkEnd.promise, options.signal);
231
- }
232
- this.writeStatus = 'closed';
233
- this.log.trace('closed writable end of stream');
234
- }
235
- /**
236
- * Close immediately for reading and writing and send a reset message (local
237
- * error)
238
- */
239
- abort(err) {
240
- if (this.status === 'closed' || this.status === 'aborted' || this.status === 'reset') {
241
- return;
242
- }
243
- this.log('abort with error', err);
244
- // try to send a reset message
245
- this.log('try to send reset to remote');
246
- const res = this.sendReset();
247
- if (isPromise(res)) {
248
- res.catch((err) => {
249
- this.log.error('error sending reset message', err);
15
+ this.writeStatus = 'closing';
16
+ // if we are currently sending data, wait for all the data to be written
17
+ // into the underlying transport
18
+ if (this.sendingData || this.writeBuffer.byteLength > 0) {
19
+ this.log('waiting for write queue to become idle before closing writable end of stream, %d unsent bytes', this.writeBuffer.byteLength);
20
+ await pEvent(this, 'idle', {
21
+ ...options,
22
+ rejectionEvents: [
23
+ 'close'
24
+ ]
250
25
  });
251
26
  }
252
- this.status = 'aborted';
253
- this.timeline.abort = Date.now();
254
- this._closeSinkAndSource(err);
255
- this.onAbort?.(err);
256
- }
257
- /**
258
- * Receive a reset message - close immediately for reading and writing (remote
259
- * error)
260
- */
261
- reset() {
262
- if (this.status === 'closed' || this.status === 'aborted' || this.status === 'reset') {
263
- return;
264
- }
265
- const err = new StreamResetError('stream reset');
266
- this.status = 'reset';
267
- this.timeline.reset = Date.now();
268
- this._closeSinkAndSource(err);
269
- this.onReset?.();
270
- }
271
- _closeSinkAndSource(err) {
272
- this._closeSink(err);
273
- this._closeSource(err);
274
- }
275
- _closeSink(err) {
276
- // if the sink function is running, cause it to end
277
- if (this.writeStatus === 'writing') {
278
- this.log.trace('end sink source');
279
- this.sinkController.abort();
27
+ // now that the underlying transport has all the data, if the buffer is full
28
+ // wait for it to be emptied
29
+ if (this.writableNeedsDrain) {
30
+ this.log('waiting for write queue to drain before closing writable end of stream, %d unsent bytes, sending %s', this.writeBuffer.byteLength, this.sendingData);
31
+ await pEvent(this, 'drain', {
32
+ ...options,
33
+ rejectionEvents: [
34
+ 'close'
35
+ ]
36
+ });
37
+ this.log('write queue drained, closing writable end of stream, %d unsent bytes, sending %s', this.writeBuffer.byteLength, this.sendingData);
280
38
  }
281
- this.onSinkEnd(err);
282
- }
283
- _closeSource(err) {
284
- // if the source is not ending, end it
285
- if (this.readStatus !== 'closing' && this.readStatus !== 'closed') {
286
- this.log.trace('ending source with %d bytes to be read by consumer', this.streamSource.readableLength);
287
- this.readStatus = 'closing';
288
- this.streamSource.end(err);
39
+ await this.sendCloseWrite(options);
40
+ this.writeStatus = 'closed';
41
+ this.log('closed writable end gracefully');
42
+ if (this.remoteWriteStatus === 'closed') {
43
+ this.onTransportClosed();
289
44
  }
290
45
  }
291
- /**
292
- * The remote closed for writing so we should expect to receive no more
293
- * messages
294
- */
295
- remoteCloseWrite() {
46
+ async closeRead(options) {
296
47
  if (this.readStatus === 'closing' || this.readStatus === 'closed') {
297
- this.log('received remote close write but local source is already closed');
298
48
  return;
299
49
  }
300
- this.log.trace('remote close write');
301
- this._closeSource();
302
- }
303
- /**
304
- * The remote closed for reading so we should not send any more
305
- * messages
306
- */
307
- remoteCloseRead() {
308
- if (this.writeStatus === 'closing' || this.writeStatus === 'closed') {
309
- this.log('received remote close read but local sink is already closed');
310
- return;
50
+ // throw away any unread data
51
+ if (this.readBuffer.byteLength > 0) {
52
+ this.readBuffer.consume(this.readBuffer.byteLength);
311
53
  }
312
- this.log.trace('remote close read');
313
- this._closeSink();
314
- }
315
- /**
316
- * The underlying muxer has closed, no more messages can be sent or will
317
- * be received, close immediately to free up resources
318
- */
319
- destroy() {
320
- if (this.status === 'closed' || this.status === 'aborted' || this.status === 'reset') {
321
- this.log('received destroy but we are already closed');
322
- return;
323
- }
324
- this.log.trace('stream destroyed');
325
- this._closeSinkAndSource();
326
- }
327
- /**
328
- * When an extending class reads data from it's implementation-specific source,
329
- * call this method to allow the stream consumer to read the data.
330
- */
331
- sourcePush(data) {
332
- this.streamSource.push(data);
333
- }
334
- /**
335
- * Returns the amount of unread data - can be used to prevent large amounts of
336
- * data building up when the stream consumer is too slow.
337
- */
338
- sourceReadableLength() {
339
- return this.streamSource.readableLength;
54
+ this.readStatus = 'closing';
55
+ await this.sendCloseRead(options);
56
+ this.readStatus = 'closed';
57
+ this.log('closed readable end gracefully');
340
58
  }
341
59
  }
342
60
  //# sourceMappingURL=abstract-stream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-stream.js","sourceRoot":"","sources":["../../src/abstract-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abstract-stream.js","sourceRoot":"","sources":["../../src/abstract-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAgBpE,MAAM,OAAgB,cAAe,SAAQ,qBAAqB;IACzD,EAAE,CAAQ;IACV,QAAQ,CAAQ;IAEvB,YAAa,IAAwB;QACnC,KAAK,CAAC,IAAI,CAAC,CAAA;QAEX,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAA;QACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,KAAK,CAAE,OAAsB;QACjC,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpE,OAAM;QACR,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;QAE5B,wEAAwE;QACxE,gCAAgC;QAChC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,GAAG,CAAC,+FAA+F,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;YACtI,MAAM,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE;gBACzB,GAAG,OAAO;gBACV,eAAe,EAAE;oBACf,OAAO;iBACR;aACF,CAAC,CAAA;QACJ,CAAC;QAED,4EAA4E;QAC5E,4BAA4B;QAC5B,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,qGAAqG,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;YAC9J,MAAM,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;gBAC1B,GAAG,OAAO;gBACV,eAAe,EAAE;oBACf,OAAO;iBACR;aACF,CAAC,CAAA;YACF,IAAI,CAAC,GAAG,CAAC,kFAAkF,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QAC7I,CAAC;QAED,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QAElC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAA;QAE3B,IAAI,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;QAE1C,IAAI,IAAI,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAC1B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAE,OAAsB;QACrC,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YAClE,OAAM;QACR,CAAC;QAED,6BAA6B;QAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;QACrD,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;QAE3B,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAEjC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAA;QAE1B,IAAI,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;IAC5C,CAAC;CAaF"}
@@ -13,4 +13,12 @@ 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
+ }
16
24
  //# 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"}
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"}
@@ -22,4 +22,12 @@ 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
+ }
25
33
  //# 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"}
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"}
@@ -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): Multiaddr[];
8
+ export declare function getThinWaistAddresses(ma?: Multiaddr, port?: number | string): 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":"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
+ {"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,4 +1,5 @@
1
- import { multiaddr } from '@multiformats/multiaddr';
1
+ import { getNetConfig } from "./multiaddr/get-net-config.js";
2
+ import { netConfigToMultiaddr } from "./multiaddr/utils.js";
2
3
  /**
3
4
  * Get all thin waist addresses on the current host that match the family of the
4
5
  * passed multiaddr and optionally override the port.
@@ -9,9 +10,9 @@ export function getThinWaistAddresses(ma, port) {
9
10
  if (ma == null) {
10
11
  return [];
11
12
  }
12
- const options = ma.toOptions();
13
+ const config = getNetConfig(ma);
13
14
  return [
14
- multiaddr(`/ip${options.family}/${options.host}/${options.transport}/${port ?? options.port}`)
15
+ netConfigToMultiaddr(config, port)
15
16
  ];
16
17
  }
17
18
  //# 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,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"}
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"}
@@ -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): Multiaddr[];
8
+ export declare function getThinWaistAddresses(ma?: Multiaddr, port?: number | string): 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":"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
+ {"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,6 +1,7 @@
1
1
  import os from 'node:os';
2
- import { multiaddr } from '@multiformats/multiaddr';
3
2
  import { isLinkLocalIp } from './link-local-ip.js';
3
+ import { getNetConfig } from "./multiaddr/get-net-config.js";
4
+ import { netConfigToMultiaddr } from "./multiaddr/utils.js";
4
5
  const FAMILIES = { 4: 'IPv4', 6: 'IPv6' };
5
6
  function isWildcard(ip) {
6
7
  return ['0.0.0.0', '::'].includes(ip);
@@ -32,16 +33,13 @@ export function getThinWaistAddresses(ma, port) {
32
33
  if (ma == null) {
33
34
  return [];
34
35
  }
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;
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));
42
40
  }
43
41
  return [
44
- multiaddr(`/ip${options.family}/${options.host}/${options.transport}/${port ?? options.port}`)
42
+ netConfigToMultiaddr(config, port)
45
43
  ];
46
44
  }
47
45
  //# 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,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"}
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"}
@@ -3,5 +3,37 @@
3
3
  *
4
4
  * This module contains utility functions used by libp2p modules.
5
5
  */
6
- export {};
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';
7
39
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAA"}
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"}
package/dist/src/index.js CHANGED
@@ -3,5 +3,37 @@
3
3
  *
4
4
  * This module contains utility functions used by libp2p modules.
5
5
  */
6
- export {};
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';
7
39
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAA"}
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"}