@libp2p/interface-compliance-tests 6.5.0 → 7.0.0-049bfa0fa

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 (133) hide show
  1. package/dist/src/connection-encryption/index.d.ts.map +1 -1
  2. package/dist/src/connection-encryption/index.js +24 -15
  3. package/dist/src/connection-encryption/index.js.map +1 -1
  4. package/dist/src/stream-muxer/base-test.d.ts.map +1 -1
  5. package/dist/src/stream-muxer/base-test.js +62 -345
  6. package/dist/src/stream-muxer/base-test.js.map +1 -1
  7. package/dist/src/stream-muxer/close-test.d.ts.map +1 -1
  8. package/dist/src/stream-muxer/close-test.js +254 -320
  9. package/dist/src/stream-muxer/close-test.js.map +1 -1
  10. package/dist/src/stream-muxer/index.js +2 -2
  11. package/dist/src/stream-muxer/index.js.map +1 -1
  12. package/dist/src/stream-muxer/{mega-stress-test.d.ts → stream-test.d.ts} +2 -2
  13. package/dist/src/stream-muxer/stream-test.d.ts.map +1 -0
  14. package/dist/src/stream-muxer/stream-test.js +290 -0
  15. package/dist/src/stream-muxer/stream-test.js.map +1 -0
  16. package/dist/src/stream-muxer/stress-test.d.ts.map +1 -1
  17. package/dist/src/stream-muxer/stress-test.js +70 -16
  18. package/dist/src/stream-muxer/stress-test.js.map +1 -1
  19. package/dist/src/transport/index.d.ts.map +1 -1
  20. package/dist/src/transport/index.js +235 -205
  21. package/dist/src/transport/index.js.map +1 -1
  22. package/dist/src/transport/utils.d.ts.map +1 -1
  23. package/dist/src/transport/utils.js +3 -2
  24. package/dist/src/transport/utils.js.map +1 -1
  25. package/package.json +23 -51
  26. package/src/connection-encryption/index.ts +27 -20
  27. package/src/stream-muxer/base-test.ts +75 -413
  28. package/src/stream-muxer/close-test.ts +305 -343
  29. package/src/stream-muxer/index.ts +2 -2
  30. package/src/stream-muxer/stream-test.ts +381 -0
  31. package/src/stream-muxer/stress-test.ts +92 -18
  32. package/src/transport/index.ts +281 -241
  33. package/src/transport/utils.ts +3 -2
  34. package/dist/src/connection-encryption/utils/index.d.ts +0 -3
  35. package/dist/src/connection-encryption/utils/index.d.ts.map +0 -1
  36. package/dist/src/connection-encryption/utils/index.js +0 -21
  37. package/dist/src/connection-encryption/utils/index.js.map +0 -1
  38. package/dist/src/matchers.d.ts +0 -12
  39. package/dist/src/matchers.d.ts.map +0 -1
  40. package/dist/src/matchers.js +0 -14
  41. package/dist/src/matchers.js.map +0 -1
  42. package/dist/src/mocks/connection-manager.d.ts +0 -27
  43. package/dist/src/mocks/connection-manager.d.ts.map +0 -1
  44. package/dist/src/mocks/connection-manager.js +0 -147
  45. package/dist/src/mocks/connection-manager.js.map +0 -1
  46. package/dist/src/mocks/connection.d.ts +0 -41
  47. package/dist/src/mocks/connection.d.ts.map +0 -1
  48. package/dist/src/mocks/connection.js +0 -236
  49. package/dist/src/mocks/connection.js.map +0 -1
  50. package/dist/src/mocks/duplex.d.ts +0 -4
  51. package/dist/src/mocks/duplex.d.ts.map +0 -1
  52. package/dist/src/mocks/duplex.js +0 -9
  53. package/dist/src/mocks/duplex.js.map +0 -1
  54. package/dist/src/mocks/index.d.ts +0 -12
  55. package/dist/src/mocks/index.d.ts.map +0 -1
  56. package/dist/src/mocks/index.js +0 -8
  57. package/dist/src/mocks/index.js.map +0 -1
  58. package/dist/src/mocks/multiaddr-connection.d.ts +0 -17
  59. package/dist/src/mocks/multiaddr-connection.d.ts.map +0 -1
  60. package/dist/src/mocks/multiaddr-connection.js +0 -64
  61. package/dist/src/mocks/multiaddr-connection.js.map +0 -1
  62. package/dist/src/mocks/muxer.d.ts +0 -36
  63. package/dist/src/mocks/muxer.d.ts.map +0 -1
  64. package/dist/src/mocks/muxer.js +0 -234
  65. package/dist/src/mocks/muxer.js.map +0 -1
  66. package/dist/src/mocks/registrar.d.ts +0 -16
  67. package/dist/src/mocks/registrar.d.ts.map +0 -1
  68. package/dist/src/mocks/registrar.js +0 -66
  69. package/dist/src/mocks/registrar.js.map +0 -1
  70. package/dist/src/mocks/upgrader.d.ts +0 -9
  71. package/dist/src/mocks/upgrader.d.ts.map +0 -1
  72. package/dist/src/mocks/upgrader.js +0 -46
  73. package/dist/src/mocks/upgrader.js.map +0 -1
  74. package/dist/src/pubsub/api.d.ts +0 -6
  75. package/dist/src/pubsub/api.d.ts.map +0 -1
  76. package/dist/src/pubsub/api.js +0 -88
  77. package/dist/src/pubsub/api.js.map +0 -1
  78. package/dist/src/pubsub/connection-handlers.d.ts +0 -6
  79. package/dist/src/pubsub/connection-handlers.d.ts.map +0 -1
  80. package/dist/src/pubsub/connection-handlers.js +0 -329
  81. package/dist/src/pubsub/connection-handlers.js.map +0 -1
  82. package/dist/src/pubsub/emit-self.d.ts +0 -6
  83. package/dist/src/pubsub/emit-self.d.ts.map +0 -1
  84. package/dist/src/pubsub/emit-self.js +0 -80
  85. package/dist/src/pubsub/emit-self.js.map +0 -1
  86. package/dist/src/pubsub/index.d.ts +0 -18
  87. package/dist/src/pubsub/index.d.ts.map +0 -1
  88. package/dist/src/pubsub/index.js +0 -17
  89. package/dist/src/pubsub/index.js.map +0 -1
  90. package/dist/src/pubsub/messages.d.ts +0 -6
  91. package/dist/src/pubsub/messages.d.ts.map +0 -1
  92. package/dist/src/pubsub/messages.js +0 -48
  93. package/dist/src/pubsub/messages.js.map +0 -1
  94. package/dist/src/pubsub/multiple-nodes.d.ts +0 -6
  95. package/dist/src/pubsub/multiple-nodes.d.ts.map +0 -1
  96. package/dist/src/pubsub/multiple-nodes.js +0 -350
  97. package/dist/src/pubsub/multiple-nodes.js.map +0 -1
  98. package/dist/src/pubsub/two-nodes.d.ts +0 -6
  99. package/dist/src/pubsub/two-nodes.d.ts.map +0 -1
  100. package/dist/src/pubsub/two-nodes.js +0 -216
  101. package/dist/src/pubsub/two-nodes.js.map +0 -1
  102. package/dist/src/pubsub/utils.d.ts +0 -5
  103. package/dist/src/pubsub/utils.d.ts.map +0 -1
  104. package/dist/src/pubsub/utils.js +0 -27
  105. package/dist/src/pubsub/utils.js.map +0 -1
  106. package/dist/src/stream-muxer/mega-stress-test.d.ts.map +0 -1
  107. package/dist/src/stream-muxer/mega-stress-test.js +0 -11
  108. package/dist/src/stream-muxer/mega-stress-test.js.map +0 -1
  109. package/dist/src/stream-muxer/spawner.d.ts +0 -4
  110. package/dist/src/stream-muxer/spawner.d.ts.map +0 -1
  111. package/dist/src/stream-muxer/spawner.js +0 -39
  112. package/dist/src/stream-muxer/spawner.js.map +0 -1
  113. package/dist/typedoc-urls.json +0 -44
  114. package/src/connection-encryption/utils/index.ts +0 -27
  115. package/src/matchers.ts +0 -18
  116. package/src/mocks/connection-manager.ts +0 -216
  117. package/src/mocks/connection.ts +0 -309
  118. package/src/mocks/duplex.ts +0 -11
  119. package/src/mocks/index.ts +0 -11
  120. package/src/mocks/multiaddr-connection.ts +0 -80
  121. package/src/mocks/muxer.ts +0 -331
  122. package/src/mocks/registrar.ts +0 -86
  123. package/src/mocks/upgrader.ts +0 -65
  124. package/src/pubsub/api.ts +0 -116
  125. package/src/pubsub/connection-handlers.ts +0 -413
  126. package/src/pubsub/emit-self.ts +0 -99
  127. package/src/pubsub/index.ts +0 -34
  128. package/src/pubsub/messages.ts +0 -59
  129. package/src/pubsub/multiple-nodes.ts +0 -440
  130. package/src/pubsub/two-nodes.ts +0 -272
  131. package/src/pubsub/utils.ts +0 -34
  132. package/src/stream-muxer/mega-stress-test.ts +0 -14
  133. package/src/stream-muxer/spawner.ts +0 -57
