dcodeindra-baileyspro 2.3.9

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 (286) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2534 -0
  3. package/WAProto/Adv/Adv.d.ts +518 -0
  4. package/WAProto/Adv/Adv.js +1734 -0
  5. package/WAProto/Adv/Adv.proto +36 -0
  6. package/WAProto/BotMetadata/BotMetadata.d.ts +5745 -0
  7. package/WAProto/BotMetadata/BotMetadata.js +16291 -0
  8. package/WAProto/BotMetadata/BotMetadata.proto +463 -0
  9. package/WAProto/Cert/Cert.d.ts +497 -0
  10. package/WAProto/Cert/Cert.js +1503 -0
  11. package/WAProto/Cert/Cert.proto +28 -0
  12. package/WAProto/ChatLockSettings/ChatLockSettings.d.ts +391 -0
  13. package/WAProto/ChatLockSettings/ChatLockSettings.js +1155 -0
  14. package/WAProto/ChatLockSettings/ChatLockSettings.proto +7 -0
  15. package/WAProto/CompanionReg/CompanionReg.d.ts +1055 -0
  16. package/WAProto/CompanionReg/CompanionReg.js +3532 -0
  17. package/WAProto/CompanionReg/CompanionReg.proto +89 -0
  18. package/WAProto/DeviceCapabilities/DeviceCapabilities.d.ts +187 -0
  19. package/WAProto/DeviceCapabilities/DeviceCapabilities.js +520 -0
  20. package/WAProto/DeviceCapabilities/DeviceCapabilities.proto +14 -0
  21. package/WAProto/E2E/E2E.d.ts +28417 -0
  22. package/WAProto/E2E/E2E.js +98438 -0
  23. package/WAProto/E2E/E2E.proto +2289 -0
  24. package/WAProto/Ephemeral/Ephemeral.d.ts +95 -0
  25. package/WAProto/Ephemeral/Ephemeral.js +269 -0
  26. package/WAProto/Ephemeral/Ephemeral.proto +6 -0
  27. package/WAProto/HistorySync/HistorySync.d.ts +40728 -0
  28. package/WAProto/HistorySync/HistorySync.js +142980 -0
  29. package/WAProto/HistorySync/HistorySync.proto +207 -0
  30. package/WAProto/LidMigrationSyncPayload/LidMigrationSyncPayload.d.ts +189 -0
  31. package/WAProto/LidMigrationSyncPayload/LidMigrationSyncPayload.js +585 -0
  32. package/WAProto/LidMigrationSyncPayload/LidMigrationSyncPayload.proto +11 -0
  33. package/WAProto/MdStorageChatRowOpaqueData/MdStorageChatRowOpaqueData.d.ts +461 -0
  34. package/WAProto/MdStorageChatRowOpaqueData/MdStorageChatRowOpaqueData.js +1559 -0
  35. package/WAProto/MdStorageChatRowOpaqueData/MdStorageChatRowOpaqueData.proto +37 -0
  36. package/WAProto/MdStorageMsgRowOpaqueData/MdStorageMsgRowOpaqueData.d.ts +29294 -0
  37. package/WAProto/MdStorageMsgRowOpaqueData/MdStorageMsgRowOpaqueData.js +101732 -0
  38. package/WAProto/MdStorageMsgRowOpaqueData/MdStorageMsgRowOpaqueData.proto +76 -0
  39. package/WAProto/MmsRetry/MmsRetry.d.ts +200 -0
  40. package/WAProto/MmsRetry/MmsRetry.js +586 -0
  41. package/WAProto/MmsRetry/MmsRetry.proto +17 -0
  42. package/WAProto/Protocol/Protocol.d.ts +218 -0
  43. package/WAProto/Protocol/Protocol.js +701 -0
  44. package/WAProto/Protocol/Protocol.proto +20 -0
  45. package/WAProto/Reporting/Reporting.d.ts +301 -0
  46. package/WAProto/Reporting/Reporting.js +989 -0
  47. package/WAProto/Reporting/Reporting.proto +19 -0
  48. package/WAProto/ServerSync/ServerSync.d.ts +1050 -0
  49. package/WAProto/ServerSync/ServerSync.js +3176 -0
  50. package/WAProto/ServerSync/ServerSync.proto +59 -0
  51. package/WAProto/SignalLocalStorageProtocol/SignalLocalStorageProtocol.d.ts +1507 -0
  52. package/WAProto/SignalLocalStorageProtocol/SignalLocalStorageProtocol.js +4756 -0
  53. package/WAProto/SignalLocalStorageProtocol/SignalLocalStorageProtocol.proto +88 -0
  54. package/WAProto/SignalWhisperTextProtocol/SignalWhisperTextProtocol.d.ts +617 -0
  55. package/WAProto/SignalWhisperTextProtocol/SignalWhisperTextProtocol.js +1940 -0
  56. package/WAProto/SignalWhisperTextProtocol/SignalWhisperTextProtocol.proto +38 -0
  57. package/WAProto/StatusAttributions/StatusAttributions.d.ts +636 -0
  58. package/WAProto/StatusAttributions/StatusAttributions.js +2037 -0
  59. package/WAProto/StatusAttributions/StatusAttributions.proto +61 -0
  60. package/WAProto/SyncAction/SyncAction.d.ts +7227 -0
  61. package/WAProto/SyncAction/SyncAction.js +22271 -0
  62. package/WAProto/SyncAction/SyncAction.proto +423 -0
  63. package/WAProto/UserPassword/UserPassword.d.ts +298 -0
  64. package/WAProto/UserPassword/UserPassword.js +898 -0
  65. package/WAProto/UserPassword/UserPassword.proto +27 -0
  66. package/WAProto/VnameCert/VnameCert.d.ts +658 -0
  67. package/WAProto/VnameCert/VnameCert.js +2225 -0
  68. package/WAProto/VnameCert/VnameCert.proto +60 -0
  69. package/WAProto/Wa6/Wa6.d.ts +1613 -0
  70. package/WAProto/Wa6/Wa6.js +6299 -0
  71. package/WAProto/Wa6/Wa6.proto +229 -0
  72. package/WAProto/Web/Web.d.ts +31718 -0
  73. package/WAProto/Web/Web.js +113402 -0
  74. package/WAProto/Web/Web.proto +545 -0
  75. package/WAProto/index.d.ts +49 -0
  76. package/WAProto/index.js +28 -0
  77. package/WASignalGroup/GroupProtocol.js +1771 -0
  78. package/WASignalGroup/ciphertext_message.js +10 -0
  79. package/WASignalGroup/group_cipher.js +103 -0
  80. package/WASignalGroup/group_session_builder.js +39 -0
  81. package/WASignalGroup/index.js +5 -0
  82. package/WASignalGroup/keyhelper.js +17 -0
  83. package/WASignalGroup/protobufs.js +2 -0
  84. package/WASignalGroup/queue_job.js +64 -0
  85. package/WASignalGroup/sender_chain_key.js +38 -0
  86. package/WASignalGroup/sender_key_distribution_message.js +68 -0
  87. package/WASignalGroup/sender_key_message.js +79 -0
  88. package/WASignalGroup/sender_key_name.js +59 -0
  89. package/WASignalGroup/sender_key_record.js +47 -0
  90. package/WASignalGroup/sender_key_state.js +110 -0
  91. package/WASignalGroup/sender_message_key.js +30 -0
  92. package/check-node-version.js +10 -0
  93. package/lib/Defaults/baileys-version.json +3 -0
  94. package/lib/Defaults/index.d.ts +51 -0
  95. package/lib/Defaults/index.js +108 -0
  96. package/lib/Defaults/phonenumber-mcc.json +223 -0
  97. package/lib/Signal/Group/ciphertext-message.d.ts +9 -0
  98. package/lib/Signal/Group/ciphertext-message.js +19 -0
  99. package/lib/Signal/Group/group-session-builder.d.ts +17 -0
  100. package/lib/Signal/Group/group-session-builder.js +72 -0
  101. package/lib/Signal/Group/group_cipher.d.ts +19 -0
  102. package/lib/Signal/Group/group_cipher.js +99 -0
  103. package/lib/Signal/Group/index.d.ts +11 -0
  104. package/lib/Signal/Group/index.js +61 -0
  105. package/lib/Signal/Group/keyhelper.d.ts +16 -0
  106. package/lib/Signal/Group/keyhelper.js +66 -0
  107. package/lib/Signal/Group/queue-job.d.ts +1 -0
  108. package/lib/Signal/Group/queue-job.js +64 -0
  109. package/lib/Signal/Group/sender-chain-key.d.ts +14 -0
  110. package/lib/Signal/Group/sender-chain-key.js +39 -0
  111. package/lib/Signal/Group/sender-key-distribution-message.d.ts +17 -0
  112. package/lib/Signal/Group/sender-key-distribution-message.js +71 -0
  113. package/lib/Signal/Group/sender-key-message.d.ts +19 -0
  114. package/lib/Signal/Group/sender-key-message.js +73 -0
  115. package/lib/Signal/Group/sender-key-name.d.ts +19 -0
  116. package/lib/Signal/Group/sender-key-name.js +59 -0
  117. package/lib/Signal/Group/sender-key-record.d.ts +32 -0
  118. package/lib/Signal/Group/sender-key-record.js +53 -0
  119. package/lib/Signal/Group/sender-key-record.ts +77 -0
  120. package/lib/Signal/Group/sender-key-state.d.ts +44 -0
  121. package/lib/Signal/Group/sender-key-state.js +104 -0
  122. package/lib/Signal/Group/sender-message-key.d.ts +11 -0
  123. package/lib/Signal/Group/sender-message-key.js +33 -0
  124. package/lib/Signal/libsignal.d.ts +3 -0
  125. package/lib/Signal/libsignal.js +153 -0
  126. package/lib/Socket/Client/index.d.ts +2 -0
  127. package/lib/Socket/Client/index.js +18 -0
  128. package/lib/Socket/Client/types.d.ts +15 -0
  129. package/lib/Socket/Client/types.js +14 -0
  130. package/lib/Socket/Client/websocket.d.ts +12 -0
  131. package/lib/Socket/Client/websocket.js +57 -0
  132. package/lib/Socket/business.d.ts +181 -0
  133. package/lib/Socket/business.js +259 -0
  134. package/lib/Socket/chats.d.ts +95 -0
  135. package/lib/Socket/chats.js +906 -0
  136. package/lib/Socket/community.d.ts +131 -0
  137. package/lib/Socket/community.js +369 -0
  138. package/lib/Socket/groups.d.ts +122 -0
  139. package/lib/Socket/groups.js +360 -0
  140. package/lib/Socket/index.d.ts +183 -0
  141. package/lib/Socket/index.js +10 -0
  142. package/lib/Socket/messages-recv.d.ts +170 -0
  143. package/lib/Socket/messages-recv.js +1074 -0
  144. package/lib/Socket/messages-send.d.ts +161 -0
  145. package/lib/Socket/messages-send.js +982 -0
  146. package/lib/Socket/newsletter.d.ts +140 -0
  147. package/lib/Socket/newsletter.js +242 -0
  148. package/lib/Socket/socket.d.ts +43 -0
  149. package/lib/Socket/socket.js +749 -0
  150. package/lib/Socket/usync.d.ts +36 -0
  151. package/lib/Socket/usync.js +71 -0
  152. package/lib/Store/index.d.ts +4 -0
  153. package/lib/Store/index.js +20 -0
  154. package/lib/Store/make-cache-manager-store.d.ts +13 -0
  155. package/lib/Store/make-cache-manager-store.js +77 -0
  156. package/lib/Store/make-in-memory-store.d.ts +117 -0
  157. package/lib/Store/make-in-memory-store.js +420 -0
  158. package/lib/Store/make-ordered-dictionary.d.ts +12 -0
  159. package/lib/Store/make-ordered-dictionary.js +83 -0
  160. package/lib/Store/object-repository.d.ts +10 -0
  161. package/lib/Store/object-repository.js +28 -0
  162. package/lib/Types/Auth.d.ts +103 -0
  163. package/lib/Types/Auth.js +2 -0
  164. package/lib/Types/Call.d.ts +13 -0
  165. package/lib/Types/Call.js +2 -0
  166. package/lib/Types/Chat.d.ts +115 -0
  167. package/lib/Types/Chat.js +6 -0
  168. package/lib/Types/Contact.d.ts +35 -0
  169. package/lib/Types/Contact.js +2 -0
  170. package/lib/Types/Events.d.ts +208 -0
  171. package/lib/Types/Events.js +2 -0
  172. package/lib/Types/GroupMetadata.d.ts +81 -0
  173. package/lib/Types/GroupMetadata.js +2 -0
  174. package/lib/Types/Label.d.ts +46 -0
  175. package/lib/Types/Label.js +28 -0
  176. package/lib/Types/LabelAssociation.d.ts +29 -0
  177. package/lib/Types/LabelAssociation.js +10 -0
  178. package/lib/Types/Message.d.ts +480 -0
  179. package/lib/Types/Message.js +9 -0
  180. package/lib/Types/MexUpdates.d.ts +9 -0
  181. package/lib/Types/MexUpdates.js +18 -0
  182. package/lib/Types/Newsletter.d.ts +92 -0
  183. package/lib/Types/Newsletter.js +33 -0
  184. package/lib/Types/Product.d.ts +78 -0
  185. package/lib/Types/Product.js +2 -0
  186. package/lib/Types/Signal.d.ts +57 -0
  187. package/lib/Types/Signal.js +2 -0
  188. package/lib/Types/Socket.d.ts +116 -0
  189. package/lib/Types/Socket.js +2 -0
  190. package/lib/Types/State.d.ts +27 -0
  191. package/lib/Types/State.js +2 -0
  192. package/lib/Types/USync.d.ts +25 -0
  193. package/lib/Types/USync.js +2 -0
  194. package/lib/Types/index.d.ts +70 -0
  195. package/lib/Types/index.js +42 -0
  196. package/lib/Utils/auth-utils.d.ts +18 -0
  197. package/lib/Utils/auth-utils.js +198 -0
  198. package/lib/Utils/baileys-event-stream.d.ts +16 -0
  199. package/lib/Utils/baileys-event-stream.js +64 -0
  200. package/lib/Utils/business.d.ts +22 -0
  201. package/lib/Utils/business.js +243 -0
  202. package/lib/Utils/chat-utils.d.ts +72 -0
  203. package/lib/Utils/chat-utils.js +762 -0
  204. package/lib/Utils/crypto.d.ts +40 -0
  205. package/lib/Utils/crypto.js +150 -0
  206. package/lib/Utils/decode-wa-message.d.ts +252 -0
  207. package/lib/Utils/decode-wa-message.js +232 -0
  208. package/lib/Utils/event-buffer.d.ts +35 -0
  209. package/lib/Utils/event-buffer.js +539 -0
  210. package/lib/Utils/generics.d.ts +96 -0
  211. package/lib/Utils/generics.js +553 -0
  212. package/lib/Utils/history.d.ts +29 -0
  213. package/lib/Utils/history.js +109 -0
  214. package/lib/Utils/index.d.ts +19 -0
  215. package/lib/Utils/index.js +35 -0
  216. package/lib/Utils/link-preview.d.ts +21 -0
  217. package/lib/Utils/link-preview.js +112 -0
  218. package/lib/Utils/logger.d.ts +11 -0
  219. package/lib/Utils/logger.js +7 -0
  220. package/lib/Utils/lt-hash.d.ts +12 -0
  221. package/lib/Utils/lt-hash.js +53 -0
  222. package/lib/Utils/make-mutex.d.ts +7 -0
  223. package/lib/Utils/make-mutex.js +45 -0
  224. package/lib/Utils/messages-media.d.ts +104 -0
  225. package/lib/Utils/messages-media.js +751 -0
  226. package/lib/Utils/messages.d.ts +80 -0
  227. package/lib/Utils/messages.js +1741 -0
  228. package/lib/Utils/noise-handler.d.ts +19 -0
  229. package/lib/Utils/noise-handler.js +150 -0
  230. package/lib/Utils/process-message.d.ts +41 -0
  231. package/lib/Utils/process-message.js +391 -0
  232. package/lib/Utils/signal.d.ts +33 -0
  233. package/lib/Utils/signal.js +154 -0
  234. package/lib/Utils/use-mongo-file-auth-state.d.ts +5 -0
  235. package/lib/Utils/use-mongo-file-auth-state.js +75 -0
  236. package/lib/Utils/use-multi-file-auth-state.d.ts +12 -0
  237. package/lib/Utils/use-multi-file-auth-state.js +123 -0
  238. package/lib/Utils/use-single-file-auth-state.d.ts +12 -0
  239. package/lib/Utils/use-single-file-auth-state.js +75 -0
  240. package/lib/Utils/validate-connection.d.ts +10 -0
  241. package/lib/Utils/validate-connection.js +174 -0
  242. package/lib/WABinary/constants.d.ts +27 -0
  243. package/lib/WABinary/constants.js +45 -0
  244. package/lib/WABinary/decode.d.ts +6 -0
  245. package/lib/WABinary/decode.js +255 -0
  246. package/lib/WABinary/encode.d.ts +2 -0
  247. package/lib/WABinary/encode.js +243 -0
  248. package/lib/WABinary/generic-utils.d.ts +16 -0
  249. package/lib/WABinary/generic-utils.js +125 -0
  250. package/lib/WABinary/index.d.ts +5 -0
  251. package/lib/WABinary/index.js +21 -0
  252. package/lib/WABinary/jid-utils.d.ts +34 -0
  253. package/lib/WABinary/jid-utils.js +73 -0
  254. package/lib/WABinary/types.d.ts +18 -0
  255. package/lib/WABinary/types.js +2 -0
  256. package/lib/WAM/BinaryInfo.d.ts +16 -0
  257. package/lib/WAM/BinaryInfo.js +14 -0
  258. package/lib/WAM/constants.d.ts +39 -0
  259. package/lib/WAM/constants.js +15362 -0
  260. package/lib/WAM/encode.d.ts +2 -0
  261. package/lib/WAM/encode.js +156 -0
  262. package/lib/WAM/index.d.ts +3 -0
  263. package/lib/WAM/index.js +19 -0
  264. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.d.ts +25 -0
  265. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +60 -0
  266. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +9 -0
  267. package/lib/WAUSync/Protocols/USyncContactProtocol.js +32 -0
  268. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +22 -0
  269. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +58 -0
  270. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +12 -0
  271. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +31 -0
  272. package/lib/WAUSync/Protocols/USyncLIDProtocol.d.ts +8 -0
  273. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +26 -0
  274. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +12 -0
  275. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +42 -0
  276. package/lib/WAUSync/Protocols/index.d.ts +6 -0
  277. package/lib/WAUSync/Protocols/index.js +22 -0
  278. package/lib/WAUSync/USyncQuery.d.ts +28 -0
  279. package/lib/WAUSync/USyncQuery.js +88 -0
  280. package/lib/WAUSync/USyncUser.d.ts +12 -0
  281. package/lib/WAUSync/USyncUser.js +27 -0
  282. package/lib/WAUSync/index.d.ts +3 -0
  283. package/lib/WAUSync/index.js +19 -0
  284. package/lib/index.d.ts +13 -0
  285. package/lib/index.js +45 -0
  286. package/package.json +63 -0
