@libp2p/interface-compliance-tests 4.1.5 → 5.0.0

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