@libp2p/interface-compliance-tests 1.1.7 → 1.1.11

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 (63) hide show
  1. package/dist/src/mocks/connection.d.ts +12 -2
  2. package/dist/src/mocks/connection.d.ts.map +1 -1
  3. package/dist/src/mocks/connection.js +59 -33
  4. package/dist/src/mocks/connection.js.map +1 -1
  5. package/dist/src/mocks/multiaddr-connection.d.ts +2 -1
  6. package/dist/src/mocks/multiaddr-connection.d.ts.map +1 -1
  7. package/dist/src/mocks/multiaddr-connection.js +2 -2
  8. package/dist/src/mocks/multiaddr-connection.js.map +1 -1
  9. package/dist/src/mocks/registrar.d.ts +11 -2
  10. package/dist/src/mocks/registrar.d.ts.map +1 -1
  11. package/dist/src/mocks/registrar.js +47 -5
  12. package/dist/src/mocks/registrar.js.map +1 -1
  13. package/dist/src/mocks/upgrader.d.ts.map +1 -1
  14. package/dist/src/mocks/upgrader.js +8 -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 +23 -13
  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 +165 -69
  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 +15 -4
  27. package/dist/src/pubsub/emit-self.js.map +1 -1
  28. package/dist/src/pubsub/index.d.ts +6 -3
  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 +42 -39
  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 +172 -89
  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 +96 -40
  42. package/dist/src/pubsub/two-nodes.js.map +1 -1
  43. package/dist/src/pubsub/utils.d.ts +2 -2
  44. package/dist/src/pubsub/utils.d.ts.map +1 -1
  45. package/dist/src/pubsub/utils.js +7 -9
  46. package/dist/src/pubsub/utils.js.map +1 -1
  47. package/dist/src/stream-muxer/close-test.d.ts.map +1 -1
  48. package/dist/src/stream-muxer/close-test.js +5 -2
  49. package/dist/src/stream-muxer/close-test.js.map +1 -1
  50. package/package.json +8 -5
  51. package/src/mocks/connection.ts +83 -34
  52. package/src/mocks/multiaddr-connection.ts +3 -2
  53. package/src/mocks/registrar.ts +65 -7
  54. package/src/mocks/upgrader.ts +8 -2
  55. package/src/pubsub/api.ts +29 -15
  56. package/src/pubsub/connection-handlers.ts +186 -75
  57. package/src/pubsub/emit-self.ts +19 -7
  58. package/src/pubsub/index.ts +6 -3
  59. package/src/pubsub/messages.ts +59 -44
  60. package/src/pubsub/multiple-nodes.ts +197 -102
  61. package/src/pubsub/two-nodes.ts +111 -48
  62. package/src/pubsub/utils.ts +9 -10
  63. package/src/stream-muxer/close-test.ts +5 -2
@@ -1,9 +1,14 @@
1
1
  import { expect } from 'aegir/utils/chai.js';
2
2
  import sinon from 'sinon';
3
- import * as PeerIdFactory from '@libp2p/peer-id-factory';
3
+ import { createEd25519PeerId } from '@libp2p/peer-id-factory';
4
4
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
5
- import * as utils from '@libp2p/pubsub/utils';
5
+ import { noSignMsgId } from '@libp2p/pubsub/utils';
6
6
  import { PeerStreams } from '@libp2p/pubsub/peer-streams';
7
+ import { mockRegistrar } from '../mocks/registrar.js';
8
+ import pDefer from 'p-defer';
9
+ import delay from 'delay';
10
+ import pWaitFor from 'p-wait-for';
11
+ import { CustomEvent } from '@libp2p/interfaces';
7
12
  const topic = 'foo';
8
13
  const data = uint8ArrayFromString('bar');
