@libp2p/webtransport 3.1.10-0f5c305af → 3.1.10-3dee5df4d

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.
@@ -21,6 +21,7 @@
21
21
  * ```
22
22
  */
23
23
  import { type Transport } from '@libp2p/interface/transport';
24
+ import type { ComponentLogger } from '@libp2p/interface';
24
25
  import type { CounterGroup, Metrics } from '@libp2p/interface/metrics';
25
26
  import type { PeerId } from '@libp2p/interface/peer-id';
26
27
  export interface WebTransportInit {
@@ -29,6 +30,7 @@ export interface WebTransportInit {
29
30
  export interface WebTransportComponents {
30
31
  peerId: PeerId;
31
32
  metrics?: Metrics;
33
+ logger: ComponentLogger;
32
34
  }
33
35
  export interface WebTransportMetrics {
34
36
  dialerEvents: CounterGroup;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAAE,KAAK,SAAS,EAAuE,MAAM,6BAA6B,CAAA;AASjI,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAWvD,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,YAAY,CAAA;CAC3B;AA+SD,wBAAgB,YAAY,CAAE,IAAI,GAAE,gBAAqB,GAAG,CAAC,UAAU,EAAE,sBAAsB,KAAK,SAAS,CAE5G"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAAE,KAAK,SAAS,EAAuE,MAAM,6BAA6B,CAAA;AAOjI,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,mBAAmB,CAAA;AAEhE,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AASvD,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,YAAY,CAAA;CAC3B;AAiUD,wBAAgB,YAAY,CAAE,IAAI,GAAE,gBAAqB,GAAG,CAAC,UAAU,EAAE,sBAAsB,KAAK,SAAS,CAE5G"}
package/dist/src/index.js CHANGED
@@ -22,19 +22,19 @@
22
22
  */
23
23
  import { noise } from '@chainsafe/libp2p-noise';
24
24
  import { symbol } from '@libp2p/interface/transport';
25
- import { logger } from '@libp2p/logger';
26
25
  import {} from '@multiformats/multiaddr';
27
26
  import { WebTransport as WebTransportMatcher } from '@multiformats/multiaddr-matcher';
28
27
  import { webtransportBiDiStreamToStream } from './stream.js';
29
28
  import { inertDuplex } from './utils/inert-duplex.js';
30
29
  import { isSubset } from './utils/is-subset.js';
31
30
  import { parseMultiaddr } from './utils/parse-multiaddr.js';
32
- const log = logger('libp2p:webtransport');
33
31
  class WebTransportTransport {
32
+ log;
34
33
  components;
35
34
  config;
36
35
  metrics;
37
36
  constructor(components, init = {}) {
37
+ this.log = components.logger.forComponent('libp2p:webtransport');
38
38
  this.components = components;
39
39
  this.config = {
40
40
  maxInboundStreams: init.maxInboundStreams ?? 1000
@@ -52,7 +52,7 @@ class WebTransportTransport {
52
52
  [symbol] = true;
53
53
  async dial(ma, options) {
54
54
  options?.signal?.throwIfAborted();
55
- log('dialing %s', ma);
55
+ this.log('dialing %s', ma);
56
56
  const localPeer = this.components.peerId;
57
57
  if (localPeer === undefined) {
58
58
  throw new Error('Need a local peerid');
@@ -89,7 +89,7 @@ class WebTransportTransport {
89
89
  wt.close();
90
90
  }
91
91
  catch (err) {
92
- log.error('error closing wt session', err);
92
+ this.log.error('error closing wt session', err);
93
93
  }
94
94
  finally {
95
95
  // This is how we specify the connection is closed and shouldn't be used.
@@ -119,7 +119,7 @@ class WebTransportTransport {
119
119
  this.metrics?.dialerEvents.increment({ ready: true });
120
120
  // this promise resolves/throws when the session is closed
121
121
  wt.closed.catch((err) => {
122
- log.error('error on remote wt session close', err);
122
+ this.log.error('error on remote wt session close', err);
123
123
  })
124
124
  .finally(() => {
125
125
  cleanUpWTSession('remote_close');
@@ -130,17 +130,18 @@ class WebTransportTransport {
130
130
  this.metrics?.dialerEvents.increment({ open: true });
131
131
  maConn = {
132
132
  close: async () => {
133
- log('Closing webtransport');
133
+ this.log('Closing webtransport');
134
134
  cleanUpWTSession('close');
135
135
  },
136
136
  abort: (err) => {
137
- log('aborting webtransport due to passed err', err);
137
+ this.log('aborting webtransport due to passed err', err);
138
138
  cleanUpWTSession('abort');
139
139
  },
140
140
  remoteAddr: ma,
141
141
  timeline: {
142
142
  open: Date.now()
143
143
  },
144
+ log: this.components.logger.forComponent('libp2p:webtransport:maconn'),
144
145
  // This connection is never used directly since webtransport supports native streams.
145
146
  ...inertDuplex()
146
147
  };
@@ -148,7 +149,7 @@ class WebTransportTransport {
148
149
  return await options.upgrader.upgradeOutbound(maConn, { skipEncryption: true, muxerFactory: this.webtransportMuxer(wt), skipProtection: true });
149
150
  }
150
151
  catch (err) {
151
- log.error('caught wt session err', err);
152
+ this.log.error('caught wt session err', err);
152
153
  if (authenticated) {
153
154
  cleanUpWTSession('upgrade_error');
154
155
  }
@@ -193,10 +194,10 @@ class WebTransportTransport {
193
194
  const { remoteExtensions } = await n.secureOutbound(localPeer, duplex, remotePeer);
194
195
  // We're done with this authentication stream
195
196
  writer.close().catch((err) => {
196
- log.error(`Failed to close authentication stream writer: ${err.message}`);
197
+ this.log.error(`Failed to close authentication stream writer: ${err.message}`);
197
198
  });
198
199
  reader.cancel().catch((err) => {
199
- log.error(`Failed to close authentication stream reader: ${err.message}`);
200
+ this.log.error(`Failed to close authentication stream reader: ${err.message}`);
200
201
  });
201
202
  // Verify the certhashes we used when dialing are a subset of the certhashes relayed by the remote peer
202
203
  if (!isSubset(remoteExtensions?.webtransportCerthashes ?? [], certhashes.map(ch => ch.bytes))) {
@@ -207,6 +208,7 @@ class WebTransportTransport {
207
208
  webtransportMuxer(wt) {
208
209
  let streamIDCounter = 0;
209
210
  const config = this.config;
211
+ const self = this;
210
212
  return {
211
213
  protocol: 'webtransport',
212
214
  createStreamMuxer: (init) => {
@@ -227,27 +229,27 @@ class WebTransportTransport {
227
229
  if (activeStreams.length >= config.maxInboundStreams) {
228
230
  // We've reached our limit, close this stream.
229
231
  wtStream.writable.close().catch((err) => {
230
- log.error(`Failed to close inbound stream that crossed our maxInboundStream limit: ${err.message}`);
232
+ self.log.error(`Failed to close inbound stream that crossed our maxInboundStream limit: ${err.message}`);
231
233
  });
232
234
  wtStream.readable.cancel().catch((err) => {
233
- log.error(`Failed to close inbound stream that crossed our maxInboundStream limit: ${err.message}`);
235
+ self.log.error(`Failed to close inbound stream that crossed our maxInboundStream limit: ${err.message}`);
234
236
  });
235
237
  }
236
238
  else {
237
- const stream = await webtransportBiDiStreamToStream(wtStream, String(streamIDCounter++), 'inbound', activeStreams, init?.onStreamEnd);
239
+ const stream = await webtransportBiDiStreamToStream(wtStream, String(streamIDCounter++), 'inbound', activeStreams, init?.onStreamEnd, self.components.logger);
238
240
  activeStreams.push(stream);
239
241
  init?.onIncomingStream?.(stream);
240
242
  }
241
243
  }
242
244
  })().catch(() => {
243
- log.error('WebTransport failed to receive incoming stream');
245
+ this.log.error('WebTransport failed to receive incoming stream');
244
246
  });
245
247
  const muxer = {
246
248
  protocol: 'webtransport',
247
249
  streams: activeStreams,
248
250
  newStream: async (name) => {
249
251
  const wtStream = await wt.createBidirectionalStream();
250
- const stream = await webtransportBiDiStreamToStream(wtStream, String(streamIDCounter++), init?.direction ?? 'outbound', activeStreams, init?.onStreamEnd);
252
+ const stream = await webtransportBiDiStreamToStream(wtStream, String(streamIDCounter++), init?.direction ?? 'outbound', activeStreams, init?.onStreamEnd, self.components.logger);
251
253
  activeStreams.push(stream);
252
254
  return stream;
253
255
  },
@@ -255,11 +257,11 @@ class WebTransportTransport {
255
257
  * Close or abort all tracked streams and stop the muxer
256
258
  */
257
259
  close: async (options) => {
258
- log('Closing webtransport muxer');
260
+ this.log('Closing webtransport muxer');
259
261
  await Promise.all(activeStreams.map(async (s) => s.close(options)));
260
262
  },
261
263
  abort: (err) => {
262
- log('Aborting webtransport muxer with err:', err);
264
+ this.log('Aborting webtransport muxer with err:', err);
263
265
  for (const stream of activeStreams) {
264
266
  stream.abort(err);
265
267
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { ComponentLogger } from '@libp2p/interface';
1
2
  import type { Direction, Stream } from '@libp2p/interface/connection';
2
- export declare function webtransportBiDiStreamToStream(bidiStream: WebTransportBidirectionalStream, streamId: string, direction: Direction, activeStreams: Stream[], onStreamEnd: undefined | ((s: Stream) => void)): Promise<Stream>;
3
+ export declare function webtransportBiDiStreamToStream(bidiStream: WebTransportBidirectionalStream, streamId: string, direction: Direction, activeStreams: Stream[], onStreamEnd: undefined | ((s: Stream) => void), logger: ComponentLogger): Promise<Stream>;
3
4
  //# sourceMappingURL=stream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAKrE,wBAAsB,8BAA8B,CAAE,UAAU,EAAE,+BAA+B,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAiLnO"}
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAGrE,wBAAsB,8BAA8B,CAAE,UAAU,EAAE,+BAA+B,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAmL5P"}
@@ -1,7 +1,6 @@
1
- import { logger } from '@libp2p/logger';
2
1
  import { Uint8ArrayList } from 'uint8arraylist';
3
- const log = logger('libp2p:webtransport:stream');
4
- export async function webtransportBiDiStreamToStream(bidiStream, streamId, direction, activeStreams, onStreamEnd) {
2
+ export async function webtransportBiDiStreamToStream(bidiStream, streamId, direction, activeStreams, onStreamEnd, logger) {
3
+ const log = logger.forComponent(`libp2p:webtransport:stream:${direction}:${streamId}`);
5
4
  const writer = bidiStream.writable.getWriter();
6
5
  const reader = bidiStream.readable.getReader();
7
6
  await writer.ready;
@@ -154,7 +153,8 @@ export async function webtransportBiDiStreamToStream(bidiStream, streamId, direc
154
153
  this.writeStatus = 'closed';
155
154
  await stream.closeWrite();
156
155
  }
157
- }
156
+ },
157
+ log
158
158
  };
159
159
  return stream;
160
160
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@libp2p/webtransport",
3
- "version": "3.1.10-0f5c305af",
3
+ "version": "3.1.10-3dee5df4d",
4
4
  "description": "JavaScript implementation of the WebTransport module that libp2p uses and that implements the interface-transport spec",
5
5
  "license": "Apache-2.0 OR MIT",
6
- "homepage": "https://github.com/libp2p/js-libp2p/tree/master/packages/transport-webtransport#readme",
6
+ "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/transport-webtransport#readme",
7
7
  "repository": {
8
8
  "type": "git",
9
9
  "url": "git+https://github.com/libp2p/js-libp2p.git"
@@ -16,22 +16,6 @@
16
16
  ],
17
17
  "type": "module",
18
18
  "types": "./dist/src/index.d.ts",
19
- "typesVersions": {
20
- "*": {
21
- "*": [
22
- "*",
23
- "dist/*",
24
- "dist/src/*",
25
- "dist/src/*/index"
26
- ],
27
- "src/*": [
28
- "*",
29
- "dist/*",
30
- "dist/src/*",
31
- "dist/src/*/index"
32
- ]
33
- }
34
- },
35
19
  "files": [
36
20
  "src",
37
21
  "dist",
@@ -62,20 +46,20 @@
62
46
  },
63
47
  "dependencies": {
64
48
  "@chainsafe/libp2p-noise": "^13.0.0",
65
- "@libp2p/interface": "0.1.6-0f5c305af",
66
- "@libp2p/logger": "3.1.0-0f5c305af",
67
- "@libp2p/peer-id": "3.0.6-0f5c305af",
68
- "@multiformats/multiaddr": "^12.1.5",
69
- "@multiformats/multiaddr-matcher": "^1.0.1",
49
+ "@libp2p/interface": "0.1.6-3dee5df4d",
50
+ "@libp2p/peer-id": "3.0.6-3dee5df4d",
51
+ "@multiformats/multiaddr": "^12.1.10",
52
+ "@multiformats/multiaddr-matcher": "^1.1.0",
70
53
  "it-stream-types": "^2.0.1",
71
- "multiformats": "^12.0.1",
54
+ "multiformats": "^12.1.3",
72
55
  "uint8arraylist": "^2.4.3",
73
56
  "uint8arrays": "^4.0.6"
74
57
  },
75
58
  "devDependencies": {
76
- "@libp2p/peer-id-factory": "3.0.8-0f5c305af",
59
+ "@libp2p/logger": "3.1.0-3dee5df4d",
60
+ "@libp2p/peer-id-factory": "3.0.8-3dee5df4d",
77
61
  "aegir": "^41.0.2",
78
- "libp2p": "0.46.21-0f5c305af",
62
+ "libp2p": "0.46.21-3dee5df4d",
79
63
  "p-defer": "^4.0.0"
80
64
  },
81
65
  "browser": {
package/src/index.ts CHANGED
@@ -23,13 +23,13 @@
23
23
 
24
24
  import { noise } from '@chainsafe/libp2p-noise'
25
25
  import { type Transport, symbol, type CreateListenerOptions, type DialOptions, type Listener } from '@libp2p/interface/transport'
26
- import { logger } from '@libp2p/logger'
27
26
  import { type Multiaddr, type AbortOptions } from '@multiformats/multiaddr'
28
27
  import { WebTransport as WebTransportMatcher } from '@multiformats/multiaddr-matcher'
29
28
  import { webtransportBiDiStreamToStream } from './stream.js'
30
29
  import { inertDuplex } from './utils/inert-duplex.js'
31
30
  import { isSubset } from './utils/is-subset.js'
32
31
  import { parseMultiaddr } from './utils/parse-multiaddr.js'
32
+ import type { ComponentLogger, Logger } from '@libp2p/interface'
33
33
  import type { Connection, MultiaddrConnection, Stream } from '@libp2p/interface/connection'
34
34
  import type { CounterGroup, Metrics } from '@libp2p/interface/metrics'
35
35
  import type { PeerId } from '@libp2p/interface/peer-id'
@@ -41,8 +41,6 @@ interface WebTransportSessionCleanup {
41
41
  (metric: string): void
42
42
  }
43
43
 
44
- const log = logger('libp2p:webtransport')
45
-
46
44
  export interface WebTransportInit {
47
45
  maxInboundStreams?: number
48
46
  }
@@ -50,6 +48,7 @@ export interface WebTransportInit {
50
48
  export interface WebTransportComponents {
51
49
  peerId: PeerId
52
50
  metrics?: Metrics
51
+ logger: ComponentLogger
53
52
  }
54
53
 
55
54
  export interface WebTransportMetrics {
@@ -57,11 +56,13 @@ export interface WebTransportMetrics {
57
56
  }
58
57
 
59
58
  class WebTransportTransport implements Transport {
59
+ private readonly log: Logger
60
60
  private readonly components: WebTransportComponents
61
61
  private readonly config: Required<WebTransportInit>
62
62
  private readonly metrics?: WebTransportMetrics
63
63
 
64
64
  constructor (components: WebTransportComponents, init: WebTransportInit = {}) {
65
+ this.log = components.logger.forComponent('libp2p:webtransport')
65
66
  this.components = components
66
67
  this.config = {
67
68
  maxInboundStreams: init.maxInboundStreams ?? 1000
@@ -84,7 +85,7 @@ class WebTransportTransport implements Transport {
84
85
  async dial (ma: Multiaddr, options: DialOptions): Promise<Connection> {
85
86
  options?.signal?.throwIfAborted()
86
87
 
87
- log('dialing %s', ma)
88
+ this.log('dialing %s', ma)
88
89
  const localPeer = this.components.peerId
89
90
  if (localPeer === undefined) {
90
91
  throw new Error('Need a local peerid')
@@ -131,7 +132,7 @@ class WebTransportTransport implements Transport {
131
132
  this.metrics?.dialerEvents.increment({ [metric]: true })
132
133
  wt.close()
133
134
  } catch (err) {
134
- log.error('error closing wt session', err)
135
+ this.log.error('error closing wt session', err)
135
136
  } finally {
136
137
  // This is how we specify the connection is closed and shouldn't be used.
137
138
  if (maConn != null) {
@@ -164,7 +165,7 @@ class WebTransportTransport implements Transport {
164
165
 
165
166
  // this promise resolves/throws when the session is closed
166
167
  wt.closed.catch((err: Error) => {
167
- log.error('error on remote wt session close', err)
168
+ this.log.error('error on remote wt session close', err)
168
169
  })
169
170
  .finally(() => {
170
171
  cleanUpWTSession('remote_close')
@@ -178,17 +179,18 @@ class WebTransportTransport implements Transport {
178
179
 
179
180
  maConn = {
180
181
  close: async () => {
181
- log('Closing webtransport')
182
+ this.log('Closing webtransport')
182
183
  cleanUpWTSession('close')
183
184
  },
184
185
  abort: (err: Error) => {
185
- log('aborting webtransport due to passed err', err)
186
+ this.log('aborting webtransport due to passed err', err)
186
187
  cleanUpWTSession('abort')
187
188
  },
188
189
  remoteAddr: ma,
189
190
  timeline: {
190
191
  open: Date.now()
191
192
  },
193
+ log: this.components.logger.forComponent('libp2p:webtransport:maconn'),
192
194
  // This connection is never used directly since webtransport supports native streams.
193
195
  ...inertDuplex()
194
196
  }
@@ -197,7 +199,7 @@ class WebTransportTransport implements Transport {
197
199
 
198
200
  return await options.upgrader.upgradeOutbound(maConn, { skipEncryption: true, muxerFactory: this.webtransportMuxer(wt), skipProtection: true })
199
201
  } catch (err: any) {
200
- log.error('caught wt session err', err)
202
+ this.log.error('caught wt session err', err)
201
203
 
202
204
  if (authenticated) {
203
205
  cleanUpWTSession('upgrade_error')
@@ -248,11 +250,11 @@ class WebTransportTransport implements Transport {
248
250
 
249
251
  // We're done with this authentication stream
250
252
  writer.close().catch((err: Error) => {
251
- log.error(`Failed to close authentication stream writer: ${err.message}`)
253
+ this.log.error(`Failed to close authentication stream writer: ${err.message}`)
252
254
  })
253
255
 
254
256
  reader.cancel().catch((err: Error) => {
255
- log.error(`Failed to close authentication stream reader: ${err.message}`)
257
+ this.log.error(`Failed to close authentication stream reader: ${err.message}`)
256
258
  })
257
259
 
258
260
  // Verify the certhashes we used when dialing are a subset of the certhashes relayed by the remote peer
@@ -266,6 +268,7 @@ class WebTransportTransport implements Transport {
266
268
  webtransportMuxer (wt: WebTransport): StreamMuxerFactory {
267
269
  let streamIDCounter = 0
268
270
  const config = this.config
271
+ const self = this
269
272
  return {
270
273
  protocol: 'webtransport',
271
274
  createStreamMuxer: (init?: StreamMuxerInit): StreamMuxer => {
@@ -292,19 +295,26 @@ class WebTransportTransport implements Transport {
292
295
  if (activeStreams.length >= config.maxInboundStreams) {
293
296
  // We've reached our limit, close this stream.
294
297
  wtStream.writable.close().catch((err: Error) => {
295
- log.error(`Failed to close inbound stream that crossed our maxInboundStream limit: ${err.message}`)
298
+ self.log.error(`Failed to close inbound stream that crossed our maxInboundStream limit: ${err.message}`)
296
299
  })
297
300
  wtStream.readable.cancel().catch((err: Error) => {
298
- log.error(`Failed to close inbound stream that crossed our maxInboundStream limit: ${err.message}`)
301
+ self.log.error(`Failed to close inbound stream that crossed our maxInboundStream limit: ${err.message}`)
299
302
  })
300
303
  } else {
301
- const stream = await webtransportBiDiStreamToStream(wtStream, String(streamIDCounter++), 'inbound', activeStreams, init?.onStreamEnd)
304
+ const stream = await webtransportBiDiStreamToStream(
305
+ wtStream,
306
+ String(streamIDCounter++),
307
+ 'inbound',
308
+ activeStreams,
309
+ init?.onStreamEnd,
310
+ self.components.logger
311
+ )
302
312
  activeStreams.push(stream)
303
313
  init?.onIncomingStream?.(stream)
304
314
  }
305
315
  }
306
316
  })().catch(() => {
307
- log.error('WebTransport failed to receive incoming stream')
317
+ this.log.error('WebTransport failed to receive incoming stream')
308
318
  })
309
319
 
310
320
  const muxer: StreamMuxer = {
@@ -313,7 +323,14 @@ class WebTransportTransport implements Transport {
313
323
  newStream: async (name?: string): Promise<Stream> => {
314
324
  const wtStream = await wt.createBidirectionalStream()
315
325
 
316
- const stream = await webtransportBiDiStreamToStream(wtStream, String(streamIDCounter++), init?.direction ?? 'outbound', activeStreams, init?.onStreamEnd)
326
+ const stream = await webtransportBiDiStreamToStream(
327
+ wtStream,
328
+ String(streamIDCounter++),
329
+ init?.direction ?? 'outbound',
330
+ activeStreams,
331
+ init?.onStreamEnd,
332
+ self.components.logger
333
+ )
317
334
  activeStreams.push(stream)
318
335
 
319
336
  return stream
@@ -323,14 +340,14 @@ class WebTransportTransport implements Transport {
323
340
  * Close or abort all tracked streams and stop the muxer
324
341
  */
325
342
  close: async (options?: AbortOptions) => {
326
- log('Closing webtransport muxer')
343
+ this.log('Closing webtransport muxer')
327
344
 
328
345
  await Promise.all(
329
346
  activeStreams.map(async s => s.close(options))
330
347
  )
331
348
  },
332
349
  abort: (err: Error) => {
333
- log('Aborting webtransport muxer with err:', err)
350
+ this.log('Aborting webtransport muxer with err:', err)
334
351
 
335
352
  for (const stream of activeStreams) {
336
353
  stream.abort(err)
package/src/stream.ts CHANGED
@@ -1,12 +1,10 @@
1
- import { logger } from '@libp2p/logger'
2
1
  import { Uint8ArrayList } from 'uint8arraylist'
3
- import type { AbortOptions } from '@libp2p/interface'
2
+ import type { AbortOptions, ComponentLogger } from '@libp2p/interface'
4
3
  import type { Direction, Stream } from '@libp2p/interface/connection'
5
4
  import type { Source } from 'it-stream-types'
6
5
 
7
- const log = logger('libp2p:webtransport:stream')
8
-
9
- export async function webtransportBiDiStreamToStream (bidiStream: WebTransportBidirectionalStream, streamId: string, direction: Direction, activeStreams: Stream[], onStreamEnd: undefined | ((s: Stream) => void)): Promise<Stream> {
6
+ export async function webtransportBiDiStreamToStream (bidiStream: WebTransportBidirectionalStream, streamId: string, direction: Direction, activeStreams: Stream[], onStreamEnd: undefined | ((s: Stream) => void), logger: ComponentLogger): Promise<Stream> {
7
+ const log = logger.forComponent(`libp2p:webtransport:stream:${direction}:${streamId}`)
10
8
  const writer = bidiStream.writable.getWriter()
11
9
  const reader = bidiStream.readable.getReader()
12
10
  await writer.ready
@@ -179,7 +177,8 @@ export async function webtransportBiDiStreamToStream (bidiStream: WebTransportBi
179
177
 
180
178
  await stream.closeWrite()
181
179
  }
182
- }
180
+ },
181
+ log
183
182
  }
184
183
 
185
184
  return stream