Path: blob/master/node_modules/@adiwajshing/baileys/WASignalGroup/GroupProtocol.js
1126 views
/*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/1"use strict";23var $protobuf = require("protobufjs/minimal");45// Common aliases6var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;78// Exported root namespace9var $root = $protobuf.roots["default"] || ($protobuf.roots["default"] = {});1011$root.groupproto = (function() {1213/**14* Namespace groupproto.15* @exports groupproto16* @namespace17*/18var groupproto = {};1920groupproto.SenderKeyMessage = (function() {2122/**23* Properties of a SenderKeyMessage.24* @memberof groupproto25* @interface ISenderKeyMessage26* @property {number|null} [id] SenderKeyMessage id27* @property {number|null} [iteration] SenderKeyMessage iteration28* @property {Uint8Array|null} [ciphertext] SenderKeyMessage ciphertext29*/3031/**32* Constructs a new SenderKeyMessage.33* @memberof groupproto34* @classdesc Represents a SenderKeyMessage.35* @implements ISenderKeyMessage36* @constructor37* @param {groupproto.ISenderKeyMessage=} [properties] Properties to set38*/39function SenderKeyMessage(properties) {40if (properties)41for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)42if (properties[keys[i]] != null)43this[keys[i]] = properties[keys[i]];44}4546/**47* SenderKeyMessage id.48* @member {number} id49* @memberof groupproto.SenderKeyMessage50* @instance51*/52SenderKeyMessage.prototype.id = 0;5354/**55* SenderKeyMessage iteration.56* @member {number} iteration57* @memberof groupproto.SenderKeyMessage58* @instance59*/60SenderKeyMessage.prototype.iteration = 0;6162/**63* SenderKeyMessage ciphertext.64* @member {Uint8Array} ciphertext65* @memberof groupproto.SenderKeyMessage66* @instance67*/68SenderKeyMessage.prototype.ciphertext = $util.newBuffer([]);6970/**71* Creates a new SenderKeyMessage instance using the specified properties.72* @function create73* @memberof groupproto.SenderKeyMessage74* @static75* @param {groupproto.ISenderKeyMessage=} [properties] Properties to set76* @returns {groupproto.SenderKeyMessage} SenderKeyMessage instance77*/78SenderKeyMessage.create = function create(properties) {79return new SenderKeyMessage(properties);80};8182/**83* Encodes the specified SenderKeyMessage message. Does not implicitly {@link groupproto.SenderKeyMessage.verify|verify} messages.84* @function encode85* @memberof groupproto.SenderKeyMessage86* @static87* @param {groupproto.ISenderKeyMessage} message SenderKeyMessage message or plain object to encode88* @param {$protobuf.Writer} [writer] Writer to encode to89* @returns {$protobuf.Writer} Writer90*/91SenderKeyMessage.encode = function encode(message, writer) {92if (!writer)93writer = $Writer.create();94if (message.id != null && Object.hasOwnProperty.call(message, "id"))95writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.id);96if (message.iteration != null && Object.hasOwnProperty.call(message, "iteration"))97writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.iteration);98if (message.ciphertext != null && Object.hasOwnProperty.call(message, "ciphertext"))99writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.ciphertext);100return writer;101};102103/**104* Encodes the specified SenderKeyMessage message, length delimited. Does not implicitly {@link groupproto.SenderKeyMessage.verify|verify} messages.105* @function encodeDelimited106* @memberof groupproto.SenderKeyMessage107* @static108* @param {groupproto.ISenderKeyMessage} message SenderKeyMessage message or plain object to encode109* @param {$protobuf.Writer} [writer] Writer to encode to110* @returns {$protobuf.Writer} Writer111*/112SenderKeyMessage.encodeDelimited = function encodeDelimited(message, writer) {113return this.encode(message, writer).ldelim();114};115116/**117* Decodes a SenderKeyMessage message from the specified reader or buffer.118* @function decode119* @memberof groupproto.SenderKeyMessage120* @static121* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from122* @param {number} [length] Message length if known beforehand123* @returns {groupproto.SenderKeyMessage} SenderKeyMessage124* @throws {Error} If the payload is not a reader or valid buffer125* @throws {$protobuf.util.ProtocolError} If required fields are missing126*/127SenderKeyMessage.decode = function decode(reader, length) {128if (!(reader instanceof $Reader))129reader = $Reader.create(reader);130var end = length === undefined ? reader.len : reader.pos + length, message = new $root.groupproto.SenderKeyMessage();131while (reader.pos < end) {132var tag = reader.uint32();133switch (tag >>> 3) {134case 1:135message.id = reader.uint32();136break;137case 2:138message.iteration = reader.uint32();139break;140case 3:141message.ciphertext = reader.bytes();142break;143default:144reader.skipType(tag & 7);145break;146}147}148return message;149};150151/**152* Decodes a SenderKeyMessage message from the specified reader or buffer, length delimited.153* @function decodeDelimited154* @memberof groupproto.SenderKeyMessage155* @static156* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from157* @returns {groupproto.SenderKeyMessage} SenderKeyMessage158* @throws {Error} If the payload is not a reader or valid buffer159* @throws {$protobuf.util.ProtocolError} If required fields are missing160*/161SenderKeyMessage.decodeDelimited = function decodeDelimited(reader) {162if (!(reader instanceof $Reader))163reader = new $Reader(reader);164return this.decode(reader, reader.uint32());165};166167/**168* Verifies a SenderKeyMessage message.169* @function verify170* @memberof groupproto.SenderKeyMessage171* @static172* @param {Object.<string,*>} message Plain object to verify173* @returns {string|null} `null` if valid, otherwise the reason why it is not174*/175SenderKeyMessage.verify = function verify(message) {176if (typeof message !== "object" || message === null)177return "object expected";178if (message.id != null && message.hasOwnProperty("id"))179if (!$util.isInteger(message.id))180return "id: integer expected";181if (message.iteration != null && message.hasOwnProperty("iteration"))182if (!$util.isInteger(message.iteration))183return "iteration: integer expected";184if (message.ciphertext != null && message.hasOwnProperty("ciphertext"))185if (!(message.ciphertext && typeof message.ciphertext.length === "number" || $util.isString(message.ciphertext)))186return "ciphertext: buffer expected";187return null;188};189190/**191* Creates a SenderKeyMessage message from a plain object. Also converts values to their respective internal types.192* @function fromObject193* @memberof groupproto.SenderKeyMessage194* @static195* @param {Object.<string,*>} object Plain object196* @returns {groupproto.SenderKeyMessage} SenderKeyMessage197*/198SenderKeyMessage.fromObject = function fromObject(object) {199if (object instanceof $root.groupproto.SenderKeyMessage)200return object;201var message = new $root.groupproto.SenderKeyMessage();202if (object.id != null)203message.id = object.id >>> 0;204if (object.iteration != null)205message.iteration = object.iteration >>> 0;206if (object.ciphertext != null)207if (typeof object.ciphertext === "string")208$util.base64.decode(object.ciphertext, message.ciphertext = $util.newBuffer($util.base64.length(object.ciphertext)), 0);209else if (object.ciphertext.length)210message.ciphertext = object.ciphertext;211return message;212};213214/**215* Creates a plain object from a SenderKeyMessage message. Also converts values to other types if specified.216* @function toObject217* @memberof groupproto.SenderKeyMessage218* @static219* @param {groupproto.SenderKeyMessage} message SenderKeyMessage220* @param {$protobuf.IConversionOptions} [options] Conversion options221* @returns {Object.<string,*>} Plain object222*/223SenderKeyMessage.toObject = function toObject(message, options) {224if (!options)225options = {};226var object = {};227if (options.defaults) {228object.id = 0;229object.iteration = 0;230if (options.bytes === String)231object.ciphertext = "";232else {233object.ciphertext = [];234if (options.bytes !== Array)235object.ciphertext = $util.newBuffer(object.ciphertext);236}237}238if (message.id != null && message.hasOwnProperty("id"))239object.id = message.id;240if (message.iteration != null && message.hasOwnProperty("iteration"))241object.iteration = message.iteration;242if (message.ciphertext != null && message.hasOwnProperty("ciphertext"))243object.ciphertext = options.bytes === String ? $util.base64.encode(message.ciphertext, 0, message.ciphertext.length) : options.bytes === Array ? Array.prototype.slice.call(message.ciphertext) : message.ciphertext;244return object;245};246247/**248* Converts this SenderKeyMessage to JSON.249* @function toJSON250* @memberof groupproto.SenderKeyMessage251* @instance252* @returns {Object.<string,*>} JSON object253*/254SenderKeyMessage.prototype.toJSON = function toJSON() {255return this.constructor.toObject(this, $protobuf.util.toJSONOptions);256};257258return SenderKeyMessage;259})();260261groupproto.SenderKeyDistributionMessage = (function() {262263/**264* Properties of a SenderKeyDistributionMessage.265* @memberof groupproto266* @interface ISenderKeyDistributionMessage267* @property {number|null} [id] SenderKeyDistributionMessage id268* @property {number|null} [iteration] SenderKeyDistributionMessage iteration269* @property {Uint8Array|null} [chainKey] SenderKeyDistributionMessage chainKey270* @property {Uint8Array|null} [signingKey] SenderKeyDistributionMessage signingKey271*/272273/**274* Constructs a new SenderKeyDistributionMessage.275* @memberof groupproto276* @classdesc Represents a SenderKeyDistributionMessage.277* @implements ISenderKeyDistributionMessage278* @constructor279* @param {groupproto.ISenderKeyDistributionMessage=} [properties] Properties to set280*/281function SenderKeyDistributionMessage(properties) {282if (properties)283for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)284if (properties[keys[i]] != null)285this[keys[i]] = properties[keys[i]];286}287288/**289* SenderKeyDistributionMessage id.290* @member {number} id291* @memberof groupproto.SenderKeyDistributionMessage292* @instance293*/294SenderKeyDistributionMessage.prototype.id = 0;295296/**297* SenderKeyDistributionMessage iteration.298* @member {number} iteration299* @memberof groupproto.SenderKeyDistributionMessage300* @instance301*/302SenderKeyDistributionMessage.prototype.iteration = 0;303304/**305* SenderKeyDistributionMessage chainKey.306* @member {Uint8Array} chainKey307* @memberof groupproto.SenderKeyDistributionMessage308* @instance309*/310SenderKeyDistributionMessage.prototype.chainKey = $util.newBuffer([]);311312/**313* SenderKeyDistributionMessage signingKey.314* @member {Uint8Array} signingKey315* @memberof groupproto.SenderKeyDistributionMessage316* @instance317*/318SenderKeyDistributionMessage.prototype.signingKey = $util.newBuffer([]);319320/**321* Creates a new SenderKeyDistributionMessage instance using the specified properties.322* @function create323* @memberof groupproto.SenderKeyDistributionMessage324* @static325* @param {groupproto.ISenderKeyDistributionMessage=} [properties] Properties to set326* @returns {groupproto.SenderKeyDistributionMessage} SenderKeyDistributionMessage instance327*/328SenderKeyDistributionMessage.create = function create(properties) {329return new SenderKeyDistributionMessage(properties);330};331332/**333* Encodes the specified SenderKeyDistributionMessage message. Does not implicitly {@link groupproto.SenderKeyDistributionMessage.verify|verify} messages.334* @function encode335* @memberof groupproto.SenderKeyDistributionMessage336* @static337* @param {groupproto.ISenderKeyDistributionMessage} message SenderKeyDistributionMessage message or plain object to encode338* @param {$protobuf.Writer} [writer] Writer to encode to339* @returns {$protobuf.Writer} Writer340*/341SenderKeyDistributionMessage.encode = function encode(message, writer) {342if (!writer)343writer = $Writer.create();344if (message.id != null && Object.hasOwnProperty.call(message, "id"))345writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.id);346if (message.iteration != null && Object.hasOwnProperty.call(message, "iteration"))347writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.iteration);348if (message.chainKey != null && Object.hasOwnProperty.call(message, "chainKey"))349writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.chainKey);350if (message.signingKey != null && Object.hasOwnProperty.call(message, "signingKey"))351writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.signingKey);352return writer;353};354355/**356* Encodes the specified SenderKeyDistributionMessage message, length delimited. Does not implicitly {@link groupproto.SenderKeyDistributionMessage.verify|verify} messages.357* @function encodeDelimited358* @memberof groupproto.SenderKeyDistributionMessage359* @static360* @param {groupproto.ISenderKeyDistributionMessage} message SenderKeyDistributionMessage message or plain object to encode361* @param {$protobuf.Writer} [writer] Writer to encode to362* @returns {$protobuf.Writer} Writer363*/364SenderKeyDistributionMessage.encodeDelimited = function encodeDelimited(message, writer) {365return this.encode(message, writer).ldelim();366};367368/**369* Decodes a SenderKeyDistributionMessage message from the specified reader or buffer.370* @function decode371* @memberof groupproto.SenderKeyDistributionMessage372* @static373* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from374* @param {number} [length] Message length if known beforehand375* @returns {groupproto.SenderKeyDistributionMessage} SenderKeyDistributionMessage376* @throws {Error} If the payload is not a reader or valid buffer377* @throws {$protobuf.util.ProtocolError} If required fields are missing378*/379SenderKeyDistributionMessage.decode = function decode(reader, length) {380if (!(reader instanceof $Reader))381reader = $Reader.create(reader);382var end = length === undefined ? reader.len : reader.pos + length, message = new $root.groupproto.SenderKeyDistributionMessage();383while (reader.pos < end) {384var tag = reader.uint32();385switch (tag >>> 3) {386case 1:387message.id = reader.uint32();388break;389case 2:390message.iteration = reader.uint32();391break;392case 3:393message.chainKey = reader.bytes();394break;395case 4:396message.signingKey = reader.bytes();397break;398default:399reader.skipType(tag & 7);400break;401}402}403return message;404};405406/**407* Decodes a SenderKeyDistributionMessage message from the specified reader or buffer, length delimited.408* @function decodeDelimited409* @memberof groupproto.SenderKeyDistributionMessage410* @static411* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from412* @returns {groupproto.SenderKeyDistributionMessage} SenderKeyDistributionMessage413* @throws {Error} If the payload is not a reader or valid buffer414* @throws {$protobuf.util.ProtocolError} If required fields are missing415*/416SenderKeyDistributionMessage.decodeDelimited = function decodeDelimited(reader) {417if (!(reader instanceof $Reader))418reader = new $Reader(reader);419return this.decode(reader, reader.uint32());420};421422/**423* Verifies a SenderKeyDistributionMessage message.424* @function verify425* @memberof groupproto.SenderKeyDistributionMessage426* @static427* @param {Object.<string,*>} message Plain object to verify428* @returns {string|null} `null` if valid, otherwise the reason why it is not429*/430SenderKeyDistributionMessage.verify = function verify(message) {431if (typeof message !== "object" || message === null)432return "object expected";433if (message.id != null && message.hasOwnProperty("id"))434if (!$util.isInteger(message.id))435return "id: integer expected";436if (message.iteration != null && message.hasOwnProperty("iteration"))437if (!$util.isInteger(message.iteration))438return "iteration: integer expected";439if (message.chainKey != null && message.hasOwnProperty("chainKey"))440if (!(message.chainKey && typeof message.chainKey.length === "number" || $util.isString(message.chainKey)))441return "chainKey: buffer expected";442if (message.signingKey != null && message.hasOwnProperty("signingKey"))443if (!(message.signingKey && typeof message.signingKey.length === "number" || $util.isString(message.signingKey)))444return "signingKey: buffer expected";445return null;446};447448/**449* Creates a SenderKeyDistributionMessage message from a plain object. Also converts values to their respective internal types.450* @function fromObject451* @memberof groupproto.SenderKeyDistributionMessage452* @static453* @param {Object.<string,*>} object Plain object454* @returns {groupproto.SenderKeyDistributionMessage} SenderKeyDistributionMessage455*/456SenderKeyDistributionMessage.fromObject = function fromObject(object) {457if (object instanceof $root.groupproto.SenderKeyDistributionMessage)458return object;459var message = new $root.groupproto.SenderKeyDistributionMessage();460if (object.id != null)461message.id = object.id >>> 0;462if (object.iteration != null)463message.iteration = object.iteration >>> 0;464if (object.chainKey != null)465if (typeof object.chainKey === "string")466$util.base64.decode(object.chainKey, message.chainKey = $util.newBuffer($util.base64.length(object.chainKey)), 0);467else if (object.chainKey.length)468message.chainKey = object.chainKey;469if (object.signingKey != null)470if (typeof object.signingKey === "string")471$util.base64.decode(object.signingKey, message.signingKey = $util.newBuffer($util.base64.length(object.signingKey)), 0);472else if (object.signingKey.length)473message.signingKey = object.signingKey;474return message;475};476477/**478* Creates a plain object from a SenderKeyDistributionMessage message. Also converts values to other types if specified.479* @function toObject480* @memberof groupproto.SenderKeyDistributionMessage481* @static482* @param {groupproto.SenderKeyDistributionMessage} message SenderKeyDistributionMessage483* @param {$protobuf.IConversionOptions} [options] Conversion options484* @returns {Object.<string,*>} Plain object485*/486SenderKeyDistributionMessage.toObject = function toObject(message, options) {487if (!options)488options = {};489var object = {};490if (options.defaults) {491object.id = 0;492object.iteration = 0;493if (options.bytes === String)494object.chainKey = "";495else {496object.chainKey = [];497if (options.bytes !== Array)498object.chainKey = $util.newBuffer(object.chainKey);499}500if (options.bytes === String)501object.signingKey = "";502else {503object.signingKey = [];504if (options.bytes !== Array)505object.signingKey = $util.newBuffer(object.signingKey);506}507}508if (message.id != null && message.hasOwnProperty("id"))509object.id = message.id;510if (message.iteration != null && message.hasOwnProperty("iteration"))511object.iteration = message.iteration;512if (message.chainKey != null && message.hasOwnProperty("chainKey"))513object.chainKey = options.bytes === String ? $util.base64.encode(message.chainKey, 0, message.chainKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.chainKey) : message.chainKey;514if (message.signingKey != null && message.hasOwnProperty("signingKey"))515object.signingKey = options.bytes === String ? $util.base64.encode(message.signingKey, 0, message.signingKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.signingKey) : message.signingKey;516return object;517};518519/**520* Converts this SenderKeyDistributionMessage to JSON.521* @function toJSON522* @memberof groupproto.SenderKeyDistributionMessage523* @instance524* @returns {Object.<string,*>} JSON object525*/526SenderKeyDistributionMessage.prototype.toJSON = function toJSON() {527return this.constructor.toObject(this, $protobuf.util.toJSONOptions);528};529530return SenderKeyDistributionMessage;531})();532533groupproto.SenderChainKey = (function() {534535/**536* Properties of a SenderChainKey.537* @memberof groupproto538* @interface ISenderChainKey539* @property {number|null} [iteration] SenderChainKey iteration540* @property {Uint8Array|null} [seed] SenderChainKey seed541*/542543/**544* Constructs a new SenderChainKey.545* @memberof groupproto546* @classdesc Represents a SenderChainKey.547* @implements ISenderChainKey548* @constructor549* @param {groupproto.ISenderChainKey=} [properties] Properties to set550*/551function SenderChainKey(properties) {552if (properties)553for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)554if (properties[keys[i]] != null)555this[keys[i]] = properties[keys[i]];556}557558/**559* SenderChainKey iteration.560* @member {number} iteration561* @memberof groupproto.SenderChainKey562* @instance563*/564SenderChainKey.prototype.iteration = 0;565566/**567* SenderChainKey seed.568* @member {Uint8Array} seed569* @memberof groupproto.SenderChainKey570* @instance571*/572SenderChainKey.prototype.seed = $util.newBuffer([]);573574/**575* Creates a new SenderChainKey instance using the specified properties.576* @function create577* @memberof groupproto.SenderChainKey578* @static579* @param {groupproto.ISenderChainKey=} [properties] Properties to set580* @returns {groupproto.SenderChainKey} SenderChainKey instance581*/582SenderChainKey.create = function create(properties) {583return new SenderChainKey(properties);584};585586/**587* Encodes the specified SenderChainKey message. Does not implicitly {@link groupproto.SenderChainKey.verify|verify} messages.588* @function encode589* @memberof groupproto.SenderChainKey590* @static591* @param {groupproto.ISenderChainKey} message SenderChainKey message or plain object to encode592* @param {$protobuf.Writer} [writer] Writer to encode to593* @returns {$protobuf.Writer} Writer594*/595SenderChainKey.encode = function encode(message, writer) {596if (!writer)597writer = $Writer.create();598if (message.iteration != null && Object.hasOwnProperty.call(message, "iteration"))599writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.iteration);600if (message.seed != null && Object.hasOwnProperty.call(message, "seed"))601writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.seed);602return writer;603};604605/**606* Encodes the specified SenderChainKey message, length delimited. Does not implicitly {@link groupproto.SenderChainKey.verify|verify} messages.607* @function encodeDelimited608* @memberof groupproto.SenderChainKey609* @static610* @param {groupproto.ISenderChainKey} message SenderChainKey message or plain object to encode611* @param {$protobuf.Writer} [writer] Writer to encode to612* @returns {$protobuf.Writer} Writer613*/614SenderChainKey.encodeDelimited = function encodeDelimited(message, writer) {615return this.encode(message, writer).ldelim();616};617618/**619* Decodes a SenderChainKey message from the specified reader or buffer.620* @function decode621* @memberof groupproto.SenderChainKey622* @static623* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from624* @param {number} [length] Message length if known beforehand625* @returns {groupproto.SenderChainKey} SenderChainKey626* @throws {Error} If the payload is not a reader or valid buffer627* @throws {$protobuf.util.ProtocolError} If required fields are missing628*/629SenderChainKey.decode = function decode(reader, length) {630if (!(reader instanceof $Reader))631reader = $Reader.create(reader);632var end = length === undefined ? reader.len : reader.pos + length, message = new $root.groupproto.SenderChainKey();633while (reader.pos < end) {634var tag = reader.uint32();635switch (tag >>> 3) {636case 1:637message.iteration = reader.uint32();638break;639case 2:640message.seed = reader.bytes();641break;642default:643reader.skipType(tag & 7);644break;645}646}647return message;648};649650/**651* Decodes a SenderChainKey message from the specified reader or buffer, length delimited.652* @function decodeDelimited653* @memberof groupproto.SenderChainKey654* @static655* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from656* @returns {groupproto.SenderChainKey} SenderChainKey657* @throws {Error} If the payload is not a reader or valid buffer658* @throws {$protobuf.util.ProtocolError} If required fields are missing659*/660SenderChainKey.decodeDelimited = function decodeDelimited(reader) {661if (!(reader instanceof $Reader))662reader = new $Reader(reader);663return this.decode(reader, reader.uint32());664};665666/**667* Verifies a SenderChainKey message.668* @function verify669* @memberof groupproto.SenderChainKey670* @static671* @param {Object.<string,*>} message Plain object to verify672* @returns {string|null} `null` if valid, otherwise the reason why it is not673*/674SenderChainKey.verify = function verify(message) {675if (typeof message !== "object" || message === null)676return "object expected";677if (message.iteration != null && message.hasOwnProperty("iteration"))678if (!$util.isInteger(message.iteration))679return "iteration: integer expected";680if (message.seed != null && message.hasOwnProperty("seed"))681if (!(message.seed && typeof message.seed.length === "number" || $util.isString(message.seed)))682return "seed: buffer expected";683return null;684};685686/**687* Creates a SenderChainKey message from a plain object. Also converts values to their respective internal types.688* @function fromObject689* @memberof groupproto.SenderChainKey690* @static691* @param {Object.<string,*>} object Plain object692* @returns {groupproto.SenderChainKey} SenderChainKey693*/694SenderChainKey.fromObject = function fromObject(object) {695if (object instanceof $root.groupproto.SenderChainKey)696return object;697var message = new $root.groupproto.SenderChainKey();698if (object.iteration != null)699message.iteration = object.iteration >>> 0;700if (object.seed != null)701if (typeof object.seed === "string")702$util.base64.decode(object.seed, message.seed = $util.newBuffer($util.base64.length(object.seed)), 0);703else if (object.seed.length)704message.seed = object.seed;705return message;706};707708/**709* Creates a plain object from a SenderChainKey message. Also converts values to other types if specified.710* @function toObject711* @memberof groupproto.SenderChainKey712* @static713* @param {groupproto.SenderChainKey} message SenderChainKey714* @param {$protobuf.IConversionOptions} [options] Conversion options715* @returns {Object.<string,*>} Plain object716*/717SenderChainKey.toObject = function toObject(message, options) {718if (!options)719options = {};720var object = {};721if (options.defaults) {722object.iteration = 0;723if (options.bytes === String)724object.seed = "";725else {726object.seed = [];727if (options.bytes !== Array)728object.seed = $util.newBuffer(object.seed);729}730}731if (message.iteration != null && message.hasOwnProperty("iteration"))732object.iteration = message.iteration;733if (message.seed != null && message.hasOwnProperty("seed"))734object.seed = options.bytes === String ? $util.base64.encode(message.seed, 0, message.seed.length) : options.bytes === Array ? Array.prototype.slice.call(message.seed) : message.seed;735return object;736};737738/**739* Converts this SenderChainKey to JSON.740* @function toJSON741* @memberof groupproto.SenderChainKey742* @instance743* @returns {Object.<string,*>} JSON object744*/745SenderChainKey.prototype.toJSON = function toJSON() {746return this.constructor.toObject(this, $protobuf.util.toJSONOptions);747};748749return SenderChainKey;750})();751752groupproto.SenderMessageKey = (function() {753754/**755* Properties of a SenderMessageKey.756* @memberof groupproto757* @interface ISenderMessageKey758* @property {number|null} [iteration] SenderMessageKey iteration759* @property {Uint8Array|null} [seed] SenderMessageKey seed760*/761762/**763* Constructs a new SenderMessageKey.764* @memberof groupproto765* @classdesc Represents a SenderMessageKey.766* @implements ISenderMessageKey767* @constructor768* @param {groupproto.ISenderMessageKey=} [properties] Properties to set769*/770function SenderMessageKey(properties) {771if (properties)772for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)773if (properties[keys[i]] != null)774this[keys[i]] = properties[keys[i]];775}776777/**778* SenderMessageKey iteration.779* @member {number} iteration780* @memberof groupproto.SenderMessageKey781* @instance782*/783SenderMessageKey.prototype.iteration = 0;784785/**786* SenderMessageKey seed.787* @member {Uint8Array} seed788* @memberof groupproto.SenderMessageKey789* @instance790*/791SenderMessageKey.prototype.seed = $util.newBuffer([]);792793/**794* Creates a new SenderMessageKey instance using the specified properties.795* @function create796* @memberof groupproto.SenderMessageKey797* @static798* @param {groupproto.ISenderMessageKey=} [properties] Properties to set799* @returns {groupproto.SenderMessageKey} SenderMessageKey instance800*/801SenderMessageKey.create = function create(properties) {802return new SenderMessageKey(properties);803};804805/**806* Encodes the specified SenderMessageKey message. Does not implicitly {@link groupproto.SenderMessageKey.verify|verify} messages.807* @function encode808* @memberof groupproto.SenderMessageKey809* @static810* @param {groupproto.ISenderMessageKey} message SenderMessageKey message or plain object to encode811* @param {$protobuf.Writer} [writer] Writer to encode to812* @returns {$protobuf.Writer} Writer813*/814SenderMessageKey.encode = function encode(message, writer) {815if (!writer)816writer = $Writer.create();817if (message.iteration != null && Object.hasOwnProperty.call(message, "iteration"))818writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.iteration);819if (message.seed != null && Object.hasOwnProperty.call(message, "seed"))820writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.seed);821return writer;822};823824/**825* Encodes the specified SenderMessageKey message, length delimited. Does not implicitly {@link groupproto.SenderMessageKey.verify|verify} messages.826* @function encodeDelimited827* @memberof groupproto.SenderMessageKey828* @static829* @param {groupproto.ISenderMessageKey} message SenderMessageKey message or plain object to encode830* @param {$protobuf.Writer} [writer] Writer to encode to831* @returns {$protobuf.Writer} Writer832*/833SenderMessageKey.encodeDelimited = function encodeDelimited(message, writer) {834return this.encode(message, writer).ldelim();835};836837/**838* Decodes a SenderMessageKey message from the specified reader or buffer.839* @function decode840* @memberof groupproto.SenderMessageKey841* @static842* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from843* @param {number} [length] Message length if known beforehand844* @returns {groupproto.SenderMessageKey} SenderMessageKey845* @throws {Error} If the payload is not a reader or valid buffer846* @throws {$protobuf.util.ProtocolError} If required fields are missing847*/848SenderMessageKey.decode = function decode(reader, length) {849if (!(reader instanceof $Reader))850reader = $Reader.create(reader);851var end = length === undefined ? reader.len : reader.pos + length, message = new $root.groupproto.SenderMessageKey();852while (reader.pos < end) {853var tag = reader.uint32();854switch (tag >>> 3) {855case 1:856message.iteration = reader.uint32();857break;858case 2:859message.seed = reader.bytes();860break;861default:862reader.skipType(tag & 7);863break;864}865}866return message;867};868869/**870* Decodes a SenderMessageKey message from the specified reader or buffer, length delimited.871* @function decodeDelimited872* @memberof groupproto.SenderMessageKey873* @static874* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from875* @returns {groupproto.SenderMessageKey} SenderMessageKey876* @throws {Error} If the payload is not a reader or valid buffer877* @throws {$protobuf.util.ProtocolError} If required fields are missing878*/879SenderMessageKey.decodeDelimited = function decodeDelimited(reader) {880if (!(reader instanceof $Reader))881reader = new $Reader(reader);882return this.decode(reader, reader.uint32());883};884885/**886* Verifies a SenderMessageKey message.887* @function verify888* @memberof groupproto.SenderMessageKey889* @static890* @param {Object.<string,*>} message Plain object to verify891* @returns {string|null} `null` if valid, otherwise the reason why it is not892*/893SenderMessageKey.verify = function verify(message) {894if (typeof message !== "object" || message === null)895return "object expected";896if (message.iteration != null && message.hasOwnProperty("iteration"))897if (!$util.isInteger(message.iteration))898return "iteration: integer expected";899if (message.seed != null && message.hasOwnProperty("seed"))900if (!(message.seed && typeof message.seed.length === "number" || $util.isString(message.seed)))901return "seed: buffer expected";902return null;903};904905/**906* Creates a SenderMessageKey message from a plain object. Also converts values to their respective internal types.907* @function fromObject908* @memberof groupproto.SenderMessageKey909* @static910* @param {Object.<string,*>} object Plain object911* @returns {groupproto.SenderMessageKey} SenderMessageKey912*/913SenderMessageKey.fromObject = function fromObject(object) {914if (object instanceof $root.groupproto.SenderMessageKey)915return object;916var message = new $root.groupproto.SenderMessageKey();917if (object.iteration != null)918message.iteration = object.iteration >>> 0;919if (object.seed != null)920if (typeof object.seed === "string")921$util.base64.decode(object.seed, message.seed = $util.newBuffer($util.base64.length(object.seed)), 0);922else if (object.seed.length)923message.seed = object.seed;924return message;925};926927/**928* Creates a plain object from a SenderMessageKey message. Also converts values to other types if specified.929* @function toObject930* @memberof groupproto.SenderMessageKey931* @static932* @param {groupproto.SenderMessageKey} message SenderMessageKey933* @param {$protobuf.IConversionOptions} [options] Conversion options934* @returns {Object.<string,*>} Plain object935*/936SenderMessageKey.toObject = function toObject(message, options) {937if (!options)938options = {};939var object = {};940if (options.defaults) {941object.iteration = 0;942if (options.bytes === String)943object.seed = "";944else {945object.seed = [];946if (options.bytes !== Array)947object.seed = $util.newBuffer(object.seed);948}949}950if (message.iteration != null && message.hasOwnProperty("iteration"))951object.iteration = message.iteration;952if (message.seed != null && message.hasOwnProperty("seed"))953object.seed = options.bytes === String ? $util.base64.encode(message.seed, 0, message.seed.length) : options.bytes === Array ? Array.prototype.slice.call(message.seed) : message.seed;954return object;955};956957/**958* Converts this SenderMessageKey to JSON.959* @function toJSON960* @memberof groupproto.SenderMessageKey961* @instance962* @returns {Object.<string,*>} JSON object963*/964SenderMessageKey.prototype.toJSON = function toJSON() {965return this.constructor.toObject(this, $protobuf.util.toJSONOptions);966};967968return SenderMessageKey;969})();970971groupproto.SenderSigningKey = (function() {972973/**974* Properties of a SenderSigningKey.975* @memberof groupproto976* @interface ISenderSigningKey977* @property {Uint8Array|null} ["public"] SenderSigningKey public978* @property {Uint8Array|null} ["private"] SenderSigningKey private979*/980981/**982* Constructs a new SenderSigningKey.983* @memberof groupproto984* @classdesc Represents a SenderSigningKey.985* @implements ISenderSigningKey986* @constructor987* @param {groupproto.ISenderSigningKey=} [properties] Properties to set988*/989function SenderSigningKey(properties) {990if (properties)991for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)992if (properties[keys[i]] != null)993this[keys[i]] = properties[keys[i]];994}995996/**997* SenderSigningKey public.998* @member {Uint8Array} public999* @memberof groupproto.SenderSigningKey1000* @instance1001*/1002SenderSigningKey.prototype["public"] = $util.newBuffer([]);10031004/**1005* SenderSigningKey private.1006* @member {Uint8Array} private1007* @memberof groupproto.SenderSigningKey1008* @instance1009*/1010SenderSigningKey.prototype["private"] = $util.newBuffer([]);10111012/**1013* Creates a new SenderSigningKey instance using the specified properties.1014* @function create1015* @memberof groupproto.SenderSigningKey1016* @static1017* @param {groupproto.ISenderSigningKey=} [properties] Properties to set1018* @returns {groupproto.SenderSigningKey} SenderSigningKey instance1019*/1020SenderSigningKey.create = function create(properties) {1021return new SenderSigningKey(properties);1022};10231024/**1025* Encodes the specified SenderSigningKey message. Does not implicitly {@link groupproto.SenderSigningKey.verify|verify} messages.1026* @function encode1027* @memberof groupproto.SenderSigningKey1028* @static1029* @param {groupproto.ISenderSigningKey} message SenderSigningKey message or plain object to encode1030* @param {$protobuf.Writer} [writer] Writer to encode to1031* @returns {$protobuf.Writer} Writer1032*/1033SenderSigningKey.encode = function encode(message, writer) {1034if (!writer)1035writer = $Writer.create();1036if (message["public"] != null && Object.hasOwnProperty.call(message, "public"))1037writer.uint32(/* id 1, wireType 2 =*/10).bytes(message["public"]);1038if (message["private"] != null && Object.hasOwnProperty.call(message, "private"))1039writer.uint32(/* id 2, wireType 2 =*/18).bytes(message["private"]);1040return writer;1041};10421043/**1044* Encodes the specified SenderSigningKey message, length delimited. Does not implicitly {@link groupproto.SenderSigningKey.verify|verify} messages.1045* @function encodeDelimited1046* @memberof groupproto.SenderSigningKey1047* @static1048* @param {groupproto.ISenderSigningKey} message SenderSigningKey message or plain object to encode1049* @param {$protobuf.Writer} [writer] Writer to encode to1050* @returns {$protobuf.Writer} Writer1051*/1052SenderSigningKey.encodeDelimited = function encodeDelimited(message, writer) {1053return this.encode(message, writer).ldelim();1054};10551056/**1057* Decodes a SenderSigningKey message from the specified reader or buffer.1058* @function decode1059* @memberof groupproto.SenderSigningKey1060* @static1061* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from1062* @param {number} [length] Message length if known beforehand1063* @returns {groupproto.SenderSigningKey} SenderSigningKey1064* @throws {Error} If the payload is not a reader or valid buffer1065* @throws {$protobuf.util.ProtocolError} If required fields are missing1066*/1067SenderSigningKey.decode = function decode(reader, length) {1068if (!(reader instanceof $Reader))1069reader = $Reader.create(reader);1070var end = length === undefined ? reader.len : reader.pos + length, message = new $root.groupproto.SenderSigningKey();1071while (reader.pos < end) {1072var tag = reader.uint32();1073switch (tag >>> 3) {1074case 1:1075message["public"] = reader.bytes();1076break;1077case 2:1078message["private"] = reader.bytes();1079break;1080default:1081reader.skipType(tag & 7);1082break;1083}1084}1085return message;1086};10871088/**1089* Decodes a SenderSigningKey message from the specified reader or buffer, length delimited.1090* @function decodeDelimited1091* @memberof groupproto.SenderSigningKey1092* @static1093* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from1094* @returns {groupproto.SenderSigningKey} SenderSigningKey1095* @throws {Error} If the payload is not a reader or valid buffer1096* @throws {$protobuf.util.ProtocolError} If required fields are missing1097*/1098SenderSigningKey.decodeDelimited = function decodeDelimited(reader) {1099if (!(reader instanceof $Reader))1100reader = new $Reader(reader);1101return this.decode(reader, reader.uint32());1102};11031104/**1105* Verifies a SenderSigningKey message.1106* @function verify1107* @memberof groupproto.SenderSigningKey1108* @static1109* @param {Object.<string,*>} message Plain object to verify1110* @returns {string|null} `null` if valid, otherwise the reason why it is not1111*/1112SenderSigningKey.verify = function verify(message) {1113if (typeof message !== "object" || message === null)1114return "object expected";1115if (message["public"] != null && message.hasOwnProperty("public"))1116if (!(message["public"] && typeof message["public"].length === "number" || $util.isString(message["public"])))1117return "public: buffer expected";1118if (message["private"] != null && message.hasOwnProperty("private"))1119if (!(message["private"] && typeof message["private"].length === "number" || $util.isString(message["private"])))1120return "private: buffer expected";1121return null;1122};11231124/**1125* Creates a SenderSigningKey message from a plain object. Also converts values to their respective internal types.1126* @function fromObject1127* @memberof groupproto.SenderSigningKey1128* @static1129* @param {Object.<string,*>} object Plain object1130* @returns {groupproto.SenderSigningKey} SenderSigningKey1131*/1132SenderSigningKey.fromObject = function fromObject(object) {1133if (object instanceof $root.groupproto.SenderSigningKey)1134return object;1135var message = new $root.groupproto.SenderSigningKey();1136if (object["public"] != null)1137if (typeof object["public"] === "string")1138$util.base64.decode(object["public"], message["public"] = $util.newBuffer($util.base64.length(object["public"])), 0);1139else if (object["public"].length)1140message["public"] = object["public"];1141if (object["private"] != null)1142if (typeof object["private"] === "string")1143$util.base64.decode(object["private"], message["private"] = $util.newBuffer($util.base64.length(object["private"])), 0);1144else if (object["private"].length)1145message["private"] = object["private"];1146return message;1147};11481149/**1150* Creates a plain object from a SenderSigningKey message. Also converts values to other types if specified.1151* @function toObject1152* @memberof groupproto.SenderSigningKey1153* @static1154* @param {groupproto.SenderSigningKey} message SenderSigningKey1155* @param {$protobuf.IConversionOptions} [options] Conversion options1156* @returns {Object.<string,*>} Plain object1157*/1158SenderSigningKey.toObject = function toObject(message, options) {1159if (!options)1160options = {};1161var object = {};1162if (options.defaults) {1163if (options.bytes === String)1164object["public"] = "";1165else {1166object["public"] = [];1167if (options.bytes !== Array)1168object["public"] = $util.newBuffer(object["public"]);1169}1170if (options.bytes === String)1171object["private"] = "";1172else {1173object["private"] = [];1174if (options.bytes !== Array)1175object["private"] = $util.newBuffer(object["private"]);1176}1177}1178if (message["public"] != null && message.hasOwnProperty("public"))1179object["public"] = options.bytes === String ? $util.base64.encode(message["public"], 0, message["public"].length) : options.bytes === Array ? Array.prototype.slice.call(message["public"]) : message["public"];1180if (message["private"] != null && message.hasOwnProperty("private"))1181object["private"] = options.bytes === String ? $util.base64.encode(message["private"], 0, message["private"].length) : options.bytes === Array ? Array.prototype.slice.call(message["private"]) : message["private"];1182return object;1183};11841185/**1186* Converts this SenderSigningKey to JSON.1187* @function toJSON1188* @memberof groupproto.SenderSigningKey1189* @instance1190* @returns {Object.<string,*>} JSON object1191*/1192SenderSigningKey.prototype.toJSON = function toJSON() {1193return this.constructor.toObject(this, $protobuf.util.toJSONOptions);1194};11951196return SenderSigningKey;1197})();11981199groupproto.SenderKeyStateStructure = (function() {12001201/**1202* Properties of a SenderKeyStateStructure.1203* @memberof groupproto1204* @interface ISenderKeyStateStructure1205* @property {number|null} [senderKeyId] SenderKeyStateStructure senderKeyId1206* @property {groupproto.ISenderChainKey|null} [senderChainKey] SenderKeyStateStructure senderChainKey1207* @property {groupproto.ISenderSigningKey|null} [senderSigningKey] SenderKeyStateStructure senderSigningKey1208* @property {Array.<groupproto.ISenderMessageKey>|null} [senderMessageKeys] SenderKeyStateStructure senderMessageKeys1209*/12101211/**1212* Constructs a new SenderKeyStateStructure.1213* @memberof groupproto1214* @classdesc Represents a SenderKeyStateStructure.1215* @implements ISenderKeyStateStructure1216* @constructor1217* @param {groupproto.ISenderKeyStateStructure=} [properties] Properties to set1218*/1219function SenderKeyStateStructure(properties) {1220this.senderMessageKeys = [];1221if (properties)1222for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)1223if (properties[keys[i]] != null)1224this[keys[i]] = properties[keys[i]];1225}12261227/**1228* SenderKeyStateStructure senderKeyId.1229* @member {number} senderKeyId1230* @memberof groupproto.SenderKeyStateStructure1231* @instance1232*/1233SenderKeyStateStructure.prototype.senderKeyId = 0;12341235/**1236* SenderKeyStateStructure senderChainKey.1237* @member {groupproto.ISenderChainKey|null|undefined} senderChainKey1238* @memberof groupproto.SenderKeyStateStructure1239* @instance1240*/1241SenderKeyStateStructure.prototype.senderChainKey = null;12421243/**1244* SenderKeyStateStructure senderSigningKey.1245* @member {groupproto.ISenderSigningKey|null|undefined} senderSigningKey1246* @memberof groupproto.SenderKeyStateStructure1247* @instance1248*/1249SenderKeyStateStructure.prototype.senderSigningKey = null;12501251/**1252* SenderKeyStateStructure senderMessageKeys.1253* @member {Array.<groupproto.ISenderMessageKey>} senderMessageKeys1254* @memberof groupproto.SenderKeyStateStructure1255* @instance1256*/1257SenderKeyStateStructure.prototype.senderMessageKeys = $util.emptyArray;12581259/**1260* Creates a new SenderKeyStateStructure instance using the specified properties.1261* @function create1262* @memberof groupproto.SenderKeyStateStructure1263* @static1264* @param {groupproto.ISenderKeyStateStructure=} [properties] Properties to set1265* @returns {groupproto.SenderKeyStateStructure} SenderKeyStateStructure instance1266*/1267SenderKeyStateStructure.create = function create(properties) {1268return new SenderKeyStateStructure(properties);1269};12701271/**1272* Encodes the specified SenderKeyStateStructure message. Does not implicitly {@link groupproto.SenderKeyStateStructure.verify|verify} messages.1273* @function encode1274* @memberof groupproto.SenderKeyStateStructure1275* @static1276* @param {groupproto.ISenderKeyStateStructure} message SenderKeyStateStructure message or plain object to encode1277* @param {$protobuf.Writer} [writer] Writer to encode to1278* @returns {$protobuf.Writer} Writer1279*/1280SenderKeyStateStructure.encode = function encode(message, writer) {1281if (!writer)1282writer = $Writer.create();1283if (message.senderKeyId != null && Object.hasOwnProperty.call(message, "senderKeyId"))1284writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.senderKeyId);1285if (message.senderChainKey != null && Object.hasOwnProperty.call(message, "senderChainKey"))1286$root.groupproto.SenderChainKey.encode(message.senderChainKey, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();1287if (message.senderSigningKey != null && Object.hasOwnProperty.call(message, "senderSigningKey"))1288$root.groupproto.SenderSigningKey.encode(message.senderSigningKey, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();1289if (message.senderMessageKeys != null && message.senderMessageKeys.length)1290for (var i = 0; i < message.senderMessageKeys.length; ++i)1291$root.groupproto.SenderMessageKey.encode(message.senderMessageKeys[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();1292return writer;1293};12941295/**1296* Encodes the specified SenderKeyStateStructure message, length delimited. Does not implicitly {@link groupproto.SenderKeyStateStructure.verify|verify} messages.1297* @function encodeDelimited1298* @memberof groupproto.SenderKeyStateStructure1299* @static1300* @param {groupproto.ISenderKeyStateStructure} message SenderKeyStateStructure message or plain object to encode1301* @param {$protobuf.Writer} [writer] Writer to encode to1302* @returns {$protobuf.Writer} Writer1303*/1304SenderKeyStateStructure.encodeDelimited = function encodeDelimited(message, writer) {1305return this.encode(message, writer).ldelim();1306};13071308/**1309* Decodes a SenderKeyStateStructure message from the specified reader or buffer.1310* @function decode1311* @memberof groupproto.SenderKeyStateStructure1312* @static1313* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from1314* @param {number} [length] Message length if known beforehand1315* @returns {groupproto.SenderKeyStateStructure} SenderKeyStateStructure1316* @throws {Error} If the payload is not a reader or valid buffer1317* @throws {$protobuf.util.ProtocolError} If required fields are missing1318*/1319SenderKeyStateStructure.decode = function decode(reader, length) {1320if (!(reader instanceof $Reader))1321reader = $Reader.create(reader);1322var end = length === undefined ? reader.len : reader.pos + length, message = new $root.groupproto.SenderKeyStateStructure();1323while (reader.pos < end) {1324var tag = reader.uint32();1325switch (tag >>> 3) {1326case 1:1327message.senderKeyId = reader.uint32();1328break;1329case 2:1330message.senderChainKey = $root.groupproto.SenderChainKey.decode(reader, reader.uint32());1331break;1332case 3:1333message.senderSigningKey = $root.groupproto.SenderSigningKey.decode(reader, reader.uint32());1334break;1335case 4:1336if (!(message.senderMessageKeys && message.senderMessageKeys.length))1337message.senderMessageKeys = [];1338message.senderMessageKeys.push($root.groupproto.SenderMessageKey.decode(reader, reader.uint32()));1339break;1340default:1341reader.skipType(tag & 7);1342break;1343}1344}1345return message;1346};13471348/**1349* Decodes a SenderKeyStateStructure message from the specified reader or buffer, length delimited.1350* @function decodeDelimited1351* @memberof groupproto.SenderKeyStateStructure1352* @static1353* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from1354* @returns {groupproto.SenderKeyStateStructure} SenderKeyStateStructure1355* @throws {Error} If the payload is not a reader or valid buffer1356* @throws {$protobuf.util.ProtocolError} If required fields are missing1357*/1358SenderKeyStateStructure.decodeDelimited = function decodeDelimited(reader) {1359if (!(reader instanceof $Reader))1360reader = new $Reader(reader);1361return this.decode(reader, reader.uint32());1362};13631364/**1365* Verifies a SenderKeyStateStructure message.1366* @function verify1367* @memberof groupproto.SenderKeyStateStructure1368* @static1369* @param {Object.<string,*>} message Plain object to verify1370* @returns {string|null} `null` if valid, otherwise the reason why it is not1371*/1372SenderKeyStateStructure.verify = function verify(message) {1373if (typeof message !== "object" || message === null)1374return "object expected";1375if (message.senderKeyId != null && message.hasOwnProperty("senderKeyId"))1376if (!$util.isInteger(message.senderKeyId))1377return "senderKeyId: integer expected";1378if (message.senderChainKey != null && message.hasOwnProperty("senderChainKey")) {1379var error = $root.groupproto.SenderChainKey.verify(message.senderChainKey);1380if (error)1381return "senderChainKey." + error;1382}1383if (message.senderSigningKey != null && message.hasOwnProperty("senderSigningKey")) {1384var error = $root.groupproto.SenderSigningKey.verify(message.senderSigningKey);1385if (error)1386return "senderSigningKey." + error;1387}1388if (message.senderMessageKeys != null && message.hasOwnProperty("senderMessageKeys")) {1389if (!Array.isArray(message.senderMessageKeys))1390return "senderMessageKeys: array expected";1391for (var i = 0; i < message.senderMessageKeys.length; ++i) {1392var error = $root.groupproto.SenderMessageKey.verify(message.senderMessageKeys[i]);1393if (error)1394return "senderMessageKeys." + error;1395}1396}1397return null;1398};13991400/**1401* Creates a SenderKeyStateStructure message from a plain object. Also converts values to their respective internal types.1402* @function fromObject1403* @memberof groupproto.SenderKeyStateStructure1404* @static1405* @param {Object.<string,*>} object Plain object1406* @returns {groupproto.SenderKeyStateStructure} SenderKeyStateStructure1407*/1408SenderKeyStateStructure.fromObject = function fromObject(object) {1409if (object instanceof $root.groupproto.SenderKeyStateStructure)1410return object;1411var message = new $root.groupproto.SenderKeyStateStructure();1412if (object.senderKeyId != null)1413message.senderKeyId = object.senderKeyId >>> 0;1414if (object.senderChainKey != null) {1415if (typeof object.senderChainKey !== "object")1416throw TypeError(".groupproto.SenderKeyStateStructure.senderChainKey: object expected");1417message.senderChainKey = $root.groupproto.SenderChainKey.fromObject(object.senderChainKey);1418}1419if (object.senderSigningKey != null) {1420if (typeof object.senderSigningKey !== "object")1421throw TypeError(".groupproto.SenderKeyStateStructure.senderSigningKey: object expected");1422message.senderSigningKey = $root.groupproto.SenderSigningKey.fromObject(object.senderSigningKey);1423}1424if (object.senderMessageKeys) {1425if (!Array.isArray(object.senderMessageKeys))1426throw TypeError(".groupproto.SenderKeyStateStructure.senderMessageKeys: array expected");1427message.senderMessageKeys = [];1428for (var i = 0; i < object.senderMessageKeys.length; ++i) {1429if (typeof object.senderMessageKeys[i] !== "object")1430throw TypeError(".groupproto.SenderKeyStateStructure.senderMessageKeys: object expected");1431message.senderMessageKeys[i] = $root.groupproto.SenderMessageKey.fromObject(object.senderMessageKeys[i]);1432}1433}1434return message;1435};14361437/**1438* Creates a plain object from a SenderKeyStateStructure message. Also converts values to other types if specified.1439* @function toObject1440* @memberof groupproto.SenderKeyStateStructure1441* @static1442* @param {groupproto.SenderKeyStateStructure} message SenderKeyStateStructure1443* @param {$protobuf.IConversionOptions} [options] Conversion options1444* @returns {Object.<string,*>} Plain object1445*/1446SenderKeyStateStructure.toObject = function toObject(message, options) {1447if (!options)1448options = {};1449var object = {};1450if (options.arrays || options.defaults)1451object.senderMessageKeys = [];1452if (options.defaults) {1453object.senderKeyId = 0;1454object.senderChainKey = null;1455object.senderSigningKey = null;1456}1457if (message.senderKeyId != null && message.hasOwnProperty("senderKeyId"))1458object.senderKeyId = message.senderKeyId;1459if (message.senderChainKey != null && message.hasOwnProperty("senderChainKey"))1460object.senderChainKey = $root.groupproto.SenderChainKey.toObject(message.senderChainKey, options);1461if (message.senderSigningKey != null && message.hasOwnProperty("senderSigningKey"))1462object.senderSigningKey = $root.groupproto.SenderSigningKey.toObject(message.senderSigningKey, options);1463if (message.senderMessageKeys && message.senderMessageKeys.length) {1464object.senderMessageKeys = [];1465for (var j = 0; j < message.senderMessageKeys.length; ++j)1466object.senderMessageKeys[j] = $root.groupproto.SenderMessageKey.toObject(message.senderMessageKeys[j], options);1467}1468return object;1469};14701471/**1472* Converts this SenderKeyStateStructure to JSON.1473* @function toJSON1474* @memberof groupproto.SenderKeyStateStructure1475* @instance1476* @returns {Object.<string,*>} JSON object1477*/1478SenderKeyStateStructure.prototype.toJSON = function toJSON() {1479return this.constructor.toObject(this, $protobuf.util.toJSONOptions);1480};14811482return SenderKeyStateStructure;1483})();14841485groupproto.SenderKeyRecordStructure = (function() {14861487/**1488* Properties of a SenderKeyRecordStructure.1489* @memberof groupproto1490* @interface ISenderKeyRecordStructure1491* @property {Array.<groupproto.ISenderKeyStateStructure>|null} [senderKeyStates] SenderKeyRecordStructure senderKeyStates1492*/14931494/**1495* Constructs a new SenderKeyRecordStructure.1496* @memberof groupproto1497* @classdesc Represents a SenderKeyRecordStructure.1498* @implements ISenderKeyRecordStructure1499* @constructor1500* @param {groupproto.ISenderKeyRecordStructure=} [properties] Properties to set1501*/1502function SenderKeyRecordStructure(properties) {1503this.senderKeyStates = [];1504if (properties)1505for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)1506if (properties[keys[i]] != null)1507this[keys[i]] = properties[keys[i]];1508}15091510/**1511* SenderKeyRecordStructure senderKeyStates.1512* @member {Array.<groupproto.ISenderKeyStateStructure>} senderKeyStates1513* @memberof groupproto.SenderKeyRecordStructure1514* @instance1515*/1516SenderKeyRecordStructure.prototype.senderKeyStates = $util.emptyArray;15171518/**1519* Creates a new SenderKeyRecordStructure instance using the specified properties.1520* @function create1521* @memberof groupproto.SenderKeyRecordStructure1522* @static1523* @param {groupproto.ISenderKeyRecordStructure=} [properties] Properties to set1524* @returns {groupproto.SenderKeyRecordStructure} SenderKeyRecordStructure instance1525*/1526SenderKeyRecordStructure.create = function create(properties) {1527return new SenderKeyRecordStructure(properties);1528};15291530/**1531* Encodes the specified SenderKeyRecordStructure message. Does not implicitly {@link groupproto.SenderKeyRecordStructure.verify|verify} messages.1532* @function encode1533* @memberof groupproto.SenderKeyRecordStructure1534* @static1535* @param {groupproto.ISenderKeyRecordStructure} message SenderKeyRecordStructure message or plain object to encode1536* @param {$protobuf.Writer} [writer] Writer to encode to1537* @returns {$protobuf.Writer} Writer1538*/1539SenderKeyRecordStructure.encode = function encode(message, writer) {1540if (!writer)1541writer = $Writer.create();1542if (message.senderKeyStates != null && message.senderKeyStates.length)1543for (var i = 0; i < message.senderKeyStates.length; ++i)1544$root.groupproto.SenderKeyStateStructure.encode(message.senderKeyStates[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();1545return writer;1546};15471548/**1549* Encodes the specified SenderKeyRecordStructure message, length delimited. Does not implicitly {@link groupproto.SenderKeyRecordStructure.verify|verify} messages.1550* @function encodeDelimited1551* @memberof groupproto.SenderKeyRecordStructure1552* @static1553* @param {groupproto.ISenderKeyRecordStructure} message SenderKeyRecordStructure message or plain object to encode1554* @param {$protobuf.Writer} [writer] Writer to encode to1555* @returns {$protobuf.Writer} Writer1556*/1557SenderKeyRecordStructure.encodeDelimited = function encodeDelimited(message, writer) {1558return this.encode(message, writer).ldelim();1559};15601561/**1562* Decodes a SenderKeyRecordStructure message from the specified reader or buffer.1563* @function decode1564* @memberof groupproto.SenderKeyRecordStructure1565* @static1566* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from1567* @param {number} [length] Message length if known beforehand1568* @returns {groupproto.SenderKeyRecordStructure} SenderKeyRecordStructure1569* @throws {Error} If the payload is not a reader or valid buffer1570* @throws {$protobuf.util.ProtocolError} If required fields are missing1571*/1572SenderKeyRecordStructure.decode = function decode(reader, length) {1573if (!(reader instanceof $Reader))1574reader = $Reader.create(reader);1575var end = length === undefined ? reader.len : reader.pos + length, message = new $root.groupproto.SenderKeyRecordStructure();1576while (reader.pos < end) {1577var tag = reader.uint32();1578switch (tag >>> 3) {1579case 1:1580if (!(message.senderKeyStates && message.senderKeyStates.length))1581message.senderKeyStates = [];1582message.senderKeyStates.push($root.groupproto.SenderKeyStateStructure.decode(reader, reader.uint32()));1583break;1584default:1585reader.skipType(tag & 7);1586break;1587}1588}1589return message;1590};15911592/**1593* Decodes a SenderKeyRecordStructure message from the specified reader or buffer, length delimited.1594* @function decodeDelimited1595* @memberof groupproto.SenderKeyRecordStructure1596* @static1597* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from1598* @returns {groupproto.SenderKeyRecordStructure} SenderKeyRecordStructure1599* @throws {Error} If the payload is not a reader or valid buffer1600* @throws {$protobuf.util.ProtocolError} If required fields are missing1601*/1602SenderKeyRecordStructure.decodeDelimited = function decodeDelimited(reader) {1603if (!(reader instanceof $Reader))1604reader = new $Reader(reader);1605return this.decode(reader, reader.uint32());1606};16071608/**1609* Verifies a SenderKeyRecordStructure message.1610* @function verify1611* @memberof groupproto.SenderKeyRecordStructure1612* @static1613* @param {Object.<string,*>} message Plain object to verify1614* @returns {string|null} `null` if valid, otherwise the reason why it is not1615*/1616SenderKeyRecordStructure.verify = function verify(message) {1617if (typeof message !== "object" || message === null)1618return "object expected";1619if (message.senderKeyStates != null && message.hasOwnProperty("senderKeyStates")) {1620if (!Array.isArray(message.senderKeyStates))1621return "senderKeyStates: array expected";1622for (var i = 0; i < message.senderKeyStates.length; ++i) {1623var error = $root.groupproto.SenderKeyStateStructure.verify(message.senderKeyStates[i]);1624if (error)1625return "senderKeyStates." + error;1626}1627}1628return null;1629};16301631/**1632* Creates a SenderKeyRecordStructure message from a plain object. Also converts values to their respective internal types.1633* @function fromObject1634* @memberof groupproto.SenderKeyRecordStructure1635* @static1636* @param {Object.<string,*>} object Plain object1637* @returns {groupproto.SenderKeyRecordStructure} SenderKeyRecordStructure1638*/1639SenderKeyRecordStructure.fromObject = function fromObject(object) {1640if (object instanceof $root.groupproto.SenderKeyRecordStructure)1641return object;1642var message = new $root.groupproto.SenderKeyRecordStructure();1643if (object.senderKeyStates) {1644if (!Array.isArray(object.senderKeyStates))1645throw TypeError(".groupproto.SenderKeyRecordStructure.senderKeyStates: array expected");1646message.senderKeyStates = [];1647for (var i = 0; i < object.senderKeyStates.length; ++i) {1648if (typeof object.senderKeyStates[i] !== "object")1649throw TypeError(".groupproto.SenderKeyRecordStructure.senderKeyStates: object expected");1650message.senderKeyStates[i] = $root.groupproto.SenderKeyStateStructure.fromObject(object.senderKeyStates[i]);1651}1652}1653return message;1654};16551656/**1657* Creates a plain object from a SenderKeyRecordStructure message. Also converts values to other types if specified.1658* @function toObject1659* @memberof groupproto.SenderKeyRecordStructure1660* @static1661* @param {groupproto.SenderKeyRecordStructure} message SenderKeyRecordStructure1662* @param {$protobuf.IConversionOptions} [options] Conversion options1663* @returns {Object.<string,*>} Plain object1664*/1665SenderKeyRecordStructure.toObject = function toObject(message, options) {1666if (!options)1667options = {};1668var object = {};1669if (options.arrays || options.defaults)1670object.senderKeyStates = [];1671if (message.senderKeyStates && message.senderKeyStates.length) {1672object.senderKeyStates = [];1673for (var j = 0; j < message.senderKeyStates.length; ++j)1674object.senderKeyStates[j] = $root.groupproto.SenderKeyStateStructure.toObject(message.senderKeyStates[j], options);1675}1676return object;1677};16781679/**1680* Converts this SenderKeyRecordStructure to JSON.1681* @function toJSON1682* @memberof groupproto.SenderKeyRecordStructure1683* @instance1684* @returns {Object.<string,*>} JSON object1685*/1686SenderKeyRecordStructure.prototype.toJSON = function toJSON() {1687return this.constructor.toObject(this, $protobuf.util.toJSONOptions);1688};16891690return SenderKeyRecordStructure;1691})();16921693return groupproto;1694})();16951696module.exports = $root;169716981699