@libp2p/daemon-protocol 1.0.1 → 1.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/src/index.ts ADDED
@@ -0,0 +1,552 @@
1
+ /* eslint-disable import/export */
2
+ /* eslint-disable @typescript-eslint/no-namespace */
3
+
4
+ import { enumeration, encodeMessage, decodeMessage, message, bytes, int64, string, int32 } from 'protons-runtime'
5
+
6
+ export interface Request {
7
+ type: Request.Type
8
+ connect?: ConnectRequest
9
+ streamOpen?: StreamOpenRequest
10
+ streamHandler?: StreamHandlerRequest
11
+ dht?: DHTRequest
12
+ connManager?: ConnManagerRequest
13
+ disconnect?: DisconnectRequest
14
+ pubsub?: PSRequest
15
+ peerStore?: PeerstoreRequest
16
+ }
17
+
18
+ export namespace Request {
19
+ export enum Type {
20
+ IDENTIFY = 'IDENTIFY',
21
+ CONNECT = 'CONNECT',
22
+ STREAM_OPEN = 'STREAM_OPEN',
23
+ STREAM_HANDLER = 'STREAM_HANDLER',
24
+ DHT = 'DHT',
25
+ LIST_PEERS = 'LIST_PEERS',
26
+ CONNMANAGER = 'CONNMANAGER',
27
+ DISCONNECT = 'DISCONNECT',
28
+ PUBSUB = 'PUBSUB',
29
+ PEERSTORE = 'PEERSTORE'
30
+ }
31
+
32
+ export namespace Type {
33
+ export const codec = () => {
34
+ return enumeration<typeof Type>(Type)
35
+ }
36
+ }
37
+
38
+ export const codec = () => {
39
+ return message<Request>({
40
+ 1: { name: 'type', codec: Request.Type.codec() },
41
+ 2: { name: 'connect', codec: ConnectRequest.codec(), optional: true },
42
+ 3: { name: 'streamOpen', codec: StreamOpenRequest.codec(), optional: true },
43
+ 4: { name: 'streamHandler', codec: StreamHandlerRequest.codec(), optional: true },
44
+ 5: { name: 'dht', codec: DHTRequest.codec(), optional: true },
45
+ 6: { name: 'connManager', codec: ConnManagerRequest.codec(), optional: true },
46
+ 7: { name: 'disconnect', codec: DisconnectRequest.codec(), optional: true },
47
+ 8: { name: 'pubsub', codec: PSRequest.codec(), optional: true },
48
+ 9: { name: 'peerStore', codec: PeerstoreRequest.codec(), optional: true }
49
+ })
50
+ }
51
+
52
+ export const encode = (obj: Request): Uint8Array => {
53
+ return encodeMessage(obj, Request.codec())
54
+ }
55
+
56
+ export const decode = (buf: Uint8Array): Request => {
57
+ return decodeMessage(buf, Request.codec())
58
+ }
59
+ }
60
+
61
+ export interface Response {
62
+ type: Response.Type
63
+ error?: ErrorResponse
64
+ streamInfo?: StreamInfo
65
+ identify?: IdentifyResponse
66
+ dht?: DHTResponse
67
+ peers: PeerInfo[]
68
+ pubsub?: PSResponse
69
+ peerStore?: PeerstoreResponse
70
+ }
71
+
72
+ export namespace Response {
73
+ export enum Type {
74
+ OK = 'OK',
75
+ ERROR = 'ERROR'
76
+ }
77
+
78
+ export namespace Type {
79
+ export const codec = () => {
80
+ return enumeration<typeof Type>(Type)
81
+ }
82
+ }
83
+
84
+ export const codec = () => {
85
+ return message<Response>({
86
+ 1: { name: 'type', codec: Response.Type.codec() },
87
+ 2: { name: 'error', codec: ErrorResponse.codec(), optional: true },
88
+ 3: { name: 'streamInfo', codec: StreamInfo.codec(), optional: true },
89
+ 4: { name: 'identify', codec: IdentifyResponse.codec(), optional: true },
90
+ 5: { name: 'dht', codec: DHTResponse.codec(), optional: true },
91
+ 6: { name: 'peers', codec: PeerInfo.codec(), repeats: true },
92
+ 7: { name: 'pubsub', codec: PSResponse.codec(), optional: true },
93
+ 8: { name: 'peerStore', codec: PeerstoreResponse.codec(), optional: true }
94
+ })
95
+ }
96
+
97
+ export const encode = (obj: Response): Uint8Array => {
98
+ return encodeMessage(obj, Response.codec())
99
+ }
100
+
101
+ export const decode = (buf: Uint8Array): Response => {
102
+ return decodeMessage(buf, Response.codec())
103
+ }
104
+ }
105
+
106
+ export interface IdentifyResponse {
107
+ id: Uint8Array
108
+ addrs: Uint8Array[]
109
+ }
110
+
111
+ export namespace IdentifyResponse {
112
+ export const codec = () => {
113
+ return message<IdentifyResponse>({
114
+ 1: { name: 'id', codec: bytes },
115
+ 2: { name: 'addrs', codec: bytes, repeats: true }
116
+ })
117
+ }
118
+
119
+ export const encode = (obj: IdentifyResponse): Uint8Array => {
120
+ return encodeMessage(obj, IdentifyResponse.codec())
121
+ }
122
+
123
+ export const decode = (buf: Uint8Array): IdentifyResponse => {
124
+ return decodeMessage(buf, IdentifyResponse.codec())
125
+ }
126
+ }
127
+
128
+ export interface ConnectRequest {
129
+ peer: Uint8Array
130
+ addrs: Uint8Array[]
131
+ timeout?: bigint
132
+ }
133
+
134
+ export namespace ConnectRequest {
135
+ export const codec = () => {
136
+ return message<ConnectRequest>({
137
+ 1: { name: 'peer', codec: bytes },
138
+ 2: { name: 'addrs', codec: bytes, repeats: true },
139
+ 3: { name: 'timeout', codec: int64, optional: true }
140
+ })
141
+ }
142
+
143
+ export const encode = (obj: ConnectRequest): Uint8Array => {
144
+ return encodeMessage(obj, ConnectRequest.codec())
145
+ }
146
+
147
+ export const decode = (buf: Uint8Array): ConnectRequest => {
148
+ return decodeMessage(buf, ConnectRequest.codec())
149
+ }
150
+ }
151
+
152
+ export interface StreamOpenRequest {
153
+ peer: Uint8Array
154
+ proto: string[]
155
+ timeout?: bigint
156
+ }
157
+
158
+ export namespace StreamOpenRequest {
159
+ export const codec = () => {
160
+ return message<StreamOpenRequest>({
161
+ 1: { name: 'peer', codec: bytes },
162
+ 2: { name: 'proto', codec: string, repeats: true },
163
+ 3: { name: 'timeout', codec: int64, optional: true }
164
+ })
165
+ }
166
+
167
+ export const encode = (obj: StreamOpenRequest): Uint8Array => {
168
+ return encodeMessage(obj, StreamOpenRequest.codec())
169
+ }
170
+
171
+ export const decode = (buf: Uint8Array): StreamOpenRequest => {
172
+ return decodeMessage(buf, StreamOpenRequest.codec())
173
+ }
174
+ }
175
+
176
+ export interface StreamHandlerRequest {
177
+ addr: Uint8Array
178
+ proto: string[]
179
+ }
180
+
181
+ export namespace StreamHandlerRequest {
182
+ export const codec = () => {
183
+ return message<StreamHandlerRequest>({
184
+ 1: { name: 'addr', codec: bytes },
185
+ 2: { name: 'proto', codec: string, repeats: true }
186
+ })
187
+ }
188
+
189
+ export const encode = (obj: StreamHandlerRequest): Uint8Array => {
190
+ return encodeMessage(obj, StreamHandlerRequest.codec())
191
+ }
192
+
193
+ export const decode = (buf: Uint8Array): StreamHandlerRequest => {
194
+ return decodeMessage(buf, StreamHandlerRequest.codec())
195
+ }
196
+ }
197
+
198
+ export interface ErrorResponse {
199
+ msg: string
200
+ }
201
+
202
+ export namespace ErrorResponse {
203
+ export const codec = () => {
204
+ return message<ErrorResponse>({
205
+ 1: { name: 'msg', codec: string }
206
+ })
207
+ }
208
+
209
+ export const encode = (obj: ErrorResponse): Uint8Array => {
210
+ return encodeMessage(obj, ErrorResponse.codec())
211
+ }
212
+
213
+ export const decode = (buf: Uint8Array): ErrorResponse => {
214
+ return decodeMessage(buf, ErrorResponse.codec())
215
+ }
216
+ }
217
+
218
+ export interface StreamInfo {
219
+ peer: Uint8Array
220
+ addr: Uint8Array
221
+ proto: string
222
+ }
223
+
224
+ export namespace StreamInfo {
225
+ export const codec = () => {
226
+ return message<StreamInfo>({
227
+ 1: { name: 'peer', codec: bytes },
228
+ 2: { name: 'addr', codec: bytes },
229
+ 3: { name: 'proto', codec: string }
230
+ })
231
+ }
232
+
233
+ export const encode = (obj: StreamInfo): Uint8Array => {
234
+ return encodeMessage(obj, StreamInfo.codec())
235
+ }
236
+
237
+ export const decode = (buf: Uint8Array): StreamInfo => {
238
+ return decodeMessage(buf, StreamInfo.codec())
239
+ }
240
+ }
241
+
242
+ export interface DHTRequest {
243
+ type: DHTRequest.Type
244
+ peer?: Uint8Array
245
+ cid?: Uint8Array
246
+ key?: Uint8Array
247
+ value?: Uint8Array
248
+ count?: number
249
+ timeout?: bigint
250
+ }
251
+
252
+ export namespace DHTRequest {
253
+ export enum Type {
254
+ FIND_PEER = 'FIND_PEER',
255
+ FIND_PEERS_CONNECTED_TO_PEER = 'FIND_PEERS_CONNECTED_TO_PEER',
256
+ FIND_PROVIDERS = 'FIND_PROVIDERS',
257
+ GET_CLOSEST_PEERS = 'GET_CLOSEST_PEERS',
258
+ GET_PUBLIC_KEY = 'GET_PUBLIC_KEY',
259
+ GET_VALUE = 'GET_VALUE',
260
+ SEARCH_VALUE = 'SEARCH_VALUE',
261
+ PUT_VALUE = 'PUT_VALUE',
262
+ PROVIDE = 'PROVIDE'
263
+ }
264
+
265
+ export namespace Type {
266
+ export const codec = () => {
267
+ return enumeration<typeof Type>(Type)
268
+ }
269
+ }
270
+
271
+ export const codec = () => {
272
+ return message<DHTRequest>({
273
+ 1: { name: 'type', codec: DHTRequest.Type.codec() },
274
+ 2: { name: 'peer', codec: bytes, optional: true },
275
+ 3: { name: 'cid', codec: bytes, optional: true },
276
+ 4: { name: 'key', codec: bytes, optional: true },
277
+ 5: { name: 'value', codec: bytes, optional: true },
278
+ 6: { name: 'count', codec: int32, optional: true },
279
+ 7: { name: 'timeout', codec: int64, optional: true }
280
+ })
281
+ }
282
+
283
+ export const encode = (obj: DHTRequest): Uint8Array => {
284
+ return encodeMessage(obj, DHTRequest.codec())
285
+ }
286
+
287
+ export const decode = (buf: Uint8Array): DHTRequest => {
288
+ return decodeMessage(buf, DHTRequest.codec())
289
+ }
290
+ }
291
+
292
+ export interface DHTResponse {
293
+ type: DHTResponse.Type
294
+ peer?: PeerInfo
295
+ value?: Uint8Array
296
+ }
297
+
298
+ export namespace DHTResponse {
299
+ export enum Type {
300
+ BEGIN = 'BEGIN',
301
+ VALUE = 'VALUE',
302
+ END = 'END'
303
+ }
304
+
305
+ export namespace Type {
306
+ export const codec = () => {
307
+ return enumeration<typeof Type>(Type)
308
+ }
309
+ }
310
+
311
+ export const codec = () => {
312
+ return message<DHTResponse>({
313
+ 1: { name: 'type', codec: DHTResponse.Type.codec() },
314
+ 2: { name: 'peer', codec: PeerInfo.codec(), optional: true },
315
+ 3: { name: 'value', codec: bytes, optional: true }
316
+ })
317
+ }
318
+
319
+ export const encode = (obj: DHTResponse): Uint8Array => {
320
+ return encodeMessage(obj, DHTResponse.codec())
321
+ }
322
+
323
+ export const decode = (buf: Uint8Array): DHTResponse => {
324
+ return decodeMessage(buf, DHTResponse.codec())
325
+ }
326
+ }
327
+
328
+ export interface PeerInfo {
329
+ id: Uint8Array
330
+ addrs: Uint8Array[]
331
+ }
332
+
333
+ export namespace PeerInfo {
334
+ export const codec = () => {
335
+ return message<PeerInfo>({
336
+ 1: { name: 'id', codec: bytes },
337
+ 2: { name: 'addrs', codec: bytes, repeats: true }
338
+ })
339
+ }
340
+
341
+ export const encode = (obj: PeerInfo): Uint8Array => {
342
+ return encodeMessage(obj, PeerInfo.codec())
343
+ }
344
+
345
+ export const decode = (buf: Uint8Array): PeerInfo => {
346
+ return decodeMessage(buf, PeerInfo.codec())
347
+ }
348
+ }
349
+
350
+ export interface ConnManagerRequest {
351
+ type: ConnManagerRequest.Type
352
+ peer?: Uint8Array
353
+ tag?: string
354
+ weight?: bigint
355
+ }
356
+
357
+ export namespace ConnManagerRequest {
358
+ export enum Type {
359
+ TAG_PEER = 'TAG_PEER',
360
+ UNTAG_PEER = 'UNTAG_PEER',
361
+ TRIM = 'TRIM'
362
+ }
363
+
364
+ export namespace Type {
365
+ export const codec = () => {
366
+ return enumeration<typeof Type>(Type)
367
+ }
368
+ }
369
+
370
+ export const codec = () => {
371
+ return message<ConnManagerRequest>({
372
+ 1: { name: 'type', codec: ConnManagerRequest.Type.codec() },
373
+ 2: { name: 'peer', codec: bytes, optional: true },
374
+ 3: { name: 'tag', codec: string, optional: true },
375
+ 4: { name: 'weight', codec: int64, optional: true }
376
+ })
377
+ }
378
+
379
+ export const encode = (obj: ConnManagerRequest): Uint8Array => {
380
+ return encodeMessage(obj, ConnManagerRequest.codec())
381
+ }
382
+
383
+ export const decode = (buf: Uint8Array): ConnManagerRequest => {
384
+ return decodeMessage(buf, ConnManagerRequest.codec())
385
+ }
386
+ }
387
+
388
+ export interface DisconnectRequest {
389
+ peer: Uint8Array
390
+ }
391
+
392
+ export namespace DisconnectRequest {
393
+ export const codec = () => {
394
+ return message<DisconnectRequest>({
395
+ 1: { name: 'peer', codec: bytes }
396
+ })
397
+ }
398
+
399
+ export const encode = (obj: DisconnectRequest): Uint8Array => {
400
+ return encodeMessage(obj, DisconnectRequest.codec())
401
+ }
402
+
403
+ export const decode = (buf: Uint8Array): DisconnectRequest => {
404
+ return decodeMessage(buf, DisconnectRequest.codec())
405
+ }
406
+ }
407
+
408
+ export interface PSRequest {
409
+ type: PSRequest.Type
410
+ topic?: string
411
+ data?: Uint8Array
412
+ }
413
+
414
+ export namespace PSRequest {
415
+ export enum Type {
416
+ GET_TOPICS = 'GET_TOPICS',
417
+ LIST_PEERS = 'LIST_PEERS',
418
+ PUBLISH = 'PUBLISH',
419
+ SUBSCRIBE = 'SUBSCRIBE'
420
+ }
421
+
422
+ export namespace Type {
423
+ export const codec = () => {
424
+ return enumeration<typeof Type>(Type)
425
+ }
426
+ }
427
+
428
+ export const codec = () => {
429
+ return message<PSRequest>({
430
+ 1: { name: 'type', codec: PSRequest.Type.codec() },
431
+ 2: { name: 'topic', codec: string, optional: true },
432
+ 3: { name: 'data', codec: bytes, optional: true }
433
+ })
434
+ }
435
+
436
+ export const encode = (obj: PSRequest): Uint8Array => {
437
+ return encodeMessage(obj, PSRequest.codec())
438
+ }
439
+
440
+ export const decode = (buf: Uint8Array): PSRequest => {
441
+ return decodeMessage(buf, PSRequest.codec())
442
+ }
443
+ }
444
+
445
+ export interface PSMessage {
446
+ from?: Uint8Array
447
+ data?: Uint8Array
448
+ seqno?: Uint8Array
449
+ topicIDs: string[]
450
+ signature?: Uint8Array
451
+ key?: Uint8Array
452
+ }
453
+
454
+ export namespace PSMessage {
455
+ export const codec = () => {
456
+ return message<PSMessage>({
457
+ 1: { name: 'from', codec: bytes, optional: true },
458
+ 2: { name: 'data', codec: bytes, optional: true },
459
+ 3: { name: 'seqno', codec: bytes, optional: true },
460
+ 4: { name: 'topicIDs', codec: string, repeats: true },
461
+ 5: { name: 'signature', codec: bytes, optional: true },
462
+ 6: { name: 'key', codec: bytes, optional: true }
463
+ })
464
+ }
465
+
466
+ export const encode = (obj: PSMessage): Uint8Array => {
467
+ return encodeMessage(obj, PSMessage.codec())
468
+ }
469
+
470
+ export const decode = (buf: Uint8Array): PSMessage => {
471
+ return decodeMessage(buf, PSMessage.codec())
472
+ }
473
+ }
474
+
475
+ export interface PSResponse {
476
+ topics: string[]
477
+ peerIDs: Uint8Array[]
478
+ }
479
+
480
+ export namespace PSResponse {
481
+ export const codec = () => {
482
+ return message<PSResponse>({
483
+ 1: { name: 'topics', codec: string, repeats: true },
484
+ 2: { name: 'peerIDs', codec: bytes, repeats: true }
485
+ })
486
+ }
487
+
488
+ export const encode = (obj: PSResponse): Uint8Array => {
489
+ return encodeMessage(obj, PSResponse.codec())
490
+ }
491
+
492
+ export const decode = (buf: Uint8Array): PSResponse => {
493
+ return decodeMessage(buf, PSResponse.codec())
494
+ }
495
+ }
496
+
497
+ export interface PeerstoreRequest {
498
+ type: PeerstoreRequest.Type
499
+ id?: Uint8Array
500
+ protos: string[]
501
+ }
502
+
503
+ export namespace PeerstoreRequest {
504
+ export enum Type {
505
+ GET_PROTOCOLS = 'GET_PROTOCOLS',
506
+ GET_PEER_INFO = 'GET_PEER_INFO'
507
+ }
508
+
509
+ export namespace Type {
510
+ export const codec = () => {
511
+ return enumeration<typeof Type>(Type)
512
+ }
513
+ }
514
+
515
+ export const codec = () => {
516
+ return message<PeerstoreRequest>({
517
+ 1: { name: 'type', codec: PeerstoreRequest.Type.codec() },
518
+ 2: { name: 'id', codec: bytes, optional: true },
519
+ 3: { name: 'protos', codec: string, repeats: true }
520
+ })
521
+ }
522
+
523
+ export const encode = (obj: PeerstoreRequest): Uint8Array => {
524
+ return encodeMessage(obj, PeerstoreRequest.codec())
525
+ }
526
+
527
+ export const decode = (buf: Uint8Array): PeerstoreRequest => {
528
+ return decodeMessage(buf, PeerstoreRequest.codec())
529
+ }
530
+ }
531
+
532
+ export interface PeerstoreResponse {
533
+ peer?: PeerInfo
534
+ protos: string[]
535
+ }
536
+
537
+ export namespace PeerstoreResponse {
538
+ export const codec = () => {
539
+ return message<PeerstoreResponse>({
540
+ 1: { name: 'peer', codec: PeerInfo.codec(), optional: true },
541
+ 2: { name: 'protos', codec: string, repeats: true }
542
+ })
543
+ }
544
+
545
+ export const encode = (obj: PeerstoreResponse): Uint8Array => {
546
+ return encodeMessage(obj, PeerstoreResponse.codec())
547
+ }
548
+
549
+ export const decode = (buf: Uint8Array): PeerstoreResponse => {
550
+ return decodeMessage(buf, PeerstoreResponse.codec())
551
+ }
552
+ }