@libp2p/floodsub 1.0.4 → 1.0.7
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 +3 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/message/rpc.d.ts +9 -9
- package/dist/src/message/rpc.d.ts.map +1 -1
- package/package.json +12 -12
- package/src/index.ts +8 -4
package/dist/src/index.d.ts
CHANGED
|
@@ -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 {
|
|
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
|
|
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<
|
|
36
|
+
publishMessage(from: PeerId, message: Message): Promise<PublishResult>;
|
|
37
37
|
}
|
|
38
38
|
//# 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,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,
|
|
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
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAG5C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAEtC,MAAM,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;AAErC,OAAO,EAAE,UAAU,EAAE,CAAA;AAMrB;;;;GAIG;AACH,MAAM,OAAO,QAAS,SAAQ,kBAAkB;IAG9C,YAAa,IAAmB;QAC9B,KAAK,CAAC;YACJ,GAAG,IAAI;YACP,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,CAAC,UAAU,CAAC;SAC1B,CAAC,CAAA;QAEF;;;;WAIG;QACH,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAU;YAC5C,UAAU,EAAE,IAAI,EAAE,OAAO,IAAI,KAAK;SACnC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,SAAS,CAAE,KAAiB;QAC1B,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC;IAED;;OAEG;IACH,SAAS,CAAE,GAAc;QACvB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAED,aAAa,CAAE,KAAiB;QAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IAED,aAAa,CAAE,GAAqB;QAClC,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAChC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAAE,IAAY,EAAE,OAAgB;QAClD,iDAAiD;QACjD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QAE1C,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAChC,OAAM;SACP;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAElC,MAAM,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAE,IAAY,EAAE,OAAgB;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ export declare namespace RPC {
|
|
|
9
9
|
topic?: string;
|
|
10
10
|
}
|
|
11
11
|
namespace SubOpts {
|
|
12
|
-
const codec: () => import("protons-runtime
|
|
12
|
+
const codec: () => import("protons-runtime").Codec<SubOpts>;
|
|
13
13
|
const encode: (obj: SubOpts) => Uint8Array;
|
|
14
14
|
const decode: (buf: Uint8Array) => SubOpts;
|
|
15
15
|
}
|
|
@@ -22,11 +22,11 @@ export declare namespace RPC {
|
|
|
22
22
|
key?: Uint8Array;
|
|
23
23
|
}
|
|
24
24
|
namespace Message {
|
|
25
|
-
const codec: () => import("protons-runtime
|
|
25
|
+
const codec: () => import("protons-runtime").Codec<Message>;
|
|
26
26
|
const encode: (obj: Message) => Uint8Array;
|
|
27
27
|
const decode: (buf: Uint8Array) => Message;
|
|
28
28
|
}
|
|
29
|
-
const codec: () => import("protons-runtime
|
|
29
|
+
const codec: () => import("protons-runtime").Codec<RPC>;
|
|
30
30
|
const encode: (obj: RPC) => Uint8Array;
|
|
31
31
|
const decode: (buf: Uint8Array) => RPC;
|
|
32
32
|
}
|
|
@@ -37,7 +37,7 @@ export interface ControlMessage {
|
|
|
37
37
|
prune: ControlPrune[];
|
|
38
38
|
}
|
|
39
39
|
export declare namespace ControlMessage {
|
|
40
|
-
const codec: () => import("protons-runtime
|
|
40
|
+
const codec: () => import("protons-runtime").Codec<ControlMessage>;
|
|
41
41
|
const encode: (obj: ControlMessage) => Uint8Array;
|
|
42
42
|
const decode: (buf: Uint8Array) => ControlMessage;
|
|
43
43
|
}
|
|
@@ -46,7 +46,7 @@ export interface ControlIHave {
|
|
|
46
46
|
messageIDs: Uint8Array[];
|
|
47
47
|
}
|
|
48
48
|
export declare namespace ControlIHave {
|
|
49
|
-
const codec: () => import("protons-runtime
|
|
49
|
+
const codec: () => import("protons-runtime").Codec<ControlIHave>;
|
|
50
50
|
const encode: (obj: ControlIHave) => Uint8Array;
|
|
51
51
|
const decode: (buf: Uint8Array) => ControlIHave;
|
|
52
52
|
}
|
|
@@ -54,7 +54,7 @@ export interface ControlIWant {
|
|
|
54
54
|
messageIDs: Uint8Array[];
|
|
55
55
|
}
|
|
56
56
|
export declare namespace ControlIWant {
|
|
57
|
-
const codec: () => import("protons-runtime
|
|
57
|
+
const codec: () => import("protons-runtime").Codec<ControlIWant>;
|
|
58
58
|
const encode: (obj: ControlIWant) => Uint8Array;
|
|
59
59
|
const decode: (buf: Uint8Array) => ControlIWant;
|
|
60
60
|
}
|
|
@@ -62,7 +62,7 @@ export interface ControlGraft {
|
|
|
62
62
|
topic?: string;
|
|
63
63
|
}
|
|
64
64
|
export declare namespace ControlGraft {
|
|
65
|
-
const codec: () => import("protons-runtime
|
|
65
|
+
const codec: () => import("protons-runtime").Codec<ControlGraft>;
|
|
66
66
|
const encode: (obj: ControlGraft) => Uint8Array;
|
|
67
67
|
const decode: (buf: Uint8Array) => ControlGraft;
|
|
68
68
|
}
|
|
@@ -72,7 +72,7 @@ export interface ControlPrune {
|
|
|
72
72
|
backoff?: bigint;
|
|
73
73
|
}
|
|
74
74
|
export declare namespace ControlPrune {
|
|
75
|
-
const codec: () => import("protons-runtime
|
|
75
|
+
const codec: () => import("protons-runtime").Codec<ControlPrune>;
|
|
76
76
|
const encode: (obj: ControlPrune) => Uint8Array;
|
|
77
77
|
const decode: (buf: Uint8Array) => ControlPrune;
|
|
78
78
|
}
|
|
@@ -81,7 +81,7 @@ export interface PeerInfo {
|
|
|
81
81
|
signedPeerRecord?: Uint8Array;
|
|
82
82
|
}
|
|
83
83
|
export declare namespace PeerInfo {
|
|
84
|
-
const codec: () => import("protons-runtime
|
|
84
|
+
const codec: () => import("protons-runtime").Codec<PeerInfo>;
|
|
85
85
|
const encode: (obj: PeerInfo) => Uint8Array;
|
|
86
86
|
const decode: (buf: Uint8Array) => PeerInfo;
|
|
87
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../../src/message/rpc.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,GAAG;IAClB,aAAa,EAAE,GAAG,CAAC,OAAO,EAAE,CAAA;IAC5B,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,CAAA;IACvB,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AAED,yBAAiB,GAAG,CAAC;IACnB,UAAiB,OAAO;QACtB,SAAS,CAAC,EAAE,OAAO,CAAA;QACnB,KAAK,CAAC,EAAE,MAAM,CAAA;KACf;IAED,UAAiB,OAAO,CAAC;QAChB,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../../src/message/rpc.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.
|
|
3
|
+
"version": "1.0.7",
|
|
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",
|
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
"dep-check": "aegir dep-check",
|
|
133
133
|
"build": "aegir build",
|
|
134
134
|
"generate": "protons ./src/message/rpc.proto",
|
|
135
|
-
"test": "aegir test
|
|
135
|
+
"test": "aegir test",
|
|
136
136
|
"test:chrome": "aegir test -t browser --cov",
|
|
137
137
|
"test:chrome-webworker": "aegir test -t webworker",
|
|
138
138
|
"test:firefox": "aegir test -t browser -- --browser firefox",
|
|
@@ -142,23 +142,23 @@
|
|
|
142
142
|
"release": "aegir release"
|
|
143
143
|
},
|
|
144
144
|
"dependencies": {
|
|
145
|
-
"@libp2p/interfaces": "^
|
|
146
|
-
"@libp2p/logger": "^1.1.
|
|
147
|
-
"@libp2p/pubsub": "^1.2.
|
|
148
|
-
"protons-runtime": "^1.0.
|
|
145
|
+
"@libp2p/interfaces": "^2.0.1",
|
|
146
|
+
"@libp2p/logger": "^1.1.4",
|
|
147
|
+
"@libp2p/pubsub": "^1.2.20",
|
|
148
|
+
"protons-runtime": "^1.0.3",
|
|
149
149
|
"uint8arrays": "^3.0.0"
|
|
150
150
|
},
|
|
151
151
|
"devDependencies": {
|
|
152
|
-
"@libp2p/interface-compliance-tests": "^
|
|
153
|
-
"@libp2p/peer-collections": "^1.0.
|
|
154
|
-
"@libp2p/peer-id": "^1.1.
|
|
152
|
+
"@libp2p/interface-compliance-tests": "^2.0.1",
|
|
153
|
+
"@libp2p/peer-collections": "^1.0.2",
|
|
154
|
+
"@libp2p/peer-id": "^1.1.10",
|
|
155
155
|
"@libp2p/peer-id-factory": "^1.0.9",
|
|
156
156
|
"@multiformats/multiaddr": "^10.1.8",
|
|
157
|
-
"aegir": "^37.0.
|
|
157
|
+
"aegir": "^37.0.14",
|
|
158
158
|
"multiformats": "^9.4.5",
|
|
159
159
|
"p-wait-for": "^4.1.0",
|
|
160
|
-
"protons": "^3.0.
|
|
161
|
-
"sinon": "^
|
|
160
|
+
"protons": "^3.0.3",
|
|
161
|
+
"sinon": "^14.0.0",
|
|
162
162
|
"wherearewe": "^1.0.0"
|
|
163
163
|
}
|
|
164
164
|
}
|
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 {
|
|
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
|
|
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
|
}
|