@libp2p/interface-compliance-tests 1.0.2 → 1.0.6
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/connection/connection.d.ts.map +1 -1
- package/dist/src/connection/connection.js +0 -2
- package/dist/src/connection/connection.js.map +1 -1
- package/dist/src/crypto/index.d.ts.map +1 -1
- package/dist/src/crypto/index.js +7 -8
- package/dist/src/crypto/index.js.map +1 -1
- package/dist/src/crypto/utils/index.d.ts +3 -0
- package/dist/src/crypto/utils/index.d.ts.map +1 -0
- package/dist/src/crypto/utils/index.js +18 -0
- package/dist/src/crypto/utils/index.js.map +1 -0
- package/dist/src/stream-muxer/base-test.d.ts.map +1 -1
- package/dist/src/stream-muxer/base-test.js +26 -23
- package/dist/src/stream-muxer/base-test.js.map +1 -1
- package/dist/src/stream-muxer/close-test.d.ts.map +1 -1
- package/dist/src/stream-muxer/close-test.js +16 -18
- package/dist/src/stream-muxer/close-test.js.map +1 -1
- package/dist/src/stream-muxer/spawner.d.ts.map +1 -1
- package/dist/src/stream-muxer/spawner.js +13 -12
- package/dist/src/stream-muxer/spawner.js.map +1 -1
- package/dist/src/transport/dial-test.d.ts.map +1 -1
- package/dist/src/transport/dial-test.js +5 -6
- package/dist/src/transport/dial-test.js.map +1 -1
- package/dist/src/transport/listen-test.d.ts.map +1 -1
- package/dist/src/transport/listen-test.js +13 -9
- package/dist/src/transport/listen-test.js.map +1 -1
- package/dist/src/transport/utils/index.d.ts.map +1 -1
- package/dist/src/transport/utils/index.js +3 -13
- package/dist/src/transport/utils/index.js.map +1 -1
- package/package.json +80 -65
- package/src/connection/connection.ts +0 -2
- package/src/crypto/index.ts +9 -9
- package/src/crypto/utils/index.ts +23 -0
- package/src/stream-muxer/base-test.ts +28 -24
- package/src/stream-muxer/close-test.ts +16 -18
- package/src/stream-muxer/spawner.ts +14 -13
- package/src/transport/dial-test.ts +5 -6
- package/src/transport/listen-test.ts +14 -10
- package/src/transport/utils/index.ts +5 -17
- package/dist/test/connection/index.spec.d.ts +0 -2
- package/dist/test/connection/index.spec.d.ts.map +0 -1
- package/dist/test/connection/index.spec.js +0 -71
- package/dist/test/connection/index.spec.js.map +0 -1
- package/dist/test/crypto/index.spec.d.ts +0 -2
- package/dist/test/crypto/index.spec.d.ts.map +0 -1
- package/dist/test/crypto/index.spec.js +0 -11
- package/dist/test/crypto/index.spec.js.map +0 -1
- package/dist/test/crypto/mock-crypto.d.ts +0 -4
- package/dist/test/crypto/mock-crypto.d.ts.map +0 -1
- package/dist/test/crypto/mock-crypto.js +0 -93
- package/dist/test/crypto/mock-crypto.js.map +0 -1
- package/dist/test/peer-discovery/index.spec.d.ts +0 -2
- package/dist/test/peer-discovery/index.spec.d.ts.map +0 -1
- package/dist/test/peer-discovery/index.spec.js +0 -18
- package/dist/test/peer-discovery/index.spec.js.map +0 -1
- package/dist/test/peer-discovery/mock-discovery.d.ts +0 -20
- package/dist/test/peer-discovery/mock-discovery.d.ts.map +0 -1
- package/dist/test/peer-discovery/mock-discovery.js +0 -39
- package/dist/test/peer-discovery/mock-discovery.js.map +0 -1
- package/dist/test/topology/mock-peer-store.d.ts +0 -12
- package/dist/test/topology/mock-peer-store.d.ts.map +0 -1
- package/dist/test/topology/mock-peer-store.js +0 -18
- package/dist/test/topology/mock-peer-store.js.map +0 -1
- package/dist/test/topology/multicodec-topology.spec.d.ts +0 -2
- package/dist/test/topology/multicodec-topology.spec.d.ts.map +0 -1
- package/dist/test/topology/multicodec-topology.spec.js +0 -45
- package/dist/test/topology/multicodec-topology.spec.js.map +0 -1
- package/dist/test/topology/topology.spec.d.ts +0 -2
- package/dist/test/topology/topology.spec.d.ts.map +0 -1
- package/dist/test/topology/topology.spec.js +0 -21
- package/dist/test/topology/topology.spec.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/connection/connection.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;+BAEzC,UAAU,UAAU,CAAC;AAA3C,
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/connection/connection.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;+BAEzC,UAAU,UAAU,CAAC;AAA3C,wBA0KC"}
|
|
@@ -13,9 +13,7 @@ export default (test) => {
|
|
|
13
13
|
});
|
|
14
14
|
it('should have properties set', () => {
|
|
15
15
|
expect(connection.id).to.exist();
|
|
16
|
-
expect(connection.localPeer).to.exist();
|
|
17
16
|
expect(connection.remotePeer).to.exist();
|
|
18
|
-
expect(connection.localAddr).to.exist();
|
|
19
17
|
expect(connection.remoteAddr).to.exist();
|
|
20
18
|
expect(connection.stat.status).to.equal('OPEN');
|
|
21
19
|
expect(connection.stat.timeline.open).to.exist();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/connection/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,eAAe,CAAC,IAA2B,EAAE,EAAE;IAC7C,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;YAC/B,IAAI,UAAsB,CAAA;YAE1B,UAAU,CAAC,KAAK,IAAI,EAAE;gBACpB,UAAU,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;YACjC,CAAC,CAAC,CAAA;YAEF,SAAS,CAAC,KAAK,IAAI,EAAE;gBACnB,MAAM,UAAU,CAAC,KAAK,EAAE,CAAA;gBACxB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;YACvB,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;gBACpC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;gBAChC,MAAM,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/connection/connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;iCAI/B,UAAU,MAAM,CAAC;AAAzC,wBA0FC"}
|
package/dist/src/crypto/index.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { expect } from 'aegir/utils/chai.js';
|
|
2
|
-
// @ts-expect-error no types
|
|
3
|
-
import duplexPair from 'it-pair/duplex.js';
|
|
4
2
|
import { pipe } from 'it-pipe';
|
|
5
3
|
import * as PeerIdFactory from '@libp2p/peer-id-factory';
|
|
6
|
-
import
|
|
4
|
+
import all from 'it-all';
|
|
7
5
|
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
|
|
8
6
|
import peers from '../utils/peers.js';
|
|
9
7
|
import { UnexpectedPeerError } from '@libp2p/interfaces/crypto/errors';
|
|
8
|
+
import { createMaConnPair } from './utils/index.js';
|
|
10
9
|
export default (common) => {
|
|
11
10
|
describe('interface-crypto compliance tests', () => {
|
|
12
11
|
let crypto;
|
|
@@ -34,13 +33,13 @@ export default (common) => {
|
|
|
34
33
|
expect(crypto.protocol).to.be.a('string');
|
|
35
34
|
});
|
|
36
35
|
it('it wraps the provided duplex connection', async () => {
|
|
37
|
-
const [localConn, remoteConn] =
|
|
36
|
+
const [localConn, remoteConn] = createMaConnPair();
|
|
38
37
|
const [inboundResult, outboundResult] = await Promise.all([
|
|
39
38
|
crypto.secureInbound(remotePeer, localConn),
|
|
40
39
|
crypto.secureOutbound(localPeer, remoteConn, remotePeer)
|
|
41
40
|
]);
|
|
42
41
|
// Echo server
|
|
43
|
-
pipe(inboundResult.conn, inboundResult.conn);
|
|
42
|
+
void pipe(inboundResult.conn, inboundResult.conn);
|
|
44
43
|
// Send some data and collect the result
|
|
45
44
|
const input = uint8ArrayFromString('data to encrypt');
|
|
46
45
|
const result = await pipe([input], outboundResult.conn,
|
|
@@ -49,11 +48,11 @@ export default (common) => {
|
|
|
49
48
|
for await (const chunk of source) {
|
|
50
49
|
yield chunk.slice();
|
|
51
50
|
}
|
|
52
|
-
})(),
|
|
51
|
+
})(), async (source) => await all(source));
|
|
53
52
|
expect(result).to.eql([input]);
|
|
54
53
|
});
|
|
55
54
|
it('should return the remote peer id', async () => {
|
|
56
|
-
const [localConn, remoteConn] =
|
|
55
|
+
const [localConn, remoteConn] = createMaConnPair();
|
|
57
56
|
const [inboundResult, outboundResult] = await Promise.all([
|
|
58
57
|
crypto.secureInbound(remotePeer, localConn),
|
|
59
58
|
crypto.secureOutbound(localPeer, remoteConn, remotePeer)
|
|
@@ -64,7 +63,7 @@ export default (common) => {
|
|
|
64
63
|
expect(outboundResult.remotePeer.toBytes()).to.equalBytes(remotePeer.toBytes());
|
|
65
64
|
});
|
|
66
65
|
it('inbound connections should verify peer integrity if known', async () => {
|
|
67
|
-
const [localConn, remoteConn] =
|
|
66
|
+
const [localConn, remoteConn] = createMaConnPair();
|
|
68
67
|
await Promise.all([
|
|
69
68
|
crypto.secureInbound(remotePeer, localConn, mitmPeer),
|
|
70
69
|
crypto.secureOutbound(localPeer, remoteConn, remotePeer)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/crypto/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/crypto/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/crypto/utils/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAGvE,wBAAgB,gBAAgB,IAAK,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAiB9E"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { duplexPair } from 'it-pair/duplex';
|
|
2
|
+
import { Multiaddr } from '@multiformats/multiaddr';
|
|
3
|
+
export function createMaConnPair() {
|
|
4
|
+
const [local, remote] = duplexPair();
|
|
5
|
+
function duplexToMaConn(duplex) {
|
|
6
|
+
const output = {
|
|
7
|
+
...duplex,
|
|
8
|
+
close: async () => { },
|
|
9
|
+
remoteAddr: new Multiaddr('/ip4/127.0.0.1/tcp/4001'),
|
|
10
|
+
timeline: {
|
|
11
|
+
open: Date.now()
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
return output;
|
|
15
|
+
}
|
|
16
|
+
return [duplexToMaConn(local), duplexToMaConn(remote)];
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/crypto/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAInD,MAAM,UAAU,gBAAgB;IAC9B,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,UAAU,EAAc,CAAA;IAEhD,SAAS,cAAc,CAAE,MAA0B;QACjD,MAAM,MAAM,GAAwB;YAClC,GAAG,MAAM;YACT,KAAK,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YACrB,UAAU,EAAE,IAAI,SAAS,CAAC,yBAAyB,CAAC;YACpD,QAAQ,EAAE;gBACR,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;aACjB;SACF,CAAA;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAED,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA;AACxD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-test.d.ts","sourceRoot":"","sources":["../../../src/stream-muxer/base-test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base-test.d.ts","sourceRoot":"","sources":["../../../src/stream-muxer/base-test.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAe,MAAM,iCAAiC,CAAA;iCAO/D,UAAU,KAAK,EAAE,YAAY,CAAC;AAAtD,wBA2IC"}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import { expect } from 'aegir/utils/chai.js';
|
|
2
|
-
|
|
3
|
-
import pair from 'it-pair/duplex.js';
|
|
2
|
+
import { duplexPair } from 'it-pair/duplex';
|
|
4
3
|
import { pipe } from 'it-pipe';
|
|
5
|
-
import
|
|
4
|
+
import drain from 'it-drain';
|
|
5
|
+
import map from 'it-map';
|
|
6
|
+
import all from 'it-all';
|
|
6
7
|
import defer from 'p-defer';
|
|
8
|
+
import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
|
|
9
|
+
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
|
|
7
10
|
import { isValidTick } from '../transport/utils/index.js';
|
|
8
|
-
function close(stream) {
|
|
9
|
-
return pipe([], stream,
|
|
11
|
+
async function close(stream) {
|
|
12
|
+
return await pipe([], stream, drain);
|
|
10
13
|
}
|
|
11
14
|
export default (common) => {
|
|
12
15
|
describe('base', () => {
|
|
13
16
|
it('Open a stream from the dialer', async () => {
|
|
14
|
-
const p =
|
|
17
|
+
const p = duplexPair();
|
|
15
18
|
const dialer = await common.setup();
|
|
16
19
|
const onStreamPromise = defer();
|
|
17
20
|
const onStreamEndPromise = defer();
|
|
@@ -23,8 +26,8 @@ export default (common) => {
|
|
|
23
26
|
onStreamEndPromise.resolve(stream);
|
|
24
27
|
}
|
|
25
28
|
});
|
|
26
|
-
pipe(p[0], dialer, p[0]);
|
|
27
|
-
pipe(p[1], listener, p[1]);
|
|
29
|
+
void pipe(p[0], dialer.newStream('/test/stream'), p[0]);
|
|
30
|
+
void pipe(p[1], listener.newStream('/test/stream'), p[1]);
|
|
28
31
|
const conn = dialer.newStream();
|
|
29
32
|
expect(dialer.streams).to.include(conn);
|
|
30
33
|
expect(isValidTick(conn.timeline.open)).to.equal(true);
|
|
@@ -32,7 +35,7 @@ export default (common) => {
|
|
|
32
35
|
expect(isValidTick(stream.timeline.open)).to.equal(true);
|
|
33
36
|
// Make sure the stream is being tracked
|
|
34
37
|
expect(listener.streams).to.include(stream);
|
|
35
|
-
close(stream);
|
|
38
|
+
void close(stream);
|
|
36
39
|
// Make sure stream is closed properly
|
|
37
40
|
const endedStream = await onStreamEndPromise.promise;
|
|
38
41
|
expect(listener.streams).to.not.include(endedStream);
|
|
@@ -47,7 +50,7 @@ export default (common) => {
|
|
|
47
50
|
expect(listener.streams).to.have.length(0);
|
|
48
51
|
});
|
|
49
52
|
it('Open a stream from the listener', async () => {
|
|
50
|
-
const p =
|
|
53
|
+
const p = duplexPair();
|
|
51
54
|
const onStreamPromise = defer();
|
|
52
55
|
const dialer = await common.setup({
|
|
53
56
|
onStream: stream => {
|
|
@@ -55,8 +58,8 @@ export default (common) => {
|
|
|
55
58
|
}
|
|
56
59
|
});
|
|
57
60
|
const listener = await common.setup();
|
|
58
|
-
pipe(p[0], dialer, p[0]);
|
|
59
|
-
pipe(p[1], listener, p[1]);
|
|
61
|
+
void pipe(p[0], dialer.newStream('/test/stream'), p[0]);
|
|
62
|
+
void pipe(p[1], listener.newStream('/test/stream'), p[1]);
|
|
60
63
|
const conn = listener.newStream();
|
|
61
64
|
const stream = await onStreamPromise.promise;
|
|
62
65
|
expect(isValidTick(stream.timeline.open)).to.equal(true);
|
|
@@ -66,7 +69,7 @@ export default (common) => {
|
|
|
66
69
|
await close(conn);
|
|
67
70
|
});
|
|
68
71
|
it('Open a stream on both sides', async () => {
|
|
69
|
-
const p =
|
|
72
|
+
const p = duplexPair();
|
|
70
73
|
const onDialerStreamPromise = defer();
|
|
71
74
|
const onListenerStreamPromise = defer();
|
|
72
75
|
const dialer = await common.setup({
|
|
@@ -79,8 +82,8 @@ export default (common) => {
|
|
|
79
82
|
onListenerStreamPromise.resolve(stream);
|
|
80
83
|
}
|
|
81
84
|
});
|
|
82
|
-
pipe(p[0], dialer, p[0]);
|
|
83
|
-
pipe(p[1], listener, p[1]);
|
|
85
|
+
void pipe(p[0], dialer.newStream('/test/stream'), p[0]);
|
|
86
|
+
void pipe(p[1], listener.newStream('/test/stream'), p[1]);
|
|
84
87
|
const listenerConn = listener.newStream();
|
|
85
88
|
const dialerConn = dialer.newStream();
|
|
86
89
|
const dialerStream = await onDialerStreamPromise.promise;
|
|
@@ -91,8 +94,8 @@ export default (common) => {
|
|
|
91
94
|
await close(listenerConn);
|
|
92
95
|
});
|
|
93
96
|
it('Open a stream on one side, write, open a stream on the other side', async () => {
|
|
94
|
-
const toString = map((
|
|
95
|
-
const p =
|
|
97
|
+
const toString = (source) => map(source, (u) => uint8ArrayToString(u));
|
|
98
|
+
const p = duplexPair();
|
|
96
99
|
const onDialerStreamPromise = defer();
|
|
97
100
|
const onListenerStreamPromise = defer();
|
|
98
101
|
const dialer = await common.setup({
|
|
@@ -105,17 +108,17 @@ export default (common) => {
|
|
|
105
108
|
onListenerStreamPromise.resolve(stream);
|
|
106
109
|
}
|
|
107
110
|
});
|
|
108
|
-
pipe(p[0], dialer, p[0]);
|
|
109
|
-
pipe(p[1], listener, p[1]);
|
|
111
|
+
void pipe(p[0], dialer.newStream('/test/stream'), p[0]);
|
|
112
|
+
void pipe(p[1], listener.newStream('/test/stream'), p[1]);
|
|
110
113
|
const dialerConn = dialer.newStream();
|
|
111
114
|
const listenerConn = listener.newStream();
|
|
112
|
-
pipe(['hey'], dialerConn);
|
|
113
|
-
pipe(['hello'], listenerConn);
|
|
115
|
+
void pipe([uint8ArrayFromString('hey')], dialerConn);
|
|
116
|
+
void pipe([uint8ArrayFromString('hello')], listenerConn);
|
|
114
117
|
const listenerStream = await onListenerStreamPromise.promise;
|
|
115
118
|
const dialerStream = await onDialerStreamPromise.promise;
|
|
116
|
-
const listenerChunks = await pipe(listenerStream, toString,
|
|
119
|
+
const listenerChunks = await pipe(listenerStream, toString, async (source) => await all(source));
|
|
117
120
|
expect(listenerChunks).to.be.eql(['hey']);
|
|
118
|
-
const dialerChunks = await pipe(dialerStream, toString,
|
|
121
|
+
const dialerChunks = await pipe(dialerStream, toString, async (source) => await all(source));
|
|
119
122
|
expect(dialerChunks).to.be.eql(['hello']);
|
|
120
123
|
});
|
|
121
124
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-test.js","sourceRoot":"","sources":["../../../src/stream-muxer/base-test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,
|
|
1
|
+
{"version":3,"file":"base-test.js","sourceRoot":"","sources":["../../../src/stream-muxer/base-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"close-test.d.ts","sourceRoot":"","sources":["../../../src/stream-muxer/close-test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"close-test.d.ts","sourceRoot":"","sources":["../../../src/stream-muxer/close-test.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;iCAoBlD,UAAU,KAAK,EAAE,YAAY,CAAC;AAAtD,wBA8FC"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
/* eslint max-nested-callbacks: ["error", 8] */
|
|
2
|
-
// @ts-expect-error no types
|
|
3
|
-
import pair from 'it-pair/duplex.js';
|
|
4
2
|
import { pipe } from 'it-pipe';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import AbortController from 'abort-controller';
|
|
3
|
+
import { duplexPair } from 'it-pair/duplex';
|
|
4
|
+
import { abortableSource, abortableDuplex } from 'abortable-iterator';
|
|
8
5
|
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
|
|
6
|
+
import drain from 'it-drain';
|
|
9
7
|
async function pause(ms) {
|
|
10
8
|
return await new Promise(resolve => setTimeout(resolve, ms));
|
|
11
9
|
}
|
|
@@ -38,15 +36,15 @@ export default (common) => {
|
|
|
38
36
|
const mockUpgrade = async (maConn) => {
|
|
39
37
|
const muxer = await common.setup({
|
|
40
38
|
onStream: (stream) => {
|
|
41
|
-
pipe(stream, stream);
|
|
39
|
+
void pipe(stream, stream);
|
|
42
40
|
}
|
|
43
41
|
});
|
|
44
|
-
pipe(maConn, muxer, maConn);
|
|
42
|
+
pipe(maConn, muxer.newStream('/test/stream'), maConn);
|
|
45
43
|
return mockConn(muxer);
|
|
46
44
|
};
|
|
47
|
-
const [local, remote] =
|
|
45
|
+
const [local, remote] = duplexPair();
|
|
48
46
|
const controller = new AbortController();
|
|
49
|
-
const abortableRemote =
|
|
47
|
+
const abortableRemote = abortableDuplex(remote, controller.signal, {
|
|
50
48
|
returnOnAbort: true
|
|
51
49
|
});
|
|
52
50
|
await mockUpgrade(abortableRemote);
|
|
@@ -55,21 +53,21 @@ export default (common) => {
|
|
|
55
53
|
const s2 = await dialerConn.newStream(['']);
|
|
56
54
|
// close the remote in a bit
|
|
57
55
|
setTimeout(() => controller.abort(), 50);
|
|
58
|
-
const s1Result = pipe(infiniteRandom, s1,
|
|
59
|
-
const s2Result = pipe(infiniteRandom, s2,
|
|
56
|
+
const s1Result = pipe(infiniteRandom, s1.stream, drain);
|
|
57
|
+
const s2Result = pipe(infiniteRandom, s2.stream, drain);
|
|
60
58
|
// test is complete when all muxed streams have closed
|
|
61
59
|
await s1Result;
|
|
62
60
|
await s2Result;
|
|
63
61
|
});
|
|
64
62
|
it('closing one of the muxed streams doesn\'t close others', async () => {
|
|
65
|
-
const p =
|
|
63
|
+
const p = duplexPair();
|
|
66
64
|
const dialer = await common.setup();
|
|
67
65
|
// Listener is echo server :)
|
|
68
66
|
const listener = await common.setup({
|
|
69
|
-
onStream: (stream) => pipe(stream, stream)
|
|
67
|
+
onStream: async (stream) => await pipe(stream, stream)
|
|
70
68
|
});
|
|
71
|
-
pipe(p[0], dialer, p[0]);
|
|
72
|
-
pipe(p[1], listener, p[1]);
|
|
69
|
+
void pipe(p[0], dialer.newStream('/test/stream'), p[0]);
|
|
70
|
+
void pipe(p[1], listener.newStream('/test/stream'), p[1]);
|
|
73
71
|
const stream = dialer.newStream();
|
|
74
72
|
const streams = Array.from(Array(5), () => dialer.newStream());
|
|
75
73
|
let closed = false;
|
|
@@ -78,8 +76,8 @@ export default (common) => {
|
|
|
78
76
|
const controller = new AbortController();
|
|
79
77
|
controllers.push(controller);
|
|
80
78
|
try {
|
|
81
|
-
const abortableRand =
|
|
82
|
-
await pipe(abortableRand, stream,
|
|
79
|
+
const abortableRand = abortableSource(infiniteRandom, controller.signal, { abortCode: 'ERR_TEST_ABORT' });
|
|
80
|
+
await pipe(abortableRand, stream, drain);
|
|
83
81
|
}
|
|
84
82
|
catch (err) {
|
|
85
83
|
if (err.code !== 'ERR_TEST_ABORT')
|
|
@@ -90,7 +88,7 @@ export default (common) => {
|
|
|
90
88
|
});
|
|
91
89
|
// Pause, and then send some data and close the first stream
|
|
92
90
|
await pause(50);
|
|
93
|
-
await pipe([randomBuffer()], stream,
|
|
91
|
+
await pipe([randomBuffer()], stream, drain);
|
|
94
92
|
closed = true;
|
|
95
93
|
// Abort all the other streams later
|
|
96
94
|
await pause(50);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"close-test.js","sourceRoot":"","sources":["../../../src/stream-muxer/close-test.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,
|
|
1
|
+
{"version":3,"file":"close-test.js","sourceRoot":"","sources":["../../../src/stream-muxer/close-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawner.d.ts","sourceRoot":"","sources":["../../../src/stream-muxer/spawner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spawner.d.ts","sourceRoot":"","sources":["../../../src/stream-muxer/spawner.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;8EAEX,QAAQ,KAAK,CAAC,YAAY,MAAM,QAAQ,MAAM;AAA7G,wBA2CC"}
|
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
import { expect } from 'aegir/utils/chai.js';
|
|
2
|
-
|
|
3
|
-
import pair from 'it-pair/duplex.js';
|
|
2
|
+
import { duplexPair } from 'it-pair/duplex';
|
|
4
3
|
import { pipe } from 'it-pipe';
|
|
5
4
|
import pLimit from 'p-limit';
|
|
6
|
-
import {
|
|
5
|
+
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
|
|
6
|
+
import drain from 'it-drain';
|
|
7
|
+
import all from 'it-all';
|
|
7
8
|
export default async (createMuxer, nStreams, nMsg, limit) => {
|
|
8
|
-
const [dialerSocket, listenerSocket] =
|
|
9
|
-
const msg = 'simple msg';
|
|
9
|
+
const [dialerSocket, listenerSocket] = duplexPair();
|
|
10
|
+
const msg = uint8ArrayFromString('simple msg');
|
|
10
11
|
const listener = await createMuxer({
|
|
11
12
|
onStream: async (stream) => {
|
|
12
|
-
await pipe(stream,
|
|
13
|
-
pipe([], stream);
|
|
13
|
+
await pipe(stream, drain);
|
|
14
|
+
void pipe([], stream);
|
|
14
15
|
}
|
|
15
16
|
});
|
|
16
17
|
const dialer = await createMuxer();
|
|
17
|
-
pipe(listenerSocket, listener, listenerSocket);
|
|
18
|
-
pipe(dialerSocket, dialer, dialerSocket);
|
|
18
|
+
void pipe(listenerSocket, listener.newStream('/test/stream'), listenerSocket);
|
|
19
|
+
void pipe(dialerSocket, dialer.newStream('/test/stream'), dialerSocket);
|
|
19
20
|
const spawnStream = async () => {
|
|
20
21
|
const stream = dialer.newStream();
|
|
21
22
|
expect(stream).to.exist; // eslint-disable-line
|
|
22
|
-
const res = await pipe((function* () {
|
|
23
|
+
const res = await pipe((async function* () {
|
|
23
24
|
for (let i = 0; i < nMsg; i++) {
|
|
24
|
-
yield
|
|
25
|
+
yield msg;
|
|
25
26
|
}
|
|
26
|
-
}
|
|
27
|
+
}()), stream, async (source) => await all(source));
|
|
27
28
|
expect(res).to.be.eql([]);
|
|
28
29
|
};
|
|
29
30
|
const limiter = pLimit(limit ?? Infinity);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawner.js","sourceRoot":"","sources":["../../../src/stream-muxer/spawner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,
|
|
1
|
+
{"version":3,"file":"spawner.js","sourceRoot":"","sources":["../../../src/stream-muxer/spawner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,OAAO,GAAG,MAAM,QAAQ,CAAA;AAGxB,eAAe,KAAK,EAAE,WAAuD,EAAE,QAAgB,EAAE,IAAY,EAAE,KAAc,EAAE,EAAE;IAC/H,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,GAAG,UAAU,EAAc,CAAA;IAE/D,MAAM,GAAG,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAA;IAE9C,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC;QACjC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACzB,MAAM,IAAI,CACR,MAAM,EACN,KAAK,CACN,CAAA;YAED,KAAK,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QACvB,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,MAAM,WAAW,EAAE,CAAA;IAElC,KAAK,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC,CAAA;IAC7E,KAAK,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,YAAY,CAAC,CAAA;IAEvE,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;QACjC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAA,CAAC,sBAAsB;QAE9C,MAAM,GAAG,GAAG,MAAM,IAAI,CACpB,CAAC,KAAK,SAAU,CAAC;YACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC7B,MAAM,GAAG,CAAA;aACV;QACH,CAAC,EAAE,CAAC,EACJ,MAAM,EACN,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,CACpC,CAAA;QAED,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC3B,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAA;IAEzC,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC,CACxF,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dial-test.d.ts","sourceRoot":"","sources":["../../../src/transport/dial-test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dial-test.d.ts","sourceRoot":"","sources":["../../../src/transport/dial-test.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAa,MAAM,YAAY,CAAA;iCAGrD,UAAU,qBAAqB,EAAE,SAAS,CAAC;AAAnE,wBAmFC"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { expect } from 'aegir/utils/chai.js';
|
|
2
2
|
import { isValidTick, mockUpgrader } from './utils/index.js';
|
|
3
|
-
|
|
4
|
-
import
|
|
5
|
-
import { collect } from 'streaming-iterables';
|
|
3
|
+
import { goodbye } from 'it-goodbye';
|
|
4
|
+
import all from 'it-all';
|
|
6
5
|
import { pipe } from 'it-pipe';
|
|
7
|
-
import AbortController from 'abort-controller';
|
|
8
6
|
import { AbortError } from '@libp2p/interfaces/errors';
|
|
9
7
|
import sinon from 'sinon';
|
|
8
|
+
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
|
|
10
9
|
export default (common) => {
|
|
11
10
|
describe('dial', () => {
|
|
12
11
|
const upgrader = mockUpgrader();
|
|
@@ -33,12 +32,12 @@ export default (common) => {
|
|
|
33
32
|
const upgradeSpy = sinon.spy(upgrader, 'upgradeOutbound');
|
|
34
33
|
const conn = await transport.dial(addrs[0]);
|
|
35
34
|
const { stream } = await conn.newStream(['/hello']);
|
|
36
|
-
const s = goodbye({ source: ['hey'], sink:
|
|
35
|
+
const s = goodbye({ source: [uint8ArrayFromString('hey')], sink: async (source) => await all(source) });
|
|
37
36
|
const result = await pipe(s, stream, s);
|
|
38
37
|
expect(upgradeSpy.callCount).to.equal(1);
|
|
39
38
|
await expect(upgradeSpy.getCall(0).returnValue).to.eventually.equal(conn);
|
|
40
39
|
expect(result.length).to.equal(1);
|
|
41
|
-
expect(result[0]
|
|
40
|
+
expect(result[0]).to.equalBytes(uint8ArrayFromString('hey'));
|
|
42
41
|
await conn.close();
|
|
43
42
|
});
|
|
44
43
|
it('can close connections', async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dial-test.js","sourceRoot":"","sources":["../../../src/transport/dial-test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC5D,
|
|
1
|
+
{"version":3,"file":"dial-test.js","sourceRoot":"","sources":["../../../src/transport/dial-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listen-test.d.ts","sourceRoot":"","sources":["../../../src/transport/listen-test.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;iCAI1C,UAAU,qBAAqB,EAAE,SAAS,CAAC;AAAnE,
|
|
1
|
+
{"version":3,"file":"listen-test.d.ts","sourceRoot":"","sources":["../../../src/transport/listen-test.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;iCAI1C,UAAU,qBAAqB,EAAE,SAAS,CAAC;AAAnE,wBA6IC"}
|