9
14
  export default (common) => {
@@ -11,7 +16,11 @@ export default (common) => {
11
16
  let pubsub;
12
17
  // Create pubsub router
13
18
  beforeEach(async () => {
14
- pubsub = await common.setup();
19
+ pubsub = await common.setup({
20
+ peerId: await createEd25519PeerId(),
21
+ registrar: mockRegistrar(),
22
+ emitSelf: true
23
+ });
15
24
  await pubsub.start();
16
25
  });
17
26
  afterEach(async () => {
@@ -21,72 +30,66 @@ export default (common) => {
21
30
  });
22
31
  it('should emit normalized signed messages on publish', async () => {
23
32
  pubsub.globalSignaturePolicy = 'StrictSign';
24
- // @ts-expect-error protected field
25
- sinon.spy(pubsub, '_emitMessage');
26
- await pubsub.publish(topic, data);
27
- // @ts-expect-error protected field
28
- expect(pubsub._emitMessage.callCount).to.eql(1);
29
- // @ts-expect-error protected field
30
- const [messageToEmit] = pubsub._emitMessage.getCall(0).args;
33
+ const spy = sinon.spy(pubsub, 'publishMessage');
34
+ await pubsub.dispatchEvent(new CustomEvent(topic, { detail: data }));
35
+ await pWaitFor(async () => {
36
+ return spy.callCount === 1;
37
+ });
38
+ expect(spy).to.have.property('callCount', 1);
39
+ const [from, messageToEmit] = spy.getCall(0).args;
40
+ expect(from.toString()).to.equal(pubsub.peerId.toString());
31
41
  expect(messageToEmit.seqno).to.not.eql(undefined);
32
42
  expect(messageToEmit.key).to.not.eql(undefined);
33
43
  expect(messageToEmit.signature).to.not.eql(undefined);
34
44
  });
35
45
  it('should drop unsigned messages', async () => {
36
- // @ts-expect-error protected field
37
- sinon.spy(pubsub, '_emitMessage');
38
- // @ts-expect-error protected field
39
- sinon.spy(pubsub, '_publish');
46
+ const publishSpy = sinon.spy(pubsub, 'publishMessage');
40
47
  sinon.spy(pubsub, 'validate');
41
48
  const peerStream = new PeerStreams({
42
- id: await PeerIdFactory.createEd25519PeerId(),
49
+ id: await createEd25519PeerId(),
43
50
  protocol: 'test'
44
51
  });
45
52
  const rpc = {
46
53
  subscriptions: [],
47
- msgs: [{
48
- receivedFrom: peerStream.id.toString(),
54
+ messages: [{
49
55
  from: peerStream.id.toBytes(),
50
56
  data,
51
- seqno: utils.randomSeqno(),
52
- topicIDs: [topic]
57
+ seqno: await noSignMsgId(data),
58
+ topic: topic
53
59
  }]
54
60
  };
55
61
  pubsub.subscribe(topic);
56
- // @ts-expect-error protected field
57
- await pubsub._processRpc(peerStream.id.toString(), peerStream, rpc);
58
- expect(pubsub.validate).to.have.property('callCount', 1);
59
- // @ts-expect-error protected field
60
- expect(pubsub._emitMessage).to.have.property('called', false);
61
- // @ts-expect-error protected field
62
- expect(pubsub._publish).to.have.property('called', false);
62
+ await pubsub.processRpc(peerStream.id, peerStream, rpc);
63
+ // message should not be delivered
64
+ await delay(1000);
65
+ expect(publishSpy).to.have.property('called', false);
63
66
  });
64
67
  it('should not drop unsigned messages if strict signing is disabled', async () => {
65
68
  pubsub.globalSignaturePolicy = 'StrictNoSign';
66
- // @ts-expect-error protected field
67
- sinon.spy(pubsub, '_emitMessage');
68
- // @ts-expect-error protected field
69
- sinon.spy(pubsub, '_publish');
69
+ const publishSpy = sinon.spy(pubsub, 'publishMessage');
70
70
  sinon.spy(pubsub, 'validate');
71
71
  const peerStream = new PeerStreams({
72
- id: await PeerIdFactory.createEd25519PeerId(),
72
+ id: await createEd25519PeerId(),
73
73
  protocol: 'test'
74
74
  });
75
75
  const rpc = {
76
76
  subscriptions: [],
77
- msgs: [{
77
+ messages: [{
78
+ from: peerStream.id.toBytes(),
78
79
  data,
79
- topicIDs: [topic]
80
+ topic
80
81
  }]
81
82
  };
82
83
  pubsub.subscribe(topic);
83
- // @ts-expect-error protected field
84
- await pubsub._processRpc(peerStream.id.toString(), peerStream, rpc);
84
+ const deferred = pDefer();
85
+ pubsub.addEventListener(topic, () => {
86
+ deferred.resolve();
87
+ });
88
+ await pubsub.processRpc(peerStream.id, peerStream, rpc);
89
+ // await message delivery
90
+ await deferred.promise;
85
91
  expect(pubsub.validate).to.have.property('callCount', 1);
86
- // @ts-expect-error protected field
87
- expect(pubsub._emitMessage).to.have.property('called', 1);
88
- // @ts-expect-error protected field
89
- expect(pubsub._publish).to.have.property('called', 1);
92
+ expect(publishSpy).to.have.property('callCount', 1);
90
93
  });
91
94
  });
92
95
  };
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/pubsub/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAKzD,MAAM,KAAK,GAAG,KAAK,CAAA;AACnB,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAA;AAExC,eAAe,CAAC,MAAmC,EAAE,EAAE;IACrD,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,IAAI,MAAwB,CAAA;QAE5B,uBAAuB;QACvB,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;YAC7B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;QACtB,CAAC,CAAC,CAAA;QAEF,SAAS,CAAC,KAAK,IAAI,EAAE;YACnB,KAAK,CAAC,OAAO,EAAE,CAAA;YACf,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YACnB,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAA;QACzB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,CAAC,qBAAqB,GAAG,YAAY,CAAA;YAC3C,mCAAmC;YACnC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;YAEjC,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YACjC,mCAAmC;YACnC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAC/C,mCAAmC;YACnC,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YAE3D,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YACjD,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YAC/C,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACvD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC7C,mCAAmC;YACnC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;YACjC,mCAAmC;YACnC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;YAC7B,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;YAE7B,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC;gBACjC,EAAE,EAAE,MAAM,aAAa,CAAC,mBAAmB,EAAE;gBAC7C,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAA;YACF,MAAM,GAAG,GAAG;gBACV,aAAa,EAAE,EAAE;gBACjB,IAAI,EAAE,CAAC;wBACL,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE;wBACtC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE;wBAC7B,IAAI;wBACJ,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE;wBAC1B,QAAQ,EAAE,CAAC,KAAK,CAAC;qBAClB,CAAC;aACH,CAAA;YAED,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YACvB,mCAAmC;YACnC,MAAM,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,CAAA;YAEnE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;YACxD,mCAAmC;YACnC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YAC7D,mCAAmC;YACnC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;YAC/E,MAAM,CAAC,qBAAqB,GAAG,cAAc,CAAA;YAC7C,mCAAmC;YACnC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;YACjC,mCAAmC;YACnC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;YAC7B,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;YAE7B,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC;gBACjC,EAAE,EAAE,MAAM,aAAa,CAAC,mBAAmB,EAAE;gBAC7C,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAA;YAEF,MAAM,GAAG,GAAG;gBACV,aAAa,EAAE,EAAE;gBACjB,IAAI,EAAE,CAAC;wBACL,IAAI;wBACJ,QAAQ,EAAE,CAAC,KAAK,CAAC;qBAClB,CAAC;aACH,CAAA;YAED,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YACvB,mCAAmC;YACnC,MAAM,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,CAAA;YAEnE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;YACxD,mCAAmC;YACnC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;YACzD,mCAAmC;YACnC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QACvD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/pubsub/messages.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { TestSetup } from '../index.js';
2
- import type { PubSub } from '@libp2p/interfaces/pubsub';
2
+ import type { PubSubOptions } from '@libp2p/interfaces/pubsub';
3
3
  import type { EventMap } from './index.js';
4
- declare const _default: (common: TestSetup<PubSub<EventMap>>) => void;
4
+ import type { PubsubBaseProtocol } from '@libp2p/pubsub';
5
+ declare const _default: (common: TestSetup<PubsubBaseProtocol<EventMap>, PubSubOptions>) => void;
5
6
  export default _default;
6
7
  //# sourceMappingURL=multiple-nodes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"multiple-nodes.d.ts","sourceRoot":"","sources":["../../../src/pubsub/multiple-nodes.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAW,MAAM,2BAA2B,CAAA;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;iCAElB,UAAU,OAAO,QAAQ,CAAC,CAAC;AAAnD,wBA0WC"}
1
+ {"version":3,"file":"multiple-nodes.d.ts","sourceRoot":"","sources":["../../../src/pubsub/multiple-nodes.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAW,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAG1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;iCAEhC,UAAU,mBAAmB,QAAQ,CAAC,EAAE,aAAa,CAAC;AAA9E,wBAocC"}
@@ -1,12 +1,14 @@
1
1
  /* eslint max-nested-callbacks: ["error", 6] */
2
2
  import { expect } from 'aegir/utils/chai.js';
3
3
  import sinon from 'sinon';
4
- import delay from 'delay';
5
4
  import pDefer from 'p-defer';
6
5
  import pWaitFor from 'p-wait-for';
7
6
  import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
8
7
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
9
- import { expectSet } from './utils.js';
8
+ import { createEd25519PeerId } from '@libp2p/peer-id-factory';
9
+ import { connectPeers, mockRegistrar } from '../mocks/registrar.js';
10
+ import { CustomEvent } from '@libp2p/interfaces';
11
+ import { waitForSubscriptionUpdate } from './utils.js';
10
12
  export default (common) => {
11
13
  describe('pubsub with multiple nodes', function () {
12
14
  describe('every peer subscribes to the topic', () => {
@@ -17,68 +19,96 @@ export default (common) => {
17
19
  let psA;
18
20
  let psB;
19
21
  let psC;
22
+ let peerIdA;
23
+ let peerIdB;
24
+ let peerIdC;
25
+ let registrarA;
26
+ let registrarB;
27
+ let registrarC;
20
28
  // Create and start pubsub nodes
21
29
  beforeEach(async () => {
22
- psA = await common.setup();
23
- psB = await common.setup();
24
- psC = await common.setup();
25
- [psA, psB, psC].map((p) => p.start());
30
+ peerIdA = await createEd25519PeerId();
31
+ peerIdB = await createEd25519PeerId();
32
+ peerIdC = await createEd25519PeerId();
33
+ registrarA = mockRegistrar();
34
+ registrarB = mockRegistrar();
35
+ registrarC = mockRegistrar();
36
+ psA = await common.setup({
37
+ peerId: peerIdA,
38
+ registrar: registrarA,
39
+ emitSelf: true
40
+ });
41
+ psB = await common.setup({
42
+ peerId: peerIdB,
43
+ registrar: registrarB,
44
+ emitSelf: true
45
+ });
46
+ psC = await common.setup({
47
+ peerId: peerIdC,
48
+ registrar: registrarC,
49
+ emitSelf: true
50
+ });
51
+ // Start pubsub modes
52
+ await Promise.all([psA, psB, psC].map(async (p) => await p.start()));
26
53
  });
27
54
  // Connect nodes
28
55
  beforeEach(async () => {
29
- // @ts-expect-error protected field
30
- await psA._libp2p.dial(psB.peerId);
31
- // @ts-expect-error protected field
32
- await psB._libp2p.dial(psC.peerId);
56
+ await connectPeers(psA.multicodecs[0], {
57
+ peerId: peerIdA,
58
+ registrar: registrarA
59
+ }, {
60
+ peerId: peerIdB,
61
+ registrar: registrarB
62
+ });
63
+ await connectPeers(psA.multicodecs[0], {
64
+ peerId: peerIdB,
65
+ registrar: registrarB
66
+ }, {
67
+ peerId: peerIdC,
68
+ registrar: registrarC
69
+ });
33
70
  // Wait for peers to be ready in pubsub
34
- await pWaitFor(() => psA.peers.size === 1 &&
35
- psC.peers.size === 1 &&
36
- psA.peers.size === 1);
71
+ await pWaitFor(() => psA.getPeers().length === 1 &&
72
+ psC.getPeers().length === 1 &&
73
+ psA.getPeers().length === 1);
37
74
  });
38
75
  afterEach(async () => {
39
76
  sinon.restore();
40
- [psA, psB, psC].map((p) => p.stop());
77
+ await Promise.all([psA, psB, psC].map(async (p) => await p.stop()));
41
78
  await common.teardown();
42
79
  });
43
80
  it('subscribe to the topic on node a', async () => {
44
81
  const topic = 'Z';
45
82
  psA.subscribe(topic);
46
- expectSet(psA.subscriptions, [topic]);
47
- await new Promise((resolve) => psB.addEventListener('pubsub:subscription-change', resolve, {
48
- once: true
49
- }));
50
- expect(psB.peers.size).to.equal(2);
51
- const aPeerId = psA.peerId.toString();
52
- expectSet(psB.topics.get(topic), [aPeerId]);
53
- expect(psC.peers.size).to.equal(1);
54
- expect(psC.topics.get(topic)).to.eql(undefined);
83
+ expect(psA.getTopics()).to.deep.equal([topic]);
84
+ await waitForSubscriptionUpdate(psB, psA);
85
+ expect(psB.getPeers().length).to.equal(2);
86
+ expect(psB.getSubscribers(topic).map(p => p.toString())).to.deep.equal([peerIdA.toString()]);
87
+ expect(psC.getPeers().length).to.equal(1);
88
+ expect(psC.getSubscribers(topic)).to.be.empty();
55
89
  });
56
90
  it('subscribe to the topic on node b', async () => {
57
91
  const topic = 'Z';
58
92
  psB.subscribe(topic);
59
- expectSet(psB.subscriptions, [topic]);
93
+ expect(psB.getTopics()).to.deep.equal([topic]);
60
94
  await Promise.all([
61
- new Promise((resolve) => psA.addEventListener('pubsub:subscription-change', resolve, {
62
- once: true
63
- })),
64
- new Promise((resolve) => psC.addEventListener('pubsub:subscription-change', resolve, {
65
- once: true
66
- }))
95
+ waitForSubscriptionUpdate(psA, psB),
96
+ waitForSubscriptionUpdate(psC, psB)
67
97
  ]);
68
- expect(psA.peers.size).to.equal(1);
69
- expectSet(psA.topics.get(topic), [psB.peerId.toString()]);
70
- expect(psC.peers.size).to.equal(1);
71
- expectSet(psC.topics.get(topic), [psB.peerId.toString()]);
98
+ expect(psA.getPeers().length).to.equal(1);
99
+ expect(psA.getSubscribers(topic).map(p => p.toString())).to.deep.equal([peerIdB.toString()]);
100
+ expect(psC.getPeers().length).to.equal(1);
101
+ expect(psC.getSubscribers(topic).map(p => p.toString())).to.deep.equal([peerIdB.toString()]);
72
102
  });
73
103
  it('subscribe to the topic on node c', async () => {
74
104
  const topic = 'Z';
75
105
  const defer = pDefer();
76
106
  psC.subscribe(topic);
77
- expectSet(psC.subscriptions, [topic]);
107
+ expect(psC.getTopics()).to.deep.equal([topic]);
78
108
  psB.addEventListener('pubsub:subscription-change', () => {
79
- expect(psA.peers.size).to.equal(1);
80
- expect(psB.peers.size).to.equal(2);
81
- expectSet(psB.topics.get(topic), [psC.peerId.toString()]);
109
+ expect(psA.getPeers().length).to.equal(1);
110
+ expect(psB.getPeers().length).to.equal(2);
111
+ expect(psB.getSubscribers(topic).map(p => p.toString())).to.deep.equal([peerIdC.toString()]);
82
112
  defer.resolve();
83
113
  }, {
84
114
  once: true
@@ -91,25 +121,16 @@ export default (common) => {
91
121
  psA.subscribe(topic);
92
122
  psB.subscribe(topic);
93
123
  psC.subscribe(topic);
94
- // await subscription change
95
- await Promise.all([
96
- new Promise(resolve => psA.addEventListener('pubsub:subscription-change', () => resolve(null), {
97
- once: true
98
- })),
99
- new Promise(resolve => psB.addEventListener('pubsub:subscription-change', () => resolve(null), {
100
- once: true
101
- })),
102
- new Promise(resolve => psC.addEventListener('pubsub:subscription-change', () => resolve(null), {
103
- once: true
104
- }))
105
- ]);
106
- // await a cycle
107
- await delay(1000);
108
124
  let counter = 0;
109
125
  psA.addEventListener(topic, incMsg);
110
126
  psB.addEventListener(topic, incMsg);
111
127
  psC.addEventListener(topic, incMsg);
112
- void psA.publish(topic, uint8ArrayFromString('hey'));
128
+ await Promise.all([
129
+ waitForSubscriptionUpdate(psA, psB),
130
+ waitForSubscriptionUpdate(psB, psA),
131
+ waitForSubscriptionUpdate(psC, psB)
132
+ ]);
133
+ void psA.dispatchEvent(new CustomEvent(topic, { detail: uint8ArrayFromString('hey') }));
113
134
  function incMsg(evt) {
114
135
  const msg = evt.detail;
115
136
  expect(uint8ArrayToString(msg.data)).to.equal('hey');
@@ -155,9 +176,12 @@ export default (common) => {
155
176
  psA.addEventListener(topic, incMsg);
156
177
  psB.addEventListener(topic, incMsg);
157
178
  psC.addEventListener(topic, incMsg);
158
- // await a cycle
159
- await delay(1000);
160
- void psB.publish(topic, uint8ArrayFromString('hey'));
179
+ await Promise.all([
180
+ waitForSubscriptionUpdate(psA, psB),
181
+ waitForSubscriptionUpdate(psB, psA),
182
+ waitForSubscriptionUpdate(psC, psB)
183
+ ]);
184
+ void psB.dispatchEvent(new CustomEvent(topic, { detail: uint8ArrayFromString('hey') }));
161
185
  function incMsg(evt) {
162
186
  const msg = evt.detail;
163
187
  expect(uint8ArrayToString(msg.data)).to.equal('hey');
@@ -188,47 +212,108 @@ export default (common) => {
188
212
  let psC;
189
213
  let psD;
190
214
  let psE;
215
+ let peerIdA;
216
+ let peerIdB;
217
+ let peerIdC;
218
+ let peerIdD;
219
+ let peerIdE;
220
+ let registrarA;
221
+ let registrarB;
222
+ let registrarC;
223
+ let registrarD;
224
+ let registrarE;
191
225
  // Create and start pubsub nodes
192
226
  beforeEach(async () => {
193
- psA = await common.setup();
194
- psB = await common.setup();
195
- psC = await common.setup();
196
- psD = await common.setup();
197
- psE = await common.setup();
198
- [psA, psB, psC, psD, psE].map((p) => p.start());
227
+ peerIdA = await createEd25519PeerId();
228
+ peerIdB = await createEd25519PeerId();
229
+ peerIdC = await createEd25519PeerId();
230
+ peerIdD = await createEd25519PeerId();
231
+ peerIdE = await createEd25519PeerId();
232
+ registrarA = mockRegistrar();
233
+ registrarB = mockRegistrar();
234
+ registrarC = mockRegistrar();
235
+ registrarD = mockRegistrar();
236
+ registrarE = mockRegistrar();
237
+ psA = await common.setup({
238
+ peerId: peerIdA,
239
+ registrar: registrarA,
240
+ emitSelf: true
241
+ });
242
+ psB = await common.setup({
243
+ peerId: peerIdB,
244
+ registrar: registrarB,
245
+ emitSelf: true
246
+ });
247
+ psC = await common.setup({
248
+ peerId: peerIdC,
249
+ registrar: registrarC,
250
+ emitSelf: true
251
+ });
252
+ psD = await common.setup({
253
+ peerId: peerIdD,
254
+ registrar: registrarD,
255
+ emitSelf: true
256
+ });
257
+ psE = await common.setup({
258
+ peerId: peerIdE,
259
+ registrar: registrarE,
260
+ emitSelf: true
261
+ });
262
+ // Start pubsub nodes
263
+ await Promise.all([psA, psB, psC, psD, psE].map(async (p) => await p.start()));
199
264
  });
200
265
  // connect nodes
201
266
  beforeEach(async () => {
202
- // @ts-expect-error protected field
203
- await psA._libp2p.dial(psB.peerId);
204
- // @ts-expect-error protected field
205
- await psB._libp2p.dial(psC.peerId);
206
- // @ts-expect-error protected field
207
- await psC._libp2p.dial(psD.peerId);
208
- // @ts-expect-error protected field
209
- await psD._libp2p.dial(psE.peerId);
267
+ await connectPeers(psA.multicodecs[0], {
268
+ peerId: peerIdA,
269
+ registrar: registrarA
270
+ }, {
271
+ peerId: peerIdB,
272
+ registrar: registrarB
273
+ });
274
+ await connectPeers(psA.multicodecs[0], {
275
+ peerId: peerIdB,
276
+ registrar: registrarB
277
+ }, {
278
+ peerId: peerIdC,
279
+ registrar: registrarC
280
+ });
281
+ await connectPeers(psA.multicodecs[0], {
282
+ peerId: peerIdC,
283
+ registrar: registrarC
284
+ }, {
285
+ peerId: peerIdD,
286
+ registrar: registrarD
287
+ });
288
+ await connectPeers(psA.multicodecs[0], {
289
+ peerId: peerIdD,
290
+ registrar: registrarD
291
+ }, {
292
+ peerId: peerIdE,
293
+ registrar: registrarE
294
+ });
210
295
  // Wait for peers to be ready in pubsub
211
- await pWaitFor(() => psA.peers.size === 1 &&
212
- psB.peers.size === 2 &&
213
- psC.peers.size === 2 &&
214
- psD.peers.size === 2 &&
215
- psE.peers.size === 1);
296
+ await pWaitFor(() => psA.getPeers().length === 1 &&
297
+ psB.getPeers().length === 2 &&
298
+ psC.getPeers().length === 2 &&
299
+ psD.getPeers().length === 2 &&
300
+ psE.getPeers().length === 1);
216
301
  });
217
302
  afterEach(async () => {
218
- [psA, psB, psC, psD, psE].map((p) => p.stop());
303
+ await Promise.all([psA, psB, psC, psD, psE].map(async (p) => await p.stop()));
219
304
  await common.teardown();
220
305
  });
221
306
  it('subscribes', () => {
222
307
  psA.subscribe('Z');
223
- expectSet(psA.subscriptions, ['Z']);
308
+ expect(psA.getTopics()).to.deep.equal(['Z']);
224
309
  psB.subscribe('Z');
225
- expectSet(psB.subscriptions, ['Z']);
310
+ expect(psB.getTopics()).to.deep.equal(['Z']);
226
311
  psC.subscribe('Z');
227
- expectSet(psC.subscriptions, ['Z']);
312
+ expect(psC.getTopics()).to.deep.equal(['Z']);
228
313
  psD.subscribe('Z');
229
- expectSet(psD.subscriptions, ['Z']);
314
+ expect(psD.getTopics()).to.deep.equal(['Z']);
230
315
  psE.subscribe('Z');
231
- expectSet(psE.subscriptions, ['Z']);
316
+ expect(psE.getTopics()).to.deep.equal(['Z']);
232
317
  });
233
318
  it('publishes from c', async function () {
234
319
  const defer = pDefer();
@@ -244,15 +329,13 @@ export default (common) => {
244
329
  psE.subscribe('Z');
245
330
  psE.addEventListener('Z', incMsg);
246
331
  await Promise.all([
247
- new Promise((resolve) => psA.addEventListener('pubsub:subscription-change', resolve)),
248
- new Promise((resolve) => psB.addEventListener('pubsub:subscription-change', resolve)),
249
- new Promise((resolve) => psC.addEventListener('pubsub:subscription-change', resolve)),
250
- new Promise((resolve) => psD.addEventListener('pubsub:subscription-change', resolve)),
251
- new Promise((resolve) => psE.addEventListener('pubsub:subscription-change', resolve))
332
+ waitForSubscriptionUpdate(psA, psB),
333
+ waitForSubscriptionUpdate(psB, psA),
334
+ waitForSubscriptionUpdate(psC, psB),
335
+ waitForSubscriptionUpdate(psD, psC),
336
+ waitForSubscriptionUpdate(psE, psD)
252
337
  ]);
253
- // await a cycle
254
- await delay(1000);
255
- void psC.publish('Z', uint8ArrayFromString('hey from c'));
338
+ void psC.dispatchEvent(new CustomEvent('Z', { detail: uint8ArrayFromString('hey from c') }));
256
339
  function incMsg(evt) {
257
340
  const msg = evt.detail;
258
341
  expect(uint8ArrayToString(msg.data)).to.equal('hey from c');
@@ -1 +1 @@
1
- {"version":3,"file":"multiple-nodes.js","sourceRoot":"","sources":["../../../src/pubsub/multiple-nodes.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAKtC,eAAe,CAAC,MAAmC,EAAE,EAAE;IACrD,QAAQ,CAAC,4BAA4B,EAAE;QACrC,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAClD,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;gBACpB,OAAO;gBACP,cAAc;gBACd,cAAc;gBACd,IAAI,GAAqB,CAAA;gBACzB,IAAI,GAAqB,CAAA;gBACzB,IAAI,GAAqB,CAAA;gBAEzB,gCAAgC;gBAChC,UAAU,CAAC,KAAK,IAAI,EAAE;oBACpB,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;oBAC1B,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;oBAC1B,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAGzB;oBAAA,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;gBACxC,CAAC,CAAC,CAAA;gBAEF,gBAAgB;gBAChB,UAAU,CAAC,KAAK,IAAI,EAAE;oBACpB,mCAAmC;oBACnC,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;oBAClC,mCAAmC;oBACnC,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;oBAElC,uCAAuC;oBACvC,MAAM,QAAQ,CAAC,GAAG,EAAE,CAClB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;wBACpB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;wBACpB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CACrB,CAAA;gBACH,CAAC,CAAC,CAAA;gBAEF,SAAS,CAAC,KAAK,IAAI,EAAE;oBACnB,KAAK,CAAC,OAAO,EAAE,CAEd;oBAAA,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;oBACrC,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAA;gBACzB,CAAC,CAAC,CAAA;gBAEF,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;oBAChD,MAAM,KAAK,GAAG,GAAG,CAAA;oBAEjB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;oBACpB,SAAS,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;oBAErC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,4BAA4B,EAAE,OAAO,EAAE;wBACzF,IAAI,EAAE,IAAI;qBACX,CAAC,CAAC,CAAA;oBACH,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;oBAElC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;oBACrC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;oBAE3C,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;oBAClC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBACjD,CAAC,CAAC,CAAA;gBAEF,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;oBAChD,MAAM,KAAK,GAAG,GAAG,CAAA;oBACjB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;oBACpB,SAAS,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;oBAErC,MAAM,OAAO,CAAC,GAAG,CAAC;wBAChB,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,4BAA4B,EAAE,OAAO,EAAE;4BACnF,IAAI,EAAE,IAAI;yBACX,CAAC,CAAC;wBACH,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,4BAA4B,EAAE,OAAO,EAAE;4BACnF,IAAI,EAAE,IAAI;yBACX,CAAC,CAAC;qBACJ,CAAC,CAAA;oBAEF,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;oBAClC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;oBAEzD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;oBAClC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;gBAC3D,CAAC,CAAC,CAAA;gBAEF,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;oBAChD,MAAM,KAAK,GAAG,GAAG,CAAA;oBACjB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAA;oBAEtB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;oBACpB,SAAS,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;oBAErC,GAAG,CAAC,gBAAgB,CAAC,4BAA4B,EAAE,GAAG,EAAE;wBACtD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;wBAClC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;wBAClC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;wBAEzD,KAAK,CAAC,OAAO,EAAE,CAAA;oBACjB,CAAC,EAAE;wBACD,IAAI,EAAE,IAAI;qBACX,CAAC,CAAA;oBAEF,OAAO,MAAM,KAAK,CAAC,OAAO,CAAA;gBAC5B,CAAC,CAAC,CAAA;gBAEF,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;oBACjC,MAAM,KAAK,GAAG,GAAG,CAAA;oBACjB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAA;oBAEtB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;oBACpB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;oBACpB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;oBAEpB,4BAA4B;oBAC5B,MAAM,OAAO,CAAC,GAAG,CAAC;wBAChB,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,4BAA4B,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;4BAC7F,IAAI,EAAE,IAAI;yBACX,CAAC,CAAC;wBACH,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,4BAA4B,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;4BAC7F,IAAI,EAAE,IAAI;yBACX,CAAC,CAAC;wBACH,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,4BAA4B,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;4BAC7F,IAAI,EAAE,IAAI;yBACX,CAAC,CAAC;qBACJ,CAAC,CAAA;oBAEF,gBAAgB;oBAChB,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;oBAEjB,IAAI,OAAO,GAAG,CAAC,CAAA;oBAEf,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;oBACnC,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;oBACnC,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;oBAEnC,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAA;oBAEpD,SAAS,MAAM,CAAE,GAAyB;wBACxC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAA;wBACtB,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;wBACpD,KAAK,EAAE,CAAA;oBACT,CAAC;oBAED,SAAS,KAAK;wBACZ,IAAI,EAAE,OAAO,KAAK,CAAC,EAAE;4BACnB,GAAG,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;4BACtC,GAAG,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;4BACtC,GAAG,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;4BACtC,KAAK,CAAC,OAAO,EAAE,CAAA;yBAChB;oBACH,CAAC;oBAED,OAAO,MAAM,KAAK,CAAC,OAAO,CAAA;gBAC5B,CAAC,CAAC,CAAA;gBAEF,mDAAmD;gBACnD,oDAAoD;gBACpD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;oBAC5B,eAAe;oBACf,UAAU;oBACV,UAAU;oBACV,YAAY;oBACZ,YAAY;oBAEZ,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;wBACjC,MAAM,KAAK,GAAG,GAAG,CAAA;wBACjB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAA;wBACtB,IAAI,OAAO,GAAG,CAAC,CAAA;wBAEf,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;wBACpB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;wBACpB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;wBAEpB,4BAA4B;wBAC5B,MAAM,OAAO,CAAC,GAAG,CAAC;4BAChB,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,4BAA4B,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gCAC7F,IAAI,EAAE,IAAI;6BACX,CAAC,CAAC;4BACH,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,4BAA4B,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gCAC7F,IAAI,EAAE,IAAI;6BACX,CAAC,CAAC;4BACH,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,4BAA4B,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gCAC7F,IAAI,EAAE,IAAI;6BACX,CAAC,CAAC;yBACJ,CAAC,CAAA;wBAEF,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;wBACnC,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;wBACnC,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;wBAEnC,gBAAgB;wBAChB,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;wBAEjB,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAA;wBAEpD,SAAS,MAAM,CAAE,GAAyB;4BACxC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAA;4BACtB,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;4BACpD,KAAK,EAAE,CAAA;wBACT,CAAC;wBAED,SAAS,KAAK;4BACZ,IAAI,EAAE,OAAO,KAAK,CAAC,EAAE;gCACnB,GAAG,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;gCACtC,GAAG,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;gCACtC,GAAG,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;gCACtC,KAAK,CAAC,OAAO,EAAE,CAAA;6BAChB;wBACH,CAAC;wBAED,OAAO,MAAM,KAAK,CAAC,OAAO,CAAA;oBAC5B,CAAC,CAAC,CAAA;gBACJ,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YAEF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;gBAC5B,gBAAgB;gBAChB,WAAW;gBACX,WAAW;gBACX,cAAc;gBACd,cAAc;gBACd,gBAAgB;gBAChB,IAAI;gBACJ,IAAI,GAAqB,CAAA;gBACzB,IAAI,GAAqB,CAAA;gBACzB,IAAI,GAAqB,CAAA;gBACzB,IAAI,GAAqB,CAAA;gBACzB,IAAI,GAAqB,CAAA;gBAEzB,gCAAgC;gBAChC,UAAU,CAAC,KAAK,IAAI,EAAE;oBACpB,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;oBAC1B,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;oBAC1B,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;oBAC1B,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;oBAC1B,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAGzB;oBAAA,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;gBAClD,CAAC,CAAC,CAAA;gBAEF,gBAAgB;gBAChB,UAAU,CAAC,KAAK,IAAI,EAAE;oBACpB,mCAAmC;oBACnC,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;oBAClC,mCAAmC;oBACnC,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;oBAClC,mCAAmC;oBACnC,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;oBAClC,mCAAmC;oBACnC,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;oBAElC,uCAAuC;oBACvC,MAAM,QAAQ,CAAC,GAAG,EAAE,CAClB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;wBACpB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;wBACpB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;wBACpB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;wBACpB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CACrB,CAAA;gBACH,CAAC,CAAC,CAAA;gBAEF,SAAS,CAAC,KAAK,IAAI,EAAE;oBACnB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;oBAC9C,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAA;gBACzB,CAAC,CAAC,CAAA;gBAEF,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;oBACpB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;oBAClB,SAAS,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;oBACnC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;oBAClB,SAAS,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;oBACnC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;oBAClB,SAAS,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;oBACnC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;oBAClB,SAAS,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;oBACnC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;oBAClB,SAAS,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;gBACrC,CAAC,CAAC,CAAA;gBAEF,EAAE,CAAC,kBAAkB,EAAE,KAAK;oBAC1B,MAAM,KAAK,GAAG,MAAM,EAAE,CAAA;oBACtB,IAAI,OAAO,GAAG,CAAC,CAAA;oBAEf,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;oBAClB,GAAG,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;oBACjC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;oBAClB,GAAG,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;oBACjC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;oBAClB,GAAG,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;oBACjC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;oBAClB,GAAG,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;oBACjC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;oBAClB,GAAG,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;oBAEjC,MAAM,OAAO,CAAC,GAAG,CAAC;wBAChB,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;wBACrF,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;wBACrF,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;wBACrF,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;wBACrF,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;qBACtF,CAAC,CAAA;oBAEF,gBAAgB;oBAChB,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;oBAEjB,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC,CAAA;oBAEzD,SAAS,MAAM,CAAE,GAAyB;wBACxC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAA;wBACtB,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;wBAC3D,KAAK,EAAE,CAAA;oBACT,CAAC;oBAED,SAAS,KAAK;wBACZ,IAAI,EAAE,OAAO,KAAK,CAAC,EAAE;4BACnB,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;4BACpB,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;4BACpB,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;4BACpB,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;4BACpB,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;4BACpB,KAAK,CAAC,OAAO,EAAE,CAAA;yBAChB;oBACH,CAAC;oBAED,OAAO,MAAM,KAAK,CAAC,OAAO,CAAA;gBAC5B,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACtD,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;gBACpB,OAAO;gBACP,cAAc;gBACd,cAAc;gBAEd,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;gBACjB,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;YAClB,CAAC,CAAC,CAAA;YAEF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;gBAC5B,eAAe;gBACf,UAAU;gBACV,UAAU;gBACV,YAAY;gBACZ,YAAY;gBAEZ,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;gBACjB,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;YAClB,CAAC,CAAC,CAAA;YAEF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;gBAC5B,gBAAgB;gBAChB,WAAW;gBACX,WAAW;gBACX,cAAc;gBACd,cAAc;gBACd,gBAAgB;gBAChB,gBAAgB;gBAEhB,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;gBACjB,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;YAClB,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"multiple-nodes.js","sourceRoot":"","sources":["../../../src/pubsub/multiple-nodes.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { TestSetup } from '../index.js';
2
- import type { PubSub } from '@libp2p/interfaces/pubsub';
2
+ import type { PubSubOptions } from '@libp2p/interfaces/pubsub';
3
3
  import type { EventMap } from './index.js';
4
- declare const _default: (common: TestSetup<PubSub<EventMap>>) => void;
4
+ import type { PubsubBaseProtocol } from '@libp2p/pubsub';
5
+ declare const _default: (common: TestSetup<PubsubBaseProtocol<EventMap>, PubSubOptions>) => void;
5
6
  export default _default;
6
7
  //# sourceMappingURL=two-nodes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"two-nodes.d.ts","sourceRoot":"","sources":["../../../src/pubsub/two-nodes.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAW,MAAM,2BAA2B,CAAA;AAKhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;iCAQlB,UAAU,OAAO,QAAQ,CAAC,CAAC;AAAnD,wBAkLC"}
1
+ {"version":3,"file":"two-nodes.d.ts","sourceRoot":"","sources":["../../../src/pubsub/two-nodes.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAW,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAG1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;iCAQhC,UAAU,mBAAmB,QAAQ,CAAC,EAAE,aAAa,CAAC;AAA9E,wBA8OC"}