@libp2p/interface-compliance-tests 6.5.0-8484de8a2 → 6.5.0-87bc8d4fb

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 (131) hide show
  1. package/dist/src/connection-encryption/index.d.ts.map +1 -1
  2. package/dist/src/connection-encryption/index.js +15 -24
  3. package/dist/src/connection-encryption/index.js.map +1 -1
  4. package/dist/src/connection-encryption/utils/index.d.ts +3 -0
  5. package/dist/src/connection-encryption/utils/index.d.ts.map +1 -0
  6. package/dist/src/connection-encryption/utils/index.js +21 -0
  7. package/dist/src/connection-encryption/utils/index.js.map +1 -0
  8. package/dist/src/matchers.d.ts +12 -0
  9. package/dist/src/matchers.d.ts.map +1 -0
  10. package/dist/src/matchers.js +14 -0
  11. package/dist/src/matchers.js.map +1 -0
  12. package/dist/src/mocks/connection-manager.d.ts +27 -0
  13. package/dist/src/mocks/connection-manager.d.ts.map +1 -0
  14. package/dist/src/mocks/connection-manager.js +147 -0
  15. package/dist/src/mocks/connection-manager.js.map +1 -0
  16. package/dist/src/mocks/connection.d.ts +41 -0
  17. package/dist/src/mocks/connection.d.ts.map +1 -0
  18. package/dist/src/mocks/connection.js +236 -0
  19. package/dist/src/mocks/connection.js.map +1 -0
  20. package/dist/src/mocks/duplex.d.ts +4 -0
  21. package/dist/src/mocks/duplex.d.ts.map +1 -0
  22. package/dist/src/mocks/duplex.js +9 -0
  23. package/dist/src/mocks/duplex.js.map +1 -0
  24. package/dist/src/mocks/index.d.ts +12 -0
  25. package/dist/src/mocks/index.d.ts.map +1 -0
  26. package/dist/src/mocks/index.js +8 -0
  27. package/dist/src/mocks/index.js.map +1 -0
  28. package/dist/src/mocks/multiaddr-connection.d.ts +17 -0
  29. package/dist/src/mocks/multiaddr-connection.d.ts.map +1 -0
  30. package/dist/src/mocks/multiaddr-connection.js +64 -0
  31. package/dist/src/mocks/multiaddr-connection.js.map +1 -0
  32. package/dist/src/mocks/muxer.d.ts +36 -0
  33. package/dist/src/mocks/muxer.d.ts.map +1 -0
  34. package/dist/src/mocks/muxer.js +234 -0
  35. package/dist/src/mocks/muxer.js.map +1 -0
  36. package/dist/src/mocks/registrar.d.ts +16 -0
  37. package/dist/src/mocks/registrar.d.ts.map +1 -0
  38. package/dist/src/mocks/registrar.js +66 -0
  39. package/dist/src/mocks/registrar.js.map +1 -0
  40. package/dist/src/mocks/upgrader.d.ts +9 -0
  41. package/dist/src/mocks/upgrader.d.ts.map +1 -0
  42. package/dist/src/mocks/upgrader.js +46 -0
  43. package/dist/src/mocks/upgrader.js.map +1 -0
  44. package/dist/src/pubsub/api.d.ts +6 -0
  45. package/dist/src/pubsub/api.d.ts.map +1 -0
  46. package/dist/src/pubsub/api.js +88 -0
  47. package/dist/src/pubsub/api.js.map +1 -0
  48. package/dist/src/pubsub/connection-handlers.d.ts +6 -0
  49. package/dist/src/pubsub/connection-handlers.d.ts.map +1 -0
  50. package/dist/src/pubsub/connection-handlers.js +329 -0
  51. package/dist/src/pubsub/connection-handlers.js.map +1 -0
  52. package/dist/src/pubsub/emit-self.d.ts +6 -0
  53. package/dist/src/pubsub/emit-self.d.ts.map +1 -0
  54. package/dist/src/pubsub/emit-self.js +80 -0
  55. package/dist/src/pubsub/emit-self.js.map +1 -0
  56. package/dist/src/pubsub/index.d.ts +18 -0
  57. package/dist/src/pubsub/index.d.ts.map +1 -0
  58. package/dist/src/pubsub/index.js +17 -0
  59. package/dist/src/pubsub/index.js.map +1 -0
  60. package/dist/src/pubsub/messages.d.ts +6 -0
  61. package/dist/src/pubsub/messages.d.ts.map +1 -0
  62. package/dist/src/pubsub/messages.js +48 -0
  63. package/dist/src/pubsub/messages.js.map +1 -0
  64. package/dist/src/pubsub/multiple-nodes.d.ts +6 -0
  65. package/dist/src/pubsub/multiple-nodes.d.ts.map +1 -0
  66. package/dist/src/pubsub/multiple-nodes.js +350 -0
  67. package/dist/src/pubsub/multiple-nodes.js.map +1 -0
  68. package/dist/src/pubsub/two-nodes.d.ts +6 -0
  69. package/dist/src/pubsub/two-nodes.d.ts.map +1 -0
  70. package/dist/src/pubsub/two-nodes.js +216 -0
  71. package/dist/src/pubsub/two-nodes.js.map +1 -0
  72. package/dist/src/pubsub/utils.d.ts +5 -0
  73. package/dist/src/pubsub/utils.d.ts.map +1 -0
  74. package/dist/src/pubsub/utils.js +27 -0
  75. package/dist/src/pubsub/utils.js.map +1 -0
  76. package/dist/src/stream-muxer/base-test.d.ts.map +1 -1
  77. package/dist/src/stream-muxer/base-test.js +345 -62
  78. package/dist/src/stream-muxer/base-test.js.map +1 -1
  79. package/dist/src/stream-muxer/close-test.d.ts.map +1 -1
  80. package/dist/src/stream-muxer/close-test.js +320 -253
  81. package/dist/src/stream-muxer/close-test.js.map +1 -1
  82. package/dist/src/stream-muxer/index.js +2 -2
  83. package/dist/src/stream-muxer/index.js.map +1 -1
  84. package/dist/src/stream-muxer/{stream-test.d.ts → mega-stress-test.d.ts} +2 -2
  85. package/dist/src/stream-muxer/mega-stress-test.d.ts.map +1 -0
  86. package/dist/src/stream-muxer/mega-stress-test.js +11 -0
  87. package/dist/src/stream-muxer/mega-stress-test.js.map +1 -0
  88. package/dist/src/stream-muxer/spawner.d.ts +4 -0
  89. package/dist/src/stream-muxer/spawner.d.ts.map +1 -0
  90. package/dist/src/stream-muxer/spawner.js +39 -0
  91. package/dist/src/stream-muxer/spawner.js.map +1 -0
  92. package/dist/src/stream-muxer/stress-test.d.ts.map +1 -1
  93. package/dist/src/stream-muxer/stress-test.js +16 -70
  94. package/dist/src/stream-muxer/stress-test.js.map +1 -1
  95. package/dist/src/transport/index.d.ts.map +1 -1
  96. package/dist/src/transport/index.js +203 -232
  97. package/dist/src/transport/index.js.map +1 -1
  98. package/dist/src/transport/utils.js +2 -2
  99. package/dist/src/transport/utils.js.map +1 -1
  100. package/package.json +51 -23
  101. package/src/connection-encryption/index.ts +20 -27
  102. package/src/connection-encryption/utils/index.ts +27 -0
  103. package/src/matchers.ts +18 -0
  104. package/src/mocks/connection-manager.ts +216 -0
  105. package/src/mocks/connection.ts +309 -0
  106. package/src/mocks/duplex.ts +11 -0
  107. package/src/mocks/index.ts +11 -0
  108. package/src/mocks/multiaddr-connection.ts +80 -0
  109. package/src/mocks/muxer.ts +331 -0
  110. package/src/mocks/registrar.ts +86 -0
  111. package/src/mocks/upgrader.ts +65 -0
  112. package/src/pubsub/api.ts +116 -0
  113. package/src/pubsub/connection-handlers.ts +413 -0
  114. package/src/pubsub/emit-self.ts +99 -0
  115. package/src/pubsub/index.ts +34 -0
  116. package/src/pubsub/messages.ts +59 -0
  117. package/src/pubsub/multiple-nodes.ts +440 -0
  118. package/src/pubsub/two-nodes.ts +272 -0
  119. package/src/pubsub/utils.ts +34 -0
  120. package/src/stream-muxer/base-test.ts +413 -75
  121. package/src/stream-muxer/close-test.ts +343 -304
  122. package/src/stream-muxer/index.ts +2 -2
  123. package/src/stream-muxer/mega-stress-test.ts +14 -0
  124. package/src/stream-muxer/spawner.ts +57 -0
  125. package/src/stream-muxer/stress-test.ts +18 -92
  126. package/src/transport/index.ts +241 -280
  127. package/src/transport/utils.ts +2 -2
  128. package/dist/src/stream-muxer/stream-test.d.ts.map +0 -1
  129. package/dist/src/stream-muxer/stream-test.js +0 -289
  130. package/dist/src/stream-muxer/stream-test.js.map +0 -1
  131. package/src/stream-muxer/stream-test.ts +0 -380
