diff --git a/doc/CONFIGURATION.md b/doc/CONFIGURATION.md index 89d4acc8..fd38e271 100644 --- a/doc/CONFIGURATION.md +++ b/doc/CONFIGURATION.md @@ -323,7 +323,7 @@ import { TCP } from '@libp2p/tcp' import { Mplex } from '@libp2p/mplex' import { Noise } from '@chainsafe/libp2p-noise' import { GossipSub } from 'libp2p-gossipsub' -import { SignaturePolicy } from '@libp2p/interfaces/pubsub' +import { SignaturePolicy } from '@libp2p/interface-pubsub' const node = await createLibp2p({ transports: [ diff --git a/doc/migrations/v0.36-v.037.md b/doc/migrations/v0.36-v.037.md index d4482fee..eeacd496 100644 --- a/doc/migrations/v0.36-v.037.md +++ b/doc/migrations/v0.36-v.037.md @@ -240,7 +240,7 @@ libp2p.pubsub.off('my-topic', handler) **After** ```js -import type { Message } from '@libp2p/interfaces/pubsub' +import type { Message } from '@libp2p/interface-pubsub' const handler = (event: CustomEvent) => { const message = event.detail diff --git a/examples/delegated-routing/package.json b/examples/delegated-routing/package.json index 5a3bedb6..399cc0af 100644 --- a/examples/delegated-routing/package.json +++ b/examples/delegated-routing/package.json @@ -6,12 +6,12 @@ "@chainsafe/libp2p-noise": "^6.2.0", "ipfs-core": "^0.14.1", "libp2p": "../../", - "@libp2p/delegated-content-routing": "^1.0.1", - "@libp2p/delegated-peer-routing": "^1.0.1", - "@libp2p/kad-dht": "^1.0.9", - "@libp2p/mplex": "^1.0.4", - "@libp2p/webrtc-star": "^1.0.8", - "@libp2p/websockets": "^1.0.7", + "@libp2p/delegated-content-routing": "^2.0.1", + "@libp2p/delegated-peer-routing": "^2.0.1", + "@libp2p/kad-dht": "^2.0.0", + "@libp2p/mplex": "^2.0.0", + "@libp2p/webrtc-star": "^2.0.0", + "@libp2p/websockets": "^2.0.0", "react": "^17.0.2", "react-dom": "^17.0.2", "react-scripts": "5.0.0" diff --git a/examples/libp2p-in-the-browser/package.json b/examples/libp2p-in-the-browser/package.json index 4a6c6df5..6dbc8396 100644 --- a/examples/libp2p-in-the-browser/package.json +++ b/examples/libp2p-in-the-browser/package.json @@ -10,10 +10,10 @@ "license": "ISC", "dependencies": { "@chainsafe/libp2p-noise": "^6.2.0", - "@libp2p/bootstrap": "^1.0.4", - "@libp2p/mplex": "^1.0.4", - "@libp2p/webrtc-star": "^1.0.8", - "@libp2p/websockets": "^1.0.7", + "@libp2p/bootstrap": "^2.0.0", + "@libp2p/mplex": "^2.0.0", + "@libp2p/webrtc-star": "^2.0.0", + "@libp2p/websockets": "^2.0.0", "libp2p": "../../" }, "devDependencies": { diff --git a/examples/package.json b/examples/package.json index 848c9d47..70984696 100644 --- a/examples/package.json +++ b/examples/package.json @@ -9,8 +9,8 @@ }, "license": "MIT", "dependencies": { - "@libp2p/pubsub-peer-discovery": "^5.0.2", - "@libp2p/floodsub": "^1.0.6", + "@libp2p/pubsub-peer-discovery": "^6.0.0", + "@libp2p/floodsub": "^2.0.0", "@nodeutils/defaults-deep": "^1.1.0", "execa": "^2.1.0", "fs-extra": "^8.1.0", diff --git a/examples/webrtc-direct/package.json b/examples/webrtc-direct/package.json index 6d64d081..c1d34ffe 100644 --- a/examples/webrtc-direct/package.json +++ b/examples/webrtc-direct/package.json @@ -9,10 +9,10 @@ }, "license": "ISC", "dependencies": { - "@libp2p/webrtc-direct": "^1.0.1", + "@libp2p/webrtc-direct": "^2.0.0", "@chainsafe/libp2p-noise": "^6.2.0", - "@libp2p/bootstrap": "^1.0.4", - "@libp2p/mplex": "^1.0.4", + "@libp2p/bootstrap": "^2.0.0", + "@libp2p/mplex": "^2.0.0", "libp2p": "../../", "wrtc": "^0.4.7" }, diff --git a/package.json b/package.json index 01c5d08d..997908ac 100644 --- a/package.json +++ b/package.json @@ -49,15 +49,19 @@ ], "exports": { ".": { + "types": "./src/index.d.ts", "import": "./dist/src/index.js" }, "./insecure": { + "types": "./dist/src/insecure/index.d.ts", "import": "./dist/src/insecure/index.js" }, "./pnet": { + "types": "./dist/src/pnet/index.d.ts", "import": "./dist/src/pnet/index.js" }, "./transport-manager": { + "types": "./dist/src/transport-manager.d.ts", "import": "./dist/src/transport-manager.js" } }, @@ -93,18 +97,34 @@ }, "dependencies": { "@achingbrain/nat-port-mapper": "^1.0.3", - "@libp2p/connection": "^2.0.2", - "@libp2p/crypto": "^0.22.11", - "@libp2p/interfaces": "^2.0.2", - "@libp2p/logger": "^1.1.4", - "@libp2p/multistream-select": "^1.0.4", + "@libp2p/components": "^1.0.0", + "@libp2p/connection": "^3.0.0", + "@libp2p/crypto": "^1.0.0", + "@libp2p/interface-address-manager": "^1.0.1", + "@libp2p/interface-connection": "^1.0.1", + "@libp2p/interface-connection-encrypter": "^1.0.2", + "@libp2p/interface-content-routing": "^1.0.1", + "@libp2p/interface-dht": "^1.0.0", + "@libp2p/interface-metrics": "^1.0.2", + "@libp2p/interface-peer-discovery": "^1.0.0", + "@libp2p/interface-peer-id": "^1.0.2", + "@libp2p/interface-peer-info": "^1.0.1", + "@libp2p/interface-peer-routing": "^1.0.0", + "@libp2p/interface-peer-store": "^1.0.0", + "@libp2p/interface-pubsub": "^1.0.1", + "@libp2p/interface-registrar": "^1.0.0", + "@libp2p/interface-stream-muxer": "^1.0.1", + "@libp2p/interface-transport": "^1.0.0", + "@libp2p/interfaces": "^3.0.2", + "@libp2p/logger": "^2.0.0", + "@libp2p/multistream-select": "^2.0.0", "@libp2p/peer-collections": "^1.0.2", "@libp2p/peer-id": "^1.1.10", "@libp2p/peer-id-factory": "^1.0.9", - "@libp2p/peer-record": "^1.0.8", - "@libp2p/peer-store": "^1.0.10", + "@libp2p/peer-record": "^2.0.0", + "@libp2p/peer-store": "^2.0.0", "@libp2p/tracked-map": "^1.0.5", - "@libp2p/utils": "^1.0.10", + "@libp2p/utils": "^2.0.0", "@multiformats/mafmt": "^11.0.2", "@multiformats/multiaddr": "^10.1.8", "abortable-iterator": "^4.0.2", @@ -119,7 +139,7 @@ "it-filter": "^1.0.3", "it-first": "^1.0.6", "it-foreach": "^0.1.1", - "it-handshake": "^3.0.1", + "it-handshake": "^4.0.0", "it-length-prefixed": "^7.0.1", "it-map": "^1.0.6", "it-merge": "^1.0.3", @@ -146,22 +166,24 @@ }, "devDependencies": { "@chainsafe/libp2p-noise": "^6.2.0", - "@libp2p/bootstrap": "^1.0.4", - "@libp2p/daemon-client": "^1.0.2", - "@libp2p/daemon-server": "^1.0.2", - "@libp2p/delegated-content-routing": "^1.0.5", - "@libp2p/delegated-peer-routing": "^1.0.5", - "@libp2p/floodsub": "^1.0.6", - "@libp2p/interface-compliance-tests": "^2.0.3", - "@libp2p/interop": "^1.0.3", - "@libp2p/kad-dht": "^1.0.9", - "@libp2p/mdns": "^1.0.5", - "@libp2p/mplex": "^1.1.0", - "@libp2p/pubsub": "^1.2.18", - "@libp2p/tcp": "^1.0.9", - "@libp2p/topology": "^1.1.7", - "@libp2p/webrtc-star": "^1.0.8", - "@libp2p/websockets": "^1.0.7", + "@libp2p/bootstrap": "^2.0.0", + "@libp2p/daemon-client": "^2.0.0", + "@libp2p/daemon-server": "^2.0.0", + "@libp2p/delegated-content-routing": "^2.0.0", + "@libp2p/delegated-peer-routing": "^2.0.0", + "@libp2p/floodsub": "^2.0.0", + "@libp2p/interface-compliance-tests": "^3.0.1", + "@libp2p/interface-connection-encrypter-compliance-tests": "^1.0.0", + "@libp2p/interface-mocks": "^1.0.1", + "@libp2p/interop": "^2.0.0", + "@libp2p/kad-dht": "^2.0.0", + "@libp2p/mdns": "^2.0.0", + "@libp2p/mplex": "^2.0.0", + "@libp2p/pubsub": "^2.0.0", + "@libp2p/tcp": "^2.0.0", + "@libp2p/topology": "^2.0.0", + "@libp2p/webrtc-star": "^2.0.0", + "@libp2p/websockets": "^2.0.0", "@types/node-forge": "^1.0.0", "@types/p-fifo": "^1.0.0", "@types/varint": "^6.0.0", @@ -173,7 +195,7 @@ "go-libp2p": "^0.0.6", "into-stream": "^7.0.0", "ipfs-http-client": "^57.0.1", - "it-pushable": "^2.0.1", + "it-pushable": "^3.0.0", "it-to-buffer": "^2.0.2", "nock": "^13.0.3", "npm-run-all": "^4.1.5", diff --git a/src/address-manager/index.ts b/src/address-manager/index.ts index 00634a21..e011bde4 100644 --- a/src/address-manager/index.ts +++ b/src/address-manager/index.ts @@ -1,8 +1,8 @@ -import type { AddressManagerEvents } from '@libp2p/interfaces/address-manager' +import type { AddressManagerEvents } from '@libp2p/interface-address-manager' import { CustomEvent, EventEmitter } from '@libp2p/interfaces/events' import { Multiaddr } from '@multiformats/multiaddr' import { peerIdFromString } from '@libp2p/peer-id' -import type { Components } from '@libp2p/interfaces/components' +import type { Components } from '@libp2p/components' export interface AddressManagerInit { announceFilter?: AddressFilter diff --git a/src/circuit/auto-relay.ts b/src/circuit/auto-relay.ts index 04b6fa3c..a6218a03 100644 --- a/src/circuit/auto-relay.ts +++ b/src/circuit/auto-relay.ts @@ -10,10 +10,10 @@ import { HOP_METADATA_VALUE, RELAY_RENDEZVOUS_NS } from './constants.js' -import type { PeerId } from '@libp2p/interfaces/peer-id' -import type { AddressSorter, PeerProtocolsChangeData } from '@libp2p/interfaces/peer-store' -import type { Connection } from '@libp2p/interfaces/connection' -import type { Components } from '@libp2p/interfaces/components' +import type { PeerId } from '@libp2p/interface-peer-id' +import type { AddressSorter, PeerProtocolsChangeData } from '@libp2p/interface-peer-store' +import type { Connection } from '@libp2p/interface-connection' +import type { Components } from '@libp2p/components' import sort from 'it-sort' import all from 'it-all' import { pipe } from 'it-pipe' diff --git a/src/circuit/circuit/hop.ts b/src/circuit/circuit/hop.ts index 02ed844b..4f5474d1 100644 --- a/src/circuit/circuit/hop.ts +++ b/src/circuit/circuit/hop.ts @@ -7,11 +7,11 @@ import { pipe } from 'it-pipe' import { codes as Errors } from '../../errors.js' import { stop } from './stop.js' import { RELAY_CODEC } from '../multicodec.js' -import type { Connection } from '@libp2p/interfaces/connection' +import type { Connection } from '@libp2p/interface-connection' import { peerIdFromBytes } from '@libp2p/peer-id' import type { Duplex } from 'it-stream-types' import type { Circuit } from '../transport.js' -import type { ConnectionManager } from '@libp2p/interfaces/connection-manager' +import type { ConnectionManager } from '@libp2p/interface-connection-manager' const log = logger('libp2p:circuit:hop') diff --git a/src/circuit/circuit/stop.ts b/src/circuit/circuit/stop.ts index dab6aab8..c953ce56 100644 --- a/src/circuit/circuit/stop.ts +++ b/src/circuit/circuit/stop.ts @@ -3,7 +3,7 @@ import { CircuitRelay as CircuitPB } from '../pb/index.js' import { RELAY_CODEC } from '../multicodec.js' import { StreamHandler } from './stream-handler.js' import { validateAddrs } from './utils.js' -import type { Connection } from '@libp2p/interfaces/connection' +import type { Connection } from '@libp2p/interface-connection' import type { Duplex } from 'it-stream-types' const log = logger('libp2p:circuit:stop') diff --git a/src/circuit/circuit/stream-handler.ts b/src/circuit/circuit/stream-handler.ts index 3d53bb4d..5dcb36eb 100644 --- a/src/circuit/circuit/stream-handler.ts +++ b/src/circuit/circuit/stream-handler.ts @@ -2,7 +2,7 @@ import { logger } from '@libp2p/logger' import * as lp from 'it-length-prefixed' import { Handshake, handshake } from 'it-handshake' import { CircuitRelay } from '../pb/index.js' -import type { Stream } from '@libp2p/interfaces/connection' +import type { Stream } from '@libp2p/interface-connection' import type { Source } from 'it-stream-types' const log = logger('libp2p:circuit:stream-handler') diff --git a/src/circuit/index.ts b/src/circuit/index.ts index 0771a398..b8219b57 100644 --- a/src/circuit/index.ts +++ b/src/circuit/index.ts @@ -10,9 +10,9 @@ import { namespaceToCid } from './utils.js' import { RELAY_RENDEZVOUS_NS } from './constants.js' -import type { AddressSorter } from '@libp2p/interfaces/peer-store' +import type { AddressSorter } from '@libp2p/interface-peer-store' import type { Startable } from '@libp2p/interfaces/startable' -import type { Components } from '@libp2p/interfaces/components' +import type { Components } from '@libp2p/components' const log = logger('libp2p:relay') diff --git a/src/circuit/listener.ts b/src/circuit/listener.ts index e70ef863..0e96cc1f 100644 --- a/src/circuit/listener.ts +++ b/src/circuit/listener.ts @@ -1,7 +1,7 @@ import { CustomEvent, EventEmitter } from '@libp2p/interfaces/events' -import type { ConnectionManager } from '@libp2p/interfaces/connection-manager' -import type { PeerStore } from '@libp2p/interfaces/peer-store' -import type { Listener } from '@libp2p/interfaces/transport' +import type { ConnectionManager } from '@libp2p/interface-connection-manager' +import type { PeerStore } from '@libp2p/interface-peer-store' +import type { Listener } from '@libp2p/interface-transport' import { peerIdFromString } from '@libp2p/peer-id' import { Multiaddr } from '@multiformats/multiaddr' diff --git a/src/circuit/transport.ts b/src/circuit/transport.ts index 1ff71d4e..a4d4894c 100644 --- a/src/circuit/transport.ts +++ b/src/circuit/transport.ts @@ -10,13 +10,13 @@ import { createListener } from './listener.js' import { handleCanHop, handleHop, hop } from './circuit/hop.js' import { handleStop } from './circuit/stop.js' import { StreamHandler } from './circuit/stream-handler.js' -import { symbol } from '@libp2p/interfaces/transport' +import { symbol } from '@libp2p/interface-transport' import { peerIdFromString } from '@libp2p/peer-id' -import { Components, Initializable } from '@libp2p/interfaces/components' +import { Components, Initializable } from '@libp2p/components' import type { AbortOptions } from '@libp2p/interfaces' -import type { IncomingStreamData } from '@libp2p/interfaces/registrar' -import type { Listener, Transport, CreateListenerOptions, ConnectionHandler } from '@libp2p/interfaces/transport' -import type { Connection } from '@libp2p/interfaces/connection' +import type { IncomingStreamData } from '@libp2p/interface-registrar' +import type { Listener, Transport, CreateListenerOptions, ConnectionHandler } from '@libp2p/interface-transport' +import type { Connection } from '@libp2p/interface-connection' const log = logger('libp2p:circuit') diff --git a/src/connection-manager/auto-dialler.ts b/src/connection-manager/auto-dialler.ts index 8a4e646e..cb6717ea 100644 --- a/src/connection-manager/auto-dialler.ts +++ b/src/connection-manager/auto-dialler.ts @@ -7,7 +7,7 @@ import { pipe } from 'it-pipe' import filter from 'it-filter' import sort from 'it-sort' import type { Startable } from '@libp2p/interfaces/startable' -import type { Components } from '@libp2p/interfaces/components' +import type { Components } from '@libp2p/components' const log = logger('libp2p:connection-manager:auto-dialler') diff --git a/src/connection-manager/dialer/auto-dialer.ts b/src/connection-manager/dialer/auto-dialer.ts index bb790a24..ab63ec28 100644 --- a/src/connection-manager/dialer/auto-dialer.ts +++ b/src/connection-manager/dialer/auto-dialer.ts @@ -1,6 +1,6 @@ -import type { PeerInfo } from '@libp2p/interfaces/peer-info' +import type { PeerInfo } from '@libp2p/interface-peer-info' import { logger } from '@libp2p/logger' -import type { Components } from '@libp2p/interfaces/components' +import type { Components } from '@libp2p/components' import { TimeoutController } from 'timeout-abort-controller' const log = logger('libp2p:dialer:auto-dialer') diff --git a/src/connection-manager/dialer/dial-request.ts b/src/connection-manager/dialer/dial-request.ts index bb26f474..9004bb4d 100644 --- a/src/connection-manager/dialer/dial-request.ts +++ b/src/connection-manager/dialer/dial-request.ts @@ -5,7 +5,7 @@ import { setMaxListeners } from 'events' import { codes } from '../../errors.js' import { logger } from '@libp2p/logger' import type { Multiaddr } from '@multiformats/multiaddr' -import type { Connection } from '@libp2p/interfaces/connection' +import type { Connection } from '@libp2p/interface-connection' import type { AbortOptions } from '@libp2p/interfaces' import type { Dialer } from './index.js' diff --git a/src/connection-manager/dialer/index.ts b/src/connection-manager/dialer/index.ts index a7abe516..30cfff51 100644 --- a/src/connection-manager/dialer/index.ts +++ b/src/connection-manager/dialer/index.ts @@ -18,16 +18,16 @@ import { MAX_PER_PEER_DIALS, MAX_ADDRS_TO_DIAL } from '../../constants.js' -import type { Connection } from '@libp2p/interfaces/connection' +import type { Connection } from '@libp2p/interface-connection' import type { AbortOptions } from '@libp2p/interfaces' import type { Startable } from '@libp2p/interfaces/startable' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerId } from '@libp2p/interface-peer-id' import { getPeer } from '../../get-peer.js' import sort from 'it-sort' -import { Components, Initializable } from '@libp2p/interfaces/components' +import { Components, Initializable } from '@libp2p/components' import map from 'it-map' -import type { AddressSorter } from '@libp2p/interfaces/peer-store' -import type { ComponentMetricsTracker } from '@libp2p/interfaces/metrics' +import type { AddressSorter } from '@libp2p/interface-peer-store' +import type { ComponentMetricsTracker } from '@libp2p/interface-metrics' const log = logger('libp2p:dialer') diff --git a/src/connection-manager/index.ts b/src/connection-manager/index.ts index 4a78606d..1ec2e00b 100644 --- a/src/connection-manager/index.ts +++ b/src/connection-manager/index.ts @@ -9,14 +9,14 @@ import { CustomEvent, EventEmitter } from '@libp2p/interfaces/events' import type { Startable } from '@libp2p/interfaces/startable' import { trackedMap } from '@libp2p/tracked-map' import { codes } from '../errors.js' -import { isPeerId, PeerId } from '@libp2p/interfaces/peer-id' +import { isPeerId, PeerId } from '@libp2p/interface-peer-id' import { setMaxListeners } from 'events' -import type { Connection } from '@libp2p/interfaces/connection' -import type { ConnectionManager } from '@libp2p/interfaces/connection-manager' -import { Components, Initializable } from '@libp2p/interfaces/components' -import * as STATUS from '@libp2p/interfaces/connection/status' +import type { Connection } from '@libp2p/interface-connection' +import type { ConnectionManager } from '@libp2p/interface-connection-manager' +import { Components, Initializable } from '@libp2p/components' +import * as STATUS from '@libp2p/interface-connection/status' import { Dialer } from './dialer/index.js' -import type { AddressSorter } from '@libp2p/interfaces/peer-store' +import type { AddressSorter } from '@libp2p/interface-peer-store' import type { Resolver } from '@multiformats/multiaddr' const log = logger('libp2p:connection-manager') diff --git a/src/content-routing/index.ts b/src/content-routing/index.ts index b8406984..5bf28681 100644 --- a/src/content-routing/index.ts +++ b/src/content-routing/index.ts @@ -8,11 +8,11 @@ import { import drain from 'it-drain' import merge from 'it-merge' import { pipe } from 'it-pipe' -import type { ContentRouting } from '@libp2p/interfaces/content-routing' +import type { ContentRouting } from '@libp2p/interface-content-routing' import type { AbortOptions } from '@libp2p/interfaces' import type { Startable } from '@libp2p/interfaces/startable' import type { CID } from 'multiformats/cid' -import type { Components } from '@libp2p/interfaces/components' +import type { Components } from '@libp2p/components' export interface CompoundContentRoutingInit { routers: ContentRouting[] diff --git a/src/content-routing/utils.ts b/src/content-routing/utils.ts index a4ca4d15..bc6fa84b 100644 --- a/src/content-routing/utils.ts +++ b/src/content-routing/utils.ts @@ -2,8 +2,8 @@ import errCode from 'err-code' import filter from 'it-filter' import map from 'it-map' import type { Source } from 'it-stream-types' -import type { PeerInfo } from '@libp2p/interfaces/peer-info' -import type { PeerStore } from '@libp2p/interfaces/peer-store' +import type { PeerInfo } from '@libp2p/interface-peer-info' +import type { PeerStore } from '@libp2p/interface-peer-store' /** * Store the multiaddrs from every peer in the passed peer store diff --git a/src/dht/dht-content-routing.ts b/src/dht/dht-content-routing.ts index 12552d47..f520db45 100644 --- a/src/dht/dht-content-routing.ts +++ b/src/dht/dht-content-routing.ts @@ -1,7 +1,7 @@ import drain from 'it-drain' import errCode from 'err-code' -import type { DHT } from '@libp2p/interfaces/dht' -import type { ContentRouting } from '@libp2p/interfaces/content-routing' +import type { DHT } from '@libp2p/interface-dht' +import type { ContentRouting } from '@libp2p/interface-content-routing' import type { CID } from 'multiformats/cid' import type { AbortOptions } from '@libp2p/interfaces' diff --git a/src/dht/dht-peer-routing.ts b/src/dht/dht-peer-routing.ts index 45950cde..86b6eb57 100644 --- a/src/dht/dht-peer-routing.ts +++ b/src/dht/dht-peer-routing.ts @@ -1,8 +1,8 @@ import errCode from 'err-code' import { messages, codes } from '../errors.js' -import type { PeerRouting } from '@libp2p/interfaces/peer-routing' -import type { DHT } from '@libp2p/interfaces/dht' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerRouting } from '@libp2p/interface-peer-routing' +import type { DHT } from '@libp2p/interface-dht' +import type { PeerId } from '@libp2p/interface-peer-id' import type { AbortOptions } from '@libp2p/interfaces' /** diff --git a/src/dht/dummy-dht.ts b/src/dht/dummy-dht.ts index 6139f050..3f37be34 100644 --- a/src/dht/dummy-dht.ts +++ b/src/dht/dummy-dht.ts @@ -1,9 +1,9 @@ -import type { DualDHT, QueryEvent, SingleDHT } from '@libp2p/interfaces/dht' -import type { PeerDiscoveryEvents } from '@libp2p/interfaces/peer-discovery' +import type { DualDHT, QueryEvent, SingleDHT } from '@libp2p/interface-dht' +import type { PeerDiscoveryEvents } from '@libp2p/interface-peer-discovery' import errCode from 'err-code' import { messages, codes } from '../errors.js' import { EventEmitter } from '@libp2p/interfaces/events' -import { symbol } from '@libp2p/interfaces/peer-discovery' +import { symbol } from '@libp2p/interface-peer-discovery' export class DummyDHT extends EventEmitter implements DualDHT { get [symbol] (): true { diff --git a/src/fetch/index.ts b/src/fetch/index.ts index 59874cb0..218b182f 100644 --- a/src/fetch/index.ts +++ b/src/fetch/index.ts @@ -5,11 +5,11 @@ import * as lp from 'it-length-prefixed' import { FetchRequest, FetchResponse } from './pb/proto.js' import { handshake } from 'it-handshake' import { PROTOCOL_NAME, PROTOCOL_VERSION } from './constants.js' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerId } from '@libp2p/interface-peer-id' import type { Startable } from '@libp2p/interfaces/startable' -import type { Stream } from '@libp2p/interfaces/connection' -import type { IncomingStreamData } from '@libp2p/interfaces/registrar' -import type { Components } from '@libp2p/interfaces/components' +import type { Stream } from '@libp2p/interface-connection' +import type { IncomingStreamData } from '@libp2p/interface-registrar' +import type { Components } from '@libp2p/components' import type { AbortOptions } from '@libp2p/interfaces' import type { Duplex } from 'it-stream-types' import { abortableDuplex } from 'abortable-iterator' diff --git a/src/get-peer.ts b/src/get-peer.ts index bc4129d1..8406fda4 100644 --- a/src/get-peer.ts +++ b/src/get-peer.ts @@ -2,9 +2,9 @@ import { peerIdFromString } from '@libp2p/peer-id' import { Multiaddr } from '@multiformats/multiaddr' import errCode from 'err-code' import { codes } from './errors.js' -import { isPeerId } from '@libp2p/interfaces/peer-id' -import type { PeerId } from '@libp2p/interfaces/peer-id' -import type { PeerInfo } from '@libp2p/interfaces/peer-info' +import { isPeerId } from '@libp2p/interface-peer-id' +import type { PeerId } from '@libp2p/interface-peer-id' +import type { PeerInfo } from '@libp2p/interface-peer-info' function peerIdFromMultiaddr (ma: Multiaddr) { const idStr = ma.getPeerId() diff --git a/src/identify/index.ts b/src/identify/index.ts index 777c35c1..b3fe0e9e 100644 --- a/src/identify/index.ts +++ b/src/identify/index.ts @@ -18,11 +18,11 @@ import { MULTICODEC_IDENTIFY_PUSH_PROTOCOL_VERSION } from './consts.js' import { codes } from '../errors.js' -import type { IncomingStreamData } from '@libp2p/interfaces/registrar' -import type { Connection, Stream } from '@libp2p/interfaces/connection' +import type { IncomingStreamData } from '@libp2p/interface-registrar' +import type { Connection, Stream } from '@libp2p/interface-connection' import type { Startable } from '@libp2p/interfaces/startable' import { peerIdFromKeys } from '@libp2p/peer-id' -import type { Components } from '@libp2p/interfaces/components' +import type { Components } from '@libp2p/components' import { TimeoutController } from 'timeout-abort-controller' import type { AbortOptions } from '@libp2p/interfaces' import { abortableDuplex } from 'abortable-iterator' @@ -79,8 +79,6 @@ export class IdentifyService implements Startable { this.started = false this.init = init - this.handleMessage = this.handleMessage.bind(this) - this.identifyProtocolStr = `/${init.protocolPrefix}/${MULTICODEC_IDENTIFY_PROTOCOL_NAME}/${MULTICODEC_IDENTIFY_PROTOCOL_VERSION}` this.identifyPushProtocolStr = `/${init.protocolPrefix}/${MULTICODEC_IDENTIFY_PUSH_PROTOCOL_NAME}/${MULTICODEC_IDENTIFY_PUSH_PROTOCOL_VERSION}` @@ -127,11 +125,13 @@ export class IdentifyService implements Startable { await this.components.getPeerStore().metadataBook.setValue(this.components.getPeerId(), 'AgentVersion', uint8ArrayFromString(this.host.agentVersion)) await this.components.getPeerStore().metadataBook.setValue(this.components.getPeerId(), 'ProtocolVersion', uint8ArrayFromString(this.host.protocolVersion)) - await this.components.getRegistrar().handle([ - this.identifyProtocolStr, - this.identifyPushProtocolStr - ], (data) => { - void this.handleMessage(data)?.catch(err => { + await this.components.getRegistrar().handle(this.identifyProtocolStr, (data) => { + void this._handleIdentify(data).catch(err => { + log.error(err) + }) + }) + await this.components.getRegistrar().handle(this.identifyPushProtocolStr, (data) => { + void this._handlePush(data).catch(err => { log.error(err) }) }) @@ -353,22 +353,6 @@ export class IdentifyService implements Startable { // this.components.getAddressManager().addObservedAddr(observedAddr) } - /** - * A handler to register with Libp2p to process identify messages - */ - handleMessage (data: IncomingStreamData) { - const { protocol } = data - - switch (protocol) { - case this.identifyProtocolStr: - return this._handleIdentify(data) - case this.identifyPushProtocolStr: - return this._handlePush(data) - default: - log.error('cannot handle unknown protocol %s', protocol) - } - } - /** * Sends the `Identify` response with the Signed Peer Record * to the requesting peer over the given `connection` diff --git a/src/index.ts b/src/index.ts index 9a530f71..62a300e6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,23 +5,23 @@ import type { Startable } from '@libp2p/interfaces/startable' import type { Multiaddr } from '@multiformats/multiaddr' import type { FaultTolerance } from './transport-manager.js' import type { IdentifyServiceInit } from './identify/index.js' -import type { DualDHT } from '@libp2p/interfaces/dht' +import type { DualDHT } from '@libp2p/interface-dht' import type { Datastore } from 'interface-datastore' -import type { PeerStore, PeerStoreInit } from '@libp2p/interfaces/peer-store' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerStore, PeerStoreInit } from '@libp2p/interface-peer-store' +import type { PeerId } from '@libp2p/interface-peer-id' import type { AutoRelayConfig, RelayAdvertiseConfig } from './circuit/index.js' -import type { PeerDiscovery } from '@libp2p/interfaces/peer-discovery' -import type { Connection, ConnectionGater, ConnectionProtector, ProtocolStream } from '@libp2p/interfaces/connection' -import type { Transport } from '@libp2p/interfaces/transport' -import type { StreamMuxerFactory } from '@libp2p/interfaces/stream-muxer' -import type { ConnectionEncrypter } from '@libp2p/interfaces/connection-encrypter' -import type { PeerRouting } from '@libp2p/interfaces/peer-routing' -import type { ContentRouting } from '@libp2p/interfaces/content-routing' -import type { PubSub } from '@libp2p/interfaces/pubsub' -import type { Registrar, StreamHandler } from '@libp2p/interfaces/registrar' -import type { ConnectionManager } from '@libp2p/interfaces/connection-manager' -import type { Metrics, MetricsInit } from '@libp2p/interfaces/metrics' -import type { PeerInfo } from '@libp2p/interfaces/peer-info' +import type { PeerDiscovery } from '@libp2p/interface-peer-discovery' +import type { Connection, ConnectionGater, ConnectionProtector, ProtocolStream } from '@libp2p/interface-connection' +import type { Transport } from '@libp2p/interface-transport' +import type { StreamMuxerFactory } from '@libp2p/interface-stream-muxer' +import type { ConnectionEncrypter } from '@libp2p/interface-connection-encrypter' +import type { PeerRouting } from '@libp2p/interface-peer-routing' +import type { ContentRouting } from '@libp2p/interface-content-routing' +import type { PubSub } from '@libp2p/interface-pubsub' +import type { Registrar, StreamHandler } from '@libp2p/interface-registrar' +import type { ConnectionManager } from '@libp2p/interface-connection-manager' +import type { Metrics, MetricsInit } from '@libp2p/interface-metrics' +import type { PeerInfo } from '@libp2p/interface-peer-info' import type { KeyChain } from './keychain/index.js' import type { ConnectionManagerInit } from './connection-manager/index.js' import type { PingServiceInit } from './ping/index.js' diff --git a/src/insecure/index.ts b/src/insecure/index.ts index 76dc0ca3..446104e0 100644 --- a/src/insecure/index.ts +++ b/src/insecure/index.ts @@ -1,11 +1,11 @@ import { logger } from '@libp2p/logger' import { handshake } from 'it-handshake' import * as lp from 'it-length-prefixed' -import { UnexpectedPeerError, InvalidCryptoExchangeError } from '@libp2p/interfaces/connection-encrypter/errors' +import { UnexpectedPeerError, InvalidCryptoExchangeError } from '@libp2p/interface-connection-encrypter/errors' import { Exchange, KeyType } from './pb/proto.js' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerId } from '@libp2p/interface-peer-id' import { peerIdFromBytes, peerIdFromKeys } from '@libp2p/peer-id' -import type { ConnectionEncrypter, SecuredConnection } from '@libp2p/interfaces/connection-encrypter' +import type { ConnectionEncrypter, SecuredConnection } from '@libp2p/interface-connection-encrypter' import type { Duplex } from 'it-stream-types' const log = logger('libp2p:plaintext') diff --git a/src/keychain/index.ts b/src/keychain/index.ts index bbb5bb61..67543d49 100644 --- a/src/keychain/index.ts +++ b/src/keychain/index.ts @@ -10,8 +10,8 @@ import { codes } from '../errors.js' import { toString as uint8ArrayToString } from 'uint8arrays/to-string' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { generateKeyPair, importKey, unmarshalPrivateKey } from '@libp2p/crypto/keys' -import type { PeerId } from '@libp2p/interfaces/peer-id' -import type { Components } from '@libp2p/interfaces/components' +import type { PeerId } from '@libp2p/interface-peer-id' +import type { Components } from '@libp2p/components' import { pbkdf2, randomBytes } from '@libp2p/crypto' const log = logger('libp2p:keychain') diff --git a/src/libp2p.ts b/src/libp2p.ts index 9d2dafed..b7ff6b4a 100644 --- a/src/libp2p.ts +++ b/src/libp2p.ts @@ -27,25 +27,25 @@ import { DHTPeerRouting } from './dht/dht-peer-routing.js' import { PersistentPeerStore } from '@libp2p/peer-store' import { DHTContentRouting } from './dht/dht-content-routing.js' import { AutoDialer } from './connection-manager/dialer/auto-dialer.js' -import { Initializable, Components, isInitializable } from '@libp2p/interfaces/components' -import type { PeerId } from '@libp2p/interfaces/peer-id' -import type { Connection } from '@libp2p/interfaces/connection' -import type { PeerRouting } from '@libp2p/interfaces/peer-routing' -import type { ContentRouting } from '@libp2p/interfaces/content-routing' -import type { PubSub } from '@libp2p/interfaces/pubsub' -import type { Registrar, StreamHandler } from '@libp2p/interfaces/registrar' -import type { ConnectionManager } from '@libp2p/interfaces/connection-manager' -import type { PeerInfo } from '@libp2p/interfaces/peer-info' +import { Initializable, Components, isInitializable } from '@libp2p/components' +import type { PeerId } from '@libp2p/interface-peer-id' +import type { Connection } from '@libp2p/interface-connection' +import type { PeerRouting } from '@libp2p/interface-peer-routing' +import type { ContentRouting } from '@libp2p/interface-content-routing' +import type { PubSub } from '@libp2p/interface-pubsub' +import type { Registrar, StreamHandler } from '@libp2p/interface-registrar' +import type { ConnectionManager } from '@libp2p/interface-connection-manager' +import type { PeerInfo } from '@libp2p/interface-peer-info' import type { Libp2p, Libp2pEvents, Libp2pInit, Libp2pOptions } from './index.js' import { validateConfig } from './config.js' import { createEd25519PeerId } from '@libp2p/peer-id-factory' -import type { PeerStore } from '@libp2p/interfaces/peer-store' -import type { DualDHT } from '@libp2p/interfaces/dht' +import type { PeerStore } from '@libp2p/interface-peer-store' +import type { DualDHT } from '@libp2p/interface-dht' import { concat as uint8ArrayConcat } from 'uint8arrays/concat' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import errCode from 'err-code' import { unmarshalPublicKey } from '@libp2p/crypto/keys' -import type { Metrics } from '@libp2p/interfaces/metrics' +import type { Metrics } from '@libp2p/interface-metrics' import { DummyDHT } from './dht/dummy-dht.js' import { DummyPubSub } from './pubsub/dummy-pubsub.js' import { PeerSet } from '@libp2p/peer-collections' @@ -491,11 +491,27 @@ export class Libp2pNode extends EventEmitter implements Libp2p { } async handle (protocols: string | string[], handler: StreamHandler): Promise { - return await this.components.getRegistrar().handle(protocols, handler) + if (!Array.isArray(protocols)) { + protocols = [protocols] + } + + await Promise.all( + protocols.map(async protocol => { + await this.components.getRegistrar().handle(protocol, handler) + }) + ) } async unhandle (protocols: string[] | string): Promise { - return await this.components.getRegistrar().unhandle(protocols) + if (!Array.isArray(protocols)) { + protocols = [protocols] + } + + await Promise.all( + protocols.map(async protocol => { + await this.components.getRegistrar().unhandle(protocol) + }) + ) } /** diff --git a/src/metrics/index.ts b/src/metrics/index.ts index 47b560c2..d5e93a38 100644 --- a/src/metrics/index.ts +++ b/src/metrics/index.ts @@ -3,8 +3,8 @@ import each from 'it-foreach' import LRU from 'hashlru' import { METRICS as defaultOptions } from '../constants.js' import { DefaultStats, StatsInit } from './stats.js' -import type { ComponentMetricsUpdate, Metrics, Stats, TrackStreamOptions } from '@libp2p/interfaces/metrics' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { ComponentMetricsUpdate, Metrics, Stats, TrackStreamOptions } from '@libp2p/interface-metrics' +import type { PeerId } from '@libp2p/interface-peer-id' import type { Startable } from '@libp2p/interfaces/startable' import type { Duplex } from 'it-stream-types' diff --git a/src/metrics/moving-average.ts b/src/metrics/moving-average.ts index 615b62cf..c3439d98 100644 --- a/src/metrics/moving-average.ts +++ b/src/metrics/moving-average.ts @@ -1,4 +1,4 @@ -import type { MovingAverage } from '@libp2p/interfaces/metrics' +import type { MovingAverage } from '@libp2p/interface-metrics' export class DefaultMovingAverage { public movingAverage: number diff --git a/src/metrics/stats.ts b/src/metrics/stats.ts index 2e50bff8..45f251d7 100644 --- a/src/metrics/stats.ts +++ b/src/metrics/stats.ts @@ -2,7 +2,7 @@ import { CustomEvent, EventEmitter } from '@libp2p/interfaces/events' import { createMovingAverage } from './moving-average.js' // @ts-expect-error no types import retimer from 'retimer' -import type { MovingAverages, Stats, TransferStats } from '@libp2p/interfaces/metrics' +import type { MovingAverages, Stats, TransferStats } from '@libp2p/interface-metrics' export interface StatsEvents { 'update': CustomEvent diff --git a/src/nat-manager.ts b/src/nat-manager.ts index 8d229f07..7e9cb0c6 100644 --- a/src/nat-manager.ts +++ b/src/nat-manager.ts @@ -8,7 +8,7 @@ import errCode from 'err-code' import { codes } from './errors.js' import { isLoopback } from '@libp2p/utils/multiaddr/is-loopback' import type { Startable } from '@libp2p/interfaces/startable' -import type { Components } from '@libp2p/interfaces/components' +import type { Components } from '@libp2p/components' const log = logger('libp2p:nat') const DEFAULT_TTL = 7200 diff --git a/src/peer-record-updater.ts b/src/peer-record-updater.ts index 9a38db8b..0901c15d 100644 --- a/src/peer-record-updater.ts +++ b/src/peer-record-updater.ts @@ -1,5 +1,5 @@ import { RecordEnvelope, PeerRecord } from '@libp2p/peer-record' -import type { Components } from '@libp2p/interfaces/components' +import type { Components } from '@libp2p/components' import type { Startable } from '@libp2p/interfaces/startable' import { logger } from '@libp2p/logger' import { protocols } from '@multiformats/multiaddr' diff --git a/src/peer-routing.ts b/src/peer-routing.ts index a47f1a82..f380e0d7 100644 --- a/src/peer-routing.ts +++ b/src/peer-routing.ts @@ -18,12 +18,12 @@ import { // @ts-expect-error module with no types } from 'set-delayed-interval' import { setMaxListeners } from 'events' -import type { PeerId } from '@libp2p/interfaces/peer-id' -import type { PeerRouting } from '@libp2p/interfaces/peer-routing' +import type { PeerId } from '@libp2p/interface-peer-id' +import type { PeerRouting } from '@libp2p/interface-peer-routing' import type { AbortOptions } from '@libp2p/interfaces' import type { Startable } from '@libp2p/interfaces/startable' -import type { PeerInfo } from '@libp2p/interfaces/peer-info' -import type { Components } from '@libp2p/interfaces/components' +import type { PeerInfo } from '@libp2p/interface-peer-info' +import type { Components } from '@libp2p/components' const log = logger('libp2p:peer-routing') diff --git a/src/ping/index.ts b/src/ping/index.ts index 685e1cd5..c7766ed3 100644 --- a/src/ping/index.ts +++ b/src/ping/index.ts @@ -6,10 +6,10 @@ import { pipe } from 'it-pipe' import first from 'it-first' import { equals as uint8ArrayEquals } from 'uint8arrays/equals' import { PROTOCOL_NAME, PING_LENGTH, PROTOCOL_VERSION } from './constants.js' -import type { IncomingStreamData } from '@libp2p/interfaces/registrar' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { IncomingStreamData } from '@libp2p/interface-registrar' +import type { PeerId } from '@libp2p/interface-peer-id' import type { Startable } from '@libp2p/interfaces/startable' -import type { Components } from '@libp2p/interfaces/components' +import type { Components } from '@libp2p/components' import type { AbortOptions } from '@libp2p/interfaces' import type { Duplex } from 'it-stream-types' import { abortableDuplex } from 'abortable-iterator' diff --git a/src/pnet/index.ts b/src/pnet/index.ts index 2b3ea2ed..2a14d52d 100644 --- a/src/pnet/index.ts +++ b/src/pnet/index.ts @@ -12,8 +12,7 @@ import { } from './crypto.js' import { handshake } from 'it-handshake' import { NONCE_LENGTH } from './key-generator.js' -import type { MultiaddrConnection } from '@libp2p/interfaces/transport' -import type { ConnectionProtector } from '@libp2p/interfaces/connection' +import type { ConnectionProtector, MultiaddrConnection } from '@libp2p/interface-connection' const log = logger('libp2p:pnet') diff --git a/src/pubsub/dummy-pubsub.ts b/src/pubsub/dummy-pubsub.ts index b44efcb5..4aa82dce 100644 --- a/src/pubsub/dummy-pubsub.ts +++ b/src/pubsub/dummy-pubsub.ts @@ -1,6 +1,6 @@ import { EventEmitter } from '@libp2p/interfaces/events' -import type { PeerId } from '@libp2p/interfaces/peer-id' -import type { PublishResult, PubSub, PubSubEvents, StrictNoSign, StrictSign } from '@libp2p/interfaces/pubsub' +import type { PeerId } from '@libp2p/interface-peer-id' +import type { PublishResult, PubSub, PubSubEvents, StrictNoSign, StrictSign } from '@libp2p/interface-pubsub' import errCode from 'err-code' import { messages, codes } from '../errors.js' diff --git a/src/registrar.ts b/src/registrar.ts index ef6fd501..41d1a194 100644 --- a/src/registrar.ts +++ b/src/registrar.ts @@ -1,30 +1,20 @@ import { logger } from '@libp2p/logger' import errCode from 'err-code' import { codes } from './errors.js' -import { isTopology, Topology } from '@libp2p/interfaces/topology' -import type { Registrar, StreamHandler } from '@libp2p/interfaces/registrar' -import type { PeerProtocolsChangeData } from '@libp2p/interfaces/peer-store' -import type { Connection } from '@libp2p/interfaces/connection' -import type { Components } from '@libp2p/interfaces/components' +import { isTopology, StreamHandlerOptions, StreamHandlerRecord } from '@libp2p/interface-registrar' +import type { Registrar, StreamHandler, Topology } from '@libp2p/interface-registrar' +import type { PeerProtocolsChangeData } from '@libp2p/interface-peer-store' +import type { Connection } from '@libp2p/interface-connection' +import type { Components } from '@libp2p/components' const log = logger('libp2p:registrar') -function supportsProtocol (peerProtocols: string[], topologyProtocols: string[]) { - for (const peerProtocol of peerProtocols) { - if (topologyProtocols.includes(peerProtocol)) { - return true - } - } - - return false -} - /** * Responsible for notifying registered protocols of events in the network. */ export class DefaultRegistrar implements Registrar { - private readonly topologies: Map - private readonly handlers: Map + private readonly topologies: Map> + private readonly handlers: Map private readonly components: Components constructor (components: Components) { @@ -42,17 +32,10 @@ export class DefaultRegistrar implements Registrar { } getProtocols () { - const protocols = new Set() - - for (const topology of this.topologies.values()) { - topology.protocols.forEach(protocol => protocols.add(protocol)) - } - - for (const protocol of this.handlers.keys()) { - protocols.add(protocol) - } - - return Array.from(protocols).sort() + return Array.from(new Set([ + ...this.topologies.keys(), + ...this.handlers.keys() + ])).sort() } getHandler (protocol: string) { @@ -66,33 +49,32 @@ export class DefaultRegistrar implements Registrar { } getTopologies (protocol: string) { - const output: Topology[] = [] + const topologies = this.topologies.get(protocol) - for (const { topology, protocols } of this.topologies.values()) { - if (protocols.includes(protocol)) { - output.push(topology) - } + if (topologies == null) { + return [] } - return output + return [ + ...topologies.values() + ] } /** * Registers the `handler` for each protocol */ - async handle (protocols: string | string[], handler: StreamHandler): Promise { - const protocolList = Array.isArray(protocols) ? protocols : [protocols] - - for (const protocol of protocolList) { - if (this.handlers.has(protocol)) { - throw errCode(new Error(`Handler already registered for protocol ${protocol}`), codes.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED) - } - - this.handlers.set(protocol, handler) + async handle (protocol: string, handler: StreamHandler, options: StreamHandlerOptions = { maxConcurrentStreams: 1 }): Promise { + if (this.handlers.has(protocol)) { + throw errCode(new Error(`Handler already registered for protocol ${protocol}`), codes.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED) } + this.handlers.set(protocol, { + handler, + options + }) + // Add new protocols to self protocols in the Protobook - await this.components.getPeerStore().protoBook.add(this.components.getPeerId(), protocolList) + await this.components.getPeerStore().protoBook.add(this.components.getPeerId(), [protocol]) } /** @@ -113,7 +95,7 @@ export class DefaultRegistrar implements Registrar { /** * Register handlers for a set of multicodecs given */ - async register (protocols: string | string[], topology: Topology): Promise { + async register (protocol: string, topology: Topology): Promise { if (!isTopology(topology)) { log.error('topology must be an instance of interfaces/topology') throw errCode(new Error('topology must be an instance of interfaces/topology'), codes.ERR_INVALID_PARAMETERS) @@ -122,10 +104,14 @@ export class DefaultRegistrar implements Registrar { // Create topology const id = `${(Math.random() * 1e9).toString(36)}${Date.now()}` - this.topologies.set(id, { - topology, - protocols: Array.isArray(protocols) ? protocols : [protocols] - }) + let topologies = this.topologies.get(protocol) + + if (topologies == null) { + topologies = new Map() + this.topologies.set(protocol, topologies) + } + + topologies.set(id, topology) // Set registrar await topology.setRegistrar(this) @@ -137,7 +123,15 @@ export class DefaultRegistrar implements Registrar { * Unregister topology */ unregister (id: string) { - this.topologies.delete(id) + for (const [protocol, topologies] of this.topologies.entries()) { + if (topologies.has(id)) { + topologies.delete(id) + + if (topologies.size === 0) { + this.topologies.delete(protocol) + } + } + } } /** @@ -148,8 +142,15 @@ export class DefaultRegistrar implements Registrar { void this.components.getPeerStore().protoBook.get(connection.remotePeer) .then(peerProtocols => { - for (const { topology, protocols } of this.topologies.values()) { - if (supportsProtocol(peerProtocols, protocols)) { + for (const protocol of peerProtocols) { + const topologies = this.topologies.get(protocol) + + if (topologies == null) { + // no topologies are interested in this protocol + continue + } + + for (const topology of topologies.values()) { topology.onDisconnect(connection.remotePeer) } } @@ -168,14 +169,28 @@ export class DefaultRegistrar implements Registrar { const removed = oldProtocols.filter(protocol => !protocols.includes(protocol)) const added = protocols.filter(protocol => !oldProtocols.includes(protocol)) - for (const { topology, protocols } of this.topologies.values()) { - if (supportsProtocol(removed, protocols)) { + for (const protocol of removed) { + const topologies = this.topologies.get(protocol) + + if (topologies == null) { + // no topologies are interested in this protocol + continue + } + + for (const topology of topologies.values()) { topology.onDisconnect(peerId) } } - for (const { topology, protocols } of this.topologies.values()) { - if (supportsProtocol(added, protocols)) { + for (const protocol of added) { + const topologies = this.topologies.get(protocol) + + if (topologies == null) { + // no topologies are interested in this protocol + continue + } + + for (const topology of topologies.values()) { const connection = this.components.getConnectionManager().getConnections(peerId)[0] if (connection == null) { diff --git a/src/transport-manager.ts b/src/transport-manager.ts index ba76aa78..0721cfcd 100644 --- a/src/transport-manager.ts +++ b/src/transport-manager.ts @@ -2,13 +2,13 @@ import { logger } from '@libp2p/logger' import pSettle from 'p-settle' import { codes } from './errors.js' import errCode from 'err-code' -import type { Listener, Transport, TransportManager, TransportManagerEvents } from '@libp2p/interfaces/transport' +import type { Listener, Transport, TransportManager, TransportManagerEvents } from '@libp2p/interface-transport' import type { Multiaddr } from '@multiformats/multiaddr' -import type { Connection } from '@libp2p/interfaces/connection' +import type { Connection } from '@libp2p/interface-connection' import type { AbortOptions } from '@libp2p/interfaces' import { CustomEvent, EventEmitter } from '@libp2p/interfaces/events' import type { Startable } from '@libp2p/interfaces/startable' -import type { Components } from '@libp2p/interfaces/components' +import type { Components } from '@libp2p/components' import { trackedMap } from '@libp2p/tracked-map' const log = logger('libp2p:transports') diff --git a/src/upgrader.ts b/src/upgrader.ts index 23f29619..961fd10d 100644 --- a/src/upgrader.ts +++ b/src/upgrader.ts @@ -8,13 +8,13 @@ import { codes } from './errors.js' import { createConnection } from '@libp2p/connection' import { CustomEvent, EventEmitter } from '@libp2p/interfaces/events' import { peerIdFromString } from '@libp2p/peer-id' -import type { Connection, ProtocolStream, Stream } from '@libp2p/interfaces/connection' -import type { ConnectionEncrypter, SecuredConnection } from '@libp2p/interfaces/connection-encrypter' -import type { StreamMuxer, StreamMuxerFactory } from '@libp2p/interfaces/stream-muxer' -import type { PeerId } from '@libp2p/interfaces/peer-id' -import type { MultiaddrConnection, Upgrader, UpgraderEvents } from '@libp2p/interfaces/transport' +import type { MultiaddrConnection, Connection, ProtocolStream, Stream } from '@libp2p/interface-connection' +import type { ConnectionEncrypter, SecuredConnection } from '@libp2p/interface-connection-encrypter' +import type { StreamMuxer, StreamMuxerFactory } from '@libp2p/interface-stream-muxer' +import type { PeerId } from '@libp2p/interface-peer-id' +import type { Upgrader, UpgraderEvents } from '@libp2p/interface-transport' import type { Duplex } from 'it-stream-types' -import type { Components } from '@libp2p/interfaces/components' +import { Components, isInitializable } from '@libp2p/components' import type { AbortOptions } from '@libp2p/interfaces' const log = logger('libp2p:upgrader') @@ -272,7 +272,7 @@ export class DefaultUpgrader extends EventEmitter implements Upg if (muxerFactory != null) { // Create the muxer - muxer = muxerFactory.createStreamMuxer(this.components, { + muxer = muxerFactory.createStreamMuxer({ // Run anytime a remote stream is created onIncomingStream: muxedStream => { if (connection == null) { @@ -313,6 +313,10 @@ export class DefaultUpgrader extends EventEmitter implements Upg } }) + if (isInitializable(muxer)) { + muxer.init(this.components) + } + newStream = async (protocols: string[], options: AbortOptions = {}): Promise => { if (muxer == null) { throw errCode(new Error('Stream is not multiplexed'), codes.ERR_MUXER_UNAVAILABLE) @@ -417,7 +421,7 @@ export class DefaultUpgrader extends EventEmitter implements Upg */ _onStream (opts: OnStreamOptions): void { const { connection, stream, protocol } = opts - const handler = this.components.getRegistrar().getHandler(protocol) + const { handler } = this.components.getRegistrar().getHandler(protocol) handler({ connection, stream, protocol }) } diff --git a/test/addresses/address-manager.spec.ts b/test/addresses/address-manager.spec.ts index 55e5326f..9095e620 100644 --- a/test/addresses/address-manager.spec.ts +++ b/test/addresses/address-manager.spec.ts @@ -7,10 +7,10 @@ import { createNode } from '../utils/creators/peer.js' import { createFromJSON } from '@libp2p/peer-id-factory' import Peers from '../fixtures/peers.js' import { stubInterface } from 'ts-sinon' -import type { TransportManager } from '@libp2p/interfaces/transport' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { TransportManager } from '@libp2p/interface-transport' +import type { PeerId } from '@libp2p/interface-peer-id' import type { Libp2p } from '../../src/index.js' -import { Components } from '@libp2p/interfaces/components' +import { Components } from '@libp2p/components' const listenAddresses = ['/ip4/127.0.0.1/tcp/15006/ws', '/ip4/127.0.0.1/tcp/15008/ws'] const announceAddreses = ['/dns4/peer.io'] diff --git a/test/configuration/pubsub.spec.ts b/test/configuration/pubsub.spec.ts index f3ca170f..fdc557e4 100644 --- a/test/configuration/pubsub.spec.ts +++ b/test/configuration/pubsub.spec.ts @@ -9,7 +9,7 @@ import { baseOptions, pubsubSubsystemOptions } from './utils.js' import { createPeerId } from '../utils/creators/peer.js' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { FloodSub } from '@libp2p/floodsub' -import type { PubSub } from '@libp2p/interfaces/pubsub' +import type { PubSub } from '@libp2p/interface-pubsub' describe('Pubsub subsystem is configurable', () => { let libp2p: Libp2p diff --git a/test/configuration/utils.ts b/test/configuration/utils.ts index b7cbacf8..a34385c9 100644 --- a/test/configuration/utils.ts +++ b/test/configuration/utils.ts @@ -5,9 +5,9 @@ import { WebSockets } from '@libp2p/websockets' import * as filters from '@libp2p/websockets/filters' import { MULTIADDRS_WEBSOCKETS } from '../fixtures/browser.js' import mergeOptions from 'merge-options' -import type { Message, PublishResult, PubSubInit, PubSubRPC, PubSubRPCMessage } from '@libp2p/interfaces/pubsub' +import type { Message, PublishResult, PubSubInit, PubSubRPC, PubSubRPCMessage } from '@libp2p/interface-pubsub' import type { Libp2pInit, Libp2pOptions } from '../../src/index.js' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerId } from '@libp2p/interface-peer-id' import * as cborg from 'cborg' import { peerIdFromString } from '@libp2p/peer-id' diff --git a/test/connection-manager/auto-dialler.spec.ts b/test/connection-manager/auto-dialler.spec.ts index e0e36052..2704435d 100644 --- a/test/connection-manager/auto-dialler.spec.ts +++ b/test/connection-manager/auto-dialler.spec.ts @@ -5,10 +5,10 @@ import { AutoDialler } from '../../src/connection-manager/auto-dialler.js' import pWaitFor from 'p-wait-for' import delay from 'delay' import { createEd25519PeerId } from '@libp2p/peer-id-factory' -import { Components } from '@libp2p/interfaces/components' +import { Components } from '@libp2p/components' import { stubInterface } from 'ts-sinon' -import type { ConnectionManager } from '@libp2p/interfaces/connection-manager' -import type { PeerStore, Peer } from '@libp2p/interfaces/peer-store' +import type { ConnectionManager } from '@libp2p/interface-connection-manager' +import type { PeerStore, Peer } from '@libp2p/interface-peer-store' describe('Auto-dialler', () => { it('should not dial self', async () => { diff --git a/test/connection-manager/index.node.ts b/test/connection-manager/index.node.ts index 9c053b0e..6e5d693c 100644 --- a/test/connection-manager/index.node.ts +++ b/test/connection-manager/index.node.ts @@ -2,19 +2,19 @@ import { expect } from 'aegir/chai' import { createNode, createPeerId } from '../utils/creators/peer.js' -import { mockConnection, mockDuplex, mockMultiaddrConnection, mockUpgrader } from '@libp2p/interface-compliance-tests/mocks' +import { mockConnection, mockDuplex, mockMultiaddrConnection, mockUpgrader } from '@libp2p/interface-mocks' import { createBaseOptions } from '../utils/base-options.browser.js' import type { Libp2p } from '../../src/index.js' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerId } from '@libp2p/interface-peer-id' import { DefaultConnectionManager } from '../../src/connection-manager/index.js' -import { Components } from '@libp2p/interfaces/components' +import { Components } from '@libp2p/components' import { CustomEvent } from '@libp2p/interfaces/events' -import * as STATUS from '@libp2p/interfaces/connection/status' +import * as STATUS from '@libp2p/interface-connection/status' import { stubInterface } from 'ts-sinon' -import type { KeyBook, PeerStore } from '@libp2p/interfaces/peer-store' +import type { KeyBook, PeerStore } from '@libp2p/interface-peer-store' import sinon from 'sinon' import pWaitFor from 'p-wait-for' -import type { Connection } from '@libp2p/interfaces/connection' +import type { Connection } from '@libp2p/interface-connection' import delay from 'delay' import type { Libp2pNode } from '../../src/libp2p.js' import { codes } from '../../src/errors.js' diff --git a/test/connection-manager/index.spec.ts b/test/connection-manager/index.spec.ts index 7253bcd1..950223c0 100644 --- a/test/connection-manager/index.spec.ts +++ b/test/connection-manager/index.spec.ts @@ -6,7 +6,7 @@ import { createNode } from '../utils/creators/peer.js' import { createBaseOptions } from '../utils/base-options.browser.js' import type { Libp2pNode } from '../../src/libp2p.js' import type { DefaultConnectionManager } from '../../src/connection-manager/index.js' -import { mockConnection, mockDuplex, mockMultiaddrConnection } from '@libp2p/interface-compliance-tests/mocks' +import { mockConnection, mockDuplex, mockMultiaddrConnection } from '@libp2p/interface-mocks' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { CustomEvent } from '@libp2p/interfaces/events' diff --git a/test/content-routing/content-routing.node.ts b/test/content-routing/content-routing.node.ts index 8ced7d6f..0a6280a7 100644 --- a/test/content-routing/content-routing.node.ts +++ b/test/content-routing/content-routing.node.ts @@ -14,7 +14,7 @@ import { createNode, createPeerId, populateAddressBooks } from '../utils/creator import { createBaseOptions } from '../utils/base-options.js' import { createRoutingOptions } from './utils.js' import type { Libp2p } from '../../src/index.js' -import type { PeerInfo } from '@libp2p/interfaces/peer-info' +import type { PeerInfo } from '@libp2p/interface-peer-info' import type { Libp2pNode } from '../../src/libp2p.js' describe('content-routing', () => { diff --git a/test/content-routing/dht/operation.node.ts b/test/content-routing/dht/operation.node.ts index 65bee28f..412ae765 100644 --- a/test/content-routing/dht/operation.node.ts +++ b/test/content-routing/dht/operation.node.ts @@ -6,7 +6,7 @@ import pWaitFor from 'p-wait-for' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { subsystemMulticodecs, createSubsystemOptions } from './utils.js' import { createPeerId } from '../../utils/creators/peer.js' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerId } from '@libp2p/interface-peer-id' import { createLibp2pNode, Libp2pNode } from '../../../src/libp2p.js' import { start } from '@libp2p/interfaces/startable' diff --git a/test/core/encryption.spec.ts b/test/core/encryption.spec.ts index a2cca6a5..54d4d4c8 100644 --- a/test/core/encryption.spec.ts +++ b/test/core/encryption.spec.ts @@ -6,7 +6,7 @@ import { NOISE } from '@chainsafe/libp2p-noise' import { createLibp2p, Libp2pOptions } from '../../src/index.js' import { codes as ErrorCodes } from '../../src/errors.js' import { createPeerId } from '../utils/creators/peer.js' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerId } from '@libp2p/interface-peer-id' describe('Connection encryption configuration', () => { let peerId: PeerId diff --git a/test/core/listening.node.ts b/test/core/listening.node.ts index 26b0162e..fdb7e662 100644 --- a/test/core/listening.node.ts +++ b/test/core/listening.node.ts @@ -4,7 +4,7 @@ import { expect } from 'aegir/chai' import { TCP } from '@libp2p/tcp' import { NOISE } from '@chainsafe/libp2p-noise' import { createPeerId } from '../utils/creators/peer.js' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerId } from '@libp2p/interface-peer-id' import { createLibp2pNode, Libp2pNode } from '../../src/libp2p.js' const listenAddr = '/ip4/0.0.0.0/tcp/0' diff --git a/test/dialing/dial-request.spec.ts b/test/dialing/dial-request.spec.ts index 3c945922..b6dd5222 100644 --- a/test/dialing/dial-request.spec.ts +++ b/test/dialing/dial-request.spec.ts @@ -6,7 +6,7 @@ import { AbortError } from '@libp2p/interfaces/errors' import pDefer from 'p-defer' import delay from 'delay' import { DialAction, DialRequest } from '../../src/connection-manager/dialer/dial-request.js' -import { mockConnection, mockDuplex, mockMultiaddrConnection } from '@libp2p/interface-compliance-tests/mocks' +import { mockConnection, mockDuplex, mockMultiaddrConnection } from '@libp2p/interface-mocks' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { Multiaddr } from '@multiformats/multiaddr' import { Dialer } from '../../src/connection-manager/dialer/index.js' diff --git a/test/dialing/direct.node.ts b/test/dialing/direct.node.ts index 9c849883..c5e3b4f5 100644 --- a/test/dialing/direct.node.ts +++ b/test/dialing/direct.node.ts @@ -13,7 +13,7 @@ import pSettle, { PromiseResult } from 'p-settle' import pWaitFor from 'p-wait-for' import { pipe } from 'it-pipe' import { pushable } from 'it-pushable' -import { Connection, isConnection } from '@libp2p/interfaces/connection' +import { Connection, isConnection } from '@libp2p/interface-connection' import { AbortError } from '@libp2p/interfaces/errors' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { MemoryDatastore } from 'datastore-core/memory' @@ -22,11 +22,11 @@ import { DefaultAddressManager } from '../../src/address-manager/index.js' import { PersistentPeerStore } from '@libp2p/peer-store' import { DefaultTransportManager } from '../../src/transport-manager.js' import { codes as ErrorCodes } from '../../src/errors.js' -import { mockConnectionGater, mockDuplex, mockMultiaddrConnection, mockUpgrader, mockConnection } from '@libp2p/interface-compliance-tests/mocks' +import { mockConnectionGater, mockDuplex, mockMultiaddrConnection, mockUpgrader, mockConnection } from '@libp2p/interface-mocks' import Peers from '../fixtures/peers.js' -import { Components } from '@libp2p/interfaces/components' +import { Components } from '@libp2p/components' import { createFromJSON } from '@libp2p/peer-id-factory' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerId } from '@libp2p/interface-peer-id' import { createLibp2pNode, Libp2pNode } from '../../src/libp2p.js' import { PreSharedKeyConnectionProtector } from '../../src/pnet/index.js' import swarmKey from '../fixtures/swarm.key.js' @@ -382,7 +382,7 @@ describe('libp2p.dialer (direct, TCP)', () => { await libp2p.dialProtocol(remoteLibp2p.peerId, '/stream-count/4') // Partially write to the echo stream - const source = pushable() + const source = pushable() void stream.sink(source) source.push(uint8ArrayFromString('hello')) diff --git a/test/dialing/direct.spec.ts b/test/dialing/direct.spec.ts index 444c9d41..e4112c97 100644 --- a/test/dialing/direct.spec.ts +++ b/test/dialing/direct.spec.ts @@ -17,18 +17,18 @@ import { Dialer, DialTarget } from '../../src/connection-manager/dialer/index.js import { publicAddressesFirst } from '@libp2p/utils/address-sort' import { PersistentPeerStore } from '@libp2p/peer-store' import { DefaultTransportManager } from '../../src/transport-manager.js' -import { mockConnectionGater, mockDuplex, mockMultiaddrConnection, mockUpgrader, mockConnection } from '@libp2p/interface-compliance-tests/mocks' +import { mockConnectionGater, mockDuplex, mockMultiaddrConnection, mockUpgrader, mockConnection } from '@libp2p/interface-mocks' import { createPeerId } from '../utils/creators/peer.js' -import type { TransportManager } from '@libp2p/interfaces/transport' -import { Components } from '@libp2p/interfaces/components' +import type { TransportManager } from '@libp2p/interface-transport' +import { Components } from '@libp2p/components' import { peerIdFromString } from '@libp2p/peer-id' -import type { Connection } from '@libp2p/interfaces/connection' +import type { Connection } from '@libp2p/interface-connection' import { createLibp2pNode, Libp2pNode } from '../../src/libp2p.js' import { DefaultConnectionManager } from '../../src/connection-manager/index.js' import { createFromJSON } from '@libp2p/peer-id-factory' import Peers from '../fixtures/peers.js' import { MULTIADDRS_WEBSOCKETS } from '../fixtures/browser.js' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerId } from '@libp2p/interface-peer-id' import { pEvent } from 'p-event' const unsupportedAddr = new Multiaddr('/ip4/127.0.0.1/tcp/9999') diff --git a/test/dialing/resolver.spec.ts b/test/dialing/resolver.spec.ts index 3e39b227..ded6e52d 100644 --- a/test/dialing/resolver.spec.ts +++ b/test/dialing/resolver.spec.ts @@ -7,11 +7,11 @@ import { codes as ErrorCodes } from '../../src/errors.js' import { createNode } from '../utils/creators/peer.js' import { createBaseOptions } from '../utils/base-options.browser.js' import { MULTIADDRS_WEBSOCKETS } from '../fixtures/browser.js' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerId } from '@libp2p/interface-peer-id' import type { Libp2pNode } from '../../src/libp2p.js' import { Circuit } from '../../src/circuit/transport.js' import pDefer from 'p-defer' -import { mockConnection, mockDuplex, mockMultiaddrConnection } from '@libp2p/interface-compliance-tests/mocks' +import { mockConnection, mockDuplex, mockMultiaddrConnection } from '@libp2p/interface-mocks' import { peerIdFromString } from '@libp2p/peer-id' import { WebSockets } from '@libp2p/websockets' diff --git a/test/fetch/fetch.node.ts b/test/fetch/fetch.node.ts index c33b73a7..32a089d9 100644 --- a/test/fetch/fetch.node.ts +++ b/test/fetch/fetch.node.ts @@ -7,7 +7,7 @@ import { Mplex } from '@libp2p/mplex' import { NOISE } from '@chainsafe/libp2p-noise' import { createPeerId } from '../utils/creators/peer.js' import { codes } from '../../src/errors.js' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerId } from '@libp2p/interface-peer-id' async function createNode (peerId: PeerId) { return await createLibp2pNode({ diff --git a/test/fetch/index.spec.ts b/test/fetch/index.spec.ts index 0e9d173b..f776d777 100644 --- a/test/fetch/index.spec.ts +++ b/test/fetch/index.spec.ts @@ -4,9 +4,9 @@ import { expect } from 'aegir/chai' import sinon from 'sinon' import { FetchService } from '../../src/fetch/index.js' import Peers from '../fixtures/peers.js' -import { mockRegistrar, mockUpgrader, connectionPair } from '@libp2p/interface-compliance-tests/mocks' +import { mockRegistrar, mockUpgrader, connectionPair } from '@libp2p/interface-mocks' import { createFromJSON } from '@libp2p/peer-id-factory' -import { Components } from '@libp2p/interfaces/components' +import { Components } from '@libp2p/components' import { DefaultConnectionManager } from '../../src/connection-manager/index.js' import { start, stop } from '@libp2p/interfaces/startable' import { CustomEvent } from '@libp2p/interfaces/events' diff --git a/test/identify/index.spec.ts b/test/identify/index.spec.ts index b47f9f01..b59bbe07 100644 --- a/test/identify/index.spec.ts +++ b/test/identify/index.spec.ts @@ -14,9 +14,9 @@ import { MemoryDatastore } from 'datastore-core/memory' import * as lp from 'it-length-prefixed' import drain from 'it-drain' import { pipe } from 'it-pipe' -import { mockConnectionGater, mockRegistrar, mockUpgrader, connectionPair } from '@libp2p/interface-compliance-tests/mocks' +import { mockConnectionGater, mockRegistrar, mockUpgrader, connectionPair } from '@libp2p/interface-mocks' import { createFromJSON } from '@libp2p/peer-id-factory' -import { Components } from '@libp2p/interfaces/components' +import { Components } from '@libp2p/components' import { PeerRecordUpdater } from '../../src/peer-record-updater.js' import { MULTICODEC_IDENTIFY, diff --git a/test/identify/push.spec.ts b/test/identify/push.spec.ts index 8f0b62e6..e9b5a7df 100644 --- a/test/identify/push.spec.ts +++ b/test/identify/push.spec.ts @@ -10,9 +10,9 @@ import { DefaultAddressManager } from '../../src/address-manager/index.js' import { MemoryDatastore } from 'datastore-core/memory' import drain from 'it-drain' import { pipe } from 'it-pipe' -import { mockConnectionGater, mockRegistrar, mockUpgrader, connectionPair } from '@libp2p/interface-compliance-tests/mocks' +import { mockConnectionGater, mockRegistrar, mockUpgrader, connectionPair } from '@libp2p/interface-mocks' import { createFromJSON } from '@libp2p/peer-id-factory' -import { Components } from '@libp2p/interfaces/components' +import { Components } from '@libp2p/components' import { PeerRecordUpdater } from '../../src/peer-record-updater.js' import { MULTICODEC_IDENTIFY, diff --git a/test/identify/service.spec.ts b/test/identify/service.spec.ts index 3f198eb2..e772bad3 100644 --- a/test/identify/service.spec.ts +++ b/test/identify/service.spec.ts @@ -11,7 +11,7 @@ import { MULTIADDRS_WEBSOCKETS } from '../fixtures/browser.js' import { createFromJSON } from '@libp2p/peer-id-factory' import pWaitFor from 'p-wait-for' import { peerIdFromString } from '@libp2p/peer-id' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerId } from '@libp2p/interface-peer-id' import type { Libp2pNode } from '../../src/libp2p.js' import { pEvent } from 'p-event' diff --git a/test/insecure/compliance.spec.ts b/test/insecure/compliance.spec.ts index 2c919f2d..88b013d1 100644 --- a/test/insecure/compliance.spec.ts +++ b/test/insecure/compliance.spec.ts @@ -1,6 +1,6 @@ /* eslint-env mocha */ -import suite from '@libp2p/interface-compliance-tests/connection-encrypter' +import suite from '@libp2p/interface-connection-encrypter-compliance-tests' import { Plaintext } from '../../src/insecure/index.js' describe('plaintext compliance', () => { diff --git a/test/insecure/plaintext.spec.ts b/test/insecure/plaintext.spec.ts index 2ad62faa..7e3a9a7e 100644 --- a/test/insecure/plaintext.spec.ts +++ b/test/insecure/plaintext.spec.ts @@ -7,11 +7,11 @@ import { Plaintext } from '../../src/insecure/index.js' import { InvalidCryptoExchangeError, UnexpectedPeerError -} from '@libp2p/interfaces/connection-encrypter/errors' -import type { PeerId } from '@libp2p/interfaces/peer-id' +} from '@libp2p/interface-connection-encrypter/errors' +import type { PeerId } from '@libp2p/interface-peer-id' import { createFromJSON, createRSAPeerId } from '@libp2p/peer-id-factory' -import type { ConnectionEncrypter } from '@libp2p/interfaces/connection-encrypter' -import { mockMultiaddrConnPair } from '@libp2p/interface-compliance-tests/mocks' +import type { ConnectionEncrypter } from '@libp2p/interface-connection-encrypter' +import { mockMultiaddrConnPair } from '@libp2p/interface-mocks' import { Multiaddr } from '@multiformats/multiaddr' import { peerIdFromBytes } from '@libp2p/peer-id' diff --git a/test/interop.ts b/test/interop.ts index 511b6a07..bf83312e 100644 --- a/test/interop.ts +++ b/test/interop.ts @@ -14,7 +14,7 @@ import { logger } from '@libp2p/logger' import { Mplex } from '@libp2p/mplex' import fs from 'fs' import { unmarshalPrivateKey } from '@libp2p/crypto/keys' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerId } from '@libp2p/interface-peer-id' import { peerIdFromKeys } from '@libp2p/peer-id' import { FloodSub } from '@libp2p/floodsub' diff --git a/test/keychain/cms-interop.spec.ts b/test/keychain/cms-interop.spec.ts index 5a3494c7..6349ce4d 100644 --- a/test/keychain/cms-interop.spec.ts +++ b/test/keychain/cms-interop.spec.ts @@ -6,7 +6,7 @@ import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { toString as uint8ArrayToString } from 'uint8arrays/to-string' import { MemoryDatastore } from 'datastore-core/memory' import { KeyChain } from '../../src/keychain/index.js' -import { Components } from '@libp2p/interfaces/components' +import { Components } from '@libp2p/components' describe('cms interop', () => { const passPhrase = 'this is not a secure phrase' diff --git a/test/keychain/keychain.spec.ts b/test/keychain/keychain.spec.ts index fc7feb79..dd742d48 100644 --- a/test/keychain/keychain.spec.ts +++ b/test/keychain/keychain.spec.ts @@ -9,9 +9,9 @@ import { Key } from 'interface-datastore/key' import { MemoryDatastore } from 'datastore-core/memory' import { KeyChain, KeyChainInit, KeyInfo } from '../../src/keychain/index.js' import { pbkdf2 } from '@libp2p/crypto' -import { Components } from '@libp2p/interfaces/components' +import { Components } from '@libp2p/components' import type { Datastore } from 'interface-datastore' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerId } from '@libp2p/interface-peer-id' import { createFromPrivKey } from '@libp2p/peer-id-factory' import { unmarshalPrivateKey } from '@libp2p/crypto/keys' diff --git a/test/keychain/peerid.spec.ts b/test/keychain/peerid.spec.ts index c776bd90..49d5da1a 100644 --- a/test/keychain/peerid.spec.ts +++ b/test/keychain/peerid.spec.ts @@ -4,7 +4,7 @@ import { expect } from 'aegir/chai' import { base58btc } from 'multiformats/bases/base58' import { supportedKeys, unmarshalPrivateKey, unmarshalPublicKey } from '@libp2p/crypto/keys' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerId } from '@libp2p/interface-peer-id' import { createFromPrivKey } from '@libp2p/peer-id-factory' const sample = { diff --git a/test/metrics/index.spec.ts b/test/metrics/index.spec.ts index 2efe63ee..7bb0062f 100644 --- a/test/metrics/index.spec.ts +++ b/test/metrics/index.spec.ts @@ -14,7 +14,7 @@ import { createPeerId } from '../utils/creators/peer.js' import toBuffer from 'it-to-buffer' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { peerIdFromString } from '@libp2p/peer-id' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerId } from '@libp2p/interface-peer-id' describe('Metrics', () => { let peerId: PeerId @@ -199,7 +199,7 @@ describe('Metrics', () => { }) const bytes = randomBytes(1024) - const input = pushable() + const input = pushable() const deferredPromise = pipe(input, local, drain) diff --git a/test/nat-manager/nat-manager.node.ts b/test/nat-manager/nat-manager.node.ts index 30e251ee..01049a2a 100644 --- a/test/nat-manager/nat-manager.node.ts +++ b/test/nat-manager/nat-manager.node.ts @@ -4,13 +4,13 @@ import { expect } from 'aegir/chai' import { DefaultAddressManager } from '../../src/address-manager/index.js' import { DefaultTransportManager, FaultTolerance } from '../../src/transport-manager.js' import { TCP } from '@libp2p/tcp' -import { mockUpgrader } from '@libp2p/interface-compliance-tests/mocks' +import { mockUpgrader } from '@libp2p/interface-mocks' import { NatManager } from '../../src/nat-manager.js' import delay from 'delay' import Peers from '../fixtures/peers.js' import { codes } from '../../src/errors.js' import { createFromJSON } from '@libp2p/peer-id-factory' -import { Components } from '@libp2p/interfaces/components' +import { Components } from '@libp2p/components' import type { NatAPI } from '@achingbrain/nat-port-mapper' import { StubbedInstance, stubInterface } from 'ts-sinon' import { start, stop } from '@libp2p/interfaces/startable' diff --git a/test/peer-discovery/index.node.ts b/test/peer-discovery/index.node.ts index f3325075..9b8591b0 100644 --- a/test/peer-discovery/index.node.ts +++ b/test/peer-discovery/index.node.ts @@ -11,10 +11,10 @@ import { Multiaddr } from '@multiformats/multiaddr' import { toString as uint8ArrayToString } from 'uint8arrays/to-string' import { createBaseOptions } from '../utils/base-options.js' import { createPeerId } from '../utils/creators/peer.js' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerId } from '@libp2p/interface-peer-id' import { createLibp2pNode, Libp2pNode } from '../../src/libp2p.js' import { CustomEvent } from '@libp2p/interfaces/events' -import type { PeerInfo } from '@libp2p/interfaces/peer-info' +import type { PeerInfo } from '@libp2p/interface-peer-info' const listenAddr = new Multiaddr('/ip4/127.0.0.1/tcp/0') diff --git a/test/peer-discovery/index.spec.ts b/test/peer-discovery/index.spec.ts index 6e453c5c..d76f06ba 100644 --- a/test/peer-discovery/index.spec.ts +++ b/test/peer-discovery/index.spec.ts @@ -6,9 +6,9 @@ import defer from 'p-defer' import { Multiaddr } from '@multiformats/multiaddr' import { createBaseOptions } from '../utils/base-options.browser.js' import { createPeerId } from '../utils/creators/peer.js' -import { isPeerId, PeerId } from '@libp2p/interfaces/peer-id' +import { isPeerId, PeerId } from '@libp2p/interface-peer-id' import { createLibp2pNode, Libp2pNode } from '../../src/libp2p.js' -import { mockConnection, mockDuplex, mockMultiaddrConnection } from '@libp2p/interface-compliance-tests/mocks' +import { mockConnection, mockDuplex, mockMultiaddrConnection } from '@libp2p/interface-mocks' import type { Startable } from '@libp2p/interfaces/startable' describe('peer discovery', () => { diff --git a/test/peer-routing/peer-routing.node.ts b/test/peer-routing/peer-routing.node.ts index f98abfa0..f924d86b 100644 --- a/test/peer-routing/peer-routing.node.ts +++ b/test/peer-routing/peer-routing.node.ts @@ -16,11 +16,11 @@ import { createNode, createPeerId, populateAddressBooks } from '../utils/creator import type { Libp2pNode } from '../../src/libp2p.js' import { createBaseOptions } from '../utils/base-options.js' import { createRoutingOptions } from './utils.js' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerId } from '@libp2p/interface-peer-id' import { createEd25519PeerId } from '@libp2p/peer-id-factory' -import { EventTypes, MessageType } from '@libp2p/interfaces/dht' +import { EventTypes, MessageType } from '@libp2p/interface-dht' import { peerIdFromString } from '@libp2p/peer-id' -import type { PeerInfo } from '@libp2p/interfaces/peer-info' +import type { PeerInfo } from '@libp2p/interface-peer-info' import { KadDHT } from '@libp2p/kad-dht' describe('peer-routing', () => { diff --git a/test/ping/index.spec.ts b/test/ping/index.spec.ts index d97837bb..b8be7e64 100644 --- a/test/ping/index.spec.ts +++ b/test/ping/index.spec.ts @@ -4,9 +4,9 @@ import { expect } from 'aegir/chai' import sinon from 'sinon' import { PingService } from '../../src/ping/index.js' import Peers from '../fixtures/peers.js' -import { mockRegistrar, mockUpgrader, connectionPair } from '@libp2p/interface-compliance-tests/mocks' +import { mockRegistrar, mockUpgrader, connectionPair } from '@libp2p/interface-mocks' import { createFromJSON } from '@libp2p/peer-id-factory' -import { Components } from '@libp2p/interfaces/components' +import { Components } from '@libp2p/components' import { DefaultConnectionManager } from '../../src/connection-manager/index.js' import { start, stop } from '@libp2p/interfaces/startable' import { CustomEvent } from '@libp2p/interfaces/events' diff --git a/test/pnet/index.spec.ts b/test/pnet/index.spec.ts index cb1fae3a..6675db8e 100644 --- a/test/pnet/index.spec.ts +++ b/test/pnet/index.spec.ts @@ -5,7 +5,7 @@ import all from 'it-all' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { PreSharedKeyConnectionProtector, generateKey } from '../../src/pnet/index.js' import { INVALID_PSK } from '../../src/pnet/errors.js' -import { mockMultiaddrConnPair } from '@libp2p/interface-compliance-tests/mocks' +import { mockMultiaddrConnPair } from '@libp2p/interface-mocks' import { Multiaddr } from '@multiformats/multiaddr' import { createEd25519PeerId } from '@libp2p/peer-id-factory' diff --git a/test/registrar/registrar.spec.ts b/test/registrar/registrar.spec.ts index 259ae13e..4848c64a 100644 --- a/test/registrar/registrar.spec.ts +++ b/test/registrar/registrar.spec.ts @@ -6,21 +6,21 @@ import { MemoryDatastore } from 'datastore-core/memory' import { createTopology } from '@libp2p/topology' import { PersistentPeerStore } from '@libp2p/peer-store' import { DefaultRegistrar } from '../../src/registrar.js' -import { mockDuplex, mockMultiaddrConnection, mockUpgrader, mockConnection } from '@libp2p/interface-compliance-tests/mocks' +import { mockDuplex, mockMultiaddrConnection, mockUpgrader, mockConnection } from '@libp2p/interface-mocks' import { createPeerId, createNode } from '../utils/creators/peer.js' import { createBaseOptions } from '../utils/base-options.browser.js' -import type { Registrar } from '@libp2p/interfaces/registrar' -import type { PeerId } from '@libp2p/interfaces/peer-id' -import { Components } from '@libp2p/interfaces/components' +import type { Registrar } from '@libp2p/interface-registrar' +import type { PeerId } from '@libp2p/interface-peer-id' +import { Components } from '@libp2p/components' import { createLibp2pNode, Libp2pNode } from '../../src/libp2p.js' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { CustomEvent } from '@libp2p/interfaces/events' -import type { Connection } from '@libp2p/interfaces/connection' +import type { Connection } from '@libp2p/interface-connection' import { DefaultConnectionManager } from '../../src/connection-manager/index.js' import { Plaintext } from '../../src/insecure/index.js' import { WebSockets } from '@libp2p/websockets' import { Mplex } from '@libp2p/mplex' -import type { PeerProtocolsChangeData } from '@libp2p/interfaces/peer-store' +import type { PeerProtocolsChangeData } from '@libp2p/interface-peer-store' const protocol = '/test/1.0.0' @@ -238,12 +238,12 @@ describe('registrar', () => { const echoHandler = () => {} await libp2p.handle(['/echo/1.0.0', '/echo/1.0.1'], echoHandler) - expect(registrar.getHandler('/echo/1.0.0')).to.equal(echoHandler) - expect(registrar.getHandler('/echo/1.0.1')).to.equal(echoHandler) + expect(registrar.getHandler('/echo/1.0.0')).to.have.property('handler', echoHandler) + expect(registrar.getHandler('/echo/1.0.1')).to.have.property('handler', echoHandler) await libp2p.unhandle(['/echo/1.0.0']) expect(registrar.getProtocols()).to.not.have.any.keys(['/echo/1.0.0']) - expect(registrar.getHandler('/echo/1.0.1')).to.equal(echoHandler) + expect(registrar.getHandler('/echo/1.0.1')).to.have.property('handler', echoHandler) }) }) }) diff --git a/test/transports/transport-manager.node.ts b/test/transports/transport-manager.node.ts index ce0f57e9..b5fbcf7c 100644 --- a/test/transports/transport-manager.node.ts +++ b/test/transports/transport-manager.node.ts @@ -8,13 +8,13 @@ import { PersistentPeerStore } from '@libp2p/peer-store' import { PeerRecord } from '@libp2p/peer-record' import { TCP } from '@libp2p/tcp' import { Multiaddr } from '@multiformats/multiaddr' -import { mockUpgrader } from '@libp2p/interface-compliance-tests/mocks' +import { mockUpgrader } from '@libp2p/interface-mocks' import sinon from 'sinon' import Peers from '../fixtures/peers.js' import pWaitFor from 'p-wait-for' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerId } from '@libp2p/interface-peer-id' import { createFromJSON } from '@libp2p/peer-id-factory' -import { Components } from '@libp2p/interfaces/components' +import { Components } from '@libp2p/components' import { PeerRecordUpdater } from '../../src/peer-record-updater.js' const addrs = [ diff --git a/test/transports/transport-manager.spec.ts b/test/transports/transport-manager.spec.ts index 059b5c10..8ca53aa9 100644 --- a/test/transports/transport-manager.spec.ts +++ b/test/transports/transport-manager.spec.ts @@ -8,13 +8,13 @@ import * as filters from '@libp2p/websockets/filters' import { NOISE } from '@chainsafe/libp2p-noise' import { DefaultAddressManager } from '../../src/address-manager/index.js' import { DefaultTransportManager, FaultTolerance } from '../../src/transport-manager.js' -import { mockUpgrader } from '@libp2p/interface-compliance-tests/mocks' +import { mockUpgrader } from '@libp2p/interface-mocks' import { MULTIADDRS_WEBSOCKETS } from '../fixtures/browser.js' import { codes as ErrorCodes } from '../../src/errors.js' import Peers from '../fixtures/peers.js' -import { Components } from '@libp2p/interfaces/components' +import { Components } from '@libp2p/components' import { createEd25519PeerId, createFromJSON } from '@libp2p/peer-id-factory' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerId } from '@libp2p/interface-peer-id' import { createLibp2pNode, Libp2pNode } from '../../src/libp2p.js' const listenAddr = new Multiaddr('/ip4/127.0.0.1/tcp/0') diff --git a/test/upgrading/upgrader.spec.ts b/test/upgrading/upgrader.spec.ts index 26e31699..216343d5 100644 --- a/test/upgrading/upgrader.spec.ts +++ b/test/upgrading/upgrader.spec.ts @@ -14,16 +14,16 @@ import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import swarmKey from '../fixtures/swarm.key.js' import { DefaultUpgrader } from '../../src/upgrader.js' import { codes } from '../../src/errors.js' -import { mockConnectionGater, mockMultiaddrConnPair, mockRegistrar, mockStream } from '@libp2p/interface-compliance-tests/mocks' +import { mockConnectionGater, mockMultiaddrConnPair, mockRegistrar, mockStream } from '@libp2p/interface-mocks' import Peers from '../fixtures/peers.js' -import type { Upgrader } from '@libp2p/interfaces/transport' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { Upgrader } from '@libp2p/interface-transport' +import type { PeerId } from '@libp2p/interface-peer-id' import { createFromJSON } from '@libp2p/peer-id-factory' -import { Components } from '@libp2p/interfaces/components' +import { Components } from '@libp2p/components' import { Plaintext } from '../../src/insecure/index.js' -import type { ConnectionEncrypter, SecuredConnection } from '@libp2p/interfaces/connection-encrypter' -import type { StreamMuxer, StreamMuxerFactory, StreamMuxerInit } from '@libp2p/interfaces/stream-muxer' -import type { Stream } from '@libp2p/interfaces/connection' +import type { ConnectionEncrypter, SecuredConnection } from '@libp2p/interface-connection-encrypter' +import type { StreamMuxer, StreamMuxerFactory, StreamMuxerInit } from '@libp2p/interface-stream-muxer' +import type { Stream } from '@libp2p/interface-connection' import pDefer from 'p-defer' import { createLibp2pNode, Libp2pNode } from '../../src/libp2p.js' import { pEvent } from 'p-event' @@ -248,7 +248,7 @@ describe('Upgrader', () => { class OtherMuxerFactory implements StreamMuxerFactory { protocol = '/muxer-local' - createStreamMuxer (components: Components, init?: StreamMuxerInit): StreamMuxer { + createStreamMuxer (init?: StreamMuxerInit): StreamMuxer { return new OtherMuxer() } } diff --git a/test/utils/creators/peer.ts b/test/utils/creators/peer.ts index e010c0e6..85569e5b 100644 --- a/test/utils/creators/peer.ts +++ b/test/utils/creators/peer.ts @@ -4,7 +4,7 @@ import { createBaseOptions } from '../base-options.browser.js' import { createEd25519PeerId, createFromJSON, createRSAPeerId } from '@libp2p/peer-id-factory' import { createLibp2pNode, Libp2pNode } from '../../../src/libp2p.js' import type { AddressesConfig, Libp2pOptions } from '../../../src/index.js' -import type { PeerId } from '@libp2p/interfaces/peer-id' +import type { PeerId } from '@libp2p/interface-peer-id' const listenAddr = new Multiaddr('/ip4/127.0.0.1/tcp/0')