@libp2p/floodsub 1.0.5 → 1.0.6

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,7 +1,7 @@
1
1
  import { PubSubBaseProtocol } from '@libp2p/pubsub';
2
2
  import { multicodec } from './config.js';
3
3
  import { SimpleTimeCache } from './cache.js';
4
- import type { PubSub, PubSubInit, Message, PubSubRPC, PubSubRPCMessage } from '@libp2p/interfaces/pubsub';
4
+ import type { PubSubInit, Message, PubSubRPC, PubSubRPCMessage, PublishResult } from '@libp2p/interfaces/pubsub';
5
5
  import type { PeerId } from '@libp2p/interfaces/peer-id';
6
6
  export { multicodec };
7
7
  export interface FloodSubInit extends PubSubInit {
@@ -12,7 +12,7 @@ export interface FloodSubInit extends PubSubInit {
12
12
  * delivering an API for Publish/Subscribe, but with no CastTree Forming
13
13
  * (it just floods the network).
14
14
  */
15
- export declare class FloodSub extends PubSubBaseProtocol implements PubSub {
15
+ export declare class FloodSub extends PubSubBaseProtocol {
16
16
  seenCache: SimpleTimeCache<boolean>;
17
17
  constructor(init?: FloodSubInit);
18
18
  /**
@@ -33,6 +33,6 @@ export declare class FloodSub extends PubSubBaseProtocol implements PubSub {
33
33
  /**
34
34
  * Publish message created. Forward it to the peers.
35
35
  */
36
- publishMessage(from: PeerId, message: Message): Promise<void>;
36
+ publishMessage(from: PeerId, message: Message): Promise<PublishResult>;
37
37
  }
38
38
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACzG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAMxD,OAAO,EAAE,UAAU,EAAE,CAAA;AAErB,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,kBAAmB,YAAW,MAAM;IACzD,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;gBAE7B,IAAI,CAAC,EAAE,YAAY;IAiBhC;;OAEG;IACH,SAAS,CAAE,KAAK,EAAE,UAAU,GAAG,SAAS;IAIxC;;OAEG;IACH,SAAS,CAAE,GAAG,EAAE,SAAS,GAAG,UAAU;IAItC,aAAa,CAAE,KAAK,EAAE,UAAU,GAAG,gBAAgB;IAInD,aAAa,CAAE,GAAG,EAAE,gBAAgB,GAAG,UAAU;IAIjD;;;OAGG;IACG,cAAc,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAcpD;;OAEG;IACG,cAAc,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;CAwBrD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAChH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAMxD,OAAO,EAAE,UAAU,EAAE,CAAA;AAErB,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,kBAAkB;IACvC,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;gBAE7B,IAAI,CAAC,EAAE,YAAY;IAiBhC;;OAEG;IACH,SAAS,CAAE,KAAK,EAAE,UAAU,GAAG,SAAS;IAIxC;;OAEG;IACH,SAAS,CAAE,GAAG,EAAE,SAAS,GAAG,UAAU;IAItC,aAAa,CAAE,KAAK,EAAE,UAAU,GAAG,gBAAgB;IAInD,aAAa,CAAE,GAAG,EAAE,gBAAgB,GAAG,UAAU;IAIjD;;;OAGG;IACG,cAAc,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAcpD;;OAEG;IACG,cAAc,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;CA4B9E"}
package/dist/src/index.js CHANGED
@@ -64,9 +64,10 @@ export class FloodSub extends PubSubBaseProtocol {
64
64
  */
65
65
  async publishMessage(from, message) {
66
66
  const peers = this.getSubscribers(message.topic);
67
+ const recipients = [];
67
68
  if (peers == null || peers.length === 0) {
68
69
  log('no peers are subscribed to topic %s', message.topic);
69
- return;
70
+ return { recipients };
70
71
  }
71
72
  peers.forEach(id => {
72
73
  if (this.components.getPeerId().equals(id)) {
@@ -78,8 +79,10 @@ export class FloodSub extends PubSubBaseProtocol {
78
79
  return;
79
80
  }
80
81
  log('publish msgs on topics %s %p', message.topic, id);
82
+ recipients.push(id);
81
83
  this.send(id, { messages: [message] });
82
84
  });
85
+ return { recipients };
83
86
  }
84
87
  }
85
88
  //# 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/floodsub",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "description": "libp2p-floodsub, also known as pubsub-flood or just dumbsub, this implementation of pubsub focused on delivering an API for Publish/Subscribe, but with no CastTree Forming (it just floods the network).",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p-floodsub#readme",
@@ -142,14 +142,14 @@
142
142
  "release": "aegir release"
143
143
  },
144
144
  "dependencies": {
145
- "@libp2p/interfaces": "^1.3.22",
145
+ "@libp2p/interfaces": "^1.3.24",
146
146
  "@libp2p/logger": "^1.1.4",
147
- "@libp2p/pubsub": "^1.2.18",
147
+ "@libp2p/pubsub": "^1.2.20",
148
148
  "protons-runtime": "^1.0.3",
149
149
  "uint8arrays": "^3.0.0"
150
150
  },
151
151
  "devDependencies": {
152
- "@libp2p/interface-compliance-tests": "^1.1.23",
152
+ "@libp2p/interface-compliance-tests": "^1.1.25",
153
153
  "@libp2p/peer-collections": "^1.0.2",
154
154
  "@libp2p/peer-id": "^1.1.10",
155
155
  "@libp2p/peer-id-factory": "^1.0.9",
package/src/index.ts CHANGED
@@ -2,7 +2,7 @@ import { toString } from 'uint8arrays/to-string'
2
2
  import { PubSubBaseProtocol } from '@libp2p/pubsub'
3
3
  import { multicodec } from './config.js'
4
4
  import { SimpleTimeCache } from './cache.js'
5
- import type { PubSub, PubSubInit, Message, PubSubRPC, PubSubRPCMessage } from '@libp2p/interfaces/pubsub'
5
+ import type { PubSubInit, Message, PubSubRPC, PubSubRPCMessage, PublishResult } from '@libp2p/interfaces/pubsub'
6
6
  import type { PeerId } from '@libp2p/interfaces/peer-id'
7
7
  import { logger } from '@libp2p/logger'
8
8
  import { RPC } from './message/rpc.js'
@@ -20,7 +20,7 @@ export interface FloodSubInit extends PubSubInit {
20
20
  * delivering an API for Publish/Subscribe, but with no CastTree Forming
21
21
  * (it just floods the network).
22
22
  */
23
- export class FloodSub extends PubSubBaseProtocol implements PubSub {
23
+ export class FloodSub extends PubSubBaseProtocol {
24
24
  public seenCache: SimpleTimeCache<boolean>
25
25
 
26
26
  constructor (init?: FloodSubInit) {
@@ -83,12 +83,13 @@ export class FloodSub extends PubSubBaseProtocol implements PubSub {
83
83
  /**
84
84
  * Publish message created. Forward it to the peers.
85
85
  */
86
- async publishMessage (from: PeerId, message: Message) {
86
+ async publishMessage (from: PeerId, message: Message): Promise<PublishResult> {
87
87
  const peers = this.getSubscribers(message.topic)
88
+ const recipients: PeerId[] = []
88
89
 
89
90
  if (peers == null || peers.length === 0) {
90
91
  log('no peers are subscribed to topic %s', message.topic)
91
- return
92
+ return { recipients }
92
93
  }
93
94
 
94
95
  peers.forEach(id => {
@@ -104,7 +105,10 @@ export class FloodSub extends PubSubBaseProtocol implements PubSub {
104
105
 
105
106
  log('publish msgs on topics %s %p', message.topic, id)
106
107
 
108
+ recipients.push(id)
107
109
  this.send(id, { messages: [message] })
108
110
  })
111
+
112
+ return { recipients }
109
113
  }
110
114
  }