@@ -0,0 +1,216 @@
1
+ /* eslint max-nested-callbacks: ["error", 6] */
2
+ import { TopicValidatorResult, start, stop } from '@libp2p/interface';
3
+ import { expect } from 'aegir/chai';
4
+ import pDefer from 'p-defer';
5
+ import pWaitFor from 'p-wait-for';
6
+ import sinon from 'sinon';
7
+ import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
8
+ import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
9
+ import { mockNetwork } from '../mocks/index.js';
10
+ import { createComponents, waitForSubscriptionUpdate } from './utils.js';
11
+ const topic = 'foo';
12
+ function shouldNotHappen() {
13
+ expect.fail();
14
+ }
15
+ export default (common) => {
16
+ describe('pubsub with two nodes', () => {
17
+ let psA;
18
+ let psB;
19
+ let componentsA;
20
+ let componentsB;
21
+ // Create pubsub nodes and connect them
22
+ beforeEach(async () => {
23
+ mockNetwork.reset();
24
+ componentsA = await createComponents();
25
+ componentsB = await createComponents();
26
+ psA = componentsA.pubsub = await common.setup({
27
+ components: componentsA,
28
+ init: {
29
+ emitSelf: true
30
+ }
31
+ });
32
+ psB = componentsB.pubsub = await common.setup({
33
+ components: componentsB,
34
+ init: {
35
+ emitSelf: false
36
+ }
37
+ });
38
+ // Start pubsub and connect nodes
39
+ await start(...Object.values(componentsA), ...Object.values(componentsB));
40
+ expect(psA.getPeers()).to.be.empty();
41
+ expect(psB.getPeers()).to.be.empty();
42
+ await componentsA.connectionManager.openConnection(componentsB.peerId);
43
+ // Wait for peers to be ready in pubsub
44
+ await pWaitFor(() => psA.getPeers().length === 1 && psB.getPeers().length === 1);
45
+ });
46
+ afterEach(async () => {
47
+ sinon.restore();
48
+ await stop(...Object.values(componentsA), ...Object.values(componentsB));
49
+ await common.teardown();
50
+ mockNetwork.reset();
51
+ });
52
+ it('Subscribe to a topic in nodeA', async () => {
53
+ const defer = pDefer();
54
+ psB.addEventListener('subscription-change', (evt) => {
55
+ const { peerId: changedPeerId, subscriptions: changedSubs } = evt.detail;
56
+ expect(psA.getTopics()).to.deep.equal([topic]);
57
+ expect(psB.getPeers()).to.have.lengthOf(1);
58
+ expect(psB.getSubscribers(topic).map(p => p.toString())).to.deep.equal([componentsA.peerId.toString()]);
59
+ expect(changedPeerId.toString()).to.equal(psB.getPeers()[0].toString());
60
+ expect(changedSubs).to.have.lengthOf(1);
61
+ expect(changedSubs[0].topic).to.equal(topic);
62
+ expect(changedSubs[0].subscribe).to.equal(true);
63
+ defer.resolve();
64
+ }, {
65
+ once: true
66
+ });
67
+ psA.subscribe(topic);
68
+ return defer.promise;
69
+ });
70
+ it('Publish to a topic in nodeA', async () => {
71
+ const defer = pDefer();
72
+ psA.addEventListener('message', (evt) => {
73
+ if (evt.detail.topic === topic) {
74
+ const msg = evt.detail;
75
+ expect(uint8ArrayToString(msg.data)).to.equal('hey');
76
+ psB.removeEventListener('message', shouldNotHappen);
77
+ defer.resolve();
78
+ }
79
+ }, {
80
+ once: true
81
+ });
82
+ psA.subscribe(topic);
83
+ psB.subscribe(topic);
84
+ await Promise.all([
85
+ waitForSubscriptionUpdate(psA, componentsB.peerId),
86
+ waitForSubscriptionUpdate(psB, componentsA.peerId)
87
+ ]);
88
+ await psA.publish(topic, uint8ArrayFromString('hey'));
89
+ return defer.promise;
90
+ });
91
+ it('Publish to a topic in nodeB', async () => {
92
+ const defer = pDefer();
93
+ psA.addEventListener('message', (evt) => {
94
+ if (evt.detail.topic !== topic) {
95
+ return;
96
+ }
97
+ const msg = evt.detail;
98
+ psA.addEventListener('message', (evt) => {
99
+ if (evt.detail.topic === topic) {
100
+ shouldNotHappen();
101
+ }
102
+ }, {
103
+ once: true
104
+ });
105
+ expect(uint8ArrayToString(msg.data)).to.equal('banana');
106
+ setTimeout(() => {
107
+ psA.removeEventListener('message');
108
+ psB.removeEventListener('message');
109
+ defer.resolve();
110
+ }, 100);
111
+ }, {
112
+ once: true
113
+ });
114
+ psB.addEventListener('message', shouldNotHappen);
115
+ psA.subscribe(topic);
116
+ psB.subscribe(topic);
117
+ await Promise.all([
118
+ waitForSubscriptionUpdate(psA, componentsB.peerId),
119
+ waitForSubscriptionUpdate(psB, componentsA.peerId)
120
+ ]);
121
+ await psB.publish(topic, uint8ArrayFromString('banana'));
122
+ return defer.promise;
123
+ });
124
+ it('validate topic message', async () => {
125
+ const defer = pDefer();
126
+ psA.subscribe(topic);
127
+ psB.topicValidators.set(topic, (peer, message) => {
128
+ if (!peer.equals(componentsA.peerId)) {
129
+ defer.reject(new Error('Invalid peer id in topic validator fn'));
130
+ return TopicValidatorResult.Reject;
131
+ }
132
+ if (uint8ArrayToString(message.data) !== 'hey') {
133
+ defer.reject(new Error('Invalid message in topic validator fn'));
134
+ return TopicValidatorResult.Reject;
135
+ }
136
+ defer.resolve();
137
+ return TopicValidatorResult.Accept;
138
+ });
139
+ psB.subscribe(topic);
140
+ await Promise.all([
141
+ waitForSubscriptionUpdate(psA, componentsB.peerId),
142
+ waitForSubscriptionUpdate(psB, componentsA.peerId)
143
+ ]);
144
+ await psA.publish(topic, uint8ArrayFromString('hey'));
145
+ return defer.promise;
146
+ });
147
+ it('Publish 10 msg to a topic in nodeB', async () => {
148
+ const defer = pDefer();
149
+ let counter = 0;
150
+ psB.addEventListener('message', shouldNotHappen);
151
+ psA.addEventListener('message', receivedMsg);
152
+ function receivedMsg(evt) {
153
+ const msg = evt.detail;
154
+ if (msg.type === 'unsigned') {
155
+ expect(uint8ArrayToString(msg.data)).to.equal('banana');
156
+ expect(msg.topic).to.be.equal(topic);
157
+ }
158
+ else {
159
+ expect(uint8ArrayToString(msg.data)).to.equal('banana');
160
+ expect(msg.from.toString()).to.equal(componentsB.peerId.toString());
161
+ expect(msg.sequenceNumber).to.be.a('BigInt');
162
+ expect(msg.topic).to.be.equal(topic);
163
+ }
164
+ if (++counter === 10) {
165
+ psA.removeEventListener('message', receivedMsg);
166
+ psB.removeEventListener('message', shouldNotHappen);
167
+ defer.resolve();
168
+ }
169
+ }
170
+ psA.subscribe(topic);
171
+ psB.subscribe(topic);
172
+ await Promise.all([
173
+ waitForSubscriptionUpdate(psA, componentsB.peerId),
174
+ waitForSubscriptionUpdate(psB, componentsA.peerId)
175
+ ]);
176
+ await Promise.all(Array.from({ length: 10 }, async (_, i) => {
177
+ await psB.publish(topic, uint8ArrayFromString('banana'));
178
+ }));
179
+ return defer.promise;
180
+ });
181
+ it('Unsubscribe from topic in nodeA', async () => {
182
+ const defer = pDefer();
183
+ let callCount = 0;
184
+ psB.addEventListener('subscription-change', (evt) => {
185
+ callCount++;
186
+ if (callCount === 1) {
187
+ // notice subscribe
188
+ const { peerId: changedPeerId, subscriptions: changedSubs } = evt.detail;
189
+ expect(psB.getPeers()).to.have.lengthOf(1);
190
+ expect(psB.getTopics()).to.be.empty();
191
+ expect(changedPeerId.toString()).to.equal(psB.getPeers()[0].toString());
192
+ expect(changedSubs).to.have.lengthOf(1);
193
+ expect(changedSubs[0].topic).to.equal(topic);
194
+ expect(changedSubs[0].subscribe).to.equal(true);
195
+ }
196
+ else {
197
+ // notice unsubscribe
198
+ const { peerId: changedPeerId, subscriptions: changedSubs } = evt.detail;
199
+ expect(psB.getPeers()).to.have.lengthOf(1);
200
+ expect(psB.getTopics()).to.be.empty();
201
+ expect(changedPeerId.toString()).to.equal(psB.getPeers()[0].toString());
202
+ expect(changedSubs).to.have.lengthOf(1);
203
+ expect(changedSubs[0].topic).to.equal(topic);
204
+ expect(changedSubs[0].subscribe).to.equal(false);
205
+ defer.resolve();
206
+ }
207
+ });
208
+ psA.subscribe(topic);
209
+ expect(psA.getTopics()).to.not.be.empty();
210
+ psA.unsubscribe(topic);
211
+ expect(psA.getTopics()).to.be.empty();
212
+ return defer.promise;
213
+ });
214
+ });
215
+ };
216
+ //# sourceMappingURL=two-nodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"two-nodes.js","sourceRoot":"","sources":["../../../src/pubsub/two-nodes.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAKxE,MAAM,KAAK,GAAG,KAAK,CAAA;AAEnB,SAAS,eAAe;IACtB,MAAM,CAAC,IAAI,EAAE,CAAA;AACf,CAAC;AAED,eAAe,CAAC,MAAqC,EAAQ,EAAE;IAC7D,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,IAAI,GAAW,CAAA;QACf,IAAI,GAAW,CAAA;QACf,IAAI,WAA6B,CAAA;QACjC,IAAI,WAA6B,CAAA;QAEjC,uCAAuC;QACvC,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,WAAW,CAAC,KAAK,EAAE,CAAA;YAEnB,WAAW,GAAG,MAAM,gBAAgB,EAAE,CAAA;YACtC,WAAW,GAAG,MAAM,gBAAgB,EAAE,CAAA;YAEtC,GAAG,GAAG,WAAW,CAAC,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;gBAC5C,UAAU,EAAE,WAAW;gBACvB,IAAI,EAAE;oBACJ,QAAQ,EAAE,IAAI;iBACf;aACF,CAAC,CAAA;YACF,GAAG,GAAG,WAAW,CAAC,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;gBAC5C,UAAU,EAAE,WAAW;gBACvB,IAAI,EAAE;oBACJ,QAAQ,EAAE,KAAK;iBAChB;aACF,CAAC,CAAA;YAEF,iCAAiC;YACjC,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAA;YAEzE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;YACpC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;YAEpC,MAAM,WAAW,CAAC,iBAAiB,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;YAEtE,uCAAuC;YACvC,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAA;QAClF,CAAC,CAAC,CAAA;QAEF,SAAS,CAAC,KAAK,IAAI,EAAE;YACnB,KAAK,CAAC,OAAO,EAAE,CAAA;YACf,MAAM,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAA;YACxE,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAA;YACvB,WAAW,CAAC,KAAK,EAAE,CAAA;QACrB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC7C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAA;YAEtB,GAAG,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,CAAC,GAAG,EAAE,EAAE;gBAClD,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,CAAA;gBACxE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;gBAC9C,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;gBAC1C,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;gBACvG,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;gBACvE,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;gBACvC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBAC5C,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAC/C,KAAK,CAAC,OAAO,EAAE,CAAA;YACjB,CAAC,EAAE;gBACD,IAAI,EAAE,IAAI;aACX,CAAC,CAAA;YACF,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YAEpB,OAAO,KAAK,CAAC,OAAO,CAAA;QACtB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YAC3C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAA;YAEtB,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;gBACtC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;oBAC/B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAA;oBACtB,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;oBACpD,GAAG,CAAC,mBAAmB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;oBACnD,KAAK,CAAC,OAAO,EAAE,CAAA;gBACjB,CAAC;YACH,CAAC,EAAE;gBACD,IAAI,EAAE,IAAI;aACX,CAAC,CAAA;YAEF,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YACpB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YAEpB,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,yBAAyB,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC;gBAClD,yBAAyB,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC;aACnD,CAAC,CAAA;YAEF,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAA;YAErD,OAAO,KAAK,CAAC,OAAO,CAAA;QACtB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YAC3C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAA;YAEtB,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;gBACtC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;oBAC/B,OAAM;gBACR,CAAC;gBAED,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAA;gBACtB,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;oBACtC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;wBAC/B,eAAe,EAAE,CAAA;oBACnB,CAAC;gBACH,CAAC,EAAE;oBACD,IAAI,EAAE,IAAI;iBACX,CAAC,CAAA;gBACF,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBAEvD,UAAU,CAAC,GAAG,EAAE;oBACd,GAAG,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAA;oBAClC,GAAG,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAA;oBAElC,KAAK,CAAC,OAAO,EAAE,CAAA;gBACjB,CAAC,EAAE,GAAG,CAAC,CAAA;YACT,CAAC,EAAE;gBACD,IAAI,EAAE,IAAI;aACX,CAAC,CAAA;YAEF,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;YAEhD,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YACpB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YAEpB,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,yBAAyB,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC;gBAClD,yBAAyB,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC;aACnD,CAAC,CAAA;YAEF,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAA;YAExD,OAAO,KAAK,CAAC,OAAO,CAAA;QACtB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACtC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAA;YAEtB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YAEpB,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;gBAC/C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;oBACrC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAA;oBAChE,OAAO,oBAAoB,CAAC,MAAM,CAAA;gBACpC,CAAC;gBAED,IAAI,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;oBAC/C,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAA;oBAChE,OAAO,oBAAoB,CAAC,MAAM,CAAA;gBACpC,CAAC;gBAED,KAAK,CAAC,OAAO,EAAE,CAAA;gBACf,OAAO,oBAAoB,CAAC,MAAM,CAAA;YACpC,CAAC,CAAC,CAAA;YACF,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YAEpB,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,yBAAyB,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC;gBAClD,yBAAyB,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC;aACnD,CAAC,CAAA;YAEF,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAA;YAErD,OAAO,KAAK,CAAC,OAAO,CAAA;QACtB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAA;YACtB,IAAI,OAAO,GAAG,CAAC,CAAA;YAEf,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;YAChD,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;YAE5C,SAAS,WAAW,CAAE,GAAyB;gBAC7C,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAA;gBACtB,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC5B,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;oBACvD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBACtC,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;oBACvD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;oBACnE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;oBAC5C,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBACtC,CAAC;gBAED,IAAI,EAAE,OAAO,KAAK,EAAE,EAAE,CAAC;oBACrB,GAAG,CAAC,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;oBAC/C,GAAG,CAAC,mBAAmB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;oBAEnD,KAAK,CAAC,OAAO,EAAE,CAAA;gBACjB,CAAC;YACH,CAAC;YAED,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YACpB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YAEpB,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,yBAAyB,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC;gBAClD,yBAAyB,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC;aACnD,CAAC,CAAA;YAEF,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;gBACxC,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC1D,CAAC,CAAC,CACH,CAAA;YAED,OAAO,KAAK,CAAC,OAAO,CAAA;QACtB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAA;YACtB,IAAI,SAAS,GAAG,CAAC,CAAA;YAEjB,GAAG,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,CAAC,GAAG,EAAE,EAAE;gBAClD,SAAS,EAAE,CAAA;gBAEX,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;oBACpB,mBAAmB;oBACnB,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,CAAA;oBACxE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;oBAC1C,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;oBACrC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;oBACvE,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;oBACvC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;oBAC5C,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACjD,CAAC;qBAAM,CAAC;oBACN,qBAAqB;oBACrB,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,CAAA;oBACxE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;oBAC1C,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;oBACrC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;oBACvE,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;oBACvC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;oBAC5C,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;oBAEhD,KAAK,CAAC,OAAO,EAAE,CAAA;gBACjB,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YACpB,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;YAEzC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACtB,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;YAErC,OAAO,KAAK,CAAC,OAAO,CAAA;QACtB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { MockNetworkComponents } from '../mocks/index.js';
2
+ import type { PeerId, PubSub } from '@libp2p/interface';
3
+ export declare function waitForSubscriptionUpdate(a: PubSub, b: PeerId): Promise<void>;
4
+ export declare function createComponents(): Promise<MockNetworkComponents>;
5
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/pubsub/utils.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAA0B,MAAM,mBAAmB,CAAA;AAE/E,wBAAsB,yBAAyB,CAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpF;AAED,wBAAsB,gBAAgB,IAAK,OAAO,CAAC,qBAAqB,CAAC,CAexE"}
@@ -0,0 +1,27 @@
1
+ import { generateKeyPair } from '@libp2p/crypto/keys';
2
+ import { defaultLogger } from '@libp2p/logger';
3
+ import { peerIdFromPrivateKey } from '@libp2p/peer-id';
4
+ import { TypedEventEmitter } from 'main-event';
5
+ import { pEvent } from 'p-event';
6
+ import pWaitFor from 'p-wait-for';
7
+ import { mockConnectionManager, mockRegistrar, mockNetwork } from '../mocks/index.js';
8
+ export async function waitForSubscriptionUpdate(a, b) {
9
+ await pWaitFor(async () => {
10
+ const event = await pEvent(a, 'subscription-change');
11
+ return event.detail.peerId.equals(b);
12
+ });
13
+ }
14
+ export async function createComponents() {
15
+ const privateKey = await generateKeyPair('Ed25519');
16
+ const components = {
17
+ peerId: peerIdFromPrivateKey(privateKey),
18
+ privateKey,
19
+ registrar: mockRegistrar(),
20
+ events: new TypedEventEmitter(),
21
+ logger: defaultLogger()
22
+ };
23
+ components.connectionManager = mockConnectionManager(components);
24
+ mockNetwork.addNode(components);
25
+ return components;
26
+ }
27
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/pubsub/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAIrF,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAE,CAAS,EAAE,CAAS;IACnE,MAAM,QAAQ,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,KAAK,GAAG,MAAM,MAAM,CAA6D,CAAC,EAAE,qBAAqB,CAAC,CAAA;QAEhH,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,CAAA;IAEnD,MAAM,UAAU,GAAQ;QACtB,MAAM,EAAE,oBAAoB,CAAC,UAAU,CAAC;QACxC,UAAU;QACV,SAAS,EAAE,aAAa,EAAE;QAC1B,MAAM,EAAE,IAAI,iBAAiB,EAAE;QAC/B,MAAM,EAAE,aAAa,EAAE;KACxB,CAAA;IACD,UAAU,CAAC,iBAAiB,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAA;IAEhE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAE/B,OAAO,UAAU,CAAA;AACnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-test.d.ts","sourceRoot":"","sources":["../../../src/stream-muxer/base-test.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAuB,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;yBAEhE,QAAQ,SAAS,CAAC,kBAAkB,CAAC,KAAG,IAAI;AAA5D,wBAgHC"}
1
+ {"version":3,"file":"base-test.d.ts","sourceRoot":"","sources":["../../../src/stream-muxer/base-test.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAU,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;yBAInD,QAAQ,SAAS,CAAC,kBAAkB,CAAC,KAAG,IAAI;AAA5D,wBAybC"}