@libp2p/interface-compliance-tests 6.1.7 → 6.1.8-32ca76fcb
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/src/matchers.d.ts +6 -0
- package/dist/src/matchers.d.ts.map +1 -1
- package/dist/src/matchers.js +6 -0
- package/dist/src/matchers.js.map +1 -1
- package/dist/src/mocks/muxer.d.ts +8 -3
- package/dist/src/mocks/muxer.d.ts.map +1 -1
- package/dist/src/mocks/muxer.js +15 -6
- package/dist/src/mocks/muxer.js.map +1 -1
- package/dist/src/transport/index.d.ts +13 -9
- package/dist/src/transport/index.d.ts.map +1 -1
- package/dist/src/transport/index.js +321 -6
- package/dist/src/transport/index.js.map +1 -1
- package/dist/src/transport/utils.d.ts +19 -0
- package/dist/src/transport/utils.d.ts.map +1 -0
- package/dist/src/transport/utils.js +62 -0
- package/dist/src/transport/utils.js.map +1 -0
- package/package.json +14 -13
- package/src/matchers.ts +6 -0
- package/src/mocks/muxer.ts +24 -10
- package/src/transport/index.ts +405 -17
- package/src/transport/utils.ts +76 -0
- package/dist/src/connection/index.d.ts +0 -5
- package/dist/src/connection/index.d.ts.map +0 -1
- package/dist/src/connection/index.js +0 -135
- package/dist/src/connection/index.js.map +0 -1
- package/dist/src/transport/dial-test.d.ts +0 -5
- package/dist/src/transport/dial-test.d.ts.map +0 -1
- package/dist/src/transport/dial-test.js +0 -99
- package/dist/src/transport/dial-test.js.map +0 -1
- package/dist/src/transport/filter-test.d.ts +0 -5
- package/dist/src/transport/filter-test.d.ts.map +0 -1
- package/dist/src/transport/filter-test.js +0 -24
- package/dist/src/transport/filter-test.js.map +0 -1
- package/dist/src/transport/listen-test.d.ts +0 -5
- package/dist/src/transport/listen-test.d.ts.map +0 -1
- package/dist/src/transport/listen-test.js +0 -154
- package/dist/src/transport/listen-test.js.map +0 -1
- package/dist/typedoc-urls.json +0 -49
- package/src/connection/index.ts +0 -166
- package/src/transport/dial-test.ts +0 -125
- package/src/transport/filter-test.ts +0 -32
- package/src/transport/listen-test.ts +0 -192
package/dist/src/matchers.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import Sinon from 'sinon';
|
|
2
2
|
import type { PeerId } from '@libp2p/interface';
|
|
3
3
|
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated PeerIds can be passed to sinon matchers directly
|
|
6
|
+
*/
|
|
4
7
|
export declare function matchPeerId(peerId: PeerId): Sinon.SinonMatcher;
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated Multiaddrs can be passed to sinon matchers directly
|
|
10
|
+
*/
|
|
5
11
|
export declare function matchMultiaddr(ma: Multiaddr): Sinon.SinonMatcher;
|
|
6
12
|
//# sourceMappingURL=matchers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../../src/matchers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,wBAAgB,WAAW,CAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,YAAY,CAE/D;AAED,wBAAgB,cAAc,CAAE,EAAE,EAAE,SAAS,GAAG,KAAK,CAAC,YAAY,CAEjE"}
|
|
1
|
+
{"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../../src/matchers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;GAEG;AACH,wBAAgB,WAAW,CAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,YAAY,CAE/D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAE,EAAE,EAAE,SAAS,GAAG,KAAK,CAAC,YAAY,CAEjE"}
|
package/dist/src/matchers.js
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import Sinon from 'sinon';
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated PeerIds can be passed to sinon matchers directly
|
|
4
|
+
*/
|
|
2
5
|
export function matchPeerId(peerId) {
|
|
3
6
|
return Sinon.match(p => p.toString() === peerId.toString());
|
|
4
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated Multiaddrs can be passed to sinon matchers directly
|
|
10
|
+
*/
|
|
5
11
|
export function matchMultiaddr(ma) {
|
|
6
12
|
return Sinon.match(m => m.toString() === ma.toString());
|
|
7
13
|
}
|
package/dist/src/matchers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../src/matchers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,MAAM,UAAU,WAAW,CAAE,MAAc;IACzC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;AAC7D,CAAC;AAED,MAAM,UAAU,cAAc,CAAE,EAAa;IAC3C,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;AACzD,CAAC"}
|
|
1
|
+
{"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../src/matchers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB;;GAEG;AACH,MAAM,UAAU,WAAW,CAAE,MAAc;IACzC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAE,EAAa;IAC3C,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;AACzD,CAAC"}
|
|
@@ -12,9 +12,14 @@ interface ResetMessage {
|
|
|
12
12
|
type: 'reset';
|
|
13
13
|
direction: Direction;
|
|
14
14
|
}
|
|
15
|
-
interface
|
|
15
|
+
interface CloseWriteMessage {
|
|
16
16
|
id: string;
|
|
17
|
-
type: '
|
|
17
|
+
type: 'closeWrite';
|
|
18
|
+
direction: Direction;
|
|
19
|
+
}
|
|
20
|
+
interface CloseReadMessage {
|
|
21
|
+
id: string;
|
|
22
|
+
type: 'closeRead';
|
|
18
23
|
direction: Direction;
|
|
19
24
|
}
|
|
20
25
|
interface CreateMessage {
|
|
@@ -22,7 +27,7 @@ interface CreateMessage {
|
|
|
22
27
|
type: 'create';
|
|
23
28
|
direction: 'outbound';
|
|
24
29
|
}
|
|
25
|
-
type StreamMessage = DataMessage | ResetMessage |
|
|
30
|
+
type StreamMessage = DataMessage | ResetMessage | CloseWriteMessage | CloseReadMessage | CreateMessage;
|
|
26
31
|
export interface MockMuxedStreamInit extends AbstractStreamInit {
|
|
27
32
|
push: Pushable<StreamMessage>;
|
|
28
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"muxer.d.ts","sourceRoot":"","sources":["../../../src/mocks/muxer.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAKvF,OAAO,EAAE,KAAK,QAAQ,EAAY,MAAM,aAAa,CAAA;AAIrD,OAAO,KAAK,EAAgB,SAAS,EAAuB,kBAAkB,EAAmB,MAAM,mBAAmB,CAAA;AAM1H,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,SAAS,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,OAAO,CAAA;IACb,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,UAAU,YAAY;
|
|
1
|
+
{"version":3,"file":"muxer.d.ts","sourceRoot":"","sources":["../../../src/mocks/muxer.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAKvF,OAAO,EAAE,KAAK,QAAQ,EAAY,MAAM,aAAa,CAAA;AAIrD,OAAO,KAAK,EAAgB,SAAS,EAAuB,kBAAkB,EAAmB,MAAM,mBAAmB,CAAA;AAM1H,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,SAAS,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,OAAO,CAAA;IACb,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,UAAU,iBAAiB;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,YAAY,CAAA;IAClB,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,UAAU,gBAAgB;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,WAAW,CAAA;IACjB,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,QAAQ,CAAA;IACd,SAAS,EAAE,UAAU,CAAA;CACtB;AAED,KAAK,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,aAAa,CAAA;AAEtG,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAA;CAC9B;AAkRD,wBAAgB,SAAS,IAAK,kBAAkB,CAE/C"}
|
package/dist/src/mocks/muxer.js
CHANGED
|
@@ -45,13 +45,18 @@ class MuxedStream extends AbstractStream {
|
|
|
45
45
|
sendCloseWrite() {
|
|
46
46
|
const closeMsg = {
|
|
47
47
|
id: this.id,
|
|
48
|
-
type: '
|
|
48
|
+
type: 'closeWrite',
|
|
49
49
|
direction: this.direction
|
|
50
50
|
};
|
|
51
51
|
this.push.push(closeMsg);
|
|
52
52
|
}
|
|
53
53
|
sendCloseRead() {
|
|
54
|
-
|
|
54
|
+
const closeMsg = {
|
|
55
|
+
id: this.id,
|
|
56
|
+
type: 'closeRead',
|
|
57
|
+
direction: this.direction
|
|
58
|
+
};
|
|
59
|
+
this.push.push(closeMsg);
|
|
55
60
|
}
|
|
56
61
|
}
|
|
57
62
|
class MockMuxer {
|
|
@@ -98,11 +103,11 @@ class MockMuxer {
|
|
|
98
103
|
this.handleMessage(message);
|
|
99
104
|
}
|
|
100
105
|
});
|
|
101
|
-
this.log('
|
|
106
|
+
this.log('muxer ended');
|
|
102
107
|
this.input.end();
|
|
103
108
|
}
|
|
104
109
|
catch (err) {
|
|
105
|
-
this.log('
|
|
110
|
+
this.log.error('muxer errored - %e', err);
|
|
106
111
|
this.input.end(err);
|
|
107
112
|
}
|
|
108
113
|
}
|
|
@@ -131,10 +136,14 @@ class MockMuxer {
|
|
|
131
136
|
this.log('-> reset stream %s %s', muxedStream.direction, muxedStream.id);
|
|
132
137
|
muxedStream.reset();
|
|
133
138
|
}
|
|
134
|
-
else if (message.type === '
|
|
135
|
-
this.log('-> closing stream %s %s', muxedStream.direction, muxedStream.id);
|
|
139
|
+
else if (message.type === 'closeWrite') {
|
|
140
|
+
this.log('-> closing writeable end of stream %s %s', muxedStream.direction, muxedStream.id);
|
|
136
141
|
muxedStream.remoteCloseWrite();
|
|
137
142
|
}
|
|
143
|
+
else if (message.type === 'closeRead') {
|
|
144
|
+
this.log('-> closing readable end of stream %s %s', muxedStream.direction, muxedStream.id);
|
|
145
|
+
muxedStream.remoteCloseRead();
|
|
146
|
+
}
|
|
138
147
|
}
|
|
139
148
|
get streams() {
|
|
140
149
|
return Array.from(this.registryRecipientStreams.values())
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"muxer.js","sourceRoot":"","sources":["../../../src/mocks/muxer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,cAAc,EAA2B,MAAM,+BAA+B,CAAA;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,GAAG,MAAM,QAAQ,CAAA;AACxB,OAAO,KAAK,MAAM,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAiB,QAAQ,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAItE,IAAI,MAAM,GAAG,CAAC,CAAA;AACd,IAAI,OAAO,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"muxer.js","sourceRoot":"","sources":["../../../src/mocks/muxer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import type { TestSetup } from '../index.js';
|
|
2
2
|
import type { Transport } from '@libp2p/interface';
|
|
3
3
|
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
4
|
-
export interface Connector {
|
|
5
|
-
delay(ms: number): void;
|
|
6
|
-
restore(): void;
|
|
7
|
-
}
|
|
8
4
|
export interface TransportTestFixtures {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Addresses that will be used to dial listeners from `listenAddrs`
|
|
7
|
+
*/
|
|
8
|
+
dialAddrs: [Multiaddr, Multiaddr];
|
|
9
|
+
/**
|
|
10
|
+
* Addresses that will be used to create listeners to dial
|
|
11
|
+
*/
|
|
12
|
+
listenAddrs?: [Multiaddr, Multiaddr];
|
|
13
|
+
/**
|
|
14
|
+
* Only run the dial portion of the tests, do not try to create listeners
|
|
15
|
+
*/
|
|
16
|
+
dialOnly?: boolean;
|
|
17
|
+
transport(components: any): Transport;
|
|
14
18
|
}
|
|
15
19
|
declare const _default: (common: TestSetup<TransportTestFixtures>) => void;
|
|
16
20
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transport/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transport/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,KAAK,EAA8B,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IAEjC;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IAEpC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,SAAS,CAAC,UAAU,EAAE,GAAG,GAAG,SAAS,CAAA;CACtC;iCAEuB,UAAU,qBAAqB,CAAC,KAAG,IAAI;AAA/D,wBA6XC"}
|
|
@@ -1,11 +1,326 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import { echo } from '@libp2p/echo';
|
|
2
|
+
import { stop } from '@libp2p/interface';
|
|
3
|
+
import { expect } from 'aegir/chai';
|
|
4
|
+
import delay from 'delay';
|
|
5
|
+
import { pEvent } from 'p-event';
|
|
6
|
+
import pWaitFor from 'p-wait-for';
|
|
7
|
+
import { raceSignal } from 'race-signal';
|
|
8
|
+
import { isValidTick } from '../is-valid-tick.js';
|
|
9
|
+
import { createPeer, getTransportManager, getUpgrader, slowNetwork } from './utils.js';
|
|
4
10
|
export default (common) => {
|
|
5
11
|
describe('interface-transport', () => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
12
|
+
let dialAddrs;
|
|
13
|
+
let listenAddrs;
|
|
14
|
+
let transport;
|
|
15
|
+
let dialer;
|
|
16
|
+
let listener;
|
|
17
|
+
let dialOnly;
|
|
18
|
+
beforeEach(async () => {
|
|
19
|
+
({ dialAddrs, listenAddrs = dialAddrs, transport, dialOnly = false } = await common.setup());
|
|
20
|
+
});
|
|
21
|
+
afterEach(async () => {
|
|
22
|
+
await stop(dialer, listener);
|
|
23
|
+
await common.teardown();
|
|
24
|
+
});
|
|
25
|
+
it('simple', async () => {
|
|
26
|
+
dialer = await createPeer({
|
|
27
|
+
transports: [
|
|
28
|
+
transport
|
|
29
|
+
]
|
|
30
|
+
});
|
|
31
|
+
if (!dialOnly) {
|
|
32
|
+
listener = await createPeer({
|
|
33
|
+
addresses: {
|
|
34
|
+
listen: [listenAddrs[0].toString()]
|
|
35
|
+
},
|
|
36
|
+
transports: [
|
|
37
|
+
transport
|
|
38
|
+
]
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
const input = Uint8Array.from([0, 1, 2, 3, 4]);
|
|
42
|
+
const output = await dialer.services.echo.echo(dialAddrs[0], input, {
|
|
43
|
+
signal: AbortSignal.timeout(5000)
|
|
44
|
+
});
|
|
45
|
+
expect(output).to.equalBytes(input);
|
|
46
|
+
});
|
|
47
|
+
it('should listen on multiple addresses', async () => {
|
|
48
|
+
dialer = await createPeer({
|
|
49
|
+
transports: [
|
|
50
|
+
transport
|
|
51
|
+
]
|
|
52
|
+
});
|
|
53
|
+
if (!dialOnly) {
|
|
54
|
+
listener = await createPeer({
|
|
55
|
+
addresses: {
|
|
56
|
+
listen: [
|
|
57
|
+
listenAddrs[0].toString(),
|
|
58
|
+
listenAddrs[1].toString()
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
transports: [
|
|
62
|
+
transport
|
|
63
|
+
]
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
const input = Uint8Array.from([0, 1, 2, 3, 4]);
|
|
67
|
+
await expect(dialer.services.echo.echo(dialAddrs[0], input, {
|
|
68
|
+
signal: AbortSignal.timeout(5000)
|
|
69
|
+
})).to.eventually.deep.equal(input);
|
|
70
|
+
await expect(dialer.services.echo.echo(dialAddrs[1], input, {
|
|
71
|
+
signal: AbortSignal.timeout(5000)
|
|
72
|
+
})).to.eventually.deep.equal(input);
|
|
73
|
+
});
|
|
74
|
+
it('can close connections', async () => {
|
|
75
|
+
dialer = await createPeer({
|
|
76
|
+
transports: [
|
|
77
|
+
transport
|
|
78
|
+
]
|
|
79
|
+
});
|
|
80
|
+
if (!dialOnly) {
|
|
81
|
+
listener = await createPeer({
|
|
82
|
+
addresses: {
|
|
83
|
+
listen: [listenAddrs[0].toString()]
|
|
84
|
+
},
|
|
85
|
+
transports: [
|
|
86
|
+
transport
|
|
87
|
+
]
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
const conn = await dialer.dial(dialAddrs[0], {
|
|
91
|
+
signal: AbortSignal.timeout(5000)
|
|
92
|
+
});
|
|
93
|
+
await conn.close();
|
|
94
|
+
expect(isValidTick(conn.timeline.close)).to.equal(true);
|
|
95
|
+
});
|
|
96
|
+
it('abort before dialing throws AbortError', async () => {
|
|
97
|
+
dialer = await createPeer({
|
|
98
|
+
transports: [
|
|
99
|
+
transport
|
|
100
|
+
]
|
|
101
|
+
});
|
|
102
|
+
if (!dialOnly) {
|
|
103
|
+
listener = await createPeer({
|
|
104
|
+
addresses: {
|
|
105
|
+
listen: [listenAddrs[0].toString()]
|
|
106
|
+
},
|
|
107
|
+
transports: [
|
|
108
|
+
transport
|
|
109
|
+
]
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
const controller = new AbortController();
|
|
113
|
+
controller.abort();
|
|
114
|
+
await expect(dialer.dial(dialAddrs[0], {
|
|
115
|
+
signal: controller.signal
|
|
116
|
+
})).to.eventually.be.rejected()
|
|
117
|
+
.with.property('name', 'AbortError');
|
|
118
|
+
});
|
|
119
|
+
it('abort while dialing throws AbortError', async () => {
|
|
120
|
+
dialer = await createPeer({
|
|
121
|
+
transports: [
|
|
122
|
+
transport
|
|
123
|
+
]
|
|
124
|
+
});
|
|
125
|
+
if (!dialOnly) {
|
|
126
|
+
listener = await createPeer({
|
|
127
|
+
addresses: {
|
|
128
|
+
listen: [listenAddrs[0].toString()]
|
|
129
|
+
},
|
|
130
|
+
transports: [
|
|
131
|
+
transport
|
|
132
|
+
]
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
slowNetwork(dialer, 100);
|
|
136
|
+
const controller = new AbortController();
|
|
137
|
+
setTimeout(() => { controller.abort(); }, 50);
|
|
138
|
+
await expect(dialer.dial(dialAddrs[0], {
|
|
139
|
+
signal: controller.signal
|
|
140
|
+
})).to.eventually.be.rejected()
|
|
141
|
+
.with.property('name', 'AbortError');
|
|
142
|
+
});
|
|
143
|
+
it('should close all streams when the connection closes', async () => {
|
|
144
|
+
dialer = await createPeer({
|
|
145
|
+
transports: [
|
|
146
|
+
transport
|
|
147
|
+
]
|
|
148
|
+
});
|
|
149
|
+
if (!dialOnly) {
|
|
150
|
+
listener = await createPeer({
|
|
151
|
+
addresses: {
|
|
152
|
+
listen: [listenAddrs[0].toString()]
|
|
153
|
+
},
|
|
154
|
+
transports: [
|
|
155
|
+
transport
|
|
156
|
+
],
|
|
157
|
+
services: {
|
|
158
|
+
echo: echo({
|
|
159
|
+
maxInboundStreams: 5
|
|
160
|
+
})
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
const connection = await dialer.dial(listenAddrs[0]);
|
|
165
|
+
let remoteConn;
|
|
166
|
+
if (listener != null) {
|
|
167
|
+
const remoteConnections = listener.getConnections(dialer.peerId);
|
|
168
|
+
expect(remoteConnections).to.have.lengthOf(1);
|
|
169
|
+
remoteConn = remoteConnections[0];
|
|
170
|
+
}
|
|
171
|
+
const streams = [];
|
|
172
|
+
for (let i = 0; i < 5; i++) {
|
|
173
|
+
streams.push(await connection.newStream('/echo/1.0.0', {
|
|
174
|
+
maxOutboundStreams: 5
|
|
175
|
+
}));
|
|
176
|
+
}
|
|
177
|
+
// Close the connection and verify all streams have been closed
|
|
178
|
+
await connection.close();
|
|
179
|
+
await pWaitFor(() => connection.streams.length === 0);
|
|
180
|
+
if (remoteConn != null) {
|
|
181
|
+
await pWaitFor(() => remoteConn.streams.length === 0);
|
|
182
|
+
}
|
|
183
|
+
expect(streams.find(stream => stream.status !== 'closed')).to.be.undefined();
|
|
184
|
+
});
|
|
185
|
+
it('should not handle connection if upgradeInbound rejects', async function () {
|
|
186
|
+
if (dialOnly) {
|
|
187
|
+
return this.skip();
|
|
188
|
+
}
|
|
189
|
+
dialer = await createPeer({
|
|
190
|
+
transports: [
|
|
191
|
+
transport
|
|
192
|
+
]
|
|
193
|
+
});
|
|
194
|
+
if (!dialOnly) {
|
|
195
|
+
listener = await createPeer({
|
|
196
|
+
addresses: {
|
|
197
|
+
listen: [listenAddrs[0].toString()]
|
|
198
|
+
},
|
|
199
|
+
transports: [
|
|
200
|
+
transport
|
|
201
|
+
]
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
const upgrader = getUpgrader(listener);
|
|
205
|
+
upgrader.upgradeInbound = async () => {
|
|
206
|
+
await delay(100);
|
|
207
|
+
throw new Error('Oh noes!');
|
|
208
|
+
};
|
|
209
|
+
await expect(dialer.dial(listenAddrs[0])).to.eventually.be.rejected
|
|
210
|
+
.with.property('name', 'EncryptionFailedError');
|
|
211
|
+
expect(dialer.getConnections()).to.have.lengthOf(0);
|
|
212
|
+
if (listener != null) {
|
|
213
|
+
expect(listener.getConnections()).to.have.lengthOf(0);
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
});
|
|
217
|
+
describe('events', () => {
|
|
218
|
+
let listenAddrs;
|
|
219
|
+
let dialAddrs;
|
|
220
|
+
let transport;
|
|
221
|
+
let dialer;
|
|
222
|
+
let listener;
|
|
223
|
+
let dialOnly;
|
|
224
|
+
beforeEach(async () => {
|
|
225
|
+
({ dialAddrs, listenAddrs = dialAddrs, transport, dialOnly = false } = await common.setup());
|
|
226
|
+
});
|
|
227
|
+
afterEach(async () => {
|
|
228
|
+
await stop(dialer, listener);
|
|
229
|
+
await common.teardown();
|
|
230
|
+
});
|
|
231
|
+
it('emits connection', async function () {
|
|
232
|
+
if (dialOnly) {
|
|
233
|
+
return this.skip();
|
|
234
|
+
}
|
|
235
|
+
dialer = await createPeer({
|
|
236
|
+
transports: [
|
|
237
|
+
transport
|
|
238
|
+
]
|
|
239
|
+
});
|
|
240
|
+
if (!dialOnly) {
|
|
241
|
+
listener = await createPeer({
|
|
242
|
+
addresses: {
|
|
243
|
+
listen: [listenAddrs[0].toString()]
|
|
244
|
+
},
|
|
245
|
+
transports: [
|
|
246
|
+
transport
|
|
247
|
+
]
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
const transportManager = getTransportManager(listener);
|
|
251
|
+
const transportListener = transportManager.getListeners()[0];
|
|
252
|
+
const p = pEvent(transportListener, 'connection');
|
|
253
|
+
await expect(dialer.dial(dialAddrs[0])).to.eventually.be.ok();
|
|
254
|
+
await raceSignal(p, AbortSignal.timeout(1000), {
|
|
255
|
+
errorMessage: 'Did not emit connection event'
|
|
256
|
+
});
|
|
257
|
+
});
|
|
258
|
+
it('emits listening', async function () {
|
|
259
|
+
if (dialOnly) {
|
|
260
|
+
return this.skip();
|
|
261
|
+
}
|
|
262
|
+
dialer = await createPeer({
|
|
263
|
+
transports: [
|
|
264
|
+
transport
|
|
265
|
+
]
|
|
266
|
+
});
|
|
267
|
+
if (!dialOnly) {
|
|
268
|
+
listener = await createPeer({
|
|
269
|
+
addresses: {
|
|
270
|
+
listen: [listenAddrs[0].toString()]
|
|
271
|
+
},
|
|
272
|
+
transports: [
|
|
273
|
+
transport
|
|
274
|
+
]
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
const transportManager = getTransportManager(listener);
|
|
278
|
+
const t = transportManager.dialTransportForMultiaddr(dialAddrs[0]);
|
|
279
|
+
if (t == null) {
|
|
280
|
+
throw new Error(`No transport configured for dial address ${dialAddrs[0]}`);
|
|
281
|
+
}
|
|
282
|
+
let p;
|
|
283
|
+
const originalCreateListener = t.createListener.bind(t);
|
|
284
|
+
t.createListener = (opts) => {
|
|
285
|
+
const listener = originalCreateListener(opts);
|
|
286
|
+
p = pEvent(listener, 'listening');
|
|
287
|
+
return listener;
|
|
288
|
+
};
|
|
289
|
+
await transportManager.listen([
|
|
290
|
+
listenAddrs[1]
|
|
291
|
+
]);
|
|
292
|
+
if (p == null) {
|
|
293
|
+
throw new Error('Listener was not created');
|
|
294
|
+
}
|
|
295
|
+
await raceSignal(p, AbortSignal.timeout(1000), {
|
|
296
|
+
errorMessage: 'Did not emit connection event'
|
|
297
|
+
});
|
|
298
|
+
});
|
|
299
|
+
it('emits close', async function () {
|
|
300
|
+
if (dialOnly) {
|
|
301
|
+
return this.skip();
|
|
302
|
+
}
|
|
303
|
+
dialer = await createPeer({
|
|
304
|
+
transports: [
|
|
305
|
+
transport
|
|
306
|
+
]
|
|
307
|
+
});
|
|
308
|
+
listener = await createPeer({
|
|
309
|
+
addresses: {
|
|
310
|
+
listen: [listenAddrs[0].toString()]
|
|
311
|
+
},
|
|
312
|
+
transports: [
|
|
313
|
+
transport
|
|
314
|
+
]
|
|
315
|
+
});
|
|
316
|
+
const transportManager = getTransportManager(listener);
|
|
317
|
+
const transportListener = transportManager.getListeners()[0];
|
|
318
|
+
const p = pEvent(transportListener, 'close');
|
|
319
|
+
await listener.stop();
|
|
320
|
+
await raceSignal(p, AbortSignal.timeout(1000), {
|
|
321
|
+
errorMessage: 'Did not emit close event'
|
|
322
|
+
});
|
|
323
|
+
});
|
|
9
324
|
});
|
|
10
325
|
};
|
|
11
326
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transport/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,gBAAgB,CAAA;AACjC,OAAO,MAAM,MAAM,kBAAkB,CAAA;AACrC,OAAO,MAAM,MAAM,kBAAkB,CAAA;AAkBrC,eAAe,CAAC,MAAwC,EAAQ,EAAE;IAChE,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,IAAI,CAAC,MAAM,CAAC,CAAA;QACZ,MAAM,CAAC,MAAM,CAAC,CAAA;QACd,MAAM,CAAC,MAAM,CAAC,CAAA;IAChB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transport/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Echo } from '@libp2p/echo';
|
|
2
|
+
import type { Libp2p, Upgrader } from '@libp2p/interface';
|
|
3
|
+
import type { TransportManager } from '@libp2p/interface-internal';
|
|
4
|
+
import type { Libp2pOptions } from 'libp2p';
|
|
5
|
+
export declare function createPeer(config?: Partial<Libp2pOptions<{
|
|
6
|
+
echo: Echo;
|
|
7
|
+
}>>): Promise<Libp2p<{
|
|
8
|
+
echo: Echo;
|
|
9
|
+
}>>;
|
|
10
|
+
/**
|
|
11
|
+
* Monkey patch the upgrader in the passed libp2p to add latency to any
|
|
12
|
+
* multiaddr connections upgraded to connections - this is to work with
|
|
13
|
+
* transports that have their own muxers/encrypters and do not support
|
|
14
|
+
* connection protection
|
|
15
|
+
*/
|
|
16
|
+
export declare function slowNetwork(libp2p: any, latency: number): void;
|
|
17
|
+
export declare function getUpgrader(libp2p: any): Upgrader;
|
|
18
|
+
export declare function getTransportManager(libp2p: any): TransportManager;
|
|
19
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/transport/utils.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAE3C,wBAAsB,UAAU,CAAE,MAAM,GAAE,OAAO,CAAC,aAAa,CAAC;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC,CAsBtH;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAuB/D;AAED,wBAAgB,WAAW,CAAE,MAAM,EAAE,GAAG,GAAG,QAAQ,CAElD;AAED,wBAAgB,mBAAmB,CAAE,MAAM,EAAE,GAAG,GAAG,gBAAgB,CAElE"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/* eslint-env mocha */
|
|
2
|
+
import { echo } from '@libp2p/echo';
|
|
3
|
+
import { memory } from '@libp2p/memory';
|
|
4
|
+
import { plaintext } from '@libp2p/plaintext';
|
|
5
|
+
import delay from 'delay';
|
|
6
|
+
import map from 'it-map';
|
|
7
|
+
import { createLibp2p } from 'libp2p';
|
|
8
|
+
import { mockMuxer } from '../mocks/muxer.js';
|
|
9
|
+
export async function createPeer(config = {}) {
|
|
10
|
+
const node = await createLibp2p({
|
|
11
|
+
transports: [
|
|
12
|
+
memory()
|
|
13
|
+
],
|
|
14
|
+
connectionEncrypters: [
|
|
15
|
+
plaintext()
|
|
16
|
+
],
|
|
17
|
+
streamMuxers: [
|
|
18
|
+
() => mockMuxer()
|
|
19
|
+
],
|
|
20
|
+
connectionGater: {
|
|
21
|
+
denyDialMultiaddr: () => false
|
|
22
|
+
},
|
|
23
|
+
...config,
|
|
24
|
+
services: {
|
|
25
|
+
echo: echo(),
|
|
26
|
+
...config.services
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
return node;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Monkey patch the upgrader in the passed libp2p to add latency to any
|
|
33
|
+
* multiaddr connections upgraded to connections - this is to work with
|
|
34
|
+
* transports that have their own muxers/encrypters and do not support
|
|
35
|
+
* connection protection
|
|
36
|
+
*/
|
|
37
|
+
export function slowNetwork(libp2p, latency) {
|
|
38
|
+
const upgrader = getUpgrader(libp2p);
|
|
39
|
+
const originalUpgradeInbound = upgrader.upgradeInbound.bind(upgrader);
|
|
40
|
+
const originalUpgradeOutbound = upgrader.upgradeOutbound.bind(upgrader);
|
|
41
|
+
upgrader.upgradeInbound = async (maConn, opts) => {
|
|
42
|
+
maConn.source = map(maConn.source, async (buf) => {
|
|
43
|
+
await delay(latency);
|
|
44
|
+
return buf;
|
|
45
|
+
});
|
|
46
|
+
return originalUpgradeInbound(maConn, opts);
|
|
47
|
+
};
|
|
48
|
+
upgrader.upgradeOutbound = async (maConn, opts) => {
|
|
49
|
+
maConn.source = map(maConn.source, async (buf) => {
|
|
50
|
+
await delay(latency);
|
|
51
|
+
return buf;
|
|
52
|
+
});
|
|
53
|
+
return originalUpgradeOutbound(maConn, opts);
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export function getUpgrader(libp2p) {
|
|
57
|
+
return libp2p.components.upgrader;
|
|
58
|
+
}
|
|
59
|
+
export function getTransportManager(libp2p) {
|
|
60
|
+
return libp2p.components.transportManager;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/transport/utils.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAEtB,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,GAAG,MAAM,QAAQ,CAAA;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAM7C,MAAM,CAAC,KAAK,UAAU,UAAU,CAAE,SAAiD,EAAE;IACnF,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC;QAC9B,UAAU,EAAE;YACV,MAAM,EAAE;SACT;QACD,oBAAoB,EAAE;YACpB,SAAS,EAAE;SACZ;QACD,YAAY,EAAE;YACZ,GAAG,EAAE,CAAC,SAAS,EAAE;SAClB;QACD,eAAe,EAAE;YACf,iBAAiB,EAAE,GAAG,EAAE,CAAC,KAAK;SAC/B;QACD,GAAG,MAAM;QACT,QAAQ,EAAE;YACR,IAAI,EAAE,IAAI,EAAE;YACZ,GAAG,MAAM,CAAC,QAAQ;SACnB;KACF,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAE,MAAW,EAAE,OAAe;IACvD,MAAM,QAAQ,GAAa,WAAW,CAAC,MAAM,CAAC,CAAA;IAE9C,MAAM,sBAAsB,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACrE,MAAM,uBAAuB,GAAG,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAEvE,QAAQ,CAAC,cAAc,GAAG,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QAC/C,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC/C,MAAM,KAAK,CAAC,OAAO,CAAC,CAAA;YACpB,OAAO,GAAG,CAAA;QACZ,CAAC,CAAC,CAAA;QAEF,OAAO,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC7C,CAAC,CAAA;IAED,QAAQ,CAAC,eAAe,GAAG,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QAChD,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC/C,MAAM,KAAK,CAAC,OAAO,CAAC,CAAA;YACpB,OAAO,GAAG,CAAA;QACZ,CAAC,CAAC,CAAA;QAEF,OAAO,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC9C,CAAC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAE,MAAW;IACtC,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAE,MAAW;IAC9C,OAAO,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAA;AAC3C,CAAC"}
|