@libp2p/webtransport 3.0.3-32212959 → 3.0.3-5e85154b

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.
@@ -3,7 +3,6 @@ import type { PeerId } from '@libp2p/interface/peer-id';
3
3
  declare global {
4
4
  var WebTransport: any;
5
5
  }
6
- export declare function isSubset(set: Uint8Array[], maybeSubset: Uint8Array[]): boolean;
7
6
  export interface WebTransportInit {
8
7
  maxInboundStreams?: number;
9
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAuE,MAAM,6BAA6B,CAAA;AAOjI,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAKvD,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,YAAY,EAAE,GAAG,CAAA;CACtB;AAwRD,wBAAgB,QAAQ,CAAE,GAAG,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAgB/E;AAED,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAA;CACf;AA4ND,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":"AACA,OAAO,EAAE,KAAK,SAAS,EAAuE,MAAM,6BAA6B,CAAA;AAQjI,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAKvD,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,YAAY,EAAE,GAAG,CAAA;CACtB;AAID,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAA;CACf;AA4ND,wBAAgB,YAAY,CAAE,IAAI,GAAE,gBAAqB,GAAG,CAAC,UAAU,EAAE,sBAAsB,KAAK,SAAS,CAE5G"}
package/dist/src/index.js CHANGED
@@ -1,275 +1,12 @@
1
1
  import { noise } from '@chainsafe/libp2p-noise';
2
2
  import { symbol } from '@libp2p/interface/transport';
3
3
  import { logger } from '@libp2p/logger';
4
- import { peerIdFromString } from '@libp2p/peer-id';
5
- import { protocols } from '@multiformats/multiaddr';
6
- import { bases, digest } from 'multiformats/basics';
7
- import { Uint8ArrayList } from 'uint8arraylist';
4
+ import {} from '@multiformats/multiaddr';
5
+ import { webtransportBiDiStreamToStream } from './stream.js';
6
+ import { inertDuplex } from './utils/inert-duplex.js';
7
+ import { isSubset } from './utils/is-subset.js';
8
+ import { parseMultiaddr } from './utils/parse-multiaddr.js';
8
9
  const log = logger('libp2p:webtransport');
9
- // @ts-expect-error - Not easy to combine these types.
10
- const multibaseDecoder = Object.values(bases).map(b => b.decoder).reduce((d, b) => d.or(b));
11
- function decodeCerthashStr(s) {
12
- return digest.decode(multibaseDecoder.decode(s));
13
- }
14
- // Duplex that does nothing. Needed to fulfill the interface
15
- function inertDuplex() {
16
- return {
17
- source: {
18
- [Symbol.asyncIterator]() {
19
- return {
20
- async next() {
21
- // This will never resolve
22
- return new Promise(() => { });
23
- }
24
- };
25
- }
26
- },
27
- sink: async (source) => {
28
- // This will never resolve
29
- return new Promise(() => { });
30
- }
31
- };
32
- }
33
- async function webtransportBiDiStreamToStream(bidiStream, streamId, direction, activeStreams, onStreamEnd) {
34
- const writer = bidiStream.writable.getWriter();
35
- const reader = bidiStream.readable.getReader();
36
- await writer.ready;
37
- function cleanupStreamFromActiveStreams() {
38
- const index = activeStreams.findIndex(s => s === stream);
39
- if (index !== -1) {
40
- activeStreams.splice(index, 1);
41
- stream.timeline.close = Date.now();
42
- onStreamEnd?.(stream);
43
- }
44
- }
45
- let writerClosed = false;
46
- let readerClosed = false;
47
- (async function () {
48
- const err = await writer.closed.catch((err) => err);
49
- if (err != null) {
50
- const msg = err.message;
51
- if (!(msg.includes('aborted by the remote server') || msg.includes('STOP_SENDING'))) {
52
- log.error(`WebTransport writer closed unexpectedly: streamId=${streamId} err=${err.message}`);
53
- }
54
- }
55
- writerClosed = true;
56
- if (writerClosed && readerClosed) {
57
- cleanupStreamFromActiveStreams();
58
- }
59
- })().catch(() => {
60
- log.error('WebTransport failed to cleanup closed stream');
61
- });
62
- (async function () {
63
- const err = await reader.closed.catch((err) => err);
64
- if (err != null) {
65
- log.error(`WebTransport reader closed unexpectedly: streamId=${streamId} err=${err.message}`);
66
- }
67
- readerClosed = true;
68
- if (writerClosed && readerClosed) {
69
- cleanupStreamFromActiveStreams();
70
- }
71
- })().catch(() => {
72
- log.error('WebTransport failed to cleanup closed stream');
73
- });
74
- let sinkSunk = false;
75
- const stream = {
76
- id: streamId,
77
- status: 'open',
78
- writeStatus: 'ready',
79
- readStatus: 'ready',
80
- abort(err) {
81
- if (!writerClosed) {
82
- writer.abort();
83
- writerClosed = true;
84
- }
85
- stream.abort(err);
86
- readerClosed = true;
87
- this.status = 'aborted';
88
- this.writeStatus = 'closed';
89
- this.readStatus = 'closed';
90
- this.timeline.reset =
91
- this.timeline.close =
92
- this.timeline.closeRead =
93
- this.timeline.closeWrite = Date.now();
94
- cleanupStreamFromActiveStreams();
95
- },
96
- async close(options) {
97
- this.status = 'closing';
98
- await Promise.all([
99
- stream.closeRead(options),
100
- stream.closeWrite(options)
101
- ]);
102
- cleanupStreamFromActiveStreams();
103
- this.status = 'closed';
104
- this.timeline.close = Date.now();
105
- },
106
- async closeRead(options) {
107
- if (!readerClosed) {
108
- this.readStatus = 'closing';
109
- try {
110
- await reader.cancel();
111
- }
112
- catch (err) {
113
- if (err.toString().includes('RESET_STREAM') === true) {
114
- writerClosed = true;
115
- }
116
- }
117
- this.timeline.closeRead = Date.now();
118
- this.readStatus = 'closed';
119
- readerClosed = true;
120
- }
121
- if (writerClosed) {
122
- cleanupStreamFromActiveStreams();
123
- }
124
- },
125
- async closeWrite(options) {
126
- if (!writerClosed) {
127
- writerClosed = true;
128
- this.writeStatus = 'closing';
129
- try {
130
- await writer.close();
131
- }
132
- catch (err) {
133
- if (err.toString().includes('RESET_STREAM') === true) {
134
- readerClosed = true;
135
- }
136
- }
137
- this.timeline.closeWrite = Date.now();
138
- this.writeStatus = 'closed';
139
- }
140
- if (readerClosed) {
141
- cleanupStreamFromActiveStreams();
142
- }
143
- },
144
- direction,
145
- timeline: { open: Date.now() },
146
- metadata: {},
147
- source: (async function* () {
148
- while (true) {
149
- const val = await reader.read();
150
- if (val.done === true) {
151
- readerClosed = true;
152
- if (writerClosed) {
153
- cleanupStreamFromActiveStreams();
154
- }
155
- return;
156
- }
157
- yield new Uint8ArrayList(val.value);
158
- }
159
- })(),
160
- sink: async function (source) {
161
- if (sinkSunk) {
162
- throw new Error('sink already called on stream');
163
- }
164
- sinkSunk = true;
165
- try {
166
- this.writeStatus = 'writing';
167
- for await (const chunks of source) {
168
- if (chunks instanceof Uint8Array) {
169
- await writer.write(chunks);
170
- }
171
- else {
172
- for (const buf of chunks) {
173
- await writer.write(buf);
174
- }
175
- }
176
- }
177
- this.writeStatus = 'done';
178
- }
179
- finally {
180
- this.timeline.closeWrite = Date.now();
181
- this.writeStatus = 'closed';
182
- await stream.closeWrite();
183
- }
184
- }
185
- };
186
- return stream;
187
- }
188
- function parseMultiaddr(ma) {
189
- const parts = ma.stringTuples();
190
- // This is simpler to have inline than extract into a separate function
191
- // eslint-disable-next-line complexity
192
- const { url, certhashes, remotePeer } = parts.reduce((state, [proto, value]) => {
193
- switch (proto) {
194
- case protocols('ip6').code:
195
- // @ts-expect-error - ts error on switch fallthrough
196
- case protocols('dns6').code:
197
- if (value?.includes(':') === true) {
198
- /**
199
- * This resolves cases where `new globalThis.WebTransport` fails to construct because of an invalid URL being passed.
200
- *
201
- * `new URL('https://::1:4001/blah')` will throw a `TypeError: Failed to construct 'URL': Invalid URL`
202
- * `new URL('https://[::1]:4001/blah')` is valid and will not.
203
- *
204
- * @see https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2
205
- */
206
- value = `[${value}]`;
207
- }
208
- // eslint-disable-next-line no-fallthrough
209
- case protocols('ip4').code:
210
- case protocols('dns4').code:
211
- if (state.seenHost || state.seenPort) {
212
- throw new Error('Invalid multiaddr, saw host and already saw the host or port');
213
- }
214
- return {
215
- ...state,
216
- url: `${state.url}${value ?? ''}`,
217
- seenHost: true
218
- };
219
- case protocols('quic').code:
220
- case protocols('quic-v1').code:
221
- case protocols('webtransport').code:
222
- if (!state.seenHost || !state.seenPort) {
223
- throw new Error("Invalid multiaddr, Didn't see host and port, but saw quic/webtransport");
224
- }
225
- return state;
226
- case protocols('udp').code:
227
- if (state.seenPort) {
228
- throw new Error('Invalid multiaddr, saw port but already saw the port');
229
- }
230
- return {
231
- ...state,
232
- url: `${state.url}:${value ?? ''}`,
233
- seenPort: true
234
- };
235
- case protocols('certhash').code:
236
- if (!state.seenHost || !state.seenPort) {
237
- throw new Error('Invalid multiaddr, saw the certhash before seeing the host and port');
238
- }
239
- return {
240
- ...state,
241
- certhashes: state.certhashes.concat([decodeCerthashStr(value ?? '')])
242
- };
243
- case protocols('p2p').code:
244
- return {
245
- ...state,
246
- remotePeer: peerIdFromString(value ?? '')
247
- };
248
- default:
249
- throw new Error(`unexpected component in multiaddr: ${proto} ${protocols(proto).name} ${value ?? ''} `);
250
- }
251
- },
252
- // All webtransport urls are https
253
- { url: 'https://', seenHost: false, seenPort: false, certhashes: [] });
254
- return { url, certhashes, remotePeer };
255
- }
256
- // Determines if `maybeSubset` is a subset of `set`. This means that all byte arrays in `maybeSubset` are present in `set`.
257
- export function isSubset(set, maybeSubset) {
258
- const intersection = maybeSubset.filter(byteArray => {
259
- return Boolean(set.find((otherByteArray) => {
260
- if (byteArray.length !== otherByteArray.length) {
261
- return false;
262
- }
263
- for (let index = 0; index < byteArray.length; index++) {
264
- if (otherByteArray[index] !== byteArray[index]) {
265
- return false;
266
- }
267
- }
268
- return true;
269
- }));
270
- });
271
- return (intersection.length === maybeSubset.length);
272
- }
273
10
  class WebTransportTransport {
274
11
  components;
275
12
  config;
@@ -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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"}
@@ -0,0 +1,3 @@
1
+ import type { Direction, Stream } from '@libp2p/interface/connection';
2
+ export declare function webtransportBiDiStreamToStream(bidiStream: any, streamId: string, direction: Direction, activeStreams: Stream[], onStreamEnd: undefined | ((s: Stream) => void)): Promise<Stream>;
3
+ //# sourceMappingURL=stream.d.ts.map
@@ -0,0 +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,GAAG,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,CA8KvM"}
@@ -0,0 +1,158 @@
1
+ import { logger } from '@libp2p/logger';
2
+ import { Uint8ArrayList } from 'uint8arraylist';
3
+ const log = logger('libp2p:webtransport:stream');
4
+ export async function webtransportBiDiStreamToStream(bidiStream, streamId, direction, activeStreams, onStreamEnd) {
5
+ const writer = bidiStream.writable.getWriter();
6
+ const reader = bidiStream.readable.getReader();
7
+ await writer.ready;
8
+ function cleanupStreamFromActiveStreams() {
9
+ const index = activeStreams.findIndex(s => s === stream);
10
+ if (index !== -1) {
11
+ activeStreams.splice(index, 1);
12
+ stream.timeline.close = Date.now();
13
+ onStreamEnd?.(stream);
14
+ }
15
+ }
16
+ let writerClosed = false;
17
+ let readerClosed = false;
18
+ (async function () {
19
+ const err = await writer.closed.catch((err) => err);
20
+ if (err != null) {
21
+ const msg = err.message;
22
+ if (!(msg.includes('aborted by the remote server') || msg.includes('STOP_SENDING'))) {
23
+ log.error(`WebTransport writer closed unexpectedly: streamId=${streamId} err=${err.message}`);
24
+ }
25
+ }
26
+ writerClosed = true;
27
+ if (writerClosed && readerClosed) {
28
+ cleanupStreamFromActiveStreams();
29
+ }
30
+ })().catch(() => {
31
+ log.error('WebTransport failed to cleanup closed stream');
32
+ });
33
+ (async function () {
34
+ const err = await reader.closed.catch((err) => err);
35
+ if (err != null) {
36
+ log.error(`WebTransport reader closed unexpectedly: streamId=${streamId} err=${err.message}`);
37
+ }
38
+ readerClosed = true;
39
+ if (writerClosed && readerClosed) {
40
+ cleanupStreamFromActiveStreams();
41
+ }
42
+ })().catch(() => {
43
+ log.error('WebTransport failed to cleanup closed stream');
44
+ });
45
+ let sinkSunk = false;
46
+ const stream = {
47
+ id: streamId,
48
+ status: 'open',
49
+ writeStatus: 'ready',
50
+ readStatus: 'ready',
51
+ abort(err) {
52
+ if (!writerClosed) {
53
+ writer.abort(err);
54
+ writerClosed = true;
55
+ }
56
+ readerClosed = true;
57
+ this.status = 'aborted';
58
+ this.writeStatus = 'closed';
59
+ this.readStatus = 'closed';
60
+ this.timeline.reset =
61
+ this.timeline.close =
62
+ this.timeline.closeRead =
63
+ this.timeline.closeWrite = Date.now();
64
+ cleanupStreamFromActiveStreams();
65
+ },
66
+ async close(options) {
67
+ this.status = 'closing';
68
+ await Promise.all([
69
+ stream.closeRead(options),
70
+ stream.closeWrite(options)
71
+ ]);
72
+ cleanupStreamFromActiveStreams();
73
+ this.status = 'closed';
74
+ this.timeline.close = Date.now();
75
+ },
76
+ async closeRead(options) {
77
+ if (!readerClosed) {
78
+ this.readStatus = 'closing';
79
+ try {
80
+ await reader.cancel();
81
+ }
82
+ catch (err) {
83
+ if (err.toString().includes('RESET_STREAM') === true) {
84
+ writerClosed = true;
85
+ }
86
+ }
87
+ this.timeline.closeRead = Date.now();
88
+ this.readStatus = 'closed';
89
+ readerClosed = true;
90
+ }
91
+ if (writerClosed) {
92
+ cleanupStreamFromActiveStreams();
93
+ }
94
+ },
95
+ async closeWrite(options) {
96
+ if (!writerClosed) {
97
+ writerClosed = true;
98
+ this.writeStatus = 'closing';
99
+ try {
100
+ await writer.close();
101
+ }
102
+ catch (err) {
103
+ if (err.toString().includes('RESET_STREAM') === true) {
104
+ readerClosed = true;
105
+ }
106
+ }
107
+ this.timeline.closeWrite = Date.now();
108
+ this.writeStatus = 'closed';
109
+ }
110
+ if (readerClosed) {
111
+ cleanupStreamFromActiveStreams();
112
+ }
113
+ },
114
+ direction,
115
+ timeline: { open: Date.now() },
116
+ metadata: {},
117
+ source: (async function* () {
118
+ while (true) {
119
+ const val = await reader.read();
120
+ if (val.done === true) {
121
+ readerClosed = true;
122
+ if (writerClosed) {
123
+ cleanupStreamFromActiveStreams();
124
+ }
125
+ return;
126
+ }
127
+ yield new Uint8ArrayList(val.value);
128
+ }
129
+ })(),
130
+ sink: async function (source) {
131
+ if (sinkSunk) {
132
+ throw new Error('sink already called on stream');
133
+ }
134
+ sinkSunk = true;
135
+ try {
136
+ this.writeStatus = 'writing';
137
+ for await (const chunks of source) {
138
+ if (chunks instanceof Uint8Array) {
139
+ await writer.write(chunks);
140
+ }
141
+ else {
142
+ for (const buf of chunks) {
143
+ await writer.write(buf);
144
+ }
145
+ }
146
+ }
147
+ this.writeStatus = 'done';
148
+ }
149
+ finally {
150
+ this.timeline.closeWrite = Date.now();
151
+ this.writeStatus = 'closed';
152
+ await stream.closeWrite();
153
+ }
154
+ }
155
+ };
156
+ return stream;
157
+ }
158
+ //# sourceMappingURL=stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Duplex } from 'it-stream-types';
2
+ export declare function inertDuplex(): Duplex<any, any, any>;
3
+ //# sourceMappingURL=inert-duplex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inert-duplex.d.ts","sourceRoot":"","sources":["../../../src/utils/inert-duplex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAU,MAAM,iBAAiB,CAAA;AAGrD,wBAAgB,WAAW,IAAK,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAiBpD"}
@@ -0,0 +1,20 @@
1
+ // Duplex that does nothing. Needed to fulfill the interface
2
+ export function inertDuplex() {
3
+ return {
4
+ source: {
5
+ [Symbol.asyncIterator]() {
6
+ return {
7
+ async next() {
8
+ // This will never resolve
9
+ return new Promise(() => { });
10
+ }
11
+ };
12
+ }
13
+ },
14
+ sink: async (source) => {
15
+ // This will never resolve
16
+ return new Promise(() => { });
17
+ }
18
+ };
19
+ }
20
+ //# sourceMappingURL=inert-duplex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inert-duplex.js","sourceRoot":"","sources":["../../../src/utils/inert-duplex.ts"],"names":[],"mappings":"AAEA,4DAA4D;AAC5D,MAAM,UAAU,WAAW;IACzB,OAAO;QACL,MAAM,EAAE;YACN,CAAC,MAAM,CAAC,aAAa,CAAC;gBACpB,OAAO;oBACL,KAAK,CAAC,IAAI;wBACR,0BAA0B;wBAC1B,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;oBAC/B,CAAC;iBACF,CAAA;YACH,CAAC;SACF;QACD,IAAI,EAAE,KAAK,EAAE,MAAmB,EAAE,EAAE;YAClC,0BAA0B;YAC1B,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QAC/B,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Determines if `maybeSubset` is a subset of `set`. This means that all byte
3
+ * arrays in `maybeSubset` are present in `set`.
4
+ */
5
+ export declare function isSubset(set: Uint8Array[], maybeSubset: Uint8Array[]): boolean;
6
+ //# sourceMappingURL=is-subset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-subset.d.ts","sourceRoot":"","sources":["../../../src/utils/is-subset.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,QAAQ,CAAE,GAAG,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAK/E"}
@@ -0,0 +1,12 @@
1
+ import { equals as uint8ArrayEquals } from 'uint8arrays/equals';
2
+ /**
3
+ * Determines if `maybeSubset` is a subset of `set`. This means that all byte
4
+ * arrays in `maybeSubset` are present in `set`.
5
+ */
6
+ export function isSubset(set, maybeSubset) {
7
+ const intersection = maybeSubset.filter(byteArray => {
8
+ return Boolean(set.find((otherByteArray) => uint8ArrayEquals(byteArray, otherByteArray)));
9
+ });
10
+ return (intersection.length === maybeSubset.length);
11
+ }
12
+ //# sourceMappingURL=is-subset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-subset.js","sourceRoot":"","sources":["../../../src/utils/is-subset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE/D;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAE,GAAiB,EAAE,WAAyB;IACpE,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;QAClD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,cAA0B,EAAE,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAA;IACvG,CAAC,CAAC,CAAA;IACF,OAAO,CAAC,YAAY,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,CAAA;AACrD,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type Multiaddr } from '@multiformats/multiaddr';
2
+ import type { PeerId } from '@libp2p/interface/peer-id';
3
+ import type { MultihashDigest } from 'multiformats/hashes/interface';
4
+ export declare function parseMultiaddr(ma: Multiaddr): {
5
+ url: string;
6
+ certhashes: MultihashDigest[];
7
+ remotePeer?: PeerId;
8
+ };
9
+ //# sourceMappingURL=parse-multiaddr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-multiaddr.d.ts","sourceRoot":"","sources":["../../../src/utils/parse-multiaddr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,yBAAyB,CAAA;AAEnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AASpE,wBAAgB,cAAc,CAAE,EAAE,EAAE,SAAS,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,eAAe,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAqElH"}