@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,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 sinon from 'sinon'
4
4
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
@@ -6,7 +6,7 @@ import { mockNetwork } from '../mocks/index.js'
6
6
  import { createComponents } from './utils.js'
7
7
  import type { PubSubArgs, PubSubComponents } from './index.js'
8
8
  import type { TestSetup } from '../index.js'
9
- import type { PubSub } from '@libp2p/interface/pubsub'
9
+ import type { PubSub } from '@libp2p/interface'
10
10
 
11
11
  const topic = 'foo'
12
12
  const data = uint8ArrayFromString('bar')
@@ -5,16 +5,15 @@ import messagesTest from './messages.js'
5
5
  import multipleNodesTest from './multiple-nodes.js'
6
6
  import twoNodesTest from './two-nodes.js'
7
7
  import type { TestSetup } from '../index.js'
8
- import type { PeerId } from '@libp2p/interface/peer-id'
9
- import type { PubSub, PubSubInit } from '@libp2p/interface/pubsub'
10
- import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager'
11
- import type { Registrar } from '@libp2p/interface-internal/registrar'
8
+ import type { ComponentLogger, PeerId, PubSub, PubSubInit } from '@libp2p/interface'
9
+ import type { ConnectionManager, Registrar } from '@libp2p/interface-internal'
12
10
 
13
11
  export interface PubSubComponents {
14
12
  peerId: PeerId
15
13
  registrar: Registrar
16
14
  connectionManager: ConnectionManager
17
15
  pubsub?: PubSub
16
+ logger: ComponentLogger
18
17
  }
19
18
 
