@libp2p/pubsub 0.0.0 → 0.2.0

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.
Files changed (76) hide show
  1. package/LICENSE +4 -0
  2. package/README.md +35 -0
  3. package/dist/src/errors.d.ts +39 -0
  4. package/dist/src/errors.d.ts.map +1 -0
  5. package/dist/src/errors.js +41 -0
  6. package/dist/src/errors.js.map +1 -0
  7. package/dist/src/index.d.ts +180 -0
  8. package/dist/src/index.d.ts.map +1 -0
  9. package/dist/src/index.js +467 -0
  10. package/dist/src/index.js.map +1 -0
  11. package/dist/src/message/rpc.d.ts +258 -0
  12. package/dist/src/message/rpc.js +699 -0
  13. package/dist/src/message/sign.d.ts +17 -0
  14. package/dist/src/message/sign.d.ts.map +1 -0
  15. package/dist/src/message/sign.js +84 -0
  16. package/dist/src/message/sign.js.map +1 -0
  17. package/dist/src/message/topic-descriptor.d.ts +254 -0
  18. package/dist/src/message/topic-descriptor.js +647 -0
  19. package/dist/src/peer-streams.d.ts +67 -0
  20. package/dist/src/peer-streams.d.ts.map +1 -0
  21. package/dist/src/peer-streams.js +112 -0
  22. package/dist/src/peer-streams.js.map +1 -0
  23. package/dist/src/utils.d.ts +29 -0
  24. package/dist/src/utils.d.ts.map +1 -0
  25. package/dist/src/utils.js +80 -0
  26. package/dist/src/utils.js.map +1 -0
  27. package/dist/test/emit-self.spec.d.ts +2 -0
  28. package/dist/test/emit-self.spec.d.ts.map +1 -0
  29. package/dist/test/emit-self.spec.js +63 -0
  30. package/dist/test/emit-self.spec.js.map +1 -0
  31. package/dist/test/instance.spec.d.ts +2 -0
  32. package/dist/test/instance.spec.d.ts.map +1 -0
  33. package/dist/test/instance.spec.js +50 -0
  34. package/dist/test/instance.spec.js.map +1 -0
  35. package/dist/test/lifesycle.spec.d.ts +2 -0
  36. package/dist/test/lifesycle.spec.d.ts.map +1 -0
  37. package/dist/test/lifesycle.spec.js +192 -0
  38. package/dist/test/lifesycle.spec.js.map +1 -0
  39. package/dist/test/message.spec.d.ts +2 -0
  40. package/dist/test/message.spec.d.ts.map +1 -0
  41. package/dist/test/message.spec.js +83 -0
  42. package/dist/test/message.spec.js.map +1 -0
  43. package/dist/test/pubsub.spec.d.ts +2 -0
  44. package/dist/test/pubsub.spec.d.ts.map +1 -0
  45. package/dist/test/pubsub.spec.js +310 -0
  46. package/dist/test/pubsub.spec.js.map +1 -0
  47. package/dist/test/sign.spec.d.ts +2 -0
  48. package/dist/test/sign.spec.d.ts.map +1 -0
  49. package/dist/test/sign.spec.js +93 -0
  50. package/dist/test/sign.spec.js.map +1 -0
  51. package/dist/test/topic-validators.spec.d.ts +2 -0
  52. package/dist/test/topic-validators.spec.d.ts.map +1 -0
  53. package/dist/test/topic-validators.spec.js +86 -0
  54. package/dist/test/topic-validators.spec.js.map +1 -0
  55. package/dist/test/utils/index.d.ts +22 -0
  56. package/dist/test/utils/index.d.ts.map +1 -0
  57. package/dist/test/utils/index.js +86 -0
  58. package/dist/test/utils/index.js.map +1 -0
  59. package/dist/test/utils.spec.d.ts +2 -0
  60. package/dist/test/utils.spec.d.ts.map +1 -0
  61. package/dist/test/utils.spec.js +53 -0
  62. package/dist/test/utils.spec.js.map +1 -0
  63. package/dist/tsconfig.tsbuildinfo +1 -0
  64. package/package.json +109 -4
  65. package/src/README.md +251 -0
  66. package/src/errors.ts +45 -0
  67. package/src/index.ts +610 -0
  68. package/src/message/rpc.d.ts +258 -0
  69. package/src/message/rpc.js +699 -0
  70. package/src/message/rpc.proto +20 -0
  71. package/src/message/sign.ts +101 -0
  72. package/src/message/topic-descriptor.d.ts +254 -0
  73. package/src/message/topic-descriptor.js +647 -0
  74. package/src/message/topic-descriptor.proto +30 -0
  75. package/src/peer-streams.ts +169 -0
  76. package/src/utils.ts +93 -0
