@libp2p/websockets 3.0.0 → 3.0.3
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/README.md +4 -4
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/socket-to-conn.d.ts.map +1 -1
- package/dist/src/socket-to-conn.js +3 -1
- package/dist/src/socket-to-conn.js.map +1 -1
- package/package.json +18 -12
- package/src/index.ts +4 -3
- package/src/socket-to-conn.ts +3 -1
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
- [Transport](#transport)
|
|
20
20
|
- [Connection](#connection)
|
|
21
21
|
- [License](#license)
|
|
22
|
-
- [
|
|
22
|
+
- [Contribute](#contribute)
|
|
23
23
|
|
|
24
24
|
## Install
|
|
25
25
|
|
|
@@ -43,14 +43,14 @@ $ npm i @libp2p/websockets
|
|
|
43
43
|
### Constructor properties
|
|
44
44
|
|
|
45
45
|
```js
|
|
46
|
-
import
|
|
46
|
+
import { WebSockets } from '@libp2p/websockets'
|
|
47
47
|
|
|
48
48
|
const properties = {
|
|
49
49
|
upgrader,
|
|
50
50
|
filter
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
const ws = new
|
|
53
|
+
const ws = new WebSockets(properties)
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
| Name | Type | Description | Default |
|
|
@@ -114,6 +114,6 @@ Licensed under either of
|
|
|
114
114
|
- Apache 2.0, ([LICENSE-APACHE](LICENSE-APACHE) / <http://www.apache.org/licenses/LICENSE-2.0>)
|
|
115
115
|
- MIT ([LICENSE-MIT](LICENSE-MIT) / <http://opensource.org/licenses/MIT>)
|
|
116
116
|
|
|
117
|
-
##
|
|
117
|
+
## Contribute
|
|
118
118
|
|
|
119
119
|
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { WebSocketOptions } from 'it-ws/client';
|
|
3
3
|
import { Transport, MultiaddrFilter, symbol, CreateListenerOptions, DialOptions } from '@libp2p/interface-transport';
|
|
4
|
+
import type { Connection } from '@libp2p/interface-connection';
|
|
4
5
|
import type { AbortOptions } from '@libp2p/interfaces';
|
|
5
6
|
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
6
7
|
import type { DuplexWebSocket } from 'it-ws/duplex';
|
|
@@ -16,7 +17,7 @@ export declare class WebSockets implements Transport {
|
|
|
16
17
|
constructor(init?: WebSocketsInit);
|
|
17
18
|
get [Symbol.toStringTag](): string;
|
|
18
19
|
get [symbol](): true;
|
|
19
|
-
dial(ma: Multiaddr, options: DialOptions): Promise<
|
|
20
|
+
dial(ma: Multiaddr, options: DialOptions): Promise<Connection>;
|
|
20
21
|
_connect(ma: Multiaddr, options: AbortOptions): Promise<DuplexWebSocket>;
|
|
21
22
|
/**
|
|
22
23
|
* Creates a Websockets listener. The provided `handler` function will be called
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAW,gBAAgB,EAAE,MAAM,cAAc,CAAA;AASxD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACpH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAIlC,MAAM,WAAW,cAAe,SAAQ,YAAY,EAAE,gBAAgB;IACpE,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,SAAS,CAAC,EAAE,aAAa,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,UAAW,YAAW,SAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAgB;gBAEzB,IAAI,CAAC,EAAE,cAAc;IAIlC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAEvB;IAED,IAAI,CAAC,MAAM,CAAC,IAAK,IAAI,CAEpB;IAEK,IAAI,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAW,gBAAgB,EAAE,MAAM,cAAc,CAAA;AASxD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACpH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAIlC,MAAM,WAAW,cAAe,SAAQ,YAAY,EAAE,gBAAgB;IACpE,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,SAAS,CAAC,EAAE,aAAa,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,UAAW,YAAW,SAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAgB;gBAEzB,IAAI,CAAC,EAAE,cAAc;IAIlC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAEvB;IAED,IAAI,CAAC,MAAM,CAAC,IAAK,IAAI,CAEpB;IAEK,IAAI,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAa/D,QAAQ,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC;IA8D/E;;;;OAIG;IACH,cAAc,CAAE,OAAO,EAAE,qBAAqB;IAI9C;;;;OAIG;IACH,MAAM,CAAE,UAAU,EAAE,SAAS,EAAE;CAchC"}
|
package/dist/src/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import { multiaddrToUri as toUri } from '@multiformats/multiaddr-to-uri';
|
|
|
3
3
|
import { AbortError } from '@libp2p/interfaces/errors';
|
|
4
4
|
import pDefer from 'p-defer';
|
|
5
5
|
import { logger } from '@libp2p/logger';
|
|
6
|
-
import
|
|
6
|
+
import { isBrowser, isWebWorker } from 'wherearewe';
|
|
7
7
|
import { createListener } from './listener.js';
|
|
8
8
|
import { socketToMaConn } from './socket-to-conn.js';
|
|
9
9
|
import * as filters from './filters.js';
|
|
@@ -100,7 +100,7 @@ export class WebSockets {
|
|
|
100
100
|
return this.init?.filter(multiaddrs);
|
|
101
101
|
}
|
|
102
102
|
// Browser
|
|
103
|
-
if (
|
|
103
|
+
if (isBrowser || isWebWorker) {
|
|
104
104
|
return filters.dnsWss(multiaddrs);
|
|
105
105
|
}
|
|
106
106
|
return filters.all(multiaddrs);
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAoB,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,cAAc,IAAI,KAAK,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-to-conn.d.ts","sourceRoot":"","sources":["../../src/socket-to-conn.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAInD,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAID,wBAAgB,cAAc,CAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,
|
|
1
|
+
{"version":3,"file":"socket-to-conn.d.ts","sourceRoot":"","sources":["../../src/socket-to-conn.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAInD,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAID,wBAAgB,cAAc,CAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,CAqDlI"}
|
|
@@ -27,7 +27,9 @@ export function socketToMaConn(stream, remoteAddr, options) {
|
|
|
27
27
|
async close() {
|
|
28
28
|
const start = Date.now();
|
|
29
29
|
try {
|
|
30
|
-
await pTimeout(stream.close(),
|
|
30
|
+
await pTimeout(stream.close(), {
|
|
31
|
+
milliseconds: CLOSE_TIMEOUT
|
|
32
|
+
});
|
|
31
33
|
}
|
|
32
34
|
catch (err) {
|
|
33
35
|
const { host, port } = maConn.remoteAddr.toOptions();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-to-conn.js","sourceRoot":"","sources":["../../src/socket-to-conn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,QAAQ,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAMvC,MAAM,GAAG,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAA;AAM9C,8CAA8C;AAC9C,oEAAoE;AACpE,MAAM,UAAU,cAAc,CAAE,MAAuB,EAAE,UAAqB,EAAE,OAA6B;IAC3G,OAAO,GAAG,OAAO,IAAI,EAAE,CAAA;IAEvB,MAAM,MAAM,GAAwB;QAClC,KAAK,CAAC,IAAI,CAAE,MAAM;YAChB,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;gBAC7B,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;aACjD;YAED,IAAI;gBACF,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;aAC1B;YAAC,OAAO,GAAQ,EAAE;gBACjB,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE;oBAC1B,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;iBACf;aACF;QACH,CAAC;QAED,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;QAEjG,UAAU;QAEV,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;QAE9B,KAAK,CAAC,KAAK;YACT,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAExB,IAAI;gBACF,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,aAAa,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"socket-to-conn.js","sourceRoot":"","sources":["../../src/socket-to-conn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,QAAQ,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAMvC,MAAM,GAAG,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAA;AAM9C,8CAA8C;AAC9C,oEAAoE;AACpE,MAAM,UAAU,cAAc,CAAE,MAAuB,EAAE,UAAqB,EAAE,OAA6B;IAC3G,OAAO,GAAG,OAAO,IAAI,EAAE,CAAA;IAEvB,MAAM,MAAM,GAAwB;QAClC,KAAK,CAAC,IAAI,CAAE,MAAM;YAChB,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;gBAC7B,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;aACjD;YAED,IAAI;gBACF,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;aAC1B;YAAC,OAAO,GAAQ,EAAE;gBACjB,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE;oBAC1B,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;iBACf;aACF;QACH,CAAC;QAED,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;QAEjG,UAAU;QAEV,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;QAE9B,KAAK,CAAC,KAAK;YACT,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAExB,IAAI;gBACF,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE;oBAC7B,YAAY,EAAE,aAAa;iBAC5B,CAAC,CAAA;aACH;YAAC,OAAO,GAAG,EAAE;gBACZ,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,CAAA;gBACpD,GAAG,CAAC,oEAAoE,EACtE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAA;gBAEjC,MAAM,CAAC,OAAO,EAAE,CAAA;aACjB;oBAAS;gBACR,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;aACnC;QACH,CAAC;KACF,CAAA;IAED,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;QAC7D,wDAAwD;QACxD,kEAAkE;QAClE,WAAW;QACX,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,EAAE;YACjC,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;SACnC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/websockets",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.3",
|
|
4
4
|
"description": "JavaScript implementation of the WebSockets module that libp2p uses and that implements the interface-transport spec",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p-websockets#readme",
|
|
@@ -85,15 +85,15 @@
|
|
|
85
85
|
"release": "patch"
|
|
86
86
|
},
|
|
87
87
|
{
|
|
88
|
-
"type": "
|
|
88
|
+
"type": "docs",
|
|
89
89
|
"release": "patch"
|
|
90
90
|
},
|
|
91
91
|
{
|
|
92
|
-
"type": "
|
|
92
|
+
"type": "test",
|
|
93
93
|
"release": "patch"
|
|
94
94
|
},
|
|
95
95
|
{
|
|
96
|
-
"type": "
|
|
96
|
+
"type": "deps",
|
|
97
97
|
"release": "patch"
|
|
98
98
|
},
|
|
99
99
|
{
|
|
@@ -123,7 +123,11 @@
|
|
|
123
123
|
},
|
|
124
124
|
{
|
|
125
125
|
"type": "docs",
|
|
126
|
-
"section": "
|
|
126
|
+
"section": "Documentation"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"type": "deps",
|
|
130
|
+
"section": "Dependencies"
|
|
127
131
|
},
|
|
128
132
|
{
|
|
129
133
|
"type": "test",
|
|
@@ -154,11 +158,11 @@
|
|
|
154
158
|
"release": "aegir release"
|
|
155
159
|
},
|
|
156
160
|
"dependencies": {
|
|
157
|
-
"@libp2p/interface-connection": "^
|
|
161
|
+
"@libp2p/interface-connection": "^3.0.1",
|
|
158
162
|
"@libp2p/interface-transport": "^1.0.0",
|
|
159
163
|
"@libp2p/interfaces": "^3.0.1",
|
|
160
164
|
"@libp2p/logger": "^2.0.0",
|
|
161
|
-
"@libp2p/utils": "^
|
|
165
|
+
"@libp2p/utils": "^3.0.0",
|
|
162
166
|
"@multiformats/mafmt": "^11.0.2",
|
|
163
167
|
"@multiformats/multiaddr": "^10.1.5",
|
|
164
168
|
"@multiformats/multiaddr-to-uri": "^9.0.0",
|
|
@@ -166,12 +170,12 @@
|
|
|
166
170
|
"err-code": "^3.0.1",
|
|
167
171
|
"it-ws": "^5.0.0",
|
|
168
172
|
"p-defer": "^4.0.0",
|
|
169
|
-
"p-timeout": "^
|
|
170
|
-
"wherearewe": "^
|
|
173
|
+
"p-timeout": "^6.0.0",
|
|
174
|
+
"wherearewe": "^2.0.1"
|
|
171
175
|
},
|
|
172
176
|
"devDependencies": {
|
|
173
|
-
"@libp2p/interface-mocks": "^
|
|
174
|
-
"@libp2p/interface-transport-compliance-tests": "^2.0.
|
|
177
|
+
"@libp2p/interface-mocks": "^4.0.1",
|
|
178
|
+
"@libp2p/interface-transport-compliance-tests": "^2.0.5",
|
|
175
179
|
"@types/ws": "^8.2.2",
|
|
176
180
|
"aegir": "^37.2.0",
|
|
177
181
|
"is-loopback-addr": "^2.0.1",
|
|
@@ -179,8 +183,10 @@
|
|
|
179
183
|
"it-drain": "^1.0.5",
|
|
180
184
|
"it-goodbye": "^4.0.1",
|
|
181
185
|
"it-pipe": "^2.0.3",
|
|
186
|
+
"it-stream-types": "^1.0.4",
|
|
182
187
|
"it-take": "^1.0.2",
|
|
183
|
-
"p-wait-for": "^
|
|
188
|
+
"p-wait-for": "^5.0.0",
|
|
189
|
+
"uint8arraylist": "^2.3.2",
|
|
184
190
|
"uint8arrays": "^3.0.0"
|
|
185
191
|
},
|
|
186
192
|
"browser": {
|
package/src/index.ts
CHANGED
|
@@ -3,11 +3,12 @@ import { multiaddrToUri as toUri } from '@multiformats/multiaddr-to-uri'
|
|
|
3
3
|
import { AbortError } from '@libp2p/interfaces/errors'
|
|
4
4
|
import pDefer from 'p-defer'
|
|
5
5
|
import { logger } from '@libp2p/logger'
|
|
6
|
-
import
|
|
6
|
+
import { isBrowser, isWebWorker } from 'wherearewe'
|
|
7
7
|
import { createListener } from './listener.js'
|
|
8
8
|
import { socketToMaConn } from './socket-to-conn.js'
|
|
9
9
|
import * as filters from './filters.js'
|
|
10
10
|
import { Transport, MultiaddrFilter, symbol, CreateListenerOptions, DialOptions } from '@libp2p/interface-transport'
|
|
11
|
+
import type { Connection } from '@libp2p/interface-connection'
|
|
11
12
|
import type { AbortOptions } from '@libp2p/interfaces'
|
|
12
13
|
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
13
14
|
import type { DuplexWebSocket } from 'it-ws/duplex'
|
|
@@ -37,7 +38,7 @@ export class WebSockets implements Transport {
|
|
|
37
38
|
return true
|
|
38
39
|
}
|
|
39
40
|
|
|
40
|
-
async dial (ma: Multiaddr, options: DialOptions) {
|
|
41
|
+
async dial (ma: Multiaddr, options: DialOptions): Promise<Connection> {
|
|
41
42
|
log('dialing %s', ma)
|
|
42
43
|
options = options ?? {}
|
|
43
44
|
|
|
@@ -134,7 +135,7 @@ export class WebSockets implements Transport {
|
|
|
134
135
|
}
|
|
135
136
|
|
|
136
137
|
// Browser
|
|
137
|
-
if (
|
|
138
|
+
if (isBrowser || isWebWorker) {
|
|
138
139
|
return filters.dnsWss(multiaddrs)
|
|
139
140
|
}
|
|
140
141
|
|
package/src/socket-to-conn.ts
CHANGED
|
@@ -43,7 +43,9 @@ export function socketToMaConn (stream: DuplexWebSocket, remoteAddr: Multiaddr,
|
|
|
43
43
|
const start = Date.now()
|
|
44
44
|
|
|
45
45
|
try {
|
|
46
|
-
await pTimeout(stream.close(),
|
|
46
|
+
await pTimeout(stream.close(), {
|
|
47
|
+
milliseconds: CLOSE_TIMEOUT
|
|
48
|
+
})
|
|
47
49
|
} catch (err) {
|
|
48
50
|
const { host, port } = maConn.remoteAddr.toOptions()
|
|
49
51
|
log('timeout closing stream to %s:%s after %dms, destroying it manually',
|