diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index 015bb9122d..d265878deb 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -19,38 +19,38 @@ jobs: node-version: lts/* - uses: ipfs/aegir/actions/cache-node-modules@master - test-examples: - name: Test example ${{ matrix.example.name }} - runs-on: ubuntu-latest - needs: build - continue-on-error: true - strategy: - matrix: - example: - - name: js-libp2p-example-chat - repo: https://github.com/libp2p/js-libp2p-example-chat.git - deps: - - '@libp2p/peer-id-factory@$PWD/packages/peer-id-factory' - - '@libp2p/tcp@$PWD/packages/transport-tcp' - - '@libp2p/websockets@$PWD/packages/transport-websockets' - - 'libp2p@$PWD/packages/libp2p' - # disabled until @libp2p/identify and @libp2p/circuit-relay are published - # - name: js-libp2p-example-circuit-relay - # repo: https://github.com/libp2p/js-libp2p-example-circuit-relay.git - # deps: - # - '@libp2p/circuit-relay@$PWD/packages/transport-circuit-relay' - # - '@libp2p/identify@$PWD/packages/protocol-identify' - # - '@libp2p/websockets@$PWD/packages/transport-websockets' - # - 'libp2p@$PWD/packages/libp2p' - - name: js-libp2p-example-connection-encryption - repo: https://github.com/libp2p/js-libp2p-example-connection-encryption.git - deps: - - '@libp2p/tcp@$PWD/packages/transport-tcp' - - 'libp2p@$PWD/packages/libp2p' - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: lts/* - - uses: ipfs/aegir/actions/cache-node-modules@master - - run: npx xvfb-maybe aegir test-dependant ${{ matrix.example.repo }} --deps ${{ join(matrix.example.deps, ',') }} + # test-examples: + # name: Test example ${{ matrix.example.name }} + # runs-on: ubuntu-latest + # needs: build + # continue-on-error: true + # strategy: + # matrix: + # example: + # - name: js-libp2p-example-chat + # repo: https://github.com/libp2p/js-libp2p-example-chat.git + # deps: + # - '@libp2p/peer-id-factory@$PWD/packages/peer-id-factory' + # - '@libp2p/tcp@$PWD/packages/transport-tcp' + # - '@libp2p/websockets@$PWD/packages/transport-websockets' + # - 'libp2p@$PWD/packages/libp2p' + # # disabled until @libp2p/identify and @libp2p/circuit-relay are published + # # - name: js-libp2p-example-circuit-relay + # # repo: https://github.com/libp2p/js-libp2p-example-circuit-relay.git + # # deps: + # # - '@libp2p/circuit-relay@$PWD/packages/transport-circuit-relay' + # # - '@libp2p/identify@$PWD/packages/protocol-identify' + # # - '@libp2p/websockets@$PWD/packages/transport-websockets' + # # - 'libp2p@$PWD/packages/libp2p' + # - name: js-libp2p-example-connection-encryption + # repo: https://github.com/libp2p/js-libp2p-example-connection-encryption.git + # deps: + # - '@libp2p/tcp@$PWD/packages/transport-tcp' + # - 'libp2p@$PWD/packages/libp2p' + # steps: + # - uses: actions/checkout@v3 + # - uses: actions/setup-node@v3 + # with: + # node-version: lts/* + # - uses: ipfs/aegir/actions/cache-node-modules@master + # - run: npx xvfb-maybe aegir test-dependant ${{ matrix.example.repo }} --deps ${{ join(matrix.example.deps, ',') }} diff --git a/doc/CONFIGURATION.md b/doc/CONFIGURATION.md index 62dea56ee1..2e289b326e 100644 --- a/doc/CONFIGURATION.md +++ b/doc/CONFIGURATION.md @@ -318,7 +318,7 @@ import { mplex } from '@libp2p/mplex' import { yamux } from '@chainsafe/libp2p-yamux' import { noise } from '@chainsafe/libp2p-noise' import { gossipsub } from 'libp2p-gossipsub' -import { SignaturePolicy } from '@libp2p/interface/pubsub' +import { SignaturePolicy } from '@libp2p/interface' import { identify } from '@libp2p/identify' const node = await createLibp2p({ diff --git a/doc/METRICS.md b/doc/METRICS.md index a3a6b64d17..8ad2e70db4 100644 --- a/doc/METRICS.md +++ b/doc/METRICS.md @@ -62,7 +62,7 @@ const node = await createLibp2p({ To define component metrics first get a reference to the metrics object: ```ts -import type { Metrics } from '@libp2p/interface/metrics' +import type { Metrics } from '@libp2p/interface' interface MyClassComponents { metrics: Metrics @@ -84,7 +84,7 @@ class MyClass { A tracked metric can be created by calling either `registerMetric` on the metrics object: ```ts -import type { Metrics } from '@libp2p/interface/metrics' +import type { Metrics } from '@libp2p/interface' import { prometheusMetrics } from '@libp2p/prometheus-metrics' const metrics: Metrics = prometheusMetrics()() @@ -117,7 +117,7 @@ stopTimer() A metric that is expensive to calculate can be created by passing a `calculate` function that will only be invoked when metrics are being scraped: ```ts -import type { Metrics } from '@libp2p/interface/metrics' +import type { Metrics } from '@libp2p/interface' import { prometheusMetrics } from '@libp2p/prometheus-metrics' const metrics: Metrics = prometheusMetrics()() @@ -132,7 +132,7 @@ metrics.registerMetric('my_metric', { If several metrics should be grouped together (e.g. for graphing purposes) `registerMetricGroup` can be used instead: ```ts -import type { Metrics } from '@libp2p/interface/metrics' +import type { Metrics } from '@libp2p/interface' import { prometheusMetrics } from '@libp2p/prometheus-metrics' const metrics: Metrics = prometheusMetrics()() diff --git a/doc/migrations/v0.46-v1.0.0.md b/doc/migrations/v0.46-v1.0.0.md index 021e33afb1..2cf189d895 100644 --- a/doc/migrations/v0.46-v1.0.0.md +++ b/doc/migrations/v0.46-v1.0.0.md @@ -5,20 +5,56 @@ A migration guide for refactoring your application code from libp2p `v0.46` to ` ## Table of Contents -- [AutoNAT](#autonat) -- [Ping](#ping) -- [Identify](#identify) -- [DCUtR](#dcutr) -- [Fetch](#fetch) -- [KeyChain](#keychain) -- [UPnPNat](#upnpnat) -- [Perf](#perf) -- [Plaintext](#plaintext) -- [Pnet](#pnet) +- [Type imports](#type-imports) +- [Extracted modules](#extracted-modules) + - [Services](#services) + - [AutoNAT](#autonat) + - [Ping](#ping) + - [Identify](#identify) + - [DCUtR](#dcutr) + - [Fetch](#fetch) + - [UPnPNat](#upnpnat) + - [Perf](#perf) + - [Connection encryption](#connection-encryption) + - [Plaintext](#plaintext) + - [Misc](#misc) + - [KeyChain](#keychain) + - [Pnet](#pnet) - [Metrics](#metrics) - [Connection Manager](#connection-manager) -## AutoNAT +## Type imports + +All exports from `@libp2p/interface` and `@libp2p/interface-internal` are +now exported from the root of the module, no more having to work out which +subpath to import from. + +**Before** + +```ts +import type { PeerId } from '@libp2p/interface/peer-id' +import type { Connection } from '@libp2p/interface/connection' +import type { Stream } from '@libp2p/interface/stream-muxer' +``` + +**After** + +```ts +import type { Connection, PeerId, Stream } from '@libp2p/interface' +``` + +## Extracted modules + +`js-libp2p` has always had a focus on being a modular, composable ecosystem of +modules. `v1.x.x` takes this further and extracts all of the optional +functionality out of the core and into modules that you can include in your app +if you need them, or omit them if you don't. + +### Services + +These modules can be configured as services to enable optional functionality. + +#### AutoNAT The AutoNAT service is now published in its own package. @@ -48,7 +84,7 @@ const node = await createLibp2p({ }) ``` -## Ping +#### Ping The Ping service is now published in its own package. @@ -78,7 +114,7 @@ const node = await createLibp2p({ }) ``` -## Identify +#### Identify The Identify service is now published in its own package. @@ -108,7 +144,7 @@ const node = await createLibp2p({ }) ``` -## DCUtR +#### DCUtR The DCUtR service is now published in its own package. @@ -138,7 +174,7 @@ const node = await createLibp2p({ }) ``` -## Fetch +#### Fetch The Fetch service is now published in its own package. @@ -168,36 +204,8 @@ const node = await createLibp2p({ }) ``` -## KeyChain - -The KeyChain object is no longer included on Libp2p and must be instantiated explicitly if desired. - -**Before** - -```ts -import type { KeyChain } from '@libp2p/interface/keychain' - -const libp2p = await createLibp2p(...) - -const keychain: KeyChain = libp2p.keychain -``` - -**After** - -```ts -import { keychain, type Keychain } from '@libp2p/keychain' - -const libp2p = await createLibp2p({ - ... - services: { - keychain: keychain() - } -}) - -const keychain: Keychain = libp2p.services.keychain -``` -## UPnPNat +#### UPnPNat The UPnPNat service module is now published in its own package. @@ -227,7 +235,7 @@ const node = await createLibp2p({ }) ``` -## Perf +#### Perf The Perf service module exports have been renamed in line with the other changes here. @@ -258,7 +266,9 @@ const node = await createLibp2p({ }) ``` -## Plaintext +### Connection encryption + +#### Plaintext The Plaintext connection encrypter module is now published in its own package. @@ -290,20 +300,69 @@ const node = await createLibp2p({ }) ``` -## Pnet + +### Misc + +#### KeyChain + +The KeyChain object is no longer included on Libp2p and must be instantiated +explicitly if desired. + +**Before** + +```ts +import type { KeyChain } from '@libp2p/interface/keychain' + +const libp2p = await createLibp2p(...) + +const keychain: KeyChain = libp2p.keychain +``` + +**After** + +```ts +import { keychain, type Keychain } from '@libp2p/keychain' + +const libp2p = await createLibp2p({ + ... + services: { + keychain: keychain() + } +}) + +const keychain: Keychain = libp2p.services.keychain +``` + +### Pnet The pnet module is now published in its own package. **Before** ```ts +import { createLibp2p } from 'libp2p' import { preSharedKey, generateKey } from 'libp2p/pnet' + +const node = await createLibp2p({ + // ...other options + connectionProtector: preSharedKey({ + psk: generateKey(new Uint8Array(95)) + }) +}) ``` **After** ```ts +import { createLibp2p } from 'libp2p' import { preSharedKey, generateKey } from '@libp2p/pnet' + +const node = await createLibp2p({ + // ...other options + connectionProtector: preSharedKey({ + psk: generateKey(new Uint8Array(95)) + }) +}) ``` ## Metrics @@ -319,4 +378,4 @@ The observed behavior of dialing peers has been that given a list of supported a Consequently the previous dial behaviour of dialing all available addresses (up to a concurrency limit) and cancelling any in-flight dials when the first succeeds was a very inefficient use of resources. -Since `libp2p@0.46.10` we have only dialed one address at a time for each peer by setting the default value of the `ConnectionManager`'s `maxParallelDialsPerPeer` option to `1`. As of `libp2p@1.0.0` this option has been removed. +Since `libp2p@0.46.10` we have only dialed one address at a time for each peer by setting the default value of the `ConnectionManager`'s `maxParallelDialsPerPeer` option to `1`. As of `libp2p@1.0.0` this option has been removed. \ No newline at end of file diff --git a/doc/package.json b/doc/package.json index 3fc895b92d..4844fe3cc7 100644 --- a/doc/package.json +++ b/doc/package.json @@ -23,13 +23,13 @@ "doc-check": "aegir doc-check" }, "dependencies": { - "@chainsafe/libp2p-yamux": "^5.0.0", - "@libp2p/interface": "^0.1.0", - "@libp2p/mplex": "^9.0.0", - "@libp2p/prometheus-metrics": "^2.0.0", - "@libp2p/tcp": "^8.0.0", + "@chainsafe/libp2p-yamux": "^6.0.1", + "@libp2p/interface": "^1.0.0", + "@libp2p/mplex": "^10.0.0", + "@libp2p/prometheus-metrics": "^3.0.0", + "@libp2p/tcp": "^9.0.0", "aegir": "^41.0.2", - "libp2p": "^0.46.0", + "libp2p": "^1.0.0", "prom-client": "^15.0.0" }, "private": true diff --git a/interop/package.json b/interop/package.json index 7b78526b48..977cb24888 100644 --- a/interop/package.json +++ b/interop/package.json @@ -51,8 +51,8 @@ "test:transport:interop": "aegir test" }, "dependencies": { - "@chainsafe/libp2p-noise": "^13.0.0", - "@chainsafe/libp2p-yamux": "^5.0.0", + "@chainsafe/libp2p-noise": "^14.0.0", + "@chainsafe/libp2p-yamux": "^6.0.1", "@libp2p/circuit-relay-v2": "^1.0.0", "@libp2p/identify": "^1.0.0", "@libp2p/mplex": "^10.0.0", diff --git a/packages/connection-encrypter-plaintext/src/index.ts b/packages/connection-encrypter-plaintext/src/index.ts index bdfe66a26a..7071fe624f 100644 --- a/packages/connection-encrypter-plaintext/src/index.ts +++ b/packages/connection-encrypter-plaintext/src/index.ts @@ -20,14 +20,11 @@ * ``` */ -import { UnexpectedPeerError, InvalidCryptoExchangeError } from '@libp2p/interface/errors' +import { UnexpectedPeerError, InvalidCryptoExchangeError } from '@libp2p/interface' import { peerIdFromBytes, peerIdFromKeys } from '@libp2p/peer-id' import { pbStream } from 'it-protobuf-stream' import { Exchange, KeyType } from './pb/proto.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { MultiaddrConnection } from '@libp2p/interface/connection' -import type { ConnectionEncrypter, SecuredConnection } from '@libp2p/interface/connection-encrypter' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { ComponentLogger, Logger, MultiaddrConnection, ConnectionEncrypter, SecuredConnection, PeerId } from '@libp2p/interface' import type { Duplex } from 'it-stream-types' import type { Uint8ArrayList } from 'uint8arraylist' diff --git a/packages/connection-encrypter-plaintext/test/index.spec.ts b/packages/connection-encrypter-plaintext/test/index.spec.ts index 4619ea1e92..e564e64e87 100644 --- a/packages/connection-encrypter-plaintext/test/index.spec.ts +++ b/packages/connection-encrypter-plaintext/test/index.spec.ts @@ -3,7 +3,7 @@ import { InvalidCryptoExchangeError, UnexpectedPeerError -} from '@libp2p/interface/errors' +} from '@libp2p/interface' import { mockMultiaddrConnPair } from '@libp2p/interface-compliance-tests/mocks' import { defaultLogger } from '@libp2p/logger' import { peerIdFromBytes } from '@libp2p/peer-id' @@ -12,8 +12,7 @@ import { multiaddr } from '@multiformats/multiaddr' import { expect } from 'aegir/chai' import sinon from 'sinon' import { plaintext } from '../src/index.js' -import type { ConnectionEncrypter } from '@libp2p/interface/connection-encrypter' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { ConnectionEncrypter, PeerId } from '@libp2p/interface' describe('plaintext', () => { let localPeer: PeerId diff --git a/packages/crypto/src/aes/cipher-mode.ts b/packages/crypto/src/aes/cipher-mode.ts index 95eefd8cf0..7aabcabe9c 100644 --- a/packages/crypto/src/aes/cipher-mode.ts +++ b/packages/crypto/src/aes/cipher-mode.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' const CIPHER_MODES = { 16: 'aes-128-ctr', diff --git a/packages/crypto/src/keys/ecdh-browser.ts b/packages/crypto/src/keys/ecdh-browser.ts index e5c8c72edb..c26a14375d 100644 --- a/packages/crypto/src/keys/ecdh-browser.ts +++ b/packages/crypto/src/keys/ecdh-browser.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { concat as uint8ArrayConcat } from 'uint8arrays/concat' import { equals as uint8ArrayEquals } from 'uint8arrays/equals' import { toString as uint8ArrayToString } from 'uint8arrays/to-string' diff --git a/packages/crypto/src/keys/ecdh.ts b/packages/crypto/src/keys/ecdh.ts index 992ee4777b..cde5ff62b5 100644 --- a/packages/crypto/src/keys/ecdh.ts +++ b/packages/crypto/src/keys/ecdh.ts @@ -1,5 +1,5 @@ import crypto from 'crypto' -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import type { ECDHKey, ECDHKeyPair } from './interface.js' const curves = { diff --git a/packages/crypto/src/keys/ed25519-class.ts b/packages/crypto/src/keys/ed25519-class.ts index 5957783156..3591f0d11d 100644 --- a/packages/crypto/src/keys/ed25519-class.ts +++ b/packages/crypto/src/keys/ed25519-class.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { base58btc } from 'multiformats/bases/base58' import { identity } from 'multiformats/hashes/identity' import { sha256 } from 'multiformats/hashes/sha2' diff --git a/packages/crypto/src/keys/index.ts b/packages/crypto/src/keys/index.ts index f805d81afa..766c553bc5 100644 --- a/packages/crypto/src/keys/index.ts +++ b/packages/crypto/src/keys/index.ts @@ -12,7 +12,7 @@ import 'node-forge/lib/asn1.js' import 'node-forge/lib/pbe.js' -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' // @ts-expect-error types are missing import forge from 'node-forge/lib/forge.js' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' @@ -23,7 +23,7 @@ import { keyStretcher } from './key-stretcher.js' import * as keysPBM from './keys.js' import * as RSA from './rsa-class.js' import * as Secp256k1 from './secp256k1-class.js' -import type { PrivateKey, PublicKey } from '@libp2p/interface/keys' +import type { PrivateKey, PublicKey } from '@libp2p/interface' export { keyStretcher } export { generateEphemeralKeyPair } diff --git a/packages/crypto/src/keys/key-stretcher.ts b/packages/crypto/src/keys/key-stretcher.ts index 3b04f9c57e..d6159e1b5a 100644 --- a/packages/crypto/src/keys/key-stretcher.ts +++ b/packages/crypto/src/keys/key-stretcher.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { concat as uint8ArrayConcat } from 'uint8arrays/concat' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import * as hmac from '../hmac/index.js' diff --git a/packages/crypto/src/keys/rsa-browser.ts b/packages/crypto/src/keys/rsa-browser.ts index 854c4abf43..bbef72a47c 100644 --- a/packages/crypto/src/keys/rsa-browser.ts +++ b/packages/crypto/src/keys/rsa-browser.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { toString as uint8ArrayToString } from 'uint8arrays/to-string' import randomBytes from '../random-bytes.js' diff --git a/packages/crypto/src/keys/rsa-class.ts b/packages/crypto/src/keys/rsa-class.ts index 6b6e51cd3e..9a5039531b 100644 --- a/packages/crypto/src/keys/rsa-class.ts +++ b/packages/crypto/src/keys/rsa-class.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { sha256 } from 'multiformats/hashes/sha2' // @ts-expect-error types are missing import forge from 'node-forge/lib/forge.js' diff --git a/packages/crypto/src/keys/rsa-utils.ts b/packages/crypto/src/keys/rsa-utils.ts index 70b97c7401..8b83696c8b 100644 --- a/packages/crypto/src/keys/rsa-utils.ts +++ b/packages/crypto/src/keys/rsa-utils.ts @@ -1,6 +1,6 @@ import 'node-forge/lib/asn1.js' import 'node-forge/lib/rsa.js' -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' // @ts-expect-error types are missing import forge from 'node-forge/lib/forge.js' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' diff --git a/packages/crypto/src/keys/rsa.ts b/packages/crypto/src/keys/rsa.ts index b57c314da2..e0e8f9b093 100644 --- a/packages/crypto/src/keys/rsa.ts +++ b/packages/crypto/src/keys/rsa.ts @@ -1,6 +1,6 @@ import crypto from 'crypto' import { promisify } from 'util' -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import randomBytes from '../random-bytes.js' import * as utils from './rsa-utils.js' import type { JWKKeyPair } from './interface.js' diff --git a/packages/crypto/src/keys/secp256k1-browser.ts b/packages/crypto/src/keys/secp256k1-browser.ts index 499f340a37..c12f3f2261 100644 --- a/packages/crypto/src/keys/secp256k1-browser.ts +++ b/packages/crypto/src/keys/secp256k1-browser.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { secp256k1 as secp } from '@noble/curves/secp256k1' import { sha256 } from 'multiformats/hashes/sha2' import { isPromise } from '../util.js' diff --git a/packages/crypto/src/keys/secp256k1-class.ts b/packages/crypto/src/keys/secp256k1-class.ts index b6531b0562..2b05ee1cbf 100644 --- a/packages/crypto/src/keys/secp256k1-class.ts +++ b/packages/crypto/src/keys/secp256k1-class.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { sha256 } from 'multiformats/hashes/sha2' import { equals as uint8ArrayEquals } from 'uint8arrays/equals' import { toString as uint8ArrayToString } from 'uint8arrays/to-string' diff --git a/packages/crypto/src/keys/secp256k1.ts b/packages/crypto/src/keys/secp256k1.ts index 0be19e4512..a0f297db45 100644 --- a/packages/crypto/src/keys/secp256k1.ts +++ b/packages/crypto/src/keys/secp256k1.ts @@ -1,5 +1,5 @@ import crypto from 'node:crypto' -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { secp256k1 as secp } from '@noble/curves/secp256k1' import type { Uint8ArrayList } from 'uint8arraylist' diff --git a/packages/crypto/src/pbkdf2.ts b/packages/crypto/src/pbkdf2.ts index c7b6a5702f..329c58339e 100644 --- a/packages/crypto/src/pbkdf2.ts +++ b/packages/crypto/src/pbkdf2.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' // @ts-expect-error types are missing import forgePbkdf2 from 'node-forge/lib/pbkdf2.js' // @ts-expect-error types are missing diff --git a/packages/crypto/src/random-bytes.ts b/packages/crypto/src/random-bytes.ts index 5de614474b..9260fe7212 100644 --- a/packages/crypto/src/random-bytes.ts +++ b/packages/crypto/src/random-bytes.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { randomBytes as randB } from '@noble/hashes/utils' /** diff --git a/packages/integration-tests/package.json b/packages/integration-tests/package.json index 7344ef6ab3..fab36b2e26 100644 --- a/packages/integration-tests/package.json +++ b/packages/integration-tests/package.json @@ -32,30 +32,30 @@ "dep-check": "aegir dep-check" }, "devDependencies": { - "@chainsafe/libp2p-noise": "^13.0.2", - "@chainsafe/libp2p-yamux": "^5.0.0", - "@libp2p/circuit-relay-v2": "^0.0.0", - "@libp2p/dcutr": "^0.0.0", - "@libp2p/fetch": "^0.0.0", - "@libp2p/identify": "^0.0.0", - "@libp2p/interface": "^0.1.6", - "@libp2p/interface-compliance-tests": "^4.1.5", + "@chainsafe/libp2p-noise": "^14.0.0", + "@chainsafe/libp2p-yamux": "^6.0.1", + "@libp2p/circuit-relay-v2": "^1.0.0", + "@libp2p/dcutr": "^1.0.0", + "@libp2p/fetch": "^1.0.0", + "@libp2p/identify": "^1.0.0", + "@libp2p/interface": "^1.0.0", + "@libp2p/interface-compliance-tests": "^5.0.0", "@libp2p/interface-internal": "^0.1.9", - "@libp2p/mplex": "^9.0.12", - "@libp2p/peer-id": "^3.0.6", + "@libp2p/mplex": "^10.0.0", + "@libp2p/peer-id": "^4.0.0", "@libp2p/peer-id-factory": "^3.0.8", - "@libp2p/ping": "^0.0.0", - "@libp2p/plaintext": "^0.0.0", - "@libp2p/tcp": "^8.0.13", - "@libp2p/webrtc": "^3.2.10", - "@libp2p/websockets": "^7.0.13", + "@libp2p/ping": "^1.0.0", + "@libp2p/plaintext": "^1.0.0", + "@libp2p/tcp": "^9.0.0", + "@libp2p/webrtc": "^4.0.0", + "@libp2p/websockets": "^8.0.0", "@multiformats/mafmt": "^12.1.6", "@multiformats/multiaddr": "^12.1.10", "aegir": "^41.0.2", "delay": "^6.0.0", "it-all": "^3.0.3", "it-pipe": "^3.0.1", - "libp2p": "^0.46.20", + "libp2p": "^1.0.0", "merge-options": "^3.0.4", "multiformats": "^12.1.3", "p-defer": "^4.0.0", diff --git a/packages/integration-tests/test/circuit-relay.node.ts b/packages/integration-tests/test/circuit-relay.node.ts index 3752774ba4..ad4721df1e 100644 --- a/packages/integration-tests/test/circuit-relay.node.ts +++ b/packages/integration-tests/test/circuit-relay.node.ts @@ -21,9 +21,8 @@ import pWaitFor from 'p-wait-for' import sinon from 'sinon' import { Uint8ArrayList } from 'uint8arraylist' import { discoveredRelayConfig, doesNotHaveRelay, getRelayAddress, hasRelay, notUsingAsRelay, usingAsRelay, usingAsRelayCount } from './fixtures/utils.js' -import type { Libp2p } from '@libp2p/interface' -import type { Connection } from '@libp2p/interface/connection' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { Libp2p, Connection } from '@libp2p/interface' +import type { Registrar } from '@libp2p/interface-internal' const DEFAULT_DATA_LIMIT = BigInt(1 << 17) diff --git a/packages/integration-tests/test/circuit-relay.spec.ts b/packages/integration-tests/test/circuit-relay.spec.ts index d8d086a9c6..08a280d763 100644 --- a/packages/integration-tests/test/circuit-relay.spec.ts +++ b/packages/integration-tests/test/circuit-relay.spec.ts @@ -13,9 +13,7 @@ import { expect } from 'aegir/chai' import { createLibp2p } from 'libp2p' import { pEvent } from 'p-event' import { hasRelay } from './fixtures/utils.js' -import type { Libp2p } from '@libp2p/interface' -import type { Connection } from '@libp2p/interface/connection' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { Libp2p, Connection, PeerId } from '@libp2p/interface' describe('circuit-relay', () => { let local: Libp2p diff --git a/packages/integration-tests/test/fetch.spec.ts b/packages/integration-tests/test/fetch.spec.ts index 5c98caf24d..f4fc888223 100644 --- a/packages/integration-tests/test/fetch.spec.ts +++ b/packages/integration-tests/test/fetch.spec.ts @@ -1,7 +1,7 @@ /* eslint-env mocha */ import { type Fetch, fetch } from '@libp2p/fetch' -import { ERR_INVALID_PARAMETERS } from '@libp2p/interface/errors' +import { ERR_INVALID_PARAMETERS } from '@libp2p/interface' import { expect } from 'aegir/chai' import { createLibp2p } from 'libp2p' import { isWebWorker } from 'wherearewe' diff --git a/packages/integration-tests/test/fixtures/utils.ts b/packages/integration-tests/test/fixtures/utils.ts index 86fe9e43f8..ddc7b7b822 100644 --- a/packages/integration-tests/test/fixtures/utils.ts +++ b/packages/integration-tests/test/fixtures/utils.ts @@ -2,11 +2,8 @@ import { RELAY_V2_HOP_CODEC } from '@libp2p/circuit-relay-v2' import { peerIdFromString } from '@libp2p/peer-id' import pWaitFor from 'p-wait-for' import { toString as uint8ArrayToString } from 'uint8arrays/to-string' -import type { Libp2p, AbortOptions } from '@libp2p/interface' -import type { ContentRouting } from '@libp2p/interface/content-routing' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerInfo } from '@libp2p/interface/peer-info' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' +import type { Libp2p, AbortOptions, ContentRouting, PeerId, PeerInfo } from '@libp2p/interface' +import type { AddressManager } from '@libp2p/interface-internal' import type { Multiaddr } from '@multiformats/multiaddr' import type { CID, Version } from 'multiformats' import type { Options as PWaitForOptions } from 'p-wait-for' diff --git a/packages/interface-compliance-tests/src/connection-encryption/index.ts b/packages/interface-compliance-tests/src/connection-encryption/index.ts index 60b8d91bd2..625cfb6c1d 100644 --- a/packages/interface-compliance-tests/src/connection-encryption/index.ts +++ b/packages/interface-compliance-tests/src/connection-encryption/index.ts @@ -1,4 +1,4 @@ -import { UnexpectedPeerError } from '@libp2p/interface/errors' +import { UnexpectedPeerError } from '@libp2p/interface' import * as PeerIdFactory from '@libp2p/peer-id-factory' import { expect } from 'aegir/chai' import all from 'it-all' @@ -7,8 +7,7 @@ import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import peers from '../peers.js' import { createMaConnPair } from './utils/index.js' import type { TestSetup } from '../index.js' -import type { ConnectionEncrypter } from '@libp2p/interface/connection-encrypter' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { ConnectionEncrypter, PeerId } from '@libp2p/interface' export default (common: TestSetup): void => { describe('interface-connection-encrypter compliance tests', () => { diff --git a/packages/interface-compliance-tests/src/connection-encryption/utils/index.ts b/packages/interface-compliance-tests/src/connection-encryption/utils/index.ts index 97391a8724..f5258a1b6b 100644 --- a/packages/interface-compliance-tests/src/connection-encryption/utils/index.ts +++ b/packages/interface-compliance-tests/src/connection-encryption/utils/index.ts @@ -1,7 +1,7 @@ import { logger } from '@libp2p/logger' import { multiaddr } from '@multiformats/multiaddr' import { duplexPair } from 'it-pair/duplex' -import type { MultiaddrConnection } from '@libp2p/interface/connection' +import type { MultiaddrConnection } from '@libp2p/interface' import type { Duplex, Source } from 'it-stream-types' import type { Uint8ArrayList } from 'uint8arraylist' diff --git a/packages/interface-compliance-tests/src/connection/index.ts b/packages/interface-compliance-tests/src/connection/index.ts index cbce6f491a..559733d67e 100644 --- a/packages/interface-compliance-tests/src/connection/index.ts +++ b/packages/interface-compliance-tests/src/connection/index.ts @@ -1,7 +1,7 @@ import { expect } from 'aegir/chai' import sinon from 'sinon' import type { TestSetup } from '../index.js' -import type { Connection } from '@libp2p/interface/connection' +import type { Connection } from '@libp2p/interface' export default (test: TestSetup): void => { describe('connection', () => { diff --git a/packages/interface-compliance-tests/src/mocks/connection-gater.ts b/packages/interface-compliance-tests/src/mocks/connection-gater.ts index 3c62e7c30b..eaaf62038b 100644 --- a/packages/interface-compliance-tests/src/mocks/connection-gater.ts +++ b/packages/interface-compliance-tests/src/mocks/connection-gater.ts @@ -1,4 +1,4 @@ -import type { ConnectionGater } from '@libp2p/interface/connection-gater' +import type { ConnectionGater } from '@libp2p/interface' export function mockConnectionGater (): ConnectionGater { return { diff --git a/packages/interface-compliance-tests/src/mocks/connection-manager.ts b/packages/interface-compliance-tests/src/mocks/connection-manager.ts index f168282b50..5d0b4297d4 100644 --- a/packages/interface-compliance-tests/src/mocks/connection-manager.ts +++ b/packages/interface-compliance-tests/src/mocks/connection-manager.ts @@ -1,16 +1,10 @@ -import { CodeError } from '@libp2p/interface/errors' -import { isPeerId, type PeerId } from '@libp2p/interface/peer-id' +import { CodeError } from '@libp2p/interface' +import { isPeerId, type PeerId, type ComponentLogger, type Libp2pEvents, type PendingDial, type Connection, type TypedEventTarget, type PubSub, type Startable } from '@libp2p/interface' import { PeerMap } from '@libp2p/peer-collections' import { peerIdFromString } from '@libp2p/peer-id' import { isMultiaddr, type Multiaddr } from '@multiformats/multiaddr' import { connectionPair } from './connection.js' -import type { ComponentLogger, Libp2pEvents, PendingDial } from '@libp2p/interface' -import type { Connection } from '@libp2p/interface/connection' -import type { TypedEventTarget } from '@libp2p/interface/events' -import type { PubSub } from '@libp2p/interface/pubsub' -import type { Startable } from '@libp2p/interface/startable' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { ConnectionManager, Registrar } from '@libp2p/interface-internal' export interface MockNetworkComponents { peerId: PeerId diff --git a/packages/interface-compliance-tests/src/mocks/connection.ts b/packages/interface-compliance-tests/src/mocks/connection.ts index 842f0a920f..704712ce99 100644 --- a/packages/interface-compliance-tests/src/mocks/connection.ts +++ b/packages/interface-compliance-tests/src/mocks/connection.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { defaultLogger, logger } from '@libp2p/logger' import * as mss from '@libp2p/multistream-select' import { peerIdFromString } from '@libp2p/peer-id' @@ -9,11 +9,8 @@ import { Uint8ArrayList } from 'uint8arraylist' import { mockMultiaddrConnection } from './multiaddr-connection.js' import { mockMuxer } from './muxer.js' import { mockRegistrar } from './registrar.js' -import type { AbortOptions, ComponentLogger, Logger } from '@libp2p/interface' -import type { MultiaddrConnection, Connection, Stream, Direction, ConnectionTimeline, ConnectionStatus } from '@libp2p/interface/connection' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { StreamMuxer, StreamMuxerFactory } from '@libp2p/interface/stream-muxer' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { AbortOptions, ComponentLogger, Logger, MultiaddrConnection, Connection, Stream, Direction, ConnectionTimeline, ConnectionStatus, PeerId, StreamMuxer, StreamMuxerFactory } from '@libp2p/interface' +import type { Registrar } from '@libp2p/interface-internal' import type { Multiaddr } from '@multiformats/multiaddr' import type { Duplex, Source } from 'it-stream-types' diff --git a/packages/interface-compliance-tests/src/mocks/metrics.ts b/packages/interface-compliance-tests/src/mocks/metrics.ts index 3129cfecd1..6f238d112e 100644 --- a/packages/interface-compliance-tests/src/mocks/metrics.ts +++ b/packages/interface-compliance-tests/src/mocks/metrics.ts @@ -1,5 +1,4 @@ -import type { MultiaddrConnection, Stream, Connection } from '@libp2p/interface/connection' -import type { Metric, MetricGroup, StopTimer, Metrics, CalculatedMetricOptions, MetricOptions } from '@libp2p/interface/metrics' +import type { MultiaddrConnection, Stream, Connection, Metric, MetricGroup, StopTimer, Metrics, CalculatedMetricOptions, MetricOptions } from '@libp2p/interface' class DefaultMetric implements Metric { public value: number = 0 diff --git a/packages/interface-compliance-tests/src/mocks/multiaddr-connection.ts b/packages/interface-compliance-tests/src/mocks/multiaddr-connection.ts index 01db6a496d..d43237c8e8 100644 --- a/packages/interface-compliance-tests/src/mocks/multiaddr-connection.ts +++ b/packages/interface-compliance-tests/src/mocks/multiaddr-connection.ts @@ -2,8 +2,7 @@ import { logger } from '@libp2p/logger' import { multiaddr } from '@multiformats/multiaddr' import { abortableSource } from 'abortable-iterator' import { duplexPair } from 'it-pair/duplex' -import type { MultiaddrConnection } from '@libp2p/interface/connection' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { MultiaddrConnection, PeerId } from '@libp2p/interface' import type { Multiaddr } from '@multiformats/multiaddr' import type { Duplex } from 'it-stream-types' import type { Uint8ArrayList } from 'uint8arraylist' diff --git a/packages/interface-compliance-tests/src/mocks/muxer.ts b/packages/interface-compliance-tests/src/mocks/muxer.ts index 27a2594231..e71bb6c9ae 100644 --- a/packages/interface-compliance-tests/src/mocks/muxer.ts +++ b/packages/interface-compliance-tests/src/mocks/muxer.ts @@ -8,9 +8,7 @@ import { type Pushable, pushable } from 'it-pushable' import { Uint8ArrayList } from 'uint8arraylist' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { toString as uint8ArrayToString } from 'uint8arrays/to-string' -import type { AbortOptions } from '@libp2p/interface' -import type { Direction, Stream } from '@libp2p/interface/connection' -import type { StreamMuxer, StreamMuxerFactory, StreamMuxerInit } from '@libp2p/interface/stream-muxer' +import type { AbortOptions, Direction, Stream, StreamMuxer, StreamMuxerFactory, StreamMuxerInit } from '@libp2p/interface' import type { Source } from 'it-stream-types' let muxers = 0 diff --git a/packages/interface-compliance-tests/src/mocks/peer-discovery.ts b/packages/interface-compliance-tests/src/mocks/peer-discovery.ts index 7fa6abedc1..fdeea22338 100644 --- a/packages/interface-compliance-tests/src/mocks/peer-discovery.ts +++ b/packages/interface-compliance-tests/src/mocks/peer-discovery.ts @@ -1,9 +1,7 @@ -import { TypedEventEmitter } from '@libp2p/interface/events' -import { peerDiscovery } from '@libp2p/interface/peer-discovery' +import { TypedEventEmitter, peerDiscoverySymbol } from '@libp2p/interface' import * as PeerIdFactory from '@libp2p/peer-id-factory' import { multiaddr } from '@multiformats/multiaddr' -import type { PeerDiscovery, PeerDiscoveryEvents } from '@libp2p/interface/peer-discovery' -import type { PeerInfo } from '@libp2p/interface/peer-info' +import type { PeerDiscovery, PeerDiscoveryEvents, PeerInfo } from '@libp2p/interface' interface MockDiscoveryInit { discoveryDelay?: number @@ -24,7 +22,7 @@ export class MockDiscovery extends TypedEventEmitter implem this._isRunning = false } - readonly [peerDiscovery] = this + readonly [peerDiscoverySymbol] = this start (): void { this._isRunning = true diff --git a/packages/interface-compliance-tests/src/mocks/registrar.ts b/packages/interface-compliance-tests/src/mocks/registrar.ts index a130224b2c..fe22e1a219 100644 --- a/packages/interface-compliance-tests/src/mocks/registrar.ts +++ b/packages/interface-compliance-tests/src/mocks/registrar.ts @@ -1,8 +1,6 @@ import merge from 'merge-options' -import type { Connection } from '@libp2p/interface/connection' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Topology } from '@libp2p/interface/topology' -import type { IncomingStreamData, Registrar, StreamHandler, StreamHandlerOptions, StreamHandlerRecord } from '@libp2p/interface-internal/registrar' +import type { Connection, PeerId, Topology } from '@libp2p/interface' +import type { IncomingStreamData, Registrar, StreamHandler, StreamHandlerOptions, StreamHandlerRecord } from '@libp2p/interface-internal' export class MockRegistrar implements Registrar { private readonly topologies = new Map>() diff --git a/packages/interface-compliance-tests/src/mocks/upgrader.ts b/packages/interface-compliance-tests/src/mocks/upgrader.ts index 4f69268071..84d22214ce 100644 --- a/packages/interface-compliance-tests/src/mocks/upgrader.ts +++ b/packages/interface-compliance-tests/src/mocks/upgrader.ts @@ -1,9 +1,6 @@ import { mockConnection } from './connection.js' -import type { Libp2pEvents } from '@libp2p/interface' -import type { Connection, MultiaddrConnection } from '@libp2p/interface/connection' -import type { TypedEventTarget } from '@libp2p/interface/events' -import type { Upgrader, UpgraderOptions } from '@libp2p/interface/transport' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { Libp2pEvents, Connection, MultiaddrConnection, TypedEventTarget, Upgrader, UpgraderOptions } from '@libp2p/interface' +import type { Registrar } from '@libp2p/interface-internal' export interface MockUpgraderInit { registrar?: Registrar diff --git a/packages/interface-compliance-tests/src/peer-discovery/index.ts b/packages/interface-compliance-tests/src/peer-discovery/index.ts index dbeee5cf87..908891f1d4 100644 --- a/packages/interface-compliance-tests/src/peer-discovery/index.ts +++ b/packages/interface-compliance-tests/src/peer-discovery/index.ts @@ -1,10 +1,10 @@ -import { start, stop } from '@libp2p/interface/startable' +import { start, stop } from '@libp2p/interface' import { isMultiaddr } from '@multiformats/multiaddr' import { expect } from 'aegir/chai' import delay from 'delay' import pDefer from 'p-defer' import type { TestSetup } from '../index.js' -import type { PeerDiscovery } from '@libp2p/interface/peer-discovery' +import type { PeerDiscovery } from '@libp2p/interface' export default (common: TestSetup): void => { describe('interface-peer-discovery compliance tests', () => { diff --git a/packages/interface-compliance-tests/src/pubsub/api.ts b/packages/interface-compliance-tests/src/pubsub/api.ts index 4c81f4f595..32cbc9920c 100644 --- a/packages/interface-compliance-tests/src/pubsub/api.ts +++ b/packages/interface-compliance-tests/src/pubsub/api.ts @@ -1,4 +1,4 @@ -import { isStartable, start, stop } from '@libp2p/interface/startable' +import { isStartable, start, stop } from '@libp2p/interface' import { expect } from 'aegir/chai' import delay from 'delay' import pDefer from 'p-defer' @@ -9,7 +9,7 @@ import { mockNetwork } from '../mocks/index.js' import { createComponents } from './utils.js' import type { PubSubArgs, PubSubComponents } from './index.js' import type { TestSetup } from '../index.js' -import type { PubSub } from '@libp2p/interface/pubsub' +import type { PubSub } from '@libp2p/interface' const topic = 'foo' const data = uint8ArrayFromString('bar') diff --git a/packages/interface-compliance-tests/src/pubsub/connection-handlers.ts b/packages/interface-compliance-tests/src/pubsub/connection-handlers.ts index 687f541422..eefdd552f8 100644 --- a/packages/interface-compliance-tests/src/pubsub/connection-handlers.ts +++ b/packages/interface-compliance-tests/src/pubsub/connection-handlers.ts @@ -1,4 +1,4 @@ -import { start, stop } from '@libp2p/interface/startable' +import { start, stop } from '@libp2p/interface' import { expect } from 'aegir/chai' import pDefer from 'p-defer' import { pEvent } from 'p-event' @@ -11,7 +11,7 @@ import { createComponents } from './utils.js' import type { PubSubArgs } from './index.js' import type { TestSetup } from '../index.js' import type { MockNetworkComponents } from '../mocks/index.js' -import type { Message, PubSub } from '@libp2p/interface/pubsub' +import type { Message, PubSub } from '@libp2p/interface' export default (common: TestSetup): void => { describe('pubsub connection handlers', () => { diff --git a/packages/interface-compliance-tests/src/pubsub/emit-self.ts b/packages/interface-compliance-tests/src/pubsub/emit-self.ts index 9422ed8ddc..03d6b4e973 100644 --- a/packages/interface-compliance-tests/src/pubsub/emit-self.ts +++ b/packages/interface-compliance-tests/src/pubsub/emit-self.ts @@ -1,4 +1,4 @@ -import { start, stop } from '@libp2p/interface/startable' +import { start, stop } from '@libp2p/interface' import { expect } from 'aegir/chai' import sinon from 'sinon' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' @@ -6,7 +6,7 @@ import { mockNetwork } from '../mocks/index.js' import { createComponents } from './utils.js' import type { PubSubArgs, PubSubComponents } from './index.js' import type { TestSetup } from '../index.js' -import type { PubSub } from '@libp2p/interface/pubsub' +import type { PubSub } from '@libp2p/interface' const topic = 'foo' const data = uint8ArrayFromString('bar') diff --git a/packages/interface-compliance-tests/src/pubsub/index.ts b/packages/interface-compliance-tests/src/pubsub/index.ts index 189ff6d171..7e5fa3fe95 100644 --- a/packages/interface-compliance-tests/src/pubsub/index.ts +++ b/packages/interface-compliance-tests/src/pubsub/index.ts @@ -5,11 +5,8 @@ import messagesTest from './messages.js' import multipleNodesTest from './multiple-nodes.js' import twoNodesTest from './two-nodes.js' import type { TestSetup } from '../index.js' -import type { ComponentLogger } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PubSub, PubSubInit } from '@libp2p/interface/pubsub' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { ComponentLogger, PeerId, PubSub, PubSubInit } from '@libp2p/interface' +import type { ConnectionManager, Registrar } from '@libp2p/interface-internal' export interface PubSubComponents { peerId: PeerId diff --git a/packages/interface-compliance-tests/src/pubsub/messages.ts b/packages/interface-compliance-tests/src/pubsub/messages.ts index 907b2395c0..1d694672d4 100644 --- a/packages/interface-compliance-tests/src/pubsub/messages.ts +++ b/packages/interface-compliance-tests/src/pubsub/messages.ts @@ -1,4 +1,4 @@ -import { start, stop } from '@libp2p/interface/startable' +import { start, stop } from '@libp2p/interface' import { expect } from 'aegir/chai' import { pEvent } from 'p-event' import sinon from 'sinon' @@ -7,7 +7,7 @@ import { mockNetwork } from '../mocks/index.js' import { createComponents } from './utils.js' import type { PubSubArgs, PubSubComponents } from './index.js' import type { TestSetup } from '../index.js' -import type { Message, PubSub } from '@libp2p/interface/pubsub' +import type { Message, PubSub } from '@libp2p/interface' const topic = 'foo' const data = uint8ArrayFromString('bar') diff --git a/packages/interface-compliance-tests/src/pubsub/multiple-nodes.ts b/packages/interface-compliance-tests/src/pubsub/multiple-nodes.ts index cddc78e1b0..8985f6e993 100644 --- a/packages/interface-compliance-tests/src/pubsub/multiple-nodes.ts +++ b/packages/interface-compliance-tests/src/pubsub/multiple-nodes.ts @@ -1,5 +1,5 @@ /* eslint max-nested-callbacks: ["error", 6] */ -import { start, stop } from '@libp2p/interface/startable' +import { start, stop } from '@libp2p/interface' import { expect } from 'aegir/chai' import delay from 'delay' import pDefer from 'p-defer' @@ -11,7 +11,7 @@ import { mockNetwork } from '../mocks/index.js' import { createComponents, waitForSubscriptionUpdate } from './utils.js' import type { PubSubArgs, PubSubComponents } from './index.js' import type { TestSetup } from '../index.js' -import type { Message, PubSub } from '@libp2p/interface/pubsub' +import type { Message, PubSub } from '@libp2p/interface' export default (common: TestSetup): void => { describe('pubsub with multiple nodes', function () { diff --git a/packages/interface-compliance-tests/src/pubsub/two-nodes.ts b/packages/interface-compliance-tests/src/pubsub/two-nodes.ts index c68d81dedd..6e9f857181 100644 --- a/packages/interface-compliance-tests/src/pubsub/two-nodes.ts +++ b/packages/interface-compliance-tests/src/pubsub/two-nodes.ts @@ -1,6 +1,5 @@ /* eslint max-nested-callbacks: ["error", 6] */ -import { TopicValidatorResult } from '@libp2p/interface/pubsub' -import { start, stop } from '@libp2p/interface/startable' +import { TopicValidatorResult, start, stop } from '@libp2p/interface' import { expect } from 'aegir/chai' import pDefer from 'p-defer' import pWaitFor from 'p-wait-for' @@ -11,7 +10,7 @@ import { mockNetwork } from '../mocks/index.js' import { createComponents, waitForSubscriptionUpdate } from './utils.js' import type { PubSubArgs, PubSubComponents } from './index.js' import type { TestSetup } from '../index.js' -import type { Message, PubSub } from '@libp2p/interface/pubsub' +import type { Message, PubSub } from '@libp2p/interface' const topic = 'foo' diff --git a/packages/interface-compliance-tests/src/pubsub/utils.ts b/packages/interface-compliance-tests/src/pubsub/utils.ts index 46ab447969..b3e626da90 100644 --- a/packages/interface-compliance-tests/src/pubsub/utils.ts +++ b/packages/interface-compliance-tests/src/pubsub/utils.ts @@ -1,12 +1,11 @@ -import { TypedEventEmitter } from '@libp2p/interface/events' +import { TypedEventEmitter } from '@libp2p/interface' import { defaultLogger } from '@libp2p/logger' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { pEvent } from 'p-event' import pWaitFor from 'p-wait-for' import { mockConnectionManager, mockRegistrar, mockNetwork } from '../mocks/index.js' import type { MockNetworkComponents } from '../mocks/index.js' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PubSub, SubscriptionChangeData } from '@libp2p/interface/pubsub' +import type { PeerId, PubSub, SubscriptionChangeData } from '@libp2p/interface' export async function waitForSubscriptionUpdate (a: PubSub, b: PeerId): Promise { await pWaitFor(async () => { diff --git a/packages/interface-compliance-tests/src/stream-muxer/base-test.ts b/packages/interface-compliance-tests/src/stream-muxer/base-test.ts index 146b005fa1..39456311dd 100644 --- a/packages/interface-compliance-tests/src/stream-muxer/base-test.ts +++ b/packages/interface-compliance-tests/src/stream-muxer/base-test.ts @@ -10,8 +10,7 @@ import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { toString as uint8ArrayToString } from 'uint8arrays/to-string' import { isValidTick } from '../is-valid-tick.js' import type { TestSetup } from '../index.js' -import type { Stream } from '@libp2p/interface/connection' -import type { StreamMuxerFactory } from '@libp2p/interface/stream-muxer' +import type { Stream, StreamMuxerFactory } from '@libp2p/interface' import type { Source, Duplex } from 'it-stream-types' import type { DeferredPromise } from 'p-defer' diff --git a/packages/interface-compliance-tests/src/stream-muxer/close-test.ts b/packages/interface-compliance-tests/src/stream-muxer/close-test.ts index 5f66ea3aec..9ba2f246ba 100644 --- a/packages/interface-compliance-tests/src/stream-muxer/close-test.ts +++ b/packages/interface-compliance-tests/src/stream-muxer/close-test.ts @@ -13,7 +13,7 @@ import { Uint8ArrayList } from 'uint8arraylist' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { Message } from './fixtures/pb/message.js' import type { TestSetup } from '../index.js' -import type { StreamMuxerFactory } from '@libp2p/interface/stream-muxer' +import type { StreamMuxerFactory } from '@libp2p/interface' function randomBuffer (): Uint8Array { return uint8ArrayFromString(Math.random().toString()) diff --git a/packages/interface-compliance-tests/src/stream-muxer/index.ts b/packages/interface-compliance-tests/src/stream-muxer/index.ts index 570eed96a2..ce71d22c16 100644 --- a/packages/interface-compliance-tests/src/stream-muxer/index.ts +++ b/packages/interface-compliance-tests/src/stream-muxer/index.ts @@ -3,7 +3,7 @@ import closeTest from './close-test.js' import megaStressTest from './mega-stress-test.js' import stressTest from './stress-test.js' import type { TestSetup } from '../index.js' -import type { StreamMuxerFactory } from '@libp2p/interface/stream-muxer' +import type { StreamMuxerFactory } from '@libp2p/interface' export default (common: TestSetup): void => { describe('interface-stream-muxer', () => { diff --git a/packages/interface-compliance-tests/src/stream-muxer/mega-stress-test.ts b/packages/interface-compliance-tests/src/stream-muxer/mega-stress-test.ts index 97b8956a6c..0e1c05be33 100644 --- a/packages/interface-compliance-tests/src/stream-muxer/mega-stress-test.ts +++ b/packages/interface-compliance-tests/src/stream-muxer/mega-stress-test.ts @@ -1,6 +1,6 @@ import spawn from './spawner.js' import type { TestSetup } from '../index.js' -import type { StreamMuxer, StreamMuxerFactory, StreamMuxerInit } from '@libp2p/interface/stream-muxer' +import type { StreamMuxer, StreamMuxerFactory, StreamMuxerInit } from '@libp2p/interface' export default (common: TestSetup): void => { const createMuxer = async (init?: StreamMuxerInit): Promise => { diff --git a/packages/interface-compliance-tests/src/stream-muxer/spawner.ts b/packages/interface-compliance-tests/src/stream-muxer/spawner.ts index 2ed7e6cd02..30bb238bf2 100644 --- a/packages/interface-compliance-tests/src/stream-muxer/spawner.ts +++ b/packages/interface-compliance-tests/src/stream-muxer/spawner.ts @@ -6,7 +6,7 @@ import { pipe } from 'it-pipe' import pLimit from 'p-limit' import { Uint8ArrayList } from 'uint8arraylist' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' -import type { StreamMuxer, StreamMuxerInit } from '@libp2p/interface/stream-muxer' +import type { StreamMuxer, StreamMuxerInit } from '@libp2p/interface' export default async (createMuxer: (init?: StreamMuxerInit) => Promise, nStreams: number, nMsg: number, limit?: number): Promise => { const [dialerSocket, listenerSocket] = duplexPair() diff --git a/packages/interface-compliance-tests/src/stream-muxer/stress-test.ts b/packages/interface-compliance-tests/src/stream-muxer/stress-test.ts index 3da0ed22f0..770f81fb88 100644 --- a/packages/interface-compliance-tests/src/stream-muxer/stress-test.ts +++ b/packages/interface-compliance-tests/src/stream-muxer/stress-test.ts @@ -1,6 +1,6 @@ import spawn from './spawner.js' import type { TestSetup } from '../index.js' -import type { StreamMuxerFactory, StreamMuxerInit, StreamMuxer } from '@libp2p/interface/stream-muxer' +import type { StreamMuxerFactory, StreamMuxerInit, StreamMuxer } from '@libp2p/interface' export default (common: TestSetup): void => { const createMuxer = async (init?: StreamMuxerInit): Promise => { diff --git a/packages/interface-compliance-tests/src/transport/dial-test.ts b/packages/interface-compliance-tests/src/transport/dial-test.ts index 98035d9aa5..faa300317c 100644 --- a/packages/interface-compliance-tests/src/transport/dial-test.ts +++ b/packages/interface-compliance-tests/src/transport/dial-test.ts @@ -1,5 +1,4 @@ -import { AbortError } from '@libp2p/interface/errors' -import { TypedEventEmitter } from '@libp2p/interface/events' +import { AbortError, TypedEventEmitter } from '@libp2p/interface' import { expect } from 'aegir/chai' import all from 'it-all' import drain from 'it-drain' @@ -10,8 +9,8 @@ import { isValidTick } from '../is-valid-tick.js' import { mockUpgrader, mockRegistrar } from '../mocks/index.js' import type { TransportTestFixtures, Connector } from './index.js' import type { TestSetup } from '../index.js' -import type { Listener, Transport, Upgrader } from '@libp2p/interface/transport' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { Listener, Transport, Upgrader } from '@libp2p/interface' +import type { Registrar } from '@libp2p/interface-internal' import type { Multiaddr } from '@multiformats/multiaddr' export default (common: TestSetup): void => { diff --git a/packages/interface-compliance-tests/src/transport/filter-test.ts b/packages/interface-compliance-tests/src/transport/filter-test.ts index 787353ad48..c54039fcbf 100644 --- a/packages/interface-compliance-tests/src/transport/filter-test.ts +++ b/packages/interface-compliance-tests/src/transport/filter-test.ts @@ -1,7 +1,7 @@ import { expect } from 'aegir/chai' import type { TransportTestFixtures } from './index.js' import type { TestSetup } from '../index.js' -import type { Transport } from '@libp2p/interface/transport' +import type { Transport } from '@libp2p/interface' import type { Multiaddr } from '@multiformats/multiaddr' export default (common: TestSetup): void => { diff --git a/packages/interface-compliance-tests/src/transport/index.ts b/packages/interface-compliance-tests/src/transport/index.ts index c0a5a6ed11..c5925c9f24 100644 --- a/packages/interface-compliance-tests/src/transport/index.ts +++ b/packages/interface-compliance-tests/src/transport/index.ts @@ -2,7 +2,7 @@ import dial from './dial-test.js' import filter from './filter-test.js' import listen from './listen-test.js' import type { TestSetup } from '../index.js' -import type { Transport } from '@libp2p/interface/transport' +import type { Transport } from '@libp2p/interface' import type { Multiaddr } from '@multiformats/multiaddr' export interface Connector { diff --git a/packages/interface-compliance-tests/src/transport/listen-test.ts b/packages/interface-compliance-tests/src/transport/listen-test.ts index d9f3a17c22..54f51668dd 100644 --- a/packages/interface-compliance-tests/src/transport/listen-test.ts +++ b/packages/interface-compliance-tests/src/transport/listen-test.ts @@ -1,5 +1,5 @@ /* eslint max-nested-callbacks: ["error", 8] */ -import { CustomEvent, TypedEventEmitter } from '@libp2p/interface/events' +import { CustomEvent, TypedEventEmitter } from '@libp2p/interface' import { expect } from 'aegir/chai' import drain from 'it-drain' import { pipe } from 'it-pipe' @@ -11,9 +11,8 @@ import { isValidTick } from '../is-valid-tick.js' import { mockUpgrader, mockRegistrar } from '../mocks/index.js' import type { TransportTestFixtures } from './index.js' import type { TestSetup } from '../index.js' -import type { Connection } from '@libp2p/interface/connection' -import type { Transport, Upgrader } from '@libp2p/interface/transport' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { Connection, Transport, Upgrader } from '@libp2p/interface' +import type { Registrar } from '@libp2p/interface-internal' import type { Multiaddr } from '@multiformats/multiaddr' export default (common: TestSetup): void => { diff --git a/packages/interface-compliance-tests/test/mocks/connection.spec.ts b/packages/interface-compliance-tests/test/mocks/connection.spec.ts index 744c0486f6..6359d75023 100644 --- a/packages/interface-compliance-tests/test/mocks/connection.spec.ts +++ b/packages/interface-compliance-tests/test/mocks/connection.spec.ts @@ -3,7 +3,7 @@ import { pipe } from 'it-pipe' import tests from '../../src/connection/index.js' import { connectionPair } from '../../src/mocks/connection.js' import { mockRegistrar } from '../../src/mocks/registrar.js' -import type { Connection } from '@libp2p/interface/connection' +import type { Connection } from '@libp2p/interface' describe('mock connection compliance tests', () => { let connections: Connection[] = [] diff --git a/packages/interface-internal/package.json b/packages/interface-internal/package.json index a24609b80e..a76931e512 100644 --- a/packages/interface-internal/package.json +++ b/packages/interface-internal/package.json @@ -47,26 +47,6 @@ ".": { "types": "./dist/src/index.d.ts", "import": "./dist/src/index.js" - }, - "./address-manager": { - "types": "./dist/src/address-manager/index.d.ts", - "import": "./dist/src/address-manager/index.js" - }, - "./connection-manager": { - "types": "./dist/src/connection-manager/index.d.ts", - "import": "./dist/src/connection-manager/index.js" - }, - "./record": { - "types": "./dist/src/record/index.d.ts", - "import": "./dist/src/record/index.js" - }, - "./registrar": { - "types": "./dist/src/registrar/index.d.ts", - "import": "./dist/src/registrar/index.js" - }, - "./transport-manager": { - "types": "./dist/src/transport-manager/index.d.ts", - "import": "./dist/src/transport-manager/index.js" } }, "eslintConfig": { diff --git a/packages/interface-internal/src/connection-manager/index.ts b/packages/interface-internal/src/connection-manager/index.ts index 66051b4e41..9491f5589f 100644 --- a/packages/interface-internal/src/connection-manager/index.ts +++ b/packages/interface-internal/src/connection-manager/index.ts @@ -1,6 +1,4 @@ -import type { AbortOptions, PendingDial } from '@libp2p/interface' -import type { Connection, MultiaddrConnection } from '@libp2p/interface/connection' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { AbortOptions, PendingDial, Connection, MultiaddrConnection, PeerId } from '@libp2p/interface' import type { PeerMap } from '@libp2p/peer-collections' import type { Multiaddr } from '@multiformats/multiaddr' diff --git a/packages/interface-internal/src/index.ts b/packages/interface-internal/src/index.ts index 336ce12bb9..4797490740 100644 --- a/packages/interface-internal/src/index.ts +++ b/packages/interface-internal/src/index.ts @@ -1 +1,5 @@ -export {} +export * from './address-manager/index.js' +export * from './connection-manager/index.js' +export * from './record/index.js' +export * from './registrar/index.js' +export * from './transport-manager/index.js' diff --git a/packages/interface-internal/src/record/index.ts b/packages/interface-internal/src/record/index.ts index ff27b0460b..d890476902 100644 --- a/packages/interface-internal/src/record/index.ts +++ b/packages/interface-internal/src/record/index.ts @@ -1,4 +1,4 @@ -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' import type { Uint8ArrayList } from 'uint8arraylist' /** diff --git a/packages/interface-internal/src/registrar/index.ts b/packages/interface-internal/src/registrar/index.ts index 52db9d5b3e..504ed4ad9f 100644 --- a/packages/interface-internal/src/registrar/index.ts +++ b/packages/interface-internal/src/registrar/index.ts @@ -1,5 +1,4 @@ -import type { Connection, Stream } from '@libp2p/interface/connection' -import type { Topology } from '@libp2p/interface/topology' +import type { Connection, Stream, Topology } from '@libp2p/interface' export interface IncomingStreamData { stream: Stream diff --git a/packages/interface-internal/src/transport-manager/index.ts b/packages/interface-internal/src/transport-manager/index.ts index a905d2a14b..a76642ed87 100644 --- a/packages/interface-internal/src/transport-manager/index.ts +++ b/packages/interface-internal/src/transport-manager/index.ts @@ -1,5 +1,4 @@ -import type { Connection } from '@libp2p/interface/connection' -import type { Listener, Transport } from '@libp2p/interface/transport' +import type { Connection, Listener, Transport } from '@libp2p/interface' import type { Multiaddr } from '@multiformats/multiaddr' export interface TransportManager { diff --git a/packages/interface-internal/typedoc.json b/packages/interface-internal/typedoc.json index 93835c957e..f599dc728d 100644 --- a/packages/interface-internal/typedoc.json +++ b/packages/interface-internal/typedoc.json @@ -1,10 +1,5 @@ { "entryPoints": [ - "./src/index.ts", - "./src/address-manager/index.ts", - "./src/connection-manager/index.ts", - "./src/record/index.ts", - "./src/registrar/index.ts", - "./src/transport-manager/index.ts" + "./src/index.ts" ] } diff --git a/packages/interface/package.json b/packages/interface/package.json index 462e9e9199..2e34040345 100644 --- a/packages/interface/package.json +++ b/packages/interface/package.json @@ -47,98 +47,6 @@ ".": { "types": "./dist/src/index.d.ts", "import": "./dist/src/index.js" - }, - "./connection": { - "types": "./dist/src/connection/index.d.ts", - "import": "./dist/src/connection/index.js" - }, - "./connection-encrypter": { - "types": "./dist/src/connection-encrypter/index.d.ts", - "import": "./dist/src/connection-encrypter/index.js" - }, - "./connection-gater": { - "types": "./dist/src/connection-gater/index.d.ts", - "import": "./dist/src/connection-gater/index.js" - }, - "./content-routing": { - "types": "./dist/src/content-routing/index.d.ts", - "import": "./dist/src/content-routing/index.js" - }, - "./errors": { - "types": "./dist/src/errors.d.ts", - "import": "./dist/src/errors.js" - }, - "./events": { - "types": "./dist/src/events.d.ts", - "import": "./dist/src/events.js" - }, - "./keychain": { - "types": "./dist/src/keychain/index.d.ts", - "import": "./dist/src/keychain/index.js" - }, - "./keys": { - "types": "./dist/src/keys/index.d.ts", - "import": "./dist/src/keys/index.js" - }, - "./metrics": { - "types": "./dist/src/metrics/index.d.ts", - "import": "./dist/src/metrics/index.js" - }, - "./metrics/tracked-map": { - "types": "./dist/src/metrics/tracked-map.d.ts", - "import": "./dist/src/metrics/tracked-map.js" - }, - "./peer-discovery": { - "types": "./dist/src/peer-discovery/index.d.ts", - "import": "./dist/src/peer-discovery/index.js" - }, - "./peer-id": { - "types": "./dist/src/peer-id/index.d.ts", - "import": "./dist/src/peer-id/index.js" - }, - "./peer-info": { - "types": "./dist/src/peer-info/index.d.ts", - "import": "./dist/src/peer-info/index.js" - }, - "./peer-routing": { - "types": "./dist/src/peer-routing/index.d.ts", - "import": "./dist/src/peer-routing/index.js" - }, - "./peer-store": { - "types": "./dist/src/peer-store/index.d.ts", - "import": "./dist/src/peer-store/index.js" - }, - "./peer-store/tags": { - "types": "./dist/src/peer-store/tags.d.ts", - "import": "./dist/src/peer-store/tags.js" - }, - "./pubsub": { - "types": "./dist/src/pubsub/index.d.ts", - "import": "./dist/src/pubsub/index.js" - }, - "./record": { - "types": "./dist/src/record/index.d.ts", - "import": "./dist/src/record/index.js" - }, - "./startable": { - "types": "./dist/src/startable.d.ts", - "import": "./dist/src/startable.js" - }, - "./stream-handler": { - "types": "./dist/src/stream-handler/index.d.ts", - "import": "./dist/src/stream-handler/index.js" - }, - "./stream-muxer": { - "types": "./dist/src/stream-muxer/index.d.ts", - "import": "./dist/src/stream-muxer/index.js" - }, - "./stream-muxer/stream": { - "types": "./dist/src/stream-muxer/stream.d.ts", - "import": "./dist/src/stream-muxer/stream.js" - }, - "./transport": { - "types": "./dist/src/transport/index.d.ts", - "import": "./dist/src/transport/index.js" } }, "eslintConfig": { @@ -152,14 +60,7 @@ "clean": "aegir clean", "lint": "aegir lint", "dep-check": "aegir dep-check -i @libp2p/utils", - "build": "aegir build", - "test": "aegir test", - "test:chrome": "aegir test -t browser --cov", - "test:chrome-webworker": "aegir test -t webworker", - "test:firefox": "aegir test -t browser -- --browser firefox", - "test:firefox-webworker": "aegir test -t webworker -- --browser firefox", - "test:node": "aegir test -t node --cov", - "test:electron-main": "aegir test -t electron-main" + "build": "aegir build" }, "dependencies": { "@multiformats/multiaddr": "^12.1.10", @@ -169,10 +70,7 @@ "uint8arraylist": "^2.4.3" }, "devDependencies": { - "@types/sinon": "^17.0.0", - "aegir": "^41.0.2", - "sinon": "^17.0.0", - "sinon-ts": "^2.0.0" + "aegir": "^41.0.2" }, "browser": { "events": "./dist/src/events.browser.js" diff --git a/packages/interface/src/connection/index.ts b/packages/interface/src/connection/index.ts index 459a63bb16..ccbf3d6d04 100644 --- a/packages/interface/src/connection/index.ts +++ b/packages/interface/src/connection/index.ts @@ -280,10 +280,10 @@ export interface Connection { log: Logger } -export const symbol = Symbol.for('@libp2p/connection') +export const connectionSymbol = Symbol.for('@libp2p/connection') export function isConnection (other: any): other is Connection { - return other != null && Boolean(other[symbol]) + return other != null && Boolean(other[connectionSymbol]) } export interface ConnectionProtector { diff --git a/packages/interface/src/content-routing/index.ts b/packages/interface/src/content-routing/index.ts index 0d38d58143..641ce003d8 100644 --- a/packages/interface/src/content-routing/index.ts +++ b/packages/interface/src/content-routing/index.ts @@ -10,10 +10,10 @@ import type { CID } from 'multiformats/cid' * @example * * ```js - * import { contentRouting, ContentRouting } from '@libp2p/content-routing' + * import { contentRoutingSymbol, ContentRouting } from '@libp2p/content-routing' * * class MyContentRouter implements ContentRouting { - * get [contentRouting] () { + * get [contentRoutingSymbol] () { * return this * } * @@ -21,7 +21,7 @@ import type { CID } from 'multiformats/cid' * } * ``` */ -export const contentRouting = Symbol.for('@libp2p/content-routing') +export const contentRoutingSymbol = Symbol.for('@libp2p/content-routing') export interface ContentRouting { /** diff --git a/packages/interface/src/index.ts b/packages/interface/src/index.ts index 2389ffc1e3..d81783da65 100644 --- a/packages/interface/src/index.ts +++ b/packages/interface/src/index.ts @@ -660,3 +660,25 @@ export interface LoggerOptions { export type RecursivePartial = { [P in keyof T]?: T[P] extends Array ? Array> : T[P] extends (...args: any[]) => any ? T[P] : RecursivePartial } + +export * from './connection/index.js' +export * from './connection-encrypter/index.js' +export * from './connection-gater/index.js' +export * from './content-routing/index.js' +export * from './keys/index.js' +export * from './metrics/index.js' +export * from './peer-discovery/index.js' +export * from './peer-id/index.js' +export * from './peer-info/index.js' +export * from './peer-routing/index.js' +export * from './peer-store/index.js' +export * from './peer-store/tags.js' +export * from './pubsub/index.js' +export * from './record/index.js' +export * from './stream-handler/index.js' +export * from './stream-muxer/index.js' +export * from './topology/index.js' +export * from './transport/index.js' +export * from './errors.js' +export * from './events.js' +export * from './startable.js' diff --git a/packages/interface/src/peer-discovery/index.ts b/packages/interface/src/peer-discovery/index.ts index 55b1227eb1..5ecd082184 100644 --- a/packages/interface/src/peer-discovery/index.ts +++ b/packages/interface/src/peer-discovery/index.ts @@ -20,7 +20,7 @@ import type { PeerInfo } from '../peer-info/index.js' * } * ``` */ -export const peerDiscovery = Symbol.for('@libp2p/peer-discovery') +export const peerDiscoverySymbol = Symbol.for('@libp2p/peer-discovery') export interface PeerDiscoveryEvents { 'peer': CustomEvent diff --git a/packages/interface/src/peer-id/index.ts b/packages/interface/src/peer-id/index.ts index 931c34bc87..1ee6dee4ac 100644 --- a/packages/interface/src/peer-id/index.ts +++ b/packages/interface/src/peer-id/index.ts @@ -32,8 +32,8 @@ export interface Secp256k1PeerId extends BasePeerId { export type PeerId = RSAPeerId | Ed25519PeerId | Secp256k1PeerId -export const symbol = Symbol.for('@libp2p/peer-id') +export const peerIdSymbol = Symbol.for('@libp2p/peer-id') export function isPeerId (other: any): other is PeerId { - return other != null && Boolean(other[symbol]) + return other != null && Boolean(other[peerIdSymbol]) } diff --git a/packages/interface/src/peer-routing/index.ts b/packages/interface/src/peer-routing/index.ts index dcaa68eaa2..3db378ee6c 100644 --- a/packages/interface/src/peer-routing/index.ts +++ b/packages/interface/src/peer-routing/index.ts @@ -21,7 +21,7 @@ import type { PeerInfo } from '../peer-info/index.js' * } * ``` */ -export const peerRouting = Symbol.for('@libp2p/peer-routing') +export const peerRoutingSymbol = Symbol.for('@libp2p/peer-routing') export interface PeerRouting { /** diff --git a/packages/interface/src/stream-muxer/stream.ts b/packages/interface/src/stream-muxer/stream.ts deleted file mode 100644 index 1e70ed9ccf..0000000000 --- a/packages/interface/src/stream-muxer/stream.ts +++ /dev/null @@ -1,11 +0,0 @@ -// TODO: remove this file and the dep-check override in package.json for -// @libp2p/utils when yamux is updated. -// This is a hack to defeat TypeScript trying to inspect the types for -// @libp2p/utils/abstract-stream which depends on this module - making the -// import path only resolvable at runtime breaks the transpile time circular -// dependency -const s = await import('@libp2p/utils' + '/abstract-stream') - -export type AbstractStreamInit = any - -export const AbstractStream = s.AbstractStream diff --git a/packages/interface/src/transport/index.ts b/packages/interface/src/transport/index.ts index 22ab1a803b..ac22d201fe 100644 --- a/packages/interface/src/transport/index.ts +++ b/packages/interface/src/transport/index.ts @@ -28,7 +28,7 @@ export interface Listener extends TypedEventTarget { close(): Promise } -export const symbol = Symbol.for('@libp2p/transport') +export const transportSymbol = Symbol.for('@libp2p/transport') export interface ConnectionHandler { (connection: Connection): void } @@ -55,7 +55,7 @@ export interface Transport { /** * Used by the isTransport function */ - [symbol]: true + [transportSymbol]: true /** * Dial a given multiaddr. @@ -74,7 +74,7 @@ export interface Transport { } export function isTransport (other: any): other is Transport { - return other != null && Boolean(other[symbol]) + return other != null && Boolean(other[transportSymbol]) } /** diff --git a/packages/interface/test/fixtures/logger.ts b/packages/interface/test/fixtures/logger.ts deleted file mode 100644 index 4248f5c530..0000000000 --- a/packages/interface/test/fixtures/logger.ts +++ /dev/null @@ -1,16 +0,0 @@ -// copied from @libp2p/logger to break a circular dependency -interface Logger { - (): void - error(): void - trace(): void - enabled: boolean -} - -export function logger (): Logger { - const output = (): void => {} - output.trace = (): void => {} - output.error = (): void => {} - output.enabled = false - - return output -} diff --git a/packages/kad-dht/package.json b/packages/kad-dht/package.json index 383888c804..bf3ccfb64a 100644 --- a/packages/kad-dht/package.json +++ b/packages/kad-dht/package.json @@ -110,7 +110,7 @@ "p-wait-for": "^5.0.2", "protons": "^7.3.0", "sinon": "^17.0.0", - "ts-sinon": "^2.0.2", + "sinon-ts": "^2.0.0", "wherearewe": "^2.0.1", "which": "^4.0.0" }, diff --git a/packages/kad-dht/src/content-fetching/index.ts b/packages/kad-dht/src/content-fetching/index.ts index 32ac26b8a5..32c2d87ff7 100644 --- a/packages/kad-dht/src/content-fetching/index.ts +++ b/packages/kad-dht/src/content-fetching/index.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import map from 'it-map' import parallel from 'it-parallel' import { pipe } from 'it-pipe' diff --git a/packages/kad-dht/src/content-routing/index.ts b/packages/kad-dht/src/content-routing/index.ts index a402b6c1a6..22e433b242 100644 --- a/packages/kad-dht/src/content-routing/index.ts +++ b/packages/kad-dht/src/content-routing/index.ts @@ -15,8 +15,7 @@ import type { Providers } from '../providers.js' import type { QueryManager } from '../query/manager.js' import type { QueryFunc } from '../query/types.js' import type { RoutingTable } from '../routing-table/index.js' -import type { Logger } from '@libp2p/interface' -import type { PeerInfo } from '@libp2p/interface/peer-info' +import type { Logger, PeerInfo } from '@libp2p/interface' import type { Multiaddr } from '@multiformats/multiaddr' import type { CID } from 'multiformats/cid' diff --git a/packages/kad-dht/src/dual-kad-dht.ts b/packages/kad-dht/src/dual-kad-dht.ts index 2f2ca548c9..45a2f0982e 100644 --- a/packages/kad-dht/src/dual-kad-dht.ts +++ b/packages/kad-dht/src/dual-kad-dht.ts @@ -1,17 +1,11 @@ -import { type ContentRouting, contentRouting } from '@libp2p/interface/content-routing' -import { CodeError } from '@libp2p/interface/errors' -import { TypedEventEmitter, CustomEvent } from '@libp2p/interface/events' -import { type PeerDiscovery, peerDiscovery, type PeerDiscoveryEvents } from '@libp2p/interface/peer-discovery' -import { type PeerRouting, peerRouting } from '@libp2p/interface/peer-routing' +import { contentRoutingSymbol, peerDiscoverySymbol, peerRoutingSymbol, CodeError, TypedEventEmitter, CustomEvent } from '@libp2p/interface' import drain from 'it-drain' import merge from 'it-merge' import isPrivate from 'private-ip' import { DefaultKadDHT } from './kad-dht.js' import { queryErrorEvent } from './query/events.js' import type { DualKadDHT, KadDHT, KadDHTComponents, KadDHTInit, QueryEvent, QueryOptions } from './index.js' -import type { Logger } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerInfo } from '@libp2p/interface/peer-info' +import type { PeerDiscovery, PeerDiscoveryEvents, PeerRouting, ContentRouting, Logger, PeerId, PeerInfo } from '@libp2p/interface' import type { Multiaddr } from '@multiformats/multiaddr' import type { CID } from 'multiformats/cid' @@ -185,15 +179,15 @@ export class DefaultDualKadDHT extends TypedEventEmitter im readonly [Symbol.toStringTag] = '@libp2p/dual-kad-dht' - get [contentRouting] (): ContentRouting { + get [contentRoutingSymbol] (): ContentRouting { return this.contentRouting } - get [peerRouting] (): PeerRouting { + get [peerRoutingSymbol] (): PeerRouting { return this.peerRouting } - get [peerDiscovery] (): PeerDiscovery { + get [peerDiscoverySymbol] (): PeerDiscovery { return this } diff --git a/packages/kad-dht/src/index.ts b/packages/kad-dht/src/index.ts index 2849207c1b..d2c5c4fe72 100644 --- a/packages/kad-dht/src/index.ts +++ b/packages/kad-dht/src/index.ts @@ -1,14 +1,7 @@ import { DefaultDualKadDHT } from './dual-kad-dht.js' import type { ProvidersInit } from './providers.js' -import type { Libp2pEvents, AbortOptions, ComponentLogger } from '@libp2p/interface' -import type { TypedEventTarget } from '@libp2p/interface/events' -import type { Metrics } from '@libp2p/interface/metrics' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerInfo } from '@libp2p/interface/peer-info' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { Libp2pEvents, AbortOptions, ComponentLogger, TypedEventTarget, Metrics, PeerId, PeerInfo, PeerStore } from '@libp2p/interface' +import type { AddressManager, ConnectionManager, Registrar } from '@libp2p/interface-internal' import type { Datastore } from 'interface-datastore' import type { CID } from 'multiformats/cid' import type { ProgressOptions, ProgressEvent } from 'progress-events' diff --git a/packages/kad-dht/src/kad-dht.ts b/packages/kad-dht/src/kad-dht.ts index 85de6ff3ba..8bf2dd759a 100644 --- a/packages/kad-dht/src/kad-dht.ts +++ b/packages/kad-dht/src/kad-dht.ts @@ -1,4 +1,4 @@ -import { CustomEvent, TypedEventEmitter } from '@libp2p/interface/events' +import { CustomEvent, TypedEventEmitter } from '@libp2p/interface' import pDefer from 'p-defer' import { PROTOCOL_DHT, PROTOCOL_PREFIX, LAN_PREFIX } from './constants.js' import { ContentFetching } from './content-fetching/index.js' @@ -19,10 +19,7 @@ import { removePublicAddresses } from './utils.js' import type { KadDHTComponents, KadDHTInit, QueryOptions, Validators, Selectors, KadDHT, QueryEvent } from './index.js' -import type { Logger } from '@libp2p/interface' -import type { PeerDiscoveryEvents } from '@libp2p/interface/peer-discovery' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerInfo } from '@libp2p/interface/peer-info' +import type { Logger, PeerDiscoveryEvents, PeerId, PeerInfo } from '@libp2p/interface' import type { CID } from 'multiformats/cid' export const DEFAULT_MAX_INBOUND_STREAMS = 32 diff --git a/packages/kad-dht/src/message/index.ts b/packages/kad-dht/src/message/index.ts index cc82d610f0..2f3ca3b7c6 100644 --- a/packages/kad-dht/src/message/index.ts +++ b/packages/kad-dht/src/message/index.ts @@ -2,7 +2,7 @@ import { peerIdFromBytes } from '@libp2p/peer-id' import { multiaddr } from '@multiformats/multiaddr' import { Libp2pRecord } from '../record/index.js' import { Message as PBMessage } from './dht.js' -import type { PeerInfo } from '@libp2p/interface/peer-info' +import type { PeerInfo } from '@libp2p/interface' import type { Uint8ArrayList } from 'uint8arraylist' export const MESSAGE_TYPE = PBMessage.MessageType diff --git a/packages/kad-dht/src/network.ts b/packages/kad-dht/src/network.ts index f790763afa..46dfa71251 100644 --- a/packages/kad-dht/src/network.ts +++ b/packages/kad-dht/src/network.ts @@ -1,4 +1,4 @@ -import { TypedEventEmitter, CustomEvent } from '@libp2p/interface/events' +import { TypedEventEmitter, CustomEvent } from '@libp2p/interface' import { pbStream } from 'it-protobuf-stream' import { Message } from './message/index.js' import { @@ -8,11 +8,7 @@ import { queryErrorEvent } from './query/events.js' import type { KadDHTComponents, QueryEvent, QueryOptions } from './index.js' -import type { AbortOptions, Logger } from '@libp2p/interface' -import type { Stream } from '@libp2p/interface/connection' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerInfo } from '@libp2p/interface/peer-info' -import type { Startable } from '@libp2p/interface/startable' +import type { AbortOptions, Logger, Stream, PeerId, PeerInfo, Startable } from '@libp2p/interface' export interface NetworkInit { protocol: string diff --git a/packages/kad-dht/src/peer-list/index.ts b/packages/kad-dht/src/peer-list/index.ts index 25024a2966..104d75a07d 100644 --- a/packages/kad-dht/src/peer-list/index.ts +++ b/packages/kad-dht/src/peer-list/index.ts @@ -1,4 +1,4 @@ -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' /** * A list of unique peers. diff --git a/packages/kad-dht/src/peer-list/peer-distance-list.ts b/packages/kad-dht/src/peer-list/peer-distance-list.ts index eff3d80485..93df4a374b 100644 --- a/packages/kad-dht/src/peer-list/peer-distance-list.ts +++ b/packages/kad-dht/src/peer-list/peer-distance-list.ts @@ -1,7 +1,7 @@ import { compare as uint8ArrayCompare } from 'uint8arrays/compare' import { xor as uint8ArrayXor } from 'uint8arrays/xor' import * as utils from '../utils.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' interface PeerDistance { peerId: PeerId diff --git a/packages/kad-dht/src/peer-routing/index.ts b/packages/kad-dht/src/peer-routing/index.ts index 28e9da8eb2..df0f25d9db 100644 --- a/packages/kad-dht/src/peer-routing/index.ts +++ b/packages/kad-dht/src/peer-routing/index.ts @@ -1,5 +1,5 @@ import { keys } from '@libp2p/crypto' -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { peerIdFromKeys } from '@libp2p/peer-id' import { toString as uint8ArrayToString } from 'uint8arrays/to-string' import { Message, MESSAGE_TYPE } from '../message/index.js' @@ -17,10 +17,7 @@ import type { Network } from '../network.js' import type { QueryManager, QueryOptions } from '../query/manager.js' import type { QueryFunc } from '../query/types.js' import type { RoutingTable } from '../routing-table/index.js' -import type { AbortOptions, Logger } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerInfo } from '@libp2p/interface/peer-info' -import type { PeerStore } from '@libp2p/interface/src/peer-store/index.js' +import type { AbortOptions, Logger, PeerId, PeerInfo, PeerStore } from '@libp2p/interface' export interface PeerRoutingInit { routingTable: RoutingTable diff --git a/packages/kad-dht/src/providers.ts b/packages/kad-dht/src/providers.ts index 29fa66fb7f..e7c6a9439b 100644 --- a/packages/kad-dht/src/providers.ts +++ b/packages/kad-dht/src/providers.ts @@ -10,9 +10,7 @@ import { PROVIDERS_LRU_CACHE_SIZE, PROVIDER_KEY_PREFIX } from './constants.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Startable } from '@libp2p/interface/startable' +import type { ComponentLogger, Logger, PeerId, Startable } from '@libp2p/interface' import type { Datastore } from 'interface-datastore' import type { CID } from 'multiformats' diff --git a/packages/kad-dht/src/query-self.ts b/packages/kad-dht/src/query-self.ts index b595bc03f6..d0d5ae17f8 100644 --- a/packages/kad-dht/src/query-self.ts +++ b/packages/kad-dht/src/query-self.ts @@ -1,4 +1,4 @@ -import { setMaxListeners } from '@libp2p/interface/events' +import { setMaxListeners } from '@libp2p/interface' import { anySignal } from 'any-signal' import length from 'it-length' import { pipe } from 'it-pipe' @@ -8,9 +8,7 @@ import { pEvent } from 'p-event' import { QUERY_SELF_INTERVAL, QUERY_SELF_TIMEOUT, K, QUERY_SELF_INITIAL_INTERVAL } from './constants.js' import type { PeerRouting } from './peer-routing/index.js' import type { RoutingTable } from './routing-table/index.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Startable } from '@libp2p/interface/startable' +import type { ComponentLogger, Logger, PeerId, Startable } from '@libp2p/interface' import type { DeferredPromise } from 'p-defer' export interface QuerySelfInit { diff --git a/packages/kad-dht/src/query/events.ts b/packages/kad-dht/src/query/events.ts index b55c2edd5e..40c28bd397 100644 --- a/packages/kad-dht/src/query/events.ts +++ b/packages/kad-dht/src/query/events.ts @@ -1,10 +1,9 @@ -import { CustomEvent } from '@libp2p/interface/events' +import { CustomEvent } from '@libp2p/interface' import { MESSAGE_TYPE_LOOKUP } from '../message/index.js' import type { SendQueryEvent, PeerResponseEvent, DialPeerEvent, AddPeerEvent, ValueEvent, ProviderEvent, QueryErrorEvent, FinalPeerEvent, QueryOptions } from '../index.js' import type { Message } from '../message/dht.js' import type { Libp2pRecord } from '../record/index.js' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerInfo } from '@libp2p/interface/peer-info' +import type { PeerId, PeerInfo } from '@libp2p/interface' export interface QueryEventFields { to: PeerId diff --git a/packages/kad-dht/src/query/manager.ts b/packages/kad-dht/src/query/manager.ts index c223e7e07b..9e2ab435ff 100644 --- a/packages/kad-dht/src/query/manager.ts +++ b/packages/kad-dht/src/query/manager.ts @@ -1,5 +1,4 @@ -import { AbortError } from '@libp2p/interface/errors' -import { TypedEventEmitter, CustomEvent, setMaxListeners } from '@libp2p/interface/events' +import { AbortError, TypedEventEmitter, CustomEvent, setMaxListeners } from '@libp2p/interface' import { PeerSet } from '@libp2p/peer-collections' import { anySignal } from 'any-signal' import merge from 'it-merge' @@ -12,10 +11,7 @@ import { queryPath } from './query-path.js' import type { QueryFunc } from './types.js' import type { QueryEvent, QueryOptions as RootQueryOptions } from '../index.js' import type { RoutingTable } from '../routing-table/index.js' -import type { ComponentLogger } from '@libp2p/interface' -import type { Metric, Metrics } from '@libp2p/interface/metrics' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Startable } from '@libp2p/interface/startable' +import type { ComponentLogger, Metric, Metrics, PeerId, Startable } from '@libp2p/interface' import type { DeferredPromise } from 'p-defer' export interface CleanUpEvents { diff --git a/packages/kad-dht/src/query/query-path.ts b/packages/kad-dht/src/query/query-path.ts index 8a8db6ff9a..79c2285992 100644 --- a/packages/kad-dht/src/query/query-path.ts +++ b/packages/kad-dht/src/query/query-path.ts @@ -8,9 +8,7 @@ import { queueToGenerator } from './utils.js' import type { CleanUpEvents } from './manager.js' import type { QueryEvent, QueryOptions } from '../index.js' import type { QueryFunc } from '../query/types.js' -import type { Logger } from '@libp2p/interface' -import type { TypedEventTarget } from '@libp2p/interface/events' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { Logger, TypedEventTarget, PeerId } from '@libp2p/interface' import type { PeerSet } from '@libp2p/peer-collections' const MAX_XOR = BigInt('0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF') diff --git a/packages/kad-dht/src/query/types.ts b/packages/kad-dht/src/query/types.ts index a764aa50c0..1705f1b5b1 100644 --- a/packages/kad-dht/src/query/types.ts +++ b/packages/kad-dht/src/query/types.ts @@ -1,5 +1,5 @@ import type { QueryEvent } from '../index.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' export interface QueryContext { // the key we are looking up diff --git a/packages/kad-dht/src/query/utils.ts b/packages/kad-dht/src/query/utils.ts index 4b2fc93deb..c329119ef9 100644 --- a/packages/kad-dht/src/query/utils.ts +++ b/packages/kad-dht/src/query/utils.ts @@ -1,9 +1,8 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { pushable } from 'it-pushable' import type { CleanUpEvents } from './manager.js' import type { QueryEvent } from '../index.js' -import type { Logger } from '@libp2p/interface' -import type { TypedEventTarget } from '@libp2p/interface/events' +import type { Logger, TypedEventTarget } from '@libp2p/interface' import type Queue from 'p-queue' export async function * queueToGenerator (queue: Queue, signal: AbortSignal, cleanUp: TypedEventTarget, log: Logger): AsyncGenerator { diff --git a/packages/kad-dht/src/record/selectors.ts b/packages/kad-dht/src/record/selectors.ts index 825af34154..710a4301a4 100644 --- a/packages/kad-dht/src/record/selectors.ts +++ b/packages/kad-dht/src/record/selectors.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { toString as uint8ArrayToString } from 'uint8arrays/to-string' import type { Selectors } from '../index.js' diff --git a/packages/kad-dht/src/record/validators.ts b/packages/kad-dht/src/record/validators.ts index a31e09b550..7af8b36602 100644 --- a/packages/kad-dht/src/record/validators.ts +++ b/packages/kad-dht/src/record/validators.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { sha256 } from 'multiformats/hashes/sha2' import { equals as uint8ArrayEquals } from 'uint8arrays/equals' import { toString as uint8ArrayToString } from 'uint8arrays/to-string' diff --git a/packages/kad-dht/src/routing-table/index.ts b/packages/kad-dht/src/routing-table/index.ts index 14c646aee9..adcdf7d3ce 100644 --- a/packages/kad-dht/src/routing-table/index.ts +++ b/packages/kad-dht/src/routing-table/index.ts @@ -1,14 +1,10 @@ -import { TypedEventEmitter } from '@libp2p/interface/events' +import { TypedEventEmitter } from '@libp2p/interface' import { PeerSet } from '@libp2p/peer-collections' import Queue from 'p-queue' import * as utils from '../utils.js' import { KBucket, type PingEventDetails } from './k-bucket.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { Metric, Metrics } from '@libp2p/interface/metrics' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { Startable } from '@libp2p/interface/startable' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' +import type { ComponentLogger, Logger, Metric, Metrics, PeerId, PeerStore, Startable } from '@libp2p/interface' +import type { ConnectionManager } from '@libp2p/interface-internal' export const KAD_CLOSE_TAG_NAME = 'kad-close' export const KAD_CLOSE_TAG_VALUE = 50 diff --git a/packages/kad-dht/src/routing-table/k-bucket.ts b/packages/kad-dht/src/routing-table/k-bucket.ts index 57585926e9..0f52068e6d 100644 --- a/packages/kad-dht/src/routing-table/k-bucket.ts +++ b/packages/kad-dht/src/routing-table/k-bucket.ts @@ -27,8 +27,8 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -import { TypedEventEmitter } from '@libp2p/interface/events' -import type { PeerId } from '@libp2p/interface/peer-id' +import { TypedEventEmitter } from '@libp2p/interface' +import type { PeerId } from '@libp2p/interface' function arrayEquals (array1: Uint8Array, array2: Uint8Array): boolean { if (array1 === array2) { diff --git a/packages/kad-dht/src/routing-table/refresh.ts b/packages/kad-dht/src/routing-table/refresh.ts index 6732354eee..6a2c183886 100644 --- a/packages/kad-dht/src/routing-table/refresh.ts +++ b/packages/kad-dht/src/routing-table/refresh.ts @@ -7,8 +7,7 @@ import { TABLE_REFRESH_INTERVAL, TABLE_REFRESH_QUERY_TIMEOUT } from '../constant import GENERATED_PREFIXES from './generated-prefix-list.js' import type { RoutingTable } from './index.js' import type { PeerRouting } from '../peer-routing/index.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { ComponentLogger, Logger, PeerId } from '@libp2p/interface' /** * Cannot generate random KadIds longer than this + 1 diff --git a/packages/kad-dht/src/rpc/handlers/add-provider.ts b/packages/kad-dht/src/rpc/handlers/add-provider.ts index b30785d5bd..f2dd3a3c43 100644 --- a/packages/kad-dht/src/rpc/handlers/add-provider.ts +++ b/packages/kad-dht/src/rpc/handlers/add-provider.ts @@ -1,10 +1,9 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { CID } from 'multiformats/cid' import type { Message } from '../../message/index.js' import type { Providers } from '../../providers' import type { DHTMessageHandler } from '../index.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { ComponentLogger, Logger, PeerId } from '@libp2p/interface' export interface AddProviderComponents { logger: ComponentLogger diff --git a/packages/kad-dht/src/rpc/handlers/find-node.ts b/packages/kad-dht/src/rpc/handlers/find-node.ts index 5608f65c4e..a18713d9c8 100644 --- a/packages/kad-dht/src/rpc/handlers/find-node.ts +++ b/packages/kad-dht/src/rpc/handlers/find-node.ts @@ -7,10 +7,8 @@ import { } from '../../utils.js' import type { PeerRouting } from '../../peer-routing/index.js' import type { DHTMessageHandler } from '../index.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerInfo } from '@libp2p/interface/peer-info' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' +import type { ComponentLogger, Logger, PeerId, PeerInfo } from '@libp2p/interface' +import type { AddressManager } from '@libp2p/interface-internal' export interface FindNodeHandlerInit { peerRouting: PeerRouting diff --git a/packages/kad-dht/src/rpc/handlers/get-providers.ts b/packages/kad-dht/src/rpc/handlers/get-providers.ts index 725b5d287d..96cf040f1c 100644 --- a/packages/kad-dht/src/rpc/handlers/get-providers.ts +++ b/packages/kad-dht/src/rpc/handlers/get-providers.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { CID } from 'multiformats/cid' import { Message } from '../../message/index.js' import { @@ -8,10 +8,7 @@ import { import type { PeerRouting } from '../../peer-routing/index.js' import type { Providers } from '../../providers.js' import type { DHTMessageHandler } from '../index.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerInfo } from '@libp2p/interface/peer-info' -import type { PeerStore } from '@libp2p/interface/peer-store' +import type { ComponentLogger, Logger, PeerId, PeerInfo, PeerStore } from '@libp2p/interface' import type { Multiaddr } from '@multiformats/multiaddr' export interface GetProvidersHandlerInit { diff --git a/packages/kad-dht/src/rpc/handlers/get-value.ts b/packages/kad-dht/src/rpc/handlers/get-value.ts index d53c9691dd..50475bf191 100644 --- a/packages/kad-dht/src/rpc/handlers/get-value.ts +++ b/packages/kad-dht/src/rpc/handlers/get-value.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { MAX_RECORD_AGE } from '../../constants.js' @@ -7,9 +7,7 @@ import { Libp2pRecord } from '../../record/index.js' import { bufferToRecordKey, isPublicKeyKey, fromPublicKeyKey } from '../../utils.js' import type { PeerRouting } from '../../peer-routing/index.js' import type { DHTMessageHandler } from '../index.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore } from '@libp2p/interface/peer-store' +import type { ComponentLogger, Logger, PeerId, PeerStore } from '@libp2p/interface' import type { Datastore } from 'interface-datastore' export interface GetValueHandlerInit { diff --git a/packages/kad-dht/src/rpc/handlers/ping.ts b/packages/kad-dht/src/rpc/handlers/ping.ts index 06a6d50ada..1a63aad153 100644 --- a/packages/kad-dht/src/rpc/handlers/ping.ts +++ b/packages/kad-dht/src/rpc/handlers/ping.ts @@ -1,7 +1,6 @@ import type { Message } from '../../message/index.js' import type { DHTMessageHandler } from '../index.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { ComponentLogger, Logger, PeerId } from '@libp2p/interface' export interface PingComponents { logger: ComponentLogger diff --git a/packages/kad-dht/src/rpc/handlers/put-value.ts b/packages/kad-dht/src/rpc/handlers/put-value.ts index f466d7bc1a..9fe1fe76e4 100644 --- a/packages/kad-dht/src/rpc/handlers/put-value.ts +++ b/packages/kad-dht/src/rpc/handlers/put-value.ts @@ -1,11 +1,10 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { verifyRecord } from '../../record/validators.js' import { bufferToRecordKey } from '../../utils.js' import type { Validators } from '../../index.js' import type { Message } from '../../message/index.js' import type { DHTMessageHandler } from '../index.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { ComponentLogger, Logger, PeerId } from '@libp2p/interface' import type { Datastore } from 'interface-datastore' export interface PutValueHandlerInit { diff --git a/packages/kad-dht/src/rpc/index.ts b/packages/kad-dht/src/rpc/index.ts index c90703dfc0..8a77a1730b 100644 --- a/packages/kad-dht/src/rpc/index.ts +++ b/packages/kad-dht/src/rpc/index.ts @@ -11,9 +11,8 @@ import type { Validators } from '../index.js' import type { PeerRouting } from '../peer-routing' import type { Providers } from '../providers' import type { RoutingTable } from '../routing-table' -import type { Logger } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { IncomingStreamData } from '@libp2p/interface-internal/registrar' +import type { Logger, PeerId } from '@libp2p/interface' +import type { IncomingStreamData } from '@libp2p/interface-internal' export interface DHTMessageHandler { handle(peerId: PeerId, msg: Message): Promise diff --git a/packages/kad-dht/src/topology-listener.ts b/packages/kad-dht/src/topology-listener.ts index a232ffaf50..cab72514b1 100644 --- a/packages/kad-dht/src/topology-listener.ts +++ b/packages/kad-dht/src/topology-listener.ts @@ -1,8 +1,6 @@ -import { CustomEvent, TypedEventEmitter } from '@libp2p/interface/events' +import { CustomEvent, TypedEventEmitter } from '@libp2p/interface' import type { KadDHTComponents } from '.' -import type { Logger } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Startable } from '@libp2p/interface/startable' +import type { Logger, PeerId, Startable } from '@libp2p/interface' export interface TopologyListenerInit { protocol: string diff --git a/packages/kad-dht/src/utils.ts b/packages/kad-dht/src/utils.ts index 5ee8a06b4c..583c552253 100644 --- a/packages/kad-dht/src/utils.ts +++ b/packages/kad-dht/src/utils.ts @@ -7,8 +7,7 @@ import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { toString as uint8ArrayToString } from 'uint8arrays/to-string' import { RECORD_KEY_PREFIX } from './constants.js' import { Libp2pRecord } from './record/index.js' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerInfo } from '@libp2p/interface/peer-info' +import type { PeerId, PeerInfo } from '@libp2p/interface' // const IPNS_PREFIX = uint8ArrayFromString('/ipns/') const PK_PREFIX = uint8ArrayFromString('/pk/') diff --git a/packages/kad-dht/test/generate-peers/generate-peers.node.ts b/packages/kad-dht/test/generate-peers/generate-peers.node.ts index 0c5d1af038..5f482ae3ac 100644 --- a/packages/kad-dht/test/generate-peers/generate-peers.node.ts +++ b/packages/kad-dht/test/generate-peers/generate-peers.node.ts @@ -5,7 +5,7 @@ import { defaultLogger } from '@libp2p/logger' import { createRSAPeerId } from '@libp2p/peer-id-factory' import { expect } from 'aegir/chai' import { execa } from 'execa' -import { stubInterface } from 'ts-sinon' +import { stubInterface } from 'sinon-ts' import { toString as uintArrayToString } from 'uint8arrays/to-string' import which from 'which' import { RoutingTable } from '../../src/routing-table/index.js' @@ -13,8 +13,8 @@ import { RoutingTableRefresh } from '../../src/routing-table/refresh.js' import { convertPeerId } from '../../src/utils.js' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' +import type { PeerStore } from '@libp2p/interface' +import type { ConnectionManager } from '@libp2p/interface-internal' const dirname = path.dirname(fileURLToPath(import.meta.url)) diff --git a/packages/kad-dht/test/kad-dht.spec.ts b/packages/kad-dht/test/kad-dht.spec.ts index b3ec84dd4f..ef6750c91c 100644 --- a/packages/kad-dht/test/kad-dht.spec.ts +++ b/packages/kad-dht/test/kad-dht.spec.ts @@ -1,7 +1,7 @@ /* eslint-env mocha */ /* eslint max-nested-callbacks: ["error", 8] */ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { expect } from 'aegir/chai' import delay from 'delay' import all from 'it-all' @@ -25,7 +25,7 @@ import { countDiffPeers } from './utils/index.js' import { sortClosestPeers } from './utils/sort-closest-peers.js' import { TestDHT } from './utils/test-dht.js' import type { DefaultDualKadDHT } from '../src/dual-kad-dht.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' import type { CID } from 'multiformats/cid' async function findEvent (events: AsyncIterable, name: 'FINAL_PEER'): Promise diff --git a/packages/kad-dht/test/message.node.ts b/packages/kad-dht/test/message.node.ts index 5521e8669d..20bb8729ac 100644 --- a/packages/kad-dht/test/message.node.ts +++ b/packages/kad-dht/test/message.node.ts @@ -2,7 +2,7 @@ import fs from 'fs' import path from 'path' -import { isPeerId } from '@libp2p/interface/peer-id' +import { isPeerId } from '@libp2p/interface' import { expect } from 'aegir/chai' import range from 'lodash.range' import { Message } from '../src/message/index.js' diff --git a/packages/kad-dht/test/network.spec.ts b/packages/kad-dht/test/network.spec.ts index c7a7779c7a..395ab0c138 100644 --- a/packages/kad-dht/test/network.spec.ts +++ b/packages/kad-dht/test/network.spec.ts @@ -9,8 +9,7 @@ import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { Message, MESSAGE_TYPE } from '../src/message/index.js' import { TestDHT } from './utils/test-dht.js' import type { DefaultDualKadDHT } from '../src/dual-kad-dht.js' -import type { Connection } from '@libp2p/interface/connection' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { Connection, PeerId } from '@libp2p/interface' import type { Multiaddr } from '@multiformats/multiaddr' import type { Sink, Source } from 'it-stream-types' import type { Uint8ArrayList } from 'uint8arraylist' diff --git a/packages/kad-dht/test/peer-list.spec.ts b/packages/kad-dht/test/peer-list.spec.ts index 3eec30d022..e82710008c 100644 --- a/packages/kad-dht/test/peer-list.spec.ts +++ b/packages/kad-dht/test/peer-list.spec.ts @@ -3,7 +3,7 @@ import { expect } from 'aegir/chai' import { PeerList } from '../src/peer-list/index.js' import { createPeerIds } from './utils/create-peer-id.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' describe('PeerList', () => { let peers: PeerId[] diff --git a/packages/kad-dht/test/providers.spec.ts b/packages/kad-dht/test/providers.spec.ts index 2fa0951a3d..dbb094c146 100644 --- a/packages/kad-dht/test/providers.spec.ts +++ b/packages/kad-dht/test/providers.spec.ts @@ -9,7 +9,7 @@ import { sha256 } from 'multiformats/hashes/sha2' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { Providers } from '../src/providers.js' import { createPeerIds } from './utils/create-peer-id.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' describe('Providers', () => { let peers: PeerId[] diff --git a/packages/kad-dht/test/query-self.spec.ts b/packages/kad-dht/test/query-self.spec.ts index 8bae6d8418..b7b7d72f12 100644 --- a/packages/kad-dht/test/query-self.spec.ts +++ b/packages/kad-dht/test/query-self.spec.ts @@ -1,16 +1,16 @@ /* eslint-env mocha */ -import { CustomEvent } from '@libp2p/interface/events' +import { CustomEvent } from '@libp2p/interface' import { defaultLogger } from '@libp2p/logger' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { expect } from 'aegir/chai' import pDefer from 'p-defer' -import { stubInterface, type StubbedInstance } from 'ts-sinon' +import { stubInterface, type StubbedInstance } from 'sinon-ts' import { finalPeerEvent } from '../src/query/events.js' import { QuerySelf } from '../src/query-self.js' import type { PeerRouting } from '../src/peer-routing/index.js' import type { RoutingTable } from '../src/routing-table/index.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' import type { DeferredPromise } from 'p-defer' describe('Query Self', () => { diff --git a/packages/kad-dht/test/query.spec.ts b/packages/kad-dht/test/query.spec.ts index f5c72a360a..2715119ee9 100644 --- a/packages/kad-dht/test/query.spec.ts +++ b/packages/kad-dht/test/query.spec.ts @@ -6,7 +6,7 @@ import delay from 'delay' import all from 'it-all' import drain from 'it-drain' import pDefer from 'p-defer' -import { type StubbedInstance, stubInterface } from 'ts-sinon' +import { type StubbedInstance, stubInterface } from 'sinon-ts' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { EventTypes, type QueryEvent } from '../src/index.js' import { MESSAGE_TYPE } from '../src/message/index.js' @@ -21,7 +21,7 @@ import { createPeerId, createPeerIds } from './utils/create-peer-id.js' import { sortClosestPeers } from './utils/sort-closest-peers.js' import type { QueryFunc } from '../src/query/types.js' import type { RoutingTable } from '../src/routing-table/index.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' interface TopologyEntry { delay?: number diff --git a/packages/kad-dht/test/query/utils.spec.ts b/packages/kad-dht/test/query/utils.spec.ts index b93d76c2d3..c1d86a8954 100644 --- a/packages/kad-dht/test/query/utils.spec.ts +++ b/packages/kad-dht/test/query/utils.spec.ts @@ -1,4 +1,4 @@ -import { TypedEventEmitter } from '@libp2p/interface/events' +import { TypedEventEmitter } from '@libp2p/interface' import { logger } from '@libp2p/logger' import { expect } from 'aegir/chai' import delay from 'delay' diff --git a/packages/kad-dht/test/routing-table.spec.ts b/packages/kad-dht/test/routing-table.spec.ts index 762dabdc99..3babf30480 100644 --- a/packages/kad-dht/test/routing-table.spec.ts +++ b/packages/kad-dht/test/routing-table.spec.ts @@ -1,6 +1,6 @@ /* eslint-env mocha */ -import { TypedEventEmitter, CustomEvent } from '@libp2p/interface/events' +import { TypedEventEmitter, CustomEvent } from '@libp2p/interface' import { mockConnectionManager } from '@libp2p/interface-compliance-tests/mocks' import { defaultLogger } from '@libp2p/logger' import { PeerSet } from '@libp2p/peer-collections' @@ -15,17 +15,14 @@ import random from 'lodash.random' import { pEvent } from 'p-event' import pWaitFor from 'p-wait-for' import sinon from 'sinon' -import { stubInterface } from 'ts-sinon' +import { stubInterface } from 'sinon-ts' import { PROTOCOL_DHT } from '../src/constants.js' import { KAD_CLOSE_TAG_NAME, KAD_CLOSE_TAG_VALUE, KBUCKET_SIZE, RoutingTable, type RoutingTableComponents } from '../src/routing-table/index.js' import * as kadUtils from '../src/utils.js' import { createPeerId, createPeerIds } from './utils/create-peer-id.js' import { sortClosestPeers } from './utils/sort-closest-peers.js' -import type { Libp2pEvents } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { Libp2pEvents, PeerId, PeerStore } from '@libp2p/interface' +import type { ConnectionManager, Registrar } from '@libp2p/interface-internal' describe('Routing Table', () => { let table: RoutingTable diff --git a/packages/kad-dht/test/rpc/handlers/add-provider.spec.ts b/packages/kad-dht/test/rpc/handlers/add-provider.spec.ts index e113b7ac68..64973c2bd0 100644 --- a/packages/kad-dht/test/rpc/handlers/add-provider.spec.ts +++ b/packages/kad-dht/test/rpc/handlers/add-provider.spec.ts @@ -11,7 +11,7 @@ import { AddProviderHandler } from '../../../src/rpc/handlers/add-provider.js' import { createPeerIds } from '../../utils/create-peer-id.js' import { createValues } from '../../utils/create-values.js' import type { DHTMessageHandler } from '../../../src/rpc/index.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' import type { CID } from 'multiformats' describe('rpc - handlers - AddProvider', () => { diff --git a/packages/kad-dht/test/rpc/handlers/find-node.spec.ts b/packages/kad-dht/test/rpc/handlers/find-node.spec.ts index 5e3f82c3d1..5ea85b0763 100644 --- a/packages/kad-dht/test/rpc/handlers/find-node.spec.ts +++ b/packages/kad-dht/test/rpc/handlers/find-node.spec.ts @@ -4,15 +4,15 @@ import { defaultLogger } from '@libp2p/logger' import { multiaddr } from '@multiformats/multiaddr' import { expect } from 'aegir/chai' import Sinon, { type SinonStubbedInstance } from 'sinon' -import { stubInterface } from 'ts-sinon' +import { stubInterface } from 'sinon-ts' import { Message, MESSAGE_TYPE } from '../../../src/message/index.js' import { PeerRouting } from '../../../src/peer-routing/index.js' import { FindNodeHandler } from '../../../src/rpc/handlers/find-node.js' import { createPeerId } from '../../utils/create-peer-id.js' import type { DHTMessageHandler } from '../../../src/rpc/index.js' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' -import type { StubbedInstance } from 'ts-sinon' +import type { PeerId } from '@libp2p/interface' +import type { AddressManager } from '@libp2p/interface-internal' +import type { StubbedInstance } from 'sinon-ts' const T = MESSAGE_TYPE.FIND_NODE diff --git a/packages/kad-dht/test/rpc/handlers/get-providers.spec.ts b/packages/kad-dht/test/rpc/handlers/get-providers.spec.ts index f5f109b3ac..76df77fc55 100644 --- a/packages/kad-dht/test/rpc/handlers/get-providers.spec.ts +++ b/packages/kad-dht/test/rpc/handlers/get-providers.spec.ts @@ -1,6 +1,6 @@ /* eslint-env mocha */ -import { TypedEventEmitter } from '@libp2p/interface/events' +import { TypedEventEmitter } from '@libp2p/interface' import { defaultLogger } from '@libp2p/logger' import { PersistentPeerStore } from '@libp2p/peer-store' import { multiaddr } from '@multiformats/multiaddr' @@ -14,10 +14,7 @@ import { Providers } from '../../../src/providers.js' import { GetProvidersHandler, type GetProvidersHandlerComponents } from '../../../src/rpc/handlers/get-providers.js' import { createPeerId } from '../../utils/create-peer-id.js' import { createValues, type Value } from '../../utils/create-values.js' -import type { Libp2pEvents } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerInfo } from '@libp2p/interface/peer-info' -import type { PeerStore } from '@libp2p/interface/peer-store' +import type { Libp2pEvents, PeerId, PeerInfo, PeerStore } from '@libp2p/interface' const T = MESSAGE_TYPE.GET_PROVIDERS diff --git a/packages/kad-dht/test/rpc/handlers/get-value.spec.ts b/packages/kad-dht/test/rpc/handlers/get-value.spec.ts index 5332419929..b29d2a975d 100644 --- a/packages/kad-dht/test/rpc/handlers/get-value.spec.ts +++ b/packages/kad-dht/test/rpc/handlers/get-value.spec.ts @@ -1,6 +1,6 @@ /* eslint-env mocha */ -import { TypedEventEmitter } from '@libp2p/interface/events' +import { TypedEventEmitter } from '@libp2p/interface' import { defaultLogger } from '@libp2p/logger' import { PersistentPeerStore } from '@libp2p/peer-store' import { expect } from 'aegir/chai' @@ -13,9 +13,7 @@ import { Libp2pRecord } from '../../../src/record/index.js' import { GetValueHandler, type GetValueHandlerComponents } from '../../../src/rpc/handlers/get-value.js' import * as utils from '../../../src/utils.js' import { createPeerId } from '../../utils/create-peer-id.js' -import type { Libp2pEvents } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore } from '@libp2p/interface/peer-store' +import type { Libp2pEvents, PeerId, PeerStore } from '@libp2p/interface' import type { Datastore } from 'interface-datastore' import type { SinonStubbedInstance } from 'sinon' diff --git a/packages/kad-dht/test/rpc/handlers/ping.spec.ts b/packages/kad-dht/test/rpc/handlers/ping.spec.ts index 0a7872bbc8..1cd1a40447 100644 --- a/packages/kad-dht/test/rpc/handlers/ping.spec.ts +++ b/packages/kad-dht/test/rpc/handlers/ping.spec.ts @@ -7,7 +7,7 @@ import { Message, MESSAGE_TYPE } from '../../../src/message/index.js' import { PingHandler } from '../../../src/rpc/handlers/ping.js' import { createPeerId } from '../../utils/create-peer-id.js' import type { DHTMessageHandler } from '../../../src/rpc/index.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' const T = MESSAGE_TYPE.PING diff --git a/packages/kad-dht/test/rpc/handlers/put-value.spec.ts b/packages/kad-dht/test/rpc/handlers/put-value.spec.ts index b8f2b5ce7a..c747f2432b 100644 --- a/packages/kad-dht/test/rpc/handlers/put-value.spec.ts +++ b/packages/kad-dht/test/rpc/handlers/put-value.spec.ts @@ -12,7 +12,7 @@ import { PutValueHandler } from '../../../src/rpc/handlers/put-value.js' import * as utils from '../../../src/utils.js' import { createPeerId } from '../../utils/create-peer-id.js' import type { Validators } from '../../../src/index.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' import type { Datastore } from 'interface-datastore' const T = MESSAGE_TYPE.PUT_VALUE diff --git a/packages/kad-dht/test/rpc/index.node.ts b/packages/kad-dht/test/rpc/index.node.ts index d829d26c5b..11e08e233d 100644 --- a/packages/kad-dht/test/rpc/index.node.ts +++ b/packages/kad-dht/test/rpc/index.node.ts @@ -1,7 +1,6 @@ /* eslint-env mocha */ -import { TypedEventEmitter } from '@libp2p/interface/events' -import { start } from '@libp2p/interface/startable' +import { TypedEventEmitter, start } from '@libp2p/interface' import { mockStream } from '@libp2p/interface-compliance-tests/mocks' import { defaultLogger } from '@libp2p/logger' import { PersistentPeerStore } from '@libp2p/peer-store' @@ -13,7 +12,7 @@ import map from 'it-map' import { pipe } from 'it-pipe' import pDefer from 'p-defer' import Sinon, { type SinonStubbedInstance } from 'sinon' -import { stubInterface } from 'ts-sinon' +import { stubInterface } from 'sinon-ts' import { Uint8ArrayList } from 'uint8arraylist' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { Message, MESSAGE_TYPE } from '../../src/message/index.js' @@ -23,11 +22,8 @@ import { RoutingTable } from '../../src/routing-table/index.js' import { RPC, type RPCComponents } from '../../src/rpc/index.js' import { createPeerId } from '../utils/create-peer-id.js' import type { Validators } from '../../src/index.js' -import type { Libp2pEvents } from '@libp2p/interface' -import type { Connection } from '@libp2p/interface/connection' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' +import type { Libp2pEvents, Connection, PeerId, PeerStore } from '@libp2p/interface' +import type { AddressManager } from '@libp2p/interface-internal' import type { Datastore } from 'interface-datastore' import type { Duplex, Source } from 'it-stream-types' diff --git a/packages/kad-dht/test/utils/create-peer-id.ts b/packages/kad-dht/test/utils/create-peer-id.ts index 940aaf24d6..8fe7de9296 100644 --- a/packages/kad-dht/test/utils/create-peer-id.ts +++ b/packages/kad-dht/test/utils/create-peer-id.ts @@ -1,5 +1,5 @@ import { createEd25519PeerId } from '@libp2p/peer-id-factory' -import type { Ed25519PeerId } from '@libp2p/interface/peer-id' +import type { Ed25519PeerId } from '@libp2p/interface' /** * Creates multiple PeerIds diff --git a/packages/kad-dht/test/utils/index.ts b/packages/kad-dht/test/utils/index.ts index 1ee82f8070..ba27fe0e69 100644 --- a/packages/kad-dht/test/utils/index.ts +++ b/packages/kad-dht/test/utils/index.ts @@ -1,4 +1,4 @@ -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' /** * Count how many peers are in b but are not in a diff --git a/packages/kad-dht/test/utils/sort-closest-peers.ts b/packages/kad-dht/test/utils/sort-closest-peers.ts index f0bdd9ae5a..640b26943e 100644 --- a/packages/kad-dht/test/utils/sort-closest-peers.ts +++ b/packages/kad-dht/test/utils/sort-closest-peers.ts @@ -3,7 +3,7 @@ import map from 'it-map' import { compare as uint8ArrayCompare } from 'uint8arrays/compare' import { xor as uint8ArrayXor } from 'uint8arrays/xor' import { convertPeerId } from '../../src/utils.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' /** * Sort peers by distance to the given `kadId` diff --git a/packages/kad-dht/test/utils/test-dht.ts b/packages/kad-dht/test/utils/test-dht.ts index d8b41d6c9f..742eae1357 100644 --- a/packages/kad-dht/test/utils/test-dht.ts +++ b/packages/kad-dht/test/utils/test-dht.ts @@ -1,5 +1,4 @@ -import { TypedEventEmitter } from '@libp2p/interface/events' -import { start, stop } from '@libp2p/interface/startable' +import { TypedEventEmitter, start, stop } from '@libp2p/interface' import { mockRegistrar, mockConnectionManager, mockNetwork } from '@libp2p/interface-compliance-tests/mocks' import { defaultLogger } from '@libp2p/logger' import { PersistentPeerStore } from '@libp2p/peer-store' @@ -7,17 +6,13 @@ import { multiaddr } from '@multiformats/multiaddr' import { MemoryDatastore } from 'datastore-core/memory' import delay from 'delay' import pRetry from 'p-retry' -import { stubInterface } from 'ts-sinon' +import { stubInterface } from 'sinon-ts' import { DefaultDualKadDHT } from '../../src/dual-kad-dht.js' import { createPeerId } from './create-peer-id.js' import type { DualKadDHT, KadDHTComponents, KadDHTInit } from '../../src/index.js' import type { DefaultKadDHT } from '../../src/kad-dht.js' -import type { Libp2pEvents } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { Libp2pEvents, PeerId, PeerStore } from '@libp2p/interface' +import type { AddressManager, ConnectionManager, Registrar } from '@libp2p/interface-internal' export class TestDHT { private readonly peers: Map diff --git a/packages/keychain/src/index.ts b/packages/keychain/src/index.ts index 3c9e1419fd..b11a884663 100644 --- a/packages/keychain/src/index.ts +++ b/packages/keychain/src/index.ts @@ -51,9 +51,7 @@ */ import { DefaultKeychain } from './keychain.js' -import type { ComponentLogger } from '@libp2p/interface' -import type { KeyType } from '@libp2p/interface/keys' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { ComponentLogger, KeyType, PeerId } from '@libp2p/interface' import type { Datastore } from 'interface-datastore' import type { Multibase } from 'multiformats/bases/interface.js' diff --git a/packages/keychain/src/keychain.ts b/packages/keychain/src/keychain.ts index 2f2ad8e043..aafdf534c5 100644 --- a/packages/keychain/src/keychain.ts +++ b/packages/keychain/src/keychain.ts @@ -2,7 +2,7 @@ import { pbkdf2, randomBytes } from '@libp2p/crypto' import { generateKeyPair, importKey, unmarshalPrivateKey } from '@libp2p/crypto/keys' -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { peerIdFromKeys } from '@libp2p/peer-id' import { Key } from 'interface-datastore/key' import mergeOptions from 'merge-options' @@ -11,9 +11,7 @@ import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { toString as uint8ArrayToString } from 'uint8arrays/to-string' import { codes } from './errors.js' import type { KeychainComponents, KeychainInit, Keychain, KeyInfo } from './index.js' -import type { Logger } from '@libp2p/interface' -import type { KeyType } from '@libp2p/interface/keys' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { Logger, KeyType, PeerId } from '@libp2p/interface' const keyPrefix = '/pkcs8/' const infoPrefix = '/info/' diff --git a/packages/keychain/test/keychain.spec.ts b/packages/keychain/test/keychain.spec.ts index 6b54fbd472..2c3e6b2b1f 100644 --- a/packages/keychain/test/keychain.spec.ts +++ b/packages/keychain/test/keychain.spec.ts @@ -12,7 +12,7 @@ import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { toString as uint8ArrayToString } from 'uint8arrays/to-string' import { DefaultKeychain } from '../src/keychain.js' import type { KeychainInit, Keychain, KeyInfo } from '../src/index.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' import type { Datastore } from 'interface-datastore' describe('keychain', () => { diff --git a/packages/keychain/test/peerid.spec.ts b/packages/keychain/test/peerid.spec.ts index 0c567e23ad..d1520b5fff 100644 --- a/packages/keychain/test/peerid.spec.ts +++ b/packages/keychain/test/peerid.spec.ts @@ -5,7 +5,7 @@ import { createFromPrivKey } from '@libp2p/peer-id-factory' import { expect } from 'aegir/chai' import { base58btc } from 'multiformats/bases/base58' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' const sample = { id: '122019318b6e5e0cf93a2314bf01269a2cc23cd3dcd452d742cdb9379d8646f6e4a9', diff --git a/packages/libp2p/package.json b/packages/libp2p/package.json index 90eb2fa42b..04443fec82 100644 --- a/packages/libp2p/package.json +++ b/packages/libp2p/package.json @@ -100,16 +100,16 @@ }, "devDependencies": { "@chainsafe/libp2p-gossipsub": "^10.0.0", - "@chainsafe/libp2p-noise": "^13.0.2", - "@chainsafe/libp2p-yamux": "^5.0.0", + "@chainsafe/libp2p-noise": "^14.0.0", + "@chainsafe/libp2p-yamux": "^6.0.1", "@libp2p/bootstrap": "^10.0.0", "@libp2p/circuit-relay-v2": "^1.0.0", - "@libp2p/daemon-client": "^7.0.0", - "@libp2p/daemon-server": "^6.0.0", + "@libp2p/daemon-client": "^8.0.0", + "@libp2p/daemon-server": "^7.0.0", "@libp2p/floodsub": "^8.0.14", "@libp2p/identify": "^1.0.0", "@libp2p/interface-compliance-tests": "^5.0.0", - "@libp2p/interop": "^9.0.0", + "@libp2p/interop": "^10.0.0", "@libp2p/kad-dht": "^11.0.0", "@libp2p/mdns": "^10.0.0", "@libp2p/mplex": "^10.0.0", diff --git a/packages/libp2p/src/address-manager/index.ts b/packages/libp2p/src/address-manager/index.ts index 1ff557a6a7..7dd7c4ca5c 100644 --- a/packages/libp2p/src/address-manager/index.ts +++ b/packages/libp2p/src/address-manager/index.ts @@ -1,11 +1,8 @@ import { peerIdFromString } from '@libp2p/peer-id' import { multiaddr } from '@multiformats/multiaddr' import { debounce } from './utils.js' -import type { ComponentLogger, Libp2pEvents, Logger } from '@libp2p/interface' -import type { TypedEventTarget } from '@libp2p/interface/events' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { ComponentLogger, Libp2pEvents, Logger, TypedEventTarget, PeerId, PeerStore } from '@libp2p/interface' +import type { TransportManager } from '@libp2p/interface-internal' import type { Multiaddr } from '@multiformats/multiaddr' export interface AddressManagerInit { diff --git a/packages/libp2p/src/components.ts b/packages/libp2p/src/components.ts index f03169820d..f27da1ec7a 100644 --- a/packages/libp2p/src/components.ts +++ b/packages/libp2p/src/components.ts @@ -1,20 +1,7 @@ -import { CodeError } from '@libp2p/interface/errors' -import { isStartable, type Startable } from '@libp2p/interface/startable' +import { CodeError } from '@libp2p/interface' +import { isStartable, type Startable, type Libp2pEvents, type ComponentLogger, type NodeInfo, type ConnectionProtector, type ConnectionGater, type ContentRouting, type TypedEventTarget, type Metrics, type PeerId, type PeerRouting, type PeerStore, type Upgrader } from '@libp2p/interface' import { defaultLogger } from '@libp2p/logger' -import type { Libp2pEvents, ComponentLogger, NodeInfo } from '@libp2p/interface' -import type { ConnectionProtector } from '@libp2p/interface/connection' -import type { ConnectionGater } from '@libp2p/interface/connection-gater' -import type { ContentRouting } from '@libp2p/interface/content-routing' -import type { TypedEventTarget } from '@libp2p/interface/events' -import type { Metrics } from '@libp2p/interface/metrics' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerRouting } from '@libp2p/interface/peer-routing' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { Upgrader } from '@libp2p/interface/transport' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { AddressManager, ConnectionManager, Registrar, TransportManager } from '@libp2p/interface-internal' import type { Datastore } from 'interface-datastore' export interface Components extends Record, Startable { diff --git a/packages/libp2p/src/config.ts b/packages/libp2p/src/config.ts index a9b83fb532..f17593cf16 100644 --- a/packages/libp2p/src/config.ts +++ b/packages/libp2p/src/config.ts @@ -1,5 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' -import { FaultTolerance } from '@libp2p/interface/transport' +import { CodeError, FaultTolerance } from '@libp2p/interface' import { defaultAddressSort } from '@libp2p/utils/address-sort' import { dnsaddrResolver } from '@multiformats/multiaddr/resolvers' import mergeOptions from 'merge-options' diff --git a/packages/libp2p/src/config/connection-gater.browser.ts b/packages/libp2p/src/config/connection-gater.browser.ts index c03a153698..5593c8dbe9 100644 --- a/packages/libp2p/src/config/connection-gater.browser.ts +++ b/packages/libp2p/src/config/connection-gater.browser.ts @@ -1,5 +1,5 @@ import isPrivate from 'private-ip' -import type { ConnectionGater } from '@libp2p/interface/connection-gater' +import type { ConnectionGater } from '@libp2p/interface' import type { Multiaddr } from '@multiformats/multiaddr' /** diff --git a/packages/libp2p/src/config/connection-gater.ts b/packages/libp2p/src/config/connection-gater.ts index 40f1827ae7..7739c71e91 100644 --- a/packages/libp2p/src/config/connection-gater.ts +++ b/packages/libp2p/src/config/connection-gater.ts @@ -1,4 +1,4 @@ -import type { ConnectionGater } from '@libp2p/interface/connection-gater' +import type { ConnectionGater } from '@libp2p/interface' /** * Returns a default connection gater implementation that allows everything diff --git a/packages/libp2p/src/connection-manager/auto-dial.ts b/packages/libp2p/src/connection-manager/auto-dial.ts index 9cd95d6df6..7f65917441 100644 --- a/packages/libp2p/src/connection-manager/auto-dial.ts +++ b/packages/libp2p/src/connection-manager/auto-dial.ts @@ -2,11 +2,8 @@ import { PeerMap, PeerSet } from '@libp2p/peer-collections' import { PeerJobQueue } from '@libp2p/utils/peer-job-queue' import { toString as uint8ArrayToString } from 'uint8arrays/to-string' import { AUTO_DIAL_CONCURRENCY, AUTO_DIAL_DISCOVERED_PEERS_DEBOUNCE, AUTO_DIAL_INTERVAL, AUTO_DIAL_MAX_QUEUE_LENGTH, AUTO_DIAL_PEER_RETRY_THRESHOLD, AUTO_DIAL_PRIORITY, LAST_DIAL_FAILURE_KEY, MIN_CONNECTIONS } from './constants.js' -import type { Libp2pEvents, Logger, ComponentLogger } from '@libp2p/interface' -import type { TypedEventTarget } from '@libp2p/interface/events' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { Startable } from '@libp2p/interface/startable' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' +import type { Libp2pEvents, Logger, ComponentLogger, TypedEventTarget, PeerStore, Startable } from '@libp2p/interface' +import type { ConnectionManager } from '@libp2p/interface-internal' interface AutoDialInit { minConnections?: number diff --git a/packages/libp2p/src/connection-manager/connection-pruner.ts b/packages/libp2p/src/connection-manager/connection-pruner.ts index 71a2f2308e..62fdffab0e 100644 --- a/packages/libp2p/src/connection-manager/connection-pruner.ts +++ b/packages/libp2p/src/connection-manager/connection-pruner.ts @@ -1,9 +1,7 @@ import { PeerMap } from '@libp2p/peer-collections' import { MAX_CONNECTIONS } from './constants.js' -import type { Libp2pEvents, Logger, ComponentLogger } from '@libp2p/interface' -import type { TypedEventTarget } from '@libp2p/interface/events' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' +import type { Libp2pEvents, Logger, ComponentLogger, TypedEventTarget, PeerStore } from '@libp2p/interface' +import type { ConnectionManager } from '@libp2p/interface-internal' import type { Multiaddr } from '@multiformats/multiaddr' interface ConnectionPrunerInit { diff --git a/packages/libp2p/src/connection-manager/dial-queue.ts b/packages/libp2p/src/connection-manager/dial-queue.ts index 9550c95dfe..426c426734 100644 --- a/packages/libp2p/src/connection-manager/dial-queue.ts +++ b/packages/libp2p/src/connection-manager/dial-queue.ts @@ -1,5 +1,4 @@ -import { AbortError, CodeError, ERR_TIMEOUT } from '@libp2p/interface/errors' -import { setMaxListeners } from '@libp2p/interface/events' +import { AbortError, CodeError, ERR_TIMEOUT, setMaxListeners } from '@libp2p/interface' import { PeerMap } from '@libp2p/peer-collections' import { defaultAddressSort } from '@libp2p/utils/address-sort' import { type Multiaddr, type Resolver, resolvers } from '@multiformats/multiaddr' @@ -17,13 +16,8 @@ import { LAST_DIAL_FAILURE_KEY } from './constants.js' import { combineSignals, resolveMultiaddrs } from './utils.js' -import type { AddressSorter, AbortOptions, PendingDial, ComponentLogger, Logger } from '@libp2p/interface' -import type { Connection } from '@libp2p/interface/connection' -import type { ConnectionGater } from '@libp2p/interface/connection-gater' -import type { Metric, Metrics } from '@libp2p/interface/metrics' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Address, PeerStore } from '@libp2p/interface/peer-store' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { AddressSorter, AbortOptions, PendingDial, ComponentLogger, Logger, Connection, ConnectionGater, Metric, Metrics, PeerId, Address, PeerStore } from '@libp2p/interface' +import type { TransportManager } from '@libp2p/interface-internal' export interface PendingDialTarget { resolve(value: any): void diff --git a/packages/libp2p/src/connection-manager/index.ts b/packages/libp2p/src/connection-manager/index.ts index 03240c4bf4..700b6004dd 100644 --- a/packages/libp2p/src/connection-manager/index.ts +++ b/packages/libp2p/src/connection-manager/index.ts @@ -1,5 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' -import { KEEP_ALIVE } from '@libp2p/interface/peer-store/tags' +import { CodeError, KEEP_ALIVE } from '@libp2p/interface' import { PeerMap } from '@libp2p/peer-collections' import { defaultAddressSort } from '@libp2p/utils/address-sort' import { type Multiaddr, type Resolver, multiaddr } from '@multiformats/multiaddr' @@ -11,16 +10,8 @@ import { AutoDial } from './auto-dial.js' import { ConnectionPruner } from './connection-pruner.js' import { AUTO_DIAL_CONCURRENCY, AUTO_DIAL_MAX_QUEUE_LENGTH, AUTO_DIAL_PRIORITY, DIAL_TIMEOUT, INBOUND_CONNECTION_THRESHOLD, MAX_CONNECTIONS, MAX_INCOMING_PENDING_CONNECTIONS, MAX_PARALLEL_DIALS, MAX_PEER_ADDRS_TO_DIAL, MIN_CONNECTIONS } from './constants.js' import { DialQueue } from './dial-queue.js' -import type { PendingDial, AddressSorter, Libp2pEvents, AbortOptions, ComponentLogger, Logger } from '@libp2p/interface' -import type { Connection, MultiaddrConnection } from '@libp2p/interface/connection' -import type { ConnectionGater } from '@libp2p/interface/connection-gater' -import type { TypedEventTarget } from '@libp2p/interface/events' -import type { Metrics } from '@libp2p/interface/metrics' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Peer, PeerStore } from '@libp2p/interface/peer-store' -import type { Startable } from '@libp2p/interface/startable' -import type { ConnectionManager, OpenConnectionOptions } from '@libp2p/interface-internal/connection-manager' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { PendingDial, AddressSorter, Libp2pEvents, AbortOptions, ComponentLogger, Logger, Connection, MultiaddrConnection, ConnectionGater, TypedEventTarget, Metrics, PeerId, Peer, PeerStore, Startable } from '@libp2p/interface' +import type { ConnectionManager, OpenConnectionOptions, TransportManager } from '@libp2p/interface-internal' const DEFAULT_DIAL_PRIORITY = 50 diff --git a/packages/libp2p/src/connection-manager/utils.ts b/packages/libp2p/src/connection-manager/utils.ts index d32108e26f..7bde8332d1 100644 --- a/packages/libp2p/src/connection-manager/utils.ts +++ b/packages/libp2p/src/connection-manager/utils.ts @@ -1,4 +1,4 @@ -import { setMaxListeners } from '@libp2p/interface/events' +import { setMaxListeners } from '@libp2p/interface' import { type AbortOptions, multiaddr, type Multiaddr } from '@multiformats/multiaddr' import { type ClearableSignal, anySignal } from 'any-signal' import type { LoggerOptions } from '@libp2p/interface' diff --git a/packages/libp2p/src/connection/index.ts b/packages/libp2p/src/connection/index.ts index bbb248acba..f8cc0a7c23 100644 --- a/packages/libp2p/src/connection/index.ts +++ b/packages/libp2p/src/connection/index.ts @@ -1,9 +1,5 @@ -import { symbol } from '@libp2p/interface/connection' -import { CodeError } from '@libp2p/interface/errors' -import { setMaxListeners } from '@libp2p/interface/events' -import type { AbortOptions, Logger, ComponentLogger } from '@libp2p/interface' -import type { Direction, Connection, Stream, ConnectionTimeline, ConnectionStatus, NewStreamOptions } from '@libp2p/interface/connection' -import type { PeerId } from '@libp2p/interface/peer-id' +import { connectionSymbol, CodeError, setMaxListeners } from '@libp2p/interface' +import type { AbortOptions, Logger, ComponentLogger, Direction, Connection, Stream, ConnectionTimeline, ConnectionStatus, NewStreamOptions, PeerId } from '@libp2p/interface' import type { Multiaddr } from '@multiformats/multiaddr' const CLOSE_TIMEOUT = 500 @@ -106,7 +102,7 @@ export class ConnectionImpl implements Connection { readonly [Symbol.toStringTag] = 'Connection' - readonly [symbol] = true + readonly [connectionSymbol] = true /** * Get all the streams of the muxer diff --git a/packages/libp2p/src/content-routing/index.ts b/packages/libp2p/src/content-routing/index.ts index a96c2bd9ab..424815b662 100644 --- a/packages/libp2p/src/content-routing/index.ts +++ b/packages/libp2p/src/content-routing/index.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import merge from 'it-merge' import { pipe } from 'it-pipe' import { codes, messages } from '../errors.js' @@ -7,11 +7,7 @@ import { uniquePeers, requirePeers } from './utils.js' -import type { AbortOptions } from '@libp2p/interface' -import type { ContentRouting } from '@libp2p/interface/content-routing' -import type { PeerInfo } from '@libp2p/interface/peer-info' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { Startable } from '@libp2p/interface/startable' +import type { AbortOptions, ContentRouting, PeerInfo, PeerStore, Startable } from '@libp2p/interface' import type { CID } from 'multiformats/cid' export interface CompoundContentRoutingInit { diff --git a/packages/libp2p/src/content-routing/utils.ts b/packages/libp2p/src/content-routing/utils.ts index f114639c41..20edd912b8 100644 --- a/packages/libp2p/src/content-routing/utils.ts +++ b/packages/libp2p/src/content-routing/utils.ts @@ -1,8 +1,7 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import filter from 'it-filter' import map from 'it-map' -import type { PeerInfo } from '@libp2p/interface/peer-info' -import type { PeerStore } from '@libp2p/interface/peer-store' +import type { PeerInfo, PeerStore } from '@libp2p/interface' import type { Source } from 'it-stream-types' /** diff --git a/packages/libp2p/src/get-peer.ts b/packages/libp2p/src/get-peer.ts index 8503fe7b64..d012795c37 100644 --- a/packages/libp2p/src/get-peer.ts +++ b/packages/libp2p/src/get-peer.ts @@ -1,9 +1,8 @@ -import { CodeError } from '@libp2p/interface/errors' -import { isPeerId } from '@libp2p/interface/peer-id' +import { CodeError, isPeerId } from '@libp2p/interface' import { peerIdFromString } from '@libp2p/peer-id' import { isMultiaddr } from '@multiformats/multiaddr' import { codes } from './errors.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' import type { Multiaddr } from '@multiformats/multiaddr' export interface PeerAddress { diff --git a/packages/libp2p/src/index.ts b/packages/libp2p/src/index.ts index 2c5fd44d45..adb9fe8b35 100644 --- a/packages/libp2p/src/index.ts +++ b/packages/libp2p/src/index.ts @@ -19,17 +19,7 @@ import type { AddressManagerInit } from './address-manager/index.js' import type { Components } from './components.js' import type { ConnectionManagerInit } from './connection-manager/index.js' import type { TransportManagerInit } from './transport-manager.js' -import type { Libp2p, ServiceMap, RecursivePartial, ComponentLogger, NodeInfo } from '@libp2p/interface' -import type { ConnectionProtector } from '@libp2p/interface/connection' -import type { ConnectionEncrypter } from '@libp2p/interface/connection-encrypter' -import type { ConnectionGater } from '@libp2p/interface/connection-gater' -import type { ContentRouting } from '@libp2p/interface/content-routing' -import type { Metrics } from '@libp2p/interface/metrics' -import type { PeerDiscovery } from '@libp2p/interface/peer-discovery' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerRouting } from '@libp2p/interface/peer-routing' -import type { StreamMuxerFactory } from '@libp2p/interface/stream-muxer' -import type { Transport } from '@libp2p/interface/transport' +import type { Libp2p, ServiceMap, RecursivePartial, ComponentLogger, NodeInfo, ConnectionProtector, ConnectionEncrypter, ConnectionGater, ContentRouting, Metrics, PeerDiscovery, PeerId, PeerRouting, StreamMuxerFactory, Transport } from '@libp2p/interface' import type { PersistentPeerStoreInit } from '@libp2p/peer-store' import type { Datastore } from 'interface-datastore' diff --git a/packages/libp2p/src/libp2p.ts b/packages/libp2p/src/libp2p.ts index afe94969d8..686324e3d0 100644 --- a/packages/libp2p/src/libp2p.ts +++ b/packages/libp2p/src/libp2p.ts @@ -1,9 +1,5 @@ import { unmarshalPublicKey } from '@libp2p/crypto/keys' -import { type ContentRouting, contentRouting } from '@libp2p/interface/content-routing' -import { CodeError } from '@libp2p/interface/errors' -import { TypedEventEmitter, CustomEvent, setMaxListeners } from '@libp2p/interface/events' -import { peerDiscovery } from '@libp2p/interface/peer-discovery' -import { type PeerRouting, peerRouting } from '@libp2p/interface/peer-routing' +import { contentRoutingSymbol, CodeError, TypedEventEmitter, CustomEvent, setMaxListeners, peerDiscoverySymbol, peerRoutingSymbol } from '@libp2p/interface' import { defaultLogger } from '@libp2p/logger' import { PeerSet } from '@libp2p/peer-collections' import { peerIdFromString } from '@libp2p/peer-id' @@ -27,14 +23,8 @@ import { DefaultUpgrader } from './upgrader.js' import * as pkg from './version.js' import type { Components } from './components.js' import type { Libp2p, Libp2pInit, Libp2pOptions } from './index.js' -import type { Libp2pEvents, PendingDial, ServiceMap, AbortOptions, ComponentLogger, Logger } from '@libp2p/interface' -import type { Connection, NewStreamOptions, Stream } from '@libp2p/interface/connection' -import type { Metrics } from '@libp2p/interface/metrics' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerInfo } from '@libp2p/interface/peer-info' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { Topology } from '@libp2p/interface/topology' -import type { StreamHandler, StreamHandlerOptions } from '@libp2p/interface-internal/registrar' +import type { PeerRouting, ContentRouting, Libp2pEvents, PendingDial, ServiceMap, AbortOptions, ComponentLogger, Logger, Connection, NewStreamOptions, Stream, Metrics, PeerId, PeerInfo, PeerStore, Topology } from '@libp2p/interface' +import type { StreamHandler, StreamHandlerOptions } from '@libp2p/interface-internal' export class Libp2pNode> extends TypedEventEmitter implements Libp2p { public peerId: PeerId @@ -172,19 +162,19 @@ export class Libp2pNode> extends this.services[name as keyof T] = service this.configureComponent(name, service) - if (service[contentRouting] != null) { + if (service[contentRoutingSymbol] != null) { this.log('registering service %s for content routing', name) - contentRouters.push(service[contentRouting]) + contentRouters.push(service[contentRoutingSymbol]) } - if (service[peerRouting] != null) { + if (service[peerRoutingSymbol] != null) { this.log('registering service %s for peer routing', name) - peerRouters.push(service[peerRouting]) + peerRouters.push(service[peerRoutingSymbol]) } - if (service[peerDiscovery] != null) { + if (service[peerDiscoverySymbol] != null) { this.log('registering service %s for peer discovery', name) - service[peerDiscovery].addEventListener('peer', (evt: CustomEvent) => { + service[peerDiscoverySymbol].addEventListener('peer', (evt: CustomEvent) => { this.#onDiscoveryPeer(evt) }) } diff --git a/packages/libp2p/src/peer-routing.ts b/packages/libp2p/src/peer-routing.ts index f5082cab5f..8346a1dc07 100644 --- a/packages/libp2p/src/peer-routing.ts +++ b/packages/libp2p/src/peer-routing.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import filter from 'it-filter' import first from 'it-first' import merge from 'it-merge' @@ -9,11 +9,7 @@ import { requirePeers } from './content-routing/utils.js' import { codes, messages } from './errors.js' -import type { AbortOptions, Logger } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerInfo } from '@libp2p/interface/peer-info' -import type { PeerRouting } from '@libp2p/interface/peer-routing' -import type { PeerStore } from '@libp2p/interface/peer-store' +import type { AbortOptions, Logger, PeerId, PeerInfo, PeerRouting, PeerStore } from '@libp2p/interface' import type { ComponentLogger } from '@libp2p/logger' export interface PeerRoutingInit { diff --git a/packages/libp2p/src/registrar.ts b/packages/libp2p/src/registrar.ts index 11d70b05a1..d6f669d724 100644 --- a/packages/libp2p/src/registrar.ts +++ b/packages/libp2p/src/registrar.ts @@ -1,13 +1,8 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import merge from 'merge-options' import { codes } from './errors.js' -import type { IdentifyResult, Libp2pEvents, Logger, PeerUpdate } from '@libp2p/interface' -import type { TypedEventTarget } from '@libp2p/interface/events' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { Topology } from '@libp2p/interface/topology' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { StreamHandlerOptions, StreamHandlerRecord, Registrar, StreamHandler } from '@libp2p/interface-internal/registrar' +import type { IdentifyResult, Libp2pEvents, Logger, PeerUpdate, TypedEventTarget, PeerId, PeerStore, Topology } from '@libp2p/interface' +import type { ConnectionManager, StreamHandlerOptions, StreamHandlerRecord, Registrar, StreamHandler } from '@libp2p/interface-internal' import type { ComponentLogger } from '@libp2p/logger' export const DEFAULT_MAX_INBOUND_STREAMS = 32 diff --git a/packages/libp2p/src/transport-manager.ts b/packages/libp2p/src/transport-manager.ts index a9b47d5cca..9449bc9af2 100644 --- a/packages/libp2p/src/transport-manager.ts +++ b/packages/libp2p/src/transport-manager.ts @@ -1,15 +1,8 @@ -import { CodeError } from '@libp2p/interface/errors' -import { trackedMap } from '@libp2p/interface/metrics/tracked-map' -import { FaultTolerance } from '@libp2p/interface/transport' +import { CodeError, FaultTolerance } from '@libp2p/interface' +import { trackedMap } from '@libp2p/utils/tracked-map' import { codes } from './errors.js' -import type { Libp2pEvents, AbortOptions, ComponentLogger, Logger } from '@libp2p/interface' -import type { Connection } from '@libp2p/interface/connection' -import type { TypedEventTarget } from '@libp2p/interface/events' -import type { Metrics } from '@libp2p/interface/metrics' -import type { Startable } from '@libp2p/interface/startable' -import type { Listener, Transport, Upgrader } from '@libp2p/interface/transport' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { Libp2pEvents, AbortOptions, ComponentLogger, Logger, Connection, TypedEventTarget, Metrics, Startable, Listener, Transport, Upgrader } from '@libp2p/interface' +import type { AddressManager, TransportManager } from '@libp2p/interface-internal' import type { Multiaddr } from '@multiformats/multiaddr' export interface TransportManagerInit { diff --git a/packages/libp2p/src/upgrader.ts b/packages/libp2p/src/upgrader.ts index 4310f07c79..9b546ed5ed 100644 --- a/packages/libp2p/src/upgrader.ts +++ b/packages/libp2p/src/upgrader.ts @@ -1,23 +1,12 @@ -import { CodeError, ERR_TIMEOUT } from '@libp2p/interface/errors' -import { setMaxListeners } from '@libp2p/interface/events' +import { CodeError, ERR_TIMEOUT, setMaxListeners } from '@libp2p/interface' import * as mss from '@libp2p/multistream-select' import { peerIdFromString } from '@libp2p/peer-id' import { createConnection } from './connection/index.js' import { INBOUND_UPGRADE_TIMEOUT } from './connection-manager/constants.js' import { codes } from './errors.js' import { DEFAULT_MAX_INBOUND_STREAMS, DEFAULT_MAX_OUTBOUND_STREAMS } from './registrar.js' -import type { Libp2pEvents, AbortOptions, ComponentLogger, Logger } from '@libp2p/interface' -import type { MultiaddrConnection, Connection, Stream, ConnectionProtector, NewStreamOptions } from '@libp2p/interface/connection' -import type { ConnectionEncrypter, SecuredConnection } from '@libp2p/interface/connection-encrypter' -import type { ConnectionGater } from '@libp2p/interface/connection-gater' -import type { TypedEventTarget } from '@libp2p/interface/events' -import type { Metrics } from '@libp2p/interface/metrics' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { StreamMuxer, StreamMuxerFactory } from '@libp2p/interface/stream-muxer' -import type { Upgrader, UpgraderOptions } from '@libp2p/interface/transport' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { Libp2pEvents, AbortOptions, ComponentLogger, Logger, MultiaddrConnection, Connection, Stream, ConnectionProtector, NewStreamOptions, ConnectionEncrypter, SecuredConnection, ConnectionGater, TypedEventTarget, Metrics, PeerId, PeerStore, StreamMuxer, StreamMuxerFactory, Upgrader, UpgraderOptions } from '@libp2p/interface' +import type { ConnectionManager, Registrar } from '@libp2p/interface-internal' const DEFAULT_PROTOCOL_SELECT_TIMEOUT = 30000 diff --git a/packages/libp2p/test/addresses/address-manager.spec.ts b/packages/libp2p/test/addresses/address-manager.spec.ts index c470ed83ae..a068688d34 100644 --- a/packages/libp2p/test/addresses/address-manager.spec.ts +++ b/packages/libp2p/test/addresses/address-manager.spec.ts @@ -1,6 +1,6 @@ /* eslint-env mocha */ -import { TypedEventEmitter, type TypedEventTarget } from '@libp2p/interface/events' +import { TypedEventEmitter, type TypedEventTarget, type Libp2pEvents, type PeerId, type PeerStore } from '@libp2p/interface' import { defaultLogger } from '@libp2p/logger' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { multiaddr } from '@multiformats/multiaddr' @@ -9,10 +9,7 @@ import delay from 'delay' import Sinon from 'sinon' import { type StubbedInstance, stubInterface } from 'sinon-ts' import { type AddressFilter, DefaultAddressManager } from '../../src/address-manager/index.js' -import type { Libp2pEvents } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { TransportManager } from '@libp2p/interface-internal' 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/packages/libp2p/test/connection-manager/auto-dial.spec.ts b/packages/libp2p/test/connection-manager/auto-dial.spec.ts index ceedfd5550..955d715408 100644 --- a/packages/libp2p/test/connection-manager/auto-dial.spec.ts +++ b/packages/libp2p/test/connection-manager/auto-dial.spec.ts @@ -1,6 +1,6 @@ /* eslint-env mocha */ -import { TypedEventEmitter, type TypedEventTarget } from '@libp2p/interface/events' +import { TypedEventEmitter, type TypedEventTarget, type Libp2pEvents, type Connection, type PeerId, type PeerStore, type Peer } from '@libp2p/interface' import { defaultLogger } from '@libp2p/logger' import { PeerMap } from '@libp2p/peer-collections' import { createEd25519PeerId } from '@libp2p/peer-id-factory' @@ -17,11 +17,7 @@ import { defaultComponents } from '../../src/components.js' import { AutoDial } from '../../src/connection-manager/auto-dial.js' import { LAST_DIAL_FAILURE_KEY } from '../../src/connection-manager/constants.js' import { matchPeerId } from '../fixtures/match-peer-id.js' -import type { Libp2pEvents } from '@libp2p/interface' -import type { Connection } from '@libp2p/interface/connection' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore, Peer } from '@libp2p/interface/peer-store' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' +import type { ConnectionManager } from '@libp2p/interface-internal' describe('auto-dial', () => { let autoDialer: AutoDial diff --git a/packages/libp2p/test/connection-manager/dial-queue.spec.ts b/packages/libp2p/test/connection-manager/dial-queue.spec.ts index 56838d986c..1221f05057 100644 --- a/packages/libp2p/test/connection-manager/dial-queue.spec.ts +++ b/packages/libp2p/test/connection-manager/dial-queue.spec.ts @@ -11,13 +11,8 @@ import pDefer from 'p-defer' import sinon from 'sinon' import { type StubbedInstance, stubInterface } from 'sinon-ts' import { DialQueue } from '../../src/connection-manager/dial-queue.js' -import type { ComponentLogger } from '@libp2p/interface' -import type { Connection } from '@libp2p/interface/connection' -import type { ConnectionGater } from '@libp2p/interface/connection-gater' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { Transport } from '@libp2p/interface/transport' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { ComponentLogger, Connection, ConnectionGater, PeerId, PeerStore, Transport } from '@libp2p/interface' +import type { TransportManager } from '@libp2p/interface-internal' describe('dial queue', () => { let components: { diff --git a/packages/libp2p/test/connection-manager/direct.node.ts b/packages/libp2p/test/connection-manager/direct.node.ts index 10d4f9da09..7cb05a8b07 100644 --- a/packages/libp2p/test/connection-manager/direct.node.ts +++ b/packages/libp2p/test/connection-manager/direct.node.ts @@ -4,10 +4,8 @@ import fs from 'node:fs' import os from 'node:os' import path from 'node:path' import { yamux } from '@chainsafe/libp2p-yamux' -import { type Connection, type ConnectionProtector, isConnection } from '@libp2p/interface/connection' -import { AbortError, ERR_TIMEOUT } from '@libp2p/interface/errors' -import { TypedEventEmitter } from '@libp2p/interface/events' -import { start, stop } from '@libp2p/interface/startable' +import { type Connection, type ConnectionProtector, isConnection, type PeerId } from '@libp2p/interface' +import { AbortError, ERR_TIMEOUT, TypedEventEmitter, start, stop } from '@libp2p/interface' import { mockConnection, mockConnectionGater, mockDuplex, mockMultiaddrConnection, mockUpgrader } from '@libp2p/interface-compliance-tests/mocks' import { defaultLogger } from '@libp2p/logger' import { mplex } from '@libp2p/mplex' @@ -34,8 +32,7 @@ import { codes as ErrorCodes } from '../../src/errors.js' import { createLibp2pNode, type Libp2pNode } from '../../src/libp2p.js' import { DefaultTransportManager } from '../../src/transport-manager.js' import { ECHO_PROTOCOL, echo } from '../fixtures/echo-service.js' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { TransportManager } from '@libp2p/interface-internal' import type { Multiaddr } from '@multiformats/multiaddr' const listenAddr = multiaddr('/ip4/127.0.0.1/tcp/0') diff --git a/packages/libp2p/test/connection-manager/direct.spec.ts b/packages/libp2p/test/connection-manager/direct.spec.ts index 5c9a2b2979..8affb591fb 100644 --- a/packages/libp2p/test/connection-manager/direct.spec.ts +++ b/packages/libp2p/test/connection-manager/direct.spec.ts @@ -2,8 +2,7 @@ import { yamux } from '@chainsafe/libp2p-yamux' import { type Identify, identify } from '@libp2p/identify' -import { AbortError, ERR_TIMEOUT } from '@libp2p/interface/errors' -import { TypedEventEmitter } from '@libp2p/interface/events' +import { AbortError, ERR_TIMEOUT, TypedEventEmitter } from '@libp2p/interface' import { mockConnectionGater, mockDuplex, mockMultiaddrConnection, mockUpgrader, mockConnection } from '@libp2p/interface-compliance-tests/mocks' import { defaultLogger } from '@libp2p/logger' import { mplex } from '@libp2p/mplex' @@ -29,10 +28,8 @@ import { codes as ErrorCodes } from '../../src/errors.js' import { createLibp2p } from '../../src/index.js' import { DefaultTransportManager } from '../../src/transport-manager.js' import { createPeerId } from '../fixtures/creators/peer.js' -import type { Libp2p } from '@libp2p/interface' -import type { Connection } from '@libp2p/interface/connection' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { Libp2p, Connection, PeerId } from '@libp2p/interface' +import type { TransportManager } from '@libp2p/interface-internal' import type { Multiaddr } from '@multiformats/multiaddr' const unsupportedAddr = multiaddr('/ip4/127.0.0.1/tcp/9999') diff --git a/packages/libp2p/test/connection-manager/index.node.ts b/packages/libp2p/test/connection-manager/index.node.ts index d15d695bb3..ff3ff21fce 100644 --- a/packages/libp2p/test/connection-manager/index.node.ts +++ b/packages/libp2p/test/connection-manager/index.node.ts @@ -1,7 +1,6 @@ /* eslint-env mocha */ -import { TypedEventEmitter } from '@libp2p/interface/events' -import { start } from '@libp2p/interface/startable' +import { TypedEventEmitter, start } from '@libp2p/interface' import { mockConnection, mockDuplex, mockMultiaddrConnection } from '@libp2p/interface-compliance-tests/mocks' import { expect } from 'aegir/chai' import delay from 'delay' @@ -18,10 +17,8 @@ import { createNode, createPeerId } from '../fixtures/creators/peer.js' import { ECHO_PROTOCOL, echo } from '../fixtures/echo-service.js' import type { Libp2p } from '../../src/index.js' import type { Libp2pNode } from '../../src/libp2p.js' -import type { ConnectionGater } from '@libp2p/interface/connection-gater' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { ConnectionGater, PeerId, PeerStore } from '@libp2p/interface' +import type { TransportManager } from '@libp2p/interface-internal' describe('Connection Manager', () => { let libp2p: Libp2p diff --git a/packages/libp2p/test/connection-manager/index.spec.ts b/packages/libp2p/test/connection-manager/index.spec.ts index 17b33439dc..101498312b 100644 --- a/packages/libp2p/test/connection-manager/index.spec.ts +++ b/packages/libp2p/test/connection-manager/index.spec.ts @@ -1,7 +1,6 @@ /* eslint-env mocha */ -import { TypedEventEmitter } from '@libp2p/interface/events' -import { KEEP_ALIVE } from '@libp2p/interface/peer-store/tags' +import { TypedEventEmitter, KEEP_ALIVE } from '@libp2p/interface' import { mockConnection, mockDuplex, mockMultiaddrConnection, mockMetrics } from '@libp2p/interface-compliance-tests/mocks' import { defaultLogger } from '@libp2p/logger' import { createEd25519PeerId } from '@libp2p/peer-id-factory' @@ -15,12 +14,8 @@ import { DefaultConnectionManager, type DefaultConnectionManagerComponents } fro import { createBaseOptions } from '../fixtures/base-options.browser.js' import { createNode } from '../fixtures/creators/peer.js' import type { Libp2pNode } from '../../src/libp2p.js' -import type { AbortOptions } from '@libp2p/interface' -import type { Connection } from '@libp2p/interface/connection' -import type { ConnectionGater } from '@libp2p/interface/connection-gater' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { AbortOptions, Connection, ConnectionGater, PeerId, PeerStore } from '@libp2p/interface' +import type { TransportManager } from '@libp2p/interface-internal' const defaultOptions = { maxConnections: 10, diff --git a/packages/libp2p/test/connection-manager/resolver.spec.ts b/packages/libp2p/test/connection-manager/resolver.spec.ts index b19dd34665..495342bf9c 100644 --- a/packages/libp2p/test/connection-manager/resolver.spec.ts +++ b/packages/libp2p/test/connection-manager/resolver.spec.ts @@ -16,8 +16,7 @@ import pDefer from 'p-defer' import sinon from 'sinon' import { codes as ErrorCodes } from '../../src/errors.js' import { createLibp2pNode, type Libp2pNode } from '../../src/libp2p.js' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Transport } from '@libp2p/interface/transport' +import type { PeerId, Transport } from '@libp2p/interface' import type { Multiaddr } from '@multiformats/multiaddr' const relayAddr = multiaddr(process.env.RELAY_MULTIADDR) diff --git a/packages/libp2p/test/connection/compliance.spec.ts b/packages/libp2p/test/connection/compliance.spec.ts index 4c69fe7d97..94a9df75c8 100644 --- a/packages/libp2p/test/connection/compliance.spec.ts +++ b/packages/libp2p/test/connection/compliance.spec.ts @@ -5,7 +5,7 @@ import * as PeerIdFactory from '@libp2p/peer-id-factory' import { multiaddr } from '@multiformats/multiaddr' import { createConnection } from '../../src/connection/index.js' import { pair } from './fixtures/pair.js' -import type { Stream } from '@libp2p/interface/connection' +import type { Stream } from '@libp2p/interface' describe('connection compliance', () => { tests({ diff --git a/packages/libp2p/test/content-routing/content-routing.node.ts b/packages/libp2p/test/content-routing/content-routing.node.ts index 64f95d5616..8ec21f139b 100644 --- a/packages/libp2p/test/content-routing/content-routing.node.ts +++ b/packages/libp2p/test/content-routing/content-routing.node.ts @@ -14,8 +14,7 @@ import { createLibp2p, type Libp2p } from '../../src/index.js' import { createBaseOptions } from '../fixtures/base-options.js' import { createNode, createPeerId, populateAddressBooks } from '../fixtures/creators/peer.js' import { createRoutingOptions } from './utils.js' -import type { ContentRouting } from '@libp2p/interface/content-routing' -import type { PeerInfo } from '@libp2p/interface/peer-info' +import type { ContentRouting, PeerInfo } from '@libp2p/interface' describe('content-routing', () => { describe('no routers', () => { diff --git a/packages/libp2p/test/content-routing/dht/operation.node.ts b/packages/libp2p/test/content-routing/dht/operation.node.ts index c52c6d7f81..054c55174e 100644 --- a/packages/libp2p/test/content-routing/dht/operation.node.ts +++ b/packages/libp2p/test/content-routing/dht/operation.node.ts @@ -12,8 +12,7 @@ import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { createLibp2p } from '../../../src/index.js' import { createPeerId } from '../../fixtures/creators/peer.js' import { subsystemMulticodecs } from './utils.js' -import type { Libp2p } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { Libp2p, PeerId } from '@libp2p/interface' import type { DualKadDHT } from '@libp2p/kad-dht' import type { Multiaddr } from '@multiformats/multiaddr' diff --git a/packages/libp2p/test/core/encryption.spec.ts b/packages/libp2p/test/core/encryption.spec.ts index a51bd35a6f..b6819ce70e 100644 --- a/packages/libp2p/test/core/encryption.spec.ts +++ b/packages/libp2p/test/core/encryption.spec.ts @@ -4,7 +4,7 @@ import { plaintext } from '@libp2p/plaintext' import { webSockets } from '@libp2p/websockets' import { createLibp2p, type Libp2pOptions } from '../../src/index.js' import { createPeerId } from '../fixtures/creators/peer.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' describe('Connection encryption configuration', () => { let peerId: PeerId diff --git a/packages/libp2p/test/core/listening.node.ts b/packages/libp2p/test/core/listening.node.ts index 99c445581d..d05a516024 100644 --- a/packages/libp2p/test/core/listening.node.ts +++ b/packages/libp2p/test/core/listening.node.ts @@ -5,7 +5,7 @@ import { tcp } from '@libp2p/tcp' import { expect } from 'aegir/chai' import { createLibp2pNode, type Libp2pNode } from '../../src/libp2p.js' import { createPeerId } from '../fixtures/creators/peer.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' const listenAddr = '/ip4/0.0.0.0/tcp/0' diff --git a/packages/libp2p/test/fixtures/creators/peer.ts b/packages/libp2p/test/fixtures/creators/peer.ts index d2b005cab7..3236a4aa21 100644 --- a/packages/libp2p/test/fixtures/creators/peer.ts +++ b/packages/libp2p/test/fixtures/creators/peer.ts @@ -5,8 +5,7 @@ import { createLibp2pNode, type Libp2pNode } from '../../../src/libp2p.js' import { createBaseOptions } from '../base-options.browser.js' import type { AddressManagerInit } from '../../../src/address-manager/index.js' import type { Libp2pOptions } from '../../../src/index.js' -import type { Libp2p, ServiceMap } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { Libp2p, ServiceMap, PeerId } from '@libp2p/interface' const listenAddr = multiaddr('/ip4/127.0.0.1/tcp/0') diff --git a/packages/libp2p/test/fixtures/echo-service.ts b/packages/libp2p/test/fixtures/echo-service.ts index 85ef053a53..b9dd9d05e0 100644 --- a/packages/libp2p/test/fixtures/echo-service.ts +++ b/packages/libp2p/test/fixtures/echo-service.ts @@ -1,6 +1,6 @@ import { pipe } from 'it-pipe' -import type { Startable } from '@libp2p/interface/startable' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { Startable } from '@libp2p/interface' +import type { Registrar } from '@libp2p/interface-internal' export const ECHO_PROTOCOL = '/echo/1.0.0' diff --git a/packages/libp2p/test/fixtures/match-peer-id.ts b/packages/libp2p/test/fixtures/match-peer-id.ts index 99f2575cd3..ad9dae226b 100644 --- a/packages/libp2p/test/fixtures/match-peer-id.ts +++ b/packages/libp2p/test/fixtures/match-peer-id.ts @@ -1,5 +1,5 @@ import Sinon from 'sinon' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' export function matchPeerId (peerId: PeerId): Sinon.SinonMatcher { return Sinon.match(p => p.toString() === peerId.toString()) diff --git a/packages/libp2p/test/interop.ts b/packages/libp2p/test/interop.ts index af9991a661..16e7b501f2 100644 --- a/packages/libp2p/test/interop.ts +++ b/packages/libp2p/test/interop.ts @@ -8,9 +8,7 @@ import { createClient } from '@libp2p/daemon-client' import { createServer } from '@libp2p/daemon-server' import { floodsub } from '@libp2p/floodsub' import { identify } from '@libp2p/identify' -import { contentRouting } from '@libp2p/interface/content-routing' -import { peerDiscovery } from '@libp2p/interface/peer-discovery' -import { peerRouting } from '@libp2p/interface/peer-routing' +import { contentRoutingSymbol, peerDiscoverySymbol, peerRoutingSymbol } from '@libp2p/interface' import { interopTests } from '@libp2p/interop' import { kadDHT } from '@libp2p/kad-dht' import { logger } from '@libp2p/logger' @@ -22,8 +20,7 @@ import { execa } from 'execa' import { path as p2pd } from 'go-libp2p' import pDefer from 'p-defer' import { createLibp2p, type Libp2pOptions, type ServiceFactoryMap } from '../src/index.js' -import type { ServiceMap } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { ServiceMap, PeerId } from '@libp2p/interface' import type { SpawnOptions, Daemon, DaemonFactory } from '@libp2p/interop' /** @@ -174,19 +171,19 @@ async function createJsPeer (options: SpawnOptions): Promise { lan.topologyListener.protocol = protocol Object.defineProperties(lan, { - [contentRouting]: { + [contentRoutingSymbol]: { get () { - return dht[contentRouting] + return dht[contentRoutingSymbol] } }, - [peerRouting]: { + [peerRoutingSymbol]: { get () { - return dht[peerRouting] + return dht[peerRoutingSymbol] } }, - [peerDiscovery]: { + [peerDiscoverySymbol]: { get () { - return dht[peerDiscovery] + return dht[peerDiscoverySymbol] } } }) diff --git a/packages/libp2p/test/peer-discovery/index.node.ts b/packages/libp2p/test/peer-discovery/index.node.ts index d3d6bd0939..3749b7f3e0 100644 --- a/packages/libp2p/test/peer-discovery/index.node.ts +++ b/packages/libp2p/test/peer-discovery/index.node.ts @@ -2,8 +2,7 @@ import { bootstrap } from '@libp2p/bootstrap' import { randomBytes } from '@libp2p/crypto' -import { TypedEventEmitter } from '@libp2p/interface/events' -import { peerDiscovery } from '@libp2p/interface/peer-discovery' +import { TypedEventEmitter, peerDiscoverySymbol } from '@libp2p/interface' import { kadDHT } from '@libp2p/kad-dht' import { mdns } from '@libp2p/mdns' import { multiaddr } from '@multiformats/multiaddr' @@ -15,15 +14,13 @@ import { createLibp2p } from '../../src/index.js' import { createBaseOptions } from '../fixtures/base-options.js' import { createPeerId } from '../fixtures/creators/peer.js' import type { Libp2pOptions } from '../../src/index.js' -import type { Libp2p } from '@libp2p/interface' -import type { PeerDiscovery, PeerDiscoveryEvents } from '@libp2p/interface/peer-discovery' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { Libp2p, PeerDiscovery, PeerDiscoveryEvents, PeerId } from '@libp2p/interface' import type { KadDHT } from '@libp2p/kad-dht' const listenAddr = multiaddr('/ip4/127.0.0.1/tcp/0') class TestPeerDiscovery extends TypedEventEmitter implements PeerDiscovery { - get [peerDiscovery] (): PeerDiscovery { + get [peerDiscoverySymbol] (): PeerDiscovery { return this } diff --git a/packages/libp2p/test/peer-discovery/index.spec.ts b/packages/libp2p/test/peer-discovery/index.spec.ts index c29dee1c3b..29925db697 100644 --- a/packages/libp2p/test/peer-discovery/index.spec.ts +++ b/packages/libp2p/test/peer-discovery/index.spec.ts @@ -6,9 +6,7 @@ import { stubInterface } from 'sinon-ts' import { createLibp2pNode, type Libp2pNode } from '../../src/libp2p.js' import { createBaseOptions } from '../fixtures/base-options.browser.js' import { createPeerId } from '../fixtures/creators/peer.js' -import type { PeerDiscovery } from '@libp2p/interface/peer-discovery' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Startable } from '@libp2p/interface/startable' +import type { PeerDiscovery, PeerId, Startable } from '@libp2p/interface' describe('peer discovery', () => { describe('basic functions', () => { diff --git a/packages/libp2p/test/peer-routing/peer-routing.node.ts b/packages/libp2p/test/peer-routing/peer-routing.node.ts index 4e64d9da7e..d57fbf1d81 100644 --- a/packages/libp2p/test/peer-routing/peer-routing.node.ts +++ b/packages/libp2p/test/peer-routing/peer-routing.node.ts @@ -14,10 +14,7 @@ import { createBaseOptions } from '../fixtures/base-options.js' import { createNode, createPeerId, populateAddressBooks } from '../fixtures/creators/peer.js' import { createRoutingOptions } from './utils.js' import type { Libp2pNode } from '../../src/libp2p.js' -import type { Libp2p } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerInfo } from '@libp2p/interface/peer-info' -import type { PeerRouting } from '@libp2p/interface/peer-routing' +import type { Libp2p, PeerId, PeerInfo, PeerRouting } from '@libp2p/interface' describe('peer-routing', () => { let peerId: PeerId diff --git a/packages/libp2p/test/registrar/registrar.spec.ts b/packages/libp2p/test/registrar/registrar.spec.ts index 6ae61b6f2a..e48d6d0228 100644 --- a/packages/libp2p/test/registrar/registrar.spec.ts +++ b/packages/libp2p/test/registrar/registrar.spec.ts @@ -1,7 +1,7 @@ /* eslint-env mocha */ import { yamux } from '@chainsafe/libp2p-yamux' -import { TypedEventEmitter, type TypedEventTarget } from '@libp2p/interface/events' +import { TypedEventEmitter, type TypedEventTarget, type Libp2pEvents, type ConnectionGater, type PeerId, type PeerStore, type Topology } from '@libp2p/interface' import { mockDuplex, mockMultiaddrConnection, mockUpgrader, mockConnection } from '@libp2p/interface-compliance-tests/mocks' import { defaultLogger } from '@libp2p/logger' import { mplex } from '@libp2p/mplex' @@ -19,14 +19,7 @@ import { createLibp2pNode, type Libp2pNode } from '../../src/libp2p.js' import { DefaultRegistrar } from '../../src/registrar.js' import { createPeerId } from '../fixtures/creators/peer.js' import { matchPeerId } from '../fixtures/match-peer-id.js' -import type { Libp2pEvents } from '@libp2p/interface' -import type { ConnectionGater } from '@libp2p/interface/connection-gater' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { Topology } from '@libp2p/interface/topology' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { ConnectionManager, Registrar, TransportManager } from '@libp2p/interface-internal' const protocol = '/test/1.0.0' diff --git a/packages/libp2p/test/transports/transport-manager.node.ts b/packages/libp2p/test/transports/transport-manager.node.ts index 52bc09d379..15b78e8f34 100644 --- a/packages/libp2p/test/transports/transport-manager.node.ts +++ b/packages/libp2p/test/transports/transport-manager.node.ts @@ -1,8 +1,6 @@ /* eslint-env mocha */ -import { TypedEventEmitter } from '@libp2p/interface/events' -import { start, stop } from '@libp2p/interface/startable' -import { FaultTolerance } from '@libp2p/interface/transport' +import { TypedEventEmitter, start, stop, FaultTolerance } from '@libp2p/interface' import { mockUpgrader } from '@libp2p/interface-compliance-tests/mocks' import { defaultLogger } from '@libp2p/logger' import { createEd25519PeerId } from '@libp2p/peer-id-factory' @@ -17,7 +15,7 @@ import sinon from 'sinon' import { DefaultAddressManager } from '../../src/address-manager/index.js' import { defaultComponents, type Components } from '../../src/components.js' import { DefaultTransportManager } from '../../src/transport-manager.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' const addrs = [ multiaddr('/ip4/127.0.0.1/tcp/0'), diff --git a/packages/libp2p/test/transports/transport-manager.spec.ts b/packages/libp2p/test/transports/transport-manager.spec.ts index fe1c34b6d8..3fdb0d2892 100644 --- a/packages/libp2p/test/transports/transport-manager.spec.ts +++ b/packages/libp2p/test/transports/transport-manager.spec.ts @@ -1,8 +1,6 @@ /* eslint-env mocha */ -import { TypedEventEmitter } from '@libp2p/interface/events' -import { start, stop } from '@libp2p/interface/startable' -import { FaultTolerance } from '@libp2p/interface/transport' +import { TypedEventEmitter, start, stop, FaultTolerance } from '@libp2p/interface' import { mockUpgrader } from '@libp2p/interface-compliance-tests/mocks' import { defaultLogger } from '@libp2p/logger' import { createEd25519PeerId } from '@libp2p/peer-id-factory' @@ -17,8 +15,7 @@ import { codes as ErrorCodes } from '../../src/errors.js' import { createLibp2p } from '../../src/index.js' import { DefaultTransportManager } from '../../src/transport-manager.js' import type { Components } from '../../src/components.js' -import type { Libp2p } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { Libp2p, PeerId } from '@libp2p/interface' const listenAddr = multiaddr('/ip4/127.0.0.1/tcp/0') diff --git a/packages/libp2p/test/upgrading/upgrader.spec.ts b/packages/libp2p/test/upgrading/upgrader.spec.ts index 81103edfae..95b16809d3 100644 --- a/packages/libp2p/test/upgrading/upgrader.spec.ts +++ b/packages/libp2p/test/upgrading/upgrader.spec.ts @@ -2,7 +2,7 @@ import { yamux } from '@chainsafe/libp2p-yamux' import { circuitRelayTransport } from '@libp2p/circuit-relay-v2' -import { TypedEventEmitter } from '@libp2p/interface/events' +import { TypedEventEmitter } from '@libp2p/interface' import { mockConnectionGater, mockConnectionManager, mockMultiaddrConnPair, mockRegistrar, mockStream, mockMuxer } from '@libp2p/interface-compliance-tests/mocks' import { mplex } from '@libp2p/mplex' import { createEd25519PeerId } from '@libp2p/peer-id-factory' @@ -28,12 +28,7 @@ import { codes } from '../../src/errors.js' import { createLibp2p } from '../../src/index.js' import { DEFAULT_MAX_OUTBOUND_STREAMS } from '../../src/registrar.js' import { DefaultUpgrader } from '../../src/upgrader.js' -import type { Libp2p } from '@libp2p/interface' -import type { Connection, ConnectionProtector, Stream } from '@libp2p/interface/connection' -import type { ConnectionEncrypter, SecuredConnection } from '@libp2p/interface/connection-encrypter' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { StreamMuxer, StreamMuxerFactory, StreamMuxerInit } from '@libp2p/interface/stream-muxer' -import type { Upgrader } from '@libp2p/interface/transport' +import type { Libp2p, Connection, ConnectionProtector, Stream, ConnectionEncrypter, SecuredConnection, PeerId, StreamMuxer, StreamMuxerFactory, StreamMuxerInit, Upgrader } from '@libp2p/interface' const addrs = [ multiaddr('/ip4/127.0.0.1/tcp/0'), @@ -79,7 +74,7 @@ describe('Upgrader', () => { localComponents.peerStore = new PersistentPeerStore(localComponents) localComponents.connectionManager = mockConnectionManager(localComponents) localMuxerFactory = mplex()(localComponents) - localYamuxerFactory = yamux()() + localYamuxerFactory = yamux()(localComponents) localConnectionEncrypter = plaintext()(localComponents) localUpgrader = new DefaultUpgrader(localComponents, { connectionEncryption: [ @@ -106,7 +101,7 @@ describe('Upgrader', () => { remoteComponents.peerStore = new PersistentPeerStore(remoteComponents) remoteComponents.connectionManager = mockConnectionManager(remoteComponents) remoteMuxerFactory = mplex()(remoteComponents) - remoteYamuxerFactory = yamux()() + remoteYamuxerFactory = yamux()(remoteComponents) remoteConnectionEncrypter = plaintext()(remoteComponents) remoteUpgrader = new DefaultUpgrader(remoteComponents, { connectionEncryption: [ @@ -288,16 +283,16 @@ describe('Upgrader', () => { plaintext()(localComponents) ], muxers: [ - yamux()() + yamux()(localComponents) ], inboundUpgradeTimeout: 1000 }) remoteUpgrader = new DefaultUpgrader(remoteComponents, { connectionEncryption: [ - plaintext()(localComponents) + plaintext()(remoteComponents) ], muxers: [ - yamux()() + yamux()(remoteComponents) ], inboundUpgradeTimeout: 1000 }) @@ -368,7 +363,7 @@ describe('Upgrader', () => { plaintext()(localComponents) ], muxers: [ - yamux()(), + yamux()(localComponents), mplex()(localComponents) ], inboundUpgradeTimeout: 1000 diff --git a/packages/logger/src/index.ts b/packages/logger/src/index.ts index 3dce448a66..6e88882c44 100644 --- a/packages/logger/src/index.ts +++ b/packages/logger/src/index.ts @@ -32,7 +32,7 @@ import { base32 } from 'multiformats/bases/base32' import { base58btc } from 'multiformats/bases/base58' import { base64 } from 'multiformats/bases/base64' import { truncatePeerId } from './utils.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' import type { Multiaddr } from '@multiformats/multiaddr' import type { Key } from 'interface-datastore' import type { CID } from 'multiformats/cid' diff --git a/packages/logger/src/utils.ts b/packages/logger/src/utils.ts index 27b4ebcc62..ac6b5d9a6a 100644 --- a/packages/logger/src/utils.ts +++ b/packages/logger/src/utils.ts @@ -1,5 +1,5 @@ import type { PeerLoggerOptions } from './index.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' export function truncatePeerId (peerId: PeerId, options: Partial = {}): string { const prefixLength = options.prefixLength ?? 2 diff --git a/packages/metrics-prometheus/src/counter-group.ts b/packages/metrics-prometheus/src/counter-group.ts index 077255e060..1c91c48b9b 100644 --- a/packages/metrics-prometheus/src/counter-group.ts +++ b/packages/metrics-prometheus/src/counter-group.ts @@ -1,7 +1,7 @@ import { Counter as PromCounter, type CollectFunction } from 'prom-client' import { normaliseString, type CalculatedMetric } from './utils.js' import type { PrometheusCalculatedMetricOptions } from './index.js' -import type { CounterGroup, CalculateMetric } from '@libp2p/interface/metrics' +import type { CounterGroup, CalculateMetric } from '@libp2p/interface' export class PrometheusCounterGroup implements CounterGroup, CalculatedMetric> { private readonly counter: PromCounter diff --git a/packages/metrics-prometheus/src/counter.ts b/packages/metrics-prometheus/src/counter.ts index 7e34452cee..771c68ff5f 100644 --- a/packages/metrics-prometheus/src/counter.ts +++ b/packages/metrics-prometheus/src/counter.ts @@ -1,7 +1,7 @@ import { type CollectFunction, Counter as PromCounter } from 'prom-client' import { normaliseString, type CalculatedMetric } from './utils.js' import type { PrometheusCalculatedMetricOptions } from './index.js' -import type { CalculateMetric, Counter } from '@libp2p/interface/metrics' +import type { CalculateMetric, Counter } from '@libp2p/interface' export class PrometheusCounter implements Counter, CalculatedMetric { private readonly counter: PromCounter diff --git a/packages/metrics-prometheus/src/index.ts b/packages/metrics-prometheus/src/index.ts index 9a5c8255c9..437a44f6e3 100644 --- a/packages/metrics-prometheus/src/index.ts +++ b/packages/metrics-prometheus/src/index.ts @@ -161,9 +161,7 @@ import { PrometheusCounterGroup } from './counter-group.js' import { PrometheusCounter } from './counter.js' import { PrometheusMetricGroup } from './metric-group.js' import { PrometheusMetric } from './metric.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { MultiaddrConnection, Stream, Connection } from '@libp2p/interface/connection' -import type { CalculatedMetricOptions, Counter, CounterGroup, Metric, MetricGroup, MetricOptions, Metrics } from '@libp2p/interface/metrics' +import type { ComponentLogger, Logger, MultiaddrConnection, Stream, Connection, CalculatedMetricOptions, Counter, CounterGroup, Metric, MetricGroup, MetricOptions, Metrics } from '@libp2p/interface' import type { Duplex } from 'it-stream-types' import type { Uint8ArrayList } from 'uint8arraylist' diff --git a/packages/metrics-prometheus/src/metric-group.ts b/packages/metrics-prometheus/src/metric-group.ts index 652e99bbcc..9909ffdd70 100644 --- a/packages/metrics-prometheus/src/metric-group.ts +++ b/packages/metrics-prometheus/src/metric-group.ts @@ -1,7 +1,7 @@ import { type CollectFunction, Gauge } from 'prom-client' import { normaliseString, type CalculatedMetric } from './utils.js' import type { PrometheusCalculatedMetricOptions } from './index.js' -import type { CalculateMetric, MetricGroup, StopTimer } from '@libp2p/interface/metrics' +import type { CalculateMetric, MetricGroup, StopTimer } from '@libp2p/interface' export class PrometheusMetricGroup implements MetricGroup, CalculatedMetric> { private readonly gauge: Gauge diff --git a/packages/metrics-prometheus/src/metric.ts b/packages/metrics-prometheus/src/metric.ts index fc61570f26..f00bdfc962 100644 --- a/packages/metrics-prometheus/src/metric.ts +++ b/packages/metrics-prometheus/src/metric.ts @@ -1,7 +1,7 @@ import { type CollectFunction, Gauge } from 'prom-client' import { normaliseString } from './utils.js' import type { PrometheusCalculatedMetricOptions } from './index.js' -import type { Metric, StopTimer, CalculateMetric } from '@libp2p/interface/metrics' +import type { Metric, StopTimer, CalculateMetric } from '@libp2p/interface' export class PrometheusMetric implements Metric { private readonly gauge: Gauge diff --git a/packages/metrics-prometheus/src/utils.ts b/packages/metrics-prometheus/src/utils.ts index 83e12cb52c..81d81531a2 100644 --- a/packages/metrics-prometheus/src/utils.ts +++ b/packages/metrics-prometheus/src/utils.ts @@ -1,4 +1,4 @@ -import type { CalculateMetric } from '@libp2p/interface/metrics' +import type { CalculateMetric } from '@libp2p/interface' export interface CalculatedMetric { addCalculator(calculator: CalculateMetric): void diff --git a/packages/metrics-prometheus/test/streams.spec.ts b/packages/metrics-prometheus/test/streams.spec.ts index 085e0ceba2..b14446db97 100644 --- a/packages/metrics-prometheus/test/streams.spec.ts +++ b/packages/metrics-prometheus/test/streams.spec.ts @@ -8,7 +8,7 @@ import { pipe } from 'it-pipe' import defer from 'p-defer' import client from 'prom-client' import { prometheusMetrics } from '../src/index.js' -import type { Connection } from '@libp2p/interface/connection' +import type { Connection } from '@libp2p/interface' describe('streams', () => { let connectionA: Connection diff --git a/packages/multistream-select/src/multistream.ts b/packages/multistream-select/src/multistream.ts index 1f76f3dbbd..c1f9930015 100644 --- a/packages/multistream-select/src/multistream.ts +++ b/packages/multistream-select/src/multistream.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { type Uint8ArrayList } from 'uint8arraylist' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { toString as uint8ArrayToString } from 'uint8arrays/to-string' diff --git a/packages/multistream-select/src/select.ts b/packages/multistream-select/src/select.ts index 526c6a4d2b..206ddce5a6 100644 --- a/packages/multistream-select/src/select.ts +++ b/packages/multistream-select/src/select.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { lpStream } from 'it-length-prefixed-stream' import pDefer from 'p-defer' import * as varint from 'uint8-varint' diff --git a/packages/peer-collections/src/list.ts b/packages/peer-collections/src/list.ts index 85aef3be23..f384b870c2 100644 --- a/packages/peer-collections/src/list.ts +++ b/packages/peer-collections/src/list.ts @@ -1,6 +1,6 @@ import { peerIdFromString } from '@libp2p/peer-id' import { mapIterable } from './util.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' /** * We can't use PeerIds as list entries because list entries are diff --git a/packages/peer-collections/src/map.ts b/packages/peer-collections/src/map.ts index 8c31af330b..324f884fa0 100644 --- a/packages/peer-collections/src/map.ts +++ b/packages/peer-collections/src/map.ts @@ -1,6 +1,6 @@ import { peerIdFromString } from '@libp2p/peer-id' import { mapIterable } from './util.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' /** * We can't use PeerIds as map keys because map keys are diff --git a/packages/peer-collections/src/set.ts b/packages/peer-collections/src/set.ts index 355c9a1581..538ec56d27 100644 --- a/packages/peer-collections/src/set.ts +++ b/packages/peer-collections/src/set.ts @@ -1,6 +1,6 @@ import { peerIdFromString } from '@libp2p/peer-id' import { mapIterable } from './util.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' /** * We can't use PeerIds as set entries because set entries are diff --git a/packages/peer-collections/test/set.spec.ts b/packages/peer-collections/test/set.spec.ts index 3479a19e23..5bbb32aa89 100644 --- a/packages/peer-collections/test/set.spec.ts +++ b/packages/peer-collections/test/set.spec.ts @@ -2,7 +2,7 @@ import { peerIdFromBytes } from '@libp2p/peer-id' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { expect } from 'aegir/chai' import { PeerSet } from '../src/index.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' describe('peer-set', () => { it('should return a set', async () => { diff --git a/packages/peer-discovery-bootstrap/src/index.ts b/packages/peer-discovery-bootstrap/src/index.ts index 05345d6e75..211e777a75 100644 --- a/packages/peer-discovery-bootstrap/src/index.ts +++ b/packages/peer-discovery-bootstrap/src/index.ts @@ -47,16 +47,11 @@ * ``` */ -import { TypedEventEmitter } from '@libp2p/interface/events' -import { peerDiscovery } from '@libp2p/interface/peer-discovery' +import { TypedEventEmitter, peerDiscoverySymbol } from '@libp2p/interface' import { peerIdFromString } from '@libp2p/peer-id' import { P2P } from '@multiformats/mafmt' import { multiaddr } from '@multiformats/multiaddr' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { PeerDiscovery, PeerDiscoveryEvents } from '@libp2p/interface/peer-discovery' -import type { PeerInfo } from '@libp2p/interface/peer-info' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { Startable } from '@libp2p/interface/startable' +import type { ComponentLogger, Logger, PeerDiscovery, PeerDiscoveryEvents, PeerInfo, PeerStore, Startable } from '@libp2p/interface' const DEFAULT_BOOTSTRAP_TAG_NAME = 'bootstrap' const DEFAULT_BOOTSTRAP_TAG_VALUE = 50 @@ -144,7 +139,7 @@ class Bootstrap extends TypedEventEmitter implements PeerDi this._init = options } - readonly [peerDiscovery] = this + readonly [peerDiscoverySymbol] = this readonly [Symbol.toStringTag] = '@libp2p/bootstrap' diff --git a/packages/peer-discovery-bootstrap/test/bootstrap.spec.ts b/packages/peer-discovery-bootstrap/test/bootstrap.spec.ts index 68fdb199cf..8549f71012 100644 --- a/packages/peer-discovery-bootstrap/test/bootstrap.spec.ts +++ b/packages/peer-discovery-bootstrap/test/bootstrap.spec.ts @@ -1,7 +1,6 @@ /* eslint-env mocha */ -import { isPeerId } from '@libp2p/interface/peer-id' -import { start, stop } from '@libp2p/interface/startable' +import { isPeerId, start, stop } from '@libp2p/interface' import { defaultLogger } from '@libp2p/logger' import { peerIdFromString } from '@libp2p/peer-id' import { IPFS } from '@multiformats/mafmt' @@ -11,7 +10,7 @@ import { type StubbedInstance, stubInterface } from 'sinon-ts' import { bootstrap, type BootstrapComponents } from '../src/index.js' import peerList from './fixtures/default-peers.js' import partialValidPeerList from './fixtures/some-invalid-peers.js' -import type { PeerStore } from '@libp2p/interface/peer-store' +import type { PeerStore } from '@libp2p/interface' describe('bootstrap', () => { let components: BootstrapComponents diff --git a/packages/peer-discovery-bootstrap/test/compliance.spec.ts b/packages/peer-discovery-bootstrap/test/compliance.spec.ts index c6ce3411d5..9a5a46cb95 100644 --- a/packages/peer-discovery-bootstrap/test/compliance.spec.ts +++ b/packages/peer-discovery-bootstrap/test/compliance.spec.ts @@ -5,7 +5,7 @@ import { defaultLogger } from '@libp2p/logger' import { stubInterface } from 'sinon-ts' import { bootstrap } from '../src/index.js' import peerList from './fixtures/default-peers.js' -import type { PeerStore } from '@libp2p/interface/peer-store' +import type { PeerStore } from '@libp2p/interface' describe('compliance tests', () => { tests({ diff --git a/packages/peer-discovery-mdns/package.json b/packages/peer-discovery-mdns/package.json index 3fd59b7d84..540fca8dad 100644 --- a/packages/peer-discovery-mdns/package.json +++ b/packages/peer-discovery-mdns/package.json @@ -64,6 +64,6 @@ "@libp2p/peer-id-factory": "^3.0.9", "aegir": "^41.0.2", "p-wait-for": "^5.0.2", - "ts-sinon": "^2.0.2" + "sinon-ts": "^2.0.0" } } diff --git a/packages/peer-discovery-mdns/src/index.ts b/packages/peer-discovery-mdns/src/index.ts index 6f78e6f7e2..40241d8bce 100644 --- a/packages/peer-discovery-mdns/src/index.ts +++ b/packages/peer-discovery-mdns/src/index.ts @@ -78,7 +78,7 @@ import { MulticastDNS } from './mdns.js' import type { MulticastDNSInit, MulticastDNSComponents } from './mdns.js' -import type { PeerDiscovery } from '@libp2p/interface/peer-discovery' +import type { PeerDiscovery } from '@libp2p/interface' export function mdns (init: MulticastDNSInit = {}): (components: MulticastDNSComponents) => PeerDiscovery { return (components: MulticastDNSComponents) => new MulticastDNS(components, init) diff --git a/packages/peer-discovery-mdns/src/mdns.ts b/packages/peer-discovery-mdns/src/mdns.ts index 6c748d5657..82a957fe2f 100644 --- a/packages/peer-discovery-mdns/src/mdns.ts +++ b/packages/peer-discovery-mdns/src/mdns.ts @@ -1,13 +1,9 @@ -import { CustomEvent, TypedEventEmitter } from '@libp2p/interface/events' -import { peerDiscovery } from '@libp2p/interface/peer-discovery' +import { CustomEvent, TypedEventEmitter, peerDiscoverySymbol } from '@libp2p/interface' import multicastDNS from 'multicast-dns' import * as query from './query.js' import { stringGen } from './utils.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { PeerDiscovery, PeerDiscoveryEvents } from '@libp2p/interface/peer-discovery' -import type { PeerInfo } from '@libp2p/interface/peer-info' -import type { Startable } from '@libp2p/interface/src/startable.js' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' +import type { ComponentLogger, Logger, PeerDiscovery, PeerDiscoveryEvents, PeerInfo, Startable } from '@libp2p/interface' +import type { AddressManager } from '@libp2p/interface-internal' export interface MulticastDNSInit { broadcast?: boolean @@ -58,7 +54,7 @@ export class MulticastDNS extends TypedEventEmitter impleme this._onMdnsError = this._onMdnsError.bind(this) } - readonly [peerDiscovery] = this + readonly [peerDiscoverySymbol] = this readonly [Symbol.toStringTag] = '@libp2p/mdns' diff --git a/packages/peer-discovery-mdns/src/query.ts b/packages/peer-discovery-mdns/src/query.ts index e4d0166ce9..29f0c41248 100644 --- a/packages/peer-discovery-mdns/src/query.ts +++ b/packages/peer-discovery-mdns/src/query.ts @@ -1,8 +1,7 @@ import { peerIdFromString } from '@libp2p/peer-id' import { isPrivate } from '@libp2p/utils/multiaddr/is-private' import { multiaddr, type Multiaddr, protocols } from '@multiformats/multiaddr' -import type { LoggerOptions } from '@libp2p/interface' -import type { PeerInfo } from '@libp2p/interface/peer-info' +import type { LoggerOptions, PeerInfo } from '@libp2p/interface' import type { Answer, StringAnswer, TxtAnswer } from 'dns-packet' import type { MulticastDNS, QueryPacket, ResponsePacket } from 'multicast-dns' diff --git a/packages/peer-discovery-mdns/test/compliance.spec.ts b/packages/peer-discovery-mdns/test/compliance.spec.ts index 9b798fc31a..6c9e3ee5af 100644 --- a/packages/peer-discovery-mdns/test/compliance.spec.ts +++ b/packages/peer-discovery-mdns/test/compliance.spec.ts @@ -1,13 +1,13 @@ /* eslint-env mocha */ -import { CustomEvent } from '@libp2p/interface/events' +import { CustomEvent } from '@libp2p/interface' import tests from '@libp2p/interface-compliance-tests/peer-discovery' import { defaultLogger } from '@libp2p/logger' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { multiaddr } from '@multiformats/multiaddr' -import { stubInterface } from 'ts-sinon' +import { stubInterface } from 'sinon-ts' import { MulticastDNS } from '../src/mdns.js' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' +import type { AddressManager } from '@libp2p/interface-internal' let discovery: MulticastDNS diff --git a/packages/peer-discovery-mdns/test/multicast-dns.spec.ts b/packages/peer-discovery-mdns/test/multicast-dns.spec.ts index 8a907a97bc..d055b27530 100644 --- a/packages/peer-discovery-mdns/test/multicast-dns.spec.ts +++ b/packages/peer-discovery-mdns/test/multicast-dns.spec.ts @@ -1,17 +1,16 @@ /* eslint-env mocha */ -import { start, stop } from '@libp2p/interface/startable' +import { start, stop } from '@libp2p/interface' import { defaultLogger } from '@libp2p/logger' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { multiaddr } from '@multiformats/multiaddr' import { expect } from 'aegir/chai' import pWaitFor from 'p-wait-for' -import { stubInterface } from 'ts-sinon' +import { stubInterface } from 'sinon-ts' import { mdns } from './../src/index.js' import type { MulticastDNSComponents } from './../src/mdns.js' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerInfo } from '@libp2p/interface/peer-info' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' +import type { PeerId, PeerInfo } from '@libp2p/interface' +import type { AddressManager } from '@libp2p/interface-internal' import type { Multiaddr } from '@multiformats/multiaddr' function getComponents (peerId: PeerId, multiaddrs: Multiaddr[]): MulticastDNSComponents { diff --git a/packages/peer-id-factory/src/index.ts b/packages/peer-id-factory/src/index.ts index f40646befe..bc4fe85c3f 100644 --- a/packages/peer-id-factory/src/index.ts +++ b/packages/peer-id-factory/src/index.ts @@ -25,8 +25,7 @@ import { generateKeyPair, marshalPrivateKey, unmarshalPrivateKey, marshalPublicK import { peerIdFromKeys, peerIdFromBytes } from '@libp2p/peer-id' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { PeerIdProto } from './proto.js' -import type { PublicKey, PrivateKey } from '@libp2p/interface/keys' -import type { RSAPeerId, Ed25519PeerId, Secp256k1PeerId, PeerId } from '@libp2p/interface/peer-id' +import type { PublicKey, PrivateKey, RSAPeerId, Ed25519PeerId, Secp256k1PeerId, PeerId } from '@libp2p/interface' export const createEd25519PeerId = async (): Promise => { const key = await generateKeyPair('Ed25519') diff --git a/packages/peer-id/src/index.ts b/packages/peer-id/src/index.ts index db722aa171..26121a9642 100644 --- a/packages/peer-id/src/index.ts +++ b/packages/peer-id/src/index.ts @@ -14,8 +14,8 @@ * ``` */ -import { CodeError } from '@libp2p/interface/errors' -import { type Ed25519PeerId, type PeerIdType, type RSAPeerId, type Secp256k1PeerId, symbol, type PeerId } from '@libp2p/interface/peer-id' +import { CodeError } from '@libp2p/interface' +import { type Ed25519PeerId, type PeerIdType, type RSAPeerId, type Secp256k1PeerId, peerIdSymbol, type PeerId } from '@libp2p/interface' import { base58btc } from 'multiformats/bases/base58' import { bases } from 'multiformats/basics' import { CID } from 'multiformats/cid' @@ -85,7 +85,7 @@ class PeerIdImpl { return `PeerId(${this.toString()})` } - readonly [symbol] = true + readonly [peerIdSymbol] = true toString (): string { if (this.string == null) { diff --git a/packages/peer-record/src/envelope/index.ts b/packages/peer-record/src/envelope/index.ts index 15714daa4e..8770af487c 100644 --- a/packages/peer-record/src/envelope/index.ts +++ b/packages/peer-record/src/envelope/index.ts @@ -1,5 +1,5 @@ import { unmarshalPrivateKey, unmarshalPublicKey } from '@libp2p/crypto/keys' -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { peerIdFromKeys } from '@libp2p/peer-id' import * as varint from 'uint8-varint' import { Uint8ArrayList } from 'uint8arraylist' @@ -7,8 +7,7 @@ import { equals as uint8ArrayEquals } from 'uint8arrays/equals' import { fromString as uint8arraysFromString } from 'uint8arrays/from-string' import { codes } from '../errors.js' import { Envelope as Protobuf } from './envelope.js' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Record, Envelope } from '@libp2p/interface/record' +import type { PeerId, Record, Envelope } from '@libp2p/interface' export interface RecordEnvelopeInit { peerId: PeerId diff --git a/packages/peer-record/src/peer-record/index.ts b/packages/peer-record/src/peer-record/index.ts index 7ef105c692..b56259f906 100644 --- a/packages/peer-record/src/peer-record/index.ts +++ b/packages/peer-record/src/peer-record/index.ts @@ -6,7 +6,7 @@ import { ENVELOPE_PAYLOAD_TYPE_PEER_RECORD } from './consts.js' import { PeerRecord as Protobuf } from './peer-record.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' import type { Multiaddr } from '@multiformats/multiaddr' import type { Uint8ArrayList } from 'uint8arraylist' diff --git a/packages/peer-record/test/envelope.spec.ts b/packages/peer-record/test/envelope.spec.ts index baff7a2190..9da7b5295d 100644 --- a/packages/peer-record/test/envelope.spec.ts +++ b/packages/peer-record/test/envelope.spec.ts @@ -4,8 +4,7 @@ import { equals as uint8ArrayEquals } from 'uint8arrays/equals' import { fromString as uint8arrayFromString } from 'uint8arrays/from-string' import { RecordEnvelope } from '../src/envelope/index.js' import { codes as ErrorCodes } from '../src/errors.js' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Record } from '@libp2p/interface/record' +import type { PeerId, Record } from '@libp2p/interface' const domain = 'libp2p-testing' const codec = uint8arrayFromString('/libp2p/testdata') diff --git a/packages/peer-record/test/peer-record.spec.ts b/packages/peer-record/test/peer-record.spec.ts index 14de3eca9b..edc623cccc 100644 --- a/packages/peer-record/test/peer-record.spec.ts +++ b/packages/peer-record/test/peer-record.spec.ts @@ -7,7 +7,7 @@ import { multiaddr } from '@multiformats/multiaddr' import { expect } from 'aegir/chai' import { RecordEnvelope } from '../src/envelope/index.js' import { PeerRecord } from '../src/peer-record/index.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' describe('PeerRecord', () => { let peerId: PeerId diff --git a/packages/peer-store/src/index.ts b/packages/peer-store/src/index.ts index 50e6089fef..82fdef79b4 100644 --- a/packages/peer-store/src/index.ts +++ b/packages/peer-store/src/index.ts @@ -1,10 +1,7 @@ import { RecordEnvelope, PeerRecord } from '@libp2p/peer-record' import all from 'it-all' import { PersistentStore, type PeerUpdate } from './store.js' -import type { ComponentLogger, Libp2pEvents, Logger } from '@libp2p/interface' -import type { TypedEventTarget } from '@libp2p/interface/events' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore, Peer, PeerData, PeerQuery } from '@libp2p/interface/peer-store' +import type { ComponentLogger, Libp2pEvents, Logger, TypedEventTarget, PeerId, PeerStore, Peer, PeerData, PeerQuery } from '@libp2p/interface' import type { Multiaddr } from '@multiformats/multiaddr' import type { Datastore } from 'interface-datastore' diff --git a/packages/peer-store/src/store.ts b/packages/peer-store/src/store.ts index 6eaea53097..920788b16a 100644 --- a/packages/peer-store/src/store.ts +++ b/packages/peer-store/src/store.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { PeerMap } from '@libp2p/peer-collections' import { peerIdFromBytes } from '@libp2p/peer-id' import mortice, { type Mortice } from 'mortice' @@ -10,9 +10,7 @@ import { bytesToPeer } from './utils/bytes-to-peer.js' import { NAMESPACE_COMMON, peerIdToDatastoreKey } from './utils/peer-id-to-datastore-key.js' import { toPeerPB } from './utils/to-peer-pb.js' import type { AddressFilter, PersistentPeerStoreComponents, PersistentPeerStoreInit } from './index.js' -import type { PeerUpdate as PeerUpdateExternal } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Peer, PeerData, PeerQuery } from '@libp2p/interface/peer-store' +import type { PeerUpdate as PeerUpdateExternal, PeerId, Peer, PeerData, PeerQuery } from '@libp2p/interface' import type { Datastore, Key, Query } from 'interface-datastore' /** diff --git a/packages/peer-store/src/utils/bytes-to-peer.ts b/packages/peer-store/src/utils/bytes-to-peer.ts index 3b723efcbe..f9d3d07d5e 100644 --- a/packages/peer-store/src/utils/bytes-to-peer.ts +++ b/packages/peer-store/src/utils/bytes-to-peer.ts @@ -1,8 +1,7 @@ import { peerIdFromPeerId } from '@libp2p/peer-id' import { multiaddr } from '@multiformats/multiaddr' import { Peer as PeerPB } from '../pb/peer.js' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Peer, Tag } from '@libp2p/interface/peer-store' +import type { PeerId, Peer, Tag } from '@libp2p/interface' export function bytesToPeer (peerId: PeerId, buf: Uint8Array): Peer { const peer = PeerPB.decode(buf) diff --git a/packages/peer-store/src/utils/dedupe-addresses.ts b/packages/peer-store/src/utils/dedupe-addresses.ts index d6f55d7120..f6d843a05d 100644 --- a/packages/peer-store/src/utils/dedupe-addresses.ts +++ b/packages/peer-store/src/utils/dedupe-addresses.ts @@ -1,10 +1,9 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { isMultiaddr, multiaddr } from '@multiformats/multiaddr' import { codes } from '../errors.js' import type { AddressFilter } from '../index.js' import type { Address as AddressPB } from '../pb/peer.js' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Address } from '@libp2p/interface/peer-store' +import type { PeerId, Address } from '@libp2p/interface' export async function dedupeFilterAndSortAddresses (peerId: PeerId, filter: AddressFilter, addresses: Array
): Promise { const addressMap = new Map() diff --git a/packages/peer-store/src/utils/peer-data-to-datastore-peer.ts b/packages/peer-store/src/utils/peer-data-to-datastore-peer.ts index fa7ad930ed..1aca6b1ca5 100644 --- a/packages/peer-store/src/utils/peer-data-to-datastore-peer.ts +++ b/packages/peer-store/src/utils/peer-data-to-datastore-peer.ts @@ -1,10 +1,9 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { isMultiaddr } from '@multiformats/multiaddr' import { equals as uint8arrayEquals } from 'uint8arrays/equals' import { codes } from '../errors.js' import type { Peer as PeerPB } from '../pb/peer.js' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerData } from '@libp2p/interface/peer-store' +import type { PeerId, PeerData } from '@libp2p/interface' export function toDatastorePeer (peerId: PeerId, data: PeerData): PeerPB { if (data == null) { diff --git a/packages/peer-store/src/utils/peer-id-to-datastore-key.ts b/packages/peer-store/src/utils/peer-id-to-datastore-key.ts index 191ef2dffc..7d46e90c8e 100644 --- a/packages/peer-store/src/utils/peer-id-to-datastore-key.ts +++ b/packages/peer-store/src/utils/peer-id-to-datastore-key.ts @@ -1,5 +1,5 @@ -import { CodeError } from '@libp2p/interface/errors' -import { isPeerId, type PeerId } from '@libp2p/interface/peer-id' +import { CodeError } from '@libp2p/interface' +import { isPeerId, type PeerId } from '@libp2p/interface' import { Key } from 'interface-datastore/key' import { codes } from '../errors.js' diff --git a/packages/peer-store/src/utils/to-peer-pb.ts b/packages/peer-store/src/utils/to-peer-pb.ts index 7270ad6f40..937da55d1d 100644 --- a/packages/peer-store/src/utils/to-peer-pb.ts +++ b/packages/peer-store/src/utils/to-peer-pb.ts @@ -1,11 +1,10 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { equals as uint8arrayEquals } from 'uint8arrays/equals' import { codes } from '../errors.js' import { dedupeFilterAndSortAddresses } from './dedupe-addresses.js' import type { AddressFilter } from '../index.js' import type { Tag, Peer as PeerPB } from '../pb/peer.js' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Address, Peer, PeerData, TagOptions } from '@libp2p/interface/peer-store' +import type { PeerId, Address, Peer, PeerData, TagOptions } from '@libp2p/interface' export interface ToPBPeerOptions { addressFilter?: AddressFilter diff --git a/packages/peer-store/test/index.spec.ts b/packages/peer-store/test/index.spec.ts index ce860f5f45..60ddfbee9a 100644 --- a/packages/peer-store/test/index.spec.ts +++ b/packages/peer-store/test/index.spec.ts @@ -1,7 +1,7 @@ /* eslint-env mocha */ /* eslint max-nested-callbacks: ["error", 6] */ -import { TypedEventEmitter, type TypedEventTarget } from '@libp2p/interface/events' +import { TypedEventEmitter, type TypedEventTarget, type Libp2pEvents, type PeerId } from '@libp2p/interface' import { defaultLogger } from '@libp2p/logger' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { RecordEnvelope, PeerRecord } from '@libp2p/peer-record' @@ -10,8 +10,6 @@ import { expect } from 'aegir/chai' import { MemoryDatastore } from 'datastore-core/memory' import delay from 'delay' import { PersistentPeerStore } from '../src/index.js' -import type { Libp2pEvents } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' const addr1 = multiaddr('/ip4/127.0.0.1/tcp/8000') diff --git a/packages/peer-store/test/merge.spec.ts b/packages/peer-store/test/merge.spec.ts index dcf46fce3c..52aebec3a4 100644 --- a/packages/peer-store/test/merge.spec.ts +++ b/packages/peer-store/test/merge.spec.ts @@ -1,7 +1,7 @@ /* eslint-env mocha */ /* eslint max-nested-callbacks: ["error", 6] */ -import { TypedEventEmitter, type TypedEventTarget } from '@libp2p/interface/events' +import { TypedEventEmitter, type TypedEventTarget, type Libp2pEvents, type PeerId, type PeerData } from '@libp2p/interface' import { defaultLogger } from '@libp2p/logger' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { multiaddr } from '@multiformats/multiaddr' @@ -9,9 +9,6 @@ import { expect } from 'aegir/chai' import { MemoryDatastore } from 'datastore-core/memory' import { pEvent } from 'p-event' import { PersistentPeerStore } from '../src/index.js' -import type { Libp2pEvents } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerData } from '@libp2p/interface/peer-store' const addr1 = multiaddr('/ip4/127.0.0.1/tcp/8000') const addr2 = multiaddr('/ip4/20.0.0.1/tcp/8001') diff --git a/packages/peer-store/test/patch.spec.ts b/packages/peer-store/test/patch.spec.ts index 7f3c390648..63f74ce14a 100644 --- a/packages/peer-store/test/patch.spec.ts +++ b/packages/peer-store/test/patch.spec.ts @@ -1,7 +1,7 @@ /* eslint-env mocha */ /* eslint max-nested-callbacks: ["error", 6] */ -import { TypedEventEmitter, type TypedEventTarget } from '@libp2p/interface/events' +import { TypedEventEmitter, type TypedEventTarget, type Libp2pEvents, type PeerId, type PeerData } from '@libp2p/interface' import { defaultLogger } from '@libp2p/logger' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { multiaddr } from '@multiformats/multiaddr' @@ -9,9 +9,6 @@ import { expect } from 'aegir/chai' import { MemoryDatastore } from 'datastore-core/memory' import { pEvent } from 'p-event' import { PersistentPeerStore } from '../src/index.js' -import type { Libp2pEvents } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerData } from '@libp2p/interface/peer-store' const addr1 = multiaddr('/ip4/127.0.0.1/tcp/8000') const addr2 = multiaddr('/ip4/20.0.0.1/tcp/8001') diff --git a/packages/peer-store/test/save.spec.ts b/packages/peer-store/test/save.spec.ts index 328341458f..2afeaabc53 100644 --- a/packages/peer-store/test/save.spec.ts +++ b/packages/peer-store/test/save.spec.ts @@ -1,7 +1,7 @@ /* eslint-env mocha */ /* eslint max-nested-callbacks: ["error", 6] */ -import { TypedEventEmitter, type TypedEventTarget } from '@libp2p/interface/events' +import { TypedEventEmitter, type TypedEventTarget, type Libp2pEvents, type PeerUpdate, type PeerId, type PeerData } from '@libp2p/interface' import { defaultLogger } from '@libp2p/logger' import { createEd25519PeerId, createRSAPeerId, createSecp256k1PeerId } from '@libp2p/peer-id-factory' import { multiaddr } from '@multiformats/multiaddr' @@ -13,9 +13,6 @@ import sinon from 'sinon' import { codes } from '../src/errors.js' import { PersistentPeerStore } from '../src/index.js' import { Peer as PeerPB } from '../src/pb/peer.js' -import type { Libp2pEvents, PeerUpdate } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerData } from '@libp2p/interface/peer-store' const addr1 = multiaddr('/ip4/127.0.0.1/tcp/8000') const addr2 = multiaddr('/ip4/20.0.0.1/tcp/8001') diff --git a/packages/peer-store/test/utils/dedupe-addresses.spec.ts b/packages/peer-store/test/utils/dedupe-addresses.spec.ts index 233e576239..7129f0e7f3 100644 --- a/packages/peer-store/test/utils/dedupe-addresses.spec.ts +++ b/packages/peer-store/test/utils/dedupe-addresses.spec.ts @@ -4,7 +4,7 @@ import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { multiaddr } from '@multiformats/multiaddr' import { expect } from 'aegir/chai' import { dedupeFilterAndSortAddresses } from '../../src/utils/dedupe-addresses.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' const addr1 = multiaddr('/ip4/127.0.0.1/tcp/8000') const addr2 = multiaddr('/ip4/20.0.0.1/tcp/8001') diff --git a/packages/pnet/package.json b/packages/pnet/package.json index dafb9631af..9faf9383fd 100644 --- a/packages/pnet/package.json +++ b/packages/pnet/package.json @@ -49,8 +49,8 @@ "dep-check": "aegir dep-check" }, "dependencies": { - "@libp2p/crypto": "^2.0.5", - "@libp2p/interface": "^0.1.3", + "@libp2p/crypto": "^3.0.0", + "@libp2p/interface": "^1.0.0", "it-byte-stream": "^1.0.5", "it-map": "^3.0.4", "it-pair": "^2.0.6", @@ -61,8 +61,8 @@ "xsalsa20": "^1.1.0" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^4.1.1", - "@libp2p/logger": "^3.1.0", + "@libp2p/interface-compliance-tests": "^5.0.0", + "@libp2p/logger": "^4.0.0", "@libp2p/peer-id-factory": "^3.0.5", "@multiformats/multiaddr": "^12.1.10", "@types/xsalsa20": "^1.1.0", diff --git a/packages/pnet/src/index.ts b/packages/pnet/src/index.ts index ac49a610ca..305786c032 100644 --- a/packages/pnet/src/index.ts +++ b/packages/pnet/src/index.ts @@ -57,7 +57,7 @@ */ import { randomBytes } from '@libp2p/crypto' -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { byteStream } from 'it-byte-stream' import map from 'it-map' import { duplexPair } from 'it-pair/duplex' @@ -69,8 +69,7 @@ import { } from './crypto.js' import * as Errors from './errors.js' import { NONCE_LENGTH } from './key-generator.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { ConnectionProtector, MultiaddrConnection } from '@libp2p/interface/connection' +import type { ComponentLogger, Logger, ConnectionProtector, MultiaddrConnection } from '@libp2p/interface' import type { Uint8ArrayList } from 'uint8arraylist' export { generateKey } from './key-generator.js' diff --git a/packages/protocol-autonat/src/autonat.ts b/packages/protocol-autonat/src/autonat.ts index ec7fb5d6fa..12d4b8a112 100644 --- a/packages/protocol-autonat/src/autonat.ts +++ b/packages/protocol-autonat/src/autonat.ts @@ -1,5 +1,4 @@ -import { CodeError, ERR_TIMEOUT } from '@libp2p/interface/errors' -import { setMaxListeners } from '@libp2p/interface/events' +import { CodeError, ERR_TIMEOUT, setMaxListeners } from '@libp2p/interface' import { peerIdFromBytes } from '@libp2p/peer-id' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { multiaddr, protocols } from '@multiformats/multiaddr' @@ -16,12 +15,8 @@ import { } from './constants.js' import { Message } from './pb/index.js' import type { AutoNATComponents, AutoNATServiceInit } from './index.js' -import type { Logger } from '@libp2p/interface' -import type { Connection } from '@libp2p/interface/connection' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerInfo } from '@libp2p/interface/peer-info' -import type { Startable } from '@libp2p/interface/startable' -import type { IncomingStreamData } from '@libp2p/interface-internal/registrar' +import type { Logger, Connection, PeerId, PeerInfo, Startable } from '@libp2p/interface' +import type { IncomingStreamData } from '@libp2p/interface-internal' // if more than 3 peers manage to dial us on what we believe to be our external // IP then we are convinced that it is, in fact, our external IP diff --git a/packages/protocol-autonat/src/index.ts b/packages/protocol-autonat/src/index.ts index 45aa266c39..04dde99cb1 100644 --- a/packages/protocol-autonat/src/index.ts +++ b/packages/protocol-autonat/src/index.ts @@ -20,13 +20,8 @@ */ import { AutoNATService } from './autonat.js' -import type { ComponentLogger } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerRouting } from '@libp2p/interface/peer-routing' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { ComponentLogger, PeerId, PeerRouting } from '@libp2p/interface' +import type { AddressManager, ConnectionManager, Registrar, TransportManager } from '@libp2p/interface-internal' export interface AutoNATServiceInit { /** diff --git a/packages/protocol-autonat/test/index.spec.ts b/packages/protocol-autonat/test/index.spec.ts index b84b4c66d7..289f4a597f 100644 --- a/packages/protocol-autonat/test/index.spec.ts +++ b/packages/protocol-autonat/test/index.spec.ts @@ -1,7 +1,7 @@ /* eslint-env mocha */ /* eslint max-nested-callbacks: ["error", 5] */ -import { start, stop } from '@libp2p/interface/startable' +import { start, stop } from '@libp2p/interface' import { defaultLogger } from '@libp2p/logger' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { multiaddr } from '@multiformats/multiaddr' @@ -17,15 +17,8 @@ import { AutoNATService } from '../src/autonat.js' import { PROTOCOL_NAME, PROTOCOL_PREFIX, PROTOCOL_VERSION } from '../src/constants.js' import { Message } from '../src/pb/index.js' import type { AutoNATComponents, AutoNATServiceInit } from '../src/index.js' -import type { Connection, Stream } from '@libp2p/interface/connection' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerInfo } from '@libp2p/interface/peer-info' -import type { PeerRouting } from '@libp2p/interface/peer-routing' -import type { Transport } from '@libp2p/interface/transport' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { Connection, Stream, PeerId, PeerInfo, PeerRouting, Transport } from '@libp2p/interface' +import type { AddressManager, ConnectionManager, Registrar, TransportManager } from '@libp2p/interface-internal' import type { Multiaddr } from '@multiformats/multiaddr' import type { StubbedInstance } from 'sinon-ts' diff --git a/packages/protocol-dcutr/src/dcutr.ts b/packages/protocol-dcutr/src/dcutr.ts index d4affc170e..414a7e2159 100644 --- a/packages/protocol-dcutr/src/dcutr.ts +++ b/packages/protocol-dcutr/src/dcutr.ts @@ -1,4 +1,4 @@ -import { CodeError, ERR_INVALID_MESSAGE } from '@libp2p/interface/errors' +import { CodeError, ERR_INVALID_MESSAGE } from '@libp2p/interface' import { type Multiaddr, multiaddr } from '@multiformats/multiaddr' import delay from 'delay' import { pbStream } from 'it-protobuf-stream' @@ -6,14 +6,8 @@ import { HolePunch } from './pb/message.js' import { isPublicAndDialable } from './utils.js' import { multicodec } from './index.js' import type { DCUtRServiceComponents, DCUtRServiceInit } from './index.js' -import type { Logger } from '@libp2p/interface' -import type { Connection, Stream } from '@libp2p/interface/connection' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { Startable } from '@libp2p/interface/startable' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' -import type { TransportManager } from '@libp2p/interface-internal/src/transport-manager/index.js' +import type { Logger, Connection, Stream, PeerStore, Startable } from '@libp2p/interface' +import type { AddressManager, ConnectionManager, Registrar, TransportManager } from '@libp2p/interface-internal' // https://github.com/libp2p/specs/blob/master/relay/DCUtR.md#rpc-messages const MAX_DCUTR_MESSAGE_SIZE = 1024 * 4 diff --git a/packages/protocol-dcutr/src/index.ts b/packages/protocol-dcutr/src/index.ts index fefa57740f..ace94619cd 100644 --- a/packages/protocol-dcutr/src/index.ts +++ b/packages/protocol-dcutr/src/index.ts @@ -54,12 +54,8 @@ */ import { DefaultDCUtRService } from './dcutr.js' -import type { ComponentLogger } from '@libp2p/interface' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { ComponentLogger, PeerStore } from '@libp2p/interface' +import type { AddressManager, ConnectionManager, Registrar, TransportManager } from '@libp2p/interface-internal' export interface DCUtRServiceInit { /** diff --git a/packages/protocol-dcutr/src/utils.ts b/packages/protocol-dcutr/src/utils.ts index c56a139778..900d0b3573 100644 --- a/packages/protocol-dcutr/src/utils.ts +++ b/packages/protocol-dcutr/src/utils.ts @@ -1,7 +1,7 @@ import { type Multiaddr } from '@multiformats/multiaddr' import { Circuit, IP, DNS } from '@multiformats/multiaddr-matcher' import isPrivate from 'private-ip' -import type { TransportManager } from '@libp2p/interface-internal/src/transport-manager' +import type { TransportManager } from '@libp2p/interface-internal' /** * Returns true if the passed multiaddr is public, not relayed and we have a diff --git a/packages/protocol-dcutr/test/utils.spec.ts b/packages/protocol-dcutr/test/utils.spec.ts index bba0f524d2..829e4745b9 100644 --- a/packages/protocol-dcutr/test/utils.spec.ts +++ b/packages/protocol-dcutr/test/utils.spec.ts @@ -5,8 +5,8 @@ import { expect } from 'aegir/chai' import Sinon from 'sinon' import { stubInterface } from 'sinon-ts' import { isPublicAndDialable } from '../src/utils.js' -import type { Transport } from '@libp2p/interface/transport' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { Transport } from '@libp2p/interface' +import type { TransportManager } from '@libp2p/interface-internal' describe('dcutr utils', () => { describe('isPublicAndDialable', () => { diff --git a/packages/protocol-fetch/src/fetch.ts b/packages/protocol-fetch/src/fetch.ts index 4029b3f48f..8808dbcbf2 100644 --- a/packages/protocol-fetch/src/fetch.ts +++ b/packages/protocol-fetch/src/fetch.ts @@ -1,16 +1,12 @@ -import { CodeError, ERR_INVALID_MESSAGE, ERR_INVALID_PARAMETERS, ERR_TIMEOUT } from '@libp2p/interface/errors' -import { setMaxListeners } from '@libp2p/interface/events' +import { CodeError, ERR_INVALID_MESSAGE, ERR_INVALID_PARAMETERS, ERR_TIMEOUT, setMaxListeners } from '@libp2p/interface' import { pbStream } from 'it-protobuf-stream' import { fromString as uint8arrayFromString } from 'uint8arrays/from-string' import { toString as uint8arrayToString } from 'uint8arrays/to-string' import { PROTOCOL_NAME, PROTOCOL_VERSION } from './constants.js' import { FetchRequest, FetchResponse } from './pb/proto.js' import type { Fetch as FetchInterface, FetchComponents, FetchInit, LookupFunction } from './index.js' -import type { AbortOptions, Logger } from '@libp2p/interface' -import type { Stream } from '@libp2p/interface/connection' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Startable } from '@libp2p/interface/startable' -import type { IncomingStreamData } from '@libp2p/interface-internal/registrar' +import type { AbortOptions, Logger, Stream, PeerId, Startable } from '@libp2p/interface' +import type { IncomingStreamData } from '@libp2p/interface-internal' const DEFAULT_TIMEOUT = 10000 diff --git a/packages/protocol-fetch/src/index.ts b/packages/protocol-fetch/src/index.ts index c270bd770c..715e05615a 100644 --- a/packages/protocol-fetch/src/index.ts +++ b/packages/protocol-fetch/src/index.ts @@ -34,10 +34,8 @@ */ import { Fetch as FetchClass } from './fetch.js' -import type { AbortOptions, ComponentLogger } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { AbortOptions, ComponentLogger, PeerId } from '@libp2p/interface' +import type { ConnectionManager, Registrar } from '@libp2p/interface-internal' export interface FetchInit { protocolPrefix?: string diff --git a/packages/protocol-fetch/test/index.spec.ts b/packages/protocol-fetch/test/index.spec.ts index e97aaa07b3..6630cad008 100644 --- a/packages/protocol-fetch/test/index.spec.ts +++ b/packages/protocol-fetch/test/index.spec.ts @@ -1,7 +1,6 @@ /* eslint-env mocha */ -import { ERR_INVALID_PARAMETERS } from '@libp2p/interface/errors' -import { start, stop } from '@libp2p/interface/startable' +import { ERR_INVALID_PARAMETERS, start, stop } from '@libp2p/interface' import { defaultLogger } from '@libp2p/logger' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { expect } from 'aegir/chai' @@ -11,11 +10,8 @@ import sinon from 'sinon' import { stubInterface, type StubbedInstance } from 'sinon-ts' import { Fetch } from '../src/fetch.js' import { FetchRequest, FetchResponse } from '../src/pb/proto.js' -import type { ComponentLogger } from '@libp2p/interface' -import type { Connection, Stream } from '@libp2p/interface/connection' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { ComponentLogger, Connection, Stream, PeerId } from '@libp2p/interface' +import type { ConnectionManager, Registrar } from '@libp2p/interface-internal' interface StubbedFetchComponents { registrar: StubbedInstance diff --git a/packages/protocol-identify/src/identify.ts b/packages/protocol-identify/src/identify.ts index 895e1c7b29..836ee7eb1e 100644 --- a/packages/protocol-identify/src/identify.ts +++ b/packages/protocol-identify/src/identify.ts @@ -1,7 +1,6 @@ /* eslint-disable complexity */ -import { CodeError, ERR_NOT_FOUND } from '@libp2p/interface/errors' -import { setMaxListeners } from '@libp2p/interface/events' +import { CodeError, ERR_NOT_FOUND, setMaxListeners } from '@libp2p/interface' import { peerIdFromKeys } from '@libp2p/peer-id' import { RecordEnvelope, PeerRecord } from '@libp2p/peer-record' import { type Multiaddr, multiaddr, protocols } from '@multiformats/multiaddr' @@ -19,15 +18,8 @@ import { } from './consts.js' import { Identify as IdentifyMessage } from './pb/message.js' import type { Identify as IdentifyInterface, IdentifyComponents, IdentifyInit } from './index.js' -import type { Libp2pEvents, IdentifyResult, SignedPeerRecord, AbortOptions, Logger } from '@libp2p/interface' -import type { Connection, Stream } from '@libp2p/interface/connection' -import type { TypedEventTarget } from '@libp2p/interface/events' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Peer, PeerData, PeerStore } from '@libp2p/interface/peer-store' -import type { Startable } from '@libp2p/interface/startable' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { IncomingStreamData, Registrar } from '@libp2p/interface-internal/registrar' +import type { Libp2pEvents, IdentifyResult, SignedPeerRecord, AbortOptions, Logger, Connection, Stream, TypedEventTarget, PeerId, Peer, PeerData, PeerStore, Startable } from '@libp2p/interface' +import type { AddressManager, ConnectionManager, IncomingStreamData, Registrar } from '@libp2p/interface-internal' // https://github.com/libp2p/go-libp2p/blob/8d2e54e1637041d5cf4fac1e531287560bd1f4ac/p2p/protocol/identify/id.go#L52 const MAX_IDENTIFY_MESSAGE_SIZE = 1024 * 8 diff --git a/packages/protocol-identify/src/index.ts b/packages/protocol-identify/src/index.ts index c9ef0fa5e7..61361f9edf 100644 --- a/packages/protocol-identify/src/index.ts +++ b/packages/protocol-identify/src/index.ts @@ -23,14 +23,8 @@ import { MULTICODEC_IDENTIFY_PUSH } from './consts.js' import { Identify as IdentifyClass } from './identify.js' -import type { AbortOptions, IdentifyResult, Libp2pEvents, ComponentLogger, NodeInfo } from '@libp2p/interface' -import type { TypedEventTarget } from '@libp2p/interface/events' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { Connection } from '@libp2p/interface/src/connection/index.js' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { AbortOptions, IdentifyResult, Libp2pEvents, ComponentLogger, NodeInfo, TypedEventTarget, PeerId, PeerStore, Connection } from '@libp2p/interface' +import type { AddressManager, ConnectionManager, Registrar } from '@libp2p/interface-internal' export interface IdentifyInit { /** diff --git a/packages/protocol-identify/test/fixtures/index.ts b/packages/protocol-identify/test/fixtures/index.ts index 9827dcd75e..61f45fde25 100644 --- a/packages/protocol-identify/test/fixtures/index.ts +++ b/packages/protocol-identify/test/fixtures/index.ts @@ -5,14 +5,8 @@ import Sinon from 'sinon' import { stubInterface, type StubbedInstance } from 'sinon-ts' import { Uint8ArrayList } from 'uint8arraylist' import { Identify as IdentifyMessage } from '../../src/pb/message.js' -import type { ComponentLogger, Libp2pEvents, NodeInfo } from '@libp2p/interface' -import type { TypedEventTarget } from '@libp2p/interface/events' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { Connection, Stream } from '@libp2p/interface/src/connection' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { ComponentLogger, Libp2pEvents, NodeInfo, TypedEventTarget, PeerId, PeerStore, Connection, Stream } from '@libp2p/interface' +import type { AddressManager, ConnectionManager, Registrar } from '@libp2p/interface-internal' export function matchPeerId (peerId: PeerId): Sinon.SinonMatcher { return Sinon.match(p => p.toString() === peerId.toString()) diff --git a/packages/protocol-identify/test/index.spec.ts b/packages/protocol-identify/test/index.spec.ts index 257f3f6baf..5aab641c05 100644 --- a/packages/protocol-identify/test/index.spec.ts +++ b/packages/protocol-identify/test/index.spec.ts @@ -1,5 +1,4 @@ -import { TypedEventEmitter } from '@libp2p/interface/events' -import { start, stop } from '@libp2p/interface/startable' +import { TypedEventEmitter, start, stop } from '@libp2p/interface' import { defaultLogger } from '@libp2p/logger' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { PeerRecord, RecordEnvelope } from '@libp2p/peer-record' @@ -16,12 +15,8 @@ import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { Identify } from '../src/identify.js' import { Identify as IdentifyMessage } from '../src/pb/message.js' import { identifyConnection, identifyStream, type StubbedIdentifyComponents } from './fixtures/index.js' -import type { Libp2pEvents } from '@libp2p/interface' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { Connection, Stream } from '@libp2p/interface/src/connection' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { Libp2pEvents, PeerStore, Connection, Stream } from '@libp2p/interface' +import type { AddressManager, ConnectionManager, Registrar } from '@libp2p/interface-internal' import type { Uint8ArrayList } from 'uint8arraylist' describe('identify', () => { diff --git a/packages/protocol-identify/test/push.spec.ts b/packages/protocol-identify/test/push.spec.ts index f49e939d52..e8cba2a500 100644 --- a/packages/protocol-identify/test/push.spec.ts +++ b/packages/protocol-identify/test/push.spec.ts @@ -1,5 +1,4 @@ -import { TypedEventEmitter } from '@libp2p/interface/events' -import { start, stop } from '@libp2p/interface/startable' +import { TypedEventEmitter, start, stop } from '@libp2p/interface' import { defaultLogger } from '@libp2p/logger' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { multiaddr } from '@multiformats/multiaddr' @@ -10,11 +9,8 @@ import { stubInterface } from 'sinon-ts' import { Identify } from '../src/identify.js' import { Identify as IdentifyMessage } from '../src/pb/message.js' import { identifyPushStream, matchPeerId, type StubbedIdentifyComponents } from './fixtures/index.js' -import type { Libp2pEvents } from '@libp2p/interface' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { Libp2pEvents, PeerStore } from '@libp2p/interface' +import type { AddressManager, ConnectionManager, Registrar } from '@libp2p/interface-internal' describe('identify (push)', () => { let components: StubbedIdentifyComponents diff --git a/packages/protocol-perf/src/index.ts b/packages/protocol-perf/src/index.ts index 9ccc3105dc..556986562f 100644 --- a/packages/protocol-perf/src/index.ts +++ b/packages/protocol-perf/src/index.ts @@ -54,8 +54,7 @@ import { Perf as PerfClass } from './perf-service.js' import type { AbortOptions, ComponentLogger } from '@libp2p/interface' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { ConnectionManager, Registrar } from '@libp2p/interface-internal' import type { Multiaddr } from '@multiformats/multiaddr' export interface PerfOptions extends AbortOptions { diff --git a/packages/protocol-perf/src/perf-service.ts b/packages/protocol-perf/src/perf-service.ts index aa1d862f2f..f3475eb506 100644 --- a/packages/protocol-perf/src/perf-service.ts +++ b/packages/protocol-perf/src/perf-service.ts @@ -1,9 +1,8 @@ import { pushable } from 'it-pushable' import { MAX_INBOUND_STREAMS, MAX_OUTBOUND_STREAMS, PROTOCOL_NAME, RUN_ON_TRANSIENT_CONNECTION, WRITE_BLOCK_SIZE } from './constants.js' import type { PerfOptions, PerfOutput, PerfComponents, PerfInit, Perf as PerfInterface } from './index.js' -import type { Logger } from '@libp2p/interface' -import type { Startable } from '@libp2p/interface/startable' -import type { IncomingStreamData } from '@libp2p/interface-internal/registrar' +import type { Logger, Startable } from '@libp2p/interface' +import type { IncomingStreamData } from '@libp2p/interface-internal' import type { Multiaddr } from '@multiformats/multiaddr' export class Perf implements Startable, PerfInterface { diff --git a/packages/protocol-perf/test/index.spec.ts b/packages/protocol-perf/test/index.spec.ts index 78740f52d3..177989c0cd 100644 --- a/packages/protocol-perf/test/index.spec.ts +++ b/packages/protocol-perf/test/index.spec.ts @@ -1,6 +1,6 @@ /* eslint-env mocha */ -import { start, stop } from '@libp2p/interface/startable' +import { start, stop } from '@libp2p/interface' import { streamPair } from '@libp2p/interface-compliance-tests/mocks' import { defaultLogger } from '@libp2p/logger' import { multiaddr } from '@multiformats/multiaddr' @@ -9,10 +9,8 @@ import last from 'it-last' import { duplexPair } from 'it-pair/duplex' import { stubInterface, type StubbedInstance } from 'sinon-ts' import { Perf } from '../src/perf-service.js' -import type { ComponentLogger } from '@libp2p/interface' -import type { Connection } from '@libp2p/interface/connection' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { ComponentLogger, Connection } from '@libp2p/interface' +import type { ConnectionManager, Registrar } from '@libp2p/interface-internal' interface StubbedPerfComponents { registrar: StubbedInstance diff --git a/packages/protocol-perf/test/run-client.ts b/packages/protocol-perf/test/run-client.ts deleted file mode 100644 index 90380ae35a..0000000000 --- a/packages/protocol-perf/test/run-client.ts +++ /dev/null @@ -1,61 +0,0 @@ -/* eslint-disable no-console */ -import { noise } from '@chainsafe/libp2p-noise' -import { yamux } from '@chainsafe/libp2p-yamux' -import { mplex } from '@libp2p/mplex' -import { plaintext } from '@libp2p/plaintext' -import { tcp } from '@libp2p/tcp' -import { multiaddr } from '@multiformats/multiaddr' -import { createLibp2p, type Libp2p } from 'libp2p' -import { perf, type PerfOutput, type Perf } from '../src/index.js' - -const ONE_MEG = 1024 * 1024 -const DOWNLOAD_BYTES = ONE_MEG * 1024 * 5 - -async function createNode (): Promise> { - return createLibp2p({ - transports: [ - tcp() - ], - connectionEncryption: [ - noise(), plaintext() - ], - streamMuxers: [ - yamux(), mplex() - ], - services: { - perf: perf({ - writeBlockSize: 1024 * 1024 - }) - }, - connectionManager: { - minConnections: 0 - } - }) -} - -const libp2p1 = await createNode() - -let last: PerfOutput | undefined - -const ma = multiaddr('/ip4/127.0.0.1/tcp/59032') - -for await (const output of libp2p1.services.perf.measurePerformance(ma, 0, DOWNLOAD_BYTES)) { - last = output - console.info(output) - - console.info((output.downloadBytes / (1024 * 1024)) / output.timeSeconds, 'MB/s') -} - -if (last?.type === 'final') { - console.info((last.downloadBytes / (1024 * 1024)) / last.timeSeconds, 'MB/s') -} - -await libp2p1.stop() - -// plaintext/yamux - 1354 MB/s -// plaintext/mplex - 34478 MB/s -// noise/yamux - 60 MB/s -// noise/mplex - 62 MB/s - -// noise/yamux/native crypto - 282 MB/s -// noise/mplex/native crypto - 420 MB/s diff --git a/packages/protocol-perf/test/run-server.ts b/packages/protocol-perf/test/run-server.ts deleted file mode 100644 index 8d6d569994..0000000000 --- a/packages/protocol-perf/test/run-server.ts +++ /dev/null @@ -1,39 +0,0 @@ -/* eslint-disable no-console */ -import { noise } from '@chainsafe/libp2p-noise' -import { yamux } from '@chainsafe/libp2p-yamux' -import { mplex } from '@libp2p/mplex' -import { plaintext } from '@libp2p/plaintext' -import { tcp } from '@libp2p/tcp' -import { createLibp2p, type Libp2p } from 'libp2p' -import { perf, type Perf } from '../src/index.js' - -async function createNode (): Promise> { - return createLibp2p({ - addresses: { - listen: [ - '/ip4/0.0.0.0/tcp/59032' - ] - }, - transports: [ - tcp() - ], - connectionEncryption: [ - noise(), plaintext() - ], - streamMuxers: [ - yamux(), mplex() - ], - services: { - perf: perf({ - writeBlockSize: 1024 * 1024 - }) - }, - connectionManager: { - minConnections: 0 - } - }) -} - -const server = await createNode() - -console.info(server.getMultiaddrs()) diff --git a/packages/protocol-perf/test/run.ts b/packages/protocol-perf/test/run.ts deleted file mode 100644 index 37fac789f8..0000000000 --- a/packages/protocol-perf/test/run.ts +++ /dev/null @@ -1,147 +0,0 @@ -/* eslint-disable no-console */ -import { noise } from '@chainsafe/libp2p-noise' -import { yamux } from '@chainsafe/libp2p-yamux' -import { mplex } from '@libp2p/mplex' -import { plaintext } from '@libp2p/plaintext' -import { tcp } from '@libp2p/tcp' -import last from 'it-last' -import { createLibp2p, type Libp2p } from 'libp2p' -import { perf, type PerfOutput, type Perf } from '../src/index.js' - -const ONE_MEG = 1024 * 1024 -const DOWNLOAD_BYTES = ONE_MEG * 1024 * 5 -const REPEAT = 10 - -// plaintext/yamux - 1354 MB/s -// plaintext/mplex - 34478 MB/s -// noise/yamux - 60 MB/s -// noise/mplex - 62 MB/s - -// noise/yamux/native crypto - 282 MB/s -// noise/mplex/native crypto - 420 MB/s - -const sizes = [ - 64, 128, 256, 384, 512, 640, 768, 896, 1024, 1152, 1280, 1408, 1536 -] - -for (let i = 0; i < sizes.length; i++) { - const size = sizes[i] - - const measurements: PerfOutput[] = [] - - for (let n = 0; n < REPEAT; n++) { - async function createNode (): Promise> { - return createLibp2p({ - addresses: { - listen: [ - '/ip4/0.0.0.0/tcp/0' - ] - }, - transports: [ - tcp() - ], - connectionEncryption: [ - noise(), plaintext() - ], - streamMuxers: [ - yamux(), mplex() - ], - services: { - perf: perf({ - writeBlockSize: size * 1024 - }) - }, - connectionManager: { - minConnections: 0 - } - }) - } - - const libp2p1 = await createNode() - const libp2p2 = await createNode() - - const result = await last( - libp2p1.services.perf.measurePerformance(libp2p2.getMultiaddrs()[0], 0, DOWNLOAD_BYTES) - ) - - if (result != null) { - measurements.push(result) - } - - await libp2p1.stop() - await libp2p2.stop() - } - - const downloadBytes = measurements - .map(m => { - if (m.type === 'final') { - return m.downloadBytes - } - - return 0 - }) - .filter(outliers()) - .reduce((acc, curr) => acc + curr, 0) - - const timeSeconds = measurements - .map(m => { - if (m.type === 'final') { - return m.timeSeconds - } - - return 0 - }) - .filter(outliers()) - .reduce((acc, curr) => acc + curr, 0) - - console.info(size, 'kb', (downloadBytes / (1024 * 1024)) / timeSeconds, 'MB/s') -} - -function outliers() { - let o: number[] - - return function(v: number, i: number, a: number[]) { - if (o == null) { - o = calc(a) - } - - return !~o.indexOf(v); - } -} - -function calc(arr: number[]): number[] { - arr = arr.slice(0); - - arr = arr.sort(function(a, b) { - return a - b; - }); - - var len = arr.length; - var middle = median(arr); - var range = iqr(arr); - var outliers = []; - - for (var i = 0; i < len; i++) { - Math.abs(arr[i] - middle) > range && outliers.push(arr[i]); - } - - return outliers; -} - -function median(arr: number[]): number { - var len = arr.length; - var half = ~~(len / 2); - - return len % 2 - ? arr[half] - : (arr[half - 1] + arr[half]) / 2; -} - -function iqr(arr: number[]): number { - var len = arr.length; - var q1 = median(arr.slice(0, ~~(len / 2))); - var q3 = median(arr.slice(Math.ceil(len / 2))); - var g = 1.5; - - return (q3 - q1) * g; -} diff --git a/packages/protocol-ping/src/index.ts b/packages/protocol-ping/src/index.ts index 03c0d5a5f5..de0c1751c5 100644 --- a/packages/protocol-ping/src/index.ts +++ b/packages/protocol-ping/src/index.ts @@ -23,10 +23,8 @@ */ import { PingService as PingServiceClass } from './ping.js' -import type { AbortOptions, ComponentLogger } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { AbortOptions, ComponentLogger, PeerId } from '@libp2p/interface' +import type { ConnectionManager, Registrar } from '@libp2p/interface-internal' import type { Multiaddr } from '@multiformats/multiaddr' export interface PingService { diff --git a/packages/protocol-ping/src/ping.ts b/packages/protocol-ping/src/ping.ts index 19c2998b34..a7af5d16ff 100644 --- a/packages/protocol-ping/src/ping.ts +++ b/packages/protocol-ping/src/ping.ts @@ -1,15 +1,12 @@ import { randomBytes } from '@libp2p/crypto' -import { CodeError, ERR_TIMEOUT } from '@libp2p/interface/errors' +import { CodeError, ERR_TIMEOUT } from '@libp2p/interface' import first from 'it-first' import { pipe } from 'it-pipe' import { equals as uint8ArrayEquals } from 'uint8arrays/equals' import { PROTOCOL_PREFIX, PROTOCOL_NAME, PING_LENGTH, PROTOCOL_VERSION, TIMEOUT, MAX_INBOUND_STREAMS, MAX_OUTBOUND_STREAMS, ERR_WRONG_PING_ACK } from './constants.js' import type { PingServiceComponents, PingServiceInit, PingService as PingServiceInterface } from './index.js' -import type { AbortOptions, Logger } from '@libp2p/interface' -import type { Stream } from '@libp2p/interface/connection' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Startable } from '@libp2p/interface/startable' -import type { IncomingStreamData } from '@libp2p/interface-internal/registrar' +import type { AbortOptions, Logger, Stream, PeerId, Startable } from '@libp2p/interface' +import type { IncomingStreamData } from '@libp2p/interface-internal' import type { Multiaddr } from '@multiformats/multiaddr' export class PingService implements Startable, PingServiceInterface { diff --git a/packages/protocol-ping/test/index.spec.ts b/packages/protocol-ping/test/index.spec.ts index 88858bf73e..a24fe90892 100644 --- a/packages/protocol-ping/test/index.spec.ts +++ b/packages/protocol-ping/test/index.spec.ts @@ -1,7 +1,6 @@ /* eslint-env mocha */ -import { ERR_TIMEOUT } from '@libp2p/interface/errors' -import { start } from '@libp2p/interface/startable' +import { ERR_TIMEOUT, start } from '@libp2p/interface' import { defaultLogger } from '@libp2p/logger' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { expect } from 'aegir/chai' @@ -12,10 +11,8 @@ import pDefer from 'p-defer' import { stubInterface, type StubbedInstance } from 'sinon-ts' import { PING_PROTOCOL } from '../src/constants.js' import { PingService } from '../src/ping.js' -import type { ComponentLogger } from '@libp2p/interface' -import type { Stream, Connection } from '@libp2p/interface/connection' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { ComponentLogger, Stream, Connection } from '@libp2p/interface' +import type { ConnectionManager, Registrar } from '@libp2p/interface-internal' interface StubbedPingServiceComponents { registrar: StubbedInstance diff --git a/packages/pubsub-floodsub/src/index.ts b/packages/pubsub-floodsub/src/index.ts index a87b3fc367..a3a9883a8b 100644 --- a/packages/pubsub-floodsub/src/index.ts +++ b/packages/pubsub-floodsub/src/index.ts @@ -35,8 +35,7 @@ import { toString } from 'uint8arrays/to-string' import { SimpleTimeCache } from './cache.js' import { multicodec } from './config.js' import { RPC } from './message/rpc.js' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PubSubInit, Message, PubSubRPC, PubSubRPCMessage, PublishResult, PubSub } from '@libp2p/interface/pubsub' +import type { PeerId, PubSubInit, Message, PubSubRPC, PubSubRPCMessage, PublishResult, PubSub } from '@libp2p/interface' import type { Uint8ArrayList } from 'uint8arraylist' export { multicodec } diff --git a/packages/pubsub-floodsub/test/floodsub.spec.ts b/packages/pubsub-floodsub/test/floodsub.spec.ts index 87f8f0ed4a..cae44d0f7e 100644 --- a/packages/pubsub-floodsub/test/floodsub.spec.ts +++ b/packages/pubsub-floodsub/test/floodsub.spec.ts @@ -1,6 +1,6 @@ /* eslint-env mocha */ -import { type Message, type PubSubRPC, StrictNoSign } from '@libp2p/interface/pubsub' +import { type Message, type PubSubRPC, StrictNoSign } from '@libp2p/interface' import { mockRegistrar } from '@libp2p/interface-compliance-tests/mocks' import { defaultLogger } from '@libp2p/logger' import { PeerSet } from '@libp2p/peer-collections' diff --git a/packages/pubsub/src/index.ts b/packages/pubsub/src/index.ts index 9ed69534f2..b7aa797aec 100644 --- a/packages/pubsub/src/index.ts +++ b/packages/pubsub/src/index.ts @@ -13,9 +13,8 @@ * ``` */ -import { CodeError } from '@libp2p/interface/errors' -import { TypedEventEmitter, CustomEvent } from '@libp2p/interface/events' -import { type PubSub, type Message, type StrictNoSign, type StrictSign, type PubSubInit, type PubSubEvents, type PeerStreams, type PubSubRPCMessage, type PubSubRPC, type PubSubRPCSubscription, type SubscriptionChangeData, type PublishResult, type TopicValidatorFn, TopicValidatorResult } from '@libp2p/interface/pubsub' +import { CodeError, TypedEventEmitter, CustomEvent } from '@libp2p/interface' +import { type PubSub, type Message, type StrictNoSign, type StrictSign, type PubSubInit, type PubSubEvents, type PeerStreams, type PubSubRPCMessage, type PubSubRPC, type PubSubRPCSubscription, type SubscriptionChangeData, type PublishResult, type TopicValidatorFn, TopicValidatorResult, type ComponentLogger, type Logger, type Connection, type PeerId } from '@libp2p/interface' import { PeerMap, PeerSet } from '@libp2p/peer-collections' import { pipe } from 'it-pipe' import Queue from 'p-queue' @@ -26,10 +25,7 @@ import { verifySignature } from './sign.js' import { toMessage, ensureArray, noSignMsgId, msgId, toRpcMessage, randomSeqno } from './utils.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { Connection } from '@libp2p/interface/connection' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { IncomingStreamData, Registrar } from '@libp2p/interface-internal/registrar' +import type { IncomingStreamData, Registrar } from '@libp2p/interface-internal' import type { Uint8ArrayList } from 'uint8arraylist' export interface PubSubComponents { diff --git a/packages/pubsub/src/peer-streams.ts b/packages/pubsub/src/peer-streams.ts index 5656172cf8..d9cd9cfa9c 100644 --- a/packages/pubsub/src/peer-streams.ts +++ b/packages/pubsub/src/peer-streams.ts @@ -1,13 +1,10 @@ -import { TypedEventEmitter, CustomEvent } from '@libp2p/interface/events' +import { TypedEventEmitter, CustomEvent } from '@libp2p/interface' import { closeSource } from '@libp2p/utils/close-source' import * as lp from 'it-length-prefixed' import { pipe } from 'it-pipe' import { pushable } from 'it-pushable' import { Uint8ArrayList } from 'uint8arraylist' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { Stream } from '@libp2p/interface/connection' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStreamEvents } from '@libp2p/interface/pubsub' +import type { ComponentLogger, Logger, Stream, PeerId, PeerStreamEvents } from '@libp2p/interface' import type { Pushable } from 'it-pushable' export interface PeerStreamsInit { diff --git a/packages/pubsub/src/sign.ts b/packages/pubsub/src/sign.ts index e41a8ebe41..41de3e7bbc 100644 --- a/packages/pubsub/src/sign.ts +++ b/packages/pubsub/src/sign.ts @@ -3,8 +3,7 @@ import { peerIdFromKeys } from '@libp2p/peer-id' import { concat as uint8ArrayConcat } from 'uint8arrays/concat' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { toRpcMessage } from './utils.js' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PubSubRPCMessage, SignedMessage } from '@libp2p/interface/pubsub' +import type { PeerId, PubSubRPCMessage, SignedMessage } from '@libp2p/interface' export const SignPrefix = uint8ArrayFromString('libp2p-pubsub:') diff --git a/packages/pubsub/src/utils.ts b/packages/pubsub/src/utils.ts index d89412f57c..880be56781 100644 --- a/packages/pubsub/src/utils.ts +++ b/packages/pubsub/src/utils.ts @@ -1,11 +1,11 @@ import { randomBytes } from '@libp2p/crypto' -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { peerIdFromBytes, peerIdFromKeys } from '@libp2p/peer-id' import { sha256 } from 'multiformats/hashes/sha2' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { toString as uint8ArrayToString } from 'uint8arrays/to-string' import { codes } from './errors.js' -import type { Message, PubSubRPCMessage } from '@libp2p/interface/pubsub' +import type { Message, PubSubRPCMessage } from '@libp2p/interface' /** * Generate a random sequence number diff --git a/packages/pubsub/test/instance.spec.ts b/packages/pubsub/test/instance.spec.ts index f5ca436206..8f96356d0b 100644 --- a/packages/pubsub/test/instance.spec.ts +++ b/packages/pubsub/test/instance.spec.ts @@ -3,7 +3,7 @@ import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { expect } from 'aegir/chai' import { PubSubBaseProtocol } from '../src/index.js' import { MockRegistrar } from './utils/index.js' -import type { PublishResult, PubSubRPC, PubSubRPCMessage } from '@libp2p/interface/pubsub' +import type { PublishResult, PubSubRPC, PubSubRPCMessage } from '@libp2p/interface' import type { Uint8ArrayList } from 'uint8arraylist' class PubsubProtocol extends PubSubBaseProtocol { diff --git a/packages/pubsub/test/lifecycle.spec.ts b/packages/pubsub/test/lifecycle.spec.ts index 96f1532efd..787588700b 100644 --- a/packages/pubsub/test/lifecycle.spec.ts +++ b/packages/pubsub/test/lifecycle.spec.ts @@ -10,9 +10,8 @@ import { MockRegistrar, mockIncomingStreamEvent } from './utils/index.js' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PublishResult, PubSubRPC, PubSubRPCMessage } from '@libp2p/interface/pubsub' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { PeerId, PublishResult, PubSubRPC, PubSubRPCMessage } from '@libp2p/interface' +import type { Registrar } from '@libp2p/interface-internal' import type { Uint8ArrayList } from 'uint8arraylist' class PubsubProtocol extends PubSubBaseProtocol { diff --git a/packages/pubsub/test/message.spec.ts b/packages/pubsub/test/message.spec.ts index 8fad682301..137d875ad2 100644 --- a/packages/pubsub/test/message.spec.ts +++ b/packages/pubsub/test/message.spec.ts @@ -9,8 +9,7 @@ import { MockRegistrar, PubsubImplementation } from './utils/index.js' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Message } from '@libp2p/interface/pubsub' +import type { PeerId, Message } from '@libp2p/interface' describe('pubsub base messages', () => { let peerId: PeerId diff --git a/packages/pubsub/test/pubsub.spec.ts b/packages/pubsub/test/pubsub.spec.ts index 0c55846d6c..bd4da454b9 100644 --- a/packages/pubsub/test/pubsub.spec.ts +++ b/packages/pubsub/test/pubsub.spec.ts @@ -17,8 +17,7 @@ import { PubsubImplementation, mockIncomingStreamEvent } from './utils/index.js' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Message, PubSubRPC } from '@libp2p/interface/pubsub' +import type { PeerId, Message, PubSubRPC } from '@libp2p/interface' const protocol = '/pubsub/1.0.0' const topic = 'test-topic' diff --git a/packages/pubsub/test/sign.spec.ts b/packages/pubsub/test/sign.spec.ts index b0af2211ad..ffcf571104 100644 --- a/packages/pubsub/test/sign.spec.ts +++ b/packages/pubsub/test/sign.spec.ts @@ -10,8 +10,7 @@ import { } from '../src/sign.js' import { randomSeqno, toRpcMessage } from '../src/utils.js' import { RPC } from './message/rpc.js' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PubSubRPCMessage } from '@libp2p/interface/pubsub' +import type { PeerId, PubSubRPCMessage } from '@libp2p/interface' function encodeMessage (message: PubSubRPCMessage): Uint8Array { return RPC.Message.encode(message) diff --git a/packages/pubsub/test/topic-validators.spec.ts b/packages/pubsub/test/topic-validators.spec.ts index 1ebf109d3f..153d322de7 100644 --- a/packages/pubsub/test/topic-validators.spec.ts +++ b/packages/pubsub/test/topic-validators.spec.ts @@ -1,4 +1,4 @@ -import { type PubSubRPC, TopicValidatorResult } from '@libp2p/interface/pubsub' +import { type PubSubRPC, TopicValidatorResult, type PeerId } from '@libp2p/interface' import { defaultLogger } from '@libp2p/logger' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { expect } from 'aegir/chai' @@ -11,7 +11,6 @@ import { MockRegistrar, PubsubImplementation } from './utils/index.js' -import type { PeerId } from '@libp2p/interface/peer-id' const protocol = '/pubsub/1.0.0' diff --git a/packages/pubsub/test/utils.spec.ts b/packages/pubsub/test/utils.spec.ts index d8a4dafacb..c8c19fbd77 100644 --- a/packages/pubsub/test/utils.spec.ts +++ b/packages/pubsub/test/utils.spec.ts @@ -3,7 +3,7 @@ import * as PeerIdFactory from '@libp2p/peer-id-factory' import { expect } from 'aegir/chai' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import * as utils from '../src/utils.js' -import type { Message, PubSubRPCMessage } from '@libp2p/interface/pubsub' +import type { Message, PubSubRPCMessage } from '@libp2p/interface' describe('utils', () => { it('randomSeqno', () => { diff --git a/packages/pubsub/test/utils/index.ts b/packages/pubsub/test/utils/index.ts index fdd7e5b535..9085e808bf 100644 --- a/packages/pubsub/test/utils/index.ts +++ b/packages/pubsub/test/utils/index.ts @@ -2,11 +2,8 @@ import * as PeerIdFactory from '@libp2p/peer-id-factory' import { duplexPair } from 'it-pair/duplex' import { PubSubBaseProtocol } from '../../src/index.js' import { RPC } from '../message/rpc.js' -import type { Connection } from '@libp2p/interface/connection' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PublishResult, PubSubRPC, PubSubRPCMessage } from '@libp2p/interface/pubsub' -import type { Topology } from '@libp2p/interface/topology' -import type { IncomingStreamData, Registrar, StreamHandler, StreamHandlerRecord } from '@libp2p/interface-internal/registrar' +import type { Connection, PeerId, PublishResult, PubSubRPC, PubSubRPCMessage, Topology } from '@libp2p/interface' +import type { IncomingStreamData, Registrar, StreamHandler, StreamHandlerRecord } from '@libp2p/interface-internal' export const createPeerId = async (): Promise => { const peerId = await PeerIdFactory.createEd25519PeerId() diff --git a/packages/stream-multiplexer-mplex/src/index.ts b/packages/stream-multiplexer-mplex/src/index.ts index 7637daf026..17aaa54599 100644 --- a/packages/stream-multiplexer-mplex/src/index.ts +++ b/packages/stream-multiplexer-mplex/src/index.ts @@ -32,7 +32,7 @@ */ import { MplexStreamMuxer, type MplexComponents } from './mplex.js' -import type { StreamMuxer, StreamMuxerFactory, StreamMuxerInit } from '@libp2p/interface/stream-muxer' +import type { StreamMuxer, StreamMuxerFactory, StreamMuxerInit } from '@libp2p/interface' export interface MplexInit { /** diff --git a/packages/stream-multiplexer-mplex/src/mplex.ts b/packages/stream-multiplexer-mplex/src/mplex.ts index 90d9a9a6c3..04b351463a 100644 --- a/packages/stream-multiplexer-mplex/src/mplex.ts +++ b/packages/stream-multiplexer-mplex/src/mplex.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { closeSource } from '@libp2p/utils/close-source' import { pipe } from 'it-pipe' import { type Pushable, pushable } from 'it-pushable' @@ -9,9 +9,7 @@ import { encode } from './encode.js' import { MessageTypes, MessageTypeNames, type Message } from './message-types.js' import { createStream, type MplexStream } from './stream.js' import type { MplexInit } from './index.js' -import type { AbortOptions, ComponentLogger, Logger } from '@libp2p/interface' -import type { Stream } from '@libp2p/interface/connection' -import type { StreamMuxer, StreamMuxerInit } from '@libp2p/interface/stream-muxer' +import type { AbortOptions, ComponentLogger, Logger, Stream, StreamMuxer, StreamMuxerInit } from '@libp2p/interface' import type { Sink, Source } from 'it-stream-types' import type { Uint8ArrayList } from 'uint8arraylist' diff --git a/packages/transport-circuit-relay-v2/src/index.ts b/packages/transport-circuit-relay-v2/src/index.ts index d68b389903..0fcaad4638 100644 --- a/packages/transport-circuit-relay-v2/src/index.ts +++ b/packages/transport-circuit-relay-v2/src/index.ts @@ -35,7 +35,7 @@ */ import type { Limit } from './pb/index.js' -import type { TypedEventEmitter } from '@libp2p/interface/events' +import type { TypedEventEmitter } from '@libp2p/interface' import type { PeerMap } from '@libp2p/peer-collections' import type { Multiaddr } from '@multiformats/multiaddr' diff --git a/packages/transport-circuit-relay-v2/src/server/advert-service.ts b/packages/transport-circuit-relay-v2/src/server/advert-service.ts index 80a7d9aecc..4b8f55dddb 100644 --- a/packages/transport-circuit-relay-v2/src/server/advert-service.ts +++ b/packages/transport-circuit-relay-v2/src/server/advert-service.ts @@ -1,4 +1,4 @@ -import { TypedEventEmitter } from '@libp2p/interface/events' +import { TypedEventEmitter } from '@libp2p/interface' import pRetry from 'p-retry' import { DEFAULT_ADVERT_BOOT_DELAY, @@ -6,9 +6,7 @@ import { RELAY_RENDEZVOUS_NS } from '../constants.js' import { namespaceToCid } from '../utils.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { ContentRouting } from '@libp2p/interface/content-routing' -import type { Startable } from '@libp2p/interface/startable' +import type { ComponentLogger, Logger, ContentRouting, Startable } from '@libp2p/interface' export interface AdvertServiceInit { /** diff --git a/packages/transport-circuit-relay-v2/src/server/index.ts b/packages/transport-circuit-relay-v2/src/server/index.ts index 8271887ea3..36eb9fdfa8 100644 --- a/packages/transport-circuit-relay-v2/src/server/index.ts +++ b/packages/transport-circuit-relay-v2/src/server/index.ts @@ -1,4 +1,4 @@ -import { TypedEventEmitter, setMaxListeners } from '@libp2p/interface/events' +import { TypedEventEmitter, setMaxListeners } from '@libp2p/interface' import { peerIdFromBytes } from '@libp2p/peer-id' import { RecordEnvelope } from '@libp2p/peer-record' import { type Multiaddr, multiaddr } from '@multiformats/multiaddr' @@ -18,15 +18,8 @@ import { AdvertService, type AdvertServiceComponents, type AdvertServiceInit } f import { ReservationStore, type ReservationStoreInit } from './reservation-store.js' import { ReservationVoucherRecord } from './reservation-voucher.js' import type { CircuitRelayService, RelayReservation } from '../index.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { Connection, Stream } from '@libp2p/interface/connection' -import type { ConnectionGater } from '@libp2p/interface/connection-gater' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { Startable } from '@libp2p/interface/startable' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { IncomingStreamData, Registrar } from '@libp2p/interface-internal/registrar' +import type { ComponentLogger, Logger, Connection, Stream, ConnectionGater, PeerId, PeerStore, Startable } from '@libp2p/interface' +import type { AddressManager, ConnectionManager, IncomingStreamData, Registrar } from '@libp2p/interface-internal' import type { PeerMap } from '@libp2p/peer-collections' const isRelayAddr = (ma: Multiaddr): boolean => ma.protoCodes().includes(CIRCUIT_PROTO_CODE) diff --git a/packages/transport-circuit-relay-v2/src/server/reservation-store.ts b/packages/transport-circuit-relay-v2/src/server/reservation-store.ts index 0f5d3bf62e..f5873d838b 100644 --- a/packages/transport-circuit-relay-v2/src/server/reservation-store.ts +++ b/packages/transport-circuit-relay-v2/src/server/reservation-store.ts @@ -2,9 +2,7 @@ import { PeerMap } from '@libp2p/peer-collections' import { DEFAULT_DATA_LIMIT, DEFAULT_DURATION_LIMIT, DEFAULT_MAX_RESERVATION_CLEAR_INTERVAL, DEFAULT_MAX_RESERVATION_STORE_SIZE, DEFAULT_MAX_RESERVATION_TTL } from '../constants.js' import { type Limit, Status } from '../pb/index.js' import type { RelayReservation } from '../index.js' -import type { RecursivePartial } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Startable } from '@libp2p/interface/startable' +import type { RecursivePartial, PeerId, Startable } from '@libp2p/interface' import type { Multiaddr } from '@multiformats/multiaddr' export type ReservationStatus = Status.OK | Status.PERMISSION_DENIED | Status.RESERVATION_REFUSED diff --git a/packages/transport-circuit-relay-v2/src/server/reservation-voucher.ts b/packages/transport-circuit-relay-v2/src/server/reservation-voucher.ts index d32d3f6104..d547d0218d 100644 --- a/packages/transport-circuit-relay-v2/src/server/reservation-voucher.ts +++ b/packages/transport-circuit-relay-v2/src/server/reservation-voucher.ts @@ -1,6 +1,5 @@ import { ReservationVoucher } from '../pb/index.js' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Record } from '@libp2p/interface/record' +import type { PeerId, Record } from '@libp2p/interface' export interface ReservationVoucherOptions { relay: PeerId diff --git a/packages/transport-circuit-relay-v2/src/transport/discovery.ts b/packages/transport-circuit-relay-v2/src/transport/discovery.ts index f0b7347a08..6d4d1ae04b 100644 --- a/packages/transport-circuit-relay-v2/src/transport/discovery.ts +++ b/packages/transport-circuit-relay-v2/src/transport/discovery.ts @@ -1,17 +1,11 @@ -import { TypedEventEmitter } from '@libp2p/interface/events' +import { TypedEventEmitter } from '@libp2p/interface' import { RELAY_RENDEZVOUS_NS, RELAY_V2_HOP_CODEC } from '../constants.js' import { namespaceToCid } from '../utils.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { ContentRouting } from '@libp2p/interface/content-routing' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { Startable } from '@libp2p/interface/startable' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { ComponentLogger, Logger, ContentRouting, PeerId, PeerStore, Startable } from '@libp2p/interface' +import type { ConnectionManager, Registrar, TransportManager } from '@libp2p/interface-internal' export interface RelayDiscoveryEvents { 'relay:discover': CustomEvent diff --git a/packages/transport-circuit-relay-v2/src/transport/index.ts b/packages/transport-circuit-relay-v2/src/transport/index.ts index 9a1923cbf6..be25883e4b 100644 --- a/packages/transport-circuit-relay-v2/src/transport/index.ts +++ b/packages/transport-circuit-relay-v2/src/transport/index.ts @@ -1,16 +1,8 @@ -import { type Transport, type Upgrader } from '@libp2p/interface/transport' +import { type Transport, type Upgrader, type Libp2pEvents, type ComponentLogger, type ConnectionGater, type ContentRouting, type TypedEventTarget, type PeerId, type PeerStore } from '@libp2p/interface' import { type RelayDiscoveryComponents } from './discovery.js' import { type RelayStoreInit } from './reservation-store.js' import { CircuitRelayTransport } from './transport.js' -import type { Libp2pEvents, ComponentLogger } from '@libp2p/interface' -import type { ConnectionGater } from '@libp2p/interface/connection-gater' -import type { ContentRouting } from '@libp2p/interface/content-routing' -import type { TypedEventTarget } from '@libp2p/interface/events' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' +import type { AddressManager, ConnectionManager, Registrar } from '@libp2p/interface-internal' export interface CircuitRelayTransportComponents extends RelayDiscoveryComponents { peerId: PeerId diff --git a/packages/transport-circuit-relay-v2/src/transport/listener.ts b/packages/transport-circuit-relay-v2/src/transport/listener.ts index 91a85e72f3..7058131aac 100644 --- a/packages/transport-circuit-relay-v2/src/transport/listener.ts +++ b/packages/transport-circuit-relay-v2/src/transport/listener.ts @@ -1,12 +1,9 @@ -import { CodeError } from '@libp2p/interface/errors' -import { TypedEventEmitter } from '@libp2p/interface/events' +import { CodeError, TypedEventEmitter } from '@libp2p/interface' import { PeerMap } from '@libp2p/peer-collections' import { multiaddr } from '@multiformats/multiaddr' import type { ReservationStore } from './reservation-store.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Listener, ListenerEvents } from '@libp2p/interface/transport' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' +import type { ComponentLogger, Logger, PeerId, Listener, ListenerEvents } from '@libp2p/interface' +import type { ConnectionManager } from '@libp2p/interface-internal' import type { Multiaddr } from '@multiformats/multiaddr' export interface CircuitRelayTransportListenerComponents { diff --git a/packages/transport-circuit-relay-v2/src/transport/reservation-store.ts b/packages/transport-circuit-relay-v2/src/transport/reservation-store.ts index f65ce3c241..8516ca3696 100644 --- a/packages/transport-circuit-relay-v2/src/transport/reservation-store.ts +++ b/packages/transport-circuit-relay-v2/src/transport/reservation-store.ts @@ -1,4 +1,4 @@ -import { TypedEventEmitter, type TypedEventTarget } from '@libp2p/interface/events' +import { TypedEventEmitter, type TypedEventTarget, type Libp2pEvents, type AbortOptions, type ComponentLogger, type Logger, type Connection, type PeerId, type PeerStore, type Startable } from '@libp2p/interface' import { PeerMap } from '@libp2p/peer-collections' import { PeerJobQueue } from '@libp2p/utils/peer-job-queue' import { multiaddr } from '@multiformats/multiaddr' @@ -8,13 +8,7 @@ import { DEFAULT_RESERVATION_CONCURRENCY, RELAY_TAG, RELAY_V2_HOP_CODEC } from ' import { HopMessage, Status } from '../pb/index.js' import { getExpirationMilliseconds } from '../utils.js' import type { Reservation } from '../pb/index.js' -import type { Libp2pEvents, AbortOptions, ComponentLogger, Logger } from '@libp2p/interface' -import type { Connection } from '@libp2p/interface/connection' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { Startable } from '@libp2p/interface/startable' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { ConnectionManager, TransportManager } from '@libp2p/interface-internal' // allow refreshing a relay reservation if it will expire in the next 10 minutes const REFRESH_WINDOW = (60 * 1000) * 10 diff --git a/packages/transport-circuit-relay-v2/src/transport/transport.ts b/packages/transport-circuit-relay-v2/src/transport/transport.ts index 61b511de29..0eb782b2f3 100644 --- a/packages/transport-circuit-relay-v2/src/transport/transport.ts +++ b/packages/transport-circuit-relay-v2/src/transport/transport.ts @@ -1,5 +1,5 @@ -import { CodeError } from '@libp2p/interface/errors' -import { symbol, type Transport, type CreateListenerOptions, type Listener, type Upgrader } from '@libp2p/interface/transport' +import { CodeError } from '@libp2p/interface' +import { transportSymbol, type Transport, type CreateListenerOptions, type Listener, type Upgrader, type AbortOptions, type ComponentLogger, type Logger, type Connection, type Stream, type ConnectionGater, type PeerId, type PeerStore } from '@libp2p/interface' import { peerIdFromBytes, peerIdFromString } from '@libp2p/peer-id' import { streamToMaConnection } from '@libp2p/utils/stream-to-ma-conn' import * as mafmt from '@multiformats/mafmt' @@ -11,15 +11,7 @@ import { RelayDiscovery } from './discovery.js' import { createListener } from './listener.js' import { ReservationStore } from './reservation-store.js' import type { CircuitRelayTransportComponents, CircuitRelayTransportInit } from './index.js' -import type { AbortOptions, ComponentLogger, Logger } from '@libp2p/interface' -import type { Connection, Stream } from '@libp2p/interface/connection' -import type { ConnectionGater } from '@libp2p/interface/connection-gater' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { IncomingStreamData, Registrar } from '@libp2p/interface-internal/registrar' -import type { TransportManager } from '@libp2p/interface-internal/src/transport-manager/index.js' +import type { AddressManager, ConnectionManager, IncomingStreamData, Registrar, TransportManager } from '@libp2p/interface-internal' import type { Multiaddr } from '@multiformats/multiaddr' const isValidStop = (request: StopMessage): request is Required => { @@ -136,7 +128,7 @@ export class CircuitRelayTransport implements Transport { this.started = false } - readonly [symbol] = true + readonly [transportSymbol] = true readonly [Symbol.toStringTag] = 'libp2p/circuit-relay-v2' diff --git a/packages/transport-circuit-relay-v2/src/utils.ts b/packages/transport-circuit-relay-v2/src/utils.ts index 4a7848db7c..5049de7b34 100644 --- a/packages/transport-circuit-relay-v2/src/utils.ts +++ b/packages/transport-circuit-relay-v2/src/utils.ts @@ -1,11 +1,10 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { anySignal } from 'any-signal' import { CID } from 'multiformats/cid' import { sha256 } from 'multiformats/hashes/sha2' import { ERR_TRANSFER_LIMIT_EXCEEDED } from './constants.js' import type { Limit } from './pb/index.js' -import type { LoggerOptions } from '@libp2p/interface' -import type { Stream } from '@libp2p/interface/connection' +import type { LoggerOptions, Stream } from '@libp2p/interface' import type { Source } from 'it-stream-types' import type { Uint8ArrayList } from 'uint8arraylist' diff --git a/packages/transport-circuit-relay-v2/test/hop.spec.ts b/packages/transport-circuit-relay-v2/test/hop.spec.ts index 5407a9c296..dd2aef249d 100644 --- a/packages/transport-circuit-relay-v2/test/hop.spec.ts +++ b/packages/transport-circuit-relay-v2/test/hop.spec.ts @@ -1,7 +1,7 @@ /* eslint-disable max-nested-callbacks */ -import { TypedEventEmitter, type TypedEventTarget } from '@libp2p/interface/events' -import { isStartable } from '@libp2p/interface/startable' +import { TypedEventEmitter, type TypedEventTarget, type ComponentLogger, type Libp2pEvents, type Connection, type Stream, type ConnectionGater, type ContentRouting, type PeerId, type PeerStore, type Transport, type Upgrader } from '@libp2p/interface' +import { isStartable } from '@libp2p/interface' import { mockRegistrar, mockUpgrader, mockNetwork, mockConnectionManager, mockConnectionGater } from '@libp2p/interface-compliance-tests/mocks' import { defaultLogger } from '@libp2p/logger' import { PeerMap } from '@libp2p/peer-collections' @@ -15,17 +15,7 @@ import { DEFAULT_MAX_RESERVATION_STORE_SIZE, RELAY_SOURCE_TAG, RELAY_V2_HOP_CODE import { circuitRelayServer, type CircuitRelayService, circuitRelayTransport } from '../src/index.js' import { HopMessage, Status } from '../src/pb/index.js' import type { CircuitRelayServerInit } from '../src/server/index.js' -import type { ComponentLogger, Libp2pEvents } from '@libp2p/interface' -import type { Connection, Stream } from '@libp2p/interface/connection' -import type { ConnectionGater } from '@libp2p/interface/connection-gater' -import type { ContentRouting } from '@libp2p/interface/content-routing' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { Transport, Upgrader } from '@libp2p/interface/transport' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar } from '@libp2p/interface-internal/registrar' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { AddressManager, ConnectionManager, Registrar, TransportManager } from '@libp2p/interface-internal' export function matchPeerId (peerId: PeerId): Sinon.SinonMatcher { return Sinon.match(p => p.toString() === peerId.toString()) diff --git a/packages/transport-circuit-relay-v2/test/stop.spec.ts b/packages/transport-circuit-relay-v2/test/stop.spec.ts index 306cd67e46..57a9926754 100644 --- a/packages/transport-circuit-relay-v2/test/stop.spec.ts +++ b/packages/transport-circuit-relay-v2/test/stop.spec.ts @@ -1,7 +1,7 @@ /* eslint-env mocha */ -import { TypedEventEmitter, type TypedEventTarget } from '@libp2p/interface/events' -import { isStartable } from '@libp2p/interface/startable' +import { TypedEventEmitter, type TypedEventTarget, type ComponentLogger, type Libp2pEvents, type Connection, type Stream, type ConnectionGater, type ContentRouting, type PeerId, type PeerStore, type Upgrader } from '@libp2p/interface' +import { isStartable } from '@libp2p/interface' import { mockStream } from '@libp2p/interface-compliance-tests/mocks' import { defaultLogger } from '@libp2p/logger' import { createEd25519PeerId } from '@libp2p/peer-id-factory' @@ -14,17 +14,7 @@ import Sinon from 'sinon' import { stubInterface, type StubbedInstance } from 'sinon-ts' import { Status, StopMessage } from '../src/pb/index.js' import { CircuitRelayTransport } from '../src/transport/transport.js' -import type { ComponentLogger, Libp2pEvents } from '@libp2p/interface' -import type { Connection, Stream } from '@libp2p/interface/connection' -import type { ConnectionGater } from '@libp2p/interface/connection-gater' -import type { ContentRouting } from '@libp2p/interface/content-routing' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerStore } from '@libp2p/interface/peer-store' -import type { Upgrader } from '@libp2p/interface/transport' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { Registrar, StreamHandler } from '@libp2p/interface-internal/registrar' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { AddressManager, ConnectionManager, Registrar, StreamHandler, TransportManager } from '@libp2p/interface-internal' interface StubbedCircuitRelayTransportComponents { peerId: PeerId diff --git a/packages/transport-circuit-relay-v2/test/utils.ts b/packages/transport-circuit-relay-v2/test/utils.ts index e0db1f8091..c6b021a96c 100644 --- a/packages/transport-circuit-relay-v2/test/utils.ts +++ b/packages/transport-circuit-relay-v2/test/utils.ts @@ -2,11 +2,8 @@ import { peerIdFromString } from '@libp2p/peer-id' import pWaitFor from 'p-wait-for' import { toString as uint8ArrayToString } from 'uint8arrays/to-string' import { RELAY_V2_HOP_CODEC } from '../../../packages/transport-circuit-relay-v2/src/constants.js' -import type { Libp2p, AbortOptions } from '@libp2p/interface' -import type { ContentRouting } from '@libp2p/interface/content-routing' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { PeerInfo } from '@libp2p/interface/peer-info' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' +import type { Libp2p, AbortOptions, ContentRouting, PeerId, PeerInfo } from '@libp2p/interface' +import type { AddressManager } from '@libp2p/interface-internal' import type { Multiaddr } from '@multiformats/multiaddr' import type { CID, Version } from 'multiformats' import type { Options as PWaitForOptions } from 'p-wait-for' diff --git a/packages/transport-tcp/src/index.ts b/packages/transport-tcp/src/index.ts index 65dd7ffdc2..1e400773c4 100644 --- a/packages/transport-tcp/src/index.ts +++ b/packages/transport-tcp/src/index.ts @@ -55,16 +55,13 @@ */ import net from 'net' -import { AbortError, CodeError } from '@libp2p/interface/errors' -import { type CreateListenerOptions, type DialOptions, symbol, type Transport, type Listener } from '@libp2p/interface/transport' +import { AbortError, CodeError, transportSymbol } from '@libp2p/interface' import * as mafmt from '@multiformats/mafmt' import { CODE_CIRCUIT, CODE_P2P, CODE_UNIX } from './constants.js' import { type CloseServerOnMaxConnectionsOpts, TCPListener } from './listener.js' import { toMultiaddrConnection } from './socket-to-conn.js' import { multiaddrToNetConfig } from './utils.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { Connection } from '@libp2p/interface/connection' -import type { CounterGroup, Metrics } from '@libp2p/interface/metrics' +import type { ComponentLogger, Logger, Connection, CounterGroup, Metrics, CreateListenerOptions, DialOptions, Transport, Listener } from '@libp2p/interface' import type { AbortOptions, Multiaddr } from '@multiformats/multiaddr' import type { Socket, IpcSocketConnectOpts, TcpSocketConnectOpts } from 'net' @@ -176,7 +173,7 @@ class TCP implements Transport { } } - readonly [symbol] = true + readonly [transportSymbol] = true readonly [Symbol.toStringTag] = '@libp2p/tcp' diff --git a/packages/transport-tcp/src/listener.ts b/packages/transport-tcp/src/listener.ts index 40ffcaf874..0903cf878c 100644 --- a/packages/transport-tcp/src/listener.ts +++ b/packages/transport-tcp/src/listener.ts @@ -1,6 +1,5 @@ import net from 'net' -import { CodeError } from '@libp2p/interface/errors' -import { TypedEventEmitter, CustomEvent } from '@libp2p/interface/events' +import { CodeError, TypedEventEmitter, CustomEvent } from '@libp2p/interface' import { CODE_P2P } from './constants.js' import { toMultiaddrConnection } from './socket-to-conn.js' import { @@ -9,10 +8,7 @@ import { type NetConfig } from './utils.js' import type { TCPCreateListenerOptions } from './index.js' -import type { ComponentLogger, Logger, LoggerOptions } from '@libp2p/interface' -import type { MultiaddrConnection, Connection } from '@libp2p/interface/connection' -import type { CounterGroup, MetricGroup, Metrics } from '@libp2p/interface/metrics' -import type { Listener, ListenerEvents, Upgrader } from '@libp2p/interface/transport' +import type { ComponentLogger, Logger, LoggerOptions, MultiaddrConnection, Connection, CounterGroup, MetricGroup, Metrics, Listener, ListenerEvents, Upgrader } from '@libp2p/interface' import type { Multiaddr } from '@multiformats/multiaddr' /** diff --git a/packages/transport-tcp/src/socket-to-conn.ts b/packages/transport-tcp/src/socket-to-conn.ts index a75711f909..e5e86bd9ba 100644 --- a/packages/transport-tcp/src/socket-to-conn.ts +++ b/packages/transport-tcp/src/socket-to-conn.ts @@ -1,12 +1,10 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { ipPortToMultiaddr as toMultiaddr } from '@libp2p/utils/ip-port-to-multiaddr' // @ts-expect-error no types import toIterable from 'stream-to-it' import { CLOSE_TIMEOUT, SOCKET_TIMEOUT } from './constants.js' import { multiaddrToNetConfig } from './utils.js' -import type { ComponentLogger } from '@libp2p/interface' -import type { MultiaddrConnection } from '@libp2p/interface/connection' -import type { CounterGroup } from '@libp2p/interface/metrics' +import type { ComponentLogger, MultiaddrConnection, CounterGroup } from '@libp2p/interface' import type { AbortOptions, Multiaddr } from '@multiformats/multiaddr' import type { Socket } from 'net' diff --git a/packages/transport-tcp/test/connection-limits.spec.ts b/packages/transport-tcp/test/connection-limits.spec.ts index c802e91d27..a889c7cbe4 100644 --- a/packages/transport-tcp/test/connection-limits.spec.ts +++ b/packages/transport-tcp/test/connection-limits.spec.ts @@ -1,6 +1,6 @@ import net from 'node:net' import { promisify } from 'util' -import { TypedEventEmitter } from '@libp2p/interface/events' +import { TypedEventEmitter } from '@libp2p/interface' import { mockUpgrader } from '@libp2p/interface-compliance-tests/mocks' import { defaultLogger } from '@libp2p/logger' import { multiaddr } from '@multiformats/multiaddr' diff --git a/packages/transport-tcp/test/connection.spec.ts b/packages/transport-tcp/test/connection.spec.ts index aa2830a66b..06174b685c 100644 --- a/packages/transport-tcp/test/connection.spec.ts +++ b/packages/transport-tcp/test/connection.spec.ts @@ -1,11 +1,10 @@ -import { TypedEventEmitter } from '@libp2p/interface/events' +import { TypedEventEmitter } from '@libp2p/interface' import { mockUpgrader } from '@libp2p/interface-compliance-tests/mocks' import { defaultLogger } from '@libp2p/logger' import { multiaddr } from '@multiformats/multiaddr' import { expect } from 'aegir/chai' import { tcp } from '../src/index.js' -import type { Connection } from '@libp2p/interface/connection' -import type { Transport, Upgrader } from '@libp2p/interface/transport' +import type { Connection, Transport, Upgrader } from '@libp2p/interface' describe('valid localAddr and remoteAddr', () => { let transport: Transport diff --git a/packages/transport-tcp/test/filter.spec.ts b/packages/transport-tcp/test/filter.spec.ts index 8b094c1d01..8bf6324450 100644 --- a/packages/transport-tcp/test/filter.spec.ts +++ b/packages/transport-tcp/test/filter.spec.ts @@ -2,7 +2,7 @@ import { defaultLogger } from '@libp2p/logger' import { multiaddr } from '@multiformats/multiaddr' import { expect } from 'aegir/chai' import { tcp } from '../src/index.js' -import type { Transport } from '@libp2p/interface/transport' +import type { Transport } from '@libp2p/interface' describe('filter addrs', () => { const base = '/ip4/127.0.0.1' diff --git a/packages/transport-tcp/test/listen-dial.spec.ts b/packages/transport-tcp/test/listen-dial.spec.ts index f8081246b7..b165267463 100644 --- a/packages/transport-tcp/test/listen-dial.spec.ts +++ b/packages/transport-tcp/test/listen-dial.spec.ts @@ -1,6 +1,6 @@ import os from 'os' import path from 'path' -import { TypedEventEmitter } from '@libp2p/interface/events' +import { TypedEventEmitter } from '@libp2p/interface' import { mockRegistrar, mockUpgrader } from '@libp2p/interface-compliance-tests/mocks' import { defaultLogger } from '@libp2p/logger' import { multiaddr } from '@multiformats/multiaddr' @@ -10,8 +10,7 @@ import { pipe } from 'it-pipe' import pDefer from 'p-defer' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { tcp } from '../src/index.js' -import type { MultiaddrConnection } from '@libp2p/interface/connection' -import type { Transport, Upgrader } from '@libp2p/interface/transport' +import type { MultiaddrConnection, Transport, Upgrader } from '@libp2p/interface' const isCI = process.env.CI diff --git a/packages/transport-tcp/test/max-connections.spec.ts b/packages/transport-tcp/test/max-connections.spec.ts index ee0b96b3fb..dc3339061d 100644 --- a/packages/transport-tcp/test/max-connections.spec.ts +++ b/packages/transport-tcp/test/max-connections.spec.ts @@ -1,6 +1,6 @@ import net from 'node:net' import { promisify } from 'node:util' -import { TypedEventEmitter } from '@libp2p/interface/events' +import { TypedEventEmitter } from '@libp2p/interface' import { mockUpgrader } from '@libp2p/interface-compliance-tests/mocks' import { defaultLogger } from '@libp2p/logger' import { multiaddr } from '@multiformats/multiaddr' diff --git a/packages/transport-webrtc/package.json b/packages/transport-webrtc/package.json index 4653567a04..aac06f962d 100644 --- a/packages/transport-webrtc/package.json +++ b/packages/transport-webrtc/package.json @@ -49,7 +49,7 @@ "dep-check": "aegir dep-check" }, "dependencies": { - "@chainsafe/libp2p-noise": "^13.0.0", + "@chainsafe/libp2p-noise": "^14.0.0", "@libp2p/interface": "^1.0.0", "@libp2p/interface-internal": "^0.1.10", "@libp2p/logger": "^4.0.0", @@ -78,7 +78,7 @@ "uint8arrays": "^4.0.6" }, "devDependencies": { - "@chainsafe/libp2p-yamux": "^5.0.0", + "@chainsafe/libp2p-yamux": "^6.0.1", "@libp2p/circuit-relay-v2": "^1.0.0", "@libp2p/interface-compliance-tests": "^5.0.0", "@libp2p/peer-id-factory": "^3.0.9", diff --git a/packages/transport-webrtc/src/error.ts b/packages/transport-webrtc/src/error.ts index 4c6d3b42df..c501f0ee0b 100644 --- a/packages/transport-webrtc/src/error.ts +++ b/packages/transport-webrtc/src/error.ts @@ -1,5 +1,5 @@ -import { CodeError } from '@libp2p/interface/errors' -import type { Direction } from '@libp2p/interface/connection' +import { CodeError } from '@libp2p/interface' +import type { Direction } from '@libp2p/interface' export enum codes { ERR_ALREADY_ABORTED = 'ERR_ALREADY_ABORTED', diff --git a/packages/transport-webrtc/src/index.ts b/packages/transport-webrtc/src/index.ts index 4a028fff2b..7136704cf8 100644 --- a/packages/transport-webrtc/src/index.ts +++ b/packages/transport-webrtc/src/index.ts @@ -32,7 +32,7 @@ import { WebRTCTransport } from './private-to-private/transport.js' import { WebRTCDirectTransport, type WebRTCTransportDirectInit, type WebRTCDirectTransportComponents } from './private-to-public/transport.js' import type { WebRTCTransportComponents, WebRTCTransportInit } from './private-to-private/transport.js' -import type { Transport } from '@libp2p/interface/transport' +import type { Transport } from '@libp2p/interface' export interface DataChannelOptions { /** diff --git a/packages/transport-webrtc/src/maconn.ts b/packages/transport-webrtc/src/maconn.ts index 0921284a4f..0e2c20c011 100644 --- a/packages/transport-webrtc/src/maconn.ts +++ b/packages/transport-webrtc/src/maconn.ts @@ -1,7 +1,5 @@ import { nopSink, nopSource } from './util.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { MultiaddrConnection, MultiaddrConnectionTimeline } from '@libp2p/interface/connection' -import type { CounterGroup } from '@libp2p/interface/metrics' +import type { ComponentLogger, Logger, MultiaddrConnection, MultiaddrConnectionTimeline, CounterGroup } from '@libp2p/interface' import type { AbortOptions, Multiaddr } from '@multiformats/multiaddr' import type { Source, Sink } from 'it-stream-types' import type { Uint8ArrayList } from 'uint8arraylist' diff --git a/packages/transport-webrtc/src/muxer.ts b/packages/transport-webrtc/src/muxer.ts index 09668c8178..63dccd16ff 100644 --- a/packages/transport-webrtc/src/muxer.ts +++ b/packages/transport-webrtc/src/muxer.ts @@ -1,10 +1,7 @@ import { createStream } from './stream.js' import { drainAndClose, nopSink, nopSource } from './util.js' import type { DataChannelOptions } from './index.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { Stream } from '@libp2p/interface/connection' -import type { CounterGroup } from '@libp2p/interface/metrics' -import type { StreamMuxer, StreamMuxerFactory, StreamMuxerInit } from '@libp2p/interface/stream-muxer' +import type { ComponentLogger, Logger, Stream, CounterGroup, StreamMuxer, StreamMuxerFactory, StreamMuxerInit } from '@libp2p/interface' import type { AbortOptions } from '@multiformats/multiaddr' import type { Source, Sink } from 'it-stream-types' import type { Uint8ArrayList } from 'uint8arraylist' diff --git a/packages/transport-webrtc/src/private-to-private/initiate-connection.ts b/packages/transport-webrtc/src/private-to-private/initiate-connection.ts index 04e532cea0..5dfa2bca52 100644 --- a/packages/transport-webrtc/src/private-to-private/initiate-connection.ts +++ b/packages/transport-webrtc/src/private-to-private/initiate-connection.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { peerIdFromString } from '@libp2p/peer-id' import { pbStream } from 'it-protobuf-stream' import pDefer, { type DeferredPromise } from 'p-defer' @@ -7,11 +7,8 @@ import { Message } from './pb/message.js' import { SIGNALING_PROTO_ID, splitAddr, type WebRTCTransportMetrics } from './transport.js' import { readCandidatesUntilConnected, resolveOnConnected } from './util.js' import type { DataChannelOptions } from '../index.js' -import type { LoggerOptions } from '@libp2p/interface' -import type { Connection } from '@libp2p/interface/connection' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { IncomingStreamData } from '@libp2p/interface-internal/registrar' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { LoggerOptions, Connection } from '@libp2p/interface' +import type { ConnectionManager, IncomingStreamData, TransportManager } from '@libp2p/interface-internal' import type { Multiaddr } from '@multiformats/multiaddr' export interface IncomingStreamOpts extends IncomingStreamData { diff --git a/packages/transport-webrtc/src/private-to-private/listener.ts b/packages/transport-webrtc/src/private-to-private/listener.ts index 6a73e9e14a..918f4e488b 100644 --- a/packages/transport-webrtc/src/private-to-private/listener.ts +++ b/packages/transport-webrtc/src/private-to-private/listener.ts @@ -1,8 +1,7 @@ -import { TypedEventEmitter } from '@libp2p/interface/events' +import { TypedEventEmitter } from '@libp2p/interface' import { Circuit } from '@multiformats/mafmt' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { ListenerEvents, Listener } from '@libp2p/interface/transport' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { PeerId, ListenerEvents, Listener } from '@libp2p/interface' +import type { TransportManager } from '@libp2p/interface-internal' import type { Multiaddr } from '@multiformats/multiaddr' export interface WebRTCPeerListenerComponents { diff --git a/packages/transport-webrtc/src/private-to-private/signaling-stream-handler.ts b/packages/transport-webrtc/src/private-to-private/signaling-stream-handler.ts index b6374656f9..5ba751521f 100644 --- a/packages/transport-webrtc/src/private-to-private/signaling-stream-handler.ts +++ b/packages/transport-webrtc/src/private-to-private/signaling-stream-handler.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { multiaddr, type Multiaddr } from '@multiformats/multiaddr' import { pbStream } from 'it-protobuf-stream' import pDefer, { type DeferredPromise } from 'p-defer' @@ -6,7 +6,7 @@ import { type RTCPeerConnection, RTCSessionDescription } from '../webrtc/index.j import { Message } from './pb/message.js' import { readCandidatesUntilConnected, resolveOnConnected } from './util.js' import type { Logger } from '@libp2p/interface' -import type { IncomingStreamData } from '@libp2p/interface-internal/registrar' +import type { IncomingStreamData } from '@libp2p/interface-internal' export interface IncomingStreamOpts extends IncomingStreamData { peerConnection: RTCPeerConnection diff --git a/packages/transport-webrtc/src/private-to-private/transport.ts b/packages/transport-webrtc/src/private-to-private/transport.ts index 1d137ef268..315937cebd 100644 --- a/packages/transport-webrtc/src/private-to-private/transport.ts +++ b/packages/transport-webrtc/src/private-to-private/transport.ts @@ -1,5 +1,5 @@ -import { CodeError } from '@libp2p/interface/errors' -import { type CreateListenerOptions, type DialOptions, symbol, type Transport, type Listener, type Upgrader } from '@libp2p/interface/transport' +import { CodeError } from '@libp2p/interface' +import { type CreateListenerOptions, type DialOptions, transportSymbol, type Transport, type Listener, type Upgrader, type ComponentLogger, type Logger, type Connection, type PeerId, type CounterGroup, type Metrics, type Startable } from '@libp2p/interface' import { peerIdFromString } from '@libp2p/peer-id' import { multiaddr, type Multiaddr } from '@multiformats/multiaddr' import { WebRTC } from '@multiformats/multiaddr-matcher' @@ -11,14 +11,7 @@ import { initiateConnection } from './initiate-connection.js' import { WebRTCPeerListener } from './listener.js' import { handleIncomingStream } from './signaling-stream-handler.js' import type { DataChannelOptions } from '../index.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { Connection } from '@libp2p/interface/connection' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { CounterGroup, Metrics } from '@libp2p/interface/src/metrics/index.js' -import type { Startable } from '@libp2p/interface/startable' -import type { IncomingStreamData, Registrar } from '@libp2p/interface-internal/registrar' -import type { ConnectionManager } from '@libp2p/interface-internal/src/connection-manager/index.js' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { IncomingStreamData, Registrar, ConnectionManager, TransportManager } from '@libp2p/interface-internal' const WEBRTC_TRANSPORT = '/webrtc' const CIRCUIT_RELAY_TRANSPORT = '/p2p-circuit' @@ -105,7 +98,7 @@ export class WebRTCTransport implements Transport, Startable { readonly [Symbol.toStringTag] = '@libp2p/webrtc' - readonly [symbol] = true + readonly [transportSymbol] = true filter (multiaddrs: Multiaddr[]): Multiaddr[] { return multiaddrs.filter(WebRTC.exactMatch) diff --git a/packages/transport-webrtc/src/private-to-private/util.ts b/packages/transport-webrtc/src/private-to-private/util.ts index 62cc40a875..ff7bd5eb17 100644 --- a/packages/transport-webrtc/src/private-to-private/util.ts +++ b/packages/transport-webrtc/src/private-to-private/util.ts @@ -1,11 +1,10 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { closeSource } from '@libp2p/utils/close-source' import { anySignal } from 'any-signal' import { isFirefox } from '../util.js' import { RTCIceCandidate } from '../webrtc/index.js' import { Message } from './pb/message.js' -import type { LoggerOptions } from '@libp2p/interface' -import type { Stream } from '@libp2p/interface/connection' +import type { LoggerOptions, Stream } from '@libp2p/interface' import type { AbortOptions, MessageStream } from 'it-protobuf-stream' import type { DeferredPromise } from 'p-defer' diff --git a/packages/transport-webrtc/src/private-to-public/options.ts b/packages/transport-webrtc/src/private-to-public/options.ts index d30bc9f304..c9b3b1361d 100644 --- a/packages/transport-webrtc/src/private-to-public/options.ts +++ b/packages/transport-webrtc/src/private-to-public/options.ts @@ -1,4 +1,4 @@ -import type { CreateListenerOptions, DialOptions } from '@libp2p/interface/transport' +import type { CreateListenerOptions, DialOptions } from '@libp2p/interface' export interface WebRTCListenerOptions extends CreateListenerOptions {} export interface WebRTCDialOptions extends DialOptions {} diff --git a/packages/transport-webrtc/src/private-to-public/transport.ts b/packages/transport-webrtc/src/private-to-public/transport.ts index cc3e4f6dd5..ddfab7e878 100644 --- a/packages/transport-webrtc/src/private-to-public/transport.ts +++ b/packages/transport-webrtc/src/private-to-public/transport.ts @@ -1,5 +1,5 @@ -import { noise as Noise } from '@chainsafe/libp2p-noise' -import { type CreateListenerOptions, symbol, type Transport, type Listener } from '@libp2p/interface/transport' +import { noise } from '@chainsafe/libp2p-noise' +import { type CreateListenerOptions, transportSymbol, type Transport, type Listener, type ComponentLogger, type Logger, type Connection, type CounterGroup, type Metrics, type PeerId } from '@libp2p/interface' import * as p from '@libp2p/peer-id' import { protocols } from '@multiformats/multiaddr' import { WebRTCDirect } from '@multiformats/multiaddr-matcher' @@ -16,10 +16,6 @@ import * as sdp from './sdp.js' import { genUfrag } from './util.js' import type { WebRTCDialOptions } from './options.js' import type { DataChannelOptions } from '../index.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { Connection } from '@libp2p/interface/connection' -import type { CounterGroup, Metrics } from '@libp2p/interface/metrics' -import type { PeerId } from '@libp2p/interface/peer-id' import type { Multiaddr } from '@multiformats/multiaddr' /** @@ -108,7 +104,7 @@ export class WebRTCDirectTransport implements Transport { /** * Symbol.for('@libp2p/transport') */ - readonly [symbol] = true + readonly [transportSymbol] = true /** * Connect to a peer using a multiaddr @@ -193,7 +189,7 @@ export class WebRTCDirectTransport implements Transport { // Since we use the default crypto interface and do not use a static key or early data, // we pass in undefined for these parameters. - const noise = Noise({ prologueBytes: fingerprintsPrologue })() + const connectionEncrypter = noise({ prologueBytes: fingerprintsPrologue })(this.components) const wrappedChannel = createStream({ channel: handshakeDataChannel, @@ -254,7 +250,7 @@ export class WebRTCDirectTransport implements Transport { // For outbound connections, the remote is expected to start the noise handshake. // Therefore, we need to secure an inbound noise connection from the remote. - await noise.secureInbound(myPeerId, wrappedDuplex, theirPeerId) + await connectionEncrypter.secureInbound(myPeerId, wrappedDuplex, theirPeerId) return await options.upgrader.upgradeOutbound(maConn, { skipProtection: true, skipEncryption: true, muxerFactory }) } catch (err) { diff --git a/packages/transport-webrtc/src/stream.ts b/packages/transport-webrtc/src/stream.ts index 8417f9109e..d875b2be40 100644 --- a/packages/transport-webrtc/src/stream.ts +++ b/packages/transport-webrtc/src/stream.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { AbstractStream, type AbstractStreamInit } from '@libp2p/utils/abstract-stream' import * as lengthPrefixed from 'it-length-prefixed' import { type Pushable, pushable } from 'it-pushable' @@ -9,8 +9,7 @@ import { raceSignal } from 'race-signal' import { Uint8ArrayList } from 'uint8arraylist' import { Message } from './pb/message.js' import type { DataChannelOptions } from './index.js' -import type { AbortOptions, ComponentLogger } from '@libp2p/interface' -import type { Direction } from '@libp2p/interface/connection' +import type { AbortOptions, ComponentLogger, Direction } from '@libp2p/interface' import type { DeferredPromise } from 'p-defer' export interface WebRTCStreamInit extends AbstractStreamInit, DataChannelOptions { diff --git a/packages/transport-webrtc/test/basics.spec.ts b/packages/transport-webrtc/test/basics.spec.ts index a74384a2a1..c54488a7af 100644 --- a/packages/transport-webrtc/test/basics.spec.ts +++ b/packages/transport-webrtc/test/basics.spec.ts @@ -17,9 +17,7 @@ import { createLibp2p } from 'libp2p' import pDefer from 'p-defer' import pRetry from 'p-retry' import { webRTC } from '../src/index.js' -import type { Libp2p } from '@libp2p/interface' -import type { Connection, Stream } from '@libp2p/interface/connection' -import type { StreamHandler } from '@libp2p/interface/stream-handler' +import type { Libp2p, Connection, Stream, StreamHandler } from '@libp2p/interface' async function createNode (): Promise { return createLibp2p({ diff --git a/packages/transport-webrtc/test/listener.spec.ts b/packages/transport-webrtc/test/listener.spec.ts index 7280feadc3..ec737f54f1 100644 --- a/packages/transport-webrtc/test/listener.spec.ts +++ b/packages/transport-webrtc/test/listener.spec.ts @@ -4,8 +4,8 @@ import { expect } from 'aegir/chai' import Sinon from 'sinon' import { stubInterface } from 'sinon-ts' import { WebRTCPeerListener } from '../src/private-to-private/listener.js' -import type { Listener } from '@libp2p/interface/transport' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { Listener } from '@libp2p/interface' +import type { TransportManager } from '@libp2p/interface-internal' describe('webrtc private-to-private listener', () => { it('should only return relay addresses as webrtc listen addresses', async () => { diff --git a/packages/transport-webrtc/test/maconn.spec.ts b/packages/transport-webrtc/test/maconn.spec.ts index 81d575065d..0328800521 100644 --- a/packages/transport-webrtc/test/maconn.spec.ts +++ b/packages/transport-webrtc/test/maconn.spec.ts @@ -6,7 +6,7 @@ import { expect } from 'aegir/chai' import { stubObject } from 'sinon-ts' import { WebRTCMultiaddrConnection } from '../src/maconn.js' import { RTCPeerConnection } from '../src/webrtc/index.js' -import type { CounterGroup } from '@libp2p/interface/metrics' +import type { CounterGroup } from '@libp2p/interface' describe('Multiaddr Connection', () => { it('can open and close', async () => { diff --git a/packages/transport-webrtc/test/peer.spec.ts b/packages/transport-webrtc/test/peer.spec.ts index 451e14bf50..3382863c66 100644 --- a/packages/transport-webrtc/test/peer.spec.ts +++ b/packages/transport-webrtc/test/peer.spec.ts @@ -14,10 +14,8 @@ import { Message } from '../src/private-to-private/pb/message.js' import { handleIncomingStream } from '../src/private-to-private/signaling-stream-handler.js' import { SIGNALING_PROTO_ID, WebRTCTransport, splitAddr } from '../src/private-to-private/transport.js' import { RTCPeerConnection, RTCSessionDescription } from '../src/webrtc/index.js' -import type { Logger } from '@libp2p/interface' -import type { Connection, Stream } from '@libp2p/interface/connection' -import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { Logger, Connection, Stream } from '@libp2p/interface' +import type { ConnectionManager, TransportManager } from '@libp2p/interface-internal' const browser = detect() diff --git a/packages/transport-webrtc/test/stream.spec.ts b/packages/transport-webrtc/test/stream.spec.ts index a7f09eb109..b9c8735ea9 100644 --- a/packages/transport-webrtc/test/stream.spec.ts +++ b/packages/transport-webrtc/test/stream.spec.ts @@ -13,7 +13,7 @@ import { Message } from '../src/pb/message.js' import { MAX_BUFFERED_AMOUNT, MAX_MESSAGE_SIZE, PROTOBUF_OVERHEAD, type WebRTCStream, createStream } from '../src/stream.js' import { RTCPeerConnection } from '../src/webrtc/index.js' import { mockDataChannel, receiveFinAck } from './util.js' -import type { Stream } from '@libp2p/interface/connection' +import type { Stream } from '@libp2p/interface' describe('Max message size', () => { it(`sends messages smaller or equal to ${MAX_MESSAGE_SIZE} bytes in one`, async () => { diff --git a/packages/transport-webrtc/test/transport.spec.ts b/packages/transport-webrtc/test/transport.spec.ts index c1adff7e9c..1b74841620 100644 --- a/packages/transport-webrtc/test/transport.spec.ts +++ b/packages/transport-webrtc/test/transport.spec.ts @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/no-floating-promises */ -import { type CreateListenerOptions, symbol } from '@libp2p/interface/transport' +import { type CreateListenerOptions, transportSymbol, type Metrics } from '@libp2p/interface' import { mockMetrics, mockUpgrader } from '@libp2p/interface-compliance-tests/mocks' import { defaultLogger } from '@libp2p/logger' import { createEd25519PeerId } from '@libp2p/peer-id-factory' @@ -9,7 +9,6 @@ import { expect } from 'aegir/chai' import { UnimplementedError } from '../src/error.js' import { WebRTCDirectTransport, type WebRTCDirectTransportComponents } from '../src/private-to-public/transport.js' import { expectError } from './util.js' -import type { Metrics } from '@libp2p/interface/metrics' function ignoredDialOption (): CreateListenerOptions { const upgrader = mockUpgrader({}) @@ -61,7 +60,7 @@ describe('WebRTCDirect Transport', () => { it('symbol property getter', () => { const t = new WebRTCDirectTransport(components) - const s = t[symbol] + const s = t[transportSymbol] expect(s).to.equal(true) }) diff --git a/packages/transport-websockets/.aegir.js b/packages/transport-websockets/.aegir.js index eb4e18a763..0c6d76eaf4 100644 --- a/packages/transport-websockets/.aegir.js +++ b/packages/transport-websockets/.aegir.js @@ -6,7 +6,7 @@ export default { async before () { const { multiaddr } = await import('@multiformats/multiaddr') const { mockRegistrar, mockUpgrader } = await import('@libp2p/interface-compliance-tests/mocks') - const { TypedEventEmitter } = await import('@libp2p/interface/events') + const { TypedEventEmitter } = await import('@libp2p/interface') const { webSockets } = await import('./dist/src/index.js') const { defaultLogger } = await import('@libp2p/logger') diff --git a/packages/transport-websockets/src/index.ts b/packages/transport-websockets/src/index.ts index bb3ddb90ad..064f956db4 100644 --- a/packages/transport-websockets/src/index.ts +++ b/packages/transport-websockets/src/index.ts @@ -63,8 +63,8 @@ * ``` */ -import { AbortError, CodeError } from '@libp2p/interface/errors' -import { type Transport, type MultiaddrFilter, symbol, type CreateListenerOptions, type DialOptions, type Listener } from '@libp2p/interface/transport' +import { AbortError, CodeError } from '@libp2p/interface' +import { type Transport, type MultiaddrFilter, transportSymbol, type CreateListenerOptions, type DialOptions, type Listener, type AbortOptions, type ComponentLogger, type Logger, type Connection } from '@libp2p/interface' import { multiaddrToUri as toUri } from '@multiformats/multiaddr-to-uri' import { connect, type WebSocketOptions } from 'it-ws/client' import pDefer from 'p-defer' @@ -72,8 +72,6 @@ import { isBrowser, isWebWorker } from 'wherearewe' import * as filters from './filters.js' import { createListener } from './listener.js' import { socketToMaConn } from './socket-to-conn.js' -import type { AbortOptions, ComponentLogger, Logger } from '@libp2p/interface' -import type { Connection } from '@libp2p/interface/connection' import type { Multiaddr } from '@multiformats/multiaddr' import type { Server } from 'http' import type { DuplexWebSocket } from 'it-ws/duplex' @@ -102,7 +100,7 @@ class WebSockets implements Transport { readonly [Symbol.toStringTag] = '@libp2p/websockets' - readonly [symbol] = true + readonly [transportSymbol] = true async dial (ma: Multiaddr, options: DialOptions): Promise { this.log('dialing %s', ma) diff --git a/packages/transport-websockets/src/listener.browser.ts b/packages/transport-websockets/src/listener.browser.ts index 9fb4354f23..64526d2d14 100644 --- a/packages/transport-websockets/src/listener.browser.ts +++ b/packages/transport-websockets/src/listener.browser.ts @@ -1,4 +1,4 @@ -import type { Listener } from '@libp2p/interface/transport' +import type { Listener } from '@libp2p/interface' export function createListener (): Listener { throw new Error('WebSocket Servers can not be created in the browser!') diff --git a/packages/transport-websockets/src/listener.ts b/packages/transport-websockets/src/listener.ts index d709bcd7c6..20c2d7b50f 100644 --- a/packages/transport-websockets/src/listener.ts +++ b/packages/transport-websockets/src/listener.ts @@ -1,12 +1,10 @@ import os from 'os' -import { TypedEventEmitter, CustomEvent } from '@libp2p/interface/events' +import { TypedEventEmitter, CustomEvent } from '@libp2p/interface' import { ipPortToMultiaddr as toMultiaddr } from '@libp2p/utils/ip-port-to-multiaddr' import { multiaddr, protocols } from '@multiformats/multiaddr' import { createServer } from 'it-ws/server' import { socketToMaConn } from './socket-to-conn.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { Connection } from '@libp2p/interface/connection' -import type { Listener, ListenerEvents, CreateListenerOptions } from '@libp2p/interface/transport' +import type { ComponentLogger, Logger, Connection, Listener, ListenerEvents, CreateListenerOptions } from '@libp2p/interface' import type { Multiaddr } from '@multiformats/multiaddr' import type { Server } from 'http' import type { DuplexWebSocket } from 'it-ws/duplex' diff --git a/packages/transport-websockets/src/socket-to-conn.ts b/packages/transport-websockets/src/socket-to-conn.ts index 66ce2e149b..1cb3278ca7 100644 --- a/packages/transport-websockets/src/socket-to-conn.ts +++ b/packages/transport-websockets/src/socket-to-conn.ts @@ -1,7 +1,6 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { CLOSE_TIMEOUT } from './constants.js' -import type { AbortOptions, ComponentLogger } from '@libp2p/interface' -import type { MultiaddrConnection } from '@libp2p/interface/connection' +import type { AbortOptions, ComponentLogger, MultiaddrConnection } from '@libp2p/interface' import type { Multiaddr } from '@multiformats/multiaddr' import type { DuplexWebSocket } from 'it-ws/duplex' diff --git a/packages/transport-websockets/test/browser.ts b/packages/transport-websockets/test/browser.ts index 0ca81ac46a..53caeb4683 100644 --- a/packages/transport-websockets/test/browser.ts +++ b/packages/transport-websockets/test/browser.ts @@ -1,6 +1,6 @@ /* eslint-env mocha */ -import { TypedEventEmitter } from '@libp2p/interface/events' +import { TypedEventEmitter } from '@libp2p/interface' import { mockUpgrader } from '@libp2p/interface-compliance-tests/mocks' import { defaultLogger } from '@libp2p/logger' import { multiaddr } from '@multiformats/multiaddr' @@ -10,8 +10,7 @@ import { pipe } from 'it-pipe' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { isBrowser, isWebWorker } from 'wherearewe' import { webSockets } from '../src/index.js' -import type { Connection } from '@libp2p/interface/connection' -import type { Transport } from '@libp2p/interface/transport' +import type { Connection, Transport } from '@libp2p/interface' const protocol = '/echo/1.0.0' diff --git a/packages/transport-websockets/test/compliance.node.ts b/packages/transport-websockets/test/compliance.node.ts index faeebf4c4f..20c6748bfa 100644 --- a/packages/transport-websockets/test/compliance.node.ts +++ b/packages/transport-websockets/test/compliance.node.ts @@ -7,7 +7,7 @@ import { multiaddr } from '@multiformats/multiaddr' import * as filters from '../src/filters.js' import { webSockets } from '../src/index.js' import type { WebSocketListenerInit } from '../src/listener.js' -import type { Listener } from '@libp2p/interface/transport' +import type { Listener } from '@libp2p/interface' describe('interface-transport compliance', () => { tests({ diff --git a/packages/transport-websockets/test/node.ts b/packages/transport-websockets/test/node.ts index f6b8888bae..61aee9ec76 100644 --- a/packages/transport-websockets/test/node.ts +++ b/packages/transport-websockets/test/node.ts @@ -4,7 +4,7 @@ import fs from 'fs' import http from 'http' import https from 'https' -import { TypedEventEmitter } from '@libp2p/interface/events' +import { TypedEventEmitter } from '@libp2p/interface' import { mockRegistrar, mockUpgrader } from '@libp2p/interface-compliance-tests/mocks' import { defaultLogger } from '@libp2p/logger' import { multiaddr } from '@multiformats/multiaddr' @@ -19,7 +19,7 @@ import waitFor from 'p-wait-for' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import * as filters from '../src/filters.js' import { webSockets } from '../src/index.js' -import type { Listener, Transport } from '@libp2p/interface/transport' +import type { Listener, Transport } from '@libp2p/interface' import type { Source } from 'it-stream-types' import type { Uint8ArrayList } from 'uint8arraylist' import './compliance.node.js' diff --git a/packages/transport-webtransport/package.json b/packages/transport-webtransport/package.json index dc3544adae..0398f67562 100644 --- a/packages/transport-webtransport/package.json +++ b/packages/transport-webtransport/package.json @@ -49,7 +49,7 @@ "test:chrome-webworker": "aegir test -t webworker" }, "dependencies": { - "@chainsafe/libp2p-noise": "^13.0.0", + "@chainsafe/libp2p-noise": "^14.0.0", "@libp2p/interface": "^1.0.0", "@libp2p/peer-id": "^4.0.0", "@multiformats/multiaddr": "^12.1.10", diff --git a/packages/transport-webtransport/src/index.ts b/packages/transport-webtransport/src/index.ts index 23cf268038..7f2446687e 100644 --- a/packages/transport-webtransport/src/index.ts +++ b/packages/transport-webtransport/src/index.ts @@ -22,18 +22,13 @@ */ import { noise } from '@chainsafe/libp2p-noise' -import { type Transport, symbol, type CreateListenerOptions, type DialOptions, type Listener } from '@libp2p/interface/transport' +import { type Transport, transportSymbol, type CreateListenerOptions, type DialOptions, type Listener, type ComponentLogger, type Logger, type Connection, type MultiaddrConnection, type Stream, type CounterGroup, type Metrics, type PeerId, type StreamMuxerFactory, type StreamMuxerInit, type StreamMuxer } from '@libp2p/interface' import { type Multiaddr, type AbortOptions } from '@multiformats/multiaddr' import { WebTransport as WebTransportMatcher } from '@multiformats/multiaddr-matcher' import { webtransportBiDiStreamToStream } from './stream.js' import { inertDuplex } from './utils/inert-duplex.js' import { isSubset } from './utils/is-subset.js' import { parseMultiaddr } from './utils/parse-multiaddr.js' -import type { ComponentLogger, Logger } from '@libp2p/interface' -import type { Connection, MultiaddrConnection, Stream } from '@libp2p/interface/connection' -import type { CounterGroup, Metrics } from '@libp2p/interface/metrics' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { StreamMuxerFactory, StreamMuxerInit, StreamMuxer } from '@libp2p/interface/stream-muxer' import type { Source } from 'it-stream-types' import type { MultihashDigest } from 'multiformats/hashes/interface' import type { Uint8ArrayList } from 'uint8arraylist' @@ -81,7 +76,7 @@ class WebTransportTransport implements Transport { readonly [Symbol.toStringTag] = '@libp2p/webtransport' - readonly [symbol] = true + readonly [transportSymbol] = true async dial (ma: Multiaddr, options: DialOptions): Promise { options?.signal?.throwIfAborted() @@ -249,7 +244,7 @@ class WebTransportTransport implements Transport { } } - const n = noise()() + const n = noise()(this.components) const { remoteExtensions } = await n.secureOutbound(localPeer, duplex, remotePeer) diff --git a/packages/transport-webtransport/src/stream.ts b/packages/transport-webtransport/src/stream.ts index 5cffec9383..43672408c9 100644 --- a/packages/transport-webtransport/src/stream.ts +++ b/packages/transport-webtransport/src/stream.ts @@ -1,6 +1,5 @@ import { Uint8ArrayList } from 'uint8arraylist' -import type { AbortOptions, ComponentLogger } from '@libp2p/interface' -import type { Direction, Stream } from '@libp2p/interface/connection' +import type { AbortOptions, ComponentLogger, Direction, Stream } from '@libp2p/interface' import type { Source } from 'it-stream-types' export async function webtransportBiDiStreamToStream (bidiStream: WebTransportBidirectionalStream, streamId: string, direction: Direction, activeStreams: Stream[], onStreamEnd: undefined | ((s: Stream) => void), logger: ComponentLogger): Promise { diff --git a/packages/transport-webtransport/src/utils/parse-multiaddr.ts b/packages/transport-webtransport/src/utils/parse-multiaddr.ts index 1592119aad..6788828ead 100644 --- a/packages/transport-webtransport/src/utils/parse-multiaddr.ts +++ b/packages/transport-webtransport/src/utils/parse-multiaddr.ts @@ -1,9 +1,9 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { peerIdFromString } from '@libp2p/peer-id' import { type Multiaddr, protocols } from '@multiformats/multiaddr' import { WebTransport } from '@multiformats/multiaddr-matcher' import { bases, digest } from 'multiformats/basics' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' import type { MultihashDigest } from 'multiformats/hashes/interface' // @ts-expect-error - Not easy to combine these types. diff --git a/packages/upnp-nat/src/index.ts b/packages/upnp-nat/src/index.ts index 14698c1ce9..b0df23b3a0 100644 --- a/packages/upnp-nat/src/index.ts +++ b/packages/upnp-nat/src/index.ts @@ -36,10 +36,8 @@ */ import { UPnPNAT } from './upnp-nat.js' -import type { ComponentLogger, NodeInfo } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { ComponentLogger, NodeInfo, PeerId } from '@libp2p/interface' +import type { AddressManager, TransportManager } from '@libp2p/interface-internal' export interface PMPOptions { /** diff --git a/packages/upnp-nat/src/upnp-nat.ts b/packages/upnp-nat/src/upnp-nat.ts index c68d695315..9c40fbb531 100644 --- a/packages/upnp-nat/src/upnp-nat.ts +++ b/packages/upnp-nat/src/upnp-nat.ts @@ -1,12 +1,11 @@ import { upnpNat, type NatAPI } from '@achingbrain/nat-port-mapper' -import { CodeError, ERR_INVALID_PARAMETERS } from '@libp2p/interface/errors' +import { CodeError, ERR_INVALID_PARAMETERS } from '@libp2p/interface' import { isLoopback } from '@libp2p/utils/multiaddr/is-loopback' import { fromNodeAddress } from '@multiformats/multiaddr' import isPrivateIp from 'private-ip' import { isBrowser } from 'wherearewe' import type { UPnPNATComponents, UPnPNATInit } from './index.js' -import type { Logger } from '@libp2p/interface' -import type { Startable } from '@libp2p/interface/startable' +import type { Logger, Startable } from '@libp2p/interface' const DEFAULT_TTL = 7200 diff --git a/packages/upnp-nat/test/index.spec.ts b/packages/upnp-nat/test/index.spec.ts index df5a86549c..53382be4fb 100644 --- a/packages/upnp-nat/test/index.spec.ts +++ b/packages/upnp-nat/test/index.spec.ts @@ -1,7 +1,6 @@ /* eslint-env mocha */ -import { ERR_INVALID_PARAMETERS } from '@libp2p/interface/errors' -import { stop } from '@libp2p/interface/startable' +import { ERR_INVALID_PARAMETERS, stop } from '@libp2p/interface' import { defaultLogger } from '@libp2p/logger' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { multiaddr } from '@multiformats/multiaddr' @@ -9,10 +8,8 @@ import { expect } from 'aegir/chai' import { type StubbedInstance, stubInterface } from 'sinon-ts' import { UPnPNAT } from '../src/upnp-nat.js' import type { NatAPI } from '@achingbrain/nat-port-mapper' -import type { ComponentLogger, NodeInfo } from '@libp2p/interface' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { AddressManager } from '@libp2p/interface-internal/address-manager' -import type { TransportManager } from '@libp2p/interface-internal/transport-manager' +import type { ComponentLogger, NodeInfo, PeerId } from '@libp2p/interface' +import type { AddressManager, TransportManager } from '@libp2p/interface-internal' interface StubbedUPnPNATComponents { peerId: PeerId diff --git a/packages/utils/package.json b/packages/utils/package.json index 6928013013..58ffea43e8 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -83,6 +83,10 @@ "./stream-to-ma-conn": { "types": "./dist/src/stream-to-ma-conn.d.ts", "import": "./dist/src/stream-to-ma-conn.js" + }, + "./tracked-map": { + "types": "./dist/src/tracked-map.d.ts", + "import": "./dist/src/tracked-map.js" } }, "eslintConfig": { diff --git a/packages/utils/src/abstract-stream.ts b/packages/utils/src/abstract-stream.ts index a1baf9cf37..3e55900fb4 100644 --- a/packages/utils/src/abstract-stream.ts +++ b/packages/utils/src/abstract-stream.ts @@ -1,11 +1,10 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { type Pushable, pushable } from 'it-pushable' import defer, { type DeferredPromise } from 'p-defer' import { raceSignal } from 'race-signal' import { Uint8ArrayList } from 'uint8arraylist' import { closeSource } from './close-source.js' -import type { AbortOptions } from '@libp2p/interface' -import type { Direction, ReadStatus, Stream, StreamStatus, StreamTimeline, WriteStatus } from '@libp2p/interface/connection' +import type { AbortOptions, Direction, ReadStatus, Stream, StreamStatus, StreamTimeline, WriteStatus } from '@libp2p/interface' import type { Logger } from '@libp2p/logger' import type { Source } from 'it-stream-types' diff --git a/packages/utils/src/address-sort.ts b/packages/utils/src/address-sort.ts index 5773a2d90c..37fbdd4e49 100644 --- a/packages/utils/src/address-sort.ts +++ b/packages/utils/src/address-sort.ts @@ -22,7 +22,7 @@ import { Circuit } from '@multiformats/multiaddr-matcher' import { isPrivate } from './multiaddr/is-private.js' -import type { Address } from '@libp2p/interface/peer-store' +import type { Address } from '@libp2p/interface' /** * Compare function for array.sort() that moves public addresses to the start diff --git a/packages/utils/src/ip-port-to-multiaddr.ts b/packages/utils/src/ip-port-to-multiaddr.ts index 08571eb92b..9fb3d8b9f6 100644 --- a/packages/utils/src/ip-port-to-multiaddr.ts +++ b/packages/utils/src/ip-port-to-multiaddr.ts @@ -1,5 +1,5 @@ import { isIPv4, isIPv6 } from '@chainsafe/is-ip' -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { type Multiaddr, multiaddr } from '@multiformats/multiaddr' export const Errors = { diff --git a/packages/utils/src/peer-job-queue.ts b/packages/utils/src/peer-job-queue.ts index 6711798007..beb557ce2a 100644 --- a/packages/utils/src/peer-job-queue.ts +++ b/packages/utils/src/peer-job-queue.ts @@ -1,8 +1,8 @@ /* eslint-disable @typescript-eslint/no-non-null-assertion */ -import { CodeError, ERR_INVALID_PARAMETERS } from '@libp2p/interface/errors' +import { CodeError, ERR_INVALID_PARAMETERS } from '@libp2p/interface' import PQueue from 'p-queue' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' import type { QueueAddOptions, Options, Queue } from 'p-queue' // Port of lower_bound from https://en.cppreference.com/w/cpp/algorithm/lower_bound diff --git a/packages/utils/src/stream-to-ma-conn.ts b/packages/utils/src/stream-to-ma-conn.ts index ff2f919cb0..27b2f298f2 100644 --- a/packages/utils/src/stream-to-ma-conn.ts +++ b/packages/utils/src/stream-to-ma-conn.ts @@ -1,5 +1,4 @@ -import type { ComponentLogger } from '@libp2p/interface' -import type { MultiaddrConnection, Stream } from '@libp2p/interface/connection' +import type { ComponentLogger, MultiaddrConnection, Stream } from '@libp2p/interface' import type { Multiaddr } from '@multiformats/multiaddr' export interface StreamProperties { diff --git a/packages/interface/src/metrics/tracked-map.ts b/packages/utils/src/tracked-map.ts similarity index 95% rename from packages/interface/src/metrics/tracked-map.ts rename to packages/utils/src/tracked-map.ts index 82959e33e0..566abd5fd6 100644 --- a/packages/interface/src/metrics/tracked-map.ts +++ b/packages/utils/src/tracked-map.ts @@ -1,4 +1,4 @@ -import type { Metric, Metrics } from './index.js' +import type { Metric, Metrics } from '@libp2p/interface' export interface TrackedMapInit { name: string diff --git a/packages/utils/test/stream-to-ma-conn.spec.ts b/packages/utils/test/stream-to-ma-conn.spec.ts index b36c8c9f77..627b8878c5 100644 --- a/packages/utils/test/stream-to-ma-conn.spec.ts +++ b/packages/utils/test/stream-to-ma-conn.spec.ts @@ -8,7 +8,7 @@ import { pair } from 'it-pair' import { pipe } from 'it-pipe' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { streamToMaConnection } from '../src/stream-to-ma-conn.js' -import type { Stream } from '@libp2p/interface/connection' +import type { Stream } from '@libp2p/interface' import type { Duplex, Source } from 'it-stream-types' import type { Uint8ArrayList } from 'uint8arraylist' diff --git a/packages/interface/test/metrics/tracked-map.spec.ts b/packages/utils/test/tracked-map.spec.ts similarity index 94% rename from packages/interface/test/metrics/tracked-map.spec.ts rename to packages/utils/test/tracked-map.spec.ts index a24d6a0c9b..8c589818c4 100644 --- a/packages/interface/test/metrics/tracked-map.spec.ts +++ b/packages/utils/test/tracked-map.spec.ts @@ -1,7 +1,7 @@ import { expect } from 'aegir/chai' import { stubInterface } from 'sinon-ts' -import { trackedMap } from '../../src/metrics/tracked-map.js' -import type { Metric, Metrics } from '../../src/metrics/index.js' +import { trackedMap } from '../src/tracked-map.js' +import type { Metric, Metrics } from '@libp2p/interface' import type { SinonStubbedInstance } from 'sinon' describe('tracked-map', () => {