@libp2p/interface-compliance-tests 1.1.24 → 1.1.27

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 (45) hide show
  1. package/dist/src/mocks/connection-manager.d.ts +0 -8
  2. package/dist/src/mocks/connection-manager.d.ts.map +1 -1
  3. package/dist/src/mocks/connection-manager.js +4 -16
  4. package/dist/src/mocks/connection-manager.js.map +1 -1
  5. package/dist/src/mocks/connection.d.ts +2 -1
  6. package/dist/src/mocks/connection.d.ts.map +1 -1
  7. package/dist/src/mocks/connection.js +4 -4
  8. package/dist/src/mocks/connection.js.map +1 -1
  9. package/dist/src/mocks/registrar.d.ts +2 -5
  10. package/dist/src/mocks/registrar.d.ts.map +1 -1
  11. package/dist/src/mocks/registrar.js +4 -4
  12. package/dist/src/mocks/registrar.js.map +1 -1
  13. package/dist/src/pubsub/api.d.ts.map +1 -1
  14. package/dist/src/pubsub/api.js +10 -15
  15. package/dist/src/pubsub/api.js.map +1 -1
  16. package/dist/src/pubsub/connection-handlers.d.ts.map +1 -1
  17. package/dist/src/pubsub/connection-handlers.js +58 -148
  18. package/dist/src/pubsub/connection-handlers.js.map +1 -1
  19. package/dist/src/pubsub/emit-self.d.ts.map +1 -1
  20. package/dist/src/pubsub/emit-self.js +8 -7
  21. package/dist/src/pubsub/emit-self.js.map +1 -1
  22. package/dist/src/pubsub/messages.d.ts.map +1 -1
  23. package/dist/src/pubsub/messages.js +9 -12
  24. package/dist/src/pubsub/messages.js.map +1 -1
  25. package/dist/src/pubsub/multiple-nodes.d.ts.map +1 -1
  26. package/dist/src/pubsub/multiple-nodes.js +88 -217
  27. package/dist/src/pubsub/multiple-nodes.js.map +1 -1
  28. package/dist/src/pubsub/two-nodes.d.ts.map +1 -1
  29. package/dist/src/pubsub/two-nodes.js +20 -38
  30. package/dist/src/pubsub/two-nodes.js.map +1 -1
  31. package/dist/src/pubsub/utils.d.ts +2 -0
  32. package/dist/src/pubsub/utils.d.ts.map +1 -1
  33. package/dist/src/pubsub/utils.js +10 -0
  34. package/dist/src/pubsub/utils.js.map +1 -1
  35. package/package.json +1 -1
  36. package/src/mocks/connection-manager.ts +4 -20
  37. package/src/mocks/connection.ts +5 -5
  38. package/src/mocks/registrar.ts +6 -10
  39. package/src/pubsub/api.ts +11 -16
  40. package/src/pubsub/connection-handlers.ts +59 -159
  41. package/src/pubsub/emit-self.ts +10 -7
  42. package/src/pubsub/messages.ts +11 -13
  43. package/src/pubsub/multiple-nodes.ts +101 -223
  44. package/src/pubsub/two-nodes.ts +23 -41
  45. package/src/pubsub/utils.ts +11 -0
@@ -5,11 +5,10 @@ import pDefer from 'p-defer';
5
5
  import pWaitFor from 'p-wait-for';
6
6
  import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
7
7
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
8
- import { createEd25519PeerId } from '@libp2p/peer-id-factory';
9
- import { connectPeers, mockRegistrar } from '../mocks/registrar.js';
10
- import { waitForSubscriptionUpdate } from './utils.js';
11
- import { Components } from '@libp2p/interfaces/components';
8
+ import { connectPeers } from '../mocks/registrar.js';
9
+ import { createComponents, waitForSubscriptionUpdate } from './utils.js';
12
10
  import { start, stop } from '../index.js';
