@libp2p/interface-compliance-tests 0.0.0 → 0.2.0
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/LICENSE +4 -0
- package/README.md +25 -0
- package/dist/src/connection/connection.d.ts +5 -0
- package/dist/src/connection/connection.d.ts.map +1 -0
- package/dist/src/connection/connection.js +148 -0
- package/dist/src/connection/connection.js.map +1 -0
- package/dist/src/connection/index.d.ts +5 -0
- package/dist/src/connection/index.d.ts.map +1 -0
- package/dist/src/connection/index.js +5 -0
- package/dist/src/connection/index.js.map +1 -0
- package/dist/src/crypto/index.d.ts +5 -0
- package/dist/src/crypto/index.d.ts.map +1 -0
- package/dist/src/crypto/index.js +78 -0
- package/dist/src/crypto/index.js.map +1 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/peer-discovery/index.d.ts +6 -0
- package/dist/src/peer-discovery/index.d.ts.map +1 -0
- package/dist/src/peer-discovery/index.js +63 -0
- package/dist/src/peer-discovery/index.js.map +1 -0
- package/dist/src/pubsub/api.d.ts +6 -0
- package/dist/src/pubsub/api.d.ts.map +1 -0
- package/dist/src/pubsub/api.js +65 -0
- package/dist/src/pubsub/api.js.map +1 -0
- package/dist/src/pubsub/connection-handlers.d.ts +6 -0
- package/dist/src/pubsub/connection-handlers.d.ts.map +1 -0
- package/dist/src/pubsub/connection-handlers.js +279 -0
- package/dist/src/pubsub/connection-handlers.js.map +1 -0
- package/dist/src/pubsub/emit-self.d.ts +6 -0
- package/dist/src/pubsub/emit-self.d.ts.map +1 -0
- package/dist/src/pubsub/emit-self.js +51 -0
- package/dist/src/pubsub/emit-self.js.map +1 -0
- package/dist/src/pubsub/index.d.ts +6 -0
- package/dist/src/pubsub/index.d.ts.map +1 -0
- package/dist/src/pubsub/index.js +17 -0
- package/dist/src/pubsub/index.js.map +1 -0
- package/dist/src/pubsub/messages.d.ts +6 -0
- package/dist/src/pubsub/messages.d.ts.map +1 -0
- package/dist/src/pubsub/messages.js +93 -0
- package/dist/src/pubsub/messages.js.map +1 -0
- package/dist/src/pubsub/multiple-nodes.d.ts +6 -0
- package/dist/src/pubsub/multiple-nodes.d.ts.map +1 -0
- package/dist/src/pubsub/multiple-nodes.js +283 -0
- package/dist/src/pubsub/multiple-nodes.js.map +1 -0
- package/dist/src/pubsub/two-nodes.d.ts +6 -0
- package/dist/src/pubsub/two-nodes.d.ts.map +1 -0
- package/dist/src/pubsub/two-nodes.js +127 -0
- package/dist/src/pubsub/two-nodes.js.map +1 -0
- package/dist/src/pubsub/utils.d.ts +3 -0
- package/dist/src/pubsub/utils.d.ts.map +1 -0
- package/dist/src/pubsub/utils.js +11 -0
- package/dist/src/pubsub/utils.js.map +1 -0
- package/dist/src/record/index.d.ts +5 -0
- package/dist/src/record/index.d.ts.map +1 -0
- package/dist/src/record/index.js +25 -0
- package/dist/src/record/index.js.map +1 -0
- package/dist/src/stream-muxer/base-test.d.ts +5 -0
- package/dist/src/stream-muxer/base-test.d.ts.map +1 -0
- package/dist/src/stream-muxer/base-test.js +123 -0
- package/dist/src/stream-muxer/base-test.js.map +1 -0
- package/dist/src/stream-muxer/close-test.d.ts +5 -0
- package/dist/src/stream-muxer/close-test.d.ts.map +1 -0
- package/dist/src/stream-muxer/close-test.js +103 -0
- package/dist/src/stream-muxer/close-test.js.map +1 -0
- package/dist/src/stream-muxer/index.d.ts +5 -0
- package/dist/src/stream-muxer/index.d.ts.map +1 -0
- package/dist/src/stream-muxer/index.js +13 -0
- package/dist/src/stream-muxer/index.js.map +1 -0
- package/dist/src/stream-muxer/mega-stress-test.d.ts +5 -0
- package/dist/src/stream-muxer/mega-stress-test.d.ts.map +1 -0
- package/dist/src/stream-muxer/mega-stress-test.js +8 -0
- package/dist/src/stream-muxer/mega-stress-test.js.map +1 -0
- package/dist/src/stream-muxer/spawner.d.ts +4 -0
- package/dist/src/stream-muxer/spawner.d.ts.map +1 -0
- package/dist/src/stream-muxer/spawner.js +32 -0
- package/dist/src/stream-muxer/spawner.js.map +1 -0
- package/dist/src/stream-muxer/stress-test.d.ts +5 -0
- package/dist/src/stream-muxer/stress-test.d.ts.map +1 -0
- package/dist/src/stream-muxer/stress-test.js +21 -0
- package/dist/src/stream-muxer/stress-test.js.map +1 -0
- package/dist/src/topology/multicodec-topology.d.ts +5 -0
- package/dist/src/topology/multicodec-topology.d.ts.map +1 -0
- package/dist/src/topology/multicodec-topology.js +109 -0
- package/dist/src/topology/multicodec-topology.js.map +1 -0
- package/dist/src/topology/topology.d.ts +5 -0
- package/dist/src/topology/topology.d.ts.map +1 -0
- package/dist/src/topology/topology.js +29 -0
- package/dist/src/topology/topology.js.map +1 -0
- package/dist/src/transport/dial-test.d.ts +5 -0
- package/dist/src/transport/dial-test.d.ts.map +1 -0
- package/dist/src/transport/dial-test.js +78 -0
- package/dist/src/transport/dial-test.js.map +1 -0
- package/dist/src/transport/filter-test.d.ts +5 -0
- package/dist/src/transport/filter-test.d.ts.map +1 -0
- package/dist/src/transport/filter-test.js +19 -0
- package/dist/src/transport/filter-test.js.map +1 -0
- package/dist/src/transport/index.d.ts +18 -0
- package/dist/src/transport/index.d.ts.map +1 -0
- package/dist/src/transport/index.js +11 -0
- package/dist/src/transport/index.js.map +1 -0
- package/dist/src/transport/listen-test.d.ts +5 -0
- package/dist/src/transport/listen-test.d.ts.map +1 -0
- package/dist/src/transport/listen-test.js +116 -0
- package/dist/src/transport/listen-test.js.map +1 -0
- package/dist/src/transport/utils/index.d.ts +8 -0
- package/dist/src/transport/utils/index.d.ts.map +1 -0
- package/dist/src/transport/utils/index.js +104 -0
- package/dist/src/transport/utils/index.js.map +1 -0
- package/dist/src/utils/peers.d.ts +7 -0
- package/dist/src/utils/peers.d.ts.map +1 -0
- package/dist/src/utils/peers.js +26 -0
- package/dist/src/utils/peers.js.map +1 -0
- package/dist/test/connection/index.spec.d.ts +2 -0
- package/dist/test/connection/index.spec.d.ts.map +1 -0
- package/dist/test/connection/index.spec.js +71 -0
- package/dist/test/connection/index.spec.js.map +1 -0
- package/dist/test/crypto/index.spec.d.ts +2 -0
- package/dist/test/crypto/index.spec.d.ts.map +1 -0
- package/dist/test/crypto/index.spec.js +11 -0
- package/dist/test/crypto/index.spec.js.map +1 -0
- package/dist/test/crypto/mock-crypto.d.ts +4 -0
- package/dist/test/crypto/mock-crypto.d.ts.map +1 -0
- package/dist/test/crypto/mock-crypto.js +93 -0
- package/dist/test/crypto/mock-crypto.js.map +1 -0
- package/dist/test/peer-discovery/index.spec.d.ts +2 -0
- package/dist/test/peer-discovery/index.spec.d.ts.map +1 -0
- package/dist/test/peer-discovery/index.spec.js +18 -0
- package/dist/test/peer-discovery/index.spec.js.map +1 -0
- package/dist/test/peer-discovery/mock-discovery.d.ts +20 -0
- package/dist/test/peer-discovery/mock-discovery.d.ts.map +1 -0
- package/dist/test/peer-discovery/mock-discovery.js +39 -0
- package/dist/test/peer-discovery/mock-discovery.js.map +1 -0
- package/dist/test/topology/mock-peer-store.d.ts +12 -0
- package/dist/test/topology/mock-peer-store.d.ts.map +1 -0
- package/dist/test/topology/mock-peer-store.js +18 -0
- package/dist/test/topology/mock-peer-store.js.map +1 -0
- package/dist/test/topology/multicodec-topology.spec.d.ts +2 -0
- package/dist/test/topology/multicodec-topology.spec.d.ts.map +1 -0
- package/dist/test/topology/multicodec-topology.spec.js +45 -0
- package/dist/test/topology/multicodec-topology.spec.js.map +1 -0
- package/dist/test/topology/topology.spec.d.ts +2 -0
- package/dist/test/topology/topology.spec.d.ts.map +1 -0
- package/dist/test/topology/topology.spec.js +21 -0
- package/dist/test/topology/topology.spec.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +120 -4
- package/src/connection/README.md +256 -0
- package/src/connection/connection.ts +178 -0
- package/src/connection/index.ts +7 -0
- package/src/crypto/index.ts +104 -0
- package/src/index.ts +5 -0
- package/src/peer-discovery/index.ts +87 -0
- package/src/pubsub/api.ts +89 -0
- package/src/pubsub/connection-handlers.ts +356 -0
- package/src/pubsub/emit-self.ts +67 -0
- package/src/pubsub/index.ts +20 -0
- package/src/pubsub/messages.ts +111 -0
- package/src/pubsub/multiple-nodes.ts +353 -0
- package/src/pubsub/two-nodes.ts +175 -0
- package/src/pubsub/utils.ts +13 -0
- package/src/record/index.ts +32 -0
- package/src/stream-muxer/base-test.ts +154 -0
- package/src/stream-muxer/close-test.ts +124 -0
- package/src/stream-muxer/index.ts +15 -0
- package/src/stream-muxer/mega-stress-test.ts +11 -0
- package/src/stream-muxer/spawner.ts +52 -0
- package/src/stream-muxer/stress-test.ts +24 -0
- package/src/topology/multicodec-topology.ts +136 -0
- package/src/topology/topology.ts +38 -0
- package/src/transport/dial-test.ts +98 -0
- package/src/transport/filter-test.ts +26 -0
- package/src/transport/index.ts +29 -0
- package/src/transport/listen-test.ts +152 -0
- package/src/transport/utils/index.ts +123 -0
- package/src/utils/peers.ts +25 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { expect } from 'aegir/utils/chai.js';
|
|
2
|
+
import { isValidTick, mockUpgrader } from './utils/index.js';
|
|
3
|
+
// @ts-expect-error no types
|
|
4
|
+
import goodbye from 'it-goodbye';
|
|
5
|
+
import { collect } from 'streaming-iterables';
|
|
6
|
+
import { pipe } from 'it-pipe';
|
|
7
|
+
import AbortController from 'abort-controller';
|
|
8
|
+
import { AbortError } from '@libp2p/interfaces/errors';
|
|
9
|
+
import sinon from 'sinon';
|
|
10
|
+
export default (common) => {
|
|
11
|
+
describe('dial', () => {
|
|
12
|
+
const upgrader = mockUpgrader();
|
|
13
|
+
let addrs;
|
|
14
|
+
let transport;
|
|
15
|
+
let connector;
|
|
16
|
+
let listener;
|
|
17
|
+
before(async () => {
|
|
18
|
+
({ addrs, transport, connector } = await common.setup({ upgrader }));
|
|
19
|
+
});
|
|
20
|
+
after(async () => {
|
|
21
|
+
await common.teardown();
|
|
22
|
+
});
|
|
23
|
+
beforeEach(async () => {
|
|
24
|
+
listener = transport.createListener({});
|
|
25
|
+
return await listener.listen(addrs[0]);
|
|
26
|
+
});
|
|
27
|
+
afterEach(async () => {
|
|
28
|
+
sinon.restore();
|
|
29
|
+
connector.restore();
|
|
30
|
+
return await listener.close();
|
|
31
|
+
});
|
|
32
|
+
it('simple', async () => {
|
|
33
|
+
const upgradeSpy = sinon.spy(upgrader, 'upgradeOutbound');
|
|
34
|
+
const conn = await transport.dial(addrs[0]);
|
|
35
|
+
const { stream } = await conn.newStream(['/hello']);
|
|
36
|
+
const s = goodbye({ source: ['hey'], sink: collect });
|
|
37
|
+
const result = await pipe(s, stream, s);
|
|
38
|
+
expect(upgradeSpy.callCount).to.equal(1);
|
|
39
|
+
await expect(upgradeSpy.getCall(0).returnValue).to.eventually.equal(conn);
|
|
40
|
+
expect(result.length).to.equal(1);
|
|
41
|
+
expect(result[0].toString()).to.equal('hey');
|
|
42
|
+
await conn.close();
|
|
43
|
+
});
|
|
44
|
+
it('can close connections', async () => {
|
|
45
|
+
const upgradeSpy = sinon.spy(upgrader, 'upgradeOutbound');
|
|
46
|
+
const conn = await transport.dial(addrs[0]);
|
|
47
|
+
expect(upgradeSpy.callCount).to.equal(1);
|
|
48
|
+
await expect(upgradeSpy.getCall(0).returnValue).to.eventually.equal(conn);
|
|
49
|
+
await conn.close();
|
|
50
|
+
expect(isValidTick(conn.stat.timeline.close)).to.equal(true);
|
|
51
|
+
});
|
|
52
|
+
it('to non existent listener', async () => {
|
|
53
|
+
const upgradeSpy = sinon.spy(upgrader, 'upgradeOutbound');
|
|
54
|
+
await expect(transport.dial(addrs[1])).to.eventually.be.rejected();
|
|
55
|
+
expect(upgradeSpy.callCount).to.equal(0);
|
|
56
|
+
});
|
|
57
|
+
it('abort before dialing throws AbortError', async () => {
|
|
58
|
+
const upgradeSpy = sinon.spy(upgrader, 'upgradeOutbound');
|
|
59
|
+
const controller = new AbortController();
|
|
60
|
+
controller.abort();
|
|
61
|
+
const conn = transport.dial(addrs[0], { signal: controller.signal });
|
|
62
|
+
await expect(conn).to.eventually.be.rejected().with.property('code', AbortError.code);
|
|
63
|
+
expect(upgradeSpy.callCount).to.equal(0);
|
|
64
|
+
});
|
|
65
|
+
it('abort while dialing throws AbortError', async () => {
|
|
66
|
+
const upgradeSpy = sinon.spy(upgrader, 'upgradeOutbound');
|
|
67
|
+
// Add a delay to connect() so that we can abort while the dial is in
|
|
68
|
+
// progress
|
|
69
|
+
connector.delay(100);
|
|
70
|
+
const controller = new AbortController();
|
|
71
|
+
const conn = transport.dial(addrs[0], { signal: controller.signal });
|
|
72
|
+
setTimeout(() => controller.abort(), 50);
|
|
73
|
+
await expect(conn).to.eventually.be.rejected().with.property('code', AbortError.code);
|
|
74
|
+
expect(upgradeSpy.callCount).to.equal(0);
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=dial-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dial-test.js","sourceRoot":"","sources":["../../../src/transport/dial-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { TestSetup } from '../index.js';
|
|
2
|
+
import type { TransportTestFixtures, SetupArgs } from './index.js';
|
|
3
|
+
declare const _default: (common: TestSetup<TransportTestFixtures, SetupArgs>) => void;
|
|
4
|
+
export default _default;
|
|
5
|
+
//# sourceMappingURL=filter-test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-test.d.ts","sourceRoot":"","sources":["../../../src/transport/filter-test.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;iCAG1C,UAAU,qBAAqB,EAAE,SAAS,CAAC;AAAnE,wBAkBC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { expect } from 'aegir/utils/chai.js';
|
|
2
|
+
import { mockUpgrader } from './utils/index.js';
|
|
3
|
+
export default (common) => {
|
|
4
|
+
describe('filter', () => {
|
|
5
|
+
let addrs;
|
|
6
|
+
let transport;
|
|
7
|
+
before(async () => {
|
|
8
|
+
({ addrs, transport } = await common.setup({ upgrader: mockUpgrader() }));
|
|
9
|
+
});
|
|
10
|
+
after(async () => {
|
|
11
|
+
await common.teardown();
|
|
12
|
+
});
|
|
13
|
+
it('filters addresses', () => {
|
|
14
|
+
const filteredAddrs = transport.filter(addrs);
|
|
15
|
+
expect(filteredAddrs).to.eql(addrs);
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=filter-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-test.js","sourceRoot":"","sources":["../../../src/transport/filter-test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAM/C,eAAe,CAAC,MAAmD,EAAE,EAAE;IACrE,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,IAAI,KAAkB,CAAA;QACtB,IAAI,SAA8B,CAAA;QAElC,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,CAAA;QAC3E,CAAC,CAAC,CAAA;QAEF,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAA;QACzB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC3B,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAC7C,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { TestSetup } from '../index.js';
|
|
2
|
+
import type { Transport, Upgrader } from '@libp2p/interfaces/transport';
|
|
3
|
+
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
4
|
+
export interface Connector {
|
|
5
|
+
delay: (ms: number) => void;
|
|
6
|
+
restore: () => void;
|
|
7
|
+
}
|
|
8
|
+
export interface TransportTestFixtures {
|
|
9
|
+
addrs: Multiaddr[];
|
|
10
|
+
transport: Transport<{}, {}>;
|
|
11
|
+
connector: Connector;
|
|
12
|
+
}
|
|
13
|
+
export interface SetupArgs {
|
|
14
|
+
upgrader: Upgrader;
|
|
15
|
+
}
|
|
16
|
+
declare const _default: (common: TestSetup<TransportTestFixtures, SetupArgs>) => void;
|
|
17
|
+
export default _default;
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transport/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC5B,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,QAAQ,CAAA;CACnB;iCAEuB,UAAU,qBAAqB,EAAE,SAAS,CAAC;AAAnE,wBAMC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import dial from './dial-test.js';
|
|
2
|
+
import listen from './listen-test.js';
|
|
3
|
+
import filter from './filter-test.js';
|
|
4
|
+
export default (common) => {
|
|
5
|
+
describe('interface-transport', () => {
|
|
6
|
+
dial(common);
|
|
7
|
+
listen(common);
|
|
8
|
+
filter(common);
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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;AAoBrC,eAAe,CAAC,MAAmD,EAAE,EAAE;IACrE,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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { TestSetup } from '../index.js';
|
|
2
|
+
import type { TransportTestFixtures, SetupArgs } from './index.js';
|
|
3
|
+
declare const _default: (common: TestSetup<TransportTestFixtures, SetupArgs>) => void;
|
|
4
|
+
export default _default;
|
|
5
|
+
//# sourceMappingURL=listen-test.d.ts.map
|
|
@@ -0,0 +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,wBAyIC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/* eslint max-nested-callbacks: ["error", 8] */
|
|
2
|
+
import { expect } from 'aegir/utils/chai.js';
|
|
3
|
+
import sinon from 'sinon';
|
|
4
|
+
import pWaitFor from 'p-wait-for';
|
|
5
|
+
import { pipe } from 'it-pipe';
|
|
6
|
+
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
|
|
7
|
+
import { isValidTick, mockUpgrader } from './utils/index.js';
|
|
8
|
+
import defer from 'p-defer';
|
|
9
|
+
export default (common) => {
|
|
10
|
+
describe('listen', () => {
|
|
11
|
+
const upgrader = mockUpgrader();
|
|
12
|
+
let addrs;
|
|
13
|
+
let transport;
|
|
14
|
+
before(async () => {
|
|
15
|
+
({ transport, addrs } = await common.setup({ upgrader }));
|
|
16
|
+
});
|
|
17
|
+
after(async () => {
|
|
18
|
+
await common.teardown();
|
|
19
|
+
});
|
|
20
|
+
afterEach(() => {
|
|
21
|
+
sinon.restore();
|
|
22
|
+
});
|
|
23
|
+
it('simple', async () => {
|
|
24
|
+
const listener = transport.createListener({}, (conn) => { });
|
|
25
|
+
await listener.listen(addrs[0]);
|
|
26
|
+
await listener.close();
|
|
27
|
+
});
|
|
28
|
+
it('close listener with connections, through timeout', async () => {
|
|
29
|
+
const upgradeSpy = sinon.spy(upgrader, 'upgradeInbound');
|
|
30
|
+
const listenerConns = [];
|
|
31
|
+
const listener = transport.createListener({}, (conn) => {
|
|
32
|
+
listenerConns.push(conn);
|
|
33
|
+
});
|
|
34
|
+
// Listen
|
|
35
|
+
await listener.listen(addrs[0]);
|
|
36
|
+
// Create two connections to the listener
|
|
37
|
+
const [conn1] = await Promise.all([
|
|
38
|
+
transport.dial(addrs[0]),
|
|
39
|
+
transport.dial(addrs[0])
|
|
40
|
+
]);
|
|
41
|
+
// Give the listener a chance to finish its upgrade
|
|
42
|
+
await pWaitFor(() => listenerConns.length === 2);
|
|
43
|
+
const { stream: stream1 } = await conn1.newStream(['/test/protocol']);
|
|
44
|
+
// Wait for the data send and close to finish
|
|
45
|
+
await Promise.all([
|
|
46
|
+
pipe([uint8ArrayFromString('Some data that is never handled')], stream1),
|
|
47
|
+
// Closer the listener (will take a couple of seconds to time out)
|
|
48
|
+
listener.close()
|
|
49
|
+
]);
|
|
50
|
+
await stream1.close();
|
|
51
|
+
await conn1.close();
|
|
52
|
+
expect(isValidTick(conn1.stat.timeline.close)).to.equal(true);
|
|
53
|
+
listenerConns.forEach(conn => {
|
|
54
|
+
expect(isValidTick(conn.stat.timeline.close)).to.equal(true);
|
|
55
|
+
});
|
|
56
|
+
// 2 dials = 2 connections upgraded
|
|
57
|
+
expect(upgradeSpy.callCount).to.equal(2);
|
|
58
|
+
});
|
|
59
|
+
it('should not handle connection if upgradeInbound throws', async () => {
|
|
60
|
+
sinon.stub(upgrader, 'upgradeInbound').throws();
|
|
61
|
+
const listener = transport.createListener(() => {
|
|
62
|
+
throw new Error('should not handle the connection if upgradeInbound throws');
|
|
63
|
+
});
|
|
64
|
+
// Listen
|
|
65
|
+
await listener.listen(addrs[0]);
|
|
66
|
+
// Create a connection to the listener
|
|
67
|
+
const conn = await transport.dial(addrs[0]);
|
|
68
|
+
await pWaitFor(() => typeof conn.stat.timeline.close === 'number');
|
|
69
|
+
await listener.close();
|
|
70
|
+
});
|
|
71
|
+
describe('events', () => {
|
|
72
|
+
it('connection', async () => {
|
|
73
|
+
const upgradeSpy = sinon.spy(upgrader, 'upgradeInbound');
|
|
74
|
+
const listener = transport.createListener({});
|
|
75
|
+
const deferred = defer();
|
|
76
|
+
let conn;
|
|
77
|
+
listener.on('connection', (c) => {
|
|
78
|
+
conn = c;
|
|
79
|
+
deferred.resolve();
|
|
80
|
+
});
|
|
81
|
+
void (async () => {
|
|
82
|
+
await listener.listen(addrs[0]);
|
|
83
|
+
await transport.dial(addrs[0]);
|
|
84
|
+
})();
|
|
85
|
+
await deferred.promise;
|
|
86
|
+
await expect(upgradeSpy.getCall(0).returnValue).to.eventually.equal(conn);
|
|
87
|
+
expect(upgradeSpy.callCount).to.equal(1);
|
|
88
|
+
await listener.close();
|
|
89
|
+
});
|
|
90
|
+
it('listening', (done) => {
|
|
91
|
+
const listener = transport.createListener({});
|
|
92
|
+
listener.on('listening', () => {
|
|
93
|
+
listener.close().then(done, done);
|
|
94
|
+
});
|
|
95
|
+
void listener.listen(addrs[0]);
|
|
96
|
+
});
|
|
97
|
+
it('error', (done) => {
|
|
98
|
+
const listener = transport.createListener({});
|
|
99
|
+
listener.on('error', (err) => {
|
|
100
|
+
expect(err).to.exist();
|
|
101
|
+
listener.close().then(done, done);
|
|
102
|
+
});
|
|
103
|
+
listener.emit('error', new Error('my err'));
|
|
104
|
+
});
|
|
105
|
+
it('close', (done) => {
|
|
106
|
+
const listener = transport.createListener({});
|
|
107
|
+
listener.on('close', done);
|
|
108
|
+
void (async () => {
|
|
109
|
+
await listener.listen(addrs[0]);
|
|
110
|
+
await listener.close();
|
|
111
|
+
})();
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
};
|
|
116
|
+
//# sourceMappingURL=listen-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listen-test.js","sourceRoot":"","sources":["../../../src/transport/listen-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Upgrader } from '@libp2p/interfaces/transport';
|
|
2
|
+
/**
|
|
3
|
+
* A tick is considered valid if it happened between now
|
|
4
|
+
* and `ms` milliseconds ago
|
|
5
|
+
*/
|
|
6
|
+
export declare function isValidTick(date?: number, ms?: number): boolean;
|
|
7
|
+
export declare function mockUpgrader(): Upgrader;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/transport/utils/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAuB,MAAM,8BAA8B,CAAA;AAOjF;;;GAGG;AACH,wBAAgB,WAAW,CAAE,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,GAAE,MAAa,WAY5D;AAED,wBAAgB,YAAY,aAoB3B"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { expect } from 'aegir/utils/chai.js';
|
|
2
|
+
// @ts-expect-error no types
|
|
3
|
+
import pair from 'it-pair';
|
|
4
|
+
import { PeerId } from '@libp2p/peer-id';
|
|
5
|
+
import * as PeerIdFactory from '@libp2p/peer-id-factory';
|
|
6
|
+
/**
|
|
7
|
+
* A tick is considered valid if it happened between now
|
|
8
|
+
* and `ms` milliseconds ago
|
|
9
|
+
*/
|
|
10
|
+
export function isValidTick(date, ms = 5000) {
|
|
11
|
+
if (date == null) {
|
|
12
|
+
throw new Error('date must be a number');
|
|
13
|
+
}
|
|
14
|
+
const now = Date.now();
|
|
15
|
+
if (date > now - ms && date <= now) {
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
export function mockUpgrader() {
|
|
21
|
+
const ensureProps = (multiaddrConnection) => {
|
|
22
|
+
['sink', 'source', 'remoteAddr', 'conn', 'timeline', 'close'].forEach(prop => {
|
|
23
|
+
expect(multiaddrConnection).to.have.property(prop);
|
|
24
|
+
});
|
|
25
|
+
expect(isValidTick(multiaddrConnection.timeline.open)).to.equal(true);
|
|
26
|
+
return multiaddrConnection;
|
|
27
|
+
};
|
|
28
|
+
const upgrader = {
|
|
29
|
+
async upgradeOutbound(multiaddrConnection) {
|
|
30
|
+
ensureProps(multiaddrConnection);
|
|
31
|
+
return await createConnection(multiaddrConnection, 'outbound');
|
|
32
|
+
},
|
|
33
|
+
async upgradeInbound(multiaddrConnection) {
|
|
34
|
+
ensureProps(multiaddrConnection);
|
|
35
|
+
return await createConnection(multiaddrConnection, 'inbound');
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
return upgrader;
|
|
39
|
+
}
|
|
40
|
+
async function createConnection(maConn, direction) {
|
|
41
|
+
const localAddr = maConn.localAddr;
|
|
42
|
+
const remoteAddr = maConn.remoteAddr;
|
|
43
|
+
if (localAddr == null) {
|
|
44
|
+
throw new Error('No localAddr found on MultiaddrConnection');
|
|
45
|
+
}
|
|
46
|
+
const localPeerIdStr = localAddr.getPeerId();
|
|
47
|
+
const remotePeerIdStr = remoteAddr.getPeerId();
|
|
48
|
+
const localPeer = localPeerIdStr != null ? PeerId.fromString(localPeerIdStr) : await PeerIdFactory.createEd25519PeerId();
|
|
49
|
+
const remotePeer = remotePeerIdStr != null ? PeerId.fromString(remotePeerIdStr) : await PeerIdFactory.createEd25519PeerId();
|
|
50
|
+
const streams = [];
|
|
51
|
+
let streamId = 0;
|
|
52
|
+
const registry = new Map();
|
|
53
|
+
return {
|
|
54
|
+
id: 'mock-connection',
|
|
55
|
+
localAddr,
|
|
56
|
+
remoteAddr,
|
|
57
|
+
localPeer,
|
|
58
|
+
remotePeer,
|
|
59
|
+
stat: {
|
|
60
|
+
status: 'OPEN',
|
|
61
|
+
direction,
|
|
62
|
+
timeline: maConn.timeline,
|
|
63
|
+
multiplexer: 'test-multiplexer',
|
|
64
|
+
encryption: 'yes-yes-very-secure'
|
|
65
|
+
},
|
|
66
|
+
registry,
|
|
67
|
+
tags: [],
|
|
68
|
+
streams,
|
|
69
|
+
newStream: async (protocols) => {
|
|
70
|
+
if (protocols.length === 0) {
|
|
71
|
+
throw new Error('protocols must have a length');
|
|
72
|
+
}
|
|
73
|
+
const echo = pair();
|
|
74
|
+
const id = `${streamId++}`;
|
|
75
|
+
const stream = {
|
|
76
|
+
id,
|
|
77
|
+
sink: echo.sink,
|
|
78
|
+
source: echo.source,
|
|
79
|
+
close: () => { },
|
|
80
|
+
abort: () => { },
|
|
81
|
+
reset: () => { },
|
|
82
|
+
timeline: {
|
|
83
|
+
open: 0
|
|
84
|
+
},
|
|
85
|
+
[Symbol.asyncIterator]: echo.source
|
|
86
|
+
};
|
|
87
|
+
const streamData = {
|
|
88
|
+
protocol: protocols[0],
|
|
89
|
+
stream
|
|
90
|
+
};
|
|
91
|
+
registry.set(id, streamData);
|
|
92
|
+
return streamData;
|
|
93
|
+
},
|
|
94
|
+
addStream: (muxedStream, streamData) => {
|
|
95
|
+
},
|
|
96
|
+
removeStream: (id) => {
|
|
97
|
+
registry.delete(id);
|
|
98
|
+
},
|
|
99
|
+
close: async () => {
|
|
100
|
+
await maConn.close();
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/transport/utils/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peers.d.ts","sourceRoot":"","sources":["../../../src/utils/peers.ts"],"names":[],"mappings":";;;;;AAAA,wBAwBE"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export default [{
|
|
2
|
+
id: 'QmNMMAqSxPetRS1cVMmutW5BCN1qQQyEr4u98kUvZjcfEw',
|
|
3
|
+
privKey: 'CAASpQkwggShAgEAAoIBAQDPek2aeHMa0blL42RTKd6xgtkk4Zkldvq4LHxzcag5uXepiQzWANEUvoD3KcUTmMRmx14PvsxdLCNst7S2JSa0R2n5wSRs14zGy6892lx4H4tLBD1KSpQlJ6vabYM1CJhIQRG90BtzDPrJ/X1iJ2HA0PPDz0Mflam2QUMDDrU0IuV2m7gSCJ5r4EmMs3U0xnH/1gShkVx4ir0WUdoWf5KQUJOmLn1clTRHYPv4KL9A/E38+imNAXfkH3c2T7DrCcYRkZSpK+WecjMsH1dCX15hhhggNqfp3iulO1tGPxHjm7PDGTPUjpCWKpD5e50sLqsUwexac1ja6ktMfszIR+FPAgMBAAECggEAB2H2uPRoRCAKU+T3gO4QeoiJaYKNjIO7UCplE0aMEeHDnEjAKC1HQ1G0DRdzZ8sb0fxuIGlNpFMZv5iZ2ZFg2zFfV//DaAwTek9tIOpQOAYHUtgHxkj5FIlg2BjlflGb+ZY3J2XsVB+2HNHkUEXOeKn2wpTxcoJE07NmywkO8Zfr1OL5oPxOPlRN1gI4ffYH2LbfaQVtRhwONR2+fs5ISfubk5iKso6BX4moMYkxubYwZbpucvKKi/rIjUA3SK86wdCUnno1KbDfdXSgCiUlvxt/IbRFXFURQoTV6BOi3sP5crBLw8OiVubMr9/8WE6KzJ0R7hPd5+eeWvYiYnWj4QKBgQD6jRlAFo/MgPO5NZ/HRAk6LUG+fdEWexA+GGV7CwJI61W/Dpbn9ZswPDhRJKo3rquyDFVZPdd7+RlXYg1wpmp1k54z++L1srsgj72vlg4I8wkZ4YLBg0+zVgHlQ0kxnp16DvQdOgiRFvMUUMEgetsoIx1CQWTd67hTExGsW+WAZQKBgQDT/WaHWvwyq9oaZ8G7F/tfeuXvNTk3HIJdfbWGgRXB7lJ7Gf6FsX4x7PeERfL5a67JLV6JdiLLVuYC2CBhipqLqC2DB962aKMvxobQpSljBBZvZyqP1IGPoKskrSo+2mqpYkeCLbDMuJ1nujgMP7gqVjabs2zj6ACKmmpYH/oNowJ/T0ZVtvFsjkg+1VsiMupUARRQuPUWMwa9HOibM1NIZcoQV2NGXB5Z++kR6JqxQO0DZlKArrviclderUdY+UuuY4VRiSEprpPeoW7ZlbTku/Ap8QZpWNEzZorQDro7bnfBW91fX9/81ets/gCPGrfEn+58U3pdb9oleCOQc/ifpQKBgBTYGbi9bYbd9vgZs6bd2M2um+VFanbMytS+g5bSIn2LHXkVOT2UEkB+eGf9KML1n54QY/dIMmukA8HL1oNAyalpw+/aWj+9Ui5kauUhGEywHjSeBEVYM9UXizxz+m9rsoktLLLUI0o97NxCJzitG0Kub3gn0FEogsUeIc7AdinZAoGBANnM1vcteSQDs7x94TDEnvvqwSkA2UWyLidD2jXgE0PG4V6tTkK//QPBmC9eq6TIqXkzYlsErSw4XeKO91knFofmdBzzVh/ddgx/NufJV4tXF+a2iTpqYBUJiz9wpIKgf43/Ob+P1EA99GAhSdxz1ess9O2aTqf3ANzn6v6g62Pv',
|
|
4
|
+
pubKey: 'CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPek2aeHMa0blL42RTKd6xgtkk4Zkldvq4LHxzcag5uXepiQzWANEUvoD3KcUTmMRmx14PvsxdLCNst7S2JSa0R2n5wSRs14zGy6892lx4H4tLBD1KSpQlJ6vabYM1CJhIQRG90BtzDPrJ/X1iJ2HA0PPDz0Mflam2QUMDDrU0IuV2m7gSCJ5r4EmMs3U0xnH/1gShkVx4ir0WUdoWf5KQUJOmLn1clTRHYPv4KL9A/E38+imNAXfkH3c2T7DrCcYRkZSpK+WecjMsH1dCX15hhhggNqfp3iulO1tGPxHjm7PDGTPUjpCWKpD5e50sLqsUwexac1ja6ktMfszIR+FPAgMBAAE='
|
|
5
|
+
}, {
|
|
6
|
+
id: 'QmW8rAgaaA6sRydK1k6vonShQME47aDxaFidbtMevWs73t',
|
|
7
|
+
privKey: 'CAASpwkwggSjAgEAAoIBAQCTU3gVDv3SRXLOsFln9GEf1nJ/uCEDhOG10eC0H9l9IPpVxjuPT1ep+ykFUdvefq3D3q+W3hbmiHm81o8dYv26RxZIEioToUWp7Ec5M2B/niYoE93za9/ZDwJdl7eh2hNKwAdxTmdbXUPjkIU4vLyHKRFbJIn9X8w9djldz8hoUvC1BK4L1XrT6F2l0ruJXErH2ZwI1youfSzo87TdXIoFKdrQLuW6hOtDCGKTiS+ab/DkMODc6zl8N47Oczv7vjzoWOJMUJs1Pg0ZsD1zmISY38P0y/QyEhatZn0B8BmSWxlLQuukatzOepQI6k+HtfyAAjn4UEqnMaXTP1uwLldVAgMBAAECggEAHq2f8MqpYjLiAFZKl9IUs3uFZkEiZsgx9BmbMAb91Aec+WWJG4OLHrNVTG1KWp+IcaQablEa9bBvoToQnS7y5OpOon1d066egg7Ymfmv24NEMM5KRpktCNcOSA0CySpPIB6yrg6EiUr3ixiaFUGABKkxmwgVz/Q15IqM0ZMmCUsC174PMAz1COFZxD0ZX0zgHblOJQW3dc0X3XSzhht8vU02SMoVObQHQfeXEHv3K/RiVj/Ax0bTc5JVkT8dm8xksTtsFCNOzRBqFS6MYqX6U/u0Onz3Jm5Jt7fLWb5n97gZR4SleyGrqxYNb46d9X7mP0ie7E6bzFW0DsWBIeAqVQKBgQDW0We2L1n44yOvJaMs3evpj0nps13jWidt2I3RlZXjWzWHiYQfvhWUWqps/xZBnAYgnN/38xbKzHZeRNhrqOo+VB0WK1IYl0lZVE4l6TNKCsLsUfQzsb1pePkd1eRZA+TSqsi+I/IOQlQU7HA0bMrah/5FYyUBP0jYvCOvYTlZuwKBgQCvkcVRydVlzjUgv7lY5lYvT8IHV5iYO4Qkk2q6Wjv9VUKAJZauurMdiy05PboWfs5kbETdwFybXMBcknIvZO4ihxmwL8mcoNwDVZHI4bXapIKMTCyHgUKvJ9SeTcKGC7ZuQJ8mslRmYox/HloTOXEJgQgPRxXcwa3amzvdZI+6LwKBgQCLsnQqgxKUi0m6bdR2qf7vzTH4258z6X34rjpT0F5AEyF1edVFOz0XU/q+lQhpNEi7zqjLuvbYfSyA026WXKuwSsz7jMJ/oWqev/duKgAjp2npesY/E9gkjfobD+zGgoS9BzkyhXe1FCdP0A6L2S/1+zg88WOwMvJxl6/xLl24XwKBgCm60xSajX8yIQyUpWBM9yUtpueJ2Xotgz4ST+bVNbcEAddll8gWFiaqgug9FLLuFu5lkYTHiPtgc1RNdphvO+62/9MRuLDixwh/2TPO+iNqwKDKJjda8Nei9vVddCPaOtU/xNQ0xLzFJbG9LBmvqH9izOCcu8SJwGHaTcNUeJj/AoGADCJ26cY30c13F/8awAAmFYpZWCuTP5ppTsRmjd63ixlrqgkeLGpJ7kYb5fXkcTycRGYgP0e1kssBGcmE7DuG955fx3ZJESX3GQZ+XfMHvYGONwF1EiK1f0p6+GReC2VlQ7PIkoD9o0hojM6SnWvv9EXNjCPALEbfPFFvcniKVsE=',
|
|
8
|
+
pubKey: 'CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCTU3gVDv3SRXLOsFln9GEf1nJ/uCEDhOG10eC0H9l9IPpVxjuPT1ep+ykFUdvefq3D3q+W3hbmiHm81o8dYv26RxZIEioToUWp7Ec5M2B/niYoE93za9/ZDwJdl7eh2hNKwAdxTmdbXUPjkIU4vLyHKRFbJIn9X8w9djldz8hoUvC1BK4L1XrT6F2l0ruJXErH2ZwI1youfSzo87TdXIoFKdrQLuW6hOtDCGKTiS+ab/DkMODc6zl8N47Oczv7vjzoWOJMUJs1Pg0ZsD1zmISY38P0y/QyEhatZn0B8BmSWxlLQuukatzOepQI6k+HtfyAAjn4UEqnMaXTP1uwLldVAgMBAAE='
|
|
9
|
+
}, {
|
|
10
|
+
id: 'QmZqCdSzgpsmB3Qweb9s4fojAoqELWzqku21UVrqtVSKi4',
|
|
11
|
+
privKey: 'CAASpgkwggSiAgEAAoIBAQCdbSEsTmw7lp5HagRcx57DaLiSUEkh4iBcKc7Y+jHICEIA8NIVi9FlfGEZj9G21FpiTR4Cy+BLVEuf8Nm90bym4iV+cSumeS21fvD8xGTEbeKGljs6OYHy3M45JhWF85gqHQJOqZufI2NRDuRgMZEO2+qGEXmSlv9mMXba/+9ecze8nSpB7bG2Z2pnKDeYwhF9Cz+ElMyn7TBWDjJERGVgFbTpdM3rBnbhB/TGpvs732QqZmIBlxnDb/Jn0l1gNZCgkEDcJ/0NDMBJTQ8vbvcdmaw3eaMPLkn1ix4wdu9QWCA0IBtuY1R7vSUtf4irnLJG7DnAw2GfM5QrF3xF1GLXAgMBAAECggEAQ1N0qHoxl5pmvqv8iaFlqLSUmx5y6GbI6CGJMQpvV9kQQU68yjItr3VuIXx8d/CBZyEMAK4oko7OeOyMcr3MLKLy3gyQWnXgsopDjhZ/8fH8uwps8g2+IZuFJrO+6LaxEPGvFu06fOiphPUVfn40R2KN/iBjGeox+AaXijmCqaV2vEdNJJPpMfz6VKZBDLTrbiqvo/3GN1U99PUqfPWpOWR29oAhh/Au6blSqvqTUPXB2+D/X6e1JXv31mxMPK68atDHSUjZWKB9lE4FMK1bkSKJRbyXmNIlbZ9V8X4/0r8/6T7JnW7ZT8ugRkquohmwgG7KkDXB1YsOCKXYUqzVYQKBgQDtnopFXWYl7XUyePJ/2MA5i7eoko9jmF44L31irqmHc5unNf6JlNBjlxTNx3WyfzhUzrn3c18psnGkqtow0tkBj5hmqn8/WaPbc5UA/5R1FNaNf8W5khn7MDm6KtYRPjN9djqTDiVHyC6ljONYd+5S+MqyKVWZ3t/xvG60sw85qwKBgQCpmpDtL+2JBwkfeUr3LyDcQxvbfzcv8lXj2otopWxWiLiZF1HzcqgAa2CIwu9kCGEt9Zr+9E4uINbe1To0b01/FhvR6xKO/ukceGA/mBB3vsKDcRmvpBUp+3SmnhY0nOk+ArQl4DhJ34k8pDM3EDPrixPf8SfVdU/8IM32lsdHhQKBgHLgpvCKCwxjFLnmBzcPzz8C8TOqR3BbBZIcQ34l+wflOGdKj1hsfaLoM8KYn6pAHzfBCd88A9Hg11hI0VuxVACRL5jS7NnvuGwsIOluppNEE8Ys86aXn7/0vLPoab3EWJhbRE48FIHzobmft3nZ4XpzlWs02JGfUp1IAC2UM9QpAoGAeWy3pZhSr2/iEC5+hUmwdQF2yEbj8+fDpkWo2VrVnX506uXPPkQwE1zM2Bz31t5I9OaJ+U5fSpcoPpDaAwBMs1fYwwlRWB8YNdHY1q6/23svN3uZsC4BGPV2JnO34iMUudilsRg+NGVdk5TbNejbwx7nM8Urh59djFzQGGMKeSECgYA0QMCARPpdMY50Mf2xQaCP7HfMJhESSPaBq9V3xY6ToEOEnXgAR5pNjnU85wnspHp+82r5XrKfEQlFxGpj2YA4DRRmn239sjDa29qP42UNAFg1+C3OvXTht1d5oOabaGhU0udwKmkEKUbb0bG5xPQJ5qeSJ5T1gLzLk3SIP0GlSw==',
|
|
12
|
+
pubKey: 'CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCdbSEsTmw7lp5HagRcx57DaLiSUEkh4iBcKc7Y+jHICEIA8NIVi9FlfGEZj9G21FpiTR4Cy+BLVEuf8Nm90bym4iV+cSumeS21fvD8xGTEbeKGljs6OYHy3M45JhWF85gqHQJOqZufI2NRDuRgMZEO2+qGEXmSlv9mMXba/+9ecze8nSpB7bG2Z2pnKDeYwhF9Cz+ElMyn7TBWDjJERGVgFbTpdM3rBnbhB/TGpvs732QqZmIBlxnDb/Jn0l1gNZCgkEDcJ/0NDMBJTQ8vbvcdmaw3eaMPLkn1ix4wdu9QWCA0IBtuY1R7vSUtf4irnLJG7DnAw2GfM5QrF3xF1GLXAgMBAAE='
|
|
13
|
+
}, {
|
|
14
|
+
id: 'QmR5VwgsL7jyfZHAGyp66tguVrQhCRQuRc3NokocsCZ3fA',
|
|
15
|
+
privKey: 'CAASpwkwggSjAgEAAoIBAQCGXYU+uc2nn1zuJhfdFOl34upztnrD1gpHu58ousgHdGlGgYgbqLBAvIAauXdEL0+e30HofjA634SQxE+9nV+0FQBam1DDzHQlXsuwHV+2SKvSDkk4bVllMFpu2SJtts6VH+OXC/2ANJOm+eTALykQPYXgLIBxrhp/eD+Jz5r6wW2nq3k6OmYyK/4pgGzFjo5UyX+fa/171AJ68UPboFpDy6BZCcUjS0ondxPvD7cv5jMNqqMKIB/7rpi8n+Q3oeccRqVL56wH+FE3/QLjwYHwY6ILNRyvNXRqHjwBEXB2R5moXN0AFUWTw9rt3KhFiEjR1U81BTw5/xS7W2Iu0FgZAgMBAAECggEAS64HK8JZfE09eYGJNWPe8ECmD1C7quw21BpwVe+GVPSTizvQHswPohbKDMNj0srXDMPxCnNw1OgqcaOwyjsGuZaOoXoTroTM8nOHRIX27+PUqzaStS6aCG2IsiCozKUHjGTuupftS7XRaF4eIsUtWtFcQ1ytZ9pJYHypRQTi5NMSrTze5ThjnWxtHilK7gnBXik+aR0mYEVfSn13czQEC4rMOs+b9RAc/iibDNoLopfIdvmCCvfxzmySnR7Cu1iSUAONkir7PB+2Mt/qRFCH6P+jMamtCgQ8AmifXgVmDUlun+4MnKg3KrPd6ZjOEKhVe9mCHtGozk65RDREShfDdQKBgQDi+x2MuRa9peEMOHnOyXTS+v+MFcfmG0InsO08rFNBKZChLB+c9UHBdIvexpfBHigSyERfuDye4z6lxi8ZnierWMYJP30nxmrnxwTGTk1MQquhfs1A0kpmDnPsjlOS/drEIEIssNx2WbfJ7YtMxLWBtp+BJzGpQmr0LKC+NHRSrwKBgQCXiy2kJESIUkIs2ihV55hhT6/bZo1B1O5DPA2nkjOBXqXF6fvijzMDX82JjLd07lQZlI0n1Q/Hw0p4iYi9YVd2bLkLXF5UIb2qOeHj76enVFOrPHUSkC9Y2g/0Xs+60Ths2xRd8RrrfQU3kl5iVpBywkCIrb2M5+wRnNTk1W3TtwKBgQCvplyrteAfSurpJhs9JzE8w/hWU9SqAZYkWQp91W1oE95Um2yrbjBAoQxMjaqKS+f/APPIjy56Vqj4aHGyhW11b/Fw3qzfxvCcBKtxOs8eoMlo5FO6QgJJEA4tlcafDcvp0nzjUMqK28safLU7503+33B35fjMXxWdd5u9FaKfCQKBgC4W6j6tuRosymuRvgrCcRnHfpify/5loEFallyMnpWOD6Tt0OnK25z/GifnYDRz96gAAh5HMpFy18dpLOlMHamqz2yhHx8/U8vd5tHIJZlCkF/X91M5/uxrBccwvsT2tM6Got8fYSyVzWxlW8dUxIHiinYHQUsFjkqdBDLEpq5pAoGASoTw5RBEWFM0GuAZdXsyNyxU+4S+grkTS7WdW/Ymkukh+bJZbnvF9a6MkSehqXnknthmufonds2AFNS//63gixENsoOhzT5+2cdfc6tJECvJ9xXVXkf85AoQ6T/RrXF0W4m9yQyCngNJUrKUOIH3oDIfdZITlYzOC3u1ojj7VuQ=',
|
|
16
|
+
pubKey: 'CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCGXYU+uc2nn1zuJhfdFOl34upztnrD1gpHu58ousgHdGlGgYgbqLBAvIAauXdEL0+e30HofjA634SQxE+9nV+0FQBam1DDzHQlXsuwHV+2SKvSDkk4bVllMFpu2SJtts6VH+OXC/2ANJOm+eTALykQPYXgLIBxrhp/eD+Jz5r6wW2nq3k6OmYyK/4pgGzFjo5UyX+fa/171AJ68UPboFpDy6BZCcUjS0ondxPvD7cv5jMNqqMKIB/7rpi8n+Q3oeccRqVL56wH+FE3/QLjwYHwY6ILNRyvNXRqHjwBEXB2R5moXN0AFUWTw9rt3KhFiEjR1U81BTw5/xS7W2Iu0FgZAgMBAAE='
|
|
17
|
+
}, {
|
|
18
|
+
id: 'QmScLDqRg7H6ipCYxm9fVk152UWavQFKscTdoT4YNHxgqp',
|
|
19
|
+
privKey: 'CAASpwkwggSjAgEAAoIBAQCWEHaTZ6LBLFP5OPrUqjDM/cF4b2zrfh1Zm3kd02ZtgQB3iYtZqRPJT5ctT3A7WdVF/7dCxPGOCkJlLekTx4Y4gD8JtjA+EfN9fR/2RBKbti2N3CD4vkGp9ss4hbBFcXIhl8zuD/ELHutbV6b8b4QXJGnxfp/B+1kNPnyd7SJznS0QyvI8OLI1nAkVKdYLDRW8kPKeHyx1xhdNDuTQVTFyAjRGQ4e3UYFB7bYIHW3E6kCtCoJDlj+JPC02Yt1LHzIzZVLvPvNFnYY2mag6OiGFuh/oMBIqvnPc1zRZ3eLUqeGZjQVaoR0kdgZUKz7Q2TBeNldxK/s6XO0DnkQTlelNAgMBAAECggEAdmt1dyswR2p4tdIeNpY7Pnj9JNIhTNDPznefI0dArCdBvBMhkVaYk6MoNIxcj6l7YOrDroAF8sXr0TZimMY6B/pERKCt/z1hPWTxRQBBAvnHhwvwRPq2jK6BfhAZoyM8IoBNKowP9mum5QUNdGV4Al8s73KyFX0IsCfgZSvNpRdlt+DzPh+hu/CyoZaMpRchJc1UmK8Fyk3KfO+m0DZNfHP5P08lXNfM6MZLgTJVVgERHyG+vBOzTd2RElMe19nVCzHwb3dPPRZSQ7Fnz3rA+GeLqsM2Zi4HNhfbD1OcD9C4wDj5tYL6hWTkdz4IlfVcjCeUHxgIOhdDV2K+OwbuAQKBgQD0FjUZ09UW2FQ/fitbvIB5f1SkXWPxTF9l6mAeuXhoGv2EtQUO4vq/PK6N08RjrZdWQy6UsqHgffi7lVQ8o3hvCKdbtf4sP+cM92OrY0WZV89os79ndj4tyvmnP8WojwRjt/2XEfgdoWcgWxW9DiYINTOQVimZX+X/3on4s8hEgQKBgQCdY3kOMbyQeLTRkqHXjVTY4ddO+v4S4wOUa1l4rTqAbq1W3JYWwoDQgFuIu3limIHmjnSJpCD4EioXFsM7p6csenoc20sHxsaHnJ6Mn5Te41UYmY9EW0otkQ0C3KbXM0hwQkjyplnEmZawGKmjEHW8DJ3vRYTv9TUCgYKxDHgOzQKBgB4A/NYH7BG61eBYKgxEx6YnuMfbkwV+Vdu5S8d7FQn3B2LgvZZu4FPRqcNVXLbEB+5ao8czjiKCWaj1Wj15+rvrXGcxn+Tglg5J+r5+nXeUC7LbJZQaPNp0MOwWMr3dlrSLUWjYlJ9Pz9VyXOG4c4Rexc/gR4zK9QLW4C7qKpwBAoGAZzyUb0cYlPtYQA+asTU3bnvVKy1f8yuNcZFowst+EDiI4u0WVh+HNzy6zdmLKa03p+/RaWeLaK0hhrubnEnAUmCUMNF3ScaM+u804LDcicc8TkKLwx7ObU0z56isl4RAA8K27tNHFrpYKXJD834cfBkaj5ReOrfw6Y/iFhhDuBECgYEA8gbC76uz7LSHhW30DSRTcqOzTyoe2oYKQaxuxYNp7vSSOkcdRen+mrdflDvud2q/zN2QdL4pgqdldHlR35M/lJ0f0B6zp74jlzbO9700wzsOqreezGc5eWiroDL100U9uIZ50BKb8CKtixIHpinUSPIUcVDkSAZ2y7mbfCxQwqQ=',
|
|
20
|
+
pubKey: 'CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCWEHaTZ6LBLFP5OPrUqjDM/cF4b2zrfh1Zm3kd02ZtgQB3iYtZqRPJT5ctT3A7WdVF/7dCxPGOCkJlLekTx4Y4gD8JtjA+EfN9fR/2RBKbti2N3CD4vkGp9ss4hbBFcXIhl8zuD/ELHutbV6b8b4QXJGnxfp/B+1kNPnyd7SJznS0QyvI8OLI1nAkVKdYLDRW8kPKeHyx1xhdNDuTQVTFyAjRGQ4e3UYFB7bYIHW3E6kCtCoJDlj+JPC02Yt1LHzIzZVLvPvNFnYY2mag6OiGFuh/oMBIqvnPc1zRZ3eLUqeGZjQVaoR0kdgZUKz7Q2TBeNldxK/s6XO0DnkQTlelNAgMBAAE='
|
|
21
|
+
}, {
|
|
22
|
+
id: 'QmckxVrJw1Yo8LqvmDJNUmdAsKtSbiKWmrXJFyKmUraBoN',
|
|
23
|
+
privKey: 'CAASpwkwggSjAgEAAoIBAQC1/GFud/7xutux7qRfMj1sIdMRh99/chR6HqVj6LQqrgk4jil0mdN/LCk/tqPqmDtObHdmEhCoybzuhLbCKgUqryKDwO6yBJHSKWY9QqrKZtLJ37SgKwGjE3+NUD4r1dJHhtQrICFdOdSCBzs/v8gi+J+KZLHo7+Nms4z09ysy7qZh94Pd7cW4gmSMergqUeANLD9C0ERw1NXolswOW7Bi7UGr7yuBxejICLO3nkxe0OtpQBrYrqdCD9vs3t/HQZbPWVoiRj4VO7fxkAPKLl30HzcIfxj/ayg8NHcH59d08D+N2v5Sdh28gsiYKIPE9CXvuw//HUY2WVRY5fDC5JglAgMBAAECggEBAKb5aN/1w3pBqz/HqRMbQpYLNuD33M3PexBNPAy+P0iFpDo63bh5Rz+A4lvuFNmzUX70MFz7qENlzi6+n/zolxMB29YtWBUH8k904rTEjXXl//NviQgITZk106tx+4k2x5gPEm57LYGfBOdFAUzNhzDnE2LkXwRNzkS161f7zKwOEsaGWRscj6UvhO4MIFxjb32CVwt5eK4yOVqtyMs9u30K4Og+AZYTlhtm+bHg6ndCCBO6CQurCQ3jD6YOkT+L3MotKqt1kORpvzIB0ujZRf49Um8wlcjC5G9aexBeGriXaVdPF62zm7GA7RMsbQM/6aRbA1fEQXvJhHUNF9UFeaECgYEA8wCjKqQA7UQnHjRwTsktdwG6szfxd7z+5MTqHHTWhWzgcQLgdh5/dO/zanEoOThadMk5C1Bqjq96gH2xim8dg5XQofSVtV3Ui0dDa+XRB3E3fyY4D3RF5hHv85O0GcvQc6DIb+Ja1oOhvHowFB1C+CT3yEgwzX/EK9xpe+KtYAkCgYEAv7hCnj/DcZFU3fAfS+unBLuVoVJT/drxv66P686s7J8UM6tW+39yDBZ1IcwY9vHFepBvxY2fFfEeLI02QFM+lZXVhNGzFkP90agNHK01psGgrmIufl9zAo8WOKgkLgbYbSHzkkDeqyjEPU+B0QSsZOCE+qLCHSdsnTmo/TjQhj0CgYAz1+j3yfGgrS+jVBC53lXi0+2fGspbf2jqKdDArXSvFqFzuudki/EpY6AND4NDYfB6hguzjD6PnoSGMUrVfAtR7X6LbwEZpqEX7eZGeMt1yQPMDr1bHrVi9mS5FMQR1NfuM1lP9Xzn00GIUpE7WVrWUhzDEBPJY/7YVLf0hFH08QKBgDWBRQZJIVBmkNrHktRrVddaSq4U/d/Q5LrsCrpymYwH8WliHgpeTQPWmKXwAd+ZJdXIzYjCt202N4eTeVqGYOb6Q/anV2WVYBbM4avpIxoA28kPGY6nML+8EyWIt2ApBOmgGgvtEreNzwaVU9NzjHEyv6n7FlVwlT1jxCe3XWq5AoGASYPKQoPeDlW+NmRG7z9EJXJRPVtmLL40fmGgtju9QIjLnjuK8XaczjAWT+ySI93Whu+Eujf2Uj7Q+NfUjvAEzJgwzuOd3jlQvoALq11kuaxlNQTn7rx0A1QhBgUJE8AkvShPC9FEnA4j/CLJU0re9H/8VvyN6qE0Mho0+YbjpP8=',
|
|
24
|
+
pubKey: 'CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1/GFud/7xutux7qRfMj1sIdMRh99/chR6HqVj6LQqrgk4jil0mdN/LCk/tqPqmDtObHdmEhCoybzuhLbCKgUqryKDwO6yBJHSKWY9QqrKZtLJ37SgKwGjE3+NUD4r1dJHhtQrICFdOdSCBzs/v8gi+J+KZLHo7+Nms4z09ysy7qZh94Pd7cW4gmSMergqUeANLD9C0ERw1NXolswOW7Bi7UGr7yuBxejICLO3nkxe0OtpQBrYrqdCD9vs3t/HQZbPWVoiRj4VO7fxkAPKLl30HzcIfxj/ayg8NHcH59d08D+N2v5Sdh28gsiYKIPE9CXvuw//HUY2WVRY5fDC5JglAgMBAAE='
|
|
25
|
+
}];
|
|
26
|
+
//# sourceMappingURL=peers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peers.js","sourceRoot":"","sources":["../../../src/utils/peers.ts"],"names":[],"mappings":"AAAA,eAAe,CAAC;QACd,EAAE,EAAE,gDAAgD;QACpD,OAAO,EAAE,0jDAA0jD;QACnkD,MAAM,EAAE,kZAAkZ;KAC3Z,EAAE;QACD,EAAE,EAAE,gDAAgD;QACpD,OAAO,EAAE,8jDAA8jD;QACvkD,MAAM,EAAE,kZAAkZ;KAC3Z,EAAE;QACD,EAAE,EAAE,gDAAgD;QACpD,OAAO,EAAE,8jDAA8jD;QACvkD,MAAM,EAAE,kZAAkZ;KAC3Z,EAAE;QACD,EAAE,EAAE,gDAAgD;QACpD,OAAO,EAAE,8jDAA8jD;QACvkD,MAAM,EAAE,kZAAkZ;KAC3Z,EAAE;QACD,EAAE,EAAE,gDAAgD;QACpD,OAAO,EAAE,8jDAA8jD;QACvkD,MAAM,EAAE,kZAAkZ;KAC3Z,EAAE;QACD,EAAE,EAAE,gDAAgD;QACpD,OAAO,EAAE,8jDAA8jD;QACvkD,MAAM,EAAE,kZAAkZ;KAC3Z,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.spec.d.ts","sourceRoot":"","sources":["../../../test/connection/index.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import tests from '../../src/connection/index.js';
|
|
2
|
+
import { Connection } from '@libp2p/connection';
|
|
3
|
+
import peers from '../../src/utils/peers.js';
|
|
4
|
+
import * as PeerIdFactory from '@libp2p/peer-id-factory';
|
|
5
|
+
import { Multiaddr } from '@multiformats/multiaddr';
|
|
6
|
+
// @ts-expect-error no types
|
|
7
|
+
import pair from 'it-pair';
|
|
8
|
+
describe('compliance tests', () => {
|
|
9
|
+
tests({
|
|
10
|
+
/**
|
|
11
|
+
* Test setup. `properties` allows the compliance test to override
|
|
12
|
+
* certain values for testing.
|
|
13
|
+
*/
|
|
14
|
+
async setup(properties) {
|
|
15
|
+
const localAddr = new Multiaddr('/ip4/127.0.0.1/tcp/8080');
|
|
16
|
+
const remoteAddr = new Multiaddr('/ip4/127.0.0.1/tcp/8081');
|
|
17
|
+
const [localPeer, remotePeer] = await Promise.all([
|
|
18
|
+
PeerIdFactory.createFromJSON(peers[0]),
|
|
19
|
+
PeerIdFactory.createFromJSON(peers[1])
|
|
20
|
+
]);
|
|
21
|
+
const openStreams = [];
|
|
22
|
+
let streamId = 0;
|
|
23
|
+
const connection = new Connection({
|
|
24
|
+
localPeer,
|
|
25
|
+
remotePeer,
|
|
26
|
+
localAddr,
|
|
27
|
+
remoteAddr,
|
|
28
|
+
stat: {
|
|
29
|
+
timeline: {
|
|
30
|
+
open: Date.now() - 10,
|
|
31
|
+
upgraded: Date.now()
|
|
32
|
+
},
|
|
33
|
+
direction: 'outbound',
|
|
34
|
+
encryption: '/secio/1.0.0',
|
|
35
|
+
multiplexer: '/mplex/6.7.0',
|
|
36
|
+
status: 'OPEN'
|
|
37
|
+
},
|
|
38
|
+
newStream: async (protocols) => {
|
|
39
|
+
const id = `${streamId++}`;
|
|
40
|
+
const stream = {
|
|
41
|
+
...pair(),
|
|
42
|
+
close: async () => {
|
|
43
|
+
await stream.sink(async function* () { }());
|
|
44
|
+
connection.removeStream(stream.id);
|
|
45
|
+
},
|
|
46
|
+
id,
|
|
47
|
+
abort: () => { },
|
|
48
|
+
reset: () => { },
|
|
49
|
+
timeline: {
|
|
50
|
+
open: 0
|
|
51
|
+
},
|
|
52
|
+
[Symbol.asyncIterator]: () => stream.source
|
|
53
|
+
};
|
|
54
|
+
openStreams.push(stream);
|
|
55
|
+
return {
|
|
56
|
+
stream,
|
|
57
|
+
protocol: protocols[0]
|
|
58
|
+
};
|
|
59
|
+
},
|
|
60
|
+
close: async () => { },
|
|
61
|
+
getStreams: () => openStreams,
|
|
62
|
+
...properties
|
|
63
|
+
});
|
|
64
|
+
return connection;
|
|
65
|
+
},
|
|
66
|
+
async teardown() {
|
|
67
|
+
// cleanup resources created by setup()
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=index.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../../../test/connection/index.spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,+BAA+B,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,MAAM,0BAA0B,CAAA;AAC5C,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,4BAA4B;AAC5B,OAAO,IAAI,MAAM,SAAS,CAAA;AAG1B,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,KAAK,CAAC;QACJ;;;WAGG;QACH,KAAK,CAAC,KAAK,CAAE,UAAU;YACrB,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAA;YAC1D,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAA;YAC3D,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChD,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACvC,CAAC,CAAA;YACF,MAAM,WAAW,GAAkB,EAAE,CAAA;YACrC,IAAI,QAAQ,GAAG,CAAC,CAAA;YAEhB,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;gBAChC,SAAS;gBACT,UAAU;gBACV,SAAS;gBACT,UAAU;gBACV,IAAI,EAAE;oBACJ,QAAQ,EAAE;wBACR,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;wBACrB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;qBACrB;oBACD,SAAS,EAAE,UAAU;oBACrB,UAAU,EAAE,cAAc;oBAC1B,WAAW,EAAE,cAAc;oBAC3B,MAAM,EAAE,MAAM;iBACf;gBACD,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;oBAC7B,MAAM,EAAE,GAAG,GAAG,QAAQ,EAAE,EAAE,CAAA;oBAC1B,MAAM,MAAM,GAAgB;wBAC1B,GAAG,IAAI,EAAE;wBACT,KAAK,EAAE,KAAK,IAAI,EAAE;4BAChB,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,SAAU,CAAC,MAAK,CAAC,EAAE,CAAC,CAAA;4BAC3C,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;wBACpC,CAAC;wBACD,EAAE;wBACF,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;wBACf,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;wBACf,QAAQ,EAAE;4BACR,IAAI,EAAE,CAAC;yBACR;wBACD,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM;qBAC5C,CAAA;oBAED,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;oBAExB,OAAO;wBACL,MAAM;wBACN,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;qBACvB,CAAA;gBACH,CAAC;gBACD,KAAK,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;gBACrB,UAAU,EAAE,GAAG,EAAE,CAAC,WAAW;gBAC7B,GAAG,UAAU;aACd,CAAC,CAAA;YACF,OAAO,UAAU,CAAA;QACnB,CAAC;QACD,KAAK,CAAC,QAAQ;YACZ,uCAAuC;QACzC,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.spec.d.ts","sourceRoot":"","sources":["../../../test/crypto/index.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import tests from '../../src/crypto/index.js';
|
|
2
|
+
import mockCrypto from './mock-crypto.js';
|
|
3
|
+
describe('compliance tests', () => {
|
|
4
|
+
tests({
|
|
5
|
+
async setup() {
|
|
6
|
+
return mockCrypto;
|
|
7
|
+
},
|
|
8
|
+
async teardown() { }
|
|
9
|
+
});
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=index.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../../../test/crypto/index.spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,2BAA2B,CAAA;AAC7C,OAAO,UAAU,MAAM,kBAAkB,CAAA;AAEzC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,KAAK,CAAC;QACJ,KAAK,CAAC,KAAK;YACT,OAAO,UAAU,CAAA;QACnB,CAAC;QACD,KAAK,CAAC,QAAQ,KAAK,CAAC;KACrB,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-crypto.d.ts","sourceRoot":"","sources":["../../../test/crypto/mock-crypto.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAYvD,QAAA,MAAM,MAAM,EAAE,MAuFb,CAAA;AAED,eAAe,MAAM,CAAA"}
|