@libp2p/interface-compliance-tests 4.1.5 → 5.0.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/README.md +1 -1
- package/dist/src/connection/index.d.ts +1 -1
- package/dist/src/connection/index.d.ts.map +1 -1
- package/dist/src/connection/index.js.map +1 -1
- package/dist/src/connection-encryption/index.d.ts +1 -1
- package/dist/src/connection-encryption/index.d.ts.map +1 -1
- package/dist/src/connection-encryption/index.js +4 -2
- package/dist/src/connection-encryption/index.js.map +1 -1
- package/dist/src/connection-encryption/utils/index.d.ts +1 -1
- package/dist/src/connection-encryption/utils/index.d.ts.map +1 -1
- package/dist/src/connection-encryption/utils/index.js +3 -1
- package/dist/src/connection-encryption/utils/index.js.map +1 -1
- package/dist/src/is-valid-tick.js.map +1 -1
- package/dist/src/mocks/connection-gater.d.ts +1 -1
- package/dist/src/mocks/connection-gater.d.ts.map +1 -1
- package/dist/src/mocks/connection-manager.d.ts +3 -6
- package/dist/src/mocks/connection-manager.d.ts.map +1 -1
- package/dist/src/mocks/connection-manager.js +2 -2
- package/dist/src/mocks/connection-manager.js.map +1 -1
- package/dist/src/mocks/connection.d.ts +3 -4
- package/dist/src/mocks/connection.d.ts.map +1 -1
- package/dist/src/mocks/connection.js +57 -13
- package/dist/src/mocks/connection.js.map +1 -1
- package/dist/src/mocks/duplex.d.ts +2 -1
- package/dist/src/mocks/duplex.d.ts.map +1 -1
- package/dist/src/mocks/duplex.js.map +1 -1
- package/dist/src/mocks/index.d.ts +0 -1
- package/dist/src/mocks/index.d.ts.map +1 -1
- package/dist/src/mocks/index.js +0 -1
- package/dist/src/mocks/index.js.map +1 -1
- package/dist/src/mocks/metrics.d.ts +1 -1
- package/dist/src/mocks/metrics.d.ts.map +1 -1
- package/dist/src/mocks/metrics.js.map +1 -1
- package/dist/src/mocks/multiaddr-connection.d.ts +3 -3
- package/dist/src/mocks/multiaddr-connection.d.ts.map +1 -1
- package/dist/src/mocks/multiaddr-connection.js +6 -2
- package/dist/src/mocks/multiaddr-connection.js.map +1 -1
- package/dist/src/mocks/muxer.d.ts +2 -3
- package/dist/src/mocks/muxer.d.ts.map +1 -1
- package/dist/src/mocks/muxer.js +17 -5
- package/dist/src/mocks/muxer.js.map +1 -1
- package/dist/src/mocks/peer-discovery.d.ts +3 -4
- package/dist/src/mocks/peer-discovery.d.ts.map +1 -1
- package/dist/src/mocks/peer-discovery.js +3 -5
- package/dist/src/mocks/peer-discovery.js.map +1 -1
- package/dist/src/mocks/registrar.d.ts +2 -4
- package/dist/src/mocks/registrar.d.ts.map +1 -1
- package/dist/src/mocks/registrar.js.map +1 -1
- package/dist/src/mocks/upgrader.d.ts +2 -4
- package/dist/src/mocks/upgrader.d.ts.map +1 -1
- package/dist/src/mocks/upgrader.js.map +1 -1
- package/dist/src/peer-discovery/index.d.ts +1 -1
- package/dist/src/peer-discovery/index.d.ts.map +1 -1
- package/dist/src/peer-discovery/index.js +1 -1
- package/dist/src/peer-discovery/index.js.map +1 -1
- package/dist/src/pubsub/api.d.ts +1 -1
- package/dist/src/pubsub/api.d.ts.map +1 -1
- package/dist/src/pubsub/api.js +1 -3
- package/dist/src/pubsub/api.js.map +1 -1
- package/dist/src/pubsub/connection-handlers.d.ts +1 -1
- package/dist/src/pubsub/connection-handlers.d.ts.map +1 -1
- package/dist/src/pubsub/connection-handlers.js +1 -1
- package/dist/src/pubsub/connection-handlers.js.map +1 -1
- package/dist/src/pubsub/emit-self.d.ts +1 -1
- package/dist/src/pubsub/emit-self.d.ts.map +1 -1
- package/dist/src/pubsub/emit-self.js +1 -1
- package/dist/src/pubsub/emit-self.js.map +1 -1
- package/dist/src/pubsub/index.d.ts +3 -4
- package/dist/src/pubsub/index.d.ts.map +1 -1
- package/dist/src/pubsub/index.js.map +1 -1
- package/dist/src/pubsub/messages.d.ts +1 -1
- package/dist/src/pubsub/messages.d.ts.map +1 -1
- package/dist/src/pubsub/messages.js +1 -1
- package/dist/src/pubsub/messages.js.map +1 -1
- package/dist/src/pubsub/multiple-nodes.d.ts +1 -1
- package/dist/src/pubsub/multiple-nodes.d.ts.map +1 -1
- package/dist/src/pubsub/multiple-nodes.js +1 -1
- package/dist/src/pubsub/multiple-nodes.js.map +1 -1
- package/dist/src/pubsub/two-nodes.d.ts +1 -1
- package/dist/src/pubsub/two-nodes.d.ts.map +1 -1
- package/dist/src/pubsub/two-nodes.js +4 -5
- package/dist/src/pubsub/two-nodes.js.map +1 -1
- package/dist/src/pubsub/utils.d.ts +1 -2
- package/dist/src/pubsub/utils.d.ts.map +1 -1
- package/dist/src/pubsub/utils.js +4 -2
- package/dist/src/pubsub/utils.js.map +1 -1
- package/dist/src/stream-muxer/base-test.d.ts +1 -1
- package/dist/src/stream-muxer/base-test.d.ts.map +1 -1
- package/dist/src/stream-muxer/base-test.js.map +1 -1
- package/dist/src/stream-muxer/close-test.d.ts +1 -1
- package/dist/src/stream-muxer/close-test.d.ts.map +1 -1
- package/dist/src/stream-muxer/close-test.js +44 -13
- package/dist/src/stream-muxer/close-test.js.map +1 -1
- package/dist/src/stream-muxer/fixtures/pb/message.js.map +1 -1
- package/dist/src/stream-muxer/index.d.ts +1 -1
- package/dist/src/stream-muxer/index.d.ts.map +1 -1
- package/dist/src/stream-muxer/mega-stress-test.d.ts +1 -1
- package/dist/src/stream-muxer/mega-stress-test.d.ts.map +1 -1
- package/dist/src/stream-muxer/spawner.d.ts +1 -1
- package/dist/src/stream-muxer/spawner.d.ts.map +1 -1
- package/dist/src/stream-muxer/spawner.js.map +1 -1
- package/dist/src/stream-muxer/stress-test.d.ts +1 -1
- package/dist/src/stream-muxer/stress-test.d.ts.map +1 -1
- package/dist/src/transport/dial-test.d.ts.map +1 -1
- package/dist/src/transport/dial-test.js +1 -2
- package/dist/src/transport/dial-test.js.map +1 -1
- package/dist/src/transport/index.d.ts +1 -1
- package/dist/src/transport/index.d.ts.map +1 -1
- package/dist/src/transport/listen-test.d.ts.map +1 -1
- package/dist/src/transport/listen-test.js +1 -1
- package/dist/src/transport/listen-test.js.map +1 -1
- package/dist/typedoc-urls.json +0 -1
- package/package.json +15 -15
- package/src/connection/index.ts +1 -1
- package/src/connection-encryption/index.ts +5 -4
- package/src/connection-encryption/utils/index.ts +7 -4
- package/src/mocks/connection-gater.ts +1 -1
- package/src/mocks/connection-manager.ts +4 -9
- package/src/mocks/connection.ts +67 -20
- package/src/mocks/duplex.ts +2 -1
- package/src/mocks/index.ts +0 -1
- package/src/mocks/metrics.ts +1 -2
- package/src/mocks/multiaddr-connection.ts +10 -6
- package/src/mocks/muxer.ts +21 -10
- package/src/mocks/peer-discovery.ts +4 -7
- package/src/mocks/registrar.ts +2 -4
- package/src/mocks/upgrader.ts +2 -5
- package/src/peer-discovery/index.ts +2 -2
- package/src/pubsub/api.ts +2 -4
- package/src/pubsub/connection-handlers.ts +2 -2
- package/src/pubsub/emit-self.ts +2 -2
- package/src/pubsub/index.ts +3 -4
- package/src/pubsub/messages.ts +2 -2
- package/src/pubsub/multiple-nodes.ts +2 -2
- package/src/pubsub/two-nodes.ts +5 -6
- package/src/pubsub/utils.ts +5 -4
- package/src/stream-muxer/base-test.ts +5 -6
- package/src/stream-muxer/close-test.ts +57 -19
- package/src/stream-muxer/index.ts +1 -1
- package/src/stream-muxer/mega-stress-test.ts +1 -1
- package/src/stream-muxer/spawner.ts +2 -2
- package/src/stream-muxer/stress-test.ts +1 -1
- package/src/transport/dial-test.ts +3 -4
- package/src/transport/filter-test.ts +1 -1
- package/src/transport/index.ts +1 -1
- package/src/transport/listen-test.ts +3 -4
- package/dist/src/mocks/connection-encrypter.d.ts +0 -3
- package/dist/src/mocks/connection-encrypter.d.ts.map +0 -1
- package/dist/src/mocks/connection-encrypter.js +0 -98
- package/dist/src/mocks/connection-encrypter.js.map +0 -1
- package/src/mocks/connection-encrypter.ts +0 -113
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listen-test.js","sourceRoot":"","sources":["../../../src/transport/listen-test.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"listen-test.js","sourceRoot":"","sources":["../../../src/transport/listen-test.ts"],"names":[],"mappings":"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"}
|
package/dist/typedoc-urls.json
CHANGED
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
"mockNetwork": "https://libp2p.github.io/js-libp2p/variables/_libp2p_interface_compliance_tests.mocks.mockNetwork.html",
|
|
12
12
|
"connectionPair": "https://libp2p.github.io/js-libp2p/functions/_libp2p_interface_compliance_tests.mocks.connectionPair.html",
|
|
13
13
|
"mockConnection": "https://libp2p.github.io/js-libp2p/functions/_libp2p_interface_compliance_tests.mocks.mockConnection.html",
|
|
14
|
-
"mockConnectionEncrypter": "https://libp2p.github.io/js-libp2p/functions/_libp2p_interface_compliance_tests.mocks.mockConnectionEncrypter.html",
|
|
15
14
|
"mockConnectionGater": "https://libp2p.github.io/js-libp2p/functions/_libp2p_interface_compliance_tests.mocks.mockConnectionGater.html",
|
|
16
15
|
"mockConnectionManager": "https://libp2p.github.io/js-libp2p/functions/_libp2p_interface_compliance_tests.mocks.mockConnectionManager.html",
|
|
17
16
|
"mockDuplex": "https://libp2p.github.io/js-libp2p/functions/_libp2p_interface_compliance_tests.mocks.mockDuplex.html",
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/interface-compliance-tests",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"description": "Compliance tests for JS libp2p interfaces",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
|
-
"homepage": "https://github.com/libp2p/js-libp2p/tree/
|
|
6
|
+
"homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/interface-compliance-tests#readme",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "git+https://github.com/libp2p/js-libp2p.git"
|
|
@@ -103,26 +103,26 @@
|
|
|
103
103
|
"test:electron-main": "aegir test -t electron-main"
|
|
104
104
|
},
|
|
105
105
|
"dependencies": {
|
|
106
|
-
"@libp2p/interface": "^0.
|
|
107
|
-
"@libp2p/interface-internal": "^0.1.
|
|
108
|
-
"@libp2p/logger": "^
|
|
109
|
-
"@libp2p/multistream-select": "^4.0.
|
|
110
|
-
"@libp2p/peer-collections": "^4.0.
|
|
111
|
-
"@libp2p/peer-id": "^
|
|
112
|
-
"@libp2p/peer-id-factory": "^3.0.
|
|
113
|
-
"@
|
|
106
|
+
"@libp2p/interface": "^1.0.0",
|
|
107
|
+
"@libp2p/interface-internal": "^0.1.10",
|
|
108
|
+
"@libp2p/logger": "^4.0.0",
|
|
109
|
+
"@libp2p/multistream-select": "^4.0.7",
|
|
110
|
+
"@libp2p/peer-collections": "^4.0.9",
|
|
111
|
+
"@libp2p/peer-id": "^4.0.0",
|
|
112
|
+
"@libp2p/peer-id-factory": "^3.0.9",
|
|
113
|
+
"@libp2p/utils": "^5.0.0",
|
|
114
|
+
"@multiformats/multiaddr": "^12.1.10",
|
|
114
115
|
"abortable-iterator": "^5.0.1",
|
|
115
116
|
"aegir": "^41.0.2",
|
|
116
117
|
"delay": "^6.0.0",
|
|
117
118
|
"it-all": "^3.0.2",
|
|
118
119
|
"it-drain": "^3.0.2",
|
|
119
|
-
"it-
|
|
120
|
-
"it-map": "^3.0.3",
|
|
120
|
+
"it-map": "^3.0.4",
|
|
121
121
|
"it-ndjson": "^1.0.3",
|
|
122
122
|
"it-pair": "^2.0.6",
|
|
123
123
|
"it-pipe": "^3.0.1",
|
|
124
|
-
"it-protobuf-stream": "^1.0.
|
|
125
|
-
"it-pushable": "^3.2.
|
|
124
|
+
"it-protobuf-stream": "^1.0.2",
|
|
125
|
+
"it-pushable": "^3.2.1",
|
|
126
126
|
"it-stream-types": "^2.0.1",
|
|
127
127
|
"it-to-buffer": "^4.0.2",
|
|
128
128
|
"merge-options": "^3.0.4",
|
|
@@ -136,6 +136,6 @@
|
|
|
136
136
|
"uint8arrays": "^4.0.6"
|
|
137
137
|
},
|
|
138
138
|
"devDependencies": {
|
|
139
|
-
"protons": "^7.0
|
|
139
|
+
"protons": "^7.3.0"
|
|
140
140
|
}
|
|
141
141
|
}
|
package/src/connection/index.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { expect } from 'aegir/chai'
|
|
2
2
|
import sinon from 'sinon'
|
|
3
3
|
import type { TestSetup } from '../index.js'
|
|
4
|
-
import type { Connection } from '@libp2p/interface
|
|
4
|
+
import type { Connection } from '@libp2p/interface'
|
|
5
5
|
|
|
6
6
|
export default (test: TestSetup<Connection>): void => {
|
|
7
7
|
describe('connection', () => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { UnexpectedPeerError } from '@libp2p/interface
|
|
1
|
+
import { UnexpectedPeerError } from '@libp2p/interface'
|
|
2
2
|
import * as PeerIdFactory from '@libp2p/peer-id-factory'
|
|
3
3
|
import { expect } from 'aegir/chai'
|
|
4
4
|
import all from 'it-all'
|
|
@@ -7,8 +7,7 @@ import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
|
|
|
7
7
|
import peers from '../peers.js'
|
|
8
8
|
import { createMaConnPair } from './utils/index.js'
|
|
9
9
|
import type { TestSetup } from '../index.js'
|
|
10
|
-
import type { ConnectionEncrypter } from '@libp2p/interface
|
|
11
|
-
import type { PeerId } from '@libp2p/interface/peer-id'
|
|
10
|
+
import type { ConnectionEncrypter, PeerId } from '@libp2p/interface'
|
|
12
11
|
|
|
13
12
|
export default (common: TestSetup<ConnectionEncrypter>): void => {
|
|
14
13
|
describe('interface-connection-encrypter compliance tests', () => {
|
|
@@ -57,7 +56,9 @@ export default (common: TestSetup<ConnectionEncrypter>): void => {
|
|
|
57
56
|
// Send some data and collect the result
|
|
58
57
|
const input = uint8ArrayFromString('data to encrypt')
|
|
59
58
|
const result = await pipe(
|
|
60
|
-
|
|
59
|
+
async function * () {
|
|
60
|
+
yield input
|
|
61
|
+
},
|
|
61
62
|
outboundResult.conn,
|
|
62
63
|
async (source) => all(source)
|
|
63
64
|
)
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
import { logger } from '@libp2p/logger'
|
|
1
2
|
import { multiaddr } from '@multiformats/multiaddr'
|
|
2
3
|
import { duplexPair } from 'it-pair/duplex'
|
|
3
|
-
import type { MultiaddrConnection } from '@libp2p/interface
|
|
4
|
+
import type { MultiaddrConnection } from '@libp2p/interface'
|
|
4
5
|
import type { Duplex, Source } from 'it-stream-types'
|
|
6
|
+
import type { Uint8ArrayList } from 'uint8arraylist'
|
|
5
7
|
|
|
6
8
|
export function createMaConnPair (): [MultiaddrConnection, MultiaddrConnection] {
|
|
7
|
-
const [local, remote] = duplexPair<Uint8Array>()
|
|
9
|
+
const [local, remote] = duplexPair<Uint8Array | Uint8ArrayList>()
|
|
8
10
|
|
|
9
|
-
function duplexToMaConn (duplex: Duplex<AsyncGenerator<Uint8Array>, Source<Uint8Array>, Promise<void>>): MultiaddrConnection {
|
|
11
|
+
function duplexToMaConn (duplex: Duplex<AsyncGenerator<Uint8Array | Uint8ArrayList>, Source<Uint8Array | Uint8ArrayList>, Promise<void>>): MultiaddrConnection {
|
|
10
12
|
const output: MultiaddrConnection = {
|
|
11
13
|
...duplex,
|
|
12
14
|
close: async () => {},
|
|
@@ -14,7 +16,8 @@ export function createMaConnPair (): [MultiaddrConnection, MultiaddrConnection]
|
|
|
14
16
|
remoteAddr: multiaddr('/ip4/127.0.0.1/tcp/4001'),
|
|
15
17
|
timeline: {
|
|
16
18
|
open: Date.now()
|
|
17
|
-
}
|
|
19
|
+
},
|
|
20
|
+
log: logger('duplex-maconn')
|
|
18
21
|
}
|
|
19
22
|
|
|
20
23
|
return output
|
|
@@ -1,16 +1,10 @@
|
|
|
1
|
-
import { CodeError } from '@libp2p/interface
|
|
2
|
-
import { isPeerId, type PeerId } from '@libp2p/interface
|
|
1
|
+
import { CodeError } from '@libp2p/interface'
|
|
2
|
+
import { isPeerId, type PeerId, type ComponentLogger, type Libp2pEvents, type PendingDial, type Connection, type TypedEventTarget, type PubSub, type Startable } from '@libp2p/interface'
|
|
3
3
|
import { PeerMap } from '@libp2p/peer-collections'
|
|
4
4
|
import { peerIdFromString } from '@libp2p/peer-id'
|
|
5
5
|
import { isMultiaddr, type Multiaddr } from '@multiformats/multiaddr'
|
|
6
6
|
import { connectionPair } from './connection.js'
|
|
7
|
-
import type {
|
|
8
|
-
import type { Connection } from '@libp2p/interface/connection'
|
|
9
|
-
import type { TypedEventTarget } from '@libp2p/interface/events'
|
|
10
|
-
import type { PubSub } from '@libp2p/interface/pubsub'
|
|
11
|
-
import type { Startable } from '@libp2p/interface/startable'
|
|
12
|
-
import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager'
|
|
13
|
-
import type { Registrar } from '@libp2p/interface-internal/registrar'
|
|
7
|
+
import type { ConnectionManager, Registrar } from '@libp2p/interface-internal'
|
|
14
8
|
|
|
15
9
|
export interface MockNetworkComponents {
|
|
16
10
|
peerId: PeerId
|
|
@@ -18,6 +12,7 @@ export interface MockNetworkComponents {
|
|
|
18
12
|
connectionManager: ConnectionManager
|
|
19
13
|
events: TypedEventTarget<Libp2pEvents>
|
|
20
14
|
pubsub?: PubSub
|
|
15
|
+
logger: ComponentLogger
|
|
21
16
|
}
|
|
22
17
|
|
|
23
18
|
class MockNetwork {
|
package/src/mocks/connection.ts
CHANGED
|
@@ -1,27 +1,24 @@
|
|
|
1
|
-
import { CodeError } from '@libp2p/interface
|
|
2
|
-
import { logger } from '@libp2p/logger'
|
|
1
|
+
import { CodeError } from '@libp2p/interface'
|
|
2
|
+
import { defaultLogger, logger } from '@libp2p/logger'
|
|
3
3
|
import * as mss from '@libp2p/multistream-select'
|
|
4
4
|
import { peerIdFromString } from '@libp2p/peer-id'
|
|
5
|
+
import { closeSource } from '@libp2p/utils/close-source'
|
|
5
6
|
import { duplexPair } from 'it-pair/duplex'
|
|
6
7
|
import { pipe } from 'it-pipe'
|
|
7
8
|
import { Uint8ArrayList } from 'uint8arraylist'
|
|
8
9
|
import { mockMultiaddrConnection } from './multiaddr-connection.js'
|
|
9
10
|
import { mockMuxer } from './muxer.js'
|
|
10
11
|
import { mockRegistrar } from './registrar.js'
|
|
11
|
-
import type { AbortOptions } from '@libp2p/interface'
|
|
12
|
-
import type {
|
|
13
|
-
import type { PeerId } from '@libp2p/interface/peer-id'
|
|
14
|
-
import type { StreamMuxer, StreamMuxerFactory } from '@libp2p/interface/stream-muxer'
|
|
15
|
-
import type { Registrar } from '@libp2p/interface-internal/registrar'
|
|
12
|
+
import type { AbortOptions, ComponentLogger, Logger, MultiaddrConnection, Connection, Stream, Direction, ConnectionTimeline, ConnectionStatus, PeerId, StreamMuxer, StreamMuxerFactory } from '@libp2p/interface'
|
|
13
|
+
import type { Registrar } from '@libp2p/interface-internal'
|
|
16
14
|
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
17
15
|
import type { Duplex, Source } from 'it-stream-types'
|
|
18
16
|
|
|
19
|
-
const log = logger('libp2p:mock-connection')
|
|
20
|
-
|
|
21
17
|
export interface MockConnectionOptions {
|
|
22
18
|
direction?: Direction
|
|
23
19
|
registrar?: Registrar
|
|
24
20
|
muxerFactory?: StreamMuxerFactory
|
|
21
|
+
logger?: ComponentLogger
|
|
25
22
|
}
|
|
26
23
|
|
|
27
24
|
interface MockConnectionInit {
|
|
@@ -30,6 +27,7 @@ interface MockConnectionInit {
|
|
|
30
27
|
direction: Direction
|
|
31
28
|
maConn: MultiaddrConnection
|
|
32
29
|
muxer: StreamMuxer
|
|
30
|
+
logger: ComponentLogger
|
|
33
31
|
}
|
|
34
32
|
|
|
35
33
|
class MockConnection implements Connection {
|
|
@@ -44,12 +42,14 @@ class MockConnection implements Connection {
|
|
|
44
42
|
public streams: Stream[]
|
|
45
43
|
public tags: string[]
|
|
46
44
|
public transient: boolean
|
|
45
|
+
public log: Logger
|
|
47
46
|
|
|
48
47
|
private readonly muxer: StreamMuxer
|
|
49
48
|
private readonly maConn: MultiaddrConnection
|
|
49
|
+
private readonly logger: ComponentLogger
|
|
50
50
|
|
|
51
51
|
constructor (init: MockConnectionInit) {
|
|
52
|
-
const { remoteAddr, remotePeer, direction, maConn, muxer } = init
|
|
52
|
+
const { remoteAddr, remotePeer, direction, maConn, muxer, logger } = init
|
|
53
53
|
|
|
54
54
|
this.id = `mock-connection-${Math.random()}`
|
|
55
55
|
this.remoteAddr = remoteAddr
|
|
@@ -65,6 +65,8 @@ class MockConnection implements Connection {
|
|
|
65
65
|
this.muxer = muxer
|
|
66
66
|
this.maConn = maConn
|
|
67
67
|
this.transient = false
|
|
68
|
+
this.logger = logger
|
|
69
|
+
this.log = logger.forComponent(this.id)
|
|
68
70
|
}
|
|
69
71
|
|
|
70
72
|
async newStream (protocols: string | string[], options?: AbortOptions): Promise<Stream> {
|
|
@@ -82,7 +84,10 @@ class MockConnection implements Connection {
|
|
|
82
84
|
|
|
83
85
|
const id = `${Math.random()}`
|
|
84
86
|
const stream = await this.muxer.newStream(id)
|
|
85
|
-
const result = await mss.select(stream, protocols,
|
|
87
|
+
const result = await mss.select(stream, protocols, {
|
|
88
|
+
...options,
|
|
89
|
+
log: this.logger.forComponent('libp2p:mock-connection:stream:mss:select')
|
|
90
|
+
})
|
|
86
91
|
|
|
87
92
|
stream.protocol = result.protocol
|
|
88
93
|
stream.direction = 'outbound'
|
|
@@ -118,6 +123,7 @@ class MockConnection implements Connection {
|
|
|
118
123
|
export function mockConnection (maConn: MultiaddrConnection, opts: MockConnectionOptions = {}): Connection {
|
|
119
124
|
const remoteAddr = maConn.remoteAddr
|
|
120
125
|
const remotePeerIdStr = remoteAddr.getPeerId() ?? '12D3KooWCrhmFM1BCPGBkNzbPfDk4cjYmtAYSpZwUBC69Qg2kZyq'
|
|
126
|
+
const logger = opts.logger ?? defaultLogger()
|
|
121
127
|
|
|
122
128
|
if (remotePeerIdStr == null) {
|
|
123
129
|
throw new Error('Remote multiaddr must contain a peer id')
|
|
@@ -127,12 +133,15 @@ export function mockConnection (maConn: MultiaddrConnection, opts: MockConnectio
|
|
|
127
133
|
const direction = opts.direction ?? 'inbound'
|
|
128
134
|
const registrar = opts.registrar ?? mockRegistrar()
|
|
129
135
|
const muxerFactory = opts.muxerFactory ?? mockMuxer()
|
|
136
|
+
const log = logger.forComponent('libp2p:mock-muxer')
|
|
130
137
|
|
|
131
138
|
const muxer = muxerFactory.createStreamMuxer({
|
|
132
139
|
direction,
|
|
133
140
|
onIncomingStream: (muxedStream) => {
|
|
134
141
|
try {
|
|
135
|
-
mss.handle(muxedStream, registrar.getProtocols()
|
|
142
|
+
mss.handle(muxedStream, registrar.getProtocols(), {
|
|
143
|
+
log
|
|
144
|
+
})
|
|
136
145
|
.then(({ stream, protocol }) => {
|
|
137
146
|
log('%s: incoming stream opened on %s', direction, protocol)
|
|
138
147
|
muxedStream.protocol = protocol
|
|
@@ -164,7 +173,8 @@ export function mockConnection (maConn: MultiaddrConnection, opts: MockConnectio
|
|
|
164
173
|
remotePeer,
|
|
165
174
|
direction,
|
|
166
175
|
maConn,
|
|
167
|
-
muxer
|
|
176
|
+
muxer,
|
|
177
|
+
logger
|
|
168
178
|
})
|
|
169
179
|
|
|
170
180
|
return connection
|
|
@@ -177,10 +187,12 @@ export interface StreamInit {
|
|
|
177
187
|
}
|
|
178
188
|
|
|
179
189
|
export function mockStream (stream: Duplex<AsyncGenerator<Uint8ArrayList>, Source<Uint8ArrayList | Uint8Array>, Promise<void>>, init: StreamInit = {}): Stream {
|
|
180
|
-
const
|
|
190
|
+
const id = `stream-${Date.now()}`
|
|
191
|
+
const log = logger(`libp2p:mock-stream:${id}`)
|
|
181
192
|
|
|
182
193
|
// ensure stream output is `Uint8ArrayList` as it would be from an actual
|
|
183
194
|
// Stream where everything is length-varint encoded
|
|
195
|
+
const originalSource = stream.source
|
|
184
196
|
stream.source = (async function * (): AsyncGenerator<Uint8ArrayList, any, unknown> {
|
|
185
197
|
for await (const buf of originalSource) {
|
|
186
198
|
if (buf instanceof Uint8Array) {
|
|
@@ -191,12 +203,44 @@ export function mockStream (stream: Duplex<AsyncGenerator<Uint8ArrayList>, Sourc
|
|
|
191
203
|
}
|
|
192
204
|
})()
|
|
193
205
|
|
|
194
|
-
|
|
206
|
+
const abortSinkController = new AbortController()
|
|
207
|
+
const originalSink = stream.sink.bind(stream)
|
|
208
|
+
stream.sink = async (source) => {
|
|
209
|
+
abortSinkController.signal.addEventListener('abort', () => {
|
|
210
|
+
closeSource(source, log)
|
|
211
|
+
})
|
|
212
|
+
|
|
213
|
+
await originalSink(source)
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
const mockStream: Stream = {
|
|
195
217
|
...stream,
|
|
196
|
-
close: async () => {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
218
|
+
close: async (options) => {
|
|
219
|
+
await mockStream.closeRead(options)
|
|
220
|
+
await mockStream.closeWrite(options)
|
|
221
|
+
},
|
|
222
|
+
closeRead: async () => {
|
|
223
|
+
closeSource(originalSource, log)
|
|
224
|
+
mockStream.timeline.closeRead = Date.now()
|
|
225
|
+
|
|
226
|
+
if (mockStream.timeline.closeWrite != null) {
|
|
227
|
+
mockStream.timeline.close = Date.now()
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
closeWrite: async () => {
|
|
231
|
+
abortSinkController.abort()
|
|
232
|
+
mockStream.timeline.closeWrite = Date.now()
|
|
233
|
+
|
|
234
|
+
if (mockStream.timeline.closeRead != null) {
|
|
235
|
+
mockStream.timeline.close = Date.now()
|
|
236
|
+
}
|
|
237
|
+
},
|
|
238
|
+
abort: () => {
|
|
239
|
+
closeSource(originalSource, log)
|
|
240
|
+
mockStream.timeline.closeWrite = Date.now()
|
|
241
|
+
mockStream.timeline.closeRead = Date.now()
|
|
242
|
+
mockStream.timeline.close = Date.now()
|
|
243
|
+
},
|
|
200
244
|
direction: 'outbound',
|
|
201
245
|
protocol: '/foo/1.0.0',
|
|
202
246
|
timeline: {
|
|
@@ -207,8 +251,11 @@ export function mockStream (stream: Duplex<AsyncGenerator<Uint8ArrayList>, Sourc
|
|
|
207
251
|
status: 'open',
|
|
208
252
|
readStatus: 'ready',
|
|
209
253
|
writeStatus: 'ready',
|
|
254
|
+
log: logger('mock-stream'),
|
|
210
255
|
...init
|
|
211
256
|
}
|
|
257
|
+
|
|
258
|
+
return mockStream
|
|
212
259
|
}
|
|
213
260
|
|
|
214
261
|
export interface StreamPairInit {
|
|
@@ -237,7 +284,7 @@ export interface Peer {
|
|
|
237
284
|
}
|
|
238
285
|
|
|
239
286
|
export function multiaddrConnectionPair (a: { peerId: PeerId, registrar: Registrar }, b: { peerId: PeerId, registrar: Registrar }): [ MultiaddrConnection, MultiaddrConnection ] {
|
|
240
|
-
const [peerBtoPeerA, peerAtoPeerB] = duplexPair<Uint8Array>()
|
|
287
|
+
const [peerBtoPeerA, peerAtoPeerB] = duplexPair<Uint8Array | Uint8ArrayList>()
|
|
241
288
|
|
|
242
289
|
return [
|
|
243
290
|
mockMultiaddrConnection(peerAtoPeerB, b.peerId),
|
package/src/mocks/duplex.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Duplex, Source } from 'it-stream-types'
|
|
2
|
+
import type { Uint8ArrayList } from 'uint8arraylist'
|
|
2
3
|
|
|
3
|
-
export function mockDuplex (): Duplex<AsyncGenerator<Uint8Array>, Source<Uint8Array>, Promise<void>> {
|
|
4
|
+
export function mockDuplex (): Duplex<AsyncGenerator<Uint8Array | Uint8ArrayList>, Source<Uint8Array | Uint8ArrayList>, Promise<void>> {
|
|
4
5
|
return {
|
|
5
6
|
source: (async function * () {
|
|
6
7
|
yield * []
|
package/src/mocks/index.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export { mockConnectionEncrypter } from './connection-encrypter.js'
|
|
2
1
|
export { mockConnectionGater } from './connection-gater.js'
|
|
3
2
|
export { mockConnectionManager, mockNetwork } from './connection-manager.js'
|
|
4
3
|
export { mockConnection, mockStream, streamPair, connectionPair } from './connection.js'
|
package/src/mocks/metrics.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { MultiaddrConnection, Stream, Connection } from '@libp2p/interface
|
|
2
|
-
import type { Metric, MetricGroup, StopTimer, Metrics, CalculatedMetricOptions, MetricOptions } from '@libp2p/interface/metrics'
|
|
1
|
+
import type { MultiaddrConnection, Stream, Connection, Metric, MetricGroup, StopTimer, Metrics, CalculatedMetricOptions, MetricOptions } from '@libp2p/interface'
|
|
3
2
|
|
|
4
3
|
class DefaultMetric implements Metric {
|
|
5
4
|
public value: number = 0
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { logger } from '@libp2p/logger'
|
|
1
2
|
import { multiaddr } from '@multiformats/multiaddr'
|
|
2
3
|
import { abortableSource } from 'abortable-iterator'
|
|
3
4
|
import { duplexPair } from 'it-pair/duplex'
|
|
4
|
-
import type { MultiaddrConnection } from '@libp2p/interface
|
|
5
|
-
import type { PeerId } from '@libp2p/interface/peer-id'
|
|
5
|
+
import type { MultiaddrConnection, PeerId } from '@libp2p/interface'
|
|
6
6
|
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
7
7
|
import type { Duplex } from 'it-stream-types'
|
|
8
|
+
import type { Uint8ArrayList } from 'uint8arraylist'
|
|
8
9
|
|
|
9
|
-
export function mockMultiaddrConnection (source: Duplex<AsyncGenerator<Uint8Array>> & Partial<MultiaddrConnection>, peerId: PeerId): MultiaddrConnection {
|
|
10
|
+
export function mockMultiaddrConnection (source: Duplex<AsyncGenerator<Uint8Array | Uint8ArrayList>> & Partial<MultiaddrConnection>, peerId: PeerId): MultiaddrConnection {
|
|
10
11
|
const maConn: MultiaddrConnection = {
|
|
11
12
|
async close () {
|
|
12
13
|
|
|
@@ -16,6 +17,7 @@ export function mockMultiaddrConnection (source: Duplex<AsyncGenerator<Uint8Arra
|
|
|
16
17
|
open: Date.now()
|
|
17
18
|
},
|
|
18
19
|
remoteAddr: multiaddr(`/ip4/127.0.0.1/tcp/4001/p2p/${peerId.toString()}`),
|
|
20
|
+
log: logger('mock-maconn'),
|
|
19
21
|
...source
|
|
20
22
|
}
|
|
21
23
|
|
|
@@ -34,7 +36,7 @@ export function mockMultiaddrConnPair (opts: MockMultiaddrConnPairOptions): { in
|
|
|
34
36
|
const { addrs, remotePeer } = opts
|
|
35
37
|
const controller = new AbortController()
|
|
36
38
|
const [localAddr, remoteAddr] = addrs
|
|
37
|
-
const [inboundStream, outboundStream] = duplexPair<Uint8Array>()
|
|
39
|
+
const [inboundStream, outboundStream] = duplexPair<Uint8Array | Uint8ArrayList>()
|
|
38
40
|
|
|
39
41
|
const outbound: MultiaddrConnection = {
|
|
40
42
|
...outboundStream,
|
|
@@ -49,7 +51,8 @@ export function mockMultiaddrConnPair (opts: MockMultiaddrConnPairOptions): { in
|
|
|
49
51
|
abort: (err: Error) => {
|
|
50
52
|
outbound.timeline.close = Date.now()
|
|
51
53
|
controller.abort(err)
|
|
52
|
-
}
|
|
54
|
+
},
|
|
55
|
+
log: logger('mock-maconn-outbound')
|
|
53
56
|
}
|
|
54
57
|
|
|
55
58
|
const inbound: MultiaddrConnection = {
|
|
@@ -65,7 +68,8 @@ export function mockMultiaddrConnPair (opts: MockMultiaddrConnPairOptions): { in
|
|
|
65
68
|
abort: (err: Error) => {
|
|
66
69
|
outbound.timeline.close = Date.now()
|
|
67
70
|
controller.abort(err)
|
|
68
|
-
}
|
|
71
|
+
},
|
|
72
|
+
log: logger('mock-maconn-inbound')
|
|
69
73
|
}
|
|
70
74
|
|
|
71
75
|
// Make the sources abortable so we can close them easily
|
package/src/mocks/muxer.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AbstractStream, type AbstractStreamInit } from '@libp2p/interface/stream-muxer/stream'
|
|
2
1
|
import { type Logger, logger } from '@libp2p/logger'
|
|
2
|
+
import { AbstractStream, type AbstractStreamInit } from '@libp2p/utils/abstract-stream'
|
|
3
3
|
import { abortableSource } from 'abortable-iterator'
|
|
4
4
|
import map from 'it-map'
|
|
5
5
|
import * as ndjson from 'it-ndjson'
|
|
@@ -8,9 +8,7 @@ import { type Pushable, pushable } from 'it-pushable'
|
|
|
8
8
|
import { Uint8ArrayList } from 'uint8arraylist'
|
|
9
9
|
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
|
|
10
10
|
import { toString as uint8ArrayToString } from 'uint8arrays/to-string'
|
|
11
|
-
import type { AbortOptions } from '@libp2p/interface'
|
|
12
|
-
import type { Direction, Stream } from '@libp2p/interface/connection'
|
|
13
|
-
import type { StreamMuxer, StreamMuxerFactory, StreamMuxerInit } from '@libp2p/interface/stream-muxer'
|
|
11
|
+
import type { AbortOptions, Direction, Stream, StreamMuxer, StreamMuxerFactory, StreamMuxerInit } from '@libp2p/interface'
|
|
14
12
|
import type { Source } from 'it-stream-types'
|
|
15
13
|
|
|
16
14
|
let muxers = 0
|
|
@@ -249,14 +247,27 @@ class MockMuxer implements StreamMuxer {
|
|
|
249
247
|
return
|
|
250
248
|
}
|
|
251
249
|
|
|
252
|
-
|
|
250
|
+
const signal = options?.signal ?? AbortSignal.timeout(10)
|
|
253
251
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
252
|
+
try {
|
|
253
|
+
// try to gracefully close all streams
|
|
254
|
+
await Promise.all(
|
|
255
|
+
this.streams.map(async s => s.close({
|
|
256
|
+
signal
|
|
257
|
+
}))
|
|
258
|
+
)
|
|
259
|
+
|
|
260
|
+
this.input.end()
|
|
257
261
|
|
|
258
|
-
|
|
259
|
-
|
|
262
|
+
// try to gracefully close the muxer
|
|
263
|
+
await this.input.onEmpty({
|
|
264
|
+
signal
|
|
265
|
+
})
|
|
266
|
+
|
|
267
|
+
this.closeController.abort()
|
|
268
|
+
} catch (err: any) {
|
|
269
|
+
this.abort(err)
|
|
270
|
+
}
|
|
260
271
|
}
|
|
261
272
|
|
|
262
273
|
abort (err: Error): void {
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { TypedEventEmitter } from '@libp2p/interface
|
|
2
|
-
import { peerDiscovery } from '@libp2p/interface/peer-discovery'
|
|
1
|
+
import { TypedEventEmitter, peerDiscoverySymbol } from '@libp2p/interface'
|
|
3
2
|
import * as PeerIdFactory from '@libp2p/peer-id-factory'
|
|
4
3
|
import { multiaddr } from '@multiformats/multiaddr'
|
|
5
|
-
import type { PeerDiscovery, PeerDiscoveryEvents } from '@libp2p/interface
|
|
6
|
-
import type { PeerInfo } from '@libp2p/interface/peer-info'
|
|
4
|
+
import type { PeerDiscovery, PeerDiscoveryEvents, PeerInfo } from '@libp2p/interface'
|
|
7
5
|
|
|
8
6
|
interface MockDiscoveryInit {
|
|
9
7
|
discoveryDelay?: number
|
|
@@ -24,7 +22,7 @@ export class MockDiscovery extends TypedEventEmitter<PeerDiscoveryEvents> implem
|
|
|
24
22
|
this._isRunning = false
|
|
25
23
|
}
|
|
26
24
|
|
|
27
|
-
readonly [
|
|
25
|
+
readonly [peerDiscoverySymbol] = this
|
|
28
26
|
|
|
29
27
|
start (): void {
|
|
30
28
|
this._isRunning = true
|
|
@@ -49,8 +47,7 @@ export class MockDiscovery extends TypedEventEmitter<PeerDiscoveryEvents> implem
|
|
|
49
47
|
this.safeDispatchEvent<PeerInfo>('peer', {
|
|
50
48
|
detail: {
|
|
51
49
|
id: peerId,
|
|
52
|
-
multiaddrs: [multiaddr('/ip4/127.0.0.1/tcp/8000')]
|
|
53
|
-
protocols: []
|
|
50
|
+
multiaddrs: [multiaddr('/ip4/127.0.0.1/tcp/8000')]
|
|
54
51
|
}
|
|
55
52
|
})
|
|
56
53
|
}, this.options.discoveryDelay ?? 1000)
|
package/src/mocks/registrar.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import merge from 'merge-options'
|
|
2
|
-
import type { Connection } from '@libp2p/interface
|
|
3
|
-
import type {
|
|
4
|
-
import type { Topology } from '@libp2p/interface/topology'
|
|
5
|
-
import type { IncomingStreamData, Registrar, StreamHandler, StreamHandlerOptions, StreamHandlerRecord } from '@libp2p/interface-internal/registrar'
|
|
2
|
+
import type { Connection, PeerId, Topology } from '@libp2p/interface'
|
|
3
|
+
import type { IncomingStreamData, Registrar, StreamHandler, StreamHandlerOptions, StreamHandlerRecord } from '@libp2p/interface-internal'
|
|
6
4
|
|
|
7
5
|
export class MockRegistrar implements Registrar {
|
|
8
6
|
private readonly topologies = new Map<string, Array<{ id: string, topology: Topology }>>()
|
package/src/mocks/upgrader.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { mockConnection } from './connection.js'
|
|
2
|
-
import type { Libp2pEvents } from '@libp2p/interface'
|
|
3
|
-
import type {
|
|
4
|
-
import type { TypedEventTarget } from '@libp2p/interface/events'
|
|
5
|
-
import type { Upgrader, UpgraderOptions } from '@libp2p/interface/transport'
|
|
6
|
-
import type { Registrar } from '@libp2p/interface-internal/registrar'
|
|
2
|
+
import type { Libp2pEvents, Connection, MultiaddrConnection, TypedEventTarget, Upgrader, UpgraderOptions } from '@libp2p/interface'
|
|
3
|
+
import type { Registrar } from '@libp2p/interface-internal'
|
|
7
4
|
|
|
8
5
|
export interface MockUpgraderInit {
|
|
9
6
|
registrar?: Registrar
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { start, stop } from '@libp2p/interface
|
|
1
|
+
import { start, stop } from '@libp2p/interface'
|
|
2
2
|
import { isMultiaddr } from '@multiformats/multiaddr'
|
|
3
3
|
import { expect } from 'aegir/chai'
|
|
4
4
|
import delay from 'delay'
|
|
5
5
|
import pDefer from 'p-defer'
|
|
6
6
|
import type { TestSetup } from '../index.js'
|
|
7
|
-
import type { PeerDiscovery } from '@libp2p/interface
|
|
7
|
+
import type { PeerDiscovery } from '@libp2p/interface'
|
|
8
8
|
|
|
9
9
|
export default (common: TestSetup<PeerDiscovery>): void => {
|
|
10
10
|
describe('interface-peer-discovery compliance tests', () => {
|
package/src/pubsub/api.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isStartable, start, stop } from '@libp2p/interface
|
|
1
|
+
import { isStartable, start, stop } from '@libp2p/interface'
|
|
2
2
|
import { expect } from 'aegir/chai'
|
|
3
3
|
import delay from 'delay'
|
|
4
4
|
import pDefer from 'p-defer'
|
|
@@ -9,7 +9,7 @@ import { mockNetwork } from '../mocks/index.js'
|
|
|
9
9
|
import { createComponents } from './utils.js'
|
|
10
10
|
import type { PubSubArgs, PubSubComponents } from './index.js'
|
|
11
11
|
import type { TestSetup } from '../index.js'
|
|
12
|
-
import type { PubSub } from '@libp2p/interface
|
|
12
|
+
import type { PubSub } from '@libp2p/interface'
|
|
13
13
|
|
|
14
14
|
const topic = 'foo'
|
|
15
15
|
const data = uint8ArrayFromString('bar')
|
|
@@ -48,7 +48,6 @@ export default (common: TestSetup<PubSub, PubSubArgs>): void => {
|
|
|
48
48
|
|
|
49
49
|
await start(...Object.values(components))
|
|
50
50
|
|
|
51
|
-
expect(pubsub.isStarted()).to.equal(true)
|
|
52
51
|
expect(components.registrar.register).to.have.property('callCount', 1)
|
|
53
52
|
})
|
|
54
53
|
|
|
@@ -62,7 +61,6 @@ export default (common: TestSetup<PubSub, PubSubArgs>): void => {
|
|
|
62
61
|
await start(...Object.values(components))
|
|
63
62
|
await stop(...Object.values(components))
|
|
64
63
|
|
|
65
|
-
expect(pubsub.isStarted()).to.equal(false)
|
|
66
64
|
expect(components.registrar.unregister).to.have.property('callCount', 1)
|
|
67
65
|
})
|
|
68
66
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { start, stop } from '@libp2p/interface
|
|
1
|
+
import { start, stop } from '@libp2p/interface'
|
|
2
2
|
import { expect } from 'aegir/chai'
|
|
3
3
|
import pDefer from 'p-defer'
|
|
4
4
|
import { pEvent } from 'p-event'
|
|
@@ -11,7 +11,7 @@ import { createComponents } from './utils.js'
|
|
|
11
11
|
import type { PubSubArgs } from './index.js'
|
|
12
12
|
import type { TestSetup } from '../index.js'
|
|
13
13
|
import type { MockNetworkComponents } from '../mocks/index.js'
|
|
14
|
-
import type { Message, PubSub } from '@libp2p/interface
|
|
14
|
+
import type { Message, PubSub } from '@libp2p/interface'
|
|
15
15
|
|
|
16
16
|
export default (common: TestSetup<PubSub, PubSubArgs>): void => {
|
|
17
17
|
describe('pubsub connection handlers', () => {
|