11
+ import delay from 'delay';
13
12
  export default (common) => {
14
13
  describe('pubsub with multiple nodes', function () {
15
14
  describe('every peer subscribes to the topic', () => {
@@ -20,43 +19,28 @@ export default (common) => {
20
19
  let psA;
21
20
  let psB;
22
21
  let psC;
23
- let peerIdA;
24
- let peerIdB;
25
- let peerIdC;
26
- let registrarA;
27
- let registrarB;
28
- let registrarC;
22
+ let componentsA;
23
+ let componentsB;
24
+ let componentsC;
29
25
  // Create and start pubsub nodes
30
26
  beforeEach(async () => {
31
- peerIdA = await createEd25519PeerId();
32
- peerIdB = await createEd25519PeerId();
33
- peerIdC = await createEd25519PeerId();
34
- registrarA = mockRegistrar();
35
- registrarB = mockRegistrar();
36
- registrarC = mockRegistrar();
27
+ componentsA = await createComponents();
28
+ componentsB = await createComponents();
29
+ componentsC = await createComponents();
37
30
  psA = await common.setup({
38
- components: new Components({
39
- peerId: peerIdA,
40
- registrar: registrarA
41
- }),
31
+ components: componentsA,
42
32
  init: {
43
33
  emitSelf: true
44
34
  }
45
35
  });
46
36
  psB = await common.setup({
47
- components: new Components({
48
- peerId: peerIdB,
49
- registrar: registrarB
50
- }),
37
+ components: componentsB,
51
38
  init: {
52
39
  emitSelf: true
53
40
  }
54
41
  });
55
42
  psC = await common.setup({
56
- components: new Components({
57
- peerId: peerIdC,
58
- registrar: registrarC
59
- }),
43
+ components: componentsC,
60
44
  init: {
61
45
  emitSelf: true
62
46
  }
@@ -66,20 +50,8 @@ export default (common) => {
66
50
  });
67
51
  // Connect nodes
68
52
  beforeEach(async () => {
69
- await connectPeers(psA.multicodecs[0], {
70
- peerId: peerIdA,
71
- registrar: registrarA
72
- }, {
73
- peerId: peerIdB,
74
- registrar: registrarB
75
- });
76
- await connectPeers(psA.multicodecs[0], {
77
- peerId: peerIdB,
78
- registrar: registrarB
79
- }, {
80
- peerId: peerIdC,
81
- registrar: registrarC
82
- });
53
+ await connectPeers(psA.multicodecs[0], componentsA, componentsB);
54
+ await connectPeers(psB.multicodecs[0], componentsB, componentsC);
83
55
  // Wait for peers to be ready in pubsub
84
56
  await pWaitFor(() => psA.getPeers().length === 1 &&
85
57
  psC.getPeers().length === 1 &&
@@ -94,9 +66,9 @@ export default (common) => {
94
66
  const topic = 'Z';
95
67
  psA.subscribe(topic);
96
68
  expect(psA.getTopics()).to.deep.equal([topic]);
97
- await waitForSubscriptionUpdate(psB, peerIdA);
69
+ await waitForSubscriptionUpdate(psB, componentsA.getPeerId());
98
70
  expect(psB.getPeers().length).to.equal(2);
99
- expect(psB.getSubscribers(topic).map(p => p.toString())).to.deep.equal([peerIdA.toString()]);
71
+ expect(psB.getSubscribers(topic).map(p => p.toString())).to.deep.equal([componentsA.getPeerId().toString()]);
100
72
  expect(psC.getPeers().length).to.equal(1);
101
73
  expect(psC.getSubscribers(topic)).to.be.empty();
102
74
  });
@@ -105,13 +77,13 @@ export default (common) => {
105
77
  psB.subscribe(topic);
106
78
  expect(psB.getTopics()).to.deep.equal([topic]);
107
79
  await Promise.all([
108
- waitForSubscriptionUpdate(psA, peerIdB),
109
- waitForSubscriptionUpdate(psC, peerIdB)
80
+ waitForSubscriptionUpdate(psA, componentsB.getPeerId()),
81
+ waitForSubscriptionUpdate(psC, componentsB.getPeerId())
110
82
  ]);
111
83
  expect(psA.getPeers().length).to.equal(1);
112
- expect(psA.getSubscribers(topic).map(p => p.toString())).to.deep.equal([peerIdB.toString()]);
84
+ expect(psA.getSubscribers(topic).map(p => p.toString())).to.deep.equal([componentsB.getPeerId().toString()]);
113
85
  expect(psC.getPeers().length).to.equal(1);
114
- expect(psC.getSubscribers(topic).map(p => p.toString())).to.deep.equal([peerIdB.toString()]);
86
+ expect(psC.getSubscribers(topic).map(p => p.toString())).to.deep.equal([componentsB.getPeerId().toString()]);
115
87
  });
116
88
  it('subscribe to the topic on node c', async () => {
117
89
  const topic = 'Z';
@@ -121,7 +93,7 @@ export default (common) => {
121
93
  psB.addEventListener('subscription-change', () => {
122
94
  expect(psA.getPeers().length).to.equal(1);
123
95
  expect(psB.getPeers().length).to.equal(2);
124
- expect(psB.getSubscribers(topic).map(p => p.toString())).to.deep.equal([peerIdC.toString()]);
96
+ expect(psB.getSubscribers(topic).map(p => p.toString())).to.deep.equal([componentsC.getPeerId().toString()]);
125
97
  defer.resolve();
126
98
  }, {
127
99
  once: true
@@ -134,50 +106,32 @@ export default (common) => {
134
106
  psA.subscribe(topic);
135
107
  psB.subscribe(topic);
136
108
  psC.subscribe(topic);
137
- let counter = 0;
138
- psA.addEventListener('message', (evt) => {
139
- if (evt.detail.topic === topic) {
140
- incMsg(evt);
141
- }
142
- });
143
- psB.addEventListener('message', (evt) => {
144
- if (evt.detail.topic === topic) {
145
- incMsg(evt);
146
- }
147
- });
148
- psC.addEventListener('message', (evt) => {
149
- if (evt.detail.topic === topic) {
150
- incMsg(evt);
151
- }
152
- });
153
109
  await Promise.all([
154
- waitForSubscriptionUpdate(psA, peerIdB),
155
- waitForSubscriptionUpdate(psB, peerIdA),
156
- waitForSubscriptionUpdate(psC, peerIdB)
110
+ waitForSubscriptionUpdate(psA, componentsB.getPeerId()),
111
+ waitForSubscriptionUpdate(psB, componentsA.getPeerId()),
112
+ waitForSubscriptionUpdate(psC, componentsB.getPeerId())
157
113
  ]);
158
- psA.publish(topic, uint8ArrayFromString('hey'));
114
+ // GossipSub needs time to build the mesh overlay
115
+ await delay(1000);
116
+ let counter = 0;
117
+ psA.addEventListener('message', incMsg);
118
+ psB.addEventListener('message', incMsg);
119
+ psC.addEventListener('message', incMsg);
120
+ const result = await psA.publish(topic, uint8ArrayFromString('hey'));
121
+ expect(result).to.have.property('recipients').with.property('length').greaterThanOrEqual(1);
159
122
  function incMsg(evt) {
160
123
  const msg = evt.detail;
124
+ if (msg.topic !== topic) {
125
+ return;
126
+ }
161
127
  expect(uint8ArrayToString(msg.data)).to.equal('hey');
162
128
  check();
163
129
  }
164
130
  function check() {
165
131
  if (++counter === 3) {
166
- psA.removeEventListener('message', (evt) => {
167
- if (evt.detail.topic === topic) {
168
- incMsg(evt);
169
- }
170
- });
171
- psB.removeEventListener('message', (evt) => {
172
- if (evt.detail.topic === topic) {
173
- incMsg(evt);
174
- }
175
- });
176
- psC.removeEventListener('message', (evt) => {
177
- if (evt.detail.topic === topic) {
178
- incMsg(evt);
179
- }
180
- });
132
+ psA.removeEventListener('message', incMsg);
133
+ psB.removeEventListener('message', incMsg);
134
+ psC.removeEventListener('message', incMsg);
181
135
  defer.resolve();
182
136
  }
183
137
  }
@@ -195,52 +149,33 @@ export default (common) => {
195
149
  const topic = 'Z';
196
150
  const defer = pDefer();
197
151
  let counter = 0;
198
- psA.addEventListener('message', (evt) => {
199
- if (evt.detail.topic === topic) {
200
- incMsg(evt);
201
- }
202
- });
203
- psB.addEventListener('message', (evt) => {
204
- if (evt.detail.topic === topic) {
205
- incMsg(evt);
206
- }
207
- });
208
- psC.addEventListener('message', (evt) => {
209
- if (evt.detail.topic === topic) {
210
- incMsg(evt);
211
- }
212
- });
213
152
  psA.subscribe(topic);
214
153
  psB.subscribe(topic);
215
154
  psC.subscribe(topic);
216
155
  await Promise.all([
217
- waitForSubscriptionUpdate(psA, peerIdB),
218
- waitForSubscriptionUpdate(psB, peerIdA),
219
- waitForSubscriptionUpdate(psC, peerIdB)
156
+ waitForSubscriptionUpdate(psA, componentsB.getPeerId()),
157
+ waitForSubscriptionUpdate(psB, componentsA.getPeerId()),
158
+ waitForSubscriptionUpdate(psC, componentsB.getPeerId())
220
159
  ]);
221
- psB.publish(topic, uint8ArrayFromString('hey'));
160
+ // GossipSub needs time to build the mesh overlay
161
+ await delay(1000);
162
+ psA.addEventListener('message', incMsg);
163
+ psB.addEventListener('message', incMsg);
164
+ psC.addEventListener('message', incMsg);
165
+ await psB.publish(topic, uint8ArrayFromString('hey'));
222
166
  function incMsg(evt) {
223
167
  const msg = evt.detail;
168
+ if (msg.topic !== topic) {
169
+ return;
170
+ }
224
171
  expect(uint8ArrayToString(msg.data)).to.equal('hey');
225
172
  check();
226
173
  }
227
174
  function check() {
228
175
  if (++counter === 3) {
229
- psA.removeEventListener('message', (evt) => {
230
- if (evt.detail.topic === topic) {
231
- incMsg(evt);
232
- }
233
- });
234
- psB.removeEventListener('message', (evt) => {
235
- if (evt.detail.topic === topic) {
236
- incMsg(evt);
237
- }
238
- });
239
- psC.removeEventListener('message', (evt) => {
240
- if (evt.detail.topic === topic) {
241
- incMsg(evt);
242
- }
243
- });
176
+ psA.removeEventListener('message', incMsg);
177
+ psB.removeEventListener('message', incMsg);
178
+ psC.removeEventListener('message', incMsg);
244
179
  defer.resolve();
245
180
  }
246
181
  }
@@ -261,69 +196,44 @@ export default (common) => {
261
196
  let psC;
262
197
  let psD;
263
198
  let psE;
264
- let peerIdA;
265
- let peerIdB;
266
- let peerIdC;
267
- let peerIdD;
268
- let peerIdE;
269
- let registrarA;
270
- let registrarB;
271
- let registrarC;
272
- let registrarD;
273
- let registrarE;
199
+ let componentsA;
200
+ let componentsB;
201
+ let componentsC;
202
+ let componentsD;
203
+ let componentsE;
274
204
  // Create and start pubsub nodes
275
205
  beforeEach(async () => {
276
- peerIdA = await createEd25519PeerId();
277
- peerIdB = await createEd25519PeerId();
278
- peerIdC = await createEd25519PeerId();
279
- peerIdD = await createEd25519PeerId();
280
- peerIdE = await createEd25519PeerId();
281
- registrarA = mockRegistrar();
282
- registrarB = mockRegistrar();
283
- registrarC = mockRegistrar();
284
- registrarD = mockRegistrar();
285
- registrarE = mockRegistrar();
206
+ componentsA = await createComponents();
207
+ componentsB = await createComponents();
208
+ componentsC = await createComponents();
209
+ componentsD = await createComponents();
210
+ componentsE = await createComponents();
286
211
  psA = await common.setup({
287
- components: new Components({
288
- peerId: peerIdA,
289
- registrar: registrarA
290
- }),
212
+ components: componentsA,
291
213
  init: {
292
214
  emitSelf: true
293
215
  }
294
216
  });
295
217
  psB = await common.setup({
296
- components: new Components({
297
- peerId: peerIdB,
298
- registrar: registrarB
299
- }),
218
+ components: componentsB,
300
219
  init: {
301
220
  emitSelf: true
302
221
  }
303
222
  });
304
223
  psC = await common.setup({
305
- components: new Components({
306
- peerId: peerIdC,
307
- registrar: registrarC
308
- }),
224
+ components: componentsC,
309
225
  init: {
310
226
  emitSelf: true
311
227
  }
312
228
  });
313
229
  psD = await common.setup({
314
- components: new Components({
315
- peerId: peerIdD,
316
- registrar: registrarD
317
- }),
230
+ components: componentsD,
318
231
  init: {
319
232
  emitSelf: true
320
233
  }
321
234
  });
322
235
  psE = await common.setup({
323
- components: new Components({
324
- peerId: peerIdE,
325
- registrar: registrarE
326
- }),
236
+ components: componentsE,
327
237
  init: {
328
238
  emitSelf: true
329
239
  }
@@ -333,34 +243,10 @@ export default (common) => {
333
243
  });
334
244
  // connect nodes
335
245
  beforeEach(async () => {
336
- await connectPeers(psA.multicodecs[0], {
337
- peerId: peerIdA,
338
- registrar: registrarA
339
- }, {
340
- peerId: peerIdB,
341
- registrar: registrarB
342
- });
343
- await connectPeers(psA.multicodecs[0], {
344
- peerId: peerIdB,
345
- registrar: registrarB
346
- }, {
347
- peerId: peerIdC,
348
- registrar: registrarC
349
- });
350
- await connectPeers(psA.multicodecs[0], {
351
- peerId: peerIdC,
352
- registrar: registrarC
353
- }, {
354
- peerId: peerIdD,
355
- registrar: registrarD
356
- });
357
- await connectPeers(psA.multicodecs[0], {
358
- peerId: peerIdD,
359
- registrar: registrarD
360
- }, {
361
- peerId: peerIdE,
362
- registrar: registrarE
363
- });
246
+ await connectPeers(psA.multicodecs[0], componentsA, componentsB);
247
+ await connectPeers(psA.multicodecs[0], componentsB, componentsC);
248
+ await connectPeers(psA.multicodecs[0], componentsC, componentsD);
249
+ await connectPeers(psA.multicodecs[0], componentsD, componentsE);
364
250
  // Wait for peers to be ready in pubsub
365
251
  await pWaitFor(() => psA.getPeers().length === 1 &&
366
252
  psB.getPeers().length === 2 &&
@@ -389,45 +275,30 @@ export default (common) => {
389
275
  let counter = 0;
390
276
  const topic = 'Z';
391
277
  psA.subscribe(topic);
392
- psA.addEventListener('message', (evt) => {
393
- if (evt.detail.topic === topic) {
394
- incMsg(evt);
395
- }
396
- });
278
+ psA.addEventListener('message', incMsg);
397
279
  psB.subscribe(topic);
398
- psB.addEventListener('message', (evt) => {
399
- if (evt.detail.topic === topic) {
400
- incMsg(evt);
401
- }
402
- });
280
+ psB.addEventListener('message', incMsg);
403
281
  psC.subscribe(topic);
404
- psC.addEventListener('message', (evt) => {
405
- if (evt.detail.topic === topic) {
406
- incMsg(evt);
407
- }
408
- });
282
+ psC.addEventListener('message', incMsg);
409
283
  psD.subscribe(topic);
410
- psD.addEventListener('message', (evt) => {
411
- if (evt.detail.topic === topic) {
412
- incMsg(evt);
413
- }
414
- });
284
+ psD.addEventListener('message', incMsg);
415
285
  psE.subscribe(topic);
416
- psE.addEventListener('message', (evt) => {
417
- if (evt.detail.topic === topic) {
418
- incMsg(evt);
419
- }
420
- });
286
+ psE.addEventListener('message', incMsg);
421
287
  await Promise.all([
422
- waitForSubscriptionUpdate(psA, peerIdB),
423
- waitForSubscriptionUpdate(psB, peerIdA),
424
- waitForSubscriptionUpdate(psC, peerIdB),
425
- waitForSubscriptionUpdate(psD, peerIdC),
426
- waitForSubscriptionUpdate(psE, peerIdD)
288
+ waitForSubscriptionUpdate(psA, componentsB.getPeerId()),
289
+ waitForSubscriptionUpdate(psB, componentsA.getPeerId()),
290
+ waitForSubscriptionUpdate(psC, componentsB.getPeerId()),
291
+ waitForSubscriptionUpdate(psD, componentsC.getPeerId()),
292
+ waitForSubscriptionUpdate(psE, componentsD.getPeerId())
427
293
  ]);
428
- psC.publish('Z', uint8ArrayFromString('hey from c'));
294
+ // GossipSub needs time to build the mesh overlay
295
+ await delay(1000);
296
+ await psC.publish('Z', uint8ArrayFromString('hey from c'));
429
297
  function incMsg(evt) {
430
298
  const msg = evt.detail;
299
+ if (msg.topic !== topic) {
300
+ return;
301
+ }
431
302
  expect(uint8ArrayToString(msg.data)).to.equal('hey from c');
432
303
  check();
433
304
  }
@@ -1 +1 @@
1
- {"version":3,"file":"multiple-nodes.js","sourceRoot":"","sources":["../../../src/pubsub/multiple-nodes.ts"],"names":[],"mappings":"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"}
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,YAAY,CAAA;AACnC,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,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAKxE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAe,CAAC,MAAqC,EAAE,EAAE;IACvD,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,GAAW,CAAA;gBACf,IAAI,GAAW,CAAA;gBACf,IAAI,GAAW,CAAA;gBACf,IAAI,WAAuB,CAAA;gBAC3B,IAAI,WAAuB,CAAA;gBAC3B,IAAI,WAAuB,CAAA;gBAE3B,gCAAgC;gBAChC,UAAU,CAAC,KAAK,IAAI,EAAE;oBACpB,WAAW,GAAG,MAAM,gBAAgB,EAAE,CAAA;oBACtC,WAAW,GAAG,MAAM,gBAAgB,EAAE,CAAA;oBACtC,WAAW,GAAG,MAAM,gBAAgB,EAAE,CAAA;oBAEtC,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;wBACvB,UAAU,EAAE,WAAW;wBACvB,IAAI,EAAE;4BACJ,QAAQ,EAAE,IAAI;yBACf;qBACF,CAAC,CAAA;oBACF,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;wBACvB,UAAU,EAAE,WAAW;wBACvB,IAAI,EAAE;4BACJ,QAAQ,EAAE,IAAI;yBACf;qBACF,CAAC,CAAA;oBACF,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;wBACvB,UAAU,EAAE,WAAW;wBACvB,IAAI,EAAE;4BACJ,QAAQ,EAAE,IAAI;yBACf;qBACF,CAAC,CAAA;oBAEF,qBAAqB;oBACrB,MAAM,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;gBAC5B,CAAC,CAAC,CAAA;gBAEF,gBAAgB;gBAChB,UAAU,CAAC,KAAK,IAAI,EAAE;oBACpB,MAAM,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;oBAChE,MAAM,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;oBAEhE,uCAAuC;oBACvC,MAAM,QAAQ,CAAC,GAAG,EAAE,CAClB,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC;wBAC3B,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC;wBAC3B,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,CAC5B,CAAA;gBACH,CAAC,CAAC,CAAA;gBAEF,SAAS,CAAC,KAAK,IAAI,EAAE;oBACnB,KAAK,CAAC,OAAO,EAAE,CAAA;oBAEf,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;oBAEzB,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,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;oBAE9C,MAAM,yBAAyB,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC,CAAA;oBAE7D,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;oBACzC,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,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;oBAE5G,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;oBACzC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,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,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;oBAE9C,MAAM,OAAO,CAAC,GAAG,CAAC;wBAChB,yBAAyB,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC;wBACvD,yBAAyB,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC;qBACxD,CAAC,CAAA;oBAEF,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;oBACzC,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,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;oBAE5G,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;oBACzC,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,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;gBAC9G,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,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;oBAE9C,GAAG,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,GAAG,EAAE;wBAC/C,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;wBACzC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;wBACzC,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,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;wBAE5G,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,MAAM,OAAO,CAAC,GAAG,CAAC;wBAChB,yBAAyB,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC;wBACvD,yBAAyB,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC;wBACvD,yBAAyB,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC;qBACxD,CAAC,CAAA;oBAEF,iDAAiD;oBACjD,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;oBAEjB,IAAI,OAAO,GAAG,CAAC,CAAA;oBAEf,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;oBACvC,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;oBACvC,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;oBAEvC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAA;oBAEpE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAA;oBAE3F,SAAS,MAAM,CAAE,GAAyB;wBACxC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAA;wBAEtB,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,EAAE;4BACvB,OAAM;yBACP;wBAED,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,SAAS,EAAE,MAAM,CAAC,CAAA;4BAC1C,GAAG,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;4BAC1C,GAAG,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;4BAC1C,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,MAAM,OAAO,CAAC,GAAG,CAAC;4BAChB,yBAAyB,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC;4BACvD,yBAAyB,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC;4BACvD,yBAAyB,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC;yBACxD,CAAC,CAAA;wBAEF,iDAAiD;wBACjD,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;wBAEjB,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;wBACvC,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;wBACvC,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;wBAEvC,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAA;wBAErD,SAAS,MAAM,CAAE,GAAyB;4BACxC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAA;4BAEtB,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,EAAE;gCACvB,OAAM;6BACP;4BAED,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,SAAS,EAAE,MAAM,CAAC,CAAA;gCAC1C,GAAG,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;gCAC1C,GAAG,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;gCAC1C,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,GAAW,CAAA;gBACf,IAAI,GAAW,CAAA;gBACf,IAAI,GAAW,CAAA;gBACf,IAAI,GAAW,CAAA;gBACf,IAAI,GAAW,CAAA;gBACf,IAAI,WAAuB,CAAA;gBAC3B,IAAI,WAAuB,CAAA;gBAC3B,IAAI,WAAuB,CAAA;gBAC3B,IAAI,WAAuB,CAAA;gBAC3B,IAAI,WAAuB,CAAA;gBAE3B,gCAAgC;gBAChC,UAAU,CAAC,KAAK,IAAI,EAAE;oBACpB,WAAW,GAAG,MAAM,gBAAgB,EAAE,CAAA;oBACtC,WAAW,GAAG,MAAM,gBAAgB,EAAE,CAAA;oBACtC,WAAW,GAAG,MAAM,gBAAgB,EAAE,CAAA;oBACtC,WAAW,GAAG,MAAM,gBAAgB,EAAE,CAAA;oBACtC,WAAW,GAAG,MAAM,gBAAgB,EAAE,CAAA;oBAEtC,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;wBACvB,UAAU,EAAE,WAAW;wBACvB,IAAI,EAAE;4BACJ,QAAQ,EAAE,IAAI;yBACf;qBACF,CAAC,CAAA;oBACF,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;wBACvB,UAAU,EAAE,WAAW;wBACvB,IAAI,EAAE;4BACJ,QAAQ,EAAE,IAAI;yBACf;qBACF,CAAC,CAAA;oBACF,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;wBACvB,UAAU,EAAE,WAAW;wBACvB,IAAI,EAAE;4BACJ,QAAQ,EAAE,IAAI;yBACf;qBACF,CAAC,CAAA;oBACF,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;wBACvB,UAAU,EAAE,WAAW;wBACvB,IAAI,EAAE;4BACJ,QAAQ,EAAE,IAAI;yBACf;qBACF,CAAC,CAAA;oBACF,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;wBACvB,UAAU,EAAE,WAAW;wBACvB,IAAI,EAAE;4BACJ,QAAQ,EAAE,IAAI;yBACf;qBACF,CAAC,CAAA;oBAEF,qBAAqB;oBACrB,MAAM,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;gBACtC,CAAC,CAAC,CAAA;gBAEF,gBAAgB;gBAChB,UAAU,CAAC,KAAK,IAAI,EAAE;oBACpB,MAAM,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;oBAChE,MAAM,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;oBAChE,MAAM,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;oBAChE,MAAM,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;oBAEhE,uCAAuC;oBACvC,MAAM,QAAQ,CAAC,GAAG,EAAE,CAClB,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC;wBAC3B,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC;wBAC3B,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC;wBAC3B,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC;wBAC3B,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,CAC5B,CAAA;gBACH,CAAC,CAAC,CAAA;gBAEF,SAAS,CAAC,KAAK,IAAI,EAAE;oBACnB,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;oBACnC,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,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;oBAC5C,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;oBAClB,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;oBAC5C,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;oBAClB,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;oBAC5C,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;oBAClB,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;oBAC5C,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;oBAClB,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBAC9C,CAAC,CAAC,CAAA;gBAEF,EAAE,CAAC,kBAAkB,EAAE,KAAK;oBAC1B,MAAM,KAAK,GAAG,MAAM,EAAE,CAAA;oBACtB,IAAI,OAAO,GAAG,CAAC,CAAA;oBACf,MAAM,KAAK,GAAG,GAAG,CAAA;oBAEjB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;oBACpB,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;oBACvC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;oBACpB,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;oBACvC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;oBACpB,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;oBACvC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;oBACpB,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;oBACvC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;oBACpB,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;oBAEvC,MAAM,OAAO,CAAC,GAAG,CAAC;wBAChB,yBAAyB,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC;wBACvD,yBAAyB,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC;wBACvD,yBAAyB,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC;wBACvD,yBAAyB,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC;wBACvD,yBAAyB,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC;qBACxD,CAAC,CAAA;oBAEF,iDAAiD;oBACjD,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;oBAEjB,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC,CAAA;oBAE1D,SAAS,MAAM,CAAE,GAAyB;wBACxC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAA;wBAEtB,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,EAAE;4BACvB,OAAM;yBACP;wBAED,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 +1 @@
1
- {"version":3,"file":"two-nodes.d.ts","sourceRoot":"","sources":["../../../src/pubsub/two-nodes.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAW,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;iCAYpB,UAAU,MAAM,EAAE,UAAU,CAAC;AAArD,wBAmOC"}
1
+ {"version":3,"file":"two-nodes.d.ts","sourceRoot":"","sources":["../../../src/pubsub/two-nodes.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAW,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;iCAUpB,UAAU,MAAM,EAAE,UAAU,CAAC;AAArD,wBAoNC"}
@@ -5,10 +5,8 @@ import pDefer from 'p-defer';
5
5
  import pWaitFor from 'p-wait-for';
6
6
  import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
7
7
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
8
- import { connectPeers, mockRegistrar } from '../mocks/registrar.js';
9
- import { createEd25519PeerId } from '@libp2p/peer-id-factory';
10
- import { waitForSubscriptionUpdate } from './utils.js';
11
- import { Components } from '@libp2p/interfaces/components';
8
+ import { connectPeers } from '../mocks/registrar.js';
9
+ import { createComponents, waitForSubscriptionUpdate } from './utils.js';
12
10
  import { start, stop } from '../index.js';
13
11
  const topic = 'foo';
14
12
  function shouldNotHappen() {
@@ -18,30 +16,20 @@ export default (common) => {
18
16
  describe('pubsub with two nodes', () => {
19
17
  let psA;
20
18
  let psB;
21
- let peerIdA;
22
- let peerIdB;
23
- let registrarA;
24
- let registrarB;
19
+ let componentsA;
20
+ let componentsB;
25
21
  // Create pubsub nodes and connect them
26
22
  beforeEach(async () => {
27
- peerIdA = await createEd25519PeerId();
28
- peerIdB = await createEd25519PeerId();
29
- registrarA = mockRegistrar();
30
- registrarB = mockRegistrar();
23
+ componentsA = await createComponents();
24
+ componentsB = await createComponents();
31
25
  psA = await common.setup({
32
- components: new Components({
33
- peerId: peerIdA,
34
- registrar: registrarA
35
- }),
26
+ components: componentsA,
36
27
  init: {
37
28
  emitSelf: true
38
29
  }
39
30
  });
40
31
  psB = await common.setup({
41
- components: new Components({
42
- peerId: peerIdB,
43
- registrar: registrarB
44
- }),
32
+ components: componentsB,
45
33
  init: {
46
34
  emitSelf: false
47
35
  }
@@ -50,13 +38,7 @@ export default (common) => {
50
38
  await start(psA, psB);
51
39
  expect(psA.getPeers()).to.be.empty();
52
40
  expect(psB.getPeers()).to.be.empty();
53
- await connectPeers(psA.multicodecs[0], {
54
- peerId: peerIdA,
55
- registrar: registrarA
56
- }, {
57
- peerId: peerIdB,
58
- registrar: registrarB
59
- });
41
+ await connectPeers(psA.multicodecs[0], componentsA, componentsB);
60
42
  // Wait for peers to be ready in pubsub
61
43
  await pWaitFor(() => psA.getPeers().length === 1 && psB.getPeers().length === 1);
62
44
  });
@@ -71,7 +53,7 @@ export default (common) => {
71
53
  const { peerId: changedPeerId, subscriptions: changedSubs } = evt.detail;
72
54
  expect(psA.getTopics()).to.deep.equal([topic]);
73
55
  expect(psB.getPeers()).to.have.lengthOf(1);
74
- expect(psB.getSubscribers(topic).map(p => p.toString())).to.deep.equal([peerIdA.toString()]);
56
+ expect(psB.getSubscribers(topic).map(p => p.toString())).to.deep.equal([componentsA.getPeerId().toString()]);
75
57
  expect(changedPeerId).to.deep.equal(psB.getPeers()[0]);
76
58
  expect(changedSubs).to.have.lengthOf(1);
77
59
  expect(changedSubs[0].topic).to.equal(topic);
@@ -98,10 +80,10 @@ export default (common) => {
98
80
  psA.subscribe(topic);
99
81
  psB.subscribe(topic);
100
82
  await Promise.all([
101
- waitForSubscriptionUpdate(psA, peerIdB),
102
- waitForSubscriptionUpdate(psB, peerIdA)
83
+ waitForSubscriptionUpdate(psA, componentsB.getPeerId()),
84
+ waitForSubscriptionUpdate(psB, componentsA.getPeerId())
103
85
  ]);
104
- psA.publish(topic, uint8ArrayFromString('hey'));
86
+ await psA.publish(topic, uint8ArrayFromString('hey'));
105
87
  return await defer.promise;
106
88
  });
107
89
  it('Publish to a topic in nodeB', async () => {
@@ -131,10 +113,10 @@ export default (common) => {
131
113
  psA.subscribe(topic);
132
114
  psB.subscribe(topic);
133
115
  await Promise.all([
134
- waitForSubscriptionUpdate(psA, peerIdB),
135
- waitForSubscriptionUpdate(psB, peerIdA)
116
+ waitForSubscriptionUpdate(psA, componentsB.getPeerId()),
117
+ waitForSubscriptionUpdate(psB, componentsA.getPeerId())
136
118
  ]);
137
- psB.publish(topic, uint8ArrayFromString('banana'));
119
+ await psB.publish(topic, uint8ArrayFromString('banana'));
138
120
  return await defer.promise;
139
121
  });
140
122
  it('Publish 10 msg to a topic in nodeB', async () => {
@@ -145,7 +127,7 @@ export default (common) => {
145
127
  function receivedMsg(evt) {
146
128
  const msg = evt.detail;
147
129
  expect(uint8ArrayToString(msg.data)).to.equal('banana');
148
- expect(msg.from.toString()).to.equal(peerIdB.toString());
130
+ expect(msg.from.toString()).to.equal(componentsB.getPeerId().toString());
149
131
  expect(msg.sequenceNumber).to.be.a('BigInt');
150
132
  expect(msg.topic).to.be.equal(topic);
151
133
  if (++counter === 10) {
@@ -157,10 +139,10 @@ export default (common) => {
157
139
  psA.subscribe(topic);
158
140
  psB.subscribe(topic);
159
141
  await Promise.all([
160
- waitForSubscriptionUpdate(psA, peerIdB),
161
- waitForSubscriptionUpdate(psB, peerIdA)
142
+ waitForSubscriptionUpdate(psA, componentsB.getPeerId()),
143
+ waitForSubscriptionUpdate(psB, componentsA.getPeerId())
162
144
  ]);
163
- Array.from({ length: 10 }, (_, i) => psB.publish(topic, uint8ArrayFromString('banana')));
145
+ await Promise.all(Array.from({ length: 10 }, async (_, i) => await psB.publish(topic, uint8ArrayFromString('banana'))));
164
146
  return await defer.promise;
165
147
  });
166
148
  it('Unsubscribe from topic in nodeA', async () => {