@@ -0,0 +1,699 @@
1
+ /*eslint-disable*/
2
+ import $protobuf from "protobufjs/minimal.js";
3
+
4
+ // Common aliases
5
+ const $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;
6
+
7
+ // Exported root namespace
8
+ const $root = $protobuf.roots["libp2p-pubsub-rpc"] || ($protobuf.roots["libp2p-pubsub-rpc"] = {});
9
+
10
+ export const RPC = $root.RPC = (() => {
11
+
12
+ /**
13
+ * Properties of a RPC.
14
+ * @exports IRPC
15
+ * @interface IRPC
16
+ * @property {Array.<RPC.ISubOpts>|null} [subscriptions] RPC subscriptions
17
+ * @property {Array.<RPC.IMessage>|null} [msgs] RPC msgs
18
+ */
19
+
20
+ /**
21
+ * Constructs a new RPC.
22
+ * @exports RPC
23
+ * @classdesc Represents a RPC.
24
+ * @implements IRPC
25
+ * @constructor
26
+ * @param {IRPC=} [p] Properties to set
27
+ */
28
+ function RPC(p) {
29
+ this.subscriptions = [];
30
+ this.msgs = [];
31
+ if (p)
32
+ for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)
33
+ if (p[ks[i]] != null)
34
+ this[ks[i]] = p[ks[i]];
35
+ }
36
+
37
+ /**
38
+ * RPC subscriptions.
39
+ * @member {Array.<RPC.ISubOpts>} subscriptions
40
+ * @memberof RPC
41
+ * @instance
42
+ */
43
+ RPC.prototype.subscriptions = $util.emptyArray;
44
+
45
+ /**
46
+ * RPC msgs.
47
+ * @member {Array.<RPC.IMessage>} msgs
48
+ * @memberof RPC
49
+ * @instance
50
+ */
51
+ RPC.prototype.msgs = $util.emptyArray;
52
+
53
+ /**
54
+ * Encodes the specified RPC message. Does not implicitly {@link RPC.verify|verify} messages.
55
+ * @function encode
56
+ * @memberof RPC
57
+ * @static
58
+ * @param {IRPC} m RPC message or plain object to encode
59
+ * @param {$protobuf.Writer} [w] Writer to encode to
60
+ * @returns {$protobuf.Writer} Writer
61
+ */
62
+ RPC.encode = function encode(m, w) {
63
+ if (!w)
64
+ w = $Writer.create();
65
+ if (m.subscriptions != null && m.subscriptions.length) {
66
+ for (var i = 0; i < m.subscriptions.length; ++i)
67
+ $root.RPC.SubOpts.encode(m.subscriptions[i], w.uint32(10).fork()).ldelim();
68
+ }
69
+ if (m.msgs != null && m.msgs.length) {
70
+ for (var i = 0; i < m.msgs.length; ++i)
71
+ $root.RPC.Message.encode(m.msgs[i], w.uint32(18).fork()).ldelim();
72
+ }
73
+ return w;
74
+ };
75
+
76
+ /**
77
+ * Decodes a RPC message from the specified reader or buffer.
78
+ * @function decode
79
+ * @memberof RPC
80
+ * @static
81
+ * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from
82
+ * @param {number} [l] Message length if known beforehand
83
+ * @returns {RPC} RPC
84
+ * @throws {Error} If the payload is not a reader or valid buffer
85
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
86
+ */
87
+ RPC.decode = function decode(r, l) {
88
+ if (!(r instanceof $Reader))
89
+ r = $Reader.create(r);
90
+ var c = l === undefined ? r.len : r.pos + l, m = new $root.RPC();
91
+ while (r.pos < c) {
92
+ var t = r.uint32();
93
+ switch (t >>> 3) {
94
+ case 1:
95
+ if (!(m.subscriptions && m.subscriptions.length))
96
+ m.subscriptions = [];
97
+ m.subscriptions.push($root.RPC.SubOpts.decode(r, r.uint32()));
98
+ break;
99
+ case 2:
100
+ if (!(m.msgs && m.msgs.length))
101
+ m.msgs = [];
102
+ m.msgs.push($root.RPC.Message.decode(r, r.uint32()));
103
+ break;
104
+ default:
105
+ r.skipType(t & 7);
106
+ break;
107
+ }
108
+ }
109
+ return m;
110
+ };
111
+
112
+ /**
113
+ * Creates a RPC message from a plain object. Also converts values to their respective internal types.
114
+ * @function fromObject
115
+ * @memberof RPC
116
+ * @static
117
+ * @param {Object.<string,*>} d Plain object
118
+ * @returns {RPC} RPC
119
+ */
120
+ RPC.fromObject = function fromObject(d) {
121
+ if (d instanceof $root.RPC)
122
+ return d;
123
+ var m = new $root.RPC();
124
+ if (d.subscriptions) {
125
+ if (!Array.isArray(d.subscriptions))
126
+ throw TypeError(".RPC.subscriptions: array expected");
127
+ m.subscriptions = [];
128
+ for (var i = 0; i < d.subscriptions.length; ++i) {
129
+ if (typeof d.subscriptions[i] !== "object")
130
+ throw TypeError(".RPC.subscriptions: object expected");
131
+ m.subscriptions[i] = $root.RPC.SubOpts.fromObject(d.subscriptions[i]);
132
+ }
133
+ }
134
+ if (d.msgs) {
135
+ if (!Array.isArray(d.msgs))
136
+ throw TypeError(".RPC.msgs: array expected");
137
+ m.msgs = [];
138
+ for (var i = 0; i < d.msgs.length; ++i) {
139
+ if (typeof d.msgs[i] !== "object")
140
+ throw TypeError(".RPC.msgs: object expected");
141
+ m.msgs[i] = $root.RPC.Message.fromObject(d.msgs[i]);
142
+ }
143
+ }
144
+ return m;
145
+ };
146
+
147
+ /**
148
+ * Creates a plain object from a RPC message. Also converts values to other types if specified.
149
+ * @function toObject
150
+ * @memberof RPC
151
+ * @static
152
+ * @param {RPC} m RPC
153
+ * @param {$protobuf.IConversionOptions} [o] Conversion options
154
+ * @returns {Object.<string,*>} Plain object
155
+ */
156
+ RPC.toObject = function toObject(m, o) {
157
+ if (!o)
158
+ o = {};
159
+ var d = {};
160
+ if (o.arrays || o.defaults) {
161
+ d.subscriptions = [];
162
+ d.msgs = [];
163
+ }
164
+ if (m.subscriptions && m.subscriptions.length) {
165
+ d.subscriptions = [];
166
+ for (var j = 0; j < m.subscriptions.length; ++j) {
167
+ d.subscriptions[j] = $root.RPC.SubOpts.toObject(m.subscriptions[j], o);
168
+ }
169
+ }
170
+ if (m.msgs && m.msgs.length) {
171
+ d.msgs = [];
172
+ for (var j = 0; j < m.msgs.length; ++j) {
173
+ d.msgs[j] = $root.RPC.Message.toObject(m.msgs[j], o);
174
+ }
175
+ }
176
+ return d;
177
+ };
178
+
179
+ /**
180
+ * Converts this RPC to JSON.
181
+ * @function toJSON
182
+ * @memberof RPC
183
+ * @instance
184
+ * @returns {Object.<string,*>} JSON object
185
+ */
186
+ RPC.prototype.toJSON = function toJSON() {
187
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
188
+ };
189
+
190
+ RPC.SubOpts = (function() {
191
+
192
+ /**
193
+ * Properties of a SubOpts.
194
+ * @memberof RPC
195
+ * @interface ISubOpts
196
+ * @property {boolean|null} [subscribe] SubOpts subscribe
197
+ * @property {string|null} [topicID] SubOpts topicID
198
+ */
199
+
200
+ /**
201
+ * Constructs a new SubOpts.
202
+ * @memberof RPC
203
+ * @classdesc Represents a SubOpts.
204
+ * @implements ISubOpts
205
+ * @constructor
206
+ * @param {RPC.ISubOpts=} [p] Properties to set
207
+ */
208
+ function SubOpts(p) {
209
+ if (p)
210
+ for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)
211
+ if (p[ks[i]] != null)
212
+ this[ks[i]] = p[ks[i]];
213
+ }
214
+
215
+ /**
216
+ * SubOpts subscribe.
217
+ * @member {boolean|null|undefined} subscribe
218
+ * @memberof RPC.SubOpts
219
+ * @instance
220
+ */
221
+ SubOpts.prototype.subscribe = null;
222
+
223
+ /**
224
+ * SubOpts topicID.
225
+ * @member {string|null|undefined} topicID
226
+ * @memberof RPC.SubOpts
227
+ * @instance
228
+ */
229
+ SubOpts.prototype.topicID = null;
230
+
231
+ // OneOf field names bound to virtual getters and setters
232
+ let $oneOfFields;
233
+
234
+ /**
235
+ * SubOpts _subscribe.
236
+ * @member {"subscribe"|undefined} _subscribe
237
+ * @memberof RPC.SubOpts
238
+ * @instance
239
+ */
240
+ Object.defineProperty(SubOpts.prototype, "_subscribe", {
241
+ get: $util.oneOfGetter($oneOfFields = ["subscribe"]),
242
+ set: $util.oneOfSetter($oneOfFields)
243
+ });
244
+
245
+ /**
246
+ * SubOpts _topicID.
247
+ * @member {"topicID"|undefined} _topicID
248
+ * @memberof RPC.SubOpts
249
+ * @instance
250
+ */
251
+ Object.defineProperty(SubOpts.prototype, "_topicID", {
252
+ get: $util.oneOfGetter($oneOfFields = ["topicID"]),
253
+ set: $util.oneOfSetter($oneOfFields)
254
+ });
255
+
256
+ /**
257
+ * Encodes the specified SubOpts message. Does not implicitly {@link RPC.SubOpts.verify|verify} messages.
258
+ * @function encode
259
+ * @memberof RPC.SubOpts
260
+ * @static
261
+ * @param {RPC.ISubOpts} m SubOpts message or plain object to encode
262
+ * @param {$protobuf.Writer} [w] Writer to encode to
263
+ * @returns {$protobuf.Writer} Writer
264
+ */
265
+ SubOpts.encode = function encode(m, w) {
266
+ if (!w)
267
+ w = $Writer.create();
268
+ if (m.subscribe != null && Object.hasOwnProperty.call(m, "subscribe"))
269
+ w.uint32(8).bool(m.subscribe);
270
+ if (m.topicID != null && Object.hasOwnProperty.call(m, "topicID"))
271
+ w.uint32(18).string(m.topicID);
272
+ return w;
273
+ };
274
+
275
+ /**
276
+ * Decodes a SubOpts message from the specified reader or buffer.
277
+ * @function decode
278
+ * @memberof RPC.SubOpts
279
+ * @static
280
+ * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from
281
+ * @param {number} [l] Message length if known beforehand
282
+ * @returns {RPC.SubOpts} SubOpts
283
+ * @throws {Error} If the payload is not a reader or valid buffer
284
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
285
+ */
286
+ SubOpts.decode = function decode(r, l) {
287
+ if (!(r instanceof $Reader))
288
+ r = $Reader.create(r);
289
+ var c = l === undefined ? r.len : r.pos + l, m = new $root.RPC.SubOpts();
290
+ while (r.pos < c) {
291
+ var t = r.uint32();
292
+ switch (t >>> 3) {
293
+ case 1:
294
+ m.subscribe = r.bool();
295
+ break;
296
+ case 2:
297
+ m.topicID = r.string();
298
+ break;
299
+ default:
300
+ r.skipType(t & 7);
301
+ break;
302
+ }
303
+ }
304
+ return m;
305
+ };
306
+
307
+ /**
308
+ * Creates a SubOpts message from a plain object. Also converts values to their respective internal types.
309
+ * @function fromObject
310
+ * @memberof RPC.SubOpts
311
+ * @static
312
+ * @param {Object.<string,*>} d Plain object
313
+ * @returns {RPC.SubOpts} SubOpts
314
+ */
315
+ SubOpts.fromObject = function fromObject(d) {
316
+ if (d instanceof $root.RPC.SubOpts)
317
+ return d;
318
+ var m = new $root.RPC.SubOpts();
319
+ if (d.subscribe != null) {
320
+ m.subscribe = Boolean(d.subscribe);
321
+ }
322
+ if (d.topicID != null) {
323
+ m.topicID = String(d.topicID);
324
+ }
325
+ return m;
326
+ };
327
+
328
+ /**
329
+ * Creates a plain object from a SubOpts message. Also converts values to other types if specified.
330
+ * @function toObject
331
+ * @memberof RPC.SubOpts
332
+ * @static
333
+ * @param {RPC.SubOpts} m SubOpts
334
+ * @param {$protobuf.IConversionOptions} [o] Conversion options
335
+ * @returns {Object.<string,*>} Plain object
336
+ */
337
+ SubOpts.toObject = function toObject(m, o) {
338
+ if (!o)
339
+ o = {};
340
+ var d = {};
341
+ if (m.subscribe != null && m.hasOwnProperty("subscribe")) {
342
+ d.subscribe = m.subscribe;
343
+ if (o.oneofs)
344
+ d._subscribe = "subscribe";
345
+ }
346
+ if (m.topicID != null && m.hasOwnProperty("topicID")) {
347
+ d.topicID = m.topicID;
348
+ if (o.oneofs)
349
+ d._topicID = "topicID";
350
+ }
351
+ return d;
352
+ };
353
+
354
+ /**
355
+ * Converts this SubOpts to JSON.
356
+ * @function toJSON
357
+ * @memberof RPC.SubOpts
358
+ * @instance
359
+ * @returns {Object.<string,*>} JSON object
360
+ */
361
+ SubOpts.prototype.toJSON = function toJSON() {
362
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
363
+ };
364
+
365
+ return SubOpts;
366
+ })();
367
+
368
+ RPC.Message = (function() {
369
+
370
+ /**
371
+ * Properties of a Message.
372
+ * @memberof RPC
373
+ * @interface IMessage
374
+ * @property {Uint8Array|null} [from] Message from
375
+ * @property {Uint8Array|null} [data] Message data
376
+ * @property {Uint8Array|null} [seqno] Message seqno
377
+ * @property {Array.<string>|null} [topicIDs] Message topicIDs
378
+ * @property {Uint8Array|null} [signature] Message signature
379
+ * @property {Uint8Array|null} [key] Message key
380
+ */
381
+
382
+ /**
383
+ * Constructs a new Message.
384
+ * @memberof RPC
385
+ * @classdesc Represents a Message.
386
+ * @implements IMessage
387
+ * @constructor
388
+ * @param {RPC.IMessage=} [p] Properties to set
389
+ */
390
+ function Message(p) {
391
+ this.topicIDs = [];
392
+ if (p)
393
+ for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)
394
+ if (p[ks[i]] != null)
395
+ this[ks[i]] = p[ks[i]];
396
+ }
397
+
398
+ /**
399
+ * Message from.
400
+ * @member {Uint8Array|null|undefined} from
401
+ * @memberof RPC.Message
402
+ * @instance
403
+ */
404
+ Message.prototype.from = null;
405
+
406
+ /**
407
+ * Message data.
408
+ * @member {Uint8Array|null|undefined} data
409
+ * @memberof RPC.Message
410
+ * @instance
411
+ */
412
+ Message.prototype.data = null;
413
+
414
+ /**
415
+ * Message seqno.
416
+ * @member {Uint8Array|null|undefined} seqno
417
+ * @memberof RPC.Message
418
+ * @instance
419
+ */
420
+ Message.prototype.seqno = null;
421
+
422
+ /**
423
+ * Message topicIDs.
424
+ * @member {Array.<string>} topicIDs
425
+ * @memberof RPC.Message
426
+ * @instance
427
+ */
428
+ Message.prototype.topicIDs = $util.emptyArray;
429
+
430
+ /**
431
+ * Message signature.
432
+ * @member {Uint8Array|null|undefined} signature
433
+ * @memberof RPC.Message
434
+ * @instance
435
+ */
436
+ Message.prototype.signature = null;
437
+
438
+ /**
439
+ * Message key.
440
+ * @member {Uint8Array|null|undefined} key
441
+ * @memberof RPC.Message
442
+ * @instance
443
+ */
444
+ Message.prototype.key = null;
445
+
446
+ // OneOf field names bound to virtual getters and setters
447
+ let $oneOfFields;
448
+
449
+ /**
450
+ * Message _from.
451
+ * @member {"from"|undefined} _from
452
+ * @memberof RPC.Message
453
+ * @instance
454
+ */
455
+ Object.defineProperty(Message.prototype, "_from", {
456
+ get: $util.oneOfGetter($oneOfFields = ["from"]),
457
+ set: $util.oneOfSetter($oneOfFields)
458
+ });
459
+
460
+ /**
461
+ * Message _data.
462
+ * @member {"data"|undefined} _data
463
+ * @memberof RPC.Message
464
+ * @instance
465
+ */
466
+ Object.defineProperty(Message.prototype, "_data", {
467
+ get: $util.oneOfGetter($oneOfFields = ["data"]),
468
+ set: $util.oneOfSetter($oneOfFields)
469
+ });
470
+
471
+ /**
472
+ * Message _seqno.
473
+ * @member {"seqno"|undefined} _seqno
474
+ * @memberof RPC.Message
475
+ * @instance
476
+ */
477
+ Object.defineProperty(Message.prototype, "_seqno", {
478
+ get: $util.oneOfGetter($oneOfFields = ["seqno"]),
479
+ set: $util.oneOfSetter($oneOfFields)
480
+ });
481
+
482
+ /**
483
+ * Message _signature.
484
+ * @member {"signature"|undefined} _signature
485
+ * @memberof RPC.Message
486
+ * @instance
487
+ */
488
+ Object.defineProperty(Message.prototype, "_signature", {
489
+ get: $util.oneOfGetter($oneOfFields = ["signature"]),
490
+ set: $util.oneOfSetter($oneOfFields)
491
+ });
492
+
493
+ /**
494
+ * Message _key.
495
+ * @member {"key"|undefined} _key
496
+ * @memberof RPC.Message
497
+ * @instance
498
+ */
499
+ Object.defineProperty(Message.prototype, "_key", {
500
+ get: $util.oneOfGetter($oneOfFields = ["key"]),
501
+ set: $util.oneOfSetter($oneOfFields)
502
+ });
503
+
504
+ /**
505
+ * Encodes the specified Message message. Does not implicitly {@link RPC.Message.verify|verify} messages.
506
+ * @function encode
507
+ * @memberof RPC.Message
508
+ * @static
509
+ * @param {RPC.IMessage} m Message message or plain object to encode
510
+ * @param {$protobuf.Writer} [w] Writer to encode to
511
+ * @returns {$protobuf.Writer} Writer
512
+ */
513
+ Message.encode = function encode(m, w) {
514
+ if (!w)
515
+ w = $Writer.create();
516
+ if (m.from != null && Object.hasOwnProperty.call(m, "from"))
517
+ w.uint32(10).bytes(m.from);
518
+ if (m.data != null && Object.hasOwnProperty.call(m, "data"))
519
+ w.uint32(18).bytes(m.data);
520
+ if (m.seqno != null && Object.hasOwnProperty.call(m, "seqno"))
521
+ w.uint32(26).bytes(m.seqno);
522
+ if (m.topicIDs != null && m.topicIDs.length) {
523
+ for (var i = 0; i < m.topicIDs.length; ++i)
524
+ w.uint32(34).string(m.topicIDs[i]);
525
+ }
526
+ if (m.signature != null && Object.hasOwnProperty.call(m, "signature"))
527
+ w.uint32(42).bytes(m.signature);
528
+ if (m.key != null && Object.hasOwnProperty.call(m, "key"))
529
+ w.uint32(50).bytes(m.key);
530
+ return w;
531
+ };
532
+
533
+ /**
534
+ * Decodes a Message message from the specified reader or buffer.
535
+ * @function decode
536
+ * @memberof RPC.Message
537
+ * @static
538
+ * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from
539
+ * @param {number} [l] Message length if known beforehand
540
+ * @returns {RPC.Message} Message
541
+ * @throws {Error} If the payload is not a reader or valid buffer
542
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
543
+ */
544
+ Message.decode = function decode(r, l) {
545
+ if (!(r instanceof $Reader))
546
+ r = $Reader.create(r);
547
+ var c = l === undefined ? r.len : r.pos + l, m = new $root.RPC.Message();
548
+ while (r.pos < c) {
549
+ var t = r.uint32();
550
+ switch (t >>> 3) {
551
+ case 1:
552
+ m.from = r.bytes();
553
+ break;
554
+ case 2:
555
+ m.data = r.bytes();
556
+ break;
557
+ case 3:
558
+ m.seqno = r.bytes();
559
+ break;
560
+ case 4:
561
+ if (!(m.topicIDs && m.topicIDs.length))
562
+ m.topicIDs = [];
563
+ m.topicIDs.push(r.string());
564
+ break;
565
+ case 5:
566
+ m.signature = r.bytes();
567
+ break;
568
+ case 6:
569
+ m.key = r.bytes();
570
+ break;
571
+ default:
572
+ r.skipType(t & 7);
573
+ break;
574
+ }
575
+ }
576
+ return m;
577
+ };
578
+
579
+ /**
580
+ * Creates a Message message from a plain object. Also converts values to their respective internal types.
581
+ * @function fromObject
582
+ * @memberof RPC.Message
583
+ * @static
584
+ * @param {Object.<string,*>} d Plain object
585
+ * @returns {RPC.Message} Message
586
+ */
587
+ Message.fromObject = function fromObject(d) {
588
+ if (d instanceof $root.RPC.Message)
589
+ return d;
590
+ var m = new $root.RPC.Message();
591
+ if (d.from != null) {
592
+ if (typeof d.from === "string")
593
+ $util.base64.decode(d.from, m.from = $util.newBuffer($util.base64.length(d.from)), 0);
594
+ else if (d.from.length)
595
+ m.from = d.from;
596
+ }
597
+ if (d.data != null) {
598
+ if (typeof d.data === "string")
599
+ $util.base64.decode(d.data, m.data = $util.newBuffer($util.base64.length(d.data)), 0);
600
+ else if (d.data.length)
601
+ m.data = d.data;
602
+ }
603
+ if (d.seqno != null) {
604
+ if (typeof d.seqno === "string")
605
+ $util.base64.decode(d.seqno, m.seqno = $util.newBuffer($util.base64.length(d.seqno)), 0);
606
+ else if (d.seqno.length)
607
+ m.seqno = d.seqno;
608
+ }
609
+ if (d.topicIDs) {
610
+ if (!Array.isArray(d.topicIDs))
611
+ throw TypeError(".RPC.Message.topicIDs: array expected");
612
+ m.topicIDs = [];
613
+ for (var i = 0; i < d.topicIDs.length; ++i) {
614
+ m.topicIDs[i] = String(d.topicIDs[i]);
615
+ }
616
+ }
617
+ if (d.signature != null) {
618
+ if (typeof d.signature === "string")
619
+ $util.base64.decode(d.signature, m.signature = $util.newBuffer($util.base64.length(d.signature)), 0);
620
+ else if (d.signature.length)
621
+ m.signature = d.signature;
622
+ }
623
+ if (d.key != null) {
624
+ if (typeof d.key === "string")
625
+ $util.base64.decode(d.key, m.key = $util.newBuffer($util.base64.length(d.key)), 0);
626
+ else if (d.key.length)
627
+ m.key = d.key;
628
+ }
629
+ return m;
630
+ };
631
+
632
+ /**
633
+ * Creates a plain object from a Message message. Also converts values to other types if specified.
634
+ * @function toObject
635
+ * @memberof RPC.Message
636
+ * @static
637
+ * @param {RPC.Message} m Message
638
+ * @param {$protobuf.IConversionOptions} [o] Conversion options
639
+ * @returns {Object.<string,*>} Plain object
640
+ */
641
+ Message.toObject = function toObject(m, o) {
642
+ if (!o)
643
+ o = {};
644
+ var d = {};
645
+ if (o.arrays || o.defaults) {
646
+ d.topicIDs = [];
647
+ }
648
+ if (m.from != null && m.hasOwnProperty("from")) {
649
+ d.from = o.bytes === String ? $util.base64.encode(m.from, 0, m.from.length) : o.bytes === Array ? Array.prototype.slice.call(m.from) : m.from;
650
+ if (o.oneofs)
651
+ d._from = "from";
652
+ }
653
+ if (m.data != null && m.hasOwnProperty("data")) {
654
+ d.data = o.bytes === String ? $util.base64.encode(m.data, 0, m.data.length) : o.bytes === Array ? Array.prototype.slice.call(m.data) : m.data;
655
+ if (o.oneofs)
656
+ d._data = "data";
657
+ }
658
+ if (m.seqno != null && m.hasOwnProperty("seqno")) {
659
+ d.seqno = o.bytes === String ? $util.base64.encode(m.seqno, 0, m.seqno.length) : o.bytes === Array ? Array.prototype.slice.call(m.seqno) : m.seqno;
660
+ if (o.oneofs)
661
+ d._seqno = "seqno";
662
+ }
663
+ if (m.topicIDs && m.topicIDs.length) {
664
+ d.topicIDs = [];
665
+ for (var j = 0; j < m.topicIDs.length; ++j) {
666
+ d.topicIDs[j] = m.topicIDs[j];
667
+ }
668
+ }
669
+ if (m.signature != null && m.hasOwnProperty("signature")) {
670
+ d.signature = o.bytes === String ? $util.base64.encode(m.signature, 0, m.signature.length) : o.bytes === Array ? Array.prototype.slice.call(m.signature) : m.signature;
671
+ if (o.oneofs)
672
+ d._signature = "signature";
673
+ }
674
+ if (m.key != null && m.hasOwnProperty("key")) {
675
+ d.key = o.bytes === String ? $util.base64.encode(m.key, 0, m.key.length) : o.bytes === Array ? Array.prototype.slice.call(m.key) : m.key;
676
+ if (o.oneofs)
677
+ d._key = "key";
678
+ }
679
+ return d;
680
+ };
681
+
682
+ /**
683
+ * Converts this Message to JSON.
684
+ * @function toJSON
685
+ * @memberof RPC.Message
686
+ * @instance
687
+ * @returns {Object.<string,*>} JSON object
688
+ */
689
+ Message.prototype.toJSON = function toJSON() {
690
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
691
+ };
692
+
693
+ return Message;
694
+ })();
695
+
696
+ return RPC;
697
+ })();
698
+
699
+ export { $root as default };