@libp2p/tcp 9.1.5-e211b46cc → 9.1.6-df330695a
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.
- package/dist/index.min.js +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -161
- package/dist/src/index.js.map +1 -1
- package/dist/src/listener.d.ts.map +1 -1
- package/dist/src/listener.js +7 -7
- package/dist/src/listener.js.map +1 -1
- package/dist/src/socket-to-conn.js +4 -4
- package/dist/src/socket-to-conn.js.map +1 -1
- package/dist/src/tcp.browser.d.ts +47 -0
- package/dist/src/tcp.browser.d.ts.map +1 -0
- package/dist/src/tcp.browser.js +56 -0
- package/dist/src/tcp.browser.js.map +1 -0
- package/dist/src/tcp.d.ts +61 -0
- package/dist/src/tcp.d.ts.map +1 -0
- package/dist/src/tcp.js +190 -0
- package/dist/src/tcp.js.map +1 -0
- package/package.json +14 -6
- package/src/index.ts +5 -201
- package/src/listener.ts +7 -7
- package/src/socket-to-conn.ts +4 -4
- package/src/tcp.browser.ts +68 -0
- package/src/tcp.ts +230 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AbortError, InvalidParametersError, TimeoutError } from '@libp2p/interface';
|
|
2
2
|
import { ipPortToMultiaddr as toMultiaddr } from '@libp2p/utils/ip-port-to-multiaddr';
|
|
3
3
|
import { duplex } from 'stream-to-it';
|
|
4
4
|
import { CLOSE_TIMEOUT, SOCKET_TIMEOUT } from './constants.js';
|
|
@@ -29,7 +29,7 @@ export const toMultiaddrConnection = (socket, options) => {
|
|
|
29
29
|
if (socket.remoteAddress == null || socket.remotePort == null) {
|
|
30
30
|
// this can be undefined if the socket is destroyed (for example, if the client disconnected)
|
|
31
31
|
// https://nodejs.org/dist/latest-v16.x/docs/api/net.html#socketremoteaddress
|
|
32
|
-
throw new
|
|
32
|
+
throw new InvalidParametersError('Could not determine remote address or port');
|
|
33
33
|
}
|
|
34
34
|
remoteAddr = toMultiaddr(socket.remoteAddress, socket.remotePort);
|
|
35
35
|
}
|
|
@@ -44,7 +44,7 @@ export const toMultiaddrConnection = (socket, options) => {
|
|
|
44
44
|
// only destroy with an error if the remote has not sent the FIN message
|
|
45
45
|
let err;
|
|
46
46
|
if (socket.readable) {
|
|
47
|
-
err = new
|
|
47
|
+
err = new TimeoutError('Socket read timeout');
|
|
48
48
|
}
|
|
49
49
|
// if the socket times out due to inactivity we must manually close the connection
|
|
50
50
|
// https://nodejs.org/dist/latest-v16.x/docs/api/net.html#event-timeout
|
|
@@ -113,7 +113,7 @@ export const toMultiaddrConnection = (socket, options) => {
|
|
|
113
113
|
};
|
|
114
114
|
}
|
|
115
115
|
const abortSignalListener = () => {
|
|
116
|
-
socket.destroy(new
|
|
116
|
+
socket.destroy(new AbortError('Destroying socket after timeout'));
|
|
117
117
|
};
|
|
118
118
|
options.signal?.addEventListener('abort', abortSignalListener);
|
|
119
119
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-to-conn.js","sourceRoot":"","sources":["../../src/socket-to-conn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"socket-to-conn.js","sourceRoot":"","sources":["../../src/socket-to-conn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACpF,OAAO,EAAE,iBAAiB,IAAI,WAAW,EAAE,MAAM,oCAAoC,CAAA;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAgBjD;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAc,EAAE,OAA4B,EAAuB,EAAE;IACzG,IAAI,YAAY,GAAyB,IAAI,CAAA;IAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAA;IAC5D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAC/B,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAA;IAC/C,MAAM,iBAAiB,GAAG,OAAO,CAAC,uBAAuB,IAAI,cAAc,CAAA;IAC3E,MAAM,YAAY,GAAG,OAAO,CAAC,kBAAkB,IAAI,aAAa,CAAA;IAEhE,2CAA2C;IAC3C,IAAI,OAAO,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;QAC7C,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,aAAa,CAAA;IAC5C,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;QAC1C,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAAA;IACxC,CAAC;IAED,IAAI,UAAqB,CAAA;IAEzB,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;QAC/B,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;IACjC,CAAC;SAAM,CAAC;QACN,IAAI,MAAM,CAAC,aAAa,IAAI,IAAI,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;YAC9D,6FAA6F;YAC7F,6EAA6E;YAC7E,MAAM,IAAI,sBAAsB,CAAC,4CAA4C,CAAC,CAAA;QAChF,CAAC;QAED,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;IACnE,CAAC;IAED,MAAM,KAAK,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAA;IAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,CAAA;IACxE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAEvC,iCAAiC;IACjC,0FAA0F;IAC1F,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACxC,GAAG,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAA;QACvC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,YAAY,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QAExD,wEAAwE;QACxE,IAAI,GAAsB,CAAA;QAC1B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,GAAG,GAAG,IAAI,YAAY,CAAC,qBAAqB,CAAC,CAAA;QAC/C,CAAC;QAED,kFAAkF;QAClF,uEAAuE;QACvE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACrB,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;QACxB,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAA;QAChC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,YAAY,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QAEtD,wDAAwD;QACxD,kEAAkE;QAClE,WAAW;QACX,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YAClC,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACpC,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;QACtB,qEAAqE;QACrE,mEAAmE;QACnE,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAA;QAC9B,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,YAAY,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,MAAM,MAAM,GAAwB;QAClC,KAAK,CAAC,IAAI,CAAE,MAAM;YAChB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,CAAC,KAAK,SAAU,CAAC;oBAC1B,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;wBAC/B,IAAI,GAAG,YAAY,UAAU,EAAE,CAAC;4BAC9B,MAAM,GAAG,CAAA;wBACX,CAAC;6BAAM,CAAC;4BACN,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAA;wBACtB,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,EAAE,CAAC,CAAA;YACP,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,kCAAkC;gBAClC,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC3B,uEAAuE;oBACvE,qDAAqD;oBACrD,uEAAuE;oBACvE,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;gBAC9C,CAAC;YACH,CAAC;YAED,iDAAiD;YACjD,MAAM,CAAC,GAAG,EAAE,CAAA;QACd,CAAC;QAED,MAAM;QAEN,kFAAkF;QAClF,UAAU;QAEV,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;QAE9B,KAAK,CAAC,KAAK,CAAE,UAAwB,EAAE;YACrC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,GAAG,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CAAA;gBAC3C,OAAM;YACR,CAAC;YAED,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;gBACzB,GAAG,CAAC,oCAAoC,EAAE,QAAQ,CAAC,CAAA;gBACnD,OAAO,YAAY,CAAA;YACrB,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;gBAEhD,OAAO,GAAG;oBACR,GAAG,OAAO;oBACV,MAAM;iBACP,CAAA;YACH,CAAC;YAED,MAAM,mBAAmB,GAAG,GAAS,EAAE;gBACrC,MAAM,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,iCAAiC,CAAC,CAAC,CAAA;YACnE,CAAC,CAAA;YAED,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAA;YAE9D,IAAI,CAAC;gBACH,GAAG,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAA;gBAClC,YAAY,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBACnD,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;wBACxB,2BAA2B;wBAC3B,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAA;wBAEjC,OAAO,EAAE,CAAA;oBACX,CAAC,CAAC,CAAA;oBACF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;wBAClC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;wBAErC,uBAAuB;wBACvB,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;4BAClC,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;wBACpC,CAAC;wBACD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;4BACtB,MAAM,CAAC,GAAG,CAAC,CAAA;wBACb,CAAC;wBACD,sFAAsF;oBACxF,CAAC,CAAC,CAAA;oBAEF,6BAA6B;oBAC7B,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;oBAE/B,mCAAmC;oBACnC,MAAM,CAAC,GAAG,EAAE,CAAA;oBAEZ,IAAI,MAAM,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;wBAC9B,8CAA8C;wBAC9C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;4BACxB,GAAG,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAA;4BAElC,gFAAgF;4BAChF,MAAM,CAAC,OAAO,EAAE,CAAA;wBAClB,CAAC,CAAC,CAAA;oBACJ,CAAC;yBAAM,CAAC;wBACN,gEAAgE;wBAChE,MAAM,CAAC,OAAO,EAAE,CAAA;oBAClB,CAAC;gBACH,CAAC,CAAC,CAAA;gBAEF,MAAM,YAAY,CAAA;YACpB,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACjB,CAAC;oBAAS,CAAC;gBACT,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAA;YACnE,CAAC;QACH,CAAC;QAED,KAAK,EAAE,CAAC,GAAU,EAAE,EAAE;YACpB,GAAG,CAAC,8BAA8B,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YAElD,yEAAyE;YACzE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACtB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACrB,CAAC;YAED,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClC,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACpC,CAAC;QACH,CAAC;QAED,GAAG;KACJ,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
*
|
|
4
|
+
* A [libp2p transport](https://docs.libp2p.io/concepts/transports/overview/) based on the TCP networking stack.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
*
|
|
8
|
+
* ```TypeScript
|
|
9
|
+
* import { createLibp2p } from 'libp2p'
|
|
10
|
+
* import { tcp } from '@libp2p/tcp'
|
|
11
|
+
* import { multiaddr } from '@multiformats/multiaddr'
|
|
12
|
+
*
|
|
13
|
+
* const node = await createLibp2p({
|
|
14
|
+
* transports: [
|
|
15
|
+
* tcp()
|
|
16
|
+
* ]
|
|
17
|
+
* })
|
|
18
|
+
*
|
|
19
|
+
* const ma = multiaddr('/ip4/123.123.123.123/tcp/1234')
|
|
20
|
+
*
|
|
21
|
+
* // dial a TCP connection, timing out after 10 seconds
|
|
22
|
+
* const connection = await node.dial(ma, {
|
|
23
|
+
* signal: AbortSignal.timeout(10_000)
|
|
24
|
+
* })
|
|
25
|
+
*
|
|
26
|
+
* // use connection...
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
import { serviceCapabilities, transportSymbol } from '@libp2p/interface';
|
|
30
|
+
import type { TCPDialEvents } from './index.js';
|
|
31
|
+
import type { Connection, Transport, Listener } from '@libp2p/interface';
|
|
32
|
+
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
33
|
+
export declare class TCP implements Transport<TCPDialEvents> {
|
|
34
|
+
private readonly opts;
|
|
35
|
+
private readonly metrics?;
|
|
36
|
+
private readonly components;
|
|
37
|
+
private readonly log;
|
|
38
|
+
constructor();
|
|
39
|
+
readonly [transportSymbol] = true;
|
|
40
|
+
readonly [Symbol.toStringTag] = "@libp2p/tcp";
|
|
41
|
+
readonly [serviceCapabilities]: string[];
|
|
42
|
+
dial(): Promise<Connection>;
|
|
43
|
+
createListener(): Listener;
|
|
44
|
+
listenFilter(): Multiaddr[];
|
|
45
|
+
dialFilter(): Multiaddr[];
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=tcp.browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tcp.browser.d.ts","sourceRoot":"","sources":["../../src/tcp.browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAiB,aAAa,EAA0B,MAAM,YAAY,CAAA;AACtF,OAAO,KAAK,EAAU,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,qBAAa,GAAI,YAAW,SAAS,CAAC,aAAa,CAAC;IAClD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAY;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAC1C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;;IAM5B,QAAQ,CAAC,CAAC,eAAe,CAAC,QAAO;IAEjC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAgB;IAE7C,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAEvC;IAEK,IAAI,IAAK,OAAO,CAAC,UAAU,CAAC;IAIlC,cAAc,IAAK,QAAQ;IAI3B,YAAY,IAAK,SAAS,EAAE;IAI5B,UAAU,IAAK,SAAS,EAAE;CAG3B"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
*
|
|
4
|
+
* A [libp2p transport](https://docs.libp2p.io/concepts/transports/overview/) based on the TCP networking stack.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
*
|
|
8
|
+
* ```TypeScript
|
|
9
|
+
* import { createLibp2p } from 'libp2p'
|
|
10
|
+
* import { tcp } from '@libp2p/tcp'
|
|
11
|
+
* import { multiaddr } from '@multiformats/multiaddr'
|
|
12
|
+
*
|
|
13
|
+
* const node = await createLibp2p({
|
|
14
|
+
* transports: [
|
|
15
|
+
* tcp()
|
|
16
|
+
* ]
|
|
17
|
+
* })
|
|
18
|
+
*
|
|
19
|
+
* const ma = multiaddr('/ip4/123.123.123.123/tcp/1234')
|
|
20
|
+
*
|
|
21
|
+
* // dial a TCP connection, timing out after 10 seconds
|
|
22
|
+
* const connection = await node.dial(ma, {
|
|
23
|
+
* signal: AbortSignal.timeout(10_000)
|
|
24
|
+
* })
|
|
25
|
+
*
|
|
26
|
+
* // use connection...
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
import { serviceCapabilities, transportSymbol } from '@libp2p/interface';
|
|
30
|
+
export class TCP {
|
|
31
|
+
opts;
|
|
32
|
+
metrics;
|
|
33
|
+
components;
|
|
34
|
+
log;
|
|
35
|
+
constructor() {
|
|
36
|
+
throw new Error('TCP connections are not possible in browsers');
|
|
37
|
+
}
|
|
38
|
+
[transportSymbol] = true;
|
|
39
|
+
[Symbol.toStringTag] = '@libp2p/tcp';
|
|
40
|
+
[serviceCapabilities] = [
|
|
41
|
+
'@libp2p/transport'
|
|
42
|
+
];
|
|
43
|
+
async dial() {
|
|
44
|
+
throw new Error('TCP connections are not possible in browsers');
|
|
45
|
+
}
|
|
46
|
+
createListener() {
|
|
47
|
+
throw new Error('TCP connections are not possible in browsers');
|
|
48
|
+
}
|
|
49
|
+
listenFilter() {
|
|
50
|
+
return [];
|
|
51
|
+
}
|
|
52
|
+
dialFilter() {
|
|
53
|
+
return [];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=tcp.browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tcp.browser.js","sourceRoot":"","sources":["../../src/tcp.browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAKxE,MAAM,OAAO,GAAG;IACG,IAAI,CAAY;IAChB,OAAO,CAAa;IACpB,UAAU,CAAe;IACzB,GAAG,CAAQ;IAE5B;QACE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;IAEQ,CAAC,eAAe,CAAC,GAAG,IAAI,CAAA;IAExB,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,aAAa,CAAA;IAEpC,CAAC,mBAAmB,CAAC,GAAa;QACzC,mBAAmB;KACpB,CAAA;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;IAED,cAAc;QACZ,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;IAED,YAAY;QACV,OAAO,EAAE,CAAA;IACX,CAAC;IAED,UAAU;QACR,OAAO,EAAE,CAAA;IACX,CAAC;CACF"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
*
|
|
4
|
+
* A [libp2p transport](https://docs.libp2p.io/concepts/transports/overview/) based on the TCP networking stack.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
*
|
|
8
|
+
* ```TypeScript
|
|
9
|
+
* import { createLibp2p } from 'libp2p'
|
|
10
|
+
* import { tcp } from '@libp2p/tcp'
|
|
11
|
+
* import { multiaddr } from '@multiformats/multiaddr'
|
|
12
|
+
*
|
|
13
|
+
* const node = await createLibp2p({
|
|
14
|
+
* transports: [
|
|
15
|
+
* tcp()
|
|
16
|
+
* ]
|
|
17
|
+
* })
|
|
18
|
+
*
|
|
19
|
+
* const ma = multiaddr('/ip4/123.123.123.123/tcp/1234')
|
|
20
|
+
*
|
|
21
|
+
* // dial a TCP connection, timing out after 10 seconds
|
|
22
|
+
* const connection = await node.dial(ma, {
|
|
23
|
+
* signal: AbortSignal.timeout(10_000)
|
|
24
|
+
* })
|
|
25
|
+
*
|
|
26
|
+
* // use connection...
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
/// <reference types="node" />
|
|
30
|
+
import { serviceCapabilities, transportSymbol } from '@libp2p/interface';
|
|
31
|
+
import type { TCPComponents, TCPCreateListenerOptions, TCPDialEvents, TCPDialOptions, TCPOptions } from './index.js';
|
|
32
|
+
import type { Connection, Transport, Listener } from '@libp2p/interface';
|
|
33
|
+
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
34
|
+
import type { Socket } from 'net';
|
|
35
|
+
export declare class TCP implements Transport<TCPDialEvents> {
|
|
36
|
+
private readonly opts;
|
|
37
|
+
private readonly metrics?;
|
|
38
|
+
private readonly components;
|
|
39
|
+
private readonly log;
|
|
40
|
+
constructor(components: TCPComponents, options?: TCPOptions);
|
|
41
|
+
readonly [transportSymbol] = true;
|
|
42
|
+
readonly [Symbol.toStringTag] = "@libp2p/tcp";
|
|
43
|
+
readonly [serviceCapabilities]: string[];
|
|
44
|
+
dial(ma: Multiaddr, options: TCPDialOptions): Promise<Connection>;
|
|
45
|
+
_connect(ma: Multiaddr, options: TCPDialOptions): Promise<Socket>;
|
|
46
|
+
/**
|
|
47
|
+
* Creates a TCP listener. The provided `handler` function will be called
|
|
48
|
+
* anytime a new incoming Connection has been successfully upgraded via
|
|
49
|
+
* `upgrader.upgradeInbound`.
|
|
50
|
+
*/
|
|
51
|
+
createListener(options: TCPCreateListenerOptions): Listener;
|
|
52
|
+
/**
|
|
53
|
+
* Takes a list of `Multiaddr`s and returns only valid TCP addresses
|
|
54
|
+
*/
|
|
55
|
+
listenFilter(multiaddrs: Multiaddr[]): Multiaddr[];
|
|
56
|
+
/**
|
|
57
|
+
* Filter check for all Multiaddrs that this transport can dial
|
|
58
|
+
*/
|
|
59
|
+
dialFilter(multiaddrs: Multiaddr[]): Multiaddr[];
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=tcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tcp.d.ts","sourceRoot":"","sources":["../../src/tcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;;AAGH,OAAO,EAAyB,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAO/F,OAAO,KAAK,EAAE,aAAa,EAAE,wBAAwB,EAAE,aAAa,EAAE,cAAc,EAAc,UAAU,EAAE,MAAM,YAAY,CAAA;AAChI,OAAO,KAAK,EAAU,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,MAAM,EAA8C,MAAM,KAAK,CAAA;AAE7E,qBAAa,GAAI,YAAW,SAAS,CAAC,aAAa,CAAC;IAClD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAY;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAC1C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,UAAU,EAAE,aAAa,EAAE,OAAO,GAAE,UAAe;IAehE,QAAQ,CAAC,CAAC,eAAe,CAAC,QAAO;IAEjC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAgB;IAE7C,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAEvC;IAEK,IAAI,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IA4ClE,QAAQ,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAsExE;;;;OAIG;IACH,cAAc,CAAE,OAAO,EAAE,wBAAwB,GAAG,QAAQ;IAc5D;;OAEG;IACH,YAAY,CAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE;IAgBnD;;OAEG;IACH,UAAU,CAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE;CAGlD"}
|
package/dist/src/tcp.js
ADDED
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
*
|
|
4
|
+
* A [libp2p transport](https://docs.libp2p.io/concepts/transports/overview/) based on the TCP networking stack.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
*
|
|
8
|
+
* ```TypeScript
|
|
9
|
+
* import { createLibp2p } from 'libp2p'
|
|
10
|
+
* import { tcp } from '@libp2p/tcp'
|
|
11
|
+
* import { multiaddr } from '@multiformats/multiaddr'
|
|
12
|
+
*
|
|
13
|
+
* const node = await createLibp2p({
|
|
14
|
+
* transports: [
|
|
15
|
+
* tcp()
|
|
16
|
+
* ]
|
|
17
|
+
* })
|
|
18
|
+
*
|
|
19
|
+
* const ma = multiaddr('/ip4/123.123.123.123/tcp/1234')
|
|
20
|
+
*
|
|
21
|
+
* // dial a TCP connection, timing out after 10 seconds
|
|
22
|
+
* const connection = await node.dial(ma, {
|
|
23
|
+
* signal: AbortSignal.timeout(10_000)
|
|
24
|
+
* })
|
|
25
|
+
*
|
|
26
|
+
* // use connection...
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
import net from 'net';
|
|
30
|
+
import { AbortError, CodeError, serviceCapabilities, transportSymbol } from '@libp2p/interface';
|
|
31
|
+
import * as mafmt from '@multiformats/mafmt';
|
|
32
|
+
import { CustomProgressEvent } from 'progress-events';
|
|
33
|
+
import { CODE_CIRCUIT, CODE_P2P, CODE_UNIX } from './constants.js';
|
|
34
|
+
import { TCPListener } from './listener.js';
|
|
35
|
+
import { toMultiaddrConnection } from './socket-to-conn.js';
|
|
36
|
+
import { multiaddrToNetConfig } from './utils.js';
|
|
37
|
+
export class TCP {
|
|
38
|
+
opts;
|
|
39
|
+
metrics;
|
|
40
|
+
components;
|
|
41
|
+
log;
|
|
42
|
+
constructor(components, options = {}) {
|
|
43
|
+
this.log = components.logger.forComponent('libp2p:tcp');
|
|
44
|
+
this.opts = options;
|
|
45
|
+
this.components = components;
|
|
46
|
+
if (components.metrics != null) {
|
|
47
|
+
this.metrics = {
|
|
48
|
+
dialerEvents: components.metrics.registerCounterGroup('libp2p_tcp_dialer_events_total', {
|
|
49
|
+
label: 'event',
|
|
50
|
+
help: 'Total count of TCP dialer events by type'
|
|
51
|
+
})
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
[transportSymbol] = true;
|
|
56
|
+
[Symbol.toStringTag] = '@libp2p/tcp';
|
|
57
|
+
[serviceCapabilities] = [
|
|
58
|
+
'@libp2p/transport'
|
|
59
|
+
];
|
|
60
|
+
async dial(ma, options) {
|
|
61
|
+
options.keepAlive = options.keepAlive ?? true;
|
|
62
|
+
options.noDelay = options.noDelay ?? true;
|
|
63
|
+
// options.signal destroys the socket before 'connect' event
|
|
64
|
+
const socket = await this._connect(ma, options);
|
|
65
|
+
// Avoid uncaught errors caused by unstable connections
|
|
66
|
+
socket.on('error', err => {
|
|
67
|
+
this.log('socket error', err);
|
|
68
|
+
});
|
|
69
|
+
const maConn = toMultiaddrConnection(socket, {
|
|
70
|
+
remoteAddr: ma,
|
|
71
|
+
socketInactivityTimeout: this.opts.outboundSocketInactivityTimeout,
|
|
72
|
+
socketCloseTimeout: this.opts.socketCloseTimeout,
|
|
73
|
+
metrics: this.metrics?.dialerEvents,
|
|
74
|
+
logger: this.components.logger
|
|
75
|
+
});
|
|
76
|
+
const onAbort = () => {
|
|
77
|
+
maConn.close().catch(err => {
|
|
78
|
+
this.log.error('Error closing maConn after abort', err);
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
options.signal?.addEventListener('abort', onAbort, { once: true });
|
|
82
|
+
this.log('new outbound connection %s', maConn.remoteAddr);
|
|
83
|
+
const conn = await options.upgrader.upgradeOutbound(maConn);
|
|
84
|
+
this.log('outbound connection %s upgraded', maConn.remoteAddr);
|
|
85
|
+
options.signal?.removeEventListener('abort', onAbort);
|
|
86
|
+
if (options.signal?.aborted === true) {
|
|
87
|
+
conn.close().catch(err => {
|
|
88
|
+
this.log.error('Error closing conn after abort', err);
|
|
89
|
+
});
|
|
90
|
+
throw new AbortError();
|
|
91
|
+
}
|
|
92
|
+
return conn;
|
|
93
|
+
}
|
|
94
|
+
async _connect(ma, options) {
|
|
95
|
+
options.signal?.throwIfAborted();
|
|
96
|
+
options.onProgress?.(new CustomProgressEvent('tcp:open-connection'));
|
|
97
|
+
return new Promise((resolve, reject) => {
|
|
98
|
+
const start = Date.now();
|
|
99
|
+
const cOpts = multiaddrToNetConfig(ma, {
|
|
100
|
+
...(this.opts.dialOpts ?? {}),
|
|
101
|
+
...options
|
|
102
|
+
});
|
|
103
|
+
this.log('dialing %a', ma);
|
|
104
|
+
const rawSocket = net.connect(cOpts);
|
|
105
|
+
const onError = (err) => {
|
|
106
|
+
const cOptsStr = cOpts.path ?? `${cOpts.host ?? ''}:${cOpts.port}`;
|
|
107
|
+
err.message = `connection error ${cOptsStr}: ${err.message}`;
|
|
108
|
+
this.metrics?.dialerEvents.increment({ error: true });
|
|
109
|
+
done(err);
|
|
110
|
+
};
|
|
111
|
+
const onTimeout = () => {
|
|
112
|
+
this.log('connection timeout %a', ma);
|
|
113
|
+
this.metrics?.dialerEvents.increment({ timeout: true });
|
|
114
|
+
const err = new CodeError(`connection timeout after ${Date.now() - start}ms`, 'ERR_CONNECT_TIMEOUT');
|
|
115
|
+
// Note: this will result in onError() being called
|
|
116
|
+
rawSocket.emit('error', err);
|
|
117
|
+
};
|
|
118
|
+
const onConnect = () => {
|
|
119
|
+
this.log('connection opened %a', ma);
|
|
120
|
+
this.metrics?.dialerEvents.increment({ connect: true });
|
|
121
|
+
done();
|
|
122
|
+
};
|
|
123
|
+
const onAbort = () => {
|
|
124
|
+
this.log('connection aborted %a', ma);
|
|
125
|
+
this.metrics?.dialerEvents.increment({ abort: true });
|
|
126
|
+
rawSocket.destroy();
|
|
127
|
+
done(new AbortError());
|
|
128
|
+
};
|
|
129
|
+
const done = (err) => {
|
|
130
|
+
rawSocket.removeListener('error', onError);
|
|
131
|
+
rawSocket.removeListener('timeout', onTimeout);
|
|
132
|
+
rawSocket.removeListener('connect', onConnect);
|
|
133
|
+
if (options.signal != null) {
|
|
134
|
+
options.signal.removeEventListener('abort', onAbort);
|
|
135
|
+
}
|
|
136
|
+
if (err != null) {
|
|
137
|
+
reject(err);
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
resolve(rawSocket);
|
|
141
|
+
};
|
|
142
|
+
rawSocket.on('error', onError);
|
|
143
|
+
rawSocket.on('timeout', onTimeout);
|
|
144
|
+
rawSocket.on('connect', onConnect);
|
|
145
|
+
if (options.signal != null) {
|
|
146
|
+
options.signal.addEventListener('abort', onAbort);
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Creates a TCP listener. The provided `handler` function will be called
|
|
152
|
+
* anytime a new incoming Connection has been successfully upgraded via
|
|
153
|
+
* `upgrader.upgradeInbound`.
|
|
154
|
+
*/
|
|
155
|
+
createListener(options) {
|
|
156
|
+
return new TCPListener({
|
|
157
|
+
...(this.opts.listenOpts ?? {}),
|
|
158
|
+
...options,
|
|
159
|
+
maxConnections: this.opts.maxConnections,
|
|
160
|
+
backlog: this.opts.backlog,
|
|
161
|
+
closeServerOnMaxConnections: this.opts.closeServerOnMaxConnections,
|
|
162
|
+
socketInactivityTimeout: this.opts.inboundSocketInactivityTimeout,
|
|
163
|
+
socketCloseTimeout: this.opts.socketCloseTimeout,
|
|
164
|
+
metrics: this.components.metrics,
|
|
165
|
+
logger: this.components.logger
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Takes a list of `Multiaddr`s and returns only valid TCP addresses
|
|
170
|
+
*/
|
|
171
|
+
listenFilter(multiaddrs) {
|
|
172
|
+
multiaddrs = Array.isArray(multiaddrs) ? multiaddrs : [multiaddrs];
|
|
173
|
+
return multiaddrs.filter(ma => {
|
|
174
|
+
if (ma.protoCodes().includes(CODE_CIRCUIT)) {
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
177
|
+
if (ma.protoCodes().includes(CODE_UNIX)) {
|
|
178
|
+
return true;
|
|
179
|
+
}
|
|
180
|
+
return mafmt.TCP.matches(ma.decapsulateCode(CODE_P2P));
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Filter check for all Multiaddrs that this transport can dial
|
|
185
|
+
*/
|
|
186
|
+
dialFilter(multiaddrs) {
|
|
187
|
+
return this.listenFilter(multiaddrs);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=tcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tcp.js","sourceRoot":"","sources":["../../src/tcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC/F,OAAO,KAAK,KAAK,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAMjD,MAAM,OAAO,GAAG;IACG,IAAI,CAAY;IAChB,OAAO,CAAa;IACpB,UAAU,CAAe;IACzB,GAAG,CAAQ;IAE5B,YAAa,UAAyB,EAAE,UAAsB,EAAE;QAC9D,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAA;QACvD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAA;QACnB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAE5B,IAAI,UAAU,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,GAAG;gBACb,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,gCAAgC,EAAE;oBACtF,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,0CAA0C;iBACjD,CAAC;aACH,CAAA;QACH,CAAC;IACH,CAAC;IAEQ,CAAC,eAAe,CAAC,GAAG,IAAI,CAAA;IAExB,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,aAAa,CAAA;IAEpC,CAAC,mBAAmB,CAAC,GAAa;QACzC,mBAAmB;KACpB,CAAA;IAED,KAAK,CAAC,IAAI,CAAE,EAAa,EAAE,OAAuB;QAChD,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAA;QAC7C,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAA;QAEzC,4DAA4D;QAC5D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QAE/C,uDAAuD;QACvD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;YACvB,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE;YAC3C,UAAU,EAAE,EAAE;YACd,uBAAuB,EAAE,IAAI,CAAC,IAAI,CAAC,+BAA+B;YAClE,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAChD,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY;YACnC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;SAC/B,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAA;YACzD,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QACD,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAElE,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;QACzD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QAC3D,IAAI,CAAC,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;QAE9D,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAErD,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBACvB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAA;YACvD,CAAC,CAAC,CAAA;YAEF,MAAM,IAAI,UAAU,EAAE,CAAA;QACxB,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,QAAQ,CAAE,EAAa,EAAE,OAAuB;QACpD,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAA;QAChC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,CAAC,CAAA;QAEpE,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACxB,MAAM,KAAK,GAAG,oBAAoB,CAAC,EAAE,EAAE;gBACrC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;gBAC7B,GAAG,OAAO;aACX,CAAkD,CAAA;YAEnD,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;YAC1B,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YAEpC,MAAM,OAAO,GAAG,CAAC,GAAU,EAAQ,EAAE;gBACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAA;gBAClE,GAAG,CAAC,OAAO,GAAG,oBAAoB,QAAQ,KAAK,GAAG,CAAC,OAAO,EAAE,CAAA;gBAC5D,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;gBAErD,IAAI,CAAC,GAAG,CAAC,CAAA;YACX,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,GAAS,EAAE;gBAC3B,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAA;gBACrC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;gBAEvD,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,4BAA4B,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,EAAE,qBAAqB,CAAC,CAAA;gBACpG,mDAAmD;gBACnD,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;YAC9B,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,GAAS,EAAE;gBAC3B,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAA;gBACpC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;gBACvD,IAAI,EAAE,CAAA;YACR,CAAC,CAAA;YAED,MAAM,OAAO,GAAG,GAAS,EAAE;gBACzB,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAA;gBACrC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;gBACrD,SAAS,CAAC,OAAO,EAAE,CAAA;gBACnB,IAAI,CAAC,IAAI,UAAU,EAAE,CAAC,CAAA;YACxB,CAAC,CAAA;YAED,MAAM,IAAI,GAAG,CAAC,GAAW,EAAQ,EAAE;gBACjC,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;gBAC1C,SAAS,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;gBAC9C,SAAS,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;gBAE9C,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;oBAC3B,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;gBACtD,CAAC;gBAED,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;oBAChB,MAAM,CAAC,GAAG,CAAC,CAAC;oBAAC,OAAM;gBACrB,CAAC;gBAED,OAAO,CAAC,SAAS,CAAC,CAAA;YACpB,CAAC,CAAA;YAED,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC9B,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;YAClC,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;YAElC,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC3B,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YACnD,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAE,OAAiC;QAC/C,OAAO,IAAI,WAAW,CAAC;YACrB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;YAC/B,GAAG,OAAO;YACV,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc;YACxC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;YAC1B,2BAA2B,EAAE,IAAI,CAAC,IAAI,CAAC,2BAA2B;YAClE,uBAAuB,EAAE,IAAI,CAAC,IAAI,CAAC,8BAA8B;YACjE,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAChD,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO;YAChC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;SAC/B,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,YAAY,CAAE,UAAuB;QACnC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;QAElE,OAAO,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;YAC5B,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC3C,OAAO,KAAK,CAAA;YACd,CAAC;YAED,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAA;YACb,CAAC;YAED,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAA;QACxD,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,UAAU,CAAE,UAAuB;QACjC,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;IACtC,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/tcp",
|
|
3
|
-
"version": "9.1.
|
|
3
|
+
"version": "9.1.6-df330695a",
|
|
4
4
|
"description": "A TCP transport for libp2p",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/transport-tcp#readme",
|
|
@@ -52,12 +52,16 @@
|
|
|
52
52
|
"doc-check": "aegir doc-check",
|
|
53
53
|
"build": "aegir build",
|
|
54
54
|
"test": "aegir test -t node -t electron-main",
|
|
55
|
+
"test:chrome": "aegir test -t browser -f ./dist/test/browser.js --cov",
|
|
56
|
+
"test:chrome-webworker": "aegir test -t webworker -f ./dist/test/browser.js",
|
|
57
|
+
"test:firefox": "aegir test -t browser -f ./dist/test/browser.js -- --browser firefox",
|
|
58
|
+
"test:firefox-webworker": "aegir test -t webworker -f ./dist/test/browser.js -- --browser firefox",
|
|
55
59
|
"test:node": "aegir test -t node --cov",
|
|
56
60
|
"test:electron-main": "aegir test -t electron-main"
|
|
57
61
|
},
|
|
58
62
|
"dependencies": {
|
|
59
|
-
"@libp2p/interface": "1.7.0-
|
|
60
|
-
"@libp2p/utils": "5.4.9-
|
|
63
|
+
"@libp2p/interface": "1.7.0-df330695a",
|
|
64
|
+
"@libp2p/utils": "5.4.9-df330695a",
|
|
61
65
|
"@multiformats/mafmt": "^12.1.6",
|
|
62
66
|
"@multiformats/multiaddr": "^12.2.3",
|
|
63
67
|
"@types/sinon": "^17.0.3",
|
|
@@ -65,14 +69,18 @@
|
|
|
65
69
|
"stream-to-it": "^1.0.1"
|
|
66
70
|
},
|
|
67
71
|
"devDependencies": {
|
|
68
|
-
"@libp2p/interface-compliance-tests": "5.4.12-
|
|
69
|
-
"@libp2p/logger": "4.0.20-
|
|
72
|
+
"@libp2p/interface-compliance-tests": "5.4.12-df330695a",
|
|
73
|
+
"@libp2p/logger": "4.0.20-df330695a",
|
|
70
74
|
"aegir": "^44.0.1",
|
|
71
75
|
"it-all": "^3.0.6",
|
|
72
76
|
"it-pipe": "^3.0.1",
|
|
73
77
|
"p-defer": "^4.0.1",
|
|
74
78
|
"sinon": "^18.0.0",
|
|
75
|
-
"uint8arrays": "^5.1.0"
|
|
79
|
+
"uint8arrays": "^5.1.0",
|
|
80
|
+
"wherearewe": "^2.0.1"
|
|
81
|
+
},
|
|
82
|
+
"browser": {
|
|
83
|
+
"./dist/src/tcp.js": "./dist/src/tcp.browser.js"
|
|
76
84
|
},
|
|
77
85
|
"sideEffects": false
|
|
78
86
|
}
|