@@ -1,6 +0,0 @@
1
- import type { PubSubArgs } from './index.js';
2
- import type { TestSetup } from '../index.js';
3
- import type { PubSub } from '@libp2p/interface';
4
- declare const _default: (common: TestSetup<PubSub, PubSubArgs>) => void;
5
- export default _default;
6
- //# sourceMappingURL=connection-handlers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connection-handlers.d.ts","sourceRoot":"","sources":["../../../src/pubsub/connection-handlers.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,KAAK,EAAW,MAAM,EAAE,MAAM,mBAAmB,CAAA;yBAExC,QAAQ,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,KAAG,IAAI;AAA5D,wBA6YC"}
@@ -1,329 +0,0 @@
1
- import { start, stop } from '@libp2p/interface';
2
- import { expect } from 'aegir/chai';
3
- import pDefer from 'p-defer';
4
- import { pEvent } from 'p-event';
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 } from './utils.js';
11
- export default (common) => {
12
- describe('pubsub connection handlers', () => {
13
- let psA;
14
- let psB;
15
- let componentsA;
16
- let componentsB;
17
- describe('nodes send state on connection', () => {
18
- // Create pubsub nodes and connect them
19
- beforeEach(async () => {
20
- mockNetwork.reset();
21
- componentsA = await createComponents();
22
- componentsB = await createComponents();
23
- psA = componentsA.pubsub = await common.setup({
24
- components: componentsA,
25
- init: {}
26
- });
27
- psB = componentsB.pubsub = await common.setup({
28
- components: componentsB,
29
- init: {}
30
- });
31
- // Start pubsub
32
- await start(...Object.values(componentsA), ...Object.values(componentsB));
33
- expect(psA.getPeers()).to.be.empty();
34
- expect(psB.getPeers()).to.be.empty();
35
- // Make subscriptions prior to nodes connected
36
- psA.subscribe('Za');
37
- psB.subscribe('Zb');
38
- expect(psA.getPeers()).to.be.empty();
39
- expect(psA.getTopics()).to.deep.equal(['Za']);
40
- expect(psB.getPeers()).to.be.empty();
41
- expect(psB.getTopics()).to.deep.equal(['Zb']);
42
- });
43
- afterEach(async () => {
44
- sinon.restore();
45
- await stop(...Object.values(componentsA), ...Object.values(componentsB));
46
- await common.teardown();
47
- mockNetwork.reset();
48
- });
49
- it('existing subscriptions are sent upon peer connection', async function () {
50
- const subscriptionsChanged = Promise.all([
51
- pEvent(psA, 'subscription-change'),
52
- pEvent(psB, 'subscription-change')
53
- ]);
54
- await componentsA.connectionManager.openConnection(componentsB.peerId);
55
- await subscriptionsChanged;
56
- expect(psA.getPeers()).to.have.lengthOf(1);
57
- expect(psB.getPeers()).to.have.lengthOf(1);
58
- expect(psA.getTopics()).to.deep.equal(['Za']);
59
- expect(psB.getTopics()).to.deep.equal(['Zb']);
60
- expect(psA.getSubscribers('Zb').map(p => p.toString())).to.deep.equal([componentsB.peerId.toString()]);
61
- expect(psB.getSubscribers('Za').map(p => p.toString())).to.deep.equal([componentsA.peerId.toString()]);
62
- });
63
- });
64
- describe('pubsub started before connect', () => {
65
- let psA;
66
- let psB;
67
- let componentsA;
68
- let componentsB;
69
- // Create pubsub nodes and start them
70
- beforeEach(async () => {
71
- mockNetwork.reset();
72
- componentsA = await createComponents();
73
- componentsB = await createComponents();
74
- psA = componentsA.pubsub = await common.setup({
75
- components: componentsA,
76
- init: {}
77
- });
78
- psB = componentsB.pubsub = await common.setup({
79
- components: componentsB,
80
- init: {}
81
- });
82
- await start(...Object.values(componentsA), ...Object.values(componentsB));
83
- });
84
- afterEach(async () => {
85
- sinon.restore();
86
- await stop(...Object.values(componentsA), ...Object.values(componentsB));
87
- await common.teardown();
88
- mockNetwork.reset();
89
- });
90
- it('should get notified of connected peers on dial', async () => {
91
- await componentsA.connectionManager.openConnection(componentsB.peerId);
92
- return Promise.all([
93
- pWaitFor(() => psA.getPeers().length === 1),
94
- pWaitFor(() => psB.getPeers().length === 1)
95
- ]);
96
- });
97
- it('should receive pubsub messages', async () => {
98
- const defer = pDefer();
99
- const topic = 'test-topic';
100
- const data = uint8ArrayFromString('hey!');
101
- await componentsA.connectionManager.openConnection(componentsB.peerId);
102
- let subscribedTopics = psA.getTopics();
103
- expect(subscribedTopics).to.not.include(topic);
104
- psA.subscribe(topic);
105
- psA.addEventListener('message', (evt) => {
106
- if (evt.detail.topic === topic) {
107
- const msg = evt.detail;
108
- expect(msg.data).to.equalBytes(data);
109
- defer.resolve();
110
- }
111
- });
112
- psA.subscribe(topic);
113
- subscribedTopics = psA.getTopics();
114
- expect(subscribedTopics).to.include(topic);
115
- // wait for psB to know about psA subscription
116
- await pWaitFor(() => {
117
- const subscribedPeers = psB.getSubscribers(topic);
118
- return subscribedPeers.map(p => p.toString()).includes(componentsA.peerId.toString()); // eslint-disable-line max-nested-callbacks
119
- });
120
- await psB.publish(topic, data);
121
- await defer.promise;
122
- });
123
- });
124
- describe('pubsub started after connect', () => {
125
- let psA;
126
- let psB;
127
- let componentsA;
128
- let componentsB;
129
- // Create pubsub nodes
130
- beforeEach(async () => {
131
- mockNetwork.reset();
132
- componentsA = await createComponents();
133
- componentsB = await createComponents();
134
- psA = componentsA.pubsub = await common.setup({
135
- components: componentsA,
136
- init: {}
137
- });
138
- psB = componentsB.pubsub = await common.setup({
139
- components: componentsB,
140
- init: {}
141
- });
142
- });
143
- afterEach(async () => {
144
- sinon.restore();
145
- await stop(...Object.values(componentsA), ...Object.values(componentsB));
146
- await common.teardown();
147
- mockNetwork.reset();
148
- });
149
- it('should get notified of connected peers after starting', async () => {
150
- await start(...Object.values(componentsA), ...Object.values(componentsB));
151
- await componentsA.connectionManager.openConnection(componentsB.peerId);
152
- return Promise.all([
153
- pWaitFor(() => psA.getPeers().length === 1),
154
- pWaitFor(() => psB.getPeers().length === 1)
155
- ]);
156
- });
157
- it('should receive pubsub messages', async () => {
158
- const defer = pDefer();
159
- const topic = 'test-topic';
160
- const data = uint8ArrayFromString('hey!');
161
- await start(...Object.values(componentsA), ...Object.values(componentsB));
162
- await componentsA.connectionManager.openConnection(componentsB.peerId);
163
- await Promise.all([
164
- pWaitFor(() => psA.getPeers().length === 1),
165
- pWaitFor(() => psB.getPeers().length === 1)
166
- ]);
167
- let subscribedTopics = psA.getTopics();
168
- expect(subscribedTopics).to.not.include(topic);
169
- psA.subscribe(topic);
170
- psA.addEventListener('message', (evt) => {
171
- if (evt.detail.topic === topic) {
172
- const msg = evt.detail;
173
- expect(msg.data).to.equalBytes(data);
174
- defer.resolve();
175
- }
176
- });
177
- psA.subscribe(topic);
178
- subscribedTopics = psA.getTopics();
179
- expect(subscribedTopics).to.include(topic);
180
- // wait for psB to know about psA subscription
181
- await pWaitFor(() => {
182
- const subscribedPeers = psB.getSubscribers(topic);
183
- return subscribedPeers.map(p => p.toString()).includes(componentsA.peerId.toString()); // eslint-disable-line max-nested-callbacks
184
- });
185
- await psB.publish(topic, data);
186
- await defer.promise;
187
- });
188
- });
189
- describe('pubsub with intermittent connections', () => {
190
- let psA;
191
- let psB;
192
- let componentsA;
193
- let componentsB;
194
- // Create pubsub nodes and start them
195
- beforeEach(async () => {
196
- mockNetwork.reset();
197
- componentsA = await createComponents();
198
- componentsB = await createComponents();
199
- psA = componentsA.pubsub = await common.setup({
200
- components: componentsA,
201
- init: {}
202
- });
203
- psB = componentsB.pubsub = await common.setup({
204
- components: componentsB,
205
- init: {}
206
- });
207
- await start(...Object.values(componentsA), ...Object.values(componentsB));
208
- });
209
- afterEach(async () => {
210
- sinon.restore();
211
- await stop(...Object.values(componentsA), ...Object.values(componentsB));
212
- await common.teardown();
213
- mockNetwork.reset();
214
- });
215
- it.skip('should receive pubsub messages after a node restart', async function () {
216
- const topic = 'test-topic';
217
- const data = uint8ArrayFromString('hey!');
218
- let counter = 0;
219
- const defer1 = pDefer();
220
- const defer2 = pDefer();
221
- await componentsA.connectionManager.openConnection(componentsB.peerId);
222
- let subscribedTopics = psA.getTopics();
223
- expect(subscribedTopics).to.not.include(topic);
224
- psA.subscribe(topic);
225
- psA.addEventListener('message', (evt) => {
226
- if (evt.detail.topic === topic) {
227
- const msg = evt.detail;
228
- expect(msg.data).to.equalBytes(data);
229
- counter++;
230
- counter === 1 ? defer1.resolve() : defer2.resolve();
231
- }
232
- });
233
- psA.subscribe(topic);
234
- subscribedTopics = psA.getTopics();
235
- expect(subscribedTopics).to.include(topic);
236
- // wait for psB to know about psA subscription
237
- await pWaitFor(() => {
238
- const subscribedPeers = psB.getSubscribers(topic);
239
- return subscribedPeers.map(p => p.toString()).includes(componentsA.peerId.toString()); // eslint-disable-line max-nested-callbacks
240
- });
241
- await psB.publish(topic, data);
242
- await defer1.promise;
243
- await stop(psB);
244
- await pWaitFor(() => {
245
- // @ts-expect-error protected fields
246
- const aHasConnectionToB = psA._libp2p.connectionManager.get(psB.peerId);
247
- // @ts-expect-error protected fields
248
- const bHasConnectionToA = psB._libp2p.connectionManager.get(psA.peerId);
249
- return aHasConnectionToB != null && bHasConnectionToA != null;
250
- });
251
- await start(psB);
252
- await componentsA.connectionManager.openConnection(componentsB.peerId);
253
- // wait for remoteLibp2p to know about libp2p subscription
254
- await pWaitFor(() => {
255
- const subscribedPeers = psB.getSubscribers(topic);
256
- return subscribedPeers.toString().includes(componentsA.peerId.toString());
257
- });
258
- await psB.publish(topic, data);
259
- await defer2.promise;
260
- });
261
- it.skip('should handle quick reconnects with a delayed disconnect', async () => {
262
- // Subscribe on both
263
- let aReceivedFirstMessageFromB = false;
264
- let aReceivedSecondMessageFromB = false;
265
- let bReceivedFirstMessageFromA = false;
266
- let bReceivedSecondMessageFromA = false;
267
- const topic = 'reconnect-channel';
268
- const handlerSpyA = (evt) => {
269
- if (evt.detail.topic !== topic) {
270
- return;
271
- }
272
- const message = evt.detail;
273
- const data = uint8ArrayToString(message.data);
274
- if (data === 'message-from-b-1') {
275
- aReceivedFirstMessageFromB = true;
276
- }
277
- if (data === 'message-from-b-2') {
278
- aReceivedSecondMessageFromB = true;
279
- }
280
- };
281
- const handlerSpyB = (evt) => {
282
- if (evt.detail.topic !== topic) {
283
- return;
284
- }
285
- const message = evt.detail;
286
- const data = uint8ArrayToString(message.data);
287
- if (data === 'message-from-a-1') {
288
- bReceivedFirstMessageFromA = true;
289
- }
290
- if (data === 'message-from-a-2') {
291
- bReceivedSecondMessageFromA = true;
292
- }
293
- };
294
- psA.addEventListener('message', handlerSpyA);
295
- psB.addEventListener('message', handlerSpyB);
296
- psA.subscribe(topic);
297
- psB.subscribe(topic);
298
- // Create two connections to the remote peer
299
- // @ts-expect-error protected fields
300
- const originalConnection = await psA._libp2p.dialer.connectToPeer(psB.peerId);
301
- // second connection
302
- await componentsA.connectionManager.openConnection(componentsB.peerId);
303
- // Wait for subscriptions to occur
304
- await pWaitFor(() => {
305
- return psA.getSubscribers(topic).map(p => p.toString()).includes(componentsB.peerId.toString()) &&
306
- psB.getSubscribers(topic).map(p => p.toString()).includes(componentsA.peerId.toString());
307
- });
308
- // Verify messages go both ways
309
- await psA.publish(topic, uint8ArrayFromString('message-from-a-1'));
310
- await psB.publish(topic, uint8ArrayFromString('message-from-b-1'));
311
- await pWaitFor(() => {
312
- return aReceivedFirstMessageFromB && bReceivedFirstMessageFromA;
313
- });
314
- // Disconnect the first connection (this acts as a delayed reconnect)
315
- // @ts-expect-error protected fields
316
- const psAConnUpdateSpy = sinon.spy(psA._libp2p.connectionManager.connections, 'set');
317
- await originalConnection.close();
318
- await pWaitFor(() => psAConnUpdateSpy.callCount === 1);
319
- // Verify messages go both ways after the disconnect
320
- await psA.publish(topic, uint8ArrayFromString('message-from-a-2'));
321
- await psB.publish(topic, uint8ArrayFromString('message-from-b-2'));
322
- await pWaitFor(() => {
323
- return aReceivedSecondMessageFromB && bReceivedSecondMessageFromA;
324
- });
325
- });
326
- });
327
- });
328
- };
329
- //# sourceMappingURL=connection-handlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connection-handlers.js","sourceRoot":"","sources":["../../../src/pubsub/connection-handlers.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { PubSubArgs } from './index.js';
2
- import type { TestSetup } from '../index.js';
3
- import type { PubSub } from '@libp2p/interface';
4
- declare const _default: (common: TestSetup<PubSub, PubSubArgs>) => void;
5
- export default _default;
6
- //# sourceMappingURL=emit-self.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"emit-self.d.ts","sourceRoot":"","sources":["../../../src/pubsub/emit-self.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAoB,MAAM,YAAY,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;yBAM/B,QAAQ,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,KAAG,IAAI;AAA5D,wBAoFC"}
@@ -1,80 +0,0 @@
1
- import { start, stop } from '@libp2p/interface';
2
- import { expect } from 'aegir/chai';
3
- import sinon from 'sinon';
4
- import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
5
- import { mockNetwork } from '../mocks/index.js';
6
- import { createComponents } from './utils.js';
7
- const topic = 'foo';
8
- const data = uint8ArrayFromString('bar');
9
- const shouldNotHappen = () => expect.fail();
10
- export default (common) => {
11
- describe('emit self', () => {
12
- describe('enabled', () => {
13
- let pubsub;
14
- let components;
15
- before(async () => {
16
- mockNetwork.reset();
17
- components = await createComponents();
18
- pubsub = components.pubsub = await common.setup({
19
- components,
20
- init: {
21
- emitSelf: true
22
- }
23
- });
24
- await start(...Object.values(components));
25
- pubsub.subscribe(topic);
26
- });
27
- after(async () => {
28
- sinon.restore();
29
- await stop(...Object.values(components));
30
- await common.teardown();
31
- mockNetwork.reset();
32
- });
33
- it('should emit to self on publish', async () => {
34
- const promise = new Promise((resolve) => {
35
- pubsub.addEventListener('message', (evt) => {
36
- if (evt.detail.topic === topic) {
37
- resolve();
38
- }
39
- }, {
40
- once: true
41
- });
42
- });
43
- const result = await pubsub.publish(topic, data);
44
- await promise;
45
- expect(result).to.have.property('recipients').with.lengthOf(1);
46
- });
47
- });
48
- describe('disabled', () => {
49
- let pubsub;
50
- let components;
51
- before(async () => {
52
- mockNetwork.reset();
53
- components = await createComponents();
54
- pubsub = components.pubsub = await common.setup({
55
- components,
56
- init: {
57
- emitSelf: false
58
- }
59
- });
60
- await start(...Object.values(components));
61
- pubsub.subscribe(topic);
62
- });
63
- after(async () => {
64
- sinon.restore();
65
- await stop(...Object.values(components));
66
- await common.teardown();
67
- mockNetwork.reset();
68
- });
69
- it('should not emit to self on publish', async () => {
70
- pubsub.addEventListener('message', shouldNotHappen, {
71
- once: true
72
- });
73
- await pubsub.publish(topic, data);
74
- // Wait 1 second to guarantee that self is not noticed
75
- await new Promise((resolve) => setTimeout(resolve, 1000));
76
- });
77
- });
78
- });
79
- };
80
- //# sourceMappingURL=emit-self.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"emit-self.js","sourceRoot":"","sources":["../../../src/pubsub/emit-self.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import type { TestSetup } from '../index.js';
2
- import type { ComponentLogger, PeerId, PrivateKey, PubSub, PubSubInit } from '@libp2p/interface';
3
- import type { ConnectionManager, Registrar } from '@libp2p/interface-internal';
4
- export interface PubSubComponents {
5
- peerId: PeerId;
6
- privateKey: PrivateKey;
7
- registrar: Registrar;
8
- connectionManager: ConnectionManager;
9
- pubsub?: PubSub;
10
- logger: ComponentLogger;
11
- }
12
- export interface PubSubArgs {
13
- components: PubSubComponents;
14
- init: PubSubInit;
15
- }
16
- declare const _default: (common: TestSetup<PubSub, PubSubArgs>) => void;
17
- export default _default;
18
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pubsub/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAChG,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAE9E,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,SAAS,CAAA;IACpB,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,gBAAgB,CAAA;IAC5B,IAAI,EAAE,UAAU,CAAA;CACjB;yBAEe,QAAQ,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,KAAG,IAAI;AAA5D,wBASC"}
@@ -1,17 +0,0 @@
1
- import apiTest from './api.js';
2
- import connectionHandlersTest from './connection-handlers.js';
3
- import emitSelfTest from './emit-self.js';
4
- import messagesTest from './messages.js';
5
- import multipleNodesTest from './multiple-nodes.js';
6
- import twoNodesTest from './two-nodes.js';
7
- export default (common) => {
8
- describe('interface-pubsub compliance tests', () => {
9
- apiTest(common);
10
- emitSelfTest(common);
11
- messagesTest(common);
12
- connectionHandlersTest(common);
13
- twoNodesTest(common);
14
- multipleNodesTest(common);
15
- });
16
- };
17
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pubsub/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,sBAAsB,MAAM,0BAA0B,CAAA;AAC7D,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,YAAY,MAAM,eAAe,CAAA;AACxC,OAAO,iBAAiB,MAAM,qBAAqB,CAAA;AACnD,OAAO,YAAY,MAAM,gBAAgB,CAAA;AAmBzC,eAAe,CAAC,MAAqC,EAAQ,EAAE;IAC7D,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;QACjD,OAAO,CAAC,MAAM,CAAC,CAAA;QACf,YAAY,CAAC,MAAM,CAAC,CAAA;QACpB,YAAY,CAAC,MAAM,CAAC,CAAA;QACpB,sBAAsB,CAAC,MAAM,CAAC,CAAA;QAC9B,YAAY,CAAC,MAAM,CAAC,CAAA;QACpB,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1,6 +0,0 @@
1
- import type { PubSubArgs } from './index.js';
2
- import type { TestSetup } from '../index.js';
3
- import type { PubSub } from '@libp2p/interface';
4
- declare const _default: (common: TestSetup<PubSub, PubSubArgs>) => void;
5
- export default _default;
6
- //# sourceMappingURL=messages.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/pubsub/messages.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAoB,MAAM,YAAY,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAW,MAAM,EAAE,MAAM,mBAAmB,CAAA;yBAKxC,QAAQ,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,KAAG,IAAI;AAA5D,wBA4CC"}
@@ -1,48 +0,0 @@
1
- import { start, stop } from '@libp2p/interface';
2
- import { expect } from 'aegir/chai';
3
- import { pEvent } from 'p-event';
4
- import sinon from 'sinon';
5
- import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
6
- import { mockNetwork } from '../mocks/index.js';
7
- import { createComponents } from './utils.js';
8
- const topic = 'foo';
9
- const data = uint8ArrayFromString('bar');
10
- export default (common) => {
11
- describe('messages', () => {
12
- let pubsub;
13
- let components;
14
- // Create pubsub router
15
- beforeEach(async () => {
16
- mockNetwork.reset();
17
- components = await createComponents();
18
- pubsub = components.pubsub = await common.setup({
19
- components,
20
- init: {
21
- emitSelf: true
22
- }
23
- });
24
- await start(...Object.values(components));
25
- });
26
- afterEach(async () => {
27
- sinon.restore();
28
- await stop(...Object.values(components));
29
- await common.teardown();
30
- mockNetwork.reset();
31
- });
32
- it('should emit normalized signed messages on publish', async () => {
33
- const eventPromise = pEvent(pubsub, 'message');
34
- pubsub.globalSignaturePolicy = 'StrictSign';
35
- pubsub.subscribe(topic);
36
- await pubsub.publish(topic, data);
37
- const event = await eventPromise;
38
- const message = event.detail;
39
- if (message.type === 'signed') {
40
- expect(message.from.toString()).to.equal(components.peerId.toString());
41
- expect(message.sequenceNumber).to.not.eql(undefined);
42
- expect(message.key).to.not.eql(undefined);
43
- expect(message.signature).to.not.eql(undefined);
44
- }
45
- });
46
- });
47
- };
48
- //# sourceMappingURL=messages.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/pubsub/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAK7C,MAAM,KAAK,GAAG,KAAK,CAAA;AACnB,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAA;AAExC,eAAe,CAAC,MAAqC,EAAQ,EAAE;IAC7D,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,IAAI,MAAc,CAAA;QAClB,IAAI,UAA4B,CAAA;QAEhC,uBAAuB;QACvB,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,WAAW,CAAC,KAAK,EAAE,CAAA;YACnB,UAAU,GAAG,MAAM,gBAAgB,EAAE,CAAA;YAErC,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;gBAC9C,UAAU;gBACV,IAAI,EAAE;oBACJ,QAAQ,EAAE,IAAI;iBACf;aACF,CAAC,CAAA;YACF,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;QAEF,SAAS,CAAC,KAAK,IAAI,EAAE;YACnB,KAAK,CAAC,OAAO,EAAE,CAAA;YACf,MAAM,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;YACxC,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAA;YACvB,WAAW,CAAC,KAAK,EAAE,CAAA;QACrB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,YAAY,GAAG,MAAM,CAAkC,MAAM,EAAE,SAAS,CAAC,CAAA;YAE/E,MAAM,CAAC,qBAAqB,GAAG,YAAY,CAAA;YAC3C,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YACvB,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YAEjC,MAAM,KAAK,GAAG,MAAM,YAAY,CAAA;YAChC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAA;YAE5B,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;gBACtE,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBACpD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBACzC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YACjD,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1,6 +0,0 @@
1
- import type { PubSubArgs } from './index.js';
2
- import type { TestSetup } from '../index.js';
3
- import type { PubSub } from '@libp2p/interface';
4
- declare const _default: (common: TestSetup<PubSub, PubSubArgs>) => void;
5
- export default _default;
6
- //# sourceMappingURL=multiple-nodes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multiple-nodes.d.ts","sourceRoot":"","sources":["../../../src/pubsub/multiple-nodes.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAoB,MAAM,YAAY,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAW,MAAM,EAAE,MAAM,mBAAmB,CAAA;yBAExC,QAAQ,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,KAAG,IAAI;AAA5D,wBAwaC"}