@libp2p/pubsub 1.2.17 → 1.2.18
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.
- package/dist/src/index.d.ts +2 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +19 -54
- package/dist/src/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +19 -62
package/dist/src/index.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { EventEmitter
|
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';
|
@@ -159,7 +159,7 @@ export declare abstract class PubSubBaseProtocol extends EventEmitter<PubSubEven
|
|
159
159
|
/**
|
160
160
|
* Publishes messages to all subscribed peers
|
161
161
|
*/
|
162
|
-
|
162
|
+
publish(topic: string, data?: Uint8Array): boolean;
|
163
163
|
/**
|
164
164
|
* Overriding the implementation of publish should handle the appropriate algorithms for the publish/subscriber implementation.
|
165
165
|
* For example, a Floodsub implementation might simply publish each message to each topic for every peer.
|
@@ -181,7 +181,5 @@ export declare abstract class PubSubBaseProtocol extends EventEmitter<PubSubEven
|
|
181
181
|
*/
|
182
182
|
getTopics(): string[];
|
183
183
|
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
184
|
}
|
187
185
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAe,
|
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('
|
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(
|
297
|
+
super.dispatchEvent(new CustomEvent('message', {
|
298
298
|
detail: msg
|
299
299
|
}));
|
300
300
|
}
|
@@ -423,37 +423,23 @@ export class PubSubBaseProtocol extends EventEmitter {
|
|
423
423
|
/**
|
424
424
|
* Publishes messages to all subscribed peers
|
425
425
|
*/
|
426
|
-
|
426
|
+
publish(topic, data) {
|
427
427
|
if (!this.started) {
|
428
428
|
throw new Error('Pubsub has not started');
|
429
429
|
}
|
430
|
-
const
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
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
436
|
Promise.resolve().then(async () => {
|
451
|
-
|
437
|
+
const rpcMessage = await this.buildMessage(message);
|
452
438
|
// dispatch the event if we are interested
|
453
439
|
if (this.emitSelf) {
|
454
440
|
if (this.subscriptions.has(topic)) {
|
455
|
-
super.dispatchEvent(new CustomEvent(
|
456
|
-
detail:
|
441
|
+
super.dispatchEvent(new CustomEvent('message', {
|
442
|
+
detail: rpcMessage
|
457
443
|
}));
|
458
444
|
if (this.listenerCount(topic) === 0) {
|
459
445
|
this.unsubscribe(topic);
|
@@ -461,7 +447,7 @@ export class PubSubBaseProtocol extends EventEmitter {
|
|
461
447
|
}
|
462
448
|
}
|
463
449
|
// send to all the other peers
|
464
|
-
await this.publishMessage(this.components.getPeerId(),
|
450
|
+
await this.publishMessage(this.components.getPeerId(), rpcMessage);
|
465
451
|
})
|
466
452
|
.catch(err => {
|
467
453
|
log.error(err);
|
@@ -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
|
-
|
479
|
-
|
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: [
|
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
|
499
|
-
|
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(
|
484
|
+
this.subscriptions.delete(topic);
|
507
485
|
for (const peerId of this.peers.keys()) {
|
508
|
-
this.send(peerId, { subscriptions: [
|
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
|
package/dist/src/index.js.map
CHANGED
@@ -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
package/src/index.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import { logger } from '@libp2p/logger'
|
2
|
-
import { EventEmitter, CustomEvent
|
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'
|
@@ -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>('
|
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>(
|
408
|
+
super.dispatchEvent(new CustomEvent<Message>('message', {
|
409
409
|
detail: msg
|
410
410
|
}))
|
411
411
|
}
|
@@ -580,40 +580,27 @@ export abstract class PubSubBaseProtocol extends EventEmitter<PubSubEvents> impl
|
|
580
580
|
/**
|
581
581
|
* Publishes messages to all subscribed peers
|
582
582
|
*/
|
583
|
-
|
583
|
+
publish (topic: string, data?: Uint8Array): boolean {
|
584
584
|
if (!this.started) {
|
585
585
|
throw new Error('Pubsub has not started')
|
586
586
|
}
|
587
587
|
|
588
|
-
const
|
589
|
-
|
590
|
-
|
591
|
-
|
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
|
-
}
|
588
|
+
const message: Message = {
|
589
|
+
from: this.components.getPeerId(),
|
590
|
+
topic,
|
591
|
+
data: data ?? new Uint8Array(0)
|
605
592
|
}
|
606
593
|
|
607
594
|
log('publish topic: %s from: %p data: %m', topic, message.from, message.data)
|
608
595
|
|
609
596
|
Promise.resolve().then(async () => {
|
610
|
-
|
597
|
+
const rpcMessage = await this.buildMessage(message)
|
611
598
|
|
612
599
|
// dispatch the event if we are interested
|
613
600
|
if (this.emitSelf) {
|
614
601
|
if (this.subscriptions.has(topic)) {
|
615
|
-
super.dispatchEvent(new CustomEvent<Message>(
|
616
|
-
detail:
|
602
|
+
super.dispatchEvent(new CustomEvent<Message>('message', {
|
603
|
+
detail: rpcMessage
|
617
604
|
}))
|
618
605
|
|
619
606
|
if (this.listenerCount(topic) === 0) {
|
@@ -623,7 +610,7 @@ export abstract class PubSubBaseProtocol extends EventEmitter<PubSubEvents> impl
|
|
623
610
|
}
|
624
611
|
|
625
612
|
// send to all the other peers
|
626
|
-
await this.publishMessage(this.components.getPeerId(),
|
613
|
+
await this.publishMessage(this.components.getPeerId(), rpcMessage)
|
627
614
|
})
|
628
615
|
.catch(err => {
|
629
616
|
log.error(err)
|
@@ -649,17 +636,11 @@ export abstract class PubSubBaseProtocol extends EventEmitter<PubSubEvents> impl
|
|
649
636
|
throw new Error('Pubsub has not started')
|
650
637
|
}
|
651
638
|
|
652
|
-
|
653
|
-
|
654
|
-
if (topicStr === 'pubsub:subscription-change') {
|
655
|
-
return
|
656
|
-
}
|
657
|
-
|
658
|
-
if (!this.subscriptions.has(topicStr)) {
|
659
|
-
this.subscriptions.add(topicStr)
|
639
|
+
if (!this.subscriptions.has(topic)) {
|
640
|
+
this.subscriptions.add(topic)
|
660
641
|
|
661
642
|
for (const peerId of this.peers.keys()) {
|
662
|
-
this.send(peerId, { subscriptions: [
|
643
|
+
this.send(peerId, { subscriptions: [topic], subscribe: true })
|
663
644
|
}
|
664
645
|
}
|
665
646
|
}
|
@@ -675,22 +656,16 @@ export abstract class PubSubBaseProtocol extends EventEmitter<PubSubEvents> impl
|
|
675
656
|
// @ts-expect-error topic should be a key of the event map
|
676
657
|
super.removeEventListener(topic)
|
677
658
|
|
678
|
-
const
|
679
|
-
|
680
|
-
if (topicStr === 'pubsub:subscription-change') {
|
681
|
-
return
|
682
|
-
}
|
683
|
-
|
684
|
-
const wasSubscribed = this.subscriptions.has(topicStr)
|
685
|
-
const listeners = this.listenerCount(topicStr)
|
659
|
+
const wasSubscribed = this.subscriptions.has(topic)
|
660
|
+
const listeners = this.listenerCount(topic)
|
686
661
|
|
687
662
|
log('unsubscribe from %s - am subscribed %s, listeners %d', topic, wasSubscribed, listeners)
|
688
663
|
|
689
664
|
if (wasSubscribed && listeners === 0) {
|
690
|
-
this.subscriptions.delete(
|
665
|
+
this.subscriptions.delete(topic)
|
691
666
|
|
692
667
|
for (const peerId of this.peers.keys()) {
|
693
|
-
this.send(peerId, { subscriptions: [
|
668
|
+
this.send(peerId, { subscriptions: [topic], subscribe: false })
|
694
669
|
}
|
695
670
|
}
|
696
671
|
}
|
@@ -713,22 +688,4 @@ export abstract class PubSubBaseProtocol extends EventEmitter<PubSubEvents> impl
|
|
713
688
|
|
714
689
|
return Array.from(this.peers.keys())
|
715
690
|
}
|
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
691
|
}
|