@peerbit/pubsub 2.0.3 → 2.0.4

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/lib/esm/index.js CHANGED
@@ -57,7 +57,8 @@ export class DirectSub extends DirectStream {
57
57
  if (newTopicsForTopicData.length > 0) {
58
58
  const message = new DataMessage({
59
59
  data: toUint8Array(new Subscribe({
60
- topics: newTopicsForTopicData
60
+ topics: newTopicsForTopicData,
61
+ requestSubscribers: true
61
62
  }).bytes()),
62
63
  header: new MessageHeader({ mode: new SeekDelivery({ redundancy: 2 }) })
63
64
  });
@@ -221,7 +222,8 @@ export class DirectSub extends DirectStream {
221
222
  // tell the peer about all topics we subscribe to
222
223
  this.publishMessage(this.publicKey, await new DataMessage({
223
224
  data: toUint8Array(new Subscribe({
224
- topics: [...this.subscriptions.keys()]
225
+ topics: [...this.subscriptions.keys()],
226
+ requestSubscribers: true
225
227
  }).bytes()),
226
228
  header: new MessageHeader({
227
229
  mode: new SeekDelivery({ redundancy: 2 })
@@ -354,40 +356,37 @@ export class DirectSub extends DirectStream {
354
356
  logger.info("Recieved subscription message with no topics");
355
357
  return false;
356
358
  }
357
- if (!this.subscriptionMessageIsLatest(message, pubsubMessage)) {
358
- logger.trace("Recieved old subscription message");
359
- return false;
360
- }
361
- this.initializePeer(sender);
362
- const changed = [];
363
- pubsubMessage.topics.forEach((topic) => {
364
- const peers = this.topics.get(topic);
365
- if (peers == null) {
366
- return;
367
- }
368
- // if no subscription data, or new subscription has data (and is newer) then overwrite it.
369
- // subscription where data is undefined is not intended to replace existing data
370
- const existingSubscription = peers.get(senderKey);
371
- if (!existingSubscription ||
372
- existingSubscription.timestamp < message.header.timetamp) {
373
- peers.set(senderKey, new SubscriptionData({
374
- timestamp: message.header.timetamp, // TODO update timestamps on all messages?
375
- publicKey: sender
376
- }));
377
- if (!existingSubscription) {
378
- changed.push(topic);
359
+ if (this.subscriptionMessageIsLatest(message, pubsubMessage)) {
360
+ const changed = [];
361
+ pubsubMessage.topics.forEach((topic) => {
362
+ const peers = this.topics.get(topic);
363
+ if (peers == null) {
364
+ return;
365
+ }
366
+ this.initializePeer(sender);
367
+ // if no subscription data, or new subscription has data (and is newer) then overwrite it.
368
+ // subscription where data is undefined is not intended to replace existing data
369
+ const existingSubscription = peers.get(senderKey);
370
+ if (!existingSubscription ||
371
+ existingSubscription.timestamp < message.header.timetamp) {
372
+ peers.set(senderKey, new SubscriptionData({
373
+ timestamp: message.header.timetamp, // TODO update timestamps on all messages?
374
+ publicKey: sender
375
+ }));
376
+ if (!existingSubscription) {
377
+ changed.push(topic);
378
+ }
379
379
  }
380
+ this.topicsToPeers.get(topic)?.add(senderKey);
381
+ this.peerToTopic.get(senderKey)?.add(topic);
382
+ });
383
+ if (changed.length > 0) {
384
+ this.dispatchEvent(new CustomEvent("subscribe", {
385
+ detail: new SubscriptionEvent(sender, changed)
386
+ }));
380
387
  }
381
- this.topicsToPeers.get(topic)?.add(senderKey);
382
- this.peerToTopic.get(senderKey)?.add(topic);
383
- });
384
- if (changed.length > 0) {
385
- this.dispatchEvent(new CustomEvent("subscribe", {
386
- detail: new SubscriptionEvent(sender, changed)
387
- }));
388
- // also send back a message telling the remote whether we are subsbscring
389
- if (message.header.mode instanceof SeekDelivery) {
390
- // only if Subscribe message is of 'seek' type we will respond with our subscriptions
388
+ if (pubsubMessage.requestSubscribers) {
389
+ // respond if we are subscribing
391
390
  const mySubscriptions = changed
392
391
  .map((x) => {
393
392
  const subscription = this.subscriptions.get(x);
@@ -397,13 +396,14 @@ export class DirectSub extends DirectStream {
397
396
  if (mySubscriptions.length > 0) {
398
397
  const response = new DataMessage({
399
398
  data: toUint8Array(new Subscribe({
400
- topics: mySubscriptions
399
+ topics: mySubscriptions,
400
+ requestSubscribers: false
401
401
  }).bytes()),
402
402
  // needs to be Ack or Silent else we will run into a infite message loop
403
403
  header: new MessageHeader({
404
- mode: new AcknowledgeDelivery({
404
+ mode: new SeekDelivery({
405
405
  redundancy: 2,
406
- to: [sender.hashcode()]
406
+ to: [senderKey]
407
407
  })
408
408
  })
409
409
  });
@@ -416,27 +416,25 @@ export class DirectSub extends DirectStream {
416
416
  this.relayMessage(from, message).catch(logError);
417
417
  }
418
418
  else if (pubsubMessage instanceof Unsubscribe) {
419
- if (!this.subscriptionMessageIsLatest(message, pubsubMessage)) {
420
- logger.trace("Recieved old subscription message");
421
- return false;
422
- }
423
- const changed = [];
424
- for (const unsubscription of pubsubMessage.topics) {
425
- const change = this.deletePeerFromTopic(unsubscription, senderKey);
426
- if (change) {
427
- changed.push(unsubscription);
419
+ if (this.subscriptionMessageIsLatest(message, pubsubMessage)) {
420
+ const changed = [];
421
+ for (const unsubscription of pubsubMessage.topics) {
422
+ const change = this.deletePeerFromTopic(unsubscription, senderKey);
423
+ if (change) {
424
+ changed.push(unsubscription);
425
+ }
426
+ }
427
+ if (changed.length > 0) {
428
+ this.dispatchEvent(new CustomEvent("unsubscribe", {
429
+ detail: new UnsubcriptionEvent(sender, changed)
430
+ }));
431
+ }
432
+ // Forwarding
433
+ if (message.header.mode instanceof SeekDelivery ||
434
+ message.header.mode instanceof SilentDelivery ||
435
+ message.header.mode instanceof AcknowledgeDelivery) {
436
+ this.addPeersOnTopic(message, pubsubMessage.topics);
428
437
  }
429
- }
430
- if (changed.length > 0) {
431
- this.dispatchEvent(new CustomEvent("unsubscribe", {
432
- detail: new UnsubcriptionEvent(sender, changed)
433
- }));
434
- }
435
- // Forward
436
- if (message.header.mode instanceof SeekDelivery ||
437
- message.header.mode instanceof SilentDelivery ||
438
- message.header.mode instanceof AcknowledgeDelivery) {
439
- this.addPeersOnTopic(message, pubsubMessage.topics);
440
438
  }
441
439
  // DONT await this since it might introduce a dead-lock
442
440
  this.relayMessage(from, message).catch(logError);
@@ -453,7 +451,8 @@ export class DirectSub extends DirectStream {
453
451
  // respond
454
452
  this.publishMessage(this.publicKey, await new DataMessage({
455
453
  data: toUint8Array(new Subscribe({
456
- topics: subscriptionsToSend
454
+ topics: subscriptionsToSend,
455
+ requestSubscribers: false
457
456
  }).bytes()),
458
457
  header: new MessageHeader({
459
458
  mode: new SilentDelivery({
@@ -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": "@peerbit/pubsub",
3
- "version": "2.0.3",
3
+ "version": "2.0.4",
4
4
  "description": "Direct streaming for libp2p",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -53,9 +53,9 @@
53
53
  },
54
54
  "dependencies": {
55
55
  "@peerbit/logger": "1.0.2",
56
- "@peerbit/stream": "2.0.3",
56
+ "@peerbit/stream": "2.0.4",
57
57
  "@peerbit/uint8arrays": "3.0.1",
58
58
  "libp2p": "^1.1.0"
59
59
  },
60
- "gitHead": "6ad79dad90921f7a2ad27117e5160f3826c08e60"
60
+ "gitHead": "c88b8601709962f01398be6c9e81f05f3daa3654"
61
61
  }
package/src/index.ts CHANGED
@@ -110,7 +110,8 @@ export class DirectSub extends DirectStream<PubSubEvents> implements PubSub {
110
110
  const message = new DataMessage({
111
111
  data: toUint8Array(
112
112
  new Subscribe({
113
- topics: newTopicsForTopicData
113
+ topics: newTopicsForTopicData,
114
+ requestSubscribers: true
114
115
  }).bytes()
115
116
  ),
116
117
  header: new MessageHeader({ mode: new SeekDelivery({ redundancy: 2 }) })
@@ -344,7 +345,8 @@ export class DirectSub extends DirectStream<PubSubEvents> implements PubSub {
344
345
  await new DataMessage({
345
346
  data: toUint8Array(
346
347
  new Subscribe({
347
- topics: [...this.subscriptions.keys()]
348
+ topics: [...this.subscriptions.keys()],
349
+ requestSubscribers: true
348
350
  }).bytes()
349
351
  ),
350
352
  header: new MessageHeader({
@@ -534,53 +536,50 @@ export class DirectSub extends DirectStream<PubSubEvents> implements PubSub {
534
536
  return false;
535
537
  }
536
538
 
537
- if (!this.subscriptionMessageIsLatest(message, pubsubMessage)) {
538
- logger.trace("Recieved old subscription message");
539
- return false;
540
- }
541
-
542
- this.initializePeer(sender);
539
+ if (this.subscriptionMessageIsLatest(message, pubsubMessage)) {
540
+ const changed: string[] = [];
541
+ pubsubMessage.topics.forEach((topic) => {
542
+ const peers = this.topics.get(topic);
543
+ if (peers == null) {
544
+ return;
545
+ }
543
546
 
544
- const changed: string[] = [];
545
- pubsubMessage.topics.forEach((topic) => {
546
- const peers = this.topics.get(topic);
547
- if (peers == null) {
548
- return;
549
- }
547
+ this.initializePeer(sender);
548
+
549
+ // if no subscription data, or new subscription has data (and is newer) then overwrite it.
550
+ // subscription where data is undefined is not intended to replace existing data
551
+ const existingSubscription = peers.get(senderKey);
552
+
553
+ if (
554
+ !existingSubscription ||
555
+ existingSubscription.timestamp < message.header.timetamp
556
+ ) {
557
+ peers.set(
558
+ senderKey,
559
+ new SubscriptionData({
560
+ timestamp: message.header.timetamp, // TODO update timestamps on all messages?
561
+ publicKey: sender
562
+ })
563
+ );
564
+ if (!existingSubscription) {
565
+ changed.push(topic);
566
+ }
567
+ }
550
568
 
551
- // if no subscription data, or new subscription has data (and is newer) then overwrite it.
552
- // subscription where data is undefined is not intended to replace existing data
553
- const existingSubscription = peers.get(senderKey);
569
+ this.topicsToPeers.get(topic)?.add(senderKey);
570
+ this.peerToTopic.get(senderKey)?.add(topic);
571
+ });
554
572
 
555
- if (
556
- !existingSubscription ||
557
- existingSubscription.timestamp < message.header.timetamp
558
- ) {
559
- peers.set(
560
- senderKey,
561
- new SubscriptionData({
562
- timestamp: message.header.timetamp, // TODO update timestamps on all messages?
563
- publicKey: sender
573
+ if (changed.length > 0) {
574
+ this.dispatchEvent(
575
+ new CustomEvent<SubscriptionEvent>("subscribe", {
576
+ detail: new SubscriptionEvent(sender, changed)
564
577
  })
565
578
  );
566
- if (!existingSubscription) {
567
- changed.push(topic);
568
- }
569
579
  }
570
580
 
571
- this.topicsToPeers.get(topic)?.add(senderKey);
572
- this.peerToTopic.get(senderKey)?.add(topic);
573
- });
574
- if (changed.length > 0) {
575
- this.dispatchEvent(
576
- new CustomEvent<SubscriptionEvent>("subscribe", {
577
- detail: new SubscriptionEvent(sender, changed)
578
- })
579
- );
580
-
581
- // also send back a message telling the remote whether we are subsbscring
582
- if (message.header.mode instanceof SeekDelivery) {
583
- // only if Subscribe message is of 'seek' type we will respond with our subscriptions
581
+ if (pubsubMessage.requestSubscribers) {
582
+ // respond if we are subscribing
584
583
  const mySubscriptions = changed
585
584
  .map((x) => {
586
585
  const subscription = this.subscriptions.get(x);
@@ -592,14 +591,15 @@ export class DirectSub extends DirectStream<PubSubEvents> implements PubSub {
592
591
  const response = new DataMessage({
593
592
  data: toUint8Array(
594
593
  new Subscribe({
595
- topics: mySubscriptions
594
+ topics: mySubscriptions,
595
+ requestSubscribers: false
596
596
  }).bytes()
597
597
  ),
598
598
  // needs to be Ack or Silent else we will run into a infite message loop
599
599
  header: new MessageHeader({
600
- mode: new AcknowledgeDelivery({
600
+ mode: new SeekDelivery({
601
601
  redundancy: 2,
602
- to: [sender.hashcode()]
602
+ to: [senderKey]
603
603
  })
604
604
  })
605
605
  });
@@ -616,40 +616,37 @@ export class DirectSub extends DirectStream<PubSubEvents> implements PubSub {
616
616
  // DONT await this since it might introduce a dead-lock
617
617
  this.relayMessage(from, message).catch(logError);
618
618
  } else if (pubsubMessage instanceof Unsubscribe) {
619
- if (!this.subscriptionMessageIsLatest(message, pubsubMessage)) {
620
- logger.trace("Recieved old subscription message");
621
- return false;
622
- }
623
-
624
- const changed: string[] = [];
619
+ if (this.subscriptionMessageIsLatest(message, pubsubMessage)) {
620
+ const changed: string[] = [];
625
621
 
626
- for (const unsubscription of pubsubMessage.topics) {
627
- const change = this.deletePeerFromTopic(unsubscription, senderKey);
628
- if (change) {
629
- changed.push(unsubscription);
622
+ for (const unsubscription of pubsubMessage.topics) {
623
+ const change = this.deletePeerFromTopic(unsubscription, senderKey);
624
+ if (change) {
625
+ changed.push(unsubscription);
626
+ }
630
627
  }
631
- }
632
628
 
633
- if (changed.length > 0) {
634
- this.dispatchEvent(
635
- new CustomEvent<UnsubcriptionEvent>("unsubscribe", {
636
- detail: new UnsubcriptionEvent(sender, changed)
637
- })
638
- );
639
- }
629
+ if (changed.length > 0) {
630
+ this.dispatchEvent(
631
+ new CustomEvent<UnsubcriptionEvent>("unsubscribe", {
632
+ detail: new UnsubcriptionEvent(sender, changed)
633
+ })
634
+ );
635
+ }
640
636
 
641
- // Forward
642
- if (
643
- message.header.mode instanceof SeekDelivery ||
644
- message.header.mode instanceof SilentDelivery ||
645
- message.header.mode instanceof AcknowledgeDelivery
646
- ) {
647
- this.addPeersOnTopic(
648
- message as DataMessage<
649
- SeekDelivery | SilentDelivery | AcknowledgeDelivery
650
- >,
651
- pubsubMessage.topics
652
- );
637
+ // Forwarding
638
+ if (
639
+ message.header.mode instanceof SeekDelivery ||
640
+ message.header.mode instanceof SilentDelivery ||
641
+ message.header.mode instanceof AcknowledgeDelivery
642
+ ) {
643
+ this.addPeersOnTopic(
644
+ message as DataMessage<
645
+ SeekDelivery | SilentDelivery | AcknowledgeDelivery
646
+ >,
647
+ pubsubMessage.topics
648
+ );
649
+ }
653
650
  }
654
651
 
655
652
  // DONT await this since it might introduce a dead-lock
@@ -670,7 +667,8 @@ export class DirectSub extends DirectStream<PubSubEvents> implements PubSub {
670
667
  await new DataMessage({
671
668
  data: toUint8Array(
672
669
  new Subscribe({
673
- topics: subscriptionsToSend
670
+ topics: subscriptionsToSend,
671
+ requestSubscribers: false
674
672
  }).bytes()
675
673
  ),
676
674
  header: new MessageHeader({