@libp2p/pubsub 1.2.17 → 1.2.20

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.
@@ -1,9 +1,9 @@
1
- import { EventEmitter, EventHandler } from '@libp2p/interfaces';
1
+ import { EventEmitter } from '@libp2p/interfaces';
2
2
  import Queue from 'p-queue';
3
3
  import type { PeerId } from '@libp2p/interfaces/peer-id';
4
4
  import type { IncomingStreamData } from '@libp2p/interfaces/registrar';
5
5
  import type { Connection } from '@libp2p/interfaces/connection';
6
- import type { PubSub, Message, StrictNoSign, StrictSign, PubSubInit, PubSubEvents, PeerStreams, PubSubRPCMessage, PubSubRPC, PubSubRPCSubscription } from '@libp2p/interfaces/pubsub';
6
+ import type { PubSub, Message, StrictNoSign, StrictSign, PubSubInit, PubSubEvents, PeerStreams, PubSubRPCMessage, PubSubRPC, PubSubRPCSubscription, PublishResult } from '@libp2p/interfaces/pubsub';
7
7
  import { PeerMap, PeerSet } from '@libp2p/peer-collections';
8
8
  import { Components, Initializable } from '@libp2p/interfaces/components';
9
9
  export interface TopicValidator {
@@ -13,7 +13,7 @@ export interface TopicValidator {
13
13
  * PubSubBaseProtocol handles the peers and connections logic for pubsub routers
14
14
  * and specifies the API that pubsub routers should have.
15
15
  */
16
- export declare abstract class PubSubBaseProtocol extends EventEmitter<PubSubEvents> implements PubSub, Initializable {
16
+ export declare abstract class PubSubBaseProtocol<Events = PubSubEvents> extends EventEmitter<Events> implements PubSub<Events>, Initializable {
17
17
  started: boolean;
18
18
  /**
19
19
  * Map of topics to which peers are subscribed to
@@ -120,11 +120,6 @@ export declare abstract class PubSubBaseProtocol extends EventEmitter<PubSubEven
120
120
  * This can be override to use a custom router protobuf.
121
121
  */
122
122
  abstract encodeRpc(rpc: PubSubRPC): Uint8Array;
123
- /**
124
- * Decode Uint8Array into an RPC object.
125
- * This can be override to use a custom router protobuf.
126
- */
127
- abstract decodeMessage(bytes: Uint8Array): PubSubRPCMessage;
128
123
  /**
129
124
  * Encode RPC object into a Uint8Array.
130
125
  * This can be override to use a custom router protobuf.
@@ -159,7 +154,7 @@ export declare abstract class PubSubBaseProtocol extends EventEmitter<PubSubEven
159
154
  /**
160
155
  * Publishes messages to all subscribed peers
161
156
  */
162
- dispatchEvent(event: CustomEvent<Uint8Array | Message>): boolean;
157
+ publish(topic: string, data?: Uint8Array): Promise<PublishResult>;
163
158
  /**
164
159
  * Overriding the implementation of publish should handle the appropriate algorithms for the publish/subscriber implementation.
165
160
  * For example, a Floodsub implementation might simply publish each message to each topic for every peer.
@@ -167,7 +162,7 @@ export declare abstract class PubSubBaseProtocol extends EventEmitter<PubSubEven
167
162
  * `sender` might be this peer, or we might be forwarding a message on behalf of another peer, in which case sender
168
163
  * is the peer we received the message from, which may not be the peer the message was created by.
169
164
  */
170
- abstract publishMessage(sender: PeerId, message: Message): Promise<void>;
165
+ abstract publishMessage(sender: PeerId, message: Message): Promise<PublishResult>;
171
166
  /**
172
167
  * Subscribes to a given topic.
173
168
  */
@@ -181,7 +176,5 @@ export declare abstract class PubSubBaseProtocol extends EventEmitter<PubSubEven
181
176
  */
182
177
  getTopics(): string[];
183
178
  getPeers(): PeerId[];
184
- addEventListener(type: string, callback: EventHandler<any>, options?: AddEventListenerOptions | boolean): void;
185
- removeEventListener(type: string, callback: EventHandler<any> | undefined, options?: EventListenerOptions | boolean): void;
186
179
  }
187
180
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -225,7 +225,7 @@ export class PubSubBaseProtocol extends EventEmitter {
225
225
  subscriptions.forEach((subOpt) => {
226
226
  this.processRpcSubOpt(from, subOpt);
227
227
  });
228
- super.dispatchEvent(new CustomEvent('pubsub:subscription-change', {
228
+ super.dispatchEvent(new CustomEvent('subscription-change', {
229
229
  detail: {
230
230
  peerId: peerStreams.id,
231
231
  subscriptions: subscriptions.map(({ topic, subscribe }) => ({
@@ -294,7 +294,7 @@ export class PubSubBaseProtocol extends EventEmitter {
294
294
  if (this.subscriptions.has(msg.topic)) {
295
295
  const isFromSelf = this.components.getPeerId().equals(from);
296
296
  if (!isFromSelf || this.emitSelf) {
297
- super.dispatchEvent(new CustomEvent(msg.topic, {
297
+ super.dispatchEvent(new CustomEvent('message', {
298
298
  detail: msg
299
299
  }));
300
300
  }
@@ -423,50 +423,36 @@ export class PubSubBaseProtocol extends EventEmitter {
423
423
  /**
424
424
  * Publishes messages to all subscribed peers
425
425
  */
426
- dispatchEvent(event) {
426
+ async publish(topic, data) {
427
427
  if (!this.started) {
428
428
  throw new Error('Pubsub has not started');
429
429
  }
430
- const topic = event.type;
431
- let message;
432
- if (event.detail instanceof Uint8Array) {
433
- message = {
434
- from: this.components.getPeerId(),
435
- topic,
436
- data: event.detail
437
- };
438
- }
439
- else if (event.detail != null) {
440
- message = event.detail;
441
- }
442
- else {
443
- message = {
444
- from: this.components.getPeerId(),
445
- topic,
446
- data: new Uint8Array(0)
447
- };
448
- }
430
+ const message = {
431
+ from: this.components.getPeerId(),
432
+ topic,
433
+ data: data ?? new Uint8Array(0)
434
+ };
449
435
  log('publish topic: %s from: %p data: %m', topic, message.from, message.data);
450
- Promise.resolve().then(async () => {
451
- message = await this.buildMessage(message);
452
- // dispatch the event if we are interested
453
- if (this.emitSelf) {
454
- if (this.subscriptions.has(topic)) {
455
- super.dispatchEvent(new CustomEvent(topic, {
456
- detail: message
457
- }));
458
- if (this.listenerCount(topic) === 0) {
459
- this.unsubscribe(topic);
460
- }
436
+ const rpcMessage = await this.buildMessage(message);
437
+ let emittedToSelf = false;
438
+ // dispatch the event if we are interested
439
+ if (this.emitSelf) {
440
+ if (this.subscriptions.has(topic)) {
441
+ emittedToSelf = true;
442
+ super.dispatchEvent(new CustomEvent('message', {
443
+ detail: rpcMessage
444
+ }));
445
+ if (this.listenerCount(topic) === 0) {
446
+ this.unsubscribe(topic);
461
447
  }
462
448
  }
463
- // send to all the other peers
464
- await this.publishMessage(this.components.getPeerId(), message);
465
- })
466
- .catch(err => {
467
- log.error(err);
468
- });
469
- return true;
449
+ }
450
+ // send to all the other peers
451
+ const result = await this.publishMessage(this.components.getPeerId(), rpcMessage);
452
+ if (emittedToSelf) {
453
+ result.recipients = [...result.recipients, this.components.getPeerId()];
454
+ }
455
+ return result;
470
456
  }
471
457
  /**
472
458
  * Subscribes to a given topic.
@@ -475,14 +461,10 @@ export class PubSubBaseProtocol extends EventEmitter {
475
461
  if (!this.started) {
476
462
  throw new Error('Pubsub has not started');
477
463
  }
478
- const topicStr = topic.toString();
479
- if (topicStr === 'pubsub:subscription-change') {
480
- return;
481
- }
482
- if (!this.subscriptions.has(topicStr)) {
483
- this.subscriptions.add(topicStr);
464
+ if (!this.subscriptions.has(topic)) {
465
+ this.subscriptions.add(topic);
484
466
  for (const peerId of this.peers.keys()) {
485
- this.send(peerId, { subscriptions: [topicStr], subscribe: true });
467
+ this.send(peerId, { subscriptions: [topic], subscribe: true });
486
468
  }
487
469
  }
488
470
  }
@@ -495,17 +477,13 @@ export class PubSubBaseProtocol extends EventEmitter {
495
477
  }
496
478
  // @ts-expect-error topic should be a key of the event map
497
479
  super.removeEventListener(topic);
498
- const topicStr = topic.toString();
499
- if (topicStr === 'pubsub:subscription-change') {
500
- return;
501
- }
502
- const wasSubscribed = this.subscriptions.has(topicStr);
503
- const listeners = this.listenerCount(topicStr);
480
+ const wasSubscribed = this.subscriptions.has(topic);
481
+ const listeners = this.listenerCount(topic);
504
482
  log('unsubscribe from %s - am subscribed %s, listeners %d', topic, wasSubscribed, listeners);
505
483
  if (wasSubscribed && listeners === 0) {
506
- this.subscriptions.delete(topicStr);
484
+ this.subscriptions.delete(topic);
507
485
  for (const peerId of this.peers.keys()) {
508
- this.send(peerId, { subscriptions: [topicStr], subscribe: false });
486
+ this.send(peerId, { subscriptions: [topic], subscribe: false });
509
487
  }
510
488
  }
511
489
  }
@@ -524,18 +502,5 @@ export class PubSubBaseProtocol extends EventEmitter {
524
502
  }
525
503
  return Array.from(this.peers.keys());
526
504
  }
527
- addEventListener(type, callback, options) {
528
- this.subscribe(type.toString());
529
- // @ts-expect-error have to ignore types to accommodate custom string event names
530
- super.addEventListener(type, callback, options);
531
- }
532
- removeEventListener(type, callback, options) {
533
- // @ts-expect-error have to ignore types to accommodate custom string event names
534
- super.removeEventListener(type, callback, options);
535
- const topicStr = type.toString();
536
- if (this.listenerCount(topicStr) === 0) {
537
- this.unsubscribe(topicStr);
538
- }
539
- }
540
505
  }
541
506
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/pubsub",
3
- "version": "1.2.17",
3
+ "version": "1.2.20",
4
4
  "description": "libp2p pubsub base class",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p-interfaces/tree/master/packages/libp2p-pubsub#readme",
@@ -194,6 +194,7 @@
194
194
  "aegir": "^37.0.7",
195
195
  "delay": "^5.0.0",
196
196
  "it-pair": "^2.0.2",
197
+ "p-defer": "^4.0.0",
197
198
  "p-wait-for": "^4.1.0",
198
199
  "protons": "^3.0.2",
199
200
  "protons-runtime": "^1.0.2",
package/src/index.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { logger } from '@libp2p/logger'
2
- import { EventEmitter, CustomEvent, EventHandler } from '@libp2p/interfaces'
2
+ import { EventEmitter, CustomEvent } from '@libp2p/interfaces'
3
3
  import errcode from 'err-code'
4
4
  import { pipe } from 'it-pipe'
5
5
  import Queue from 'p-queue'
@@ -14,7 +14,7 @@ import {
14
14
  import type { PeerId } from '@libp2p/interfaces/peer-id'
15
15
  import type { IncomingStreamData } from '@libp2p/interfaces/registrar'
16
16
  import type { Connection } from '@libp2p/interfaces/connection'
17
- import type { PubSub, Message, StrictNoSign, StrictSign, PubSubInit, PubSubEvents, PeerStreams, PubSubRPCMessage, PubSubRPC, PubSubRPCSubscription, SubscriptionChangeData } from '@libp2p/interfaces/pubsub'
17
+ import type { PubSub, Message, StrictNoSign, StrictSign, PubSubInit, PubSubEvents, PeerStreams, PubSubRPCMessage, PubSubRPC, PubSubRPCSubscription, SubscriptionChangeData, PublishResult } from '@libp2p/interfaces/pubsub'
18
18
  import { PeerMap, PeerSet } from '@libp2p/peer-collections'
19
19
  import { Components, Initializable } from '@libp2p/interfaces/components'
20
20
 
@@ -26,7 +26,7 @@ export interface TopicValidator { (topic: string, message: Message): Promise<voi
26
26
  * PubSubBaseProtocol handles the peers and connections logic for pubsub routers
27
27
  * and specifies the API that pubsub routers should have.
28
28
  */
29
- export abstract class PubSubBaseProtocol extends EventEmitter<PubSubEvents> implements PubSub, Initializable {
29
+ export abstract class PubSubBaseProtocol<Events = PubSubEvents> extends EventEmitter<Events> implements PubSub<Events>, Initializable {
30
30
  public started: boolean
31
31
  /**
32
32
  * Map of topics to which peers are subscribed to
@@ -326,7 +326,7 @@ export abstract class PubSubBaseProtocol extends EventEmitter<PubSubEvents> impl
326
326
  this.processRpcSubOpt(from, subOpt)
327
327
  })
328
328
 
329
- super.dispatchEvent(new CustomEvent<SubscriptionChangeData>('pubsub:subscription-change', {
329
+ super.dispatchEvent(new CustomEvent<SubscriptionChangeData>('subscription-change', {
330
330
  detail: {
331
331
  peerId: peerStreams.id,
332
332
  subscriptions: subscriptions.map(({ topic, subscribe }) => ({
@@ -405,7 +405,7 @@ export abstract class PubSubBaseProtocol extends EventEmitter<PubSubEvents> impl
405
405
  const isFromSelf = this.components.getPeerId().equals(from)
406
406
 
407
407
  if (!isFromSelf || this.emitSelf) {
408
- super.dispatchEvent(new CustomEvent<Message>(msg.topic, {
408
+ super.dispatchEvent(new CustomEvent<Message>('message', {
409
409
  detail: msg
410
410
  }))
411
411
  }
@@ -458,12 +458,6 @@ export abstract class PubSubBaseProtocol extends EventEmitter<PubSubEvents> impl
458
458
  */
459
459
  abstract encodeRpc (rpc: PubSubRPC): Uint8Array
460
460
 
461
- /**
462
- * Decode Uint8Array into an RPC object.
463
- * This can be override to use a custom router protobuf.
464
- */
465
- abstract decodeMessage (bytes: Uint8Array): PubSubRPCMessage
466
-
467
461
  /**
468
462
  * Encode RPC object into a Uint8Array.
469
463
  * This can be override to use a custom router protobuf.
@@ -580,56 +574,44 @@ export abstract class PubSubBaseProtocol extends EventEmitter<PubSubEvents> impl
580
574
  /**
581
575
  * Publishes messages to all subscribed peers
582
576
  */
583
- dispatchEvent (event: CustomEvent<Uint8Array | Message>): boolean {
577
+ async publish (topic: string, data?: Uint8Array): Promise<PublishResult> {
584
578
  if (!this.started) {
585
579
  throw new Error('Pubsub has not started')
586
580
  }
587
581
 
588
- const topic = event.type
589
- let message: Message
590
-
591
- if (event.detail instanceof Uint8Array) {
592
- message = {
593
- from: this.components.getPeerId(),
594
- topic,
595
- data: event.detail
596
- }
597
- } else if (event.detail != null) {
598
- message = event.detail
599
- } else {
600
- message = {
601
- from: this.components.getPeerId(),
602
- topic,
603
- data: new Uint8Array(0)
604
- }
582
+ const message: Message = {
583
+ from: this.components.getPeerId(),
584
+ topic,
585
+ data: data ?? new Uint8Array(0)
605
586
  }
606
587
 
607
588
  log('publish topic: %s from: %p data: %m', topic, message.from, message.data)
608
589
 
609
- Promise.resolve().then(async () => {
610
- message = await this.buildMessage(message)
590
+ const rpcMessage = await this.buildMessage(message)
591
+ let emittedToSelf = false
611
592
 
612
- // dispatch the event if we are interested
613
- if (this.emitSelf) {
614
- if (this.subscriptions.has(topic)) {
615
- super.dispatchEvent(new CustomEvent<Message>(topic, {
616
- detail: message
617
- }))
593
+ // dispatch the event if we are interested
594
+ if (this.emitSelf) {
595
+ if (this.subscriptions.has(topic)) {
596
+ emittedToSelf = true
597
+ super.dispatchEvent(new CustomEvent<Message>('message', {
598
+ detail: rpcMessage
599
+ }))
618
600
 
619
- if (this.listenerCount(topic) === 0) {
620
- this.unsubscribe(topic)
621
- }
601
+ if (this.listenerCount(topic) === 0) {
602
+ this.unsubscribe(topic)
622
603
  }
623
604
  }
605
+ }
624
606
 
625
- // send to all the other peers
626
- await this.publishMessage(this.components.getPeerId(), message)
627
- })
628
- .catch(err => {
629
- log.error(err)
630
- })
607
+ // send to all the other peers
608
+ const result = await this.publishMessage(this.components.getPeerId(), rpcMessage)
631
609
 
632
- return true
610
+ if (emittedToSelf) {
611
+ result.recipients = [...result.recipients, this.components.getPeerId()]
612
+ }
613
+
614
+ return result
633
615
  }
634
616
 
635
617
  /**
@@ -639,7 +621,7 @@ export abstract class PubSubBaseProtocol extends EventEmitter<PubSubEvents> impl
639
621
  * `sender` might be this peer, or we might be forwarding a message on behalf of another peer, in which case sender
640
622
  * is the peer we received the message from, which may not be the peer the message was created by.
641
623
  */
642
- abstract publishMessage (sender: PeerId, message: Message): Promise<void>
624
+ abstract publishMessage (sender: PeerId, message: Message): Promise<PublishResult>
643
625
 
644
626
  /**
645
627
  * Subscribes to a given topic.
@@ -649,17 +631,11 @@ export abstract class PubSubBaseProtocol extends EventEmitter<PubSubEvents> impl
649
631
  throw new Error('Pubsub has not started')
650
632
  }
651
633
 
652
- const topicStr = topic.toString()
653
-
654
- if (topicStr === 'pubsub:subscription-change') {
655
- return
656
- }
657
-
658
- if (!this.subscriptions.has(topicStr)) {
659
- this.subscriptions.add(topicStr)
634
+ if (!this.subscriptions.has(topic)) {
635
+ this.subscriptions.add(topic)
660
636
 
661
637
  for (const peerId of this.peers.keys()) {
662
- this.send(peerId, { subscriptions: [topicStr], subscribe: true })
638
+ this.send(peerId, { subscriptions: [topic], subscribe: true })
663
639
  }
664
640
  }
665
641
  }
@@ -675,22 +651,16 @@ export abstract class PubSubBaseProtocol extends EventEmitter<PubSubEvents> impl
675
651
  // @ts-expect-error topic should be a key of the event map
676
652
  super.removeEventListener(topic)
677
653
 
678
- const topicStr = topic.toString()
679
-
680
- if (topicStr === 'pubsub:subscription-change') {
681
- return
682
- }
683
-
684
- const wasSubscribed = this.subscriptions.has(topicStr)
685
- const listeners = this.listenerCount(topicStr)
654
+ const wasSubscribed = this.subscriptions.has(topic)
655
+ const listeners = this.listenerCount(topic)
686
656
 
687
657
  log('unsubscribe from %s - am subscribed %s, listeners %d', topic, wasSubscribed, listeners)
688
658
 
689
659
  if (wasSubscribed && listeners === 0) {
690
- this.subscriptions.delete(topicStr)
660
+ this.subscriptions.delete(topic)
691
661
 
692
662
  for (const peerId of this.peers.keys()) {
693
- this.send(peerId, { subscriptions: [topicStr], subscribe: false })
663
+ this.send(peerId, { subscriptions: [topic], subscribe: false })
694
664
  }
695
665
  }
696
666
  }
@@ -713,22 +683,4 @@ export abstract class PubSubBaseProtocol extends EventEmitter<PubSubEvents> impl
713
683
 
714
684
  return Array.from(this.peers.keys())
715
685
  }
716
-
717
- addEventListener (type: string, callback: EventHandler<any>, options?: AddEventListenerOptions | boolean) {
718
- this.subscribe(type.toString())
719
-
720
- // @ts-expect-error have to ignore types to accommodate custom string event names
721
- super.addEventListener(type, callback, options)
722
- }
723
-
724
- removeEventListener (type: string, callback: EventHandler<any> | undefined, options?: EventListenerOptions | boolean) {
725
- // @ts-expect-error have to ignore types to accommodate custom string event names
726
- super.removeEventListener(type, callback, options)
727
-
728
- const topicStr = type.toString()
729
-
730
- if (this.listenerCount(topicStr) === 0) {
731
- this.unsubscribe(topicStr)
732
- }
733
- }
734
686
  }