@libp2p/interface-compliance-tests 1.1.8 → 1.1.12

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 (79) hide show
  1. package/dist/src/mocks/connection.d.ts +5 -3
  2. package/dist/src/mocks/connection.d.ts.map +1 -1
  3. package/dist/src/mocks/connection.js +21 -13
  4. package/dist/src/mocks/connection.js.map +1 -1
  5. package/dist/src/mocks/muxer.d.ts.map +1 -1
  6. package/dist/src/mocks/muxer.js +201 -131
  7. package/dist/src/mocks/muxer.js.map +1 -1
  8. package/dist/src/mocks/registrar.d.ts +5 -1
  9. package/dist/src/mocks/registrar.d.ts.map +1 -1
  10. package/dist/src/mocks/registrar.js +8 -10
  11. package/dist/src/mocks/registrar.js.map +1 -1
  12. package/dist/src/mocks/upgrader.d.ts +2 -2
  13. package/dist/src/mocks/upgrader.d.ts.map +1 -1
  14. package/dist/src/mocks/upgrader.js +2 -2
  15. package/dist/src/mocks/upgrader.js.map +1 -1
  16. package/dist/src/pubsub/api.d.ts +3 -2
  17. package/dist/src/pubsub/api.d.ts.map +1 -1
  18. package/dist/src/pubsub/api.js +8 -6
  19. package/dist/src/pubsub/api.js.map +1 -1
  20. package/dist/src/pubsub/connection-handlers.d.ts +3 -2
  21. package/dist/src/pubsub/connection-handlers.d.ts.map +1 -1
  22. package/dist/src/pubsub/connection-handlers.js +128 -34
  23. package/dist/src/pubsub/connection-handlers.js.map +1 -1
  24. package/dist/src/pubsub/emit-self.d.ts +3 -2
  25. package/dist/src/pubsub/emit-self.d.ts.map +1 -1
  26. package/dist/src/pubsub/emit-self.js +3 -2
  27. package/dist/src/pubsub/emit-self.js.map +1 -1
  28. package/dist/src/pubsub/index.d.ts +5 -2
  29. package/dist/src/pubsub/index.d.ts.map +1 -1
  30. package/dist/src/pubsub/index.js.map +1 -1
  31. package/dist/src/pubsub/messages.d.ts +3 -2
  32. package/dist/src/pubsub/messages.d.ts.map +1 -1
  33. package/dist/src/pubsub/messages.js +16 -17
  34. package/dist/src/pubsub/messages.js.map +1 -1
  35. package/dist/src/pubsub/multiple-nodes.d.ts +3 -2
  36. package/dist/src/pubsub/multiple-nodes.d.ts.map +1 -1
  37. package/dist/src/pubsub/multiple-nodes.js +89 -58
  38. package/dist/src/pubsub/multiple-nodes.js.map +1 -1
  39. package/dist/src/pubsub/two-nodes.d.ts +3 -2
  40. package/dist/src/pubsub/two-nodes.d.ts.map +1 -1
  41. package/dist/src/pubsub/two-nodes.js +74 -32
  42. package/dist/src/pubsub/two-nodes.js.map +1 -1
  43. package/dist/src/pubsub/utils.d.ts +3 -0
  44. package/dist/src/pubsub/utils.d.ts.map +1 -0
  45. package/dist/src/pubsub/utils.js +9 -0
  46. package/dist/src/pubsub/utils.js.map +1 -0
  47. package/dist/src/stream-muxer/base-test.d.ts.map +1 -1
  48. package/dist/src/stream-muxer/base-test.js +27 -21
  49. package/dist/src/stream-muxer/base-test.js.map +1 -1
  50. package/dist/src/stream-muxer/close-test.d.ts.map +1 -1
  51. package/dist/src/stream-muxer/close-test.js +25 -28
  52. package/dist/src/stream-muxer/close-test.js.map +1 -1
  53. package/dist/src/stream-muxer/spawner.d.ts.map +1 -1
  54. package/dist/src/stream-muxer/spawner.js +2 -3
  55. package/dist/src/stream-muxer/spawner.js.map +1 -1
  56. package/dist/src/transport/dial-test.d.ts.map +1 -1
  57. package/dist/src/transport/dial-test.js +16 -5
  58. package/dist/src/transport/dial-test.js.map +1 -1
  59. package/dist/src/transport/listen-test.d.ts.map +1 -1
  60. package/dist/src/transport/listen-test.js +13 -2
  61. package/dist/src/transport/listen-test.js.map +1 -1
  62. package/package.json +6 -2
  63. package/src/mocks/connection.ts +27 -15
  64. package/src/mocks/muxer.ts +271 -147
  65. package/src/mocks/registrar.ts +12 -10
  66. package/src/mocks/upgrader.ts +4 -4
  67. package/src/pubsub/api.ts +13 -9
  68. package/src/pubsub/connection-handlers.ts +148 -43
  69. package/src/pubsub/emit-self.ts +9 -7
  70. package/src/pubsub/index.ts +5 -2
  71. package/src/pubsub/messages.ts +24 -23
  72. package/src/pubsub/multiple-nodes.ts +104 -74
  73. package/src/pubsub/two-nodes.ts +87 -39
  74. package/src/pubsub/utils.ts +12 -0
  75. package/src/stream-muxer/base-test.ts +35 -24
  76. package/src/stream-muxer/close-test.ts +32 -29
  77. package/src/stream-muxer/spawner.ts +3 -6
  78. package/src/transport/dial-test.ts +23 -6
  79. package/src/transport/listen-test.ts +16 -2