20
19
  export interface PubSubArgs {
@@ -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 { pEvent } from 'p-event'
4
4
  import sinon from 'sinon'
@@ -7,7 +7,7 @@ import { mockNetwork } from '../mocks/index.js'
7
7
  import { createComponents } from './utils.js'
8
8
  import type { PubSubArgs, PubSubComponents } from './index.js'
9
9
  import type { TestSetup } from '../index.js'
10
- import type { Message, PubSub } from '@libp2p/interface/pubsub'
10
+ import type { Message, PubSub } from '@libp2p/interface'
11
11
 
12
12
  const topic = 'foo'
13
13
  const data = uint8ArrayFromString('bar')
@@ -1,5 +1,5 @@
1
1
  /* eslint max-nested-callbacks: ["error", 6] */
2
- import { start, stop } from '@libp2p/interface/startable'
2
+ import { start, stop } from '@libp2p/interface'
3
3
  import { expect } from 'aegir/chai'
4
4
  import delay from 'delay'
5
5
  import pDefer from 'p-defer'
@@ -11,7 +11,7 @@ import { mockNetwork } from '../mocks/index.js'
11
11
  import { createComponents, waitForSubscriptionUpdate } from './utils.js'
12
12
  import type { PubSubArgs, PubSubComponents } from './index.js'
13
13
  import type { TestSetup } from '../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 with multiple nodes', function () {
@@ -1,6 +1,5 @@
1
1
  /* eslint max-nested-callbacks: ["error", 6] */
2
- import { TopicValidatorResult } from '@libp2p/interface/pubsub'
3
- import { start, stop } from '@libp2p/interface/startable'
2
+ import { TopicValidatorResult, start, stop } from '@libp2p/interface'
4
3
  import { expect } from 'aegir/chai'
5
4
  import pDefer from 'p-defer'
6
5
  import pWaitFor from 'p-wait-for'
@@ -11,7 +10,7 @@ import { mockNetwork } from '../mocks/index.js'
11
10
  import { createComponents, waitForSubscriptionUpdate } from './utils.js'
12
11
  import type { PubSubArgs, PubSubComponents } from './index.js'
13
12
  import type { TestSetup } from '../index.js'
14
- import type { Message, PubSub } from '@libp2p/interface/pubsub'
13
+ import type { Message, PubSub } from '@libp2p/interface'
15
14
 
16
15
  const topic = 'foo'
17
16
 
@@ -73,7 +72,7 @@ export default (common: TestSetup<PubSub, PubSubArgs>): void => {
73
72
  expect(psA.getTopics()).to.deep.equal([topic])
74
73
  expect(psB.getPeers()).to.have.lengthOf(1)
75
74
  expect(psB.getSubscribers(topic).map(p => p.toString())).to.deep.equal([componentsA.peerId.toString()])
76
- expect(changedPeerId).to.deep.equal(psB.getPeers()[0])
75
+ expect(changedPeerId.toString()).to.equal(psB.getPeers()[0].toString())
77
76
  expect(changedSubs).to.have.lengthOf(1)
78
77
  expect(changedSubs[0].topic).to.equal(topic)
79
78
  expect(changedSubs[0].subscribe).to.equal(true)
@@ -243,7 +242,7 @@ export default (common: TestSetup<PubSub, PubSubArgs>): void => {
243
242
  const { peerId: changedPeerId, subscriptions: changedSubs } = evt.detail
244
243
  expect(psB.getPeers()).to.have.lengthOf(1)
245
244
  expect(psB.getTopics()).to.be.empty()
246
- expect(changedPeerId).to.deep.equal(psB.getPeers()[0])
245
+ expect(changedPeerId.toString()).to.equal(psB.getPeers()[0].toString())
247
246
  expect(changedSubs).to.have.lengthOf(1)
248
247
  expect(changedSubs[0].topic).to.equal(topic)
249
248
  expect(changedSubs[0].subscribe).to.equal(true)
@@ -252,7 +251,7 @@ export default (common: TestSetup<PubSub, PubSubArgs>): void => {
252
251
  const { peerId: changedPeerId, subscriptions: changedSubs } = evt.detail
253
252
  expect(psB.getPeers()).to.have.lengthOf(1)
254
253
  expect(psB.getTopics()).to.be.empty()
255
- expect(changedPeerId).to.deep.equal(psB.getPeers()[0])
254
+ expect(changedPeerId.toString()).to.equal(psB.getPeers()[0].toString())
256
255
  expect(changedSubs).to.have.lengthOf(1)
257
256
  expect(changedSubs[0].topic).to.equal(topic)
258
257
  expect(changedSubs[0].subscribe).to.equal(false)
@@ -1,11 +1,11 @@
1
- import { TypedEventEmitter } from '@libp2p/interface/events'
1
+ import { TypedEventEmitter } from '@libp2p/interface'
2
+ import { defaultLogger } from '@libp2p/logger'
2
3
  import { createEd25519PeerId } from '@libp2p/peer-id-factory'
3
4
  import { pEvent } from 'p-event'
4
5
  import pWaitFor from 'p-wait-for'
5
6
  import { mockConnectionManager, mockRegistrar, mockNetwork } from '../mocks/index.js'
6
7
  import type { MockNetworkComponents } from '../mocks/index.js'
7
- import type { PeerId } from '@libp2p/interface/peer-id'
8
- import type { PubSub, SubscriptionChangeData } from '@libp2p/interface/pubsub'
8
+ import type { PeerId, PubSub, SubscriptionChangeData } from '@libp2p/interface'
9
9
 
10
10
  export async function waitForSubscriptionUpdate (a: PubSub, b: PeerId): Promise<void> {
11
11
  await pWaitFor(async () => {
@@ -19,7 +19,8 @@ export async function createComponents (): Promise<MockNetworkComponents> {
19
19
  const components: any = {
20
20
  peerId: await createEd25519PeerId(),
21
21
  registrar: mockRegistrar(),
22
- events: new TypedEventEmitter()
22
+ events: new TypedEventEmitter(),
23
+ logger: defaultLogger()
23
24
  }
24
25
  components.connectionManager = mockConnectionManager(components)
25
26
 
@@ -10,8 +10,7 @@ import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
10
10
  import { toString as uint8ArrayToString } from 'uint8arrays/to-string'
11
11
  import { isValidTick } from '../is-valid-tick.js'
12
12
  import type { TestSetup } from '../index.js'
13
- import type { Stream } from '@libp2p/interface/connection'
14
- import type { StreamMuxerFactory } from '@libp2p/interface/stream-muxer'
13
+ import type { Stream, StreamMuxerFactory } from '@libp2p/interface'
15
14
  import type { Source, Duplex } from 'it-stream-types'
16
15
  import type { DeferredPromise } from 'p-defer'
17
16
 
@@ -22,7 +21,7 @@ async function drainAndClose (stream: Duplex<any>): Promise<void> {
22
21
  export default (common: TestSetup<StreamMuxerFactory>): void => {
23
22
  describe('base', () => {
24
23
  it('Open a stream from the dialer', async () => {
25
- const p = duplexPair<Uint8Array>()
24
+ const p = duplexPair<Uint8Array | Uint8ArrayList>()
26
25
  const dialerFactory = await common.setup()
27
26
  const dialer = dialerFactory.createStreamMuxer({ direction: 'outbound' })
28
27
  const onStreamPromise: DeferredPromise<Stream> = defer()
@@ -75,7 +74,7 @@ export default (common: TestSetup<StreamMuxerFactory>): void => {
75
74
  })
76
75
 
77
76
  it('Open a stream from the listener', async () => {
78
- const p = duplexPair<Uint8Array>()
77
+ const p = duplexPair<Uint8Array | Uint8ArrayList>()
79
78
  const onStreamPromise: DeferredPromise<Stream> = defer()
80
79
  const dialerFactory = await common.setup()
81
80
  const dialer = dialerFactory.createStreamMuxer({
@@ -106,7 +105,7 @@ export default (common: TestSetup<StreamMuxerFactory>): void => {
106
105
  })
107
106
 
108
107
  it('Open a stream on both sides', async () => {
109
- const p = duplexPair<Uint8Array>()
108
+ const p = duplexPair<Uint8Array | Uint8ArrayList>()
110
109
  const onDialerStreamPromise: DeferredPromise<Stream> = defer()
111
110
  const onListenerStreamPromise: DeferredPromise<Stream> = defer()
112
111
  const dialerFactory = await common.setup()
@@ -146,7 +145,7 @@ export default (common: TestSetup<StreamMuxerFactory>): void => {
146
145
 
147
146
  it('Open a stream on one side, write, open a stream on the other side', async () => {
148
147
  const toString = (source: Source<Uint8ArrayList>): AsyncGenerator<string> => map(source, (u) => uint8ArrayToString(u.subarray()))
149
- const p = duplexPair<Uint8Array>()
148
+ const p = duplexPair<Uint8Array | Uint8ArrayList>()
150
149
  const onDialerStreamPromise: DeferredPromise<Stream> = defer()
151
150
  const onListenerStreamPromise: DeferredPromise<Stream> = defer()
152
151
  const dialerFactory = await common.setup()
@@ -13,19 +13,57 @@ import { Uint8ArrayList } from 'uint8arraylist'
13
13
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
14
14
  import { Message } from './fixtures/pb/message.js'
15
15
  import type { TestSetup } from '../index.js'
16
- import type { StreamMuxerFactory } from '@libp2p/interface/stream-muxer'
16
+ import type { StreamMuxerFactory } from '@libp2p/interface'
17
17
 
18
18
  function randomBuffer (): Uint8Array {
19
19
  return uint8ArrayFromString(Math.random().toString())
20
20
  }
21
21
 
22
- const infiniteRandom = {
23
- [Symbol.asyncIterator]: async function * () {
24
- while (true) {
25
- yield new Uint8ArrayList(randomBuffer())
26
- await delay(50)
22
+ function infiniteRandom (): AsyncGenerator<Uint8ArrayList, void, unknown> {
23
+ let done: Error | boolean = false
24
+
25
+ const generator: AsyncGenerator<Uint8ArrayList, void, unknown> = {
26
+ [Symbol.asyncIterator]: () => {
27
+ return generator
28
+ },
29
+ async next () {
30
+ await delay(10)
31
+
32
+ if (done instanceof Error) {
33
+ throw done
34
+ }
35
+
36
+ if (done) {
37
+ return {
38
+ done: true,
39
+ value: undefined
40
+ }
41
+ }
42
+
43
+ return {
44
+ done: false,
45
+ value: new Uint8ArrayList(randomBuffer())
46
+ }
47
+ },
48
+ async return (): Promise<IteratorReturnResult<void>> {
49
+ done = true
50
+
51
+ return {
52
+ done: true,
53
+ value: undefined
54
+ }
55
+ },
56
+ async throw (err: Error): Promise<IteratorReturnResult<void>> {
57
+ done = err
58
+
59
+ return {
60
+ done: true,
61
+ value: undefined
62
+ }
27
63
  }
28
64
  }
65
+
66
+ return generator
29
67
  }
30
68
 
31
69
  export default (common: TestSetup<StreamMuxerFactory>): void => {
@@ -46,7 +84,7 @@ export default (common: TestSetup<StreamMuxerFactory>): void => {
46
84
  }
47
85
  })
48
86
 
49
- const p = duplexPair<Uint8Array>()
87
+ const p = duplexPair<Uint8Array | Uint8ArrayList>()
50
88
  void pipe(p[0], dialer, p[0])
51
89
  void pipe(p[1], listener, p[1])
52
90
 
@@ -55,7 +93,7 @@ export default (common: TestSetup<StreamMuxerFactory>): void => {
55
93
  void Promise.all(
56
94
  streams.map(async stream => {
57
95
  await pipe(
58
- infiniteRandom,
96
+ infiniteRandom(),
59
97
  stream,
60
98
  drain
61
99
  )
@@ -66,7 +104,7 @@ export default (common: TestSetup<StreamMuxerFactory>): void => {
66
104
 
67
105
  // Pause, and then close the dialer
68
106
  await delay(50)
69
- await pipe([], dialer, drain)
107
+ await pipe(async function * () {}, dialer, drain)
70
108
 
71
109
  expect(openedStreams).to.have.equal(expectedStreams)
72
110
  expect(dialer.streams).to.have.lengthOf(0)
@@ -88,7 +126,7 @@ export default (common: TestSetup<StreamMuxerFactory>): void => {
88
126
  }
89
127
  })
90
128
 
91
- const p = duplexPair<Uint8Array>()
129
+ const p = duplexPair<Uint8Array | Uint8ArrayList>()
92
130
  void pipe(p[0], dialer, p[0])
93
131
  void pipe(p[1], listener, p[1])
94
132
 
@@ -97,7 +135,7 @@ export default (common: TestSetup<StreamMuxerFactory>): void => {
97
135
  void Promise.all(
98
136
  streams.map(async stream => {
99
137
  await pipe(
100
- infiniteRandom,
138
+ infiniteRandom(),
101
139
  stream,
102
140
  drain
103
141
  )
@@ -131,7 +169,7 @@ export default (common: TestSetup<StreamMuxerFactory>): void => {
131
169
  }
132
170
  })
133
171
 
134
- const p = duplexPair<Uint8Array>()
172
+ const p = duplexPair<Uint8Array | Uint8ArrayList>()
135
173
  void pipe(p[0], dialer, p[0])
136
174
  void pipe(p[1], listener, p[1])
137
175
 
@@ -139,7 +177,7 @@ export default (common: TestSetup<StreamMuxerFactory>): void => {
139
177
 
140
178
  const streamPipes = streams.map(async stream => {
141
179
  await pipe(
142
- infiniteRandom,
180
+ infiniteRandom(),
143
181
  stream,
144
182
  drain
145
183
  )
@@ -187,7 +225,7 @@ export default (common: TestSetup<StreamMuxerFactory>): void => {
187
225
  })
188
226
 
189
227
  it('closing one of the muxed streams doesn\'t close others', async () => {
190
- const p = duplexPair<Uint8Array>()
228
+ const p = duplexPair<Uint8Array | Uint8ArrayList>()
191
229
  const dialerFactory = await common.setup()
192
230
  const dialer = dialerFactory.createStreamMuxer({ direction: 'outbound' })
193
231
 
@@ -213,7 +251,7 @@ export default (common: TestSetup<StreamMuxerFactory>): void => {
213
251
  controllers.push(controller)
214
252
 
215
253
  try {
216
- const abortableRand = abortableSource(infiniteRandom, controller.signal, { abortCode: 'ERR_TEST_ABORT' })
254
+ const abortableRand = abortableSource(infiniteRandom(), controller.signal, { abortCode: 'ERR_TEST_ABORT' })
217
255
  await pipe(abortableRand, stream, drain)
218
256
  } catch (err: any) {
219
257
  if (err.code !== 'ERR_TEST_ABORT') throw err
@@ -238,7 +276,7 @@ export default (common: TestSetup<StreamMuxerFactory>): void => {
238
276
  it('can close a stream for writing', async () => {
239
277
  const deferred = pDefer<Error>()
240
278
 
241
- const p = duplexPair<Uint8Array>()
279
+ const p = duplexPair<Uint8Array | Uint8ArrayList>()
242
280
  const dialerFactory = await common.setup()
243
281
  const dialer = dialerFactory.createStreamMuxer({ direction: 'outbound' })
244
282
  const data = [randomBuffer(), randomBuffer()]
@@ -283,7 +321,7 @@ export default (common: TestSetup<StreamMuxerFactory>): void => {
283
321
 
284
322
  it('can close a stream for reading', async () => {
285
323
  const deferred = pDefer<Uint8ArrayList[]>()
286
- const p = duplexPair<Uint8Array>()
324
+ const p = duplexPair<Uint8Array | Uint8ArrayList>()
287
325
  const dialerFactory = await common.setup()
288
326
  const dialer = dialerFactory.createStreamMuxer({ direction: 'outbound' })
289
327
  const data = [randomBuffer(), randomBuffer()].map(d => new Uint8ArrayList(d))
@@ -349,7 +387,7 @@ export default (common: TestSetup<StreamMuxerFactory>): void => {
349
387
  it('should wait for all data to be sent when closing streams', async () => {
350
388
  const deferred = pDefer<Message>()
351
389
 
352
- const p = duplexPair<Uint8Array>()
390
+ const p = duplexPair<Uint8Array | Uint8ArrayList>()
353
391
  const dialerFactory = await common.setup()
354
392
  const dialer = dialerFactory.createStreamMuxer({ direction: 'outbound' })
355
393
 
@@ -391,7 +429,7 @@ export default (common: TestSetup<StreamMuxerFactory>): void => {
391
429
  it('should abort closing a stream with outstanding data to read', async () => {
392
430
  const deferred = pDefer<Message>()
393
431
 
394
- const p = duplexPair<Uint8Array>()
432
+ const p = duplexPair<Uint8Array | Uint8ArrayList>()
395
433
  const dialerFactory = await common.setup()
396
434
  const dialer = dialerFactory.createStreamMuxer({ direction: 'outbound' })
397
435
 
@@ -3,7 +3,7 @@ import closeTest from './close-test.js'
3
3
  import megaStressTest from './mega-stress-test.js'
4
4
  import stressTest from './stress-test.js'
5
5
  import type { TestSetup } from '../index.js'
6
- import type { StreamMuxerFactory } from '@libp2p/interface/stream-muxer'
6
+ import type { StreamMuxerFactory } from '@libp2p/interface'
7
7
 
8
8
  export default (common: TestSetup<StreamMuxerFactory>): void => {
9
9
  describe('interface-stream-muxer', () => {
@@ -1,6 +1,6 @@
1
1
  import spawn from './spawner.js'
2
2
  import type { TestSetup } from '../index.js'
3
- import type { StreamMuxer, StreamMuxerFactory, StreamMuxerInit } from '@libp2p/interface/stream-muxer'
3
+ import type { StreamMuxer, StreamMuxerFactory, StreamMuxerInit } from '@libp2p/interface'
4
4
 
5
5
  export default (common: TestSetup<StreamMuxerFactory>): void => {
6
6
  const createMuxer = async (init?: StreamMuxerInit): Promise<StreamMuxer> => {
@@ -6,10 +6,10 @@ import { pipe } from 'it-pipe'
6
6
  import pLimit from 'p-limit'
7
7
  import { Uint8ArrayList } from 'uint8arraylist'
8
8
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
9
- import type { StreamMuxer, StreamMuxerInit } from '@libp2p/interface/stream-muxer'
9
+ import type { StreamMuxer, StreamMuxerInit } from '@libp2p/interface'
10
10
 
11
11
  export default async (createMuxer: (init?: StreamMuxerInit) => Promise<StreamMuxer>, nStreams: number, nMsg: number, limit?: number): Promise<void> => {
12
- const [dialerSocket, listenerSocket] = duplexPair<Uint8Array>()
12
+ const [dialerSocket, listenerSocket] = duplexPair<Uint8Array | Uint8ArrayList>()
13
13
 
14
14
  const msg = new Uint8ArrayList(uint8ArrayFromString('simple msg'))
15
15
 
@@ -1,6 +1,6 @@
1
1
  import spawn from './spawner.js'
2
2
  import type { TestSetup } from '../index.js'
3
- import type { StreamMuxerFactory, StreamMuxerInit, StreamMuxer } from '@libp2p/interface/stream-muxer'
3
+ import type { StreamMuxerFactory, StreamMuxerInit, StreamMuxer } from '@libp2p/interface'
4
4
 
5
5
  export default (common: TestSetup<StreamMuxerFactory>): void => {
6
6
  const createMuxer = async (init?: StreamMuxerInit): Promise<StreamMuxer> => {
@@ -1,5 +1,4 @@
1
- import { AbortError } from '@libp2p/interface/errors'
2
- import { TypedEventEmitter } from '@libp2p/interface/events'
1
+ import { AbortError, TypedEventEmitter } from '@libp2p/interface'
3
2
  import { expect } from 'aegir/chai'
4
3
  import all from 'it-all'
5
4
  import drain from 'it-drain'
@@ -10,8 +9,8 @@ import { isValidTick } from '../is-valid-tick.js'
10
9
  import { mockUpgrader, mockRegistrar } from '../mocks/index.js'
11
10
  import type { TransportTestFixtures, Connector } from './index.js'
12
11
  import type { TestSetup } from '../index.js'
13
- import type { Listener, Transport, Upgrader } from '@libp2p/interface/transport'
14
- import type { Registrar } from '@libp2p/interface-internal/registrar'
12
+ import type { Listener, Transport, Upgrader } from '@libp2p/interface'
13
+ import type { Registrar } from '@libp2p/interface-internal'
15
14
  import type { Multiaddr } from '@multiformats/multiaddr'
16
15
 
17
16
  export default (common: TestSetup<TransportTestFixtures>): void => {
@@ -1,7 +1,7 @@
1
1
  import { expect } from 'aegir/chai'
2
2
  import type { TransportTestFixtures } from './index.js'
3
3
  import type { TestSetup } from '../index.js'
4
- import type { Transport } from '@libp2p/interface/transport'
4
+ import type { Transport } from '@libp2p/interface'
5
5
  import type { Multiaddr } from '@multiformats/multiaddr'
6
6
 
7
7
  export default (common: TestSetup<TransportTestFixtures>): void => {
@@ -2,7 +2,7 @@ import dial from './dial-test.js'
2
2
  import filter from './filter-test.js'
3
3
  import listen from './listen-test.js'
4
4
  import type { TestSetup } from '../index.js'
5
- import type { Transport } from '@libp2p/interface/transport'
5
+ import type { Transport } from '@libp2p/interface'
6
6
  import type { Multiaddr } from '@multiformats/multiaddr'
7
7
 
8
8
  export interface Connector {
@@ -1,5 +1,5 @@
1
1
  /* eslint max-nested-callbacks: ["error", 8] */
2
- import { CustomEvent, TypedEventEmitter } from '@libp2p/interface/events'
2
+ import { CustomEvent, TypedEventEmitter } from '@libp2p/interface'
3
3
  import { expect } from 'aegir/chai'
4
4
  import drain from 'it-drain'
5
5
  import { pipe } from 'it-pipe'
@@ -11,9 +11,8 @@ import { isValidTick } from '../is-valid-tick.js'
11
11
  import { mockUpgrader, mockRegistrar } from '../mocks/index.js'
12
12
  import type { TransportTestFixtures } from './index.js'
13
13
  import type { TestSetup } from '../index.js'
14
- import type { Connection } from '@libp2p/interface/connection'
15
- import type { Transport, Upgrader } from '@libp2p/interface/transport'
16
- import type { Registrar } from '@libp2p/interface-internal/registrar'
14
+ import type { Connection, Transport, Upgrader } from '@libp2p/interface'
15
+ import type { Registrar } from '@libp2p/interface-internal'
17
16
  import type { Multiaddr } from '@multiformats/multiaddr'
18
17
 
19
18
  export default (common: TestSetup<TransportTestFixtures>): void => {
@@ -1,3 +0,0 @@
1
- import type { ConnectionEncrypter } from '@libp2p/interface/connection-encrypter';
2
- export declare function mockConnectionEncrypter(): ConnectionEncrypter;
3
- //# sourceMappingURL=connection-encrypter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connection-encrypter.d.ts","sourceRoot":"","sources":["../../../src/mocks/connection-encrypter.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAYjF,wBAAgB,uBAAuB,IAAK,mBAAmB,CA6F9D"}
@@ -1,98 +0,0 @@
1
- import { UnexpectedPeerError } from '@libp2p/interface/errors';
2
- import { peerIdFromBytes } from '@libp2p/peer-id';
3
- import { multiaddr } from '@multiformats/multiaddr';
4
- import { handshake } from 'it-handshake';
5
- import map from 'it-map';
6
- import { duplexPair } from 'it-pair/duplex';
7
- import { pipe } from 'it-pipe';
8
- // A basic transform that does nothing to the data
9
- const transform = () => {
10
- return (source) => (async function* () {
11
- for await (const chunk of source) {
12
- yield chunk;
13
- }
14
- })();
15
- };
16
- export function mockConnectionEncrypter() {
17
- const encrypter = {
18
- protocol: 'insecure',
19
- secureInbound: async (localPeer, duplex, expectedPeer) => {
20
- // 1. Perform a basic handshake.
21
- const shake = handshake(duplex);
22
- shake.write(localPeer.toBytes());
23
- const remoteId = await shake.read();
24
- if (remoteId == null) {
25
- throw new Error('Could not read remote ID');
26
- }
27
- const remotePeer = peerIdFromBytes(remoteId.slice());
28
- shake.rest();
29
- if (expectedPeer?.equals(remotePeer) === false) {
30
- throw new UnexpectedPeerError();
31
- }
32
- // 2. Create your encryption box/unbox wrapper
33
- const wrapper = duplexPair();
34
- const encrypt = transform(); // Use transform iterables to modify data
35
- const decrypt = transform();
36
- void pipe(wrapper[0], // We write to wrapper
37
- encrypt, // The data is encrypted
38
- shake.stream, // It goes to the remote peer
39
- // It goes to the remote peer
40
- source => map(source, (list) => list.subarray()), // turn lists into arrays
41
- decrypt, // Decrypt the incoming data
42
- wrapper[0] // Pipe to the wrapper
43
- );
44
- return {
45
- conn: {
46
- ...wrapper[1],
47
- close: async () => { },
48
- localAddr: multiaddr('/ip4/127.0.0.1/tcp/4001'),
49
- remoteAddr: multiaddr('/ip4/127.0.0.1/tcp/4002'),
50
- timeline: {
51
- open: Date.now()
52
- },
53
- conn: true
54
- },
55
- remotePeer,
56
- remoteExtensions: {}
57
- };
58
- },
59
- secureOutbound: async (localPeer, duplex, remotePeer) => {
60
- // 1. Perform a basic handshake.
61
- const shake = handshake(duplex);
62
- shake.write(localPeer.toBytes());
63
- const remoteId = await shake.read();
64
- if (remoteId == null) {
65
- throw new Error('Could not read remote ID');
66
- }
67
- shake.rest();
68
- // 2. Create your encryption box/unbox wrapper
69
- const wrapper = duplexPair();
70
- const encrypt = transform();
71
- const decrypt = transform();
72
- void pipe(wrapper[0], // We write to wrapper
73
- encrypt, // The data is encrypted
74
- shake.stream, // It goes to the remote peer
75
- // It goes to the remote peer
76
- source => map(source, (list) => list.subarray()), // turn lists into arrays
77
- decrypt, // Decrypt the incoming data
78
- wrapper[0] // Pipe to the wrapper
79
- );
80
- return {
81
- conn: {
82
- ...wrapper[1],
83
- close: async () => { },
84
- localAddr: multiaddr('/ip4/127.0.0.1/tcp/4001'),
85
- remoteAddr: multiaddr('/ip4/127.0.0.1/tcp/4002'),
86
- timeline: {
87
- open: Date.now()
88
- },
89
- conn: true
90
- },
91
- remotePeer: peerIdFromBytes(remoteId.slice()),
92
- remoteExtensions: {}
93
- };
94
- }
95
- };
96
- return encrypter;
97
- }
98
- //# sourceMappingURL=connection-encrypter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connection-encrypter.js","sourceRoot":"","sources":["../../../src/mocks/connection-encrypter.ts"],"names":[],"mappings":"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"}