@libp2p/utils 7.3.2 → 7.4.0

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.
@@ -29,6 +29,7 @@ export interface SendResult {
29
29
  canSendMore: boolean;
30
30
  }
31
31
  export declare abstract class AbstractMessageStream<Timeline extends MessageStreamTimeline = MessageStreamTimeline> extends TypedEventEmitter<MessageStreamEvents> implements MessageStream {
32
+ #private;
32
33
  status: MessageStreamStatus;
33
34
  readonly timeline: Timeline;
34
35
  inactivityTimeout: number;
@@ -53,6 +54,7 @@ export declare abstract class AbstractMessageStream<Timeline extends MessageStre
53
54
  private onDrainPromise?;
54
55
  constructor(init: MessageStreamInit);
55
56
  get readBufferLength(): number;
57
+ get readableEnded(): boolean;
56
58
  get writeBufferLength(): number;
57
59
  onDrain(options?: AbortOptions): Promise<void>;
58
60
  [Symbol.asyncIterator](): AsyncGenerator<Uint8Array | Uint8ArrayList>;
@@ -94,6 +96,11 @@ export declare abstract class AbstractMessageStream<Timeline extends MessageStre
94
96
  */
95
97
  onRemoteCloseRead(): void;
96
98
  protected processSendQueue(): boolean;
99
+ /**
100
+ * Emit 'end' if nothing is buffered and no more data will be delivered.
101
+ * Emits at most once
102
+ */
103
+ protected maybeDispatchEnd(): void;
97
104
  protected dispatchReadBuffer(): void;
98
105
  private checkReadBufferLength;
99
106
  private checkWriteBufferLength;
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-message-stream.d.ts","sourceRoot":"","sources":["../../src/abstract-message-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abstract-message-stream.d.ts","sourceRoot":"","sources":["../../src/abstract-message-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,iBAAiB,EAAiH,MAAM,mBAAmB,CAAA;AAGtL,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,YAAY,EAAE,aAAa,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAC7O,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAI5C,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IAEX;;OAEG;IACH,SAAS,CAAC,EAAE,sBAAsB,CAAA;IAElC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAA;CACrB;AAED,8BAAsB,qBAAqB,CAAC,QAAQ,SAAS,qBAAqB,GAAG,qBAAqB,CAAE,SAAQ,iBAAiB,CAAC,mBAAmB,CAAE,YAAW,aAAa;;IAC1K,MAAM,EAAE,mBAAmB,CAAA;IAClC,SAAgB,QAAQ,EAAE,QAAQ,CAAA;IAC3B,iBAAiB,EAAE,MAAM,CAAA;IACzB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IACpC,SAAgB,GAAG,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,sBAAsB,CAAA;IACjC,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB,UAAU,EAAE,uBAAuB,CAAA;IACnC,WAAW,EAAE,wBAAwB,CAAA;IACrC,gBAAgB,EAAE,uBAAuB,CAAA;IACzC,iBAAiB,EAAE,wBAAwB,CAAA;IAE3C,kBAAkB,EAAE,OAAO,CAAA;IAElC;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAA;IAC7C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAA;IAC9C,SAAS,CAAC,WAAW,EAAE,OAAO,CAAA;IAI9B,OAAO,CAAC,cAAc,CAAC,CAA4B;gBAEtC,IAAI,EAAE,iBAAiB;IAmDpC,IAAI,gBAAgB,IAAK,MAAM,CAE9B;IAED,IAAI,aAAa,IAAK,OAAO,CAE5B;IAED,IAAI,iBAAiB,IAAK,MAAM,CAE/B;IAEK,OAAO,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAY7C,CAAC,MAAM,CAAC,aAAa,CAAC,IAAK,cAAc,CAAC,UAAU,GAAG,cAAc,CAAC;IA+B9E,UAAU,IAAK,OAAO;IAItB,IAAI,CAAE,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO;IAWjD;;;OAGG;IACH,KAAK,CAAE,GAAG,EAAE,KAAK,GAAG,IAAI;IAqCxB,KAAK,IAAK,IAAI;IAad,MAAM,IAAK,IAAI;IAef,IAAI,CAAE,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,IAAI;IAwB9C,OAAO,CAAE,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,IAAI;IAwBjD;;;OAGG;IACH,MAAM,CAAE,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,IAAI;IAgBhD,gBAAgB,CAAC,CAAC,SAAS,MAAM,mBAAmB,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI;IACxK,gBAAgB,CAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI;IAiBjH;;;OAGG;IACH,aAAa,IAAK,IAAI;IAiBtB;;;;OAIG;IACH,iBAAiB,CAAE,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI;IAiCrC;;OAEG;IACH,kBAAkB,IAAK,IAAI;IAkB3B;;OAEG;IACH,iBAAiB,IAAK,IAAI;IAY1B,SAAS,CAAC,gBAAgB,IAAK,OAAO;IAkGtC;;;OAGG;IACH,SAAS,CAAC,gBAAgB,IAAK,IAAI;IAanC,SAAS,CAAC,kBAAkB,IAAK,IAAI;IAwCrC,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,sBAAsB;IAUvB,iBAAiB,IAAK,IAAI;IAI1B,YAAY,IAAK,IAAI;IAI5B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,QAAQ,CAAE,IAAI,EAAE,cAAc,GAAG,UAAU;IAEpD;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAE,GAAG,EAAE,KAAK,GAAG,IAAI;IAErC;;;OAGG;IACH,QAAQ,CAAC,SAAS,IAAK,IAAI;IAE3B;;;OAGG;IACH,QAAQ,CAAC,UAAU,IAAK,IAAI;IAE5B;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CACvD"}
@@ -26,6 +26,7 @@ export class AbstractMessageStream extends TypedEventEmitter {
26
26
  readBuffer;
27
27
  writeBuffer;
28
28
  sendingData;
29
+ #readableEnded = false;
29
30
  onDrainPromise;
30
31
  constructor(init) {
31
32
  super();
@@ -73,6 +74,9 @@ export class AbstractMessageStream extends TypedEventEmitter {
73
74
  get readBufferLength() {
74
75
  return this.readBuffer.byteLength;
75
76
  }
77
+ get readableEnded() {
78
+ return this.#readableEnded;
79
+ }
76
80
  get writeBufferLength() {
77
81
  return this.writeBuffer.byteLength;
78
82
  }
@@ -146,11 +150,12 @@ export class AbstractMessageStream extends TypedEventEmitter {
146
150
  this.readStatus = 'closed';
147
151
  this.remoteReadStatus = 'closed';
148
152
  this.timeline.close = Date.now();
153
+ this.maybeDispatchEnd();
149
154
  try {
150
155
  this.sendReset(err);
151
156
  }
152
157
  catch (err) {
153
- this.log('failed to send reset to remote - %e', err);
158
+ this.log.error('failed to send reset to remote - %e', err);
154
159
  }
155
160
  this.dispatchEvent(new StreamAbortEvent(err));
156
161
  }
@@ -256,9 +261,9 @@ export class AbstractMessageStream extends TypedEventEmitter {
256
261
  this.timeline.close = Date.now();
257
262
  if (this.readBuffer.byteLength === 0) {
258
263
  this.readStatus = 'closed';
264
+ this.maybeDispatchEnd();
259
265
  }
260
- const err = new StreamResetError();
261
- this.dispatchEvent(new StreamResetEvent(err));
266
+ this.dispatchEvent(new StreamResetEvent(new StreamResetError()));
262
267
  }
263
268
  /**
264
269
  * The underlying resource or transport this stream uses has closed - it is
@@ -281,17 +286,15 @@ export class AbstractMessageStream extends TypedEventEmitter {
281
286
  this.writeStatus = 'closed';
282
287
  }
283
288
  if (err != null) {
289
+ // abort dispatches 'end' itself, once the stream is fully terminal
284
290
  this.abort(err);
285
291
  }
286
- else {
287
- if (this.status === 'open' || this.status === 'closing') {
288
- this.timeline.close = Date.now();
289
- this.status = 'closed';
290
- this.writeStatus = 'closed';
291
- this.remoteWriteStatus = 'closed';
292
- this.remoteReadStatus = 'closed';
293
- this.dispatchEvent(new StreamCloseEvent());
294
- }
292
+ else if (this.status === 'open' || this.status === 'closing') {
293
+ this.timeline.close = Date.now();
294
+ this.status = 'closed';
295
+ // this may be the end even if the readable end was not closed above
296
+ this.maybeDispatchEnd();
297
+ this.dispatchEvent(new StreamCloseEvent());
295
298
  }
296
299
  }
297
300
  /**
@@ -304,6 +307,7 @@ export class AbstractMessageStream extends TypedEventEmitter {
304
307
  this.log.trace('on remote close write');
305
308
  this.remoteWriteStatus = 'closed';
306
309
  this.safeDispatchEvent('remoteCloseWrite');
310
+ this.maybeDispatchEnd();
307
311
  if (this.writeStatus === 'closed') {
308
312
  this.onTransportClosed();
309
313
  }
@@ -399,6 +403,20 @@ export class AbstractMessageStream extends TypedEventEmitter {
399
403
  this.sendingData = false;
400
404
  }
401
405
  }
406
+ /**
407
+ * Emit 'end' if nothing is buffered and no more data will be delivered.
408
+ * Emits at most once
409
+ */
410
+ maybeDispatchEnd() {
411
+ if (this.#readableEnded || this.readBuffer.byteLength > 0) {
412
+ return;
413
+ }
414
+ if (this.remoteWriteStatus !== 'closed' && this.readStatus !== 'closed') {
415
+ return;
416
+ }
417
+ this.#readableEnded = true;
418
+ this.safeDispatchEvent('end');
419
+ }
402
420
  dispatchReadBuffer() {
403
421
  try {
404
422
  if (this.listenerCount('message') === 0) {
@@ -427,6 +445,7 @@ export class AbstractMessageStream extends TypedEventEmitter {
427
445
  if (this.readBuffer.byteLength === 0 && this.remoteWriteStatus === 'closed') {
428
446
  this.log('close readable end after dispatching read buffer and remote writable end is closed');
429
447
  this.readStatus = 'closed';
448
+ this.maybeDispatchEnd();
430
449
  }
431
450
  // abort if we failed to consume the read buffer and it is too large
432
451
  this.checkReadBufferLength();
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-message-stream.js","sourceRoot":"","sources":["../../src/abstract-message-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abstract-message-stream.js","sourceRoot":"","sources":["../../src/abstract-message-stream.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-stream.d.ts","sourceRoot":"","sources":["../../src/abstract-stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE7D,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IAEV;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,8BAAsB,cAAe,SAAQ,qBAAsB,YAAW,MAAM;IAC3E,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;gBAEV,IAAI,EAAE,kBAAkB;IAO/B,KAAK,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C7C,SAAS,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBvD;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/D;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CAC/D"}
1
+ {"version":3,"file":"abstract-stream.d.ts","sourceRoot":"","sources":["../../src/abstract-stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE7D,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IAEV;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,8BAAsB,cAAe,SAAQ,qBAAsB,YAAW,MAAM;IAC3E,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;gBAEV,IAAI,EAAE,kBAAkB;IAO/B,KAAK,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C7C,SAAS,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBvD;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/D;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CAC/D"}
@@ -54,6 +54,7 @@ export class AbstractStream extends AbstractMessageStream {
54
54
  this.readStatus = 'closing';
55
55
  await this.sendCloseRead(options);
56
56
  this.readStatus = 'closed';
57
+ this.maybeDispatchEnd();
57
58
  this.log('closed readable end gracefully');
58
59
  }
59
60
  }
@@ -1 +1 @@
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"}
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;QAC1B,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAEvB,IAAI,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;IAC5C,CAAC;CAaF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/utils",
3
- "version": "7.3.2",
3
+ "version": "7.4.0",
4
4
  "description": "Package to aggregate shared logic and dependencies for the libp2p ecosystem",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/utils#readme",
@@ -47,8 +47,8 @@
47
47
  "dependencies": {
48
48
  "@chainsafe/is-ip": "^2.1.0",
49
49
  "@chainsafe/netmask": "^2.0.0",
50
- "@libp2p/interface": "^3.2.5",
51
- "@libp2p/logger": "^6.2.12",
50
+ "@libp2p/interface": "^3.3.0",
51
+ "@libp2p/logger": "^6.2.13",
52
52
  "@multiformats/multiaddr": "^13.0.3",
53
53
  "@multiformats/multiaddr-matcher": "^3.0.2",
54
54
  "@sindresorhus/fnv1a": "^3.1.0",
@@ -72,8 +72,8 @@
72
72
  "uint8arrays": "^6.1.1"
73
73
  },
74
74
  "devDependencies": {
75
- "@libp2p/crypto": "^5.1.22",
76
- "@libp2p/peer-id": "^6.0.14",
75
+ "@libp2p/crypto": "^5.1.23",
76
+ "@libp2p/peer-id": "^6.0.15",
77
77
  "@types/netmask": "^2.0.5",
78
78
  "aegir": "^48.1.1",
79
79
  "benchmark": "^2.1.4",
@@ -65,6 +65,8 @@ export abstract class AbstractMessageStream<Timeline extends MessageStreamTimeli
65
65
  protected readonly writeBuffer: Uint8ArrayList
66
66
  protected sendingData: boolean
67
67
 
68
+ #readableEnded = false
69
+
68
70
  private onDrainPromise?: PromiseWithResolvers<void>
69
71
 
70
72
  constructor (init: MessageStreamInit) {
@@ -122,6 +124,10 @@ export abstract class AbstractMessageStream<Timeline extends MessageStreamTimeli
122
124
  return this.readBuffer.byteLength
123
125
  }
124
126
 
127
+ get readableEnded (): boolean {
128
+ return this.#readableEnded
129
+ }
130
+
125
131
  get writeBufferLength (): number {
126
132
  return this.writeBuffer.byteLength
127
133
  }
@@ -214,11 +220,12 @@ export abstract class AbstractMessageStream<Timeline extends MessageStreamTimeli
214
220
  this.readStatus = 'closed'
215
221
  this.remoteReadStatus = 'closed'
216
222
  this.timeline.close = Date.now()
223
+ this.maybeDispatchEnd()
217
224
 
218
225
  try {
219
226
  this.sendReset(err)
220
227
  } catch (err: any) {
221
- this.log('failed to send reset to remote - %e', err)
228
+ this.log.error('failed to send reset to remote - %e', err)
222
229
  }
223
230
 
224
231
  this.dispatchEvent(new StreamAbortEvent(err))
@@ -353,10 +360,10 @@ export abstract class AbstractMessageStream<Timeline extends MessageStreamTimeli
353
360
 
354
361
  if (this.readBuffer.byteLength === 0) {
355
362
  this.readStatus = 'closed'
363
+ this.maybeDispatchEnd()
356
364
  }
357
365
 
358
- const err = new StreamResetError()
359
- this.dispatchEvent(new StreamResetEvent(err))
366
+ this.dispatchEvent(new StreamResetEvent(new StreamResetError()))
360
367
  }
361
368
 
362
369
  /**
@@ -385,16 +392,15 @@ export abstract class AbstractMessageStream<Timeline extends MessageStreamTimeli
385
392
  }
386
393
 
387
394
  if (err != null) {
395
+ // abort dispatches 'end' itself, once the stream is fully terminal
388
396
  this.abort(err)
389
- } else {
390
- if (this.status === 'open' || this.status === 'closing') {
391
- this.timeline.close = Date.now()
392
- this.status = 'closed'
393
- this.writeStatus = 'closed'
394
- this.remoteWriteStatus = 'closed'
395
- this.remoteReadStatus = 'closed'
396
- this.dispatchEvent(new StreamCloseEvent())
397
- }
397
+ } else if (this.status === 'open' || this.status === 'closing') {
398
+ this.timeline.close = Date.now()
399
+ this.status = 'closed'
400
+
401
+ // this may be the end even if the readable end was not closed above
402
+ this.maybeDispatchEnd()
403
+ this.dispatchEvent(new StreamCloseEvent())
398
404
  }
399
405
  }
400
406
 
@@ -412,6 +418,8 @@ export abstract class AbstractMessageStream<Timeline extends MessageStreamTimeli
412
418
 
413
419
  this.safeDispatchEvent('remoteCloseWrite')
414
420
 
421
+ this.maybeDispatchEnd()
422
+
415
423
  if (this.writeStatus === 'closed') {
416
424
  this.onTransportClosed()
417
425
  }
@@ -530,6 +538,23 @@ export abstract class AbstractMessageStream<Timeline extends MessageStreamTimeli
530
538
  }
531
539
  }
532
540
 
541
+ /**
542
+ * Emit 'end' if nothing is buffered and no more data will be delivered.
543
+ * Emits at most once
544
+ */
545
+ protected maybeDispatchEnd (): void {
546
+ if (this.#readableEnded || this.readBuffer.byteLength > 0) {
547
+ return
548
+ }
549
+
550
+ if (this.remoteWriteStatus !== 'closed' && this.readStatus !== 'closed') {
551
+ return
552
+ }
553
+
554
+ this.#readableEnded = true
555
+ this.safeDispatchEvent('end')
556
+ }
557
+
533
558
  protected dispatchReadBuffer (): void {
534
559
  try {
535
560
  if (this.listenerCount('message') === 0) {
@@ -562,6 +587,7 @@ export abstract class AbstractMessageStream<Timeline extends MessageStreamTimeli
562
587
  if (this.readBuffer.byteLength === 0 && this.remoteWriteStatus === 'closed') {
563
588
  this.log('close readable end after dispatching read buffer and remote writable end is closed')
564
589
  this.readStatus = 'closed'
590
+ this.maybeDispatchEnd()
565
591
  }
566
592
 
567
593
  // abort if we failed to consume the read buffer and it is too large
@@ -84,6 +84,7 @@ export abstract class AbstractStream extends AbstractMessageStream implements St
84
84
  await this.sendCloseRead(options)
85
85
 
86
86
  this.readStatus = 'closed'
87
+ this.maybeDispatchEnd()
87
88
 
88
89
  this.log('closed readable end gracefully')
89
90
  }