@@ -1 +1 @@
1
- {"version":3,"file":"listen-test.d.ts","sourceRoot":"","sources":["../../../src/transport/listen-test.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;iCAI1C,UAAU,qBAAqB,EAAE,SAAS,CAAC;AAAnE,wBA+IC"}
1
+ {"version":3,"file":"listen-test.d.ts","sourceRoot":"","sources":["../../../src/transport/listen-test.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;iCAO1C,UAAU,qBAAqB,EAAE,SAAS,CAAC;AAAnE,wBA0JC"}
@@ -8,12 +8,19 @@ import { isValidTick } from '../utils/is-valid-tick.js';
8
8
  import { mockUpgrader } from '../mocks/upgrader.js';
9
9
  import defer from 'p-defer';
10
10
  import { CustomEvent } from '@libp2p/interfaces';
11
+ import { mockRegistrar } from '../mocks/registrar.js';
12
+ import drain from 'it-drain';
11
13
  export default (common) => {
12
14
  describe('listen', () => {
13
- const upgrader = mockUpgrader();
15
+ let upgrader = mockUpgrader();
14
16
  let addrs;
15
17
  let transport;
18
+ let registrar;
16
19
  before(async () => {
20
+ registrar = mockRegistrar();
21
+ upgrader = mockUpgrader({
22
+ registrar
23
+ });
17
24
  ({ transport, addrs } = await common.setup({ upgrader }));
18
25
  });
19
26
  after(async () => {
@@ -30,6 +37,10 @@ export default (common) => {
30
37
  it('close listener with connections, through timeout', async () => {
31
38
  const upgradeSpy = sinon.spy(upgrader, 'upgradeInbound');
32
39
  const listenerConns = [];
40
+ const protocol = '/test/protocol';
41
+ void registrar.handle(protocol, (evt) => {
42
+ void drain(evt.detail.stream.source);
43
+ });
33
44
  const listener = transport.createListener({
34
45
  handler: (conn) => {
35
46
  listenerConns.push(conn);
@@ -44,7 +55,7 @@ export default (common) => {
44
55
  ]);
45
56
  // Give the listener a chance to finish its upgrade
46
57
  await pWaitFor(() => listenerConns.length === 2);
47
- const { stream: stream1 } = await conn1.newStream(['/test/protocol']);
58
+ const { stream: stream1 } = await conn1.newStream([protocol]);
48
59
  // Wait for the data send and close to finish
49
60
  await Promise.all([
50
61
  pipe([uint8ArrayFromString('Some data that is never handled')], stream1),
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/interface-compliance-tests",
3
- "version": "1.1.8",
3
+ "version": "1.1.12",
4
4
  "description": "Compliance tests for JS libp2p interfaces",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p-interfaces/tree/master/packages/libp2p-interface-compliance-tests#readme",
@@ -201,24 +201,28 @@
201
201
  "@libp2p/crypto": "^0.22.2",
202
202
  "@libp2p/interfaces": "^1.0.0",
203
203
  "@libp2p/logger": "^1.0.3",
204
- "@libp2p/multistream-select": "^0.0.0",
204
+ "@libp2p/multistream-select": "^1.0.0",
205
205
  "@libp2p/peer-id": "^1.0.0",
206
206
  "@libp2p/peer-id-factory": "^1.0.0",
207
207
  "@libp2p/pubsub": "^1.1.0",
208
208
  "@multiformats/multiaddr": "^10.1.1",
209
209
  "abortable-iterator": "^4.0.0",
210
210
  "aegir": "^36.1.3",
211
+ "any-signal": "^3.0.0",
211
212
  "delay": "^5.0.0",
213
+ "err-code": "^3.0.1",
212
214
  "it-all": "^1.0.6",
213
215
  "it-drain": "^1.0.5",
214
216
  "it-goodbye": "^4.0.1",
215
217
  "it-map": "^1.0.6",
218
+ "it-ndjson": "^0.1.1",
216
219
  "it-pair": "^2.0.0",
217
220
  "it-pipe": "^2.0.2",
218
221
  "it-pushable": "^2.0.1",
219
222
  "it-stream-types": "^1.0.4",
220
223
  "multiformats": "^9.4.10",
221
224
  "p-defer": "^4.0.0",
225
+ "p-event": "^5.0.1",
222
226
  "p-limit": "^4.0.0",
223
227
  "p-wait-for": "^4.1.0",
224
228
  "sinon": "^13.0.0",
@@ -3,14 +3,13 @@ import { pipe } from 'it-pipe'
3
3
  import { duplexPair } from 'it-pair/duplex'
4
4
  import type { MultiaddrConnection } from '@libp2p/interfaces/transport'
5
5
  import type { Connection, Stream, Metadata, ProtocolStream } from '@libp2p/interfaces/connection'
6
- import type { Muxer } from '@libp2p/interfaces/stream-muxer'
7
6
  import type { Duplex } from 'it-stream-types'
8
7
  import { mockMuxer } from './muxer.js'
9
8
  import type { PeerId } from '@libp2p/interfaces/src/peer-id'
10
9
  import { mockMultiaddrConnection } from './multiaddr-connection.js'
11
10
  import type { Registrar } from '@libp2p/interfaces/registrar'
12
11
  import { mockRegistrar } from './registrar.js'
13
- import { Listener } from '@libp2p/multistream-select'
12
+ import { Dialer, Listener } from '@libp2p/multistream-select'
14
13
  import { logger } from '@libp2p/logger'
15
14
  import { CustomEvent } from '@libp2p/interfaces'
16
15
 
@@ -18,13 +17,12 @@ const log = logger('libp2p:mock-connection')
18
17
 
19
18
  export interface MockConnectionOptions {
20
19
  direction?: 'inbound' | 'outbound'
21
- muxer?: Muxer
22
20
  registrar?: Registrar
23
21
  }
24
22
 
25
23
  export function mockConnection (maConn: MultiaddrConnection, opts: MockConnectionOptions = {}): Connection {
26
24
  const remoteAddr = maConn.remoteAddr
27
- const remotePeerIdStr = remoteAddr.getPeerId()
25
+ const remotePeerIdStr = remoteAddr.getPeerId() ?? '12D3KooWCrhmFM1BCPGBkNzbPfDk4cjYmtAYSpZwUBC69Qg2kZyq'
28
26
 
29
27
  if (remotePeerIdStr == null) {
30
28
  throw new Error('Remote multiaddr must contain a peer id')
@@ -33,12 +31,11 @@ export function mockConnection (maConn: MultiaddrConnection, opts: MockConnectio
33
31
  const remotePeer = peerIdFromString(remotePeerIdStr)
34
32
  const registry = new Map()
35
33
  const streams: Stream[] = []
36
- let streamId = 0
37
34
  const direction = opts.direction ?? 'inbound'
38
35
  const registrar = opts.registrar ?? mockRegistrar()
39
36
 
40
- const muxer = opts.muxer ?? mockMuxer({
41
- onStream: (muxedStream) => {
37
+ const muxer = mockMuxer({
38
+ onIncomingStream: (muxedStream) => {
42
39
  const mss = new Listener(muxedStream)
43
40
  try {
44
41
  mss.handle(registrar.getProtocols())
@@ -59,8 +56,8 @@ export function mockConnection (maConn: MultiaddrConnection, opts: MockConnectio
59
56
  log.error(err)
60
57
  }
61
58
  },
62
- onStreamEnd: (stream) => {
63
- connection.removeStream(stream.id)
59
+ onStreamEnd: (muxedStream) => {
60
+ connection.removeStream(muxedStream.id)
64
61
  }
65
62
  })
66
63
 
@@ -91,11 +88,17 @@ export function mockConnection (maConn: MultiaddrConnection, opts: MockConnectio
91
88
  throw new Error('protocols must have a length')
92
89
  }
93
90
 
94
- const id = `${streamId++}`
91
+ const id = `${Math.random()}`
95
92
  const stream: Stream = muxer.newStream(id)
93
+ const mss = new Dialer(stream)
94
+ const result = await mss.select(protocols)
95
+
96
96
  const streamData: ProtocolStream = {
97
- protocol: protocols[0],
98
- stream
97
+ protocol: result.protocol,
98
+ stream: {
99
+ ...stream,
100
+ ...result.stream
101
+ }
99
102
  }
100
103
 
101
104
  registry.set(id, streamData)
@@ -129,15 +132,24 @@ export function mockStream (stream: Duplex<Uint8Array>): Stream {
129
132
  }
130
133
  }
131
134
 
132
- export function connectionPair (peerA: PeerId, peerB: PeerId): [ Connection, Connection ] {
135
+ export interface Peer {
136
+ peerId: PeerId
137
+ registrar: Registrar
138
+ }
139
+
140
+ export function connectionPair (a: Peer, b: Peer): [ Connection, Connection ] {
133
141
  const [peerBtoPeerA, peerAtoPeerB] = duplexPair<Uint8Array>()
134
142
 
135
143
  return [
136
144
  mockConnection(
137
- mockMultiaddrConnection(peerBtoPeerA, peerA)
145
+ mockMultiaddrConnection(peerAtoPeerB, b.peerId), {
146
+ registrar: a.registrar
147
+ }
138
148
  ),
139
149
  mockConnection(
140
- mockMultiaddrConnection(peerAtoPeerB, peerB)
150
+ mockMultiaddrConnection(peerBtoPeerA, a.peerId), {
151
+ registrar: b.registrar
152
+ }
141
153
  )
142
154
  ]
143
155
  }