@libp2p/floodsub 1.0.2 → 1.0.3
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.js +2 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/message/rpc.d.ts +70 -651
- package/dist/src/message/rpc.d.ts.map +1 -0
- package/dist/src/message/rpc.js +120 -1851
- package/dist/src/message/rpc.js.map +1 -0
- package/package.json +22 -23
- package/src/index.ts +2 -2
- package/src/message/rpc.ts +213 -0
- package/src/message/rpc.d.ts +0 -669
- package/src/message/rpc.js +0 -1876
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc.js","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.3",
|
|
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",
|
|
@@ -127,38 +127,37 @@
|
|
|
127
127
|
]
|
|
128
128
|
},
|
|
129
129
|
"scripts": {
|
|
130
|
+
"clean": "aegir clean",
|
|
130
131
|
"lint": "aegir lint",
|
|
131
|
-
"dep-check": "aegir dep-check
|
|
132
|
-
"build": "
|
|
133
|
-
"
|
|
134
|
-
"generate": "npm run generate:proto && npm run generate:proto-types",
|
|
135
|
-
"generate:proto": "pbjs -t static-module -w es6 -r libp2p-floodsub --force-number --no-verify --no-delimited --no-create --no-beautify --no-defaults --lint eslint-disable -o src/message/rpc.js ./src/message/rpc.proto",
|
|
136
|
-
"generate:proto-types": "pbts -o src/message/rpc.d.ts src/message/rpc.js",
|
|
137
|
-
"pretest": "npm run build",
|
|
132
|
+
"dep-check": "aegir dep-check",
|
|
133
|
+
"build": "aegir build",
|
|
134
|
+
"generate": "protons ./src/message/rpc.proto",
|
|
138
135
|
"test": "aegir test -f dist/test",
|
|
139
|
-
"test:chrome": "
|
|
140
|
-
"test:chrome-webworker": "
|
|
141
|
-
"test:firefox": "
|
|
142
|
-
"test:firefox-webworker": "
|
|
143
|
-
"test:node": "
|
|
144
|
-
"test:electron-main": "
|
|
145
|
-
"release": "
|
|
136
|
+
"test:chrome": "aegir test -t browser --cov",
|
|
137
|
+
"test:chrome-webworker": "aegir test -t webworker",
|
|
138
|
+
"test:firefox": "aegir test -t browser -- --browser firefox",
|
|
139
|
+
"test:firefox-webworker": "aegir test -t webworker -- --browser firefox",
|
|
140
|
+
"test:node": "aegir test -t node --cov",
|
|
141
|
+
"test:electron-main": "aegir test -t electron-main",
|
|
142
|
+
"release": "aegir release"
|
|
146
143
|
},
|
|
147
144
|
"dependencies": {
|
|
148
|
-
"@libp2p/interfaces": "^1.3.
|
|
149
|
-
"@libp2p/logger": "^1.1.
|
|
150
|
-
"@libp2p/pubsub": "^1.2.
|
|
151
|
-
"
|
|
145
|
+
"@libp2p/interfaces": "^1.3.20",
|
|
146
|
+
"@libp2p/logger": "^1.1.3",
|
|
147
|
+
"@libp2p/pubsub": "^1.2.14",
|
|
148
|
+
"protons-runtime": "^1.0.2",
|
|
152
149
|
"uint8arrays": "^3.0.0"
|
|
153
150
|
},
|
|
154
151
|
"devDependencies": {
|
|
155
|
-
"@libp2p/interface-compliance-tests": "^1.1.
|
|
156
|
-
"@libp2p/peer-
|
|
157
|
-
"@libp2p/peer-id
|
|
152
|
+
"@libp2p/interface-compliance-tests": "^1.1.21",
|
|
153
|
+
"@libp2p/peer-collections": "^1.0.1",
|
|
154
|
+
"@libp2p/peer-id": "^1.1.9",
|
|
155
|
+
"@libp2p/peer-id-factory": "^1.0.9",
|
|
158
156
|
"@multiformats/multiaddr": "^10.1.8",
|
|
159
|
-
"aegir": "^
|
|
157
|
+
"aegir": "^37.0.7",
|
|
160
158
|
"multiformats": "^9.4.5",
|
|
161
159
|
"p-wait-for": "^4.1.0",
|
|
160
|
+
"protons": "^3.0.2",
|
|
162
161
|
"sinon": "^13.0.1",
|
|
163
162
|
"wherearewe": "^1.0.0"
|
|
164
163
|
}
|
package/src/index.ts
CHANGED
|
@@ -51,7 +51,7 @@ export class FloodSub extends PubSubBaseProtocol implements PubSub {
|
|
|
51
51
|
* Encode an RPC object into a Uint8Array
|
|
52
52
|
*/
|
|
53
53
|
encodeRpc (rpc: PubSubRPC): Uint8Array {
|
|
54
|
-
return RPC.encode(rpc)
|
|
54
|
+
return RPC.encode(rpc)
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
decodeMessage (bytes: Uint8Array): PubSubRPCMessage {
|
|
@@ -59,7 +59,7 @@ export class FloodSub extends PubSubBaseProtocol implements PubSub {
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
encodeMessage (rpc: PubSubRPCMessage): Uint8Array {
|
|
62
|
-
return RPC.Message.encode(rpc)
|
|
62
|
+
return RPC.Message.encode(rpc)
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
/**
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/* eslint-disable import/export */
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-namespace */
|
|
3
|
+
|
|
4
|
+
import { encodeMessage, decodeMessage, message, bool, string, bytes, uint64 } from 'protons-runtime'
|
|
5
|
+
|
|
6
|
+
export interface RPC {
|
|
7
|
+
subscriptions: RPC.SubOpts[]
|
|
8
|
+
messages: RPC.Message[]
|
|
9
|
+
control?: ControlMessage
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export namespace RPC {
|
|
13
|
+
export interface SubOpts {
|
|
14
|
+
subscribe?: boolean
|
|
15
|
+
topic?: string
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export namespace SubOpts {
|
|
19
|
+
export const codec = () => {
|
|
20
|
+
return message<SubOpts>({
|
|
21
|
+
1: { name: 'subscribe', codec: bool, optional: true },
|
|
22
|
+
2: { name: 'topic', codec: string, optional: true }
|
|
23
|
+
})
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export const encode = (obj: SubOpts): Uint8Array => {
|
|
27
|
+
return encodeMessage(obj, SubOpts.codec())
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export const decode = (buf: Uint8Array): SubOpts => {
|
|
31
|
+
return decodeMessage(buf, SubOpts.codec())
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export interface Message {
|
|
35
|
+
from?: Uint8Array
|
|
36
|
+
data?: Uint8Array
|
|
37
|
+
sequenceNumber?: Uint8Array
|
|
38
|
+
topic?: string
|
|
39
|
+
signature?: Uint8Array
|
|
40
|
+
key?: Uint8Array
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export namespace Message {
|
|
44
|
+
export const codec = () => {
|
|
45
|
+
return message<Message>({
|
|
46
|
+
1: { name: 'from', codec: bytes, optional: true },
|
|
47
|
+
2: { name: 'data', codec: bytes, optional: true },
|
|
48
|
+
3: { name: 'sequenceNumber', codec: bytes, optional: true },
|
|
49
|
+
4: { name: 'topic', codec: string, optional: true },
|
|
50
|
+
5: { name: 'signature', codec: bytes, optional: true },
|
|
51
|
+
6: { name: 'key', codec: bytes, optional: true }
|
|
52
|
+
})
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export const encode = (obj: Message): Uint8Array => {
|
|
56
|
+
return encodeMessage(obj, Message.codec())
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export const decode = (buf: Uint8Array): Message => {
|
|
60
|
+
return decodeMessage(buf, Message.codec())
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export const codec = () => {
|
|
65
|
+
return message<RPC>({
|
|
66
|
+
1: { name: 'subscriptions', codec: RPC.SubOpts.codec(), repeats: true },
|
|
67
|
+
2: { name: 'messages', codec: RPC.Message.codec(), repeats: true },
|
|
68
|
+
3: { name: 'control', codec: ControlMessage.codec(), optional: true }
|
|
69
|
+
})
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export const encode = (obj: RPC): Uint8Array => {
|
|
73
|
+
return encodeMessage(obj, RPC.codec())
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export const decode = (buf: Uint8Array): RPC => {
|
|
77
|
+
return decodeMessage(buf, RPC.codec())
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export interface ControlMessage {
|
|
82
|
+
ihave: ControlIHave[]
|
|
83
|
+
iwant: ControlIWant[]
|
|
84
|
+
graft: ControlGraft[]
|
|
85
|
+
prune: ControlPrune[]
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export namespace ControlMessage {
|
|
89
|
+
export const codec = () => {
|
|
90
|
+
return message<ControlMessage>({
|
|
91
|
+
1: { name: 'ihave', codec: ControlIHave.codec(), repeats: true },
|
|
92
|
+
2: { name: 'iwant', codec: ControlIWant.codec(), repeats: true },
|
|
93
|
+
3: { name: 'graft', codec: ControlGraft.codec(), repeats: true },
|
|
94
|
+
4: { name: 'prune', codec: ControlPrune.codec(), repeats: true }
|
|
95
|
+
})
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export const encode = (obj: ControlMessage): Uint8Array => {
|
|
99
|
+
return encodeMessage(obj, ControlMessage.codec())
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export const decode = (buf: Uint8Array): ControlMessage => {
|
|
103
|
+
return decodeMessage(buf, ControlMessage.codec())
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export interface ControlIHave {
|
|
108
|
+
topic?: string
|
|
109
|
+
messageIDs: Uint8Array[]
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export namespace ControlIHave {
|
|
113
|
+
export const codec = () => {
|
|
114
|
+
return message<ControlIHave>({
|
|
115
|
+
1: { name: 'topic', codec: string, optional: true },
|
|
116
|
+
2: { name: 'messageIDs', codec: bytes, repeats: true }
|
|
117
|
+
})
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export const encode = (obj: ControlIHave): Uint8Array => {
|
|
121
|
+
return encodeMessage(obj, ControlIHave.codec())
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export const decode = (buf: Uint8Array): ControlIHave => {
|
|
125
|
+
return decodeMessage(buf, ControlIHave.codec())
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export interface ControlIWant {
|
|
130
|
+
messageIDs: Uint8Array[]
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export namespace ControlIWant {
|
|
134
|
+
export const codec = () => {
|
|
135
|
+
return message<ControlIWant>({
|
|
136
|
+
1: { name: 'messageIDs', codec: bytes, repeats: true }
|
|
137
|
+
})
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export const encode = (obj: ControlIWant): Uint8Array => {
|
|
141
|
+
return encodeMessage(obj, ControlIWant.codec())
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
export const decode = (buf: Uint8Array): ControlIWant => {
|
|
145
|
+
return decodeMessage(buf, ControlIWant.codec())
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
export interface ControlGraft {
|
|
150
|
+
topic?: string
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
export namespace ControlGraft {
|
|
154
|
+
export const codec = () => {
|
|
155
|
+
return message<ControlGraft>({
|
|
156
|
+
1: { name: 'topic', codec: string, optional: true }
|
|
157
|
+
})
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
export const encode = (obj: ControlGraft): Uint8Array => {
|
|
161
|
+
return encodeMessage(obj, ControlGraft.codec())
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
export const decode = (buf: Uint8Array): ControlGraft => {
|
|
165
|
+
return decodeMessage(buf, ControlGraft.codec())
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
export interface ControlPrune {
|
|
170
|
+
topic?: string
|
|
171
|
+
peers: PeerInfo[]
|
|
172
|
+
backoff?: bigint
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
export namespace ControlPrune {
|
|
176
|
+
export const codec = () => {
|
|
177
|
+
return message<ControlPrune>({
|
|
178
|
+
1: { name: 'topic', codec: string, optional: true },
|
|
179
|
+
2: { name: 'peers', codec: PeerInfo.codec(), repeats: true },
|
|
180
|
+
3: { name: 'backoff', codec: uint64, optional: true }
|
|
181
|
+
})
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
export const encode = (obj: ControlPrune): Uint8Array => {
|
|
185
|
+
return encodeMessage(obj, ControlPrune.codec())
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
export const decode = (buf: Uint8Array): ControlPrune => {
|
|
189
|
+
return decodeMessage(buf, ControlPrune.codec())
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
export interface PeerInfo {
|
|
194
|
+
peerID?: Uint8Array
|
|
195
|
+
signedPeerRecord?: Uint8Array
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
export namespace PeerInfo {
|
|
199
|
+
export const codec = () => {
|
|
200
|
+
return message<PeerInfo>({
|
|
201
|
+
1: { name: 'peerID', codec: bytes, optional: true },
|
|
202
|
+
2: { name: 'signedPeerRecord', codec: bytes, optional: true }
|
|
203
|
+
})
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
export const encode = (obj: PeerInfo): Uint8Array => {
|
|
207
|
+
return encodeMessage(obj, PeerInfo.codec())
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
export const decode = (buf: Uint8Array): PeerInfo => {
|
|
211
|
+
return decodeMessage(buf, PeerInfo.codec())
|
|
212
|
+
}
|
|
213
|
+
}
|