@@ -0,0 +1,1771 @@
1
+ /*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/
2
+ "use strict";
3
+ var $protobuf = require("protobufjs/minimal");
4
+ // Common aliases
5
+ var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;
6
+ // Exported root namespace
7
+ var $root = $protobuf.roots["default"] || ($protobuf.roots["default"] = {});
8
+ $root.groupproto = (function() {
9
+ /**
10
+ * Namespace groupproto.
11
+ * @exports groupproto
12
+ * @namespace
13
+ */
14
+ var groupproto = {};
15
+ groupproto.SenderKeyMessage = (function() {
16
+ /**
17
+ * Properties of a SenderKeyMessage.
18
+ * @memberof groupproto
19
+ * @interface ISenderKeyMessage
20
+ * @property {number|null} [id] SenderKeyMessage id
21
+ * @property {number|null} [iteration] SenderKeyMessage iteration
22
+ * @property {Uint8Array|null} [ciphertext] SenderKeyMessage ciphertext
23
+ */
24
+ /**
25
+ * Constructs a new SenderKeyMessage.
26
+ * @memberof groupproto
27
+ * @classdesc Represents a SenderKeyMessage.
28
+ * @implements ISenderKeyMessage
29
+ * @constructor
30
+ * @param {groupproto.ISenderKeyMessage=} [properties] Properties to set
31
+ */
32
+ function SenderKeyMessage(properties) {
33
+ if (properties)
34
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
35
+ if (properties[keys[i]] != null)
36
+ this[keys[i]] = properties[keys[i]];
37
+ }
38
+ /**
39
+ * SenderKeyMessage id.
40
+ * @member {number|null|undefined} id
41
+ * @memberof groupproto.SenderKeyMessage
42
+ * @instance
43
+ */
44
+ SenderKeyMessage.prototype.id = null;
45
+ /**
46
+ * SenderKeyMessage iteration.
47
+ * @member {number|number|null|undefined} iteration
48
+ * @memberof groupproto.SenderKeyMessage
49
+ * @instance
50
+ */
51
+ SenderKeyMessage.prototype.iteration = null;
52
+ /**
53
+ * SenderKeyMessage ciphertext.
54
+ * @member {Uint8Array|null|undefined} ciphertext
55
+ * @memberof groupproto.SenderKeyMessage
56
+ * @instance
57
+ */
58
+ SenderKeyMessage.prototype.ciphertext = null;
59
+ // OneOf field names bound to virtual getters and setters
60
+ var $oneOfFields;
61
+ /**
62
+ * SenderKeyMessage _id.
63
+ * @member {"id"|undefined} _id
64
+ * @memberof SenderKeyMessage
65
+ * @instance
66
+ */
67
+ Object.defineProperty(SenderKeyMessage.prototype, "_id", {
68
+ get: $util.oneOfGetter($oneOfFields = ["id"]),
69
+ set: $util.oneOfSetter($oneOfFields)
70
+ });
71
+ /**
72
+ * SenderKeyMessage _iteration.
73
+ * @member {"iteration"|undefined} _iteration
74
+ * @memberof SenderKeyMessage
75
+ * @instance
76
+ */
77
+ Object.defineProperty(SenderKeyMessage.prototype, "_iteration", {
78
+ get: $util.oneOfGetter($oneOfFields = ["iteration"]),
79
+ set: $util.oneOfSetter($oneOfFields)
80
+ });
81
+ /**
82
+ * SenderKeyMessage _ciphertext.
83
+ * @member {"ciphertext"|undefined} _ciphertext
84
+ * @memberof SenderKeyMessage
85
+ * @instance
86
+ */
87
+ Object.defineProperty(SenderKeyMessage.prototype, "_ciphertext", {
88
+ get: $util.oneOfGetter($oneOfFields = ["ciphertext"]),
89
+ set: $util.oneOfSetter($oneOfFields)
90
+ });
91
+ /**
92
+ * Creates a new SenderKeyMessage instance using the specified properties.
93
+ * @function create
94
+ * @memberof groupproto.SenderKeyMessage
95
+ * @static
96
+ * @param {groupproto.ISenderKeyMessage=} [properties] Properties to set
97
+ * @returns {groupproto.SenderKeyMessage} SenderKeyMessage instance
98
+ */
99
+ SenderKeyMessage.create = function create(properties) {
100
+ return new SenderKeyMessage(properties);
101
+ };
102
+ /**
103
+ * Encodes the specified SenderKeyMessage message. Does not implicitly {@link groupproto.SenderKeyMessage.verify|verify} messages.
104
+ * @function encode
105
+ * @memberof groupproto.SenderKeyMessage
106
+ * @static
107
+ * @param {groupproto.ISenderKeyMessage} message SenderKeyMessage message or plain object to encode
108
+ * @param {$protobuf.Writer} [writer] Writer to encode to
109
+ * @returns {$protobuf.Writer} Writer
110
+ */
111
+ SenderKeyMessage.encode = function encode(message, writer) {
112
+ if (!writer)
113
+ writer = $Writer.create();
114
+ if (message.id != null && Object.hasOwnProperty.call(message, "id"))
115
+ writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.id);
116
+ if (message.iteration != null && Object.hasOwnProperty.call(message, "iteration"))
117
+ writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.iteration);
118
+ if (message.ciphertext != null && Object.hasOwnProperty.call(message, "ciphertext"))
119
+ writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.ciphertext);
120
+ return writer;
121
+ };
122
+ /**
123
+ * Encodes the specified SenderKeyMessage message, length delimited. Does not implicitly {@link groupproto.SenderKeyMessage.verify|verify} messages.
124
+ * @function encodeDelimited
125
+ * @memberof groupproto.SenderKeyMessage
126
+ * @static
127
+ * @param {groupproto.ISenderKeyMessage} message SenderKeyMessage message or plain object to encode
128
+ * @param {$protobuf.Writer} [writer] Writer to encode to
129
+ * @returns {$protobuf.Writer} Writer
130
+ */
131
+ SenderKeyMessage.encodeDelimited = function encodeDelimited(message, writer) {
132
+ return this.encode(message, writer).ldelim();
133
+ };
134
+ /**
135
+ * Decodes a SenderKeyMessage message from the specified reader or buffer.
136
+ * @function decode
137
+ * @memberof groupproto.SenderKeyMessage
138
+ * @static
139
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
140
+ * @param {number} [length] Message length if known beforehand
141
+ * @returns {groupproto.SenderKeyMessage} SenderKeyMessage
142
+ * @throws {Error} If the payload is not a reader or valid buffer
143
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
144
+ */
145
+ SenderKeyMessage.decode = function decode(reader, length) {
146
+ if (!(reader instanceof $Reader))
147
+ reader = $Reader.create(reader);
148
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.groupproto.SenderKeyMessage();
149
+ while (reader.pos < end) {
150
+ var tag = reader.uint32();
151
+ switch (tag >>> 3) {
152
+ case 1:
153
+ message.id = reader.uint32();
154
+ break;
155
+ case 2:
156
+ message.iteration = reader.uint32();
157
+ break;
158
+ case 3:
159
+ message.ciphertext = reader.bytes();
160
+ break;
161
+ default:
162
+ reader.skipType(tag & 7);
163
+ break;
164
+ }
165
+ }
166
+ return message;
167
+ };
168
+ /**
169
+ * Decodes a SenderKeyMessage message from the specified reader or buffer, length delimited.
170
+ * @function decodeDelimited
171
+ * @memberof groupproto.SenderKeyMessage
172
+ * @static
173
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
174
+ * @returns {groupproto.SenderKeyMessage} SenderKeyMessage
175
+ * @throws {Error} If the payload is not a reader or valid buffer
176
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
177
+ */
178
+ SenderKeyMessage.decodeDelimited = function decodeDelimited(reader) {
179
+ if (!(reader instanceof $Reader))
180
+ reader = new $Reader(reader);
181
+ return this.decode(reader, reader.uint32());
182
+ };
183
+ /**
184
+ * Verifies a SenderKeyMessage message.
185
+ * @function verify
186
+ * @memberof groupproto.SenderKeyMessage
187
+ * @static
188
+ * @param {Object.<string,*>} message Plain object to verify
189
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
190
+ */
191
+ SenderKeyMessage.verify = function verify(message) {
192
+ if (typeof message !== "object" || message === null)
193
+ return "object expected";
194
+ var properties = {};
195
+ if (message.id != null && message.hasOwnProperty("id")) {
196
+ properties._id = 1;
197
+ if (!$util.isInteger(message.id))
198
+ return "id: integer expected";
199
+ }
200
+ if (message.iteration != null && message.hasOwnProperty("iteration")) {
201
+ properties._iteration = 1;
202
+ if (!$util.isInteger(message.iteration))
203
+ return "iteration: integer expected";
204
+ }
205
+ if (message.ciphertext != null && message.hasOwnProperty("ciphertext")) {
206
+ properties._ciphertext = 1;
207
+ if (!(message.ciphertext && typeof message.ciphertext.length === "number" || $util.isString(message.ciphertext)))
208
+ return "ciphertext: buffer expected";
209
+ }
210
+ return null;
211
+ };
212
+ /**
213
+ * Creates a SenderKeyMessage message from a plain object. Also converts values to their respective internal types.
214
+ * @function fromObject
215
+ * @memberof groupproto.SenderKeyMessage
216
+ * @static
217
+ * @param {Object.<string,*>} object Plain object
218
+ * @returns {groupproto.SenderKeyMessage} SenderKeyMessage
219
+ */
220
+ SenderKeyMessage.fromObject = function fromObject(object) {
221
+ if (object instanceof $root.groupproto.SenderKeyMessage)
222
+ return object;
223
+ var message = new $root.groupproto.SenderKeyMessage();
224
+ if (object.id != null)
225
+ message.id = object.id >>> 0;
226
+ if (object.iteration != null)
227
+ message.iteration = object.iteration >>> 0;
228
+ if (object.ciphertext != null)
229
+ if (typeof object.ciphertext === "string")
230
+ $util.base64.decode(object.ciphertext, message.ciphertext = $util.newBuffer($util.base64.length(object.ciphertext)), 0);
231
+ else if (object.ciphertext.length)
232
+ message.ciphertext = object.ciphertext;
233
+ return message;
234
+ };
235
+ /**
236
+ * Creates a plain object from a SenderKeyMessage message. Also converts values to other types if specified.
237
+ * @function toObject
238
+ * @memberof groupproto.SenderKeyMessage
239
+ * @static
240
+ * @param {groupproto.SenderKeyMessage} message SenderKeyMessage
241
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
242
+ * @returns {Object.<string,*>} Plain object
243
+ */
244
+ SenderKeyMessage.toObject = function toObject(message, options) {
245
+ if (!options)
246
+ options = {};
247
+ var object = {};
248
+ if (message.id != null && message.hasOwnProperty("id")) {
249
+ object.id = message.id;
250
+ if (options.oneofs)
251
+ object._id = "id";
252
+ }
253
+ if (message.iteration != null && message.hasOwnProperty("iteration")) {
254
+ object.iteration = message.iteration;
255
+ if (options.oneofs)
256
+ object._iteration = "iteration";
257
+ }
258
+ if (message.ciphertext != null && message.hasOwnProperty("ciphertext")) {
259
+ object.ciphertext = options.bytes === String ? $util.base64.encode(message.ciphertext, 0, message.ciphertext.length) : options.bytes === Array ? Array.prototype.slice.call(message.ciphertext) : message.ciphertext;
260
+ if (options.oneofs)
261
+ object._ciphertext = "ciphertext";
262
+ }
263
+ return object;
264
+ };
265
+ /**
266
+ * Converts this SenderKeyMessage to JSON.
267
+ * @function toJSON
268
+ * @memberof groupproto.SenderKeyMessage
269
+ * @instance
270
+ * @returns {Object.<string,*>} JSON object
271
+ */
272
+ SenderKeyMessage.prototype.toJSON = function toJSON() {
273
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
274
+ };
275
+ return SenderKeyMessage;
276
+ })();
277
+ groupproto.SenderKeyDistributionMessage = (function() {
278
+ /**
279
+ * Properties of a SenderKeyDistributionMessage.
280
+ * @memberof groupproto
281
+ * @interface ISenderKeyDistributionMessage
282
+ * @property {number|null} [id] SenderKeyDistributionMessage id
283
+ * @property {number|null} [iteration] SenderKeyDistributionMessage iteration
284
+ * @property {Uint8Array|null} [chainKey] SenderKeyDistributionMessage chainKey
285
+ * @property {Uint8Array|null} [signingKey] SenderKeyDistributionMessage signingKey
286
+ */
287
+ /**
288
+ * Constructs a new SenderKeyDistributionMessage.
289
+ * @memberof groupproto
290
+ * @classdesc Represents a SenderKeyDistributionMessage.
291
+ * @implements ISenderKeyDistributionMessage
292
+ * @constructor
293
+ * @param {groupproto.ISenderKeyDistributionMessage=} [properties] Properties to set
294
+ */
295
+ function SenderKeyDistributionMessage(properties) {
296
+ if (properties)
297
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
298
+ if (properties[keys[i]] != null)
299
+ this[keys[i]] = properties[keys[i]];
300
+ }
301
+ /**
302
+ * SenderKeyDistributionMessage id.
303
+ * @member {number|null|undefined} id
304
+ * @memberof groupproto.SenderKeyDistributionMessage
305
+ * @instance
306
+ */
307
+ SenderKeyDistributionMessage.prototype.id = null;
308
+ /**
309
+ * SenderKeyDistributionMessage iteration.
310
+ * @member {number|null|undefined} iteration
311
+ * @memberof groupproto.SenderKeyDistributionMessage
312
+ * @instance
313
+ */
314
+ SenderKeyDistributionMessage.prototype.iteration = null;
315
+ /**
316
+ * SenderKeyDistributionMessage chainKey.
317
+ * @member {Uint8Array|null|undefined} chainKey
318
+ * @memberof groupproto.SenderKeyDistributionMessage
319
+ * @instance
320
+ */
321
+ SenderKeyDistributionMessage.prototype.chainKey = null;
322
+ /**
323
+ * SenderKeyDistributionMessage signingKey.
324
+ * @member {Uint8Array|null|undefined} signingKey
325
+ * @memberof groupproto.SenderKeyDistributionMessage
326
+ * @instance
327
+ */
328
+ SenderKeyDistributionMessage.prototype.signingKey = null;
329
+ // OneOf field names bound to virtual getters and setters
330
+ var $oneOfFields;
331
+ /**
332
+ * SenderKeyDistributionMessage _id.
333
+ * @member {"id"|undefined} _id
334
+ * @memberof SenderKeyDistributionMessage
335
+ * @instance
336
+ */
337
+ Object.defineProperty(SenderKeyDistributionMessage.prototype, "_id", {
338
+ get: $util.oneOfGetter($oneOfFields = ["id"]),
339
+ set: $util.oneOfSetter($oneOfFields)
340
+ });
341
+ /**
342
+ * SenderKeyDistributionMessage _iteration.
343
+ * @member {"iteration"|undefined} _iteration
344
+ * @memberof SenderKeyDistributionMessage
345
+ * @instance
346
+ */
347
+ Object.defineProperty(SenderKeyDistributionMessage.prototype, "_iteration", {
348
+ get: $util.oneOfGetter($oneOfFields = ["iteration"]),
349
+ set: $util.oneOfSetter($oneOfFields)
350
+ });
351
+ /**
352
+ * SenderKeyDistributionMessage _chainKey.
353
+ * @member {"chainKey"|undefined} _chainKey
354
+ * @memberof SenderKeyDistributionMessage
355
+ * @instance
356
+ */
357
+ Object.defineProperty(SenderKeyDistributionMessage.prototype, "_chainKey", {
358
+ get: $util.oneOfGetter($oneOfFields = ["chainKey"]),
359
+ set: $util.oneOfSetter($oneOfFields)
360
+ });
361
+ /**
362
+ * SenderKeyDistributionMessage _signingKey.
363
+ * @member {"signingKey"|undefined} _signingKey
364
+ * @memberof SenderKeyDistributionMessage
365
+ * @instance
366
+ */
367
+ Object.defineProperty(SenderKeyDistributionMessage.prototype, "_signingKey", {
368
+ get: $util.oneOfGetter($oneOfFields = ["signingKey"]),
369
+ set: $util.oneOfSetter($oneOfFields)
370
+ });
371
+ /**
372
+ * Creates a new SenderKeyDistributionMessage instance using the specified properties.
373
+ * @function create
374
+ * @memberof groupproto.SenderKeyDistributionMessage
375
+ * @static
376
+ * @param {groupproto.ISenderKeyDistributionMessage=} [properties] Properties to set
377
+ * @returns {groupproto.SenderKeyDistributionMessage} SenderKeyDistributionMessage instance
378
+ */
379
+ SenderKeyDistributionMessage.create = function create(properties) {
380
+ return new SenderKeyDistributionMessage(properties);
381
+ };
382
+ /**
383
+ * Encodes the specified SenderKeyDistributionMessage message. Does not implicitly {@link groupproto.SenderKeyDistributionMessage.verify|verify} messages.
384
+ * @function encode
385
+ * @memberof groupproto.SenderKeyDistributionMessage
386
+ * @static
387
+ * @param {groupproto.ISenderKeyDistributionMessage} message SenderKeyDistributionMessage message or plain object to encode
388
+ * @param {$protobuf.Writer} [writer] Writer to encode to
389
+ * @returns {$protobuf.Writer} Writer
390
+ */
391
+ SenderKeyDistributionMessage.encode = function encode(message, writer) {
392
+ if (!writer)
393
+ writer = $Writer.create();
394
+ if (message.id != null && Object.hasOwnProperty.call(message, "id"))
395
+ writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.id);
396
+ if (message.iteration != null && Object.hasOwnProperty.call(message, "iteration"))
397
+ writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.iteration);
398
+ if (message.chainKey != null && Object.hasOwnProperty.call(message, "chainKey"))
399
+ writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.chainKey);
400
+ if (message.signingKey != null && Object.hasOwnProperty.call(message, "signingKey"))
401
+ writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.signingKey);
402
+ return writer;
403
+ };
404
+ /**
405
+ * Encodes the specified SenderKeyDistributionMessage message, length delimited. Does not implicitly {@link groupproto.SenderKeyDistributionMessage.verify|verify} messages.
406
+ * @function encodeDelimited
407
+ * @memberof groupproto.SenderKeyDistributionMessage
408
+ * @static
409
+ * @param {groupproto.ISenderKeyDistributionMessage} message SenderKeyDistributionMessage message or plain object to encode
410
+ * @param {$protobuf.Writer} [writer] Writer to encode to
411
+ * @returns {$protobuf.Writer} Writer
412
+ */
413
+ SenderKeyDistributionMessage.encodeDelimited = function encodeDelimited(message, writer) {
414
+ return this.encode(message, writer).ldelim();
415
+ };
416
+ /**
417
+ * Decodes a SenderKeyDistributionMessage message from the specified reader or buffer.
418
+ * @function decode
419
+ * @memberof groupproto.SenderKeyDistributionMessage
420
+ * @static
421
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
422
+ * @param {number} [length] Message length if known beforehand
423
+ * @returns {groupproto.SenderKeyDistributionMessage} SenderKeyDistributionMessage
424
+ * @throws {Error} If the payload is not a reader or valid buffer
425
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
426
+ */
427
+ SenderKeyDistributionMessage.decode = function decode(reader, length) {
428
+ if (!(reader instanceof $Reader))
429
+ reader = $Reader.create(reader);
430
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.groupproto.SenderKeyDistributionMessage();
431
+ while (reader.pos < end) {
432
+ var tag = reader.uint32();
433
+ switch (tag >>> 3) {
434
+ case 1:
435
+ message.id = reader.uint32();
436
+ break;
437
+ case 2:
438
+ message.iteration = reader.uint32();
439
+ break;
440
+ case 3:
441
+ message.chainKey = reader.bytes();
442
+ break;
443
+ case 4:
444
+ message.signingKey = reader.bytes();
445
+ break;
446
+ default:
447
+ reader.skipType(tag & 7);
448
+ break;
449
+ }
450
+ }
451
+ return message;
452
+ };
453
+ /**
454
+ * Decodes a SenderKeyDistributionMessage message from the specified reader or buffer, length delimited.
455
+ * @function decodeDelimited
456
+ * @memberof groupproto.SenderKeyDistributionMessage
457
+ * @static
458
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
459
+ * @returns {groupproto.SenderKeyDistributionMessage} SenderKeyDistributionMessage
460
+ * @throws {Error} If the payload is not a reader or valid buffer
461
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
462
+ */
463
+ SenderKeyDistributionMessage.decodeDelimited = function decodeDelimited(reader) {
464
+ if (!(reader instanceof $Reader))
465
+ reader = new $Reader(reader);
466
+ return this.decode(reader, reader.uint32());
467
+ };
468
+ /**
469
+ * Verifies a SenderKeyDistributionMessage message.
470
+ * @function verify
471
+ * @memberof groupproto.SenderKeyDistributionMessage
472
+ * @static
473
+ * @param {Object.<string,*>} message Plain object to verify
474
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
475
+ */
476
+ SenderKeyDistributionMessage.verify = function verify(message) {
477
+ if (typeof message !== "object" || message === null)
478
+ return "object expected";
479
+ var properties = {};
480
+ if (message.id != null && message.hasOwnProperty("id")) {
481
+ properties._id = 1;
482
+ if (!$util.isInteger(message.id))
483
+ return "id: integer expected";
484
+ }
485
+ if (message.iteration != null && message.hasOwnProperty("iteration")) {
486
+ properties._iteration = 1;
487
+ if (!$util.isInteger(message.iteration))
488
+ return "iteration: integer expected";
489
+ }
490
+ if (message.chainKey != null && message.hasOwnProperty("chainKey")) {
491
+ properties._chainKey = 1;
492
+ if (!(message.chainKey && typeof message.chainKey.length === "number" || $util.isString(message.chainKey)))
493
+ return "chainKey: buffer expected";
494
+ }
495
+ if (message.signingKey != null && message.hasOwnProperty("signingKey")) {
496
+ properties._signingKey = 1;
497
+ if (!(message.signingKey && typeof message.signingKey.length === "number" || $util.isString(message.signingKey)))
498
+ return "signingKey: buffer expected";
499
+ }
500
+ return null;
501
+ };
502
+ /**
503
+ * Creates a SenderKeyDistributionMessage message from a plain object. Also converts values to their respective internal types.
504
+ * @function fromObject
505
+ * @memberof groupproto.SenderKeyDistributionMessage
506
+ * @static
507
+ * @param {Object.<string,*>} object Plain object
508
+ * @returns {groupproto.SenderKeyDistributionMessage} SenderKeyDistributionMessage
509
+ */
510
+ SenderKeyDistributionMessage.fromObject = function fromObject(object) {
511
+ if (object instanceof $root.groupproto.SenderKeyDistributionMessage)
512
+ return object;
513
+ var message = new $root.groupproto.SenderKeyDistributionMessage();
514
+ if (object.id != null)
515
+ message.id = object.id >>> 0;
516
+ if (object.iteration != null)
517
+ message.iteration = object.iteration >>> 0;
518
+ if (object.chainKey != null)
519
+ if (typeof object.chainKey === "string")
520
+ $util.base64.decode(object.chainKey, message.chainKey = $util.newBuffer($util.base64.length(object.chainKey)), 0);
521
+ else if (object.chainKey.length)
522
+ message.chainKey = object.chainKey;
523
+ if (object.signingKey != null)
524
+ if (typeof object.signingKey === "string")
525
+ $util.base64.decode(object.signingKey, message.signingKey = $util.newBuffer($util.base64.length(object.signingKey)), 0);
526
+ else if (object.signingKey.length)
527
+ message.signingKey = object.signingKey;
528
+ return message;
529
+ };
530
+ /**
531
+ * Creates a plain object from a SenderKeyDistributionMessage message. Also converts values to other types if specified.
532
+ * @function toObject
533
+ * @memberof groupproto.SenderKeyDistributionMessage
534
+ * @static
535
+ * @param {groupproto.SenderKeyDistributionMessage} message SenderKeyDistributionMessage
536
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
537
+ * @returns {Object.<string,*>} Plain object
538
+ */
539
+ SenderKeyDistributionMessage.toObject = function toObject(message, options) {
540
+ if (!options)
541
+ options = {};
542
+ var object = {};
543
+ if (message.id != null && message.hasOwnProperty("id")) {
544
+ object.id = message.id;
545
+ if (options.oneofs)
546
+ object._id = "id";
547
+ }
548
+ if (message.iteration != null && message.hasOwnProperty("iteration")) {
549
+ object.iteration = message.iteration;
550
+ if (options.oneofs)
551
+ object._iteration = "iteration";
552
+ }
553
+ if (message.chainKey != null && message.hasOwnProperty("chainKey")) {
554
+ object.chainKey = options.bytes === String ? $util.base64.encode(message.chainKey, 0, message.chainKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.chainKey) : message.chainKey;
555
+ if (options.oneofs)
556
+ object._chainKey = "chainKey";
557
+ }
558
+ if (message.signingKey != null && message.hasOwnProperty("signingKey")) {
559
+ object.signingKey = options.bytes === String ? $util.base64.encode(message.signingKey, 0, message.signingKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.signingKey) : message.signingKey;
560
+ if (options.oneofs)
561
+ object._signingKey = "signingKey";
562
+ }
563
+ return object;
564
+ };
565
+ /**
566
+ * Converts this SenderKeyDistributionMessage to JSON.
567
+ * @function toJSON
568
+ * @memberof groupproto.SenderKeyDistributionMessage
569
+ * @instance
570
+ * @returns {Object.<string,*>} JSON object
571
+ */
572
+ SenderKeyDistributionMessage.prototype.toJSON = function toJSON() {
573
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
574
+ };
575
+ return SenderKeyDistributionMessage;
576
+ })();
577
+ groupproto.SenderChainKey = (function() {
578
+ /**
579
+ * Properties of a SenderChainKey.
580
+ * @memberof groupproto
581
+ * @interface ISenderChainKey
582
+ * @property {number|null} [iteration] SenderChainKey iteration
583
+ * @property {Uint8Array|null} [seed] SenderChainKey seed
584
+ */
585
+ /**
586
+ * Constructs a new SenderChainKey.
587
+ * @memberof groupproto
588
+ * @classdesc Represents a SenderChainKey.
589
+ * @implements ISenderChainKey
590
+ * @constructor
591
+ * @param {groupproto.ISenderChainKey=} [properties] Properties to set
592
+ */
593
+ function SenderChainKey(properties) {
594
+ if (properties)
595
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
596
+ if (properties[keys[i]] != null)
597
+ this[keys[i]] = properties[keys[i]];
598
+ }
599
+ /**
600
+ * SenderChainKey iteration.
601
+ * @member {number|null|undefined} iteration
602
+ * @memberof groupproto.SenderChainKey
603
+ * @instance
604
+ */
605
+ SenderChainKey.prototype.iteration = null;
606
+ /**
607
+ * SenderChainKey seed.
608
+ * @member {Uint8Array|null|undefined} seed
609
+ * @memberof groupproto.SenderChainKey
610
+ * @instance
611
+ */
612
+ SenderChainKey.prototype.seed = null;
613
+ // OneOf field names bound to virtual getters and setters
614
+ var $oneOfFields;
615
+ /**
616
+ * SenderChainKey _iteration.
617
+ * @member {"iteration"|undefined} _iteration
618
+ * @memberof SenderChainKey
619
+ * @instance
620
+ */
621
+ Object.defineProperty(SenderChainKey.prototype, "_iteration", {
622
+ get: $util.oneOfGetter($oneOfFields = ["iteration"]),
623
+ set: $util.oneOfSetter($oneOfFields)
624
+ });
625
+ /**
626
+ * SenderChainKey _seed.
627
+ * @member {"seed"|undefined} _seed
628
+ * @memberof SenderChainKey
629
+ * @instance
630
+ */
631
+ Object.defineProperty(SenderChainKey.prototype, "_seed", {
632
+ get: $util.oneOfGetter($oneOfFields = ["seed"]),
633
+ set: $util.oneOfSetter($oneOfFields)
634
+ });
635
+ /**
636
+ * Creates a new SenderChainKey instance using the specified properties.
637
+ * @function create
638
+ * @memberof groupproto.SenderChainKey
639
+ * @static
640
+ * @param {groupproto.ISenderChainKey=} [properties] Properties to set
641
+ * @returns {groupproto.SenderChainKey} SenderChainKey instance
642
+ */
643
+ SenderChainKey.create = function create(properties) {
644
+ return new SenderChainKey(properties);
645
+ };
646
+ /**
647
+ * Encodes the specified SenderChainKey message. Does not implicitly {@link groupproto.SenderChainKey.verify|verify} messages.
648
+ * @function encode
649
+ * @memberof groupproto.SenderChainKey
650
+ * @static
651
+ * @param {groupproto.ISenderChainKey} message SenderChainKey message or plain object to encode
652
+ * @param {$protobuf.Writer} [writer] Writer to encode to
653
+ * @returns {$protobuf.Writer} Writer
654
+ */
655
+ SenderChainKey.encode = function encode(message, writer) {
656
+ if (!writer)
657
+ writer = $Writer.create();
658
+ if (message.iteration != null && Object.hasOwnProperty.call(message, "iteration"))
659
+ writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.iteration);
660
+ if (message.seed != null && Object.hasOwnProperty.call(message, "seed"))
661
+ writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.seed);
662
+ return writer;
663
+ };
664
+ /**
665
+ * Encodes the specified SenderChainKey message, length delimited. Does not implicitly {@link groupproto.SenderChainKey.verify|verify} messages.
666
+ * @function encodeDelimited
667
+ * @memberof groupproto.SenderChainKey
668
+ * @static
669
+ * @param {groupproto.ISenderChainKey} message SenderChainKey message or plain object to encode
670
+ * @param {$protobuf.Writer} [writer] Writer to encode to
671
+ * @returns {$protobuf.Writer} Writer
672
+ */
673
+ SenderChainKey.encodeDelimited = function encodeDelimited(message, writer) {
674
+ return this.encode(message, writer).ldelim();
675
+ };
676
+ /**
677
+ * Decodes a SenderChainKey message from the specified reader or buffer.
678
+ * @function decode
679
+ * @memberof groupproto.SenderChainKey
680
+ * @static
681
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
682
+ * @param {number} [length] Message length if known beforehand
683
+ * @returns {groupproto.SenderChainKey} SenderChainKey
684
+ * @throws {Error} If the payload is not a reader or valid buffer
685
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
686
+ */
687
+ SenderChainKey.decode = function decode(reader, length) {
688
+ if (!(reader instanceof $Reader))
689
+ reader = $Reader.create(reader);
690
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.groupproto.SenderChainKey();
691
+ while (reader.pos < end) {
692
+ var tag = reader.uint32();
693
+ switch (tag >>> 3) {
694
+ case 1:
695
+ message.iteration = reader.uint32();
696
+ break;
697
+ case 2:
698
+ message.seed = reader.bytes();
699
+ break;
700
+ default:
701
+ reader.skipType(tag & 7);
702
+ break;
703
+ }
704
+ }
705
+ return message;
706
+ };
707
+ /**
708
+ * Decodes a SenderChainKey message from the specified reader or buffer, length delimited.
709
+ * @function decodeDelimited
710
+ * @memberof groupproto.SenderChainKey
711
+ * @static
712
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
713
+ * @returns {groupproto.SenderChainKey} SenderChainKey
714
+ * @throws {Error} If the payload is not a reader or valid buffer
715
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
716
+ */
717
+ SenderChainKey.decodeDelimited = function decodeDelimited(reader) {
718
+ if (!(reader instanceof $Reader))
719
+ reader = new $Reader(reader);
720
+ return this.decode(reader, reader.uint32());
721
+ };
722
+ /**
723
+ * Verifies a SenderChainKey message.
724
+ * @function verify
725
+ * @memberof groupproto.SenderChainKey
726
+ * @static
727
+ * @param {Object.<string,*>} message Plain object to verify
728
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
729
+ */
730
+ SenderChainKey.verify = function verify(message) {
731
+ if (typeof message !== "object" || message === null)
732
+ return "object expected";
733
+ var properties = {};
734
+ if (message.iteration != null && message.hasOwnProperty("iteration")) {
735
+ properties._iteration = 1;
736
+ if (!$util.isInteger(message.iteration))
737
+ return "iteration: integer expected";
738
+ }
739
+ if (message.seed != null && message.hasOwnProperty("seed")) {
740
+ properties._seed = 1;
741
+ if (!(message.seed && typeof message.seed.length === "number" || $util.isString(message.seed)))
742
+ return "seed: buffer expected";
743
+ }
744
+ return null;
745
+ };
746
+ /**
747
+ * Creates a SenderChainKey message from a plain object. Also converts values to their respective internal types.
748
+ * @function fromObject
749
+ * @memberof groupproto.SenderChainKey
750
+ * @static
751
+ * @param {Object.<string,*>} object Plain object
752
+ * @returns {groupproto.SenderChainKey} SenderChainKey
753
+ */
754
+ SenderChainKey.fromObject = function fromObject(object) {
755
+ if (object instanceof $root.groupproto.SenderChainKey)
756
+ return object;
757
+ var message = new $root.groupproto.SenderChainKey();
758
+ if (object.iteration != null)
759
+ message.iteration = object.iteration >>> 0;
760
+ if (object.seed != null)
761
+ if (typeof object.seed === "string")
762
+ $util.base64.decode(object.seed, message.seed = $util.newBuffer($util.base64.length(object.seed)), 0);
763
+ else if (object.seed.length)
764
+ message.seed = object.seed;
765
+ return message;
766
+ };
767
+ /**
768
+ * Creates a plain object from a SenderChainKey message. Also converts values to other types if specified.
769
+ * @function toObject
770
+ * @memberof groupproto.SenderChainKey
771
+ * @static
772
+ * @param {groupproto.SenderChainKey} message SenderChainKey
773
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
774
+ * @returns {Object.<string,*>} Plain object
775
+ */
776
+ SenderChainKey.toObject = function toObject(message, options) {
777
+ if (!options)
778
+ options = {};
779
+ var object = {};
780
+ if (message.iteration != null && message.hasOwnProperty("iteration")) {
781
+ object.iteration = message.iteration;
782
+ if (options.oneofs)
783
+ object._iteration = "iteration";
784
+ }
785
+ if (message.seed != null && message.hasOwnProperty("seed")) {
786
+ object.seed = options.bytes === String ? $util.base64.encode(message.seed, 0, message.seed.length) : options.bytes === Array ? Array.prototype.slice.call(message.seed) : message.seed;
787
+ if (options.oneofs)
788
+ object._seed = "seed";
789
+ }
790
+ return object;
791
+ };
792
+ /**
793
+ * Converts this SenderChainKey to JSON.
794
+ * @function toJSON
795
+ * @memberof groupproto.SenderChainKey
796
+ * @instance
797
+ * @returns {Object.<string,*>} JSON object
798
+ */
799
+ SenderChainKey.prototype.toJSON = function toJSON() {
800
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
801
+ };
802
+ return SenderChainKey;
803
+ })();
804
+ groupproto.SenderMessageKey = (function() {
805
+ /**
806
+ * Properties of a SenderMessageKey.
807
+ * @memberof groupproto
808
+ * @interface ISenderMessageKey
809
+ * @property {number|null} [iteration] SenderMessageKey iteration
810
+ * @property {Uint8Array|null} [seed] SenderMessageKey seed
811
+ */
812
+ /**
813
+ * Constructs a new SenderMessageKey.
814
+ * @memberof groupproto
815
+ * @classdesc Represents a SenderMessageKey.
816
+ * @implements ISenderMessageKey
817
+ * @constructor
818
+ * @param {groupproto.ISenderMessageKey=} [properties] Properties to set
819
+ */
820
+ function SenderMessageKey(properties) {
821
+ if (properties)
822
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
823
+ if (properties[keys[i]] != null)
824
+ this[keys[i]] = properties[keys[i]];
825
+ }
826
+ /**
827
+ * SenderMessageKey iteration.
828
+ * @member {number|null|undefined} iteration
829
+ * @memberof groupproto.SenderMessageKey
830
+ * @instance
831
+ */
832
+ SenderMessageKey.prototype.iteration = null;
833
+ /**
834
+ * SenderMessageKey seed.
835
+ * @member {Uint8Array|null|undefined} seed
836
+ * @memberof groupproto.SenderMessageKey
837
+ * @instance
838
+ */
839
+ SenderMessageKey.prototype.seed = null;
840
+ // OneOf field names bound to virtual getters and setters
841
+ var $oneOfFields;
842
+ /**
843
+ * SenderMessageKey _iteration.
844
+ * @member {"iteration"|undefined} _iteration
845
+ * @memberof SenderMessageKey
846
+ * @instance
847
+ */
848
+ Object.defineProperty(SenderMessageKey.prototype, "_iteration", {
849
+ get: $util.oneOfGetter($oneOfFields = ["iteration"]),
850
+ set: $util.oneOfSetter($oneOfFields)
851
+ });
852
+ /**
853
+ * SenderMessageKey _seed.
854
+ * @member {"seed"|undefined} _seed
855
+ * @memberof SenderMessageKey
856
+ * @instance
857
+ */
858
+ Object.defineProperty(SenderMessageKey.prototype, "_seed", {
859
+ get: $util.oneOfGetter($oneOfFields = ["seed"]),
860
+ set: $util.oneOfSetter($oneOfFields)
861
+ });
862
+ /**
863
+ * Creates a new SenderMessageKey instance using the specified properties.
864
+ * @function create
865
+ * @memberof groupproto.SenderMessageKey
866
+ * @static
867
+ * @param {groupproto.ISenderMessageKey=} [properties] Properties to set
868
+ * @returns {groupproto.SenderMessageKey} SenderMessageKey instance
869
+ */
870
+ SenderMessageKey.create = function create(properties) {
871
+ return new SenderMessageKey(properties);
872
+ };
873
+ /**
874
+ * Encodes the specified SenderMessageKey message. Does not implicitly {@link groupproto.SenderMessageKey.verify|verify} messages.
875
+ * @function encode
876
+ * @memberof groupproto.SenderMessageKey
877
+ * @static
878
+ * @param {groupproto.ISenderMessageKey} message SenderMessageKey message or plain object to encode
879
+ * @param {$protobuf.Writer} [writer] Writer to encode to
880
+ * @returns {$protobuf.Writer} Writer
881
+ */
882
+ SenderMessageKey.encode = function encode(message, writer) {
883
+ if (!writer)
884
+ writer = $Writer.create();
885
+ if (message.iteration != null && Object.hasOwnProperty.call(message, "iteration"))
886
+ writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.iteration);
887
+ if (message.seed != null && Object.hasOwnProperty.call(message, "seed"))
888
+ writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.seed);
889
+ return writer;
890
+ };
891
+ /**
892
+ * Encodes the specified SenderMessageKey message, length delimited. Does not implicitly {@link groupproto.SenderMessageKey.verify|verify} messages.
893
+ * @function encodeDelimited
894
+ * @memberof groupproto.SenderMessageKey
895
+ * @static
896
+ * @param {groupproto.ISenderMessageKey} message SenderMessageKey message or plain object to encode
897
+ * @param {$protobuf.Writer} [writer] Writer to encode to
898
+ * @returns {$protobuf.Writer} Writer
899
+ */
900
+ SenderMessageKey.encodeDelimited = function encodeDelimited(message, writer) {
901
+ return this.encode(message, writer).ldelim();
902
+ };
903
+ /**
904
+ * Decodes a SenderMessageKey message from the specified reader or buffer.
905
+ * @function decode
906
+ * @memberof groupproto.SenderMessageKey
907
+ * @static
908
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
909
+ * @param {number} [length] Message length if known beforehand
910
+ * @returns {groupproto.SenderMessageKey} SenderMessageKey
911
+ * @throws {Error} If the payload is not a reader or valid buffer
912
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
913
+ */
914
+ SenderMessageKey.decode = function decode(reader, length) {
915
+ if (!(reader instanceof $Reader))
916
+ reader = $Reader.create(reader);
917
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.groupproto.SenderMessageKey();
918
+ while (reader.pos < end) {
919
+ var tag = reader.uint32();
920
+ switch (tag >>> 3) {
921
+ case 1:
922
+ message.iteration = reader.uint32();
923
+ break;
924
+ case 2:
925
+ message.seed = reader.bytes();
926
+ break;
927
+ default:
928
+ reader.skipType(tag & 7);
929
+ break;
930
+ }
931
+ }
932
+ return message;
933
+ };
934
+ /**
935
+ * Decodes a SenderMessageKey message from the specified reader or buffer, length delimited.
936
+ * @function decodeDelimited
937
+ * @memberof groupproto.SenderMessageKey
938
+ * @static
939
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
940
+ * @returns {groupproto.SenderMessageKey} SenderMessageKey
941
+ * @throws {Error} If the payload is not a reader or valid buffer
942
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
943
+ */
944
+ SenderMessageKey.decodeDelimited = function decodeDelimited(reader) {
945
+ if (!(reader instanceof $Reader))
946
+ reader = new $Reader(reader);
947
+ return this.decode(reader, reader.uint32());
948
+ };
949
+ /**
950
+ * Verifies a SenderMessageKey message.
951
+ * @function verify
952
+ * @memberof groupproto.SenderMessageKey
953
+ * @static
954
+ * @param {Object.<string,*>} message Plain object to verify
955
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
956
+ */
957
+ SenderMessageKey.verify = function verify(message) {
958
+ if (typeof message !== "object" || message === null)
959
+ return "object expected";
960
+ var properties = {};
961
+ if (message.iteration != null && message.hasOwnProperty("iteration")) {
962
+ properties._iteration = 1;
963
+ if (!$util.isInteger(message.iteration))
964
+ return "iteration: integer expected";
965
+ }
966
+ if (message.seed != null && message.hasOwnProperty("seed")) {
967
+ properties._seed = 1;
968
+ if (!(message.seed && typeof message.seed.length === "number" || $util.isString(message.seed)))
969
+ return "seed: buffer expected";
970
+ }
971
+ return null;
972
+ };
973
+ /**
974
+ * Creates a SenderMessageKey message from a plain object. Also converts values to their respective internal types.
975
+ * @function fromObject
976
+ * @memberof groupproto.SenderMessageKey
977
+ * @static
978
+ * @param {Object.<string,*>} object Plain object
979
+ * @returns {groupproto.SenderMessageKey} SenderMessageKey
980
+ */
981
+ SenderMessageKey.fromObject = function fromObject(object) {
982
+ if (object instanceof $root.groupproto.SenderMessageKey)
983
+ return object;
984
+ var message = new $root.groupproto.SenderMessageKey();
985
+ if (object.iteration != null)
986
+ message.iteration = object.iteration >>> 0;
987
+ if (object.seed != null)
988
+ if (typeof object.seed === "string")
989
+ $util.base64.decode(object.seed, message.seed = $util.newBuffer($util.base64.length(object.seed)), 0);
990
+ else if (object.seed.length)
991
+ message.seed = object.seed;
992
+ return message;
993
+ };
994
+ /**
995
+ * Creates a plain object from a SenderMessageKey message. Also converts values to other types if specified.
996
+ * @function toObject
997
+ * @memberof groupproto.SenderMessageKey
998
+ * @static
999
+ * @param {groupproto.SenderMessageKey} message SenderMessageKey
1000
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
1001
+ * @returns {Object.<string,*>} Plain object
1002
+ */
1003
+ SenderMessageKey.toObject = function toObject(message, options) {
1004
+ if (!options)
1005
+ options = {};
1006
+ var object = {};
1007
+ if (message.iteration != null && message.hasOwnProperty("iteration")) {
1008
+ object.iteration = message.iteration;
1009
+ if (options.oneofs)
1010
+ object._iteration = "iteration";
1011
+ }
1012
+ if (message.seed != null && message.hasOwnProperty("seed")) {
1013
+ object.seed = options.bytes === String ? $util.base64.encode(message.seed, 0, message.seed.length) : options.bytes === Array ? Array.prototype.slice.call(message.seed) : message.seed;
1014
+ if (options.oneofs)
1015
+ object._seed = "seed";
1016
+ }
1017
+ return object;
1018
+ };
1019
+ /**
1020
+ * Converts this SenderMessageKey to JSON.
1021
+ * @function toJSON
1022
+ * @memberof groupproto.SenderMessageKey
1023
+ * @instance
1024
+ * @returns {Object.<string,*>} JSON object
1025
+ */
1026
+ SenderMessageKey.prototype.toJSON = function toJSON() {
1027
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
1028
+ };
1029
+ return SenderMessageKey;
1030
+ })();
1031
+ groupproto.SenderSigningKey = (function() {
1032
+ /**
1033
+ * Properties of a SenderSigningKey.
1034
+ * @memberof groupproto
1035
+ * @interface ISenderSigningKey
1036
+ * @property {Uint8Array|null} ["public"] SenderSigningKey public
1037
+ * @property {Uint8Array|null} ["private"] SenderSigningKey private
1038
+ */
1039
+ /**
1040
+ * Constructs a new SenderSigningKey.
1041
+ * @memberof groupproto
1042
+ * @classdesc Represents a SenderSigningKey.
1043
+ * @implements ISenderSigningKey
1044
+ * @constructor
1045
+ * @param {groupproto.ISenderSigningKey=} [properties] Properties to set
1046
+ */
1047
+ function SenderSigningKey(properties) {
1048
+ if (properties)
1049
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
1050
+ if (properties[keys[i]] != null)
1051
+ this[keys[i]] = properties[keys[i]];
1052
+ }
1053
+ /**
1054
+ * SenderSigningKey public.
1055
+ * @member {Uint8Array|null|undefined} public
1056
+ * @memberof groupproto.SenderSigningKey
1057
+ * @instance
1058
+ */
1059
+ SenderSigningKey.prototype["public"] = null;
1060
+ /**
1061
+ * SenderSigningKey private.
1062
+ * @member {Uint8Array|null|undefined} private
1063
+ * @memberof groupproto.SenderSigningKey
1064
+ * @instance
1065
+ */
1066
+ SenderSigningKey.prototype["private"] = null;
1067
+ // OneOf field names bound to virtual getters and setters
1068
+ var $oneOfFields;
1069
+ /**
1070
+ * SenderSigningKey _public.
1071
+ * @member {"public"|undefined} _public
1072
+ * @memberof SenderSigningKey
1073
+ * @instance
1074
+ */
1075
+ Object.defineProperty(SenderSigningKey.prototype, "_public", {
1076
+ get: $util.oneOfGetter($oneOfFields = ["public"]),
1077
+ set: $util.oneOfSetter($oneOfFields)
1078
+ });
1079
+ /**
1080
+ * SenderSigningKey _private.
1081
+ * @member {"private"|undefined} _private
1082
+ * @memberof SenderSigningKey
1083
+ * @instance
1084
+ */
1085
+ Object.defineProperty(SenderSigningKey.prototype, "_private", {
1086
+ get: $util.oneOfGetter($oneOfFields = ["private"]),
1087
+ set: $util.oneOfSetter($oneOfFields)
1088
+ });
1089
+ /**
1090
+ * Creates a new SenderSigningKey instance using the specified properties.
1091
+ * @function create
1092
+ * @memberof groupproto.SenderSigningKey
1093
+ * @static
1094
+ * @param {groupproto.ISenderSigningKey=} [properties] Properties to set
1095
+ * @returns {groupproto.SenderSigningKey} SenderSigningKey instance
1096
+ */
1097
+ SenderSigningKey.create = function create(properties) {
1098
+ return new SenderSigningKey(properties);
1099
+ };
1100
+ /**
1101
+ * Encodes the specified SenderSigningKey message. Does not implicitly {@link groupproto.SenderSigningKey.verify|verify} messages.
1102
+ * @function encode
1103
+ * @memberof groupproto.SenderSigningKey
1104
+ * @static
1105
+ * @param {groupproto.ISenderSigningKey} message SenderSigningKey message or plain object to encode
1106
+ * @param {$protobuf.Writer} [writer] Writer to encode to
1107
+ * @returns {$protobuf.Writer} Writer
1108
+ */
1109
+ SenderSigningKey.encode = function encode(message, writer) {
1110
+ if (!writer)
1111
+ writer = $Writer.create();
1112
+ if (message["public"] != null && Object.hasOwnProperty.call(message, "public"))
1113
+ writer.uint32(/* id 1, wireType 2 =*/10).bytes(message["public"]);
1114
+ if (message["private"] != null && Object.hasOwnProperty.call(message, "private"))
1115
+ writer.uint32(/* id 2, wireType 2 =*/18).bytes(message["private"]);
1116
+ return writer;
1117
+ };
1118
+ /**
1119
+ * Encodes the specified SenderSigningKey message, length delimited. Does not implicitly {@link groupproto.SenderSigningKey.verify|verify} messages.
1120
+ * @function encodeDelimited
1121
+ * @memberof groupproto.SenderSigningKey
1122
+ * @static
1123
+ * @param {groupproto.ISenderSigningKey} message SenderSigningKey message or plain object to encode
1124
+ * @param {$protobuf.Writer} [writer] Writer to encode to
1125
+ * @returns {$protobuf.Writer} Writer
1126
+ */
1127
+ SenderSigningKey.encodeDelimited = function encodeDelimited(message, writer) {
1128
+ return this.encode(message, writer).ldelim();
1129
+ };
1130
+ /**
1131
+ * Decodes a SenderSigningKey message from the specified reader or buffer.
1132
+ * @function decode
1133
+ * @memberof groupproto.SenderSigningKey
1134
+ * @static
1135
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
1136
+ * @param {number} [length] Message length if known beforehand
1137
+ * @returns {groupproto.SenderSigningKey} SenderSigningKey
1138
+ * @throws {Error} If the payload is not a reader or valid buffer
1139
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
1140
+ */
1141
+ SenderSigningKey.decode = function decode(reader, length) {
1142
+ if (!(reader instanceof $Reader))
1143
+ reader = $Reader.create(reader);
1144
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.groupproto.SenderSigningKey();
1145
+ while (reader.pos < end) {
1146
+ var tag = reader.uint32();
1147
+ switch (tag >>> 3) {
1148
+ case 1:
1149
+ message["public"] = reader.bytes();
1150
+ break;
1151
+ case 2:
1152
+ message["private"] = reader.bytes();
1153
+ break;
1154
+ default:
1155
+ reader.skipType(tag & 7);
1156
+ break;
1157
+ }
1158
+ }
1159
+ return message;
1160
+ };
1161
+ /**
1162
+ * Decodes a SenderSigningKey message from the specified reader or buffer, length delimited.
1163
+ * @function decodeDelimited
1164
+ * @memberof groupproto.SenderSigningKey
1165
+ * @static
1166
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
1167
+ * @returns {groupproto.SenderSigningKey} SenderSigningKey
1168
+ * @throws {Error} If the payload is not a reader or valid buffer
1169
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
1170
+ */
1171
+ SenderSigningKey.decodeDelimited = function decodeDelimited(reader) {
1172
+ if (!(reader instanceof $Reader))
1173
+ reader = new $Reader(reader);
1174
+ return this.decode(reader, reader.uint32());
1175
+ };
1176
+ /**
1177
+ * Verifies a SenderSigningKey message.
1178
+ * @function verify
1179
+ * @memberof groupproto.SenderSigningKey
1180
+ * @static
1181
+ * @param {Object.<string,*>} message Plain object to verify
1182
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
1183
+ */
1184
+ SenderSigningKey.verify = function verify(message) {
1185
+ if (typeof message !== "object" || message === null)
1186
+ return "object expected";
1187
+ var properties = {};
1188
+ if (message["public"] != null && message.hasOwnProperty("public")) {
1189
+ properties._public = 1;
1190
+ if (!(message["public"] && typeof message["public"].length === "number" || $util.isString(message["public"])))
1191
+ return "public: buffer expected";
1192
+ }
1193
+ if (message["private"] != null && message.hasOwnProperty("private")) {
1194
+ properties._private = 1;
1195
+ if (!(message["private"] && typeof message["private"].length === "number" || $util.isString(message["private"])))
1196
+ return "private: buffer expected";
1197
+ }
1198
+ return null;
1199
+ };
1200
+ /**
1201
+ * Creates a SenderSigningKey message from a plain object. Also converts values to their respective internal types.
1202
+ * @function fromObject
1203
+ * @memberof groupproto.SenderSigningKey
1204
+ * @static
1205
+ * @param {Object.<string,*>} object Plain object
1206
+ * @returns {groupproto.SenderSigningKey} SenderSigningKey
1207
+ */
1208
+ SenderSigningKey.fromObject = function fromObject(object) {
1209
+ if (object instanceof $root.groupproto.SenderSigningKey)
1210
+ return object;
1211
+ var message = new $root.groupproto.SenderSigningKey();
1212
+ if (object["public"] != null)
1213
+ if (typeof object["public"] === "string")
1214
+ $util.base64.decode(object["public"], message["public"] = $util.newBuffer($util.base64.length(object["public"])), 0);
1215
+ else if (object["public"].length)
1216
+ message["public"] = object["public"];
1217
+ if (object["private"] != null)
1218
+ if (typeof object["private"] === "string")
1219
+ $util.base64.decode(object["private"], message["private"] = $util.newBuffer($util.base64.length(object["private"])), 0);
1220
+ else if (object["private"].length)
1221
+ message["private"] = object["private"];
1222
+ return message;
1223
+ };
1224
+ /**
1225
+ * Creates a plain object from a SenderSigningKey message. Also converts values to other types if specified.
1226
+ * @function toObject
1227
+ * @memberof groupproto.SenderSigningKey
1228
+ * @static
1229
+ * @param {groupproto.SenderSigningKey} message SenderSigningKey
1230
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
1231
+ * @returns {Object.<string,*>} Plain object
1232
+ */
1233
+ SenderSigningKey.toObject = function toObject(message, options) {
1234
+ if (!options)
1235
+ options = {};
1236
+ var object = {};
1237
+ if (message["public"] != null && message.hasOwnProperty("public")) {
1238
+ object["public"] = options.bytes === String ? $util.base64.encode(message["public"], 0, message["public"].length) : options.bytes === Array ? Array.prototype.slice.call(message["public"]) : message["public"];
1239
+ if (options.oneofs)
1240
+ object._public = "public";
1241
+ }
1242
+ if (message["private"] != null && message.hasOwnProperty("private")) {
1243
+ object["private"] = options.bytes === String ? $util.base64.encode(message["private"], 0, message["private"].length) : options.bytes === Array ? Array.prototype.slice.call(message["private"]) : message["private"];
1244
+ if (options.oneofs)
1245
+ object._private = "private";
1246
+ }
1247
+ return object;
1248
+ };
1249
+ /**
1250
+ * Converts this SenderSigningKey to JSON.
1251
+ * @function toJSON
1252
+ * @memberof groupproto.SenderSigningKey
1253
+ * @instance
1254
+ * @returns {Object.<string,*>} JSON object
1255
+ */
1256
+ SenderSigningKey.prototype.toJSON = function toJSON() {
1257
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
1258
+ };
1259
+ return SenderSigningKey;
1260
+ })();
1261
+ groupproto.SenderKeyStateStructure = (function() {
1262
+ /**
1263
+ * Properties of a SenderKeyStateStructure.
1264
+ * @memberof groupproto
1265
+ * @interface ISenderKeyStateStructure
1266
+ * @property {number|null} [senderKeyId] SenderKeyStateStructure senderKeyId
1267
+ * @property {groupproto.ISenderChainKey|null} [senderChainKey] SenderKeyStateStructure senderChainKey
1268
+ * @property {groupproto.ISenderSigningKey|null} [senderSigningKey] SenderKeyStateStructure senderSigningKey
1269
+ * @property {Array.<groupproto.ISenderMessageKey>|null} [senderMessageKeys] SenderKeyStateStructure senderMessageKeys
1270
+ */
1271
+ /**
1272
+ * Constructs a new SenderKeyStateStructure.
1273
+ * @memberof groupproto
1274
+ * @classdesc Represents a SenderKeyStateStructure.
1275
+ * @implements ISenderKeyStateStructure
1276
+ * @constructor
1277
+ * @param {groupproto.ISenderKeyStateStructure=} [properties] Properties to set
1278
+ */
1279
+ function SenderKeyStateStructure(properties) {
1280
+ this.senderMessageKeys = [];
1281
+ if (properties)
1282
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
1283
+ if (properties[keys[i]] != null)
1284
+ this[keys[i]] = properties[keys[i]];
1285
+ }
1286
+ /**
1287
+ * SenderKeyStateStructure senderKeyId.
1288
+ * @member {number|null|undefined} senderKeyId
1289
+ * @memberof groupproto.SenderKeyStateStructure
1290
+ * @instance
1291
+ */
1292
+ SenderKeyStateStructure.prototype.senderKeyId = null;
1293
+ /**
1294
+ * SenderKeyStateStructure senderChainKey.
1295
+ * @member {groupproto.ISenderChainKey|null|undefined} senderChainKey
1296
+ * @memberof groupproto.SenderKeyStateStructure
1297
+ * @instance
1298
+ */
1299
+ SenderKeyStateStructure.prototype.senderChainKey = null;
1300
+ /**
1301
+ * SenderKeyStateStructure senderSigningKey.
1302
+ * @member {groupproto.ISenderSigningKey|null|undefined} senderSigningKey
1303
+ * @memberof groupproto.SenderKeyStateStructure
1304
+ * @instance
1305
+ */
1306
+ SenderKeyStateStructure.prototype.senderSigningKey = null;
1307
+ /**
1308
+ * SenderKeyStateStructure senderMessageKeys.
1309
+ * @member {Array.<groupproto.ISenderMessageKey>} senderMessageKeys
1310
+ * @memberof groupproto.SenderKeyStateStructure
1311
+ * @instance
1312
+ */
1313
+ SenderKeyStateStructure.prototype.senderMessageKeys = $util.emptyArray;
1314
+ // OneOf field names bound to virtual getters and setters
1315
+ var $oneOfFields;
1316
+ /**
1317
+ * SenderKeyStateStructure _senderKeyId.
1318
+ * @member {"senderKeyId"|undefined} _senderKeyId
1319
+ * @memberof SenderKeyStateStructure
1320
+ * @instance
1321
+ */
1322
+ Object.defineProperty(SenderKeyStateStructure.prototype, "_senderKeyId", {
1323
+ get: $util.oneOfGetter($oneOfFields = ["senderKeyId"]),
1324
+ set: $util.oneOfSetter($oneOfFields)
1325
+ });
1326
+ /**
1327
+ * SenderKeyStateStructure _senderChainKey.
1328
+ * @member {"senderChainKey"|undefined} _senderChainKey
1329
+ * @memberof SenderKeyStateStructure
1330
+ * @instance
1331
+ */
1332
+ Object.defineProperty(SenderKeyStateStructure.prototype, "_senderChainKey", {
1333
+ get: $util.oneOfGetter($oneOfFields = ["senderChainKey"]),
1334
+ set: $util.oneOfSetter($oneOfFields)
1335
+ });
1336
+ /**
1337
+ * SenderKeyStateStructure _senderSigningKey.
1338
+ * @member {"senderSigningKey"|undefined} _senderSigningKey
1339
+ * @memberof SenderKeyStateStructure
1340
+ * @instance
1341
+ */
1342
+ Object.defineProperty(SenderKeyStateStructure.prototype, "_senderSigningKey", {
1343
+ get: $util.oneOfGetter($oneOfFields = ["senderSigningKey"]),
1344
+ set: $util.oneOfSetter($oneOfFields)
1345
+ });
1346
+ /**
1347
+ * Creates a new SenderKeyStateStructure instance using the specified properties.
1348
+ * @function create
1349
+ * @memberof groupproto.SenderKeyStateStructure
1350
+ * @static
1351
+ * @param {groupproto.ISenderKeyStateStructure=} [properties] Properties to set
1352
+ * @returns {groupproto.SenderKeyStateStructure} SenderKeyStateStructure instance
1353
+ */
1354
+ SenderKeyStateStructure.create = function create(properties) {
1355
+ return new SenderKeyStateStructure(properties);
1356
+ };
1357
+ /**
1358
+ * Encodes the specified SenderKeyStateStructure message. Does not implicitly {@link groupproto.SenderKeyStateStructure.verify|verify} messages.
1359
+ * @function encode
1360
+ * @memberof groupproto.SenderKeyStateStructure
1361
+ * @static
1362
+ * @param {groupproto.ISenderKeyStateStructure} message SenderKeyStateStructure message or plain object to encode
1363
+ * @param {$protobuf.Writer} [writer] Writer to encode to
1364
+ * @returns {$protobuf.Writer} Writer
1365
+ */
1366
+ SenderKeyStateStructure.encode = function encode(message, writer) {
1367
+ if (!writer)
1368
+ writer = $Writer.create();
1369
+ if (message.senderKeyId != null && Object.hasOwnProperty.call(message, "senderKeyId"))
1370
+ writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.senderKeyId);
1371
+ if (message.senderChainKey != null && Object.hasOwnProperty.call(message, "senderChainKey"))
1372
+ $root.groupproto.SenderChainKey.encode(message.senderChainKey, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
1373
+ if (message.senderSigningKey != null && Object.hasOwnProperty.call(message, "senderSigningKey"))
1374
+ $root.groupproto.SenderSigningKey.encode(message.senderSigningKey, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
1375
+ if (message.senderMessageKeys != null && message.senderMessageKeys.length)
1376
+ for (var i = 0; i < message.senderMessageKeys.length; ++i)
1377
+ $root.groupproto.SenderMessageKey.encode(message.senderMessageKeys[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
1378
+ return writer;
1379
+ };
1380
+ /**
1381
+ * Encodes the specified SenderKeyStateStructure message, length delimited. Does not implicitly {@link groupproto.SenderKeyStateStructure.verify|verify} messages.
1382
+ * @function encodeDelimited
1383
+ * @memberof groupproto.SenderKeyStateStructure
1384
+ * @static
1385
+ * @param {groupproto.ISenderKeyStateStructure} message SenderKeyStateStructure message or plain object to encode
1386
+ * @param {$protobuf.Writer} [writer] Writer to encode to
1387
+ * @returns {$protobuf.Writer} Writer
1388
+ */
1389
+ SenderKeyStateStructure.encodeDelimited = function encodeDelimited(message, writer) {
1390
+ return this.encode(message, writer).ldelim();
1391
+ };
1392
+ /**
1393
+ * Decodes a SenderKeyStateStructure message from the specified reader or buffer.
1394
+ * @function decode
1395
+ * @memberof groupproto.SenderKeyStateStructure
1396
+ * @static
1397
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
1398
+ * @param {number} [length] Message length if known beforehand
1399
+ * @returns {groupproto.SenderKeyStateStructure} SenderKeyStateStructure
1400
+ * @throws {Error} If the payload is not a reader or valid buffer
1401
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
1402
+ */
1403
+ SenderKeyStateStructure.decode = function decode(reader, length) {
1404
+ if (!(reader instanceof $Reader))
1405
+ reader = $Reader.create(reader);
1406
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.groupproto.SenderKeyStateStructure();
1407
+ while (reader.pos < end) {
1408
+ var tag = reader.uint32();
1409
+ switch (tag >>> 3) {
1410
+ case 1:
1411
+ message.senderKeyId = reader.uint32();
1412
+ break;
1413
+ case 2:
1414
+ message.senderChainKey = $root.groupproto.SenderChainKey.decode(reader, reader.uint32());
1415
+ break;
1416
+ case 3:
1417
+ message.senderSigningKey = $root.groupproto.SenderSigningKey.decode(reader, reader.uint32());
1418
+ break;
1419
+ case 4:
1420
+ if (!(message.senderMessageKeys && message.senderMessageKeys.length))
1421
+ message.senderMessageKeys = [];
1422
+ message.senderMessageKeys.push($root.groupproto.SenderMessageKey.decode(reader, reader.uint32()));
1423
+ break;
1424
+ default:
1425
+ reader.skipType(tag & 7);
1426
+ break;
1427
+ }
1428
+ }
1429
+ return message;
1430
+ };
1431
+ /**
1432
+ * Decodes a SenderKeyStateStructure message from the specified reader or buffer, length delimited.
1433
+ * @function decodeDelimited
1434
+ * @memberof groupproto.SenderKeyStateStructure
1435
+ * @static
1436
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
1437
+ * @returns {groupproto.SenderKeyStateStructure} SenderKeyStateStructure
1438
+ * @throws {Error} If the payload is not a reader or valid buffer
1439
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
1440
+ */
1441
+ SenderKeyStateStructure.decodeDelimited = function decodeDelimited(reader) {
1442
+ if (!(reader instanceof $Reader))
1443
+ reader = new $Reader(reader);
1444
+ return this.decode(reader, reader.uint32());
1445
+ };
1446
+ /**
1447
+ * Verifies a SenderKeyStateStructure message.
1448
+ * @function verify
1449
+ * @memberof groupproto.SenderKeyStateStructure
1450
+ * @static
1451
+ * @param {Object.<string,*>} message Plain object to verify
1452
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
1453
+ */
1454
+ SenderKeyStateStructure.verify = function verify(message) {
1455
+ if (typeof message !== "object" || message === null)
1456
+ return "object expected";
1457
+ var properties = {};
1458
+ if (message.senderKeyId != null && message.hasOwnProperty("senderKeyId")) {
1459
+ properties._senderKeyId = 1;
1460
+ if (!$util.isInteger(message.senderKeyId))
1461
+ return "senderKeyId: integer expected";
1462
+ }
1463
+ if (message.senderChainKey != null && message.hasOwnProperty("senderChainKey")) {
1464
+ properties_.senderChainKey = 1;
1465
+ {
1466
+ var error = $root.groupproto.SenderChainKey.verify(message.senderChainKey);
1467
+ if (error)
1468
+ return "senderChainKey." + error;
1469
+ }
1470
+ }
1471
+ if (message.senderSigningKey != null && message.hasOwnProperty("senderSigningKey")) {
1472
+ properties._senderSigningKey = 1;
1473
+ {
1474
+ var error = $root.groupproto.SenderSigningKey.verify(message.senderSigningKey);
1475
+ if (error)
1476
+ return "senderSigningKey." + error;
1477
+ }
1478
+ }
1479
+ if (message.senderMessageKeys != null && message.hasOwnProperty("senderMessageKeys")) {
1480
+ if (!Array.isArray(message.senderMessageKeys))
1481
+ return "senderMessageKeys: array expected";
1482
+ for (var i = 0; i < message.senderMessageKeys.length; ++i) {
1483
+ var error = $root.groupproto.SenderMessageKey.verify(message.senderMessageKeys[i]);
1484
+ if (error)
1485
+ return "senderMessageKeys." + error;
1486
+ }
1487
+ }
1488
+ return null;
1489
+ };
1490
+ /**
1491
+ * Creates a SenderKeyStateStructure message from a plain object. Also converts values to their respective internal types.
1492
+ * @function fromObject
1493
+ * @memberof groupproto.SenderKeyStateStructure
1494
+ * @static
1495
+ * @param {Object.<string,*>} object Plain object
1496
+ * @returns {groupproto.SenderKeyStateStructure} SenderKeyStateStructure
1497
+ */
1498
+ SenderKeyStateStructure.fromObject = function fromObject(object) {
1499
+ if (object instanceof $root.groupproto.SenderKeyStateStructure)
1500
+ return object;
1501
+ var message = new $root.groupproto.SenderKeyStateStructure();
1502
+ if (object.senderKeyId != null)
1503
+ message.senderKeyId = object.senderKeyId >>> 0;
1504
+ if (object.senderChainKey != null) {
1505
+ if (typeof object.senderChainKey !== "object")
1506
+ throw TypeError(".groupproto.SenderKeyStateStructure.senderChainKey: object expected");
1507
+ message.senderChainKey = $root.groupproto.SenderChainKey.fromObject(object.senderChainKey);
1508
+ }
1509
+ if (object.senderSigningKey != null) {
1510
+ if (typeof object.senderSigningKey !== "object")
1511
+ throw TypeError(".groupproto.SenderKeyStateStructure.senderSigningKey: object expected");
1512
+ message.senderSigningKey = $root.groupproto.SenderSigningKey.fromObject(object.senderSigningKey);
1513
+ }
1514
+ if (object.senderMessageKeys) {
1515
+ if (!Array.isArray(object.senderMessageKeys))
1516
+ throw TypeError(".groupproto.SenderKeyStateStructure.senderMessageKeys: array expected");
1517
+ message.senderMessageKeys = [];
1518
+ for (var i = 0; i < object.senderMessageKeys.length; ++i) {
1519
+ if (typeof object.senderMessageKeys[i] !== "object")
1520
+ throw TypeError(".groupproto.SenderKeyStateStructure.senderMessageKeys: object expected");
1521
+ message.senderMessageKeys[i] = $root.groupproto.SenderMessageKey.fromObject(object.senderMessageKeys[i]);
1522
+ }
1523
+ }
1524
+ return message;
1525
+ };
1526
+ /**
1527
+ * Creates a plain object from a SenderKeyStateStructure message. Also converts values to other types if specified.
1528
+ * @function toObject
1529
+ * @memberof groupproto.SenderKeyStateStructure
1530
+ * @static
1531
+ * @param {groupproto.SenderKeyStateStructure} message SenderKeyStateStructure
1532
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
1533
+ * @returns {Object.<string,*>} Plain object
1534
+ */
1535
+ SenderKeyStateStructure.toObject = function toObject(message, options) {
1536
+ if (!options)
1537
+ options = {};
1538
+ var object = {};
1539
+ if (options.arrays || options.defaults)
1540
+ object.senderMessageKeys = [];
1541
+ if (message.senderKeyId != null && message.hasOwnProperty("senderKeyId")) {
1542
+ object.senderKeyId = message.senderKeyId;
1543
+ if (options.oneofs)
1544
+ object._senderKeyId = "senderKeyId";
1545
+ }
1546
+ if (message.senderChainKey != null && message.hasOwnProperty("senderChainKey")) {
1547
+ object.senderChainKey = $root.groupproto.SenderChainKey.toObject(message.senderChainKey, options);
1548
+ if (options.oneofs)
1549
+ object._senderChainKey = "senderChainKey";
1550
+ }
1551
+ if (message.senderSigningKey != null && message.hasOwnProperty("senderSigningKey")) {
1552
+ object.senderSigningKey = $root.groupproto.SenderSigningKey.toObject(message.senderSigningKey, options);
1553
+ if (options.oneofs)
1554
+ object._senderSigningKey = "senderSigningKey";
1555
+ }
1556
+ if (message.senderMessageKeys && message.senderMessageKeys.length) {
1557
+ object.senderMessageKeys = [];
1558
+ for (var j = 0; j < message.senderMessageKeys.length; ++j)
1559
+ object.senderMessageKeys[j] = $root.groupproto.SenderMessageKey.toObject(message.senderMessageKeys[j], options);
1560
+ }
1561
+ return object;
1562
+ };
1563
+ /**
1564
+ * Converts this SenderKeyStateStructure to JSON.
1565
+ * @function toJSON
1566
+ * @memberof groupproto.SenderKeyStateStructure
1567
+ * @instance
1568
+ * @returns {Object.<string,*>} JSON object
1569
+ */
1570
+ SenderKeyStateStructure.prototype.toJSON = function toJSON() {
1571
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
1572
+ };
1573
+ return SenderKeyStateStructure;
1574
+ })();
1575
+ groupproto.SenderKeyRecordStructure = (function() {
1576
+ /**
1577
+ * Properties of a SenderKeyRecordStructure.
1578
+ * @memberof groupproto
1579
+ * @interface ISenderKeyRecordStructure
1580
+ * @property {Array.<groupproto.ISenderKeyStateStructure>|null} [senderKeyStates] SenderKeyRecordStructure senderKeyStates
1581
+ */
1582
+ /**
1583
+ * Constructs a new SenderKeyRecordStructure.
1584
+ * @memberof groupproto
1585
+ * @classdesc Represents a SenderKeyRecordStructure.
1586
+ * @implements ISenderKeyRecordStructure
1587
+ * @constructor
1588
+ * @param {groupproto.ISenderKeyRecordStructure=} [properties] Properties to set
1589
+ */
1590
+ function SenderKeyRecordStructure(properties) {
1591
+ this.senderKeyStates = [];
1592
+ if (properties)
1593
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
1594
+ if (properties[keys[i]] != null)
1595
+ this[keys[i]] = properties[keys[i]];
1596
+ }
1597
+ /**
1598
+ * SenderKeyRecordStructure senderKeyStates.
1599
+ * @member {Array.<groupproto.ISenderKeyStateStructure>} senderKeyStates
1600
+ * @memberof groupproto.SenderKeyRecordStructure
1601
+ * @instance
1602
+ */
1603
+ SenderKeyRecordStructure.prototype.senderKeyStates = $util.emptyArray;
1604
+ /**
1605
+ * Creates a new SenderKeyRecordStructure instance using the specified properties.
1606
+ * @function create
1607
+ * @memberof groupproto.SenderKeyRecordStructure
1608
+ * @static
1609
+ * @param {groupproto.ISenderKeyRecordStructure=} [properties] Properties to set
1610
+ * @returns {groupproto.SenderKeyRecordStructure} SenderKeyRecordStructure instance
1611
+ */
1612
+ SenderKeyRecordStructure.create = function create(properties) {
1613
+ return new SenderKeyRecordStructure(properties);
1614
+ };
1615
+ /**
1616
+ * Encodes the specified SenderKeyRecordStructure message. Does not implicitly {@link groupproto.SenderKeyRecordStructure.verify|verify} messages.
1617
+ * @function encode
1618
+ * @memberof groupproto.SenderKeyRecordStructure
1619
+ * @static
1620
+ * @param {groupproto.ISenderKeyRecordStructure} message SenderKeyRecordStructure message or plain object to encode
1621
+ * @param {$protobuf.Writer} [writer] Writer to encode to
1622
+ * @returns {$protobuf.Writer} Writer
1623
+ */
1624
+ SenderKeyRecordStructure.encode = function encode(message, writer) {
1625
+ if (!writer)
1626
+ writer = $Writer.create();
1627
+ if (message.senderKeyStates != null && message.senderKeyStates.length)
1628
+ for (var i = 0; i < message.senderKeyStates.length; ++i)
1629
+ $root.groupproto.SenderKeyStateStructure.encode(message.senderKeyStates[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
1630
+ return writer;
1631
+ };
1632
+ /**
1633
+ * Encodes the specified SenderKeyRecordStructure message, length delimited. Does not implicitly {@link groupproto.SenderKeyRecordStructure.verify|verify} messages.
1634
+ * @function encodeDelimited
1635
+ * @memberof groupproto.SenderKeyRecordStructure
1636
+ * @static
1637
+ * @param {groupproto.ISenderKeyRecordStructure} message SenderKeyRecordStructure message or plain object to encode
1638
+ * @param {$protobuf.Writer} [writer] Writer to encode to
1639
+ * @returns {$protobuf.Writer} Writer
1640
+ */
1641
+ SenderKeyRecordStructure.encodeDelimited = function encodeDelimited(message, writer) {
1642
+ return this.encode(message, writer).ldelim();
1643
+ };
1644
+ /**
1645
+ * Decodes a SenderKeyRecordStructure message from the specified reader or buffer.
1646
+ * @function decode
1647
+ * @memberof groupproto.SenderKeyRecordStructure
1648
+ * @static
1649
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
1650
+ * @param {number} [length] Message length if known beforehand
1651
+ * @returns {groupproto.SenderKeyRecordStructure} SenderKeyRecordStructure
1652
+ * @throws {Error} If the payload is not a reader or valid buffer
1653
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
1654
+ */
1655
+ SenderKeyRecordStructure.decode = function decode(reader, length) {
1656
+ if (!(reader instanceof $Reader))
1657
+ reader = $Reader.create(reader);
1658
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.groupproto.SenderKeyRecordStructure();
1659
+ while (reader.pos < end) {
1660
+ var tag = reader.uint32();
1661
+ switch (tag >>> 3) {
1662
+ case 1:
1663
+ if (!(message.senderKeyStates && message.senderKeyStates.length))
1664
+ message.senderKeyStates = [];
1665
+ message.senderKeyStates.push($root.groupproto.SenderKeyStateStructure.decode(reader, reader.uint32()));
1666
+ break;
1667
+ default:
1668
+ reader.skipType(tag & 7);
1669
+ break;
1670
+ }
1671
+ }
1672
+ return message;
1673
+ };
1674
+ /**
1675
+ * Decodes a SenderKeyRecordStructure message from the specified reader or buffer, length delimited.
1676
+ * @function decodeDelimited
1677
+ * @memberof groupproto.SenderKeyRecordStructure
1678
+ * @static
1679
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
1680
+ * @returns {groupproto.SenderKeyRecordStructure} SenderKeyRecordStructure
1681
+ * @throws {Error} If the payload is not a reader or valid buffer
1682
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
1683
+ */
1684
+ SenderKeyRecordStructure.decodeDelimited = function decodeDelimited(reader) {
1685
+ if (!(reader instanceof $Reader))
1686
+ reader = new $Reader(reader);
1687
+ return this.decode(reader, reader.uint32());
1688
+ };
1689
+ /**
1690
+ * Verifies a SenderKeyRecordStructure message.
1691
+ * @function verify
1692
+ * @memberof groupproto.SenderKeyRecordStructure
1693
+ * @static
1694
+ * @param {Object.<string,*>} message Plain object to verify
1695
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
1696
+ */
1697
+ SenderKeyRecordStructure.verify = function verify(message) {
1698
+ if (typeof message !== "object" || message === null)
1699
+ return "object expected";
1700
+ if (message.senderKeyStates != null && message.hasOwnProperty("senderKeyStates")) {
1701
+ if (!Array.isArray(message.senderKeyStates))
1702
+ return "senderKeyStates: array expected";
1703
+ for (var i = 0; i < message.senderKeyStates.length; ++i) {
1704
+ var error = $root.groupproto.SenderKeyStateStructure.verify(message.senderKeyStates[i]);
1705
+ if (error)
1706
+ return "senderKeyStates." + error;
1707
+ }
1708
+ }
1709
+ return null;
1710
+ };
1711
+ /**
1712
+ * Creates a SenderKeyRecordStructure message from a plain object. Also converts values to their respective internal types.
1713
+ * @function fromObject
1714
+ * @memberof groupproto.SenderKeyRecordStructure
1715
+ * @static
1716
+ * @param {Object.<string,*>} object Plain object
1717
+ * @returns {groupproto.SenderKeyRecordStructure} SenderKeyRecordStructure
1718
+ */
1719
+ SenderKeyRecordStructure.fromObject = function fromObject(object) {
1720
+ if (object instanceof $root.groupproto.SenderKeyRecordStructure)
1721
+ return object;
1722
+ var message = new $root.groupproto.SenderKeyRecordStructure();
1723
+ if (object.senderKeyStates) {
1724
+ if (!Array.isArray(object.senderKeyStates))
1725
+ throw TypeError(".groupproto.SenderKeyRecordStructure.senderKeyStates: array expected");
1726
+ message.senderKeyStates = [];
1727
+ for (var i = 0; i < object.senderKeyStates.length; ++i) {
1728
+ if (typeof object.senderKeyStates[i] !== "object")
1729
+ throw TypeError(".groupproto.SenderKeyRecordStructure.senderKeyStates: object expected");
1730
+ message.senderKeyStates[i] = $root.groupproto.SenderKeyStateStructure.fromObject(object.senderKeyStates[i]);
1731
+ }
1732
+ }
1733
+ return message;
1734
+ };
1735
+ /**
1736
+ * Creates a plain object from a SenderKeyRecordStructure message. Also converts values to other types if specified.
1737
+ * @function toObject
1738
+ * @memberof groupproto.SenderKeyRecordStructure
1739
+ * @static
1740
+ * @param {groupproto.SenderKeyRecordStructure} message SenderKeyRecordStructure
1741
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
1742
+ * @returns {Object.<string,*>} Plain object
1743
+ */
1744
+ SenderKeyRecordStructure.toObject = function toObject(message, options) {
1745
+ if (!options)
1746
+ options = {};
1747
+ var object = {};
1748
+ if (options.arrays || options.defaults)
1749
+ object.senderKeyStates = [];
1750
+ if (message.senderKeyStates && message.senderKeyStates.length) {
1751
+ object.senderKeyStates = [];
1752
+ for (var j = 0; j < message.senderKeyStates.length; ++j)
1753
+ object.senderKeyStates[j] = $root.groupproto.SenderKeyStateStructure.toObject(message.senderKeyStates[j], options);
1754
+ }
1755
+ return object;
1756
+ };
1757
+ /**
1758
+ * Converts this SenderKeyRecordStructure to JSON.
1759
+ * @function toJSON
1760
+ * @memberof groupproto.SenderKeyRecordStructure
1761
+ * @instance
1762
+ * @returns {Object.<string,*>} JSON object
1763
+ */
1764
+ SenderKeyRecordStructure.prototype.toJSON = function toJSON() {
1765
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
1766
+ };
1767
+ return SenderKeyRecordStructure;
1768
+ })();
1769
+ return groupproto;
1770
+ })();
1771
+ module.exports = $root;