From 76e4550e8447619952d5d737420486a083af7626 Mon Sep 17 00:00:00 2001 From: lishutong Date: Fri, 25 Jun 2021 20:18:54 +0000 Subject: [PATCH] Add the compiled 'update_metadata.proto' file. Use protobufjs to compile the update_metadata.proto into update_metadata_pb.js No-Typo-Check: auto-generated artifacts Test: Mannual tested. Change-Id: Ia0fefa57154f68809c8775ead9fa5e24d4804013 --- tools/otagui/package-lock.json | 180 +- tools/otagui/package.json | 1 + .../otagui/src/services/update_metadata_pb.js | 4530 +++++++++++++++++ 3 files changed, 4707 insertions(+), 4 deletions(-) create mode 100644 tools/otagui/src/services/update_metadata_pb.js diff --git a/tools/otagui/package-lock.json b/tools/otagui/package-lock.json index acd3d8327..84c6b6045 100644 --- a/tools/otagui/package-lock.json +++ b/tools/otagui/package-lock.json @@ -11,6 +11,7 @@ "core-js": "^3.6.5", "echarts": "^5.1.2", "eslint-config-airbnb-base": "^14.2.1", + "protobufjs": "^6.11.2", "vue": "^3.0.0-0", "vue-echarts": "^6.0.0-rc.6", "vue-router": "^4.0.0-0", @@ -1698,6 +1699,60 @@ "node": ">= 6" } }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" + }, "node_modules/@soda/friendly-errors-webpack-plugin": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.0.tgz", @@ -1811,6 +1866,11 @@ "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "peer": true }, + "node_modules/@types/long": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", + "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" + }, "node_modules/@types/mime": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", @@ -1832,8 +1892,7 @@ "node_modules/@types/node": { "version": "15.12.4", "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.4.tgz", - "integrity": "sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA==", - "dev": true + "integrity": "sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA==" }, "node_modules/@types/normalize-package-data": { "version": "2.4.0", @@ -9319,6 +9378,11 @@ "url": "https://tidelift.com/funding/github/npm/loglevel" } }, + "node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, "node_modules/lower-case": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", @@ -11531,6 +11595,31 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, + "node_modules/protobufjs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", + "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -16946,6 +17035,60 @@ "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", "dev": true }, + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" + }, + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", + "requires": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" + }, "@soda/friendly-errors-webpack-plugin": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.0.tgz", @@ -17053,6 +17196,11 @@ "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "peer": true }, + "@types/long": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", + "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" + }, "@types/mime": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", @@ -17074,8 +17222,7 @@ "@types/node": { "version": "15.12.4", "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.4.tgz", - "integrity": "sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA==", - "dev": true + "integrity": "sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA==" }, "@types/normalize-package-data": { "version": "2.4.0", @@ -23042,6 +23189,11 @@ "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", "dev": true }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, "lower-case": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", @@ -24867,6 +25019,26 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, + "protobufjs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", + "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + }, "proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", diff --git a/tools/otagui/package.json b/tools/otagui/package.json index 758c4d342..41ba6b131 100644 --- a/tools/otagui/package.json +++ b/tools/otagui/package.json @@ -11,6 +11,7 @@ "core-js": "^3.6.5", "echarts": "^5.1.2", "eslint-config-airbnb-base": "^14.2.1", + "protobufjs": "^6.11.2", "vue": "^3.0.0-0", "vue-echarts": "^6.0.0-rc.6", "vue-router": "^4.0.0-0", diff --git a/tools/otagui/src/services/update_metadata_pb.js b/tools/otagui/src/services/update_metadata_pb.js new file mode 100644 index 000000000..578c9bc16 --- /dev/null +++ b/tools/otagui/src/services/update_metadata_pb.js @@ -0,0 +1,4530 @@ +/*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/ +import * as $protobuf from "protobufjs/minimal"; + +// Common aliases +const $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util; + +// Exported root namespace +const $root = $protobuf.roots["default"] || ($protobuf.roots["default"] = {}); + +export const chromeos_update_engine = $root.chromeos_update_engine = (() => { + + /** + * Namespace chromeos_update_engine. + * @exports chromeos_update_engine + * @namespace + */ + const chromeos_update_engine = {}; + + chromeos_update_engine.Extent = (function() { + + /** + * Properties of an Extent. + * @memberof chromeos_update_engine + * @interface IExtent + * @property {number|Long|null} [startBlock] Extent startBlock + * @property {number|Long|null} [numBlocks] Extent numBlocks + */ + + /** + * Constructs a new Extent. + * @memberof chromeos_update_engine + * @classdesc Represents an Extent. + * @implements IExtent + * @constructor + * @param {chromeos_update_engine.IExtent=} [properties] Properties to set + */ + function Extent(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Extent startBlock. + * @member {number|Long} startBlock + * @memberof chromeos_update_engine.Extent + * @instance + */ + Extent.prototype.startBlock = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * Extent numBlocks. + * @member {number|Long} numBlocks + * @memberof chromeos_update_engine.Extent + * @instance + */ + Extent.prototype.numBlocks = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * Creates a new Extent instance using the specified properties. + * @function create + * @memberof chromeos_update_engine.Extent + * @static + * @param {chromeos_update_engine.IExtent=} [properties] Properties to set + * @returns {chromeos_update_engine.Extent} Extent instance + */ + Extent.create = function create(properties) { + return new Extent(properties); + }; + + /** + * Encodes the specified Extent message. Does not implicitly {@link chromeos_update_engine.Extent.verify|verify} messages. + * @function encode + * @memberof chromeos_update_engine.Extent + * @static + * @param {chromeos_update_engine.IExtent} message Extent message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Extent.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.startBlock != null && Object.hasOwnProperty.call(message, "startBlock")) + writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.startBlock); + if (message.numBlocks != null && Object.hasOwnProperty.call(message, "numBlocks")) + writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.numBlocks); + return writer; + }; + + /** + * Encodes the specified Extent message, length delimited. Does not implicitly {@link chromeos_update_engine.Extent.verify|verify} messages. + * @function encodeDelimited + * @memberof chromeos_update_engine.Extent + * @static + * @param {chromeos_update_engine.IExtent} message Extent message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Extent.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an Extent message from the specified reader or buffer. + * @function decode + * @memberof chromeos_update_engine.Extent + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {chromeos_update_engine.Extent} Extent + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Extent.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.chromeos_update_engine.Extent(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.startBlock = reader.uint64(); + break; + case 2: + message.numBlocks = reader.uint64(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an Extent message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof chromeos_update_engine.Extent + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {chromeos_update_engine.Extent} Extent + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Extent.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an Extent message. + * @function verify + * @memberof chromeos_update_engine.Extent + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Extent.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.startBlock != null && message.hasOwnProperty("startBlock")) + if (!$util.isInteger(message.startBlock) && !(message.startBlock && $util.isInteger(message.startBlock.low) && $util.isInteger(message.startBlock.high))) + return "startBlock: integer|Long expected"; + if (message.numBlocks != null && message.hasOwnProperty("numBlocks")) + if (!$util.isInteger(message.numBlocks) && !(message.numBlocks && $util.isInteger(message.numBlocks.low) && $util.isInteger(message.numBlocks.high))) + return "numBlocks: integer|Long expected"; + return null; + }; + + /** + * Creates an Extent message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof chromeos_update_engine.Extent + * @static + * @param {Object.} object Plain object + * @returns {chromeos_update_engine.Extent} Extent + */ + Extent.fromObject = function fromObject(object) { + if (object instanceof $root.chromeos_update_engine.Extent) + return object; + let message = new $root.chromeos_update_engine.Extent(); + if (object.startBlock != null) + if ($util.Long) + (message.startBlock = $util.Long.fromValue(object.startBlock)).unsigned = true; + else if (typeof object.startBlock === "string") + message.startBlock = parseInt(object.startBlock, 10); + else if (typeof object.startBlock === "number") + message.startBlock = object.startBlock; + else if (typeof object.startBlock === "object") + message.startBlock = new $util.LongBits(object.startBlock.low >>> 0, object.startBlock.high >>> 0).toNumber(true); + if (object.numBlocks != null) + if ($util.Long) + (message.numBlocks = $util.Long.fromValue(object.numBlocks)).unsigned = true; + else if (typeof object.numBlocks === "string") + message.numBlocks = parseInt(object.numBlocks, 10); + else if (typeof object.numBlocks === "number") + message.numBlocks = object.numBlocks; + else if (typeof object.numBlocks === "object") + message.numBlocks = new $util.LongBits(object.numBlocks.low >>> 0, object.numBlocks.high >>> 0).toNumber(true); + return message; + }; + + /** + * Creates a plain object from an Extent message. Also converts values to other types if specified. + * @function toObject + * @memberof chromeos_update_engine.Extent + * @static + * @param {chromeos_update_engine.Extent} message Extent + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Extent.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.defaults) { + if ($util.Long) { + let long = new $util.Long(0, 0, true); + object.startBlock = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.startBlock = options.longs === String ? "0" : 0; + if ($util.Long) { + let long = new $util.Long(0, 0, true); + object.numBlocks = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.numBlocks = options.longs === String ? "0" : 0; + } + if (message.startBlock != null && message.hasOwnProperty("startBlock")) + if (typeof message.startBlock === "number") + object.startBlock = options.longs === String ? String(message.startBlock) : message.startBlock; + else + object.startBlock = options.longs === String ? $util.Long.prototype.toString.call(message.startBlock) : options.longs === Number ? new $util.LongBits(message.startBlock.low >>> 0, message.startBlock.high >>> 0).toNumber(true) : message.startBlock; + if (message.numBlocks != null && message.hasOwnProperty("numBlocks")) + if (typeof message.numBlocks === "number") + object.numBlocks = options.longs === String ? String(message.numBlocks) : message.numBlocks; + else + object.numBlocks = options.longs === String ? $util.Long.prototype.toString.call(message.numBlocks) : options.longs === Number ? new $util.LongBits(message.numBlocks.low >>> 0, message.numBlocks.high >>> 0).toNumber(true) : message.numBlocks; + return object; + }; + + /** + * Converts this Extent to JSON. + * @function toJSON + * @memberof chromeos_update_engine.Extent + * @instance + * @returns {Object.} JSON object + */ + Extent.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Extent; + })(); + + chromeos_update_engine.Signatures = (function() { + + /** + * Properties of a Signatures. + * @memberof chromeos_update_engine + * @interface ISignatures + * @property {Array.|null} [signatures] Signatures signatures + */ + + /** + * Constructs a new Signatures. + * @memberof chromeos_update_engine + * @classdesc Represents a Signatures. + * @implements ISignatures + * @constructor + * @param {chromeos_update_engine.ISignatures=} [properties] Properties to set + */ + function Signatures(properties) { + this.signatures = []; + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Signatures signatures. + * @member {Array.} signatures + * @memberof chromeos_update_engine.Signatures + * @instance + */ + Signatures.prototype.signatures = $util.emptyArray; + + /** + * Creates a new Signatures instance using the specified properties. + * @function create + * @memberof chromeos_update_engine.Signatures + * @static + * @param {chromeos_update_engine.ISignatures=} [properties] Properties to set + * @returns {chromeos_update_engine.Signatures} Signatures instance + */ + Signatures.create = function create(properties) { + return new Signatures(properties); + }; + + /** + * Encodes the specified Signatures message. Does not implicitly {@link chromeos_update_engine.Signatures.verify|verify} messages. + * @function encode + * @memberof chromeos_update_engine.Signatures + * @static + * @param {chromeos_update_engine.ISignatures} message Signatures message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Signatures.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.signatures != null && message.signatures.length) + for (let i = 0; i < message.signatures.length; ++i) + $root.chromeos_update_engine.Signatures.Signature.encode(message.signatures[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified Signatures message, length delimited. Does not implicitly {@link chromeos_update_engine.Signatures.verify|verify} messages. + * @function encodeDelimited + * @memberof chromeos_update_engine.Signatures + * @static + * @param {chromeos_update_engine.ISignatures} message Signatures message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Signatures.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Signatures message from the specified reader or buffer. + * @function decode + * @memberof chromeos_update_engine.Signatures + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {chromeos_update_engine.Signatures} Signatures + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Signatures.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.chromeos_update_engine.Signatures(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.signatures && message.signatures.length)) + message.signatures = []; + message.signatures.push($root.chromeos_update_engine.Signatures.Signature.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Signatures message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof chromeos_update_engine.Signatures + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {chromeos_update_engine.Signatures} Signatures + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Signatures.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Signatures message. + * @function verify + * @memberof chromeos_update_engine.Signatures + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Signatures.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.signatures != null && message.hasOwnProperty("signatures")) { + if (!Array.isArray(message.signatures)) + return "signatures: array expected"; + for (let i = 0; i < message.signatures.length; ++i) { + let error = $root.chromeos_update_engine.Signatures.Signature.verify(message.signatures[i]); + if (error) + return "signatures." + error; + } + } + return null; + }; + + /** + * Creates a Signatures message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof chromeos_update_engine.Signatures + * @static + * @param {Object.} object Plain object + * @returns {chromeos_update_engine.Signatures} Signatures + */ + Signatures.fromObject = function fromObject(object) { + if (object instanceof $root.chromeos_update_engine.Signatures) + return object; + let message = new $root.chromeos_update_engine.Signatures(); + if (object.signatures) { + if (!Array.isArray(object.signatures)) + throw TypeError(".chromeos_update_engine.Signatures.signatures: array expected"); + message.signatures = []; + for (let i = 0; i < object.signatures.length; ++i) { + if (typeof object.signatures[i] !== "object") + throw TypeError(".chromeos_update_engine.Signatures.signatures: object expected"); + message.signatures[i] = $root.chromeos_update_engine.Signatures.Signature.fromObject(object.signatures[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a Signatures message. Also converts values to other types if specified. + * @function toObject + * @memberof chromeos_update_engine.Signatures + * @static + * @param {chromeos_update_engine.Signatures} message Signatures + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Signatures.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.arrays || options.defaults) + object.signatures = []; + if (message.signatures && message.signatures.length) { + object.signatures = []; + for (let j = 0; j < message.signatures.length; ++j) + object.signatures[j] = $root.chromeos_update_engine.Signatures.Signature.toObject(message.signatures[j], options); + } + return object; + }; + + /** + * Converts this Signatures to JSON. + * @function toJSON + * @memberof chromeos_update_engine.Signatures + * @instance + * @returns {Object.} JSON object + */ + Signatures.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + Signatures.Signature = (function() { + + /** + * Properties of a Signature. + * @memberof chromeos_update_engine.Signatures + * @interface ISignature + * @property {number|null} [version] Signature version + * @property {Uint8Array|null} [data] Signature data + * @property {number|null} [unpaddedSignatureSize] Signature unpaddedSignatureSize + */ + + /** + * Constructs a new Signature. + * @memberof chromeos_update_engine.Signatures + * @classdesc Represents a Signature. + * @implements ISignature + * @constructor + * @param {chromeos_update_engine.Signatures.ISignature=} [properties] Properties to set + */ + function Signature(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Signature version. + * @member {number} version + * @memberof chromeos_update_engine.Signatures.Signature + * @instance + */ + Signature.prototype.version = 0; + + /** + * Signature data. + * @member {Uint8Array} data + * @memberof chromeos_update_engine.Signatures.Signature + * @instance + */ + Signature.prototype.data = $util.newBuffer([]); + + /** + * Signature unpaddedSignatureSize. + * @member {number} unpaddedSignatureSize + * @memberof chromeos_update_engine.Signatures.Signature + * @instance + */ + Signature.prototype.unpaddedSignatureSize = 0; + + /** + * Creates a new Signature instance using the specified properties. + * @function create + * @memberof chromeos_update_engine.Signatures.Signature + * @static + * @param {chromeos_update_engine.Signatures.ISignature=} [properties] Properties to set + * @returns {chromeos_update_engine.Signatures.Signature} Signature instance + */ + Signature.create = function create(properties) { + return new Signature(properties); + }; + + /** + * Encodes the specified Signature message. Does not implicitly {@link chromeos_update_engine.Signatures.Signature.verify|verify} messages. + * @function encode + * @memberof chromeos_update_engine.Signatures.Signature + * @static + * @param {chromeos_update_engine.Signatures.ISignature} message Signature message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Signature.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.version != null && Object.hasOwnProperty.call(message, "version")) + writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.version); + if (message.data != null && Object.hasOwnProperty.call(message, "data")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.data); + if (message.unpaddedSignatureSize != null && Object.hasOwnProperty.call(message, "unpaddedSignatureSize")) + writer.uint32(/* id 3, wireType 5 =*/29).fixed32(message.unpaddedSignatureSize); + return writer; + }; + + /** + * Encodes the specified Signature message, length delimited. Does not implicitly {@link chromeos_update_engine.Signatures.Signature.verify|verify} messages. + * @function encodeDelimited + * @memberof chromeos_update_engine.Signatures.Signature + * @static + * @param {chromeos_update_engine.Signatures.ISignature} message Signature message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Signature.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Signature message from the specified reader or buffer. + * @function decode + * @memberof chromeos_update_engine.Signatures.Signature + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {chromeos_update_engine.Signatures.Signature} Signature + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Signature.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.chromeos_update_engine.Signatures.Signature(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.version = reader.uint32(); + break; + case 2: + message.data = reader.bytes(); + break; + case 3: + message.unpaddedSignatureSize = reader.fixed32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Signature message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof chromeos_update_engine.Signatures.Signature + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {chromeos_update_engine.Signatures.Signature} Signature + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Signature.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Signature message. + * @function verify + * @memberof chromeos_update_engine.Signatures.Signature + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Signature.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.version != null && message.hasOwnProperty("version")) + if (!$util.isInteger(message.version)) + return "version: integer expected"; + if (message.data != null && message.hasOwnProperty("data")) + if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data))) + return "data: buffer expected"; + if (message.unpaddedSignatureSize != null && message.hasOwnProperty("unpaddedSignatureSize")) + if (!$util.isInteger(message.unpaddedSignatureSize)) + return "unpaddedSignatureSize: integer expected"; + return null; + }; + + /** + * Creates a Signature message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof chromeos_update_engine.Signatures.Signature + * @static + * @param {Object.} object Plain object + * @returns {chromeos_update_engine.Signatures.Signature} Signature + */ + Signature.fromObject = function fromObject(object) { + if (object instanceof $root.chromeos_update_engine.Signatures.Signature) + return object; + let message = new $root.chromeos_update_engine.Signatures.Signature(); + if (object.version != null) + message.version = object.version >>> 0; + if (object.data != null) + if (typeof object.data === "string") + $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0); + else if (object.data.length) + message.data = object.data; + if (object.unpaddedSignatureSize != null) + message.unpaddedSignatureSize = object.unpaddedSignatureSize >>> 0; + return message; + }; + + /** + * Creates a plain object from a Signature message. Also converts values to other types if specified. + * @function toObject + * @memberof chromeos_update_engine.Signatures.Signature + * @static + * @param {chromeos_update_engine.Signatures.Signature} message Signature + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Signature.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.defaults) { + object.version = 0; + if (options.bytes === String) + object.data = ""; + else { + object.data = []; + if (options.bytes !== Array) + object.data = $util.newBuffer(object.data); + } + object.unpaddedSignatureSize = 0; + } + if (message.version != null && message.hasOwnProperty("version")) + object.version = message.version; + if (message.data != null && message.hasOwnProperty("data")) + object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data; + if (message.unpaddedSignatureSize != null && message.hasOwnProperty("unpaddedSignatureSize")) + object.unpaddedSignatureSize = message.unpaddedSignatureSize; + return object; + }; + + /** + * Converts this Signature to JSON. + * @function toJSON + * @memberof chromeos_update_engine.Signatures.Signature + * @instance + * @returns {Object.} JSON object + */ + Signature.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return Signature; + })(); + + return Signatures; + })(); + + chromeos_update_engine.PartitionInfo = (function() { + + /** + * Properties of a PartitionInfo. + * @memberof chromeos_update_engine + * @interface IPartitionInfo + * @property {number|Long|null} [size] PartitionInfo size + * @property {Uint8Array|null} [hash] PartitionInfo hash + */ + + /** + * Constructs a new PartitionInfo. + * @memberof chromeos_update_engine + * @classdesc Represents a PartitionInfo. + * @implements IPartitionInfo + * @constructor + * @param {chromeos_update_engine.IPartitionInfo=} [properties] Properties to set + */ + function PartitionInfo(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PartitionInfo size. + * @member {number|Long} size + * @memberof chromeos_update_engine.PartitionInfo + * @instance + */ + PartitionInfo.prototype.size = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * PartitionInfo hash. + * @member {Uint8Array} hash + * @memberof chromeos_update_engine.PartitionInfo + * @instance + */ + PartitionInfo.prototype.hash = $util.newBuffer([]); + + /** + * Creates a new PartitionInfo instance using the specified properties. + * @function create + * @memberof chromeos_update_engine.PartitionInfo + * @static + * @param {chromeos_update_engine.IPartitionInfo=} [properties] Properties to set + * @returns {chromeos_update_engine.PartitionInfo} PartitionInfo instance + */ + PartitionInfo.create = function create(properties) { + return new PartitionInfo(properties); + }; + + /** + * Encodes the specified PartitionInfo message. Does not implicitly {@link chromeos_update_engine.PartitionInfo.verify|verify} messages. + * @function encode + * @memberof chromeos_update_engine.PartitionInfo + * @static + * @param {chromeos_update_engine.IPartitionInfo} message PartitionInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PartitionInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.size != null && Object.hasOwnProperty.call(message, "size")) + writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.size); + if (message.hash != null && Object.hasOwnProperty.call(message, "hash")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.hash); + return writer; + }; + + /** + * Encodes the specified PartitionInfo message, length delimited. Does not implicitly {@link chromeos_update_engine.PartitionInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof chromeos_update_engine.PartitionInfo + * @static + * @param {chromeos_update_engine.IPartitionInfo} message PartitionInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PartitionInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PartitionInfo message from the specified reader or buffer. + * @function decode + * @memberof chromeos_update_engine.PartitionInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {chromeos_update_engine.PartitionInfo} PartitionInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PartitionInfo.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.chromeos_update_engine.PartitionInfo(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.size = reader.uint64(); + break; + case 2: + message.hash = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PartitionInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof chromeos_update_engine.PartitionInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {chromeos_update_engine.PartitionInfo} PartitionInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PartitionInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PartitionInfo message. + * @function verify + * @memberof chromeos_update_engine.PartitionInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PartitionInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.size != null && message.hasOwnProperty("size")) + if (!$util.isInteger(message.size) && !(message.size && $util.isInteger(message.size.low) && $util.isInteger(message.size.high))) + return "size: integer|Long expected"; + if (message.hash != null && message.hasOwnProperty("hash")) + if (!(message.hash && typeof message.hash.length === "number" || $util.isString(message.hash))) + return "hash: buffer expected"; + return null; + }; + + /** + * Creates a PartitionInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof chromeos_update_engine.PartitionInfo + * @static + * @param {Object.} object Plain object + * @returns {chromeos_update_engine.PartitionInfo} PartitionInfo + */ + PartitionInfo.fromObject = function fromObject(object) { + if (object instanceof $root.chromeos_update_engine.PartitionInfo) + return object; + let message = new $root.chromeos_update_engine.PartitionInfo(); + if (object.size != null) + if ($util.Long) + (message.size = $util.Long.fromValue(object.size)).unsigned = true; + else if (typeof object.size === "string") + message.size = parseInt(object.size, 10); + else if (typeof object.size === "number") + message.size = object.size; + else if (typeof object.size === "object") + message.size = new $util.LongBits(object.size.low >>> 0, object.size.high >>> 0).toNumber(true); + if (object.hash != null) + if (typeof object.hash === "string") + $util.base64.decode(object.hash, message.hash = $util.newBuffer($util.base64.length(object.hash)), 0); + else if (object.hash.length) + message.hash = object.hash; + return message; + }; + + /** + * Creates a plain object from a PartitionInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof chromeos_update_engine.PartitionInfo + * @static + * @param {chromeos_update_engine.PartitionInfo} message PartitionInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PartitionInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.defaults) { + if ($util.Long) { + let long = new $util.Long(0, 0, true); + object.size = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.size = options.longs === String ? "0" : 0; + if (options.bytes === String) + object.hash = ""; + else { + object.hash = []; + if (options.bytes !== Array) + object.hash = $util.newBuffer(object.hash); + } + } + if (message.size != null && message.hasOwnProperty("size")) + if (typeof message.size === "number") + object.size = options.longs === String ? String(message.size) : message.size; + else + object.size = options.longs === String ? $util.Long.prototype.toString.call(message.size) : options.longs === Number ? new $util.LongBits(message.size.low >>> 0, message.size.high >>> 0).toNumber(true) : message.size; + if (message.hash != null && message.hasOwnProperty("hash")) + object.hash = options.bytes === String ? $util.base64.encode(message.hash, 0, message.hash.length) : options.bytes === Array ? Array.prototype.slice.call(message.hash) : message.hash; + return object; + }; + + /** + * Converts this PartitionInfo to JSON. + * @function toJSON + * @memberof chromeos_update_engine.PartitionInfo + * @instance + * @returns {Object.} JSON object + */ + PartitionInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return PartitionInfo; + })(); + + chromeos_update_engine.ImageInfo = (function() { + + /** + * Properties of an ImageInfo. + * @memberof chromeos_update_engine + * @interface IImageInfo + * @property {string|null} [board] ImageInfo board + * @property {string|null} [key] ImageInfo key + * @property {string|null} [channel] ImageInfo channel + * @property {string|null} [version] ImageInfo version + * @property {string|null} [buildChannel] ImageInfo buildChannel + * @property {string|null} [buildVersion] ImageInfo buildVersion + */ + + /** + * Constructs a new ImageInfo. + * @memberof chromeos_update_engine + * @classdesc Represents an ImageInfo. + * @implements IImageInfo + * @constructor + * @param {chromeos_update_engine.IImageInfo=} [properties] Properties to set + */ + function ImageInfo(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ImageInfo board. + * @member {string} board + * @memberof chromeos_update_engine.ImageInfo + * @instance + */ + ImageInfo.prototype.board = ""; + + /** + * ImageInfo key. + * @member {string} key + * @memberof chromeos_update_engine.ImageInfo + * @instance + */ + ImageInfo.prototype.key = ""; + + /** + * ImageInfo channel. + * @member {string} channel + * @memberof chromeos_update_engine.ImageInfo + * @instance + */ + ImageInfo.prototype.channel = ""; + + /** + * ImageInfo version. + * @member {string} version + * @memberof chromeos_update_engine.ImageInfo + * @instance + */ + ImageInfo.prototype.version = ""; + + /** + * ImageInfo buildChannel. + * @member {string} buildChannel + * @memberof chromeos_update_engine.ImageInfo + * @instance + */ + ImageInfo.prototype.buildChannel = ""; + + /** + * ImageInfo buildVersion. + * @member {string} buildVersion + * @memberof chromeos_update_engine.ImageInfo + * @instance + */ + ImageInfo.prototype.buildVersion = ""; + + /** + * Creates a new ImageInfo instance using the specified properties. + * @function create + * @memberof chromeos_update_engine.ImageInfo + * @static + * @param {chromeos_update_engine.IImageInfo=} [properties] Properties to set + * @returns {chromeos_update_engine.ImageInfo} ImageInfo instance + */ + ImageInfo.create = function create(properties) { + return new ImageInfo(properties); + }; + + /** + * Encodes the specified ImageInfo message. Does not implicitly {@link chromeos_update_engine.ImageInfo.verify|verify} messages. + * @function encode + * @memberof chromeos_update_engine.ImageInfo + * @static + * @param {chromeos_update_engine.IImageInfo} message ImageInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ImageInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.board != null && Object.hasOwnProperty.call(message, "board")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.board); + if (message.key != null && Object.hasOwnProperty.call(message, "key")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.key); + if (message.channel != null && Object.hasOwnProperty.call(message, "channel")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.channel); + if (message.version != null && Object.hasOwnProperty.call(message, "version")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.version); + if (message.buildChannel != null && Object.hasOwnProperty.call(message, "buildChannel")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.buildChannel); + if (message.buildVersion != null && Object.hasOwnProperty.call(message, "buildVersion")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.buildVersion); + return writer; + }; + + /** + * Encodes the specified ImageInfo message, length delimited. Does not implicitly {@link chromeos_update_engine.ImageInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof chromeos_update_engine.ImageInfo + * @static + * @param {chromeos_update_engine.IImageInfo} message ImageInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ImageInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an ImageInfo message from the specified reader or buffer. + * @function decode + * @memberof chromeos_update_engine.ImageInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {chromeos_update_engine.ImageInfo} ImageInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ImageInfo.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.chromeos_update_engine.ImageInfo(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.board = reader.string(); + break; + case 2: + message.key = reader.string(); + break; + case 3: + message.channel = reader.string(); + break; + case 4: + message.version = reader.string(); + break; + case 5: + message.buildChannel = reader.string(); + break; + case 6: + message.buildVersion = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an ImageInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof chromeos_update_engine.ImageInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {chromeos_update_engine.ImageInfo} ImageInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ImageInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an ImageInfo message. + * @function verify + * @memberof chromeos_update_engine.ImageInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ImageInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.board != null && message.hasOwnProperty("board")) + if (!$util.isString(message.board)) + return "board: string expected"; + if (message.key != null && message.hasOwnProperty("key")) + if (!$util.isString(message.key)) + return "key: string expected"; + if (message.channel != null && message.hasOwnProperty("channel")) + if (!$util.isString(message.channel)) + return "channel: string expected"; + if (message.version != null && message.hasOwnProperty("version")) + if (!$util.isString(message.version)) + return "version: string expected"; + if (message.buildChannel != null && message.hasOwnProperty("buildChannel")) + if (!$util.isString(message.buildChannel)) + return "buildChannel: string expected"; + if (message.buildVersion != null && message.hasOwnProperty("buildVersion")) + if (!$util.isString(message.buildVersion)) + return "buildVersion: string expected"; + return null; + }; + + /** + * Creates an ImageInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof chromeos_update_engine.ImageInfo + * @static + * @param {Object.} object Plain object + * @returns {chromeos_update_engine.ImageInfo} ImageInfo + */ + ImageInfo.fromObject = function fromObject(object) { + if (object instanceof $root.chromeos_update_engine.ImageInfo) + return object; + let message = new $root.chromeos_update_engine.ImageInfo(); + if (object.board != null) + message.board = String(object.board); + if (object.key != null) + message.key = String(object.key); + if (object.channel != null) + message.channel = String(object.channel); + if (object.version != null) + message.version = String(object.version); + if (object.buildChannel != null) + message.buildChannel = String(object.buildChannel); + if (object.buildVersion != null) + message.buildVersion = String(object.buildVersion); + return message; + }; + + /** + * Creates a plain object from an ImageInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof chromeos_update_engine.ImageInfo + * @static + * @param {chromeos_update_engine.ImageInfo} message ImageInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ImageInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.defaults) { + object.board = ""; + object.key = ""; + object.channel = ""; + object.version = ""; + object.buildChannel = ""; + object.buildVersion = ""; + } + if (message.board != null && message.hasOwnProperty("board")) + object.board = message.board; + if (message.key != null && message.hasOwnProperty("key")) + object.key = message.key; + if (message.channel != null && message.hasOwnProperty("channel")) + object.channel = message.channel; + if (message.version != null && message.hasOwnProperty("version")) + object.version = message.version; + if (message.buildChannel != null && message.hasOwnProperty("buildChannel")) + object.buildChannel = message.buildChannel; + if (message.buildVersion != null && message.hasOwnProperty("buildVersion")) + object.buildVersion = message.buildVersion; + return object; + }; + + /** + * Converts this ImageInfo to JSON. + * @function toJSON + * @memberof chromeos_update_engine.ImageInfo + * @instance + * @returns {Object.} JSON object + */ + ImageInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ImageInfo; + })(); + + chromeos_update_engine.InstallOperation = (function() { + + /** + * Properties of an InstallOperation. + * @memberof chromeos_update_engine + * @interface IInstallOperation + * @property {chromeos_update_engine.InstallOperation.Type} type InstallOperation type + * @property {number|Long|null} [dataOffset] InstallOperation dataOffset + * @property {number|Long|null} [dataLength] InstallOperation dataLength + * @property {Array.|null} [srcExtents] InstallOperation srcExtents + * @property {number|Long|null} [srcLength] InstallOperation srcLength + * @property {Array.|null} [dstExtents] InstallOperation dstExtents + * @property {number|Long|null} [dstLength] InstallOperation dstLength + * @property {Uint8Array|null} [dataSha256Hash] InstallOperation dataSha256Hash + * @property {Uint8Array|null} [srcSha256Hash] InstallOperation srcSha256Hash + */ + + /** + * Constructs a new InstallOperation. + * @memberof chromeos_update_engine + * @classdesc Represents an InstallOperation. + * @implements IInstallOperation + * @constructor + * @param {chromeos_update_engine.IInstallOperation=} [properties] Properties to set + */ + function InstallOperation(properties) { + this.srcExtents = []; + this.dstExtents = []; + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * InstallOperation type. + * @member {chromeos_update_engine.InstallOperation.Type} type + * @memberof chromeos_update_engine.InstallOperation + * @instance + */ + InstallOperation.prototype.type = 0; + + /** + * InstallOperation dataOffset. + * @member {number|Long} dataOffset + * @memberof chromeos_update_engine.InstallOperation + * @instance + */ + InstallOperation.prototype.dataOffset = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * InstallOperation dataLength. + * @member {number|Long} dataLength + * @memberof chromeos_update_engine.InstallOperation + * @instance + */ + InstallOperation.prototype.dataLength = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * InstallOperation srcExtents. + * @member {Array.} srcExtents + * @memberof chromeos_update_engine.InstallOperation + * @instance + */ + InstallOperation.prototype.srcExtents = $util.emptyArray; + + /** + * InstallOperation srcLength. + * @member {number|Long} srcLength + * @memberof chromeos_update_engine.InstallOperation + * @instance + */ + InstallOperation.prototype.srcLength = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * InstallOperation dstExtents. + * @member {Array.} dstExtents + * @memberof chromeos_update_engine.InstallOperation + * @instance + */ + InstallOperation.prototype.dstExtents = $util.emptyArray; + + /** + * InstallOperation dstLength. + * @member {number|Long} dstLength + * @memberof chromeos_update_engine.InstallOperation + * @instance + */ + InstallOperation.prototype.dstLength = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * InstallOperation dataSha256Hash. + * @member {Uint8Array} dataSha256Hash + * @memberof chromeos_update_engine.InstallOperation + * @instance + */ + InstallOperation.prototype.dataSha256Hash = $util.newBuffer([]); + + /** + * InstallOperation srcSha256Hash. + * @member {Uint8Array} srcSha256Hash + * @memberof chromeos_update_engine.InstallOperation + * @instance + */ + InstallOperation.prototype.srcSha256Hash = $util.newBuffer([]); + + /** + * Creates a new InstallOperation instance using the specified properties. + * @function create + * @memberof chromeos_update_engine.InstallOperation + * @static + * @param {chromeos_update_engine.IInstallOperation=} [properties] Properties to set + * @returns {chromeos_update_engine.InstallOperation} InstallOperation instance + */ + InstallOperation.create = function create(properties) { + return new InstallOperation(properties); + }; + + /** + * Encodes the specified InstallOperation message. Does not implicitly {@link chromeos_update_engine.InstallOperation.verify|verify} messages. + * @function encode + * @memberof chromeos_update_engine.InstallOperation + * @static + * @param {chromeos_update_engine.IInstallOperation} message InstallOperation message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + InstallOperation.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.type); + if (message.dataOffset != null && Object.hasOwnProperty.call(message, "dataOffset")) + writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.dataOffset); + if (message.dataLength != null && Object.hasOwnProperty.call(message, "dataLength")) + writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.dataLength); + if (message.srcExtents != null && message.srcExtents.length) + for (let i = 0; i < message.srcExtents.length; ++i) + $root.chromeos_update_engine.Extent.encode(message.srcExtents[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.srcLength != null && Object.hasOwnProperty.call(message, "srcLength")) + writer.uint32(/* id 5, wireType 0 =*/40).uint64(message.srcLength); + if (message.dstExtents != null && message.dstExtents.length) + for (let i = 0; i < message.dstExtents.length; ++i) + $root.chromeos_update_engine.Extent.encode(message.dstExtents[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.dstLength != null && Object.hasOwnProperty.call(message, "dstLength")) + writer.uint32(/* id 7, wireType 0 =*/56).uint64(message.dstLength); + if (message.dataSha256Hash != null && Object.hasOwnProperty.call(message, "dataSha256Hash")) + writer.uint32(/* id 8, wireType 2 =*/66).bytes(message.dataSha256Hash); + if (message.srcSha256Hash != null && Object.hasOwnProperty.call(message, "srcSha256Hash")) + writer.uint32(/* id 9, wireType 2 =*/74).bytes(message.srcSha256Hash); + return writer; + }; + + /** + * Encodes the specified InstallOperation message, length delimited. Does not implicitly {@link chromeos_update_engine.InstallOperation.verify|verify} messages. + * @function encodeDelimited + * @memberof chromeos_update_engine.InstallOperation + * @static + * @param {chromeos_update_engine.IInstallOperation} message InstallOperation message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + InstallOperation.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an InstallOperation message from the specified reader or buffer. + * @function decode + * @memberof chromeos_update_engine.InstallOperation + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {chromeos_update_engine.InstallOperation} InstallOperation + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + InstallOperation.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.chromeos_update_engine.InstallOperation(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.type = reader.int32(); + break; + case 2: + message.dataOffset = reader.uint64(); + break; + case 3: + message.dataLength = reader.uint64(); + break; + case 4: + if (!(message.srcExtents && message.srcExtents.length)) + message.srcExtents = []; + message.srcExtents.push($root.chromeos_update_engine.Extent.decode(reader, reader.uint32())); + break; + case 5: + message.srcLength = reader.uint64(); + break; + case 6: + if (!(message.dstExtents && message.dstExtents.length)) + message.dstExtents = []; + message.dstExtents.push($root.chromeos_update_engine.Extent.decode(reader, reader.uint32())); + break; + case 7: + message.dstLength = reader.uint64(); + break; + case 8: + message.dataSha256Hash = reader.bytes(); + break; + case 9: + message.srcSha256Hash = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("type")) + throw $util.ProtocolError("missing required 'type'", { instance: message }); + return message; + }; + + /** + * Decodes an InstallOperation message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof chromeos_update_engine.InstallOperation + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {chromeos_update_engine.InstallOperation} InstallOperation + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + InstallOperation.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an InstallOperation message. + * @function verify + * @memberof chromeos_update_engine.InstallOperation + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + InstallOperation.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + switch (message.type) { + default: + return "type: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 8: + case 6: + case 7: + case 10: + case 9: + break; + } + if (message.dataOffset != null && message.hasOwnProperty("dataOffset")) + if (!$util.isInteger(message.dataOffset) && !(message.dataOffset && $util.isInteger(message.dataOffset.low) && $util.isInteger(message.dataOffset.high))) + return "dataOffset: integer|Long expected"; + if (message.dataLength != null && message.hasOwnProperty("dataLength")) + if (!$util.isInteger(message.dataLength) && !(message.dataLength && $util.isInteger(message.dataLength.low) && $util.isInteger(message.dataLength.high))) + return "dataLength: integer|Long expected"; + if (message.srcExtents != null && message.hasOwnProperty("srcExtents")) { + if (!Array.isArray(message.srcExtents)) + return "srcExtents: array expected"; + for (let i = 0; i < message.srcExtents.length; ++i) { + let error = $root.chromeos_update_engine.Extent.verify(message.srcExtents[i]); + if (error) + return "srcExtents." + error; + } + } + if (message.srcLength != null && message.hasOwnProperty("srcLength")) + if (!$util.isInteger(message.srcLength) && !(message.srcLength && $util.isInteger(message.srcLength.low) && $util.isInteger(message.srcLength.high))) + return "srcLength: integer|Long expected"; + if (message.dstExtents != null && message.hasOwnProperty("dstExtents")) { + if (!Array.isArray(message.dstExtents)) + return "dstExtents: array expected"; + for (let i = 0; i < message.dstExtents.length; ++i) { + let error = $root.chromeos_update_engine.Extent.verify(message.dstExtents[i]); + if (error) + return "dstExtents." + error; + } + } + if (message.dstLength != null && message.hasOwnProperty("dstLength")) + if (!$util.isInteger(message.dstLength) && !(message.dstLength && $util.isInteger(message.dstLength.low) && $util.isInteger(message.dstLength.high))) + return "dstLength: integer|Long expected"; + if (message.dataSha256Hash != null && message.hasOwnProperty("dataSha256Hash")) + if (!(message.dataSha256Hash && typeof message.dataSha256Hash.length === "number" || $util.isString(message.dataSha256Hash))) + return "dataSha256Hash: buffer expected"; + if (message.srcSha256Hash != null && message.hasOwnProperty("srcSha256Hash")) + if (!(message.srcSha256Hash && typeof message.srcSha256Hash.length === "number" || $util.isString(message.srcSha256Hash))) + return "srcSha256Hash: buffer expected"; + return null; + }; + + /** + * Creates an InstallOperation message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof chromeos_update_engine.InstallOperation + * @static + * @param {Object.} object Plain object + * @returns {chromeos_update_engine.InstallOperation} InstallOperation + */ + InstallOperation.fromObject = function fromObject(object) { + if (object instanceof $root.chromeos_update_engine.InstallOperation) + return object; + let message = new $root.chromeos_update_engine.InstallOperation(); + switch (object.type) { + case "REPLACE": + case 0: + message.type = 0; + break; + case "REPLACE_BZ": + case 1: + message.type = 1; + break; + case "MOVE": + case 2: + message.type = 2; + break; + case "BSDIFF": + case 3: + message.type = 3; + break; + case "SOURCE_COPY": + case 4: + message.type = 4; + break; + case "SOURCE_BSDIFF": + case 5: + message.type = 5; + break; + case "REPLACE_XZ": + case 8: + message.type = 8; + break; + case "ZERO": + case 6: + message.type = 6; + break; + case "DISCARD": + case 7: + message.type = 7; + break; + case "BROTLI_BSDIFF": + case 10: + message.type = 10; + break; + case "PUFFDIFF": + case 9: + message.type = 9; + break; + } + if (object.dataOffset != null) + if ($util.Long) + (message.dataOffset = $util.Long.fromValue(object.dataOffset)).unsigned = true; + else if (typeof object.dataOffset === "string") + message.dataOffset = parseInt(object.dataOffset, 10); + else if (typeof object.dataOffset === "number") + message.dataOffset = object.dataOffset; + else if (typeof object.dataOffset === "object") + message.dataOffset = new $util.LongBits(object.dataOffset.low >>> 0, object.dataOffset.high >>> 0).toNumber(true); + if (object.dataLength != null) + if ($util.Long) + (message.dataLength = $util.Long.fromValue(object.dataLength)).unsigned = true; + else if (typeof object.dataLength === "string") + message.dataLength = parseInt(object.dataLength, 10); + else if (typeof object.dataLength === "number") + message.dataLength = object.dataLength; + else if (typeof object.dataLength === "object") + message.dataLength = new $util.LongBits(object.dataLength.low >>> 0, object.dataLength.high >>> 0).toNumber(true); + if (object.srcExtents) { + if (!Array.isArray(object.srcExtents)) + throw TypeError(".chromeos_update_engine.InstallOperation.srcExtents: array expected"); + message.srcExtents = []; + for (let i = 0; i < object.srcExtents.length; ++i) { + if (typeof object.srcExtents[i] !== "object") + throw TypeError(".chromeos_update_engine.InstallOperation.srcExtents: object expected"); + message.srcExtents[i] = $root.chromeos_update_engine.Extent.fromObject(object.srcExtents[i]); + } + } + if (object.srcLength != null) + if ($util.Long) + (message.srcLength = $util.Long.fromValue(object.srcLength)).unsigned = true; + else if (typeof object.srcLength === "string") + message.srcLength = parseInt(object.srcLength, 10); + else if (typeof object.srcLength === "number") + message.srcLength = object.srcLength; + else if (typeof object.srcLength === "object") + message.srcLength = new $util.LongBits(object.srcLength.low >>> 0, object.srcLength.high >>> 0).toNumber(true); + if (object.dstExtents) { + if (!Array.isArray(object.dstExtents)) + throw TypeError(".chromeos_update_engine.InstallOperation.dstExtents: array expected"); + message.dstExtents = []; + for (let i = 0; i < object.dstExtents.length; ++i) { + if (typeof object.dstExtents[i] !== "object") + throw TypeError(".chromeos_update_engine.InstallOperation.dstExtents: object expected"); + message.dstExtents[i] = $root.chromeos_update_engine.Extent.fromObject(object.dstExtents[i]); + } + } + if (object.dstLength != null) + if ($util.Long) + (message.dstLength = $util.Long.fromValue(object.dstLength)).unsigned = true; + else if (typeof object.dstLength === "string") + message.dstLength = parseInt(object.dstLength, 10); + else if (typeof object.dstLength === "number") + message.dstLength = object.dstLength; + else if (typeof object.dstLength === "object") + message.dstLength = new $util.LongBits(object.dstLength.low >>> 0, object.dstLength.high >>> 0).toNumber(true); + if (object.dataSha256Hash != null) + if (typeof object.dataSha256Hash === "string") + $util.base64.decode(object.dataSha256Hash, message.dataSha256Hash = $util.newBuffer($util.base64.length(object.dataSha256Hash)), 0); + else if (object.dataSha256Hash.length) + message.dataSha256Hash = object.dataSha256Hash; + if (object.srcSha256Hash != null) + if (typeof object.srcSha256Hash === "string") + $util.base64.decode(object.srcSha256Hash, message.srcSha256Hash = $util.newBuffer($util.base64.length(object.srcSha256Hash)), 0); + else if (object.srcSha256Hash.length) + message.srcSha256Hash = object.srcSha256Hash; + return message; + }; + + /** + * Creates a plain object from an InstallOperation message. Also converts values to other types if specified. + * @function toObject + * @memberof chromeos_update_engine.InstallOperation + * @static + * @param {chromeos_update_engine.InstallOperation} message InstallOperation + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + InstallOperation.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.arrays || options.defaults) { + object.srcExtents = []; + object.dstExtents = []; + } + if (options.defaults) { + object.type = options.enums === String ? "REPLACE" : 0; + if ($util.Long) { + let long = new $util.Long(0, 0, true); + object.dataOffset = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.dataOffset = options.longs === String ? "0" : 0; + if ($util.Long) { + let long = new $util.Long(0, 0, true); + object.dataLength = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.dataLength = options.longs === String ? "0" : 0; + if ($util.Long) { + let long = new $util.Long(0, 0, true); + object.srcLength = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.srcLength = options.longs === String ? "0" : 0; + if ($util.Long) { + let long = new $util.Long(0, 0, true); + object.dstLength = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.dstLength = options.longs === String ? "0" : 0; + if (options.bytes === String) + object.dataSha256Hash = ""; + else { + object.dataSha256Hash = []; + if (options.bytes !== Array) + object.dataSha256Hash = $util.newBuffer(object.dataSha256Hash); + } + if (options.bytes === String) + object.srcSha256Hash = ""; + else { + object.srcSha256Hash = []; + if (options.bytes !== Array) + object.srcSha256Hash = $util.newBuffer(object.srcSha256Hash); + } + } + if (message.type != null && message.hasOwnProperty("type")) + object.type = options.enums === String ? $root.chromeos_update_engine.InstallOperation.Type[message.type] : message.type; + if (message.dataOffset != null && message.hasOwnProperty("dataOffset")) + if (typeof message.dataOffset === "number") + object.dataOffset = options.longs === String ? String(message.dataOffset) : message.dataOffset; + else + object.dataOffset = options.longs === String ? $util.Long.prototype.toString.call(message.dataOffset) : options.longs === Number ? new $util.LongBits(message.dataOffset.low >>> 0, message.dataOffset.high >>> 0).toNumber(true) : message.dataOffset; + if (message.dataLength != null && message.hasOwnProperty("dataLength")) + if (typeof message.dataLength === "number") + object.dataLength = options.longs === String ? String(message.dataLength) : message.dataLength; + else + object.dataLength = options.longs === String ? $util.Long.prototype.toString.call(message.dataLength) : options.longs === Number ? new $util.LongBits(message.dataLength.low >>> 0, message.dataLength.high >>> 0).toNumber(true) : message.dataLength; + if (message.srcExtents && message.srcExtents.length) { + object.srcExtents = []; + for (let j = 0; j < message.srcExtents.length; ++j) + object.srcExtents[j] = $root.chromeos_update_engine.Extent.toObject(message.srcExtents[j], options); + } + if (message.srcLength != null && message.hasOwnProperty("srcLength")) + if (typeof message.srcLength === "number") + object.srcLength = options.longs === String ? String(message.srcLength) : message.srcLength; + else + object.srcLength = options.longs === String ? $util.Long.prototype.toString.call(message.srcLength) : options.longs === Number ? new $util.LongBits(message.srcLength.low >>> 0, message.srcLength.high >>> 0).toNumber(true) : message.srcLength; + if (message.dstExtents && message.dstExtents.length) { + object.dstExtents = []; + for (let j = 0; j < message.dstExtents.length; ++j) + object.dstExtents[j] = $root.chromeos_update_engine.Extent.toObject(message.dstExtents[j], options); + } + if (message.dstLength != null && message.hasOwnProperty("dstLength")) + if (typeof message.dstLength === "number") + object.dstLength = options.longs === String ? String(message.dstLength) : message.dstLength; + else + object.dstLength = options.longs === String ? $util.Long.prototype.toString.call(message.dstLength) : options.longs === Number ? new $util.LongBits(message.dstLength.low >>> 0, message.dstLength.high >>> 0).toNumber(true) : message.dstLength; + if (message.dataSha256Hash != null && message.hasOwnProperty("dataSha256Hash")) + object.dataSha256Hash = options.bytes === String ? $util.base64.encode(message.dataSha256Hash, 0, message.dataSha256Hash.length) : options.bytes === Array ? Array.prototype.slice.call(message.dataSha256Hash) : message.dataSha256Hash; + if (message.srcSha256Hash != null && message.hasOwnProperty("srcSha256Hash")) + object.srcSha256Hash = options.bytes === String ? $util.base64.encode(message.srcSha256Hash, 0, message.srcSha256Hash.length) : options.bytes === Array ? Array.prototype.slice.call(message.srcSha256Hash) : message.srcSha256Hash; + return object; + }; + + /** + * Converts this InstallOperation to JSON. + * @function toJSON + * @memberof chromeos_update_engine.InstallOperation + * @instance + * @returns {Object.} JSON object + */ + InstallOperation.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Type enum. + * @name chromeos_update_engine.InstallOperation.Type + * @enum {number} + * @property {number} REPLACE=0 REPLACE value + * @property {number} REPLACE_BZ=1 REPLACE_BZ value + * @property {number} MOVE=2 MOVE value + * @property {number} BSDIFF=3 BSDIFF value + * @property {number} SOURCE_COPY=4 SOURCE_COPY value + * @property {number} SOURCE_BSDIFF=5 SOURCE_BSDIFF value + * @property {number} REPLACE_XZ=8 REPLACE_XZ value + * @property {number} ZERO=6 ZERO value + * @property {number} DISCARD=7 DISCARD value + * @property {number} BROTLI_BSDIFF=10 BROTLI_BSDIFF value + * @property {number} PUFFDIFF=9 PUFFDIFF value + */ + InstallOperation.Type = (function() { + const valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "REPLACE"] = 0; + values[valuesById[1] = "REPLACE_BZ"] = 1; + values[valuesById[2] = "MOVE"] = 2; + values[valuesById[3] = "BSDIFF"] = 3; + values[valuesById[4] = "SOURCE_COPY"] = 4; + values[valuesById[5] = "SOURCE_BSDIFF"] = 5; + values[valuesById[8] = "REPLACE_XZ"] = 8; + values[valuesById[6] = "ZERO"] = 6; + values[valuesById[7] = "DISCARD"] = 7; + values[valuesById[10] = "BROTLI_BSDIFF"] = 10; + values[valuesById[9] = "PUFFDIFF"] = 9; + return values; + })(); + + return InstallOperation; + })(); + + chromeos_update_engine.CowMergeOperation = (function() { + + /** + * Properties of a CowMergeOperation. + * @memberof chromeos_update_engine + * @interface ICowMergeOperation + * @property {chromeos_update_engine.CowMergeOperation.Type|null} [type] CowMergeOperation type + * @property {chromeos_update_engine.IExtent|null} [srcExtent] CowMergeOperation srcExtent + * @property {chromeos_update_engine.IExtent|null} [dstExtent] CowMergeOperation dstExtent + */ + + /** + * Constructs a new CowMergeOperation. + * @memberof chromeos_update_engine + * @classdesc Represents a CowMergeOperation. + * @implements ICowMergeOperation + * @constructor + * @param {chromeos_update_engine.ICowMergeOperation=} [properties] Properties to set + */ + function CowMergeOperation(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CowMergeOperation type. + * @member {chromeos_update_engine.CowMergeOperation.Type} type + * @memberof chromeos_update_engine.CowMergeOperation + * @instance + */ + CowMergeOperation.prototype.type = 0; + + /** + * CowMergeOperation srcExtent. + * @member {chromeos_update_engine.IExtent|null|undefined} srcExtent + * @memberof chromeos_update_engine.CowMergeOperation + * @instance + */ + CowMergeOperation.prototype.srcExtent = null; + + /** + * CowMergeOperation dstExtent. + * @member {chromeos_update_engine.IExtent|null|undefined} dstExtent + * @memberof chromeos_update_engine.CowMergeOperation + * @instance + */ + CowMergeOperation.prototype.dstExtent = null; + + /** + * Creates a new CowMergeOperation instance using the specified properties. + * @function create + * @memberof chromeos_update_engine.CowMergeOperation + * @static + * @param {chromeos_update_engine.ICowMergeOperation=} [properties] Properties to set + * @returns {chromeos_update_engine.CowMergeOperation} CowMergeOperation instance + */ + CowMergeOperation.create = function create(properties) { + return new CowMergeOperation(properties); + }; + + /** + * Encodes the specified CowMergeOperation message. Does not implicitly {@link chromeos_update_engine.CowMergeOperation.verify|verify} messages. + * @function encode + * @memberof chromeos_update_engine.CowMergeOperation + * @static + * @param {chromeos_update_engine.ICowMergeOperation} message CowMergeOperation message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CowMergeOperation.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.type != null && Object.hasOwnProperty.call(message, "type")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.type); + if (message.srcExtent != null && Object.hasOwnProperty.call(message, "srcExtent")) + $root.chromeos_update_engine.Extent.encode(message.srcExtent, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.dstExtent != null && Object.hasOwnProperty.call(message, "dstExtent")) + $root.chromeos_update_engine.Extent.encode(message.dstExtent, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified CowMergeOperation message, length delimited. Does not implicitly {@link chromeos_update_engine.CowMergeOperation.verify|verify} messages. + * @function encodeDelimited + * @memberof chromeos_update_engine.CowMergeOperation + * @static + * @param {chromeos_update_engine.ICowMergeOperation} message CowMergeOperation message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CowMergeOperation.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CowMergeOperation message from the specified reader or buffer. + * @function decode + * @memberof chromeos_update_engine.CowMergeOperation + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {chromeos_update_engine.CowMergeOperation} CowMergeOperation + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CowMergeOperation.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.chromeos_update_engine.CowMergeOperation(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.type = reader.int32(); + break; + case 2: + message.srcExtent = $root.chromeos_update_engine.Extent.decode(reader, reader.uint32()); + break; + case 3: + message.dstExtent = $root.chromeos_update_engine.Extent.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CowMergeOperation message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof chromeos_update_engine.CowMergeOperation + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {chromeos_update_engine.CowMergeOperation} CowMergeOperation + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CowMergeOperation.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CowMergeOperation message. + * @function verify + * @memberof chromeos_update_engine.CowMergeOperation + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CowMergeOperation.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.type != null && message.hasOwnProperty("type")) + switch (message.type) { + default: + return "type: enum value expected"; + case 0: + break; + } + if (message.srcExtent != null && message.hasOwnProperty("srcExtent")) { + let error = $root.chromeos_update_engine.Extent.verify(message.srcExtent); + if (error) + return "srcExtent." + error; + } + if (message.dstExtent != null && message.hasOwnProperty("dstExtent")) { + let error = $root.chromeos_update_engine.Extent.verify(message.dstExtent); + if (error) + return "dstExtent." + error; + } + return null; + }; + + /** + * Creates a CowMergeOperation message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof chromeos_update_engine.CowMergeOperation + * @static + * @param {Object.} object Plain object + * @returns {chromeos_update_engine.CowMergeOperation} CowMergeOperation + */ + CowMergeOperation.fromObject = function fromObject(object) { + if (object instanceof $root.chromeos_update_engine.CowMergeOperation) + return object; + let message = new $root.chromeos_update_engine.CowMergeOperation(); + switch (object.type) { + case "COW_COPY": + case 0: + message.type = 0; + break; + } + if (object.srcExtent != null) { + if (typeof object.srcExtent !== "object") + throw TypeError(".chromeos_update_engine.CowMergeOperation.srcExtent: object expected"); + message.srcExtent = $root.chromeos_update_engine.Extent.fromObject(object.srcExtent); + } + if (object.dstExtent != null) { + if (typeof object.dstExtent !== "object") + throw TypeError(".chromeos_update_engine.CowMergeOperation.dstExtent: object expected"); + message.dstExtent = $root.chromeos_update_engine.Extent.fromObject(object.dstExtent); + } + return message; + }; + + /** + * Creates a plain object from a CowMergeOperation message. Also converts values to other types if specified. + * @function toObject + * @memberof chromeos_update_engine.CowMergeOperation + * @static + * @param {chromeos_update_engine.CowMergeOperation} message CowMergeOperation + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CowMergeOperation.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.defaults) { + object.type = options.enums === String ? "COW_COPY" : 0; + object.srcExtent = null; + object.dstExtent = null; + } + if (message.type != null && message.hasOwnProperty("type")) + object.type = options.enums === String ? $root.chromeos_update_engine.CowMergeOperation.Type[message.type] : message.type; + if (message.srcExtent != null && message.hasOwnProperty("srcExtent")) + object.srcExtent = $root.chromeos_update_engine.Extent.toObject(message.srcExtent, options); + if (message.dstExtent != null && message.hasOwnProperty("dstExtent")) + object.dstExtent = $root.chromeos_update_engine.Extent.toObject(message.dstExtent, options); + return object; + }; + + /** + * Converts this CowMergeOperation to JSON. + * @function toJSON + * @memberof chromeos_update_engine.CowMergeOperation + * @instance + * @returns {Object.} JSON object + */ + CowMergeOperation.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Type enum. + * @name chromeos_update_engine.CowMergeOperation.Type + * @enum {number} + * @property {number} COW_COPY=0 COW_COPY value + */ + CowMergeOperation.Type = (function() { + const valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "COW_COPY"] = 0; + return values; + })(); + + return CowMergeOperation; + })(); + + chromeos_update_engine.PartitionUpdate = (function() { + + /** + * Properties of a PartitionUpdate. + * @memberof chromeos_update_engine + * @interface IPartitionUpdate + * @property {string} partitionName PartitionUpdate partitionName + * @property {boolean|null} [runPostinstall] PartitionUpdate runPostinstall + * @property {string|null} [postinstallPath] PartitionUpdate postinstallPath + * @property {string|null} [filesystemType] PartitionUpdate filesystemType + * @property {Array.|null} [newPartitionSignature] PartitionUpdate newPartitionSignature + * @property {chromeos_update_engine.IPartitionInfo|null} [oldPartitionInfo] PartitionUpdate oldPartitionInfo + * @property {chromeos_update_engine.IPartitionInfo|null} [newPartitionInfo] PartitionUpdate newPartitionInfo + * @property {Array.|null} [operations] PartitionUpdate operations + * @property {boolean|null} [postinstallOptional] PartitionUpdate postinstallOptional + * @property {chromeos_update_engine.IExtent|null} [hashTreeDataExtent] PartitionUpdate hashTreeDataExtent + * @property {chromeos_update_engine.IExtent|null} [hashTreeExtent] PartitionUpdate hashTreeExtent + * @property {string|null} [hashTreeAlgorithm] PartitionUpdate hashTreeAlgorithm + * @property {Uint8Array|null} [hashTreeSalt] PartitionUpdate hashTreeSalt + * @property {chromeos_update_engine.IExtent|null} [fecDataExtent] PartitionUpdate fecDataExtent + * @property {chromeos_update_engine.IExtent|null} [fecExtent] PartitionUpdate fecExtent + * @property {number|null} [fecRoots] PartitionUpdate fecRoots + * @property {string|null} [version] PartitionUpdate version + * @property {Array.|null} [mergeOperations] PartitionUpdate mergeOperations + * @property {number|Long|null} [estimateCowSize] PartitionUpdate estimateCowSize + */ + + /** + * Constructs a new PartitionUpdate. + * @memberof chromeos_update_engine + * @classdesc Represents a PartitionUpdate. + * @implements IPartitionUpdate + * @constructor + * @param {chromeos_update_engine.IPartitionUpdate=} [properties] Properties to set + */ + function PartitionUpdate(properties) { + this.newPartitionSignature = []; + this.operations = []; + this.mergeOperations = []; + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PartitionUpdate partitionName. + * @member {string} partitionName + * @memberof chromeos_update_engine.PartitionUpdate + * @instance + */ + PartitionUpdate.prototype.partitionName = ""; + + /** + * PartitionUpdate runPostinstall. + * @member {boolean} runPostinstall + * @memberof chromeos_update_engine.PartitionUpdate + * @instance + */ + PartitionUpdate.prototype.runPostinstall = false; + + /** + * PartitionUpdate postinstallPath. + * @member {string} postinstallPath + * @memberof chromeos_update_engine.PartitionUpdate + * @instance + */ + PartitionUpdate.prototype.postinstallPath = ""; + + /** + * PartitionUpdate filesystemType. + * @member {string} filesystemType + * @memberof chromeos_update_engine.PartitionUpdate + * @instance + */ + PartitionUpdate.prototype.filesystemType = ""; + + /** + * PartitionUpdate newPartitionSignature. + * @member {Array.} newPartitionSignature + * @memberof chromeos_update_engine.PartitionUpdate + * @instance + */ + PartitionUpdate.prototype.newPartitionSignature = $util.emptyArray; + + /** + * PartitionUpdate oldPartitionInfo. + * @member {chromeos_update_engine.IPartitionInfo|null|undefined} oldPartitionInfo + * @memberof chromeos_update_engine.PartitionUpdate + * @instance + */ + PartitionUpdate.prototype.oldPartitionInfo = null; + + /** + * PartitionUpdate newPartitionInfo. + * @member {chromeos_update_engine.IPartitionInfo|null|undefined} newPartitionInfo + * @memberof chromeos_update_engine.PartitionUpdate + * @instance + */ + PartitionUpdate.prototype.newPartitionInfo = null; + + /** + * PartitionUpdate operations. + * @member {Array.} operations + * @memberof chromeos_update_engine.PartitionUpdate + * @instance + */ + PartitionUpdate.prototype.operations = $util.emptyArray; + + /** + * PartitionUpdate postinstallOptional. + * @member {boolean} postinstallOptional + * @memberof chromeos_update_engine.PartitionUpdate + * @instance + */ + PartitionUpdate.prototype.postinstallOptional = false; + + /** + * PartitionUpdate hashTreeDataExtent. + * @member {chromeos_update_engine.IExtent|null|undefined} hashTreeDataExtent + * @memberof chromeos_update_engine.PartitionUpdate + * @instance + */ + PartitionUpdate.prototype.hashTreeDataExtent = null; + + /** + * PartitionUpdate hashTreeExtent. + * @member {chromeos_update_engine.IExtent|null|undefined} hashTreeExtent + * @memberof chromeos_update_engine.PartitionUpdate + * @instance + */ + PartitionUpdate.prototype.hashTreeExtent = null; + + /** + * PartitionUpdate hashTreeAlgorithm. + * @member {string} hashTreeAlgorithm + * @memberof chromeos_update_engine.PartitionUpdate + * @instance + */ + PartitionUpdate.prototype.hashTreeAlgorithm = ""; + + /** + * PartitionUpdate hashTreeSalt. + * @member {Uint8Array} hashTreeSalt + * @memberof chromeos_update_engine.PartitionUpdate + * @instance + */ + PartitionUpdate.prototype.hashTreeSalt = $util.newBuffer([]); + + /** + * PartitionUpdate fecDataExtent. + * @member {chromeos_update_engine.IExtent|null|undefined} fecDataExtent + * @memberof chromeos_update_engine.PartitionUpdate + * @instance + */ + PartitionUpdate.prototype.fecDataExtent = null; + + /** + * PartitionUpdate fecExtent. + * @member {chromeos_update_engine.IExtent|null|undefined} fecExtent + * @memberof chromeos_update_engine.PartitionUpdate + * @instance + */ + PartitionUpdate.prototype.fecExtent = null; + + /** + * PartitionUpdate fecRoots. + * @member {number} fecRoots + * @memberof chromeos_update_engine.PartitionUpdate + * @instance + */ + PartitionUpdate.prototype.fecRoots = 2; + + /** + * PartitionUpdate version. + * @member {string} version + * @memberof chromeos_update_engine.PartitionUpdate + * @instance + */ + PartitionUpdate.prototype.version = ""; + + /** + * PartitionUpdate mergeOperations. + * @member {Array.} mergeOperations + * @memberof chromeos_update_engine.PartitionUpdate + * @instance + */ + PartitionUpdate.prototype.mergeOperations = $util.emptyArray; + + /** + * PartitionUpdate estimateCowSize. + * @member {number|Long} estimateCowSize + * @memberof chromeos_update_engine.PartitionUpdate + * @instance + */ + PartitionUpdate.prototype.estimateCowSize = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * Creates a new PartitionUpdate instance using the specified properties. + * @function create + * @memberof chromeos_update_engine.PartitionUpdate + * @static + * @param {chromeos_update_engine.IPartitionUpdate=} [properties] Properties to set + * @returns {chromeos_update_engine.PartitionUpdate} PartitionUpdate instance + */ + PartitionUpdate.create = function create(properties) { + return new PartitionUpdate(properties); + }; + + /** + * Encodes the specified PartitionUpdate message. Does not implicitly {@link chromeos_update_engine.PartitionUpdate.verify|verify} messages. + * @function encode + * @memberof chromeos_update_engine.PartitionUpdate + * @static + * @param {chromeos_update_engine.IPartitionUpdate} message PartitionUpdate message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PartitionUpdate.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + writer.uint32(/* id 1, wireType 2 =*/10).string(message.partitionName); + if (message.runPostinstall != null && Object.hasOwnProperty.call(message, "runPostinstall")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.runPostinstall); + if (message.postinstallPath != null && Object.hasOwnProperty.call(message, "postinstallPath")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.postinstallPath); + if (message.filesystemType != null && Object.hasOwnProperty.call(message, "filesystemType")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.filesystemType); + if (message.newPartitionSignature != null && message.newPartitionSignature.length) + for (let i = 0; i < message.newPartitionSignature.length; ++i) + $root.chromeos_update_engine.Signatures.Signature.encode(message.newPartitionSignature[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.oldPartitionInfo != null && Object.hasOwnProperty.call(message, "oldPartitionInfo")) + $root.chromeos_update_engine.PartitionInfo.encode(message.oldPartitionInfo, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.newPartitionInfo != null && Object.hasOwnProperty.call(message, "newPartitionInfo")) + $root.chromeos_update_engine.PartitionInfo.encode(message.newPartitionInfo, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.operations != null && message.operations.length) + for (let i = 0; i < message.operations.length; ++i) + $root.chromeos_update_engine.InstallOperation.encode(message.operations[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.postinstallOptional != null && Object.hasOwnProperty.call(message, "postinstallOptional")) + writer.uint32(/* id 9, wireType 0 =*/72).bool(message.postinstallOptional); + if (message.hashTreeDataExtent != null && Object.hasOwnProperty.call(message, "hashTreeDataExtent")) + $root.chromeos_update_engine.Extent.encode(message.hashTreeDataExtent, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + if (message.hashTreeExtent != null && Object.hasOwnProperty.call(message, "hashTreeExtent")) + $root.chromeos_update_engine.Extent.encode(message.hashTreeExtent, writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim(); + if (message.hashTreeAlgorithm != null && Object.hasOwnProperty.call(message, "hashTreeAlgorithm")) + writer.uint32(/* id 12, wireType 2 =*/98).string(message.hashTreeAlgorithm); + if (message.hashTreeSalt != null && Object.hasOwnProperty.call(message, "hashTreeSalt")) + writer.uint32(/* id 13, wireType 2 =*/106).bytes(message.hashTreeSalt); + if (message.fecDataExtent != null && Object.hasOwnProperty.call(message, "fecDataExtent")) + $root.chromeos_update_engine.Extent.encode(message.fecDataExtent, writer.uint32(/* id 14, wireType 2 =*/114).fork()).ldelim(); + if (message.fecExtent != null && Object.hasOwnProperty.call(message, "fecExtent")) + $root.chromeos_update_engine.Extent.encode(message.fecExtent, writer.uint32(/* id 15, wireType 2 =*/122).fork()).ldelim(); + if (message.fecRoots != null && Object.hasOwnProperty.call(message, "fecRoots")) + writer.uint32(/* id 16, wireType 0 =*/128).uint32(message.fecRoots); + if (message.version != null && Object.hasOwnProperty.call(message, "version")) + writer.uint32(/* id 17, wireType 2 =*/138).string(message.version); + if (message.mergeOperations != null && message.mergeOperations.length) + for (let i = 0; i < message.mergeOperations.length; ++i) + $root.chromeos_update_engine.CowMergeOperation.encode(message.mergeOperations[i], writer.uint32(/* id 18, wireType 2 =*/146).fork()).ldelim(); + if (message.estimateCowSize != null && Object.hasOwnProperty.call(message, "estimateCowSize")) + writer.uint32(/* id 19, wireType 0 =*/152).uint64(message.estimateCowSize); + return writer; + }; + + /** + * Encodes the specified PartitionUpdate message, length delimited. Does not implicitly {@link chromeos_update_engine.PartitionUpdate.verify|verify} messages. + * @function encodeDelimited + * @memberof chromeos_update_engine.PartitionUpdate + * @static + * @param {chromeos_update_engine.IPartitionUpdate} message PartitionUpdate message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PartitionUpdate.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PartitionUpdate message from the specified reader or buffer. + * @function decode + * @memberof chromeos_update_engine.PartitionUpdate + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {chromeos_update_engine.PartitionUpdate} PartitionUpdate + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PartitionUpdate.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.chromeos_update_engine.PartitionUpdate(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.partitionName = reader.string(); + break; + case 2: + message.runPostinstall = reader.bool(); + break; + case 3: + message.postinstallPath = reader.string(); + break; + case 4: + message.filesystemType = reader.string(); + break; + case 5: + if (!(message.newPartitionSignature && message.newPartitionSignature.length)) + message.newPartitionSignature = []; + message.newPartitionSignature.push($root.chromeos_update_engine.Signatures.Signature.decode(reader, reader.uint32())); + break; + case 6: + message.oldPartitionInfo = $root.chromeos_update_engine.PartitionInfo.decode(reader, reader.uint32()); + break; + case 7: + message.newPartitionInfo = $root.chromeos_update_engine.PartitionInfo.decode(reader, reader.uint32()); + break; + case 8: + if (!(message.operations && message.operations.length)) + message.operations = []; + message.operations.push($root.chromeos_update_engine.InstallOperation.decode(reader, reader.uint32())); + break; + case 9: + message.postinstallOptional = reader.bool(); + break; + case 10: + message.hashTreeDataExtent = $root.chromeos_update_engine.Extent.decode(reader, reader.uint32()); + break; + case 11: + message.hashTreeExtent = $root.chromeos_update_engine.Extent.decode(reader, reader.uint32()); + break; + case 12: + message.hashTreeAlgorithm = reader.string(); + break; + case 13: + message.hashTreeSalt = reader.bytes(); + break; + case 14: + message.fecDataExtent = $root.chromeos_update_engine.Extent.decode(reader, reader.uint32()); + break; + case 15: + message.fecExtent = $root.chromeos_update_engine.Extent.decode(reader, reader.uint32()); + break; + case 16: + message.fecRoots = reader.uint32(); + break; + case 17: + message.version = reader.string(); + break; + case 18: + if (!(message.mergeOperations && message.mergeOperations.length)) + message.mergeOperations = []; + message.mergeOperations.push($root.chromeos_update_engine.CowMergeOperation.decode(reader, reader.uint32())); + break; + case 19: + message.estimateCowSize = reader.uint64(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("partitionName")) + throw $util.ProtocolError("missing required 'partitionName'", { instance: message }); + return message; + }; + + /** + * Decodes a PartitionUpdate message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof chromeos_update_engine.PartitionUpdate + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {chromeos_update_engine.PartitionUpdate} PartitionUpdate + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PartitionUpdate.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PartitionUpdate message. + * @function verify + * @memberof chromeos_update_engine.PartitionUpdate + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PartitionUpdate.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (!$util.isString(message.partitionName)) + return "partitionName: string expected"; + if (message.runPostinstall != null && message.hasOwnProperty("runPostinstall")) + if (typeof message.runPostinstall !== "boolean") + return "runPostinstall: boolean expected"; + if (message.postinstallPath != null && message.hasOwnProperty("postinstallPath")) + if (!$util.isString(message.postinstallPath)) + return "postinstallPath: string expected"; + if (message.filesystemType != null && message.hasOwnProperty("filesystemType")) + if (!$util.isString(message.filesystemType)) + return "filesystemType: string expected"; + if (message.newPartitionSignature != null && message.hasOwnProperty("newPartitionSignature")) { + if (!Array.isArray(message.newPartitionSignature)) + return "newPartitionSignature: array expected"; + for (let i = 0; i < message.newPartitionSignature.length; ++i) { + let error = $root.chromeos_update_engine.Signatures.Signature.verify(message.newPartitionSignature[i]); + if (error) + return "newPartitionSignature." + error; + } + } + if (message.oldPartitionInfo != null && message.hasOwnProperty("oldPartitionInfo")) { + let error = $root.chromeos_update_engine.PartitionInfo.verify(message.oldPartitionInfo); + if (error) + return "oldPartitionInfo." + error; + } + if (message.newPartitionInfo != null && message.hasOwnProperty("newPartitionInfo")) { + let error = $root.chromeos_update_engine.PartitionInfo.verify(message.newPartitionInfo); + if (error) + return "newPartitionInfo." + error; + } + if (message.operations != null && message.hasOwnProperty("operations")) { + if (!Array.isArray(message.operations)) + return "operations: array expected"; + for (let i = 0; i < message.operations.length; ++i) { + let error = $root.chromeos_update_engine.InstallOperation.verify(message.operations[i]); + if (error) + return "operations." + error; + } + } + if (message.postinstallOptional != null && message.hasOwnProperty("postinstallOptional")) + if (typeof message.postinstallOptional !== "boolean") + return "postinstallOptional: boolean expected"; + if (message.hashTreeDataExtent != null && message.hasOwnProperty("hashTreeDataExtent")) { + let error = $root.chromeos_update_engine.Extent.verify(message.hashTreeDataExtent); + if (error) + return "hashTreeDataExtent." + error; + } + if (message.hashTreeExtent != null && message.hasOwnProperty("hashTreeExtent")) { + let error = $root.chromeos_update_engine.Extent.verify(message.hashTreeExtent); + if (error) + return "hashTreeExtent." + error; + } + if (message.hashTreeAlgorithm != null && message.hasOwnProperty("hashTreeAlgorithm")) + if (!$util.isString(message.hashTreeAlgorithm)) + return "hashTreeAlgorithm: string expected"; + if (message.hashTreeSalt != null && message.hasOwnProperty("hashTreeSalt")) + if (!(message.hashTreeSalt && typeof message.hashTreeSalt.length === "number" || $util.isString(message.hashTreeSalt))) + return "hashTreeSalt: buffer expected"; + if (message.fecDataExtent != null && message.hasOwnProperty("fecDataExtent")) { + let error = $root.chromeos_update_engine.Extent.verify(message.fecDataExtent); + if (error) + return "fecDataExtent." + error; + } + if (message.fecExtent != null && message.hasOwnProperty("fecExtent")) { + let error = $root.chromeos_update_engine.Extent.verify(message.fecExtent); + if (error) + return "fecExtent." + error; + } + if (message.fecRoots != null && message.hasOwnProperty("fecRoots")) + if (!$util.isInteger(message.fecRoots)) + return "fecRoots: integer expected"; + if (message.version != null && message.hasOwnProperty("version")) + if (!$util.isString(message.version)) + return "version: string expected"; + if (message.mergeOperations != null && message.hasOwnProperty("mergeOperations")) { + if (!Array.isArray(message.mergeOperations)) + return "mergeOperations: array expected"; + for (let i = 0; i < message.mergeOperations.length; ++i) { + let error = $root.chromeos_update_engine.CowMergeOperation.verify(message.mergeOperations[i]); + if (error) + return "mergeOperations." + error; + } + } + if (message.estimateCowSize != null && message.hasOwnProperty("estimateCowSize")) + if (!$util.isInteger(message.estimateCowSize) && !(message.estimateCowSize && $util.isInteger(message.estimateCowSize.low) && $util.isInteger(message.estimateCowSize.high))) + return "estimateCowSize: integer|Long expected"; + return null; + }; + + /** + * Creates a PartitionUpdate message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof chromeos_update_engine.PartitionUpdate + * @static + * @param {Object.} object Plain object + * @returns {chromeos_update_engine.PartitionUpdate} PartitionUpdate + */ + PartitionUpdate.fromObject = function fromObject(object) { + if (object instanceof $root.chromeos_update_engine.PartitionUpdate) + return object; + let message = new $root.chromeos_update_engine.PartitionUpdate(); + if (object.partitionName != null) + message.partitionName = String(object.partitionName); + if (object.runPostinstall != null) + message.runPostinstall = Boolean(object.runPostinstall); + if (object.postinstallPath != null) + message.postinstallPath = String(object.postinstallPath); + if (object.filesystemType != null) + message.filesystemType = String(object.filesystemType); + if (object.newPartitionSignature) { + if (!Array.isArray(object.newPartitionSignature)) + throw TypeError(".chromeos_update_engine.PartitionUpdate.newPartitionSignature: array expected"); + message.newPartitionSignature = []; + for (let i = 0; i < object.newPartitionSignature.length; ++i) { + if (typeof object.newPartitionSignature[i] !== "object") + throw TypeError(".chromeos_update_engine.PartitionUpdate.newPartitionSignature: object expected"); + message.newPartitionSignature[i] = $root.chromeos_update_engine.Signatures.Signature.fromObject(object.newPartitionSignature[i]); + } + } + if (object.oldPartitionInfo != null) { + if (typeof object.oldPartitionInfo !== "object") + throw TypeError(".chromeos_update_engine.PartitionUpdate.oldPartitionInfo: object expected"); + message.oldPartitionInfo = $root.chromeos_update_engine.PartitionInfo.fromObject(object.oldPartitionInfo); + } + if (object.newPartitionInfo != null) { + if (typeof object.newPartitionInfo !== "object") + throw TypeError(".chromeos_update_engine.PartitionUpdate.newPartitionInfo: object expected"); + message.newPartitionInfo = $root.chromeos_update_engine.PartitionInfo.fromObject(object.newPartitionInfo); + } + if (object.operations) { + if (!Array.isArray(object.operations)) + throw TypeError(".chromeos_update_engine.PartitionUpdate.operations: array expected"); + message.operations = []; + for (let i = 0; i < object.operations.length; ++i) { + if (typeof object.operations[i] !== "object") + throw TypeError(".chromeos_update_engine.PartitionUpdate.operations: object expected"); + message.operations[i] = $root.chromeos_update_engine.InstallOperation.fromObject(object.operations[i]); + } + } + if (object.postinstallOptional != null) + message.postinstallOptional = Boolean(object.postinstallOptional); + if (object.hashTreeDataExtent != null) { + if (typeof object.hashTreeDataExtent !== "object") + throw TypeError(".chromeos_update_engine.PartitionUpdate.hashTreeDataExtent: object expected"); + message.hashTreeDataExtent = $root.chromeos_update_engine.Extent.fromObject(object.hashTreeDataExtent); + } + if (object.hashTreeExtent != null) { + if (typeof object.hashTreeExtent !== "object") + throw TypeError(".chromeos_update_engine.PartitionUpdate.hashTreeExtent: object expected"); + message.hashTreeExtent = $root.chromeos_update_engine.Extent.fromObject(object.hashTreeExtent); + } + if (object.hashTreeAlgorithm != null) + message.hashTreeAlgorithm = String(object.hashTreeAlgorithm); + if (object.hashTreeSalt != null) + if (typeof object.hashTreeSalt === "string") + $util.base64.decode(object.hashTreeSalt, message.hashTreeSalt = $util.newBuffer($util.base64.length(object.hashTreeSalt)), 0); + else if (object.hashTreeSalt.length) + message.hashTreeSalt = object.hashTreeSalt; + if (object.fecDataExtent != null) { + if (typeof object.fecDataExtent !== "object") + throw TypeError(".chromeos_update_engine.PartitionUpdate.fecDataExtent: object expected"); + message.fecDataExtent = $root.chromeos_update_engine.Extent.fromObject(object.fecDataExtent); + } + if (object.fecExtent != null) { + if (typeof object.fecExtent !== "object") + throw TypeError(".chromeos_update_engine.PartitionUpdate.fecExtent: object expected"); + message.fecExtent = $root.chromeos_update_engine.Extent.fromObject(object.fecExtent); + } + if (object.fecRoots != null) + message.fecRoots = object.fecRoots >>> 0; + if (object.version != null) + message.version = String(object.version); + if (object.mergeOperations) { + if (!Array.isArray(object.mergeOperations)) + throw TypeError(".chromeos_update_engine.PartitionUpdate.mergeOperations: array expected"); + message.mergeOperations = []; + for (let i = 0; i < object.mergeOperations.length; ++i) { + if (typeof object.mergeOperations[i] !== "object") + throw TypeError(".chromeos_update_engine.PartitionUpdate.mergeOperations: object expected"); + message.mergeOperations[i] = $root.chromeos_update_engine.CowMergeOperation.fromObject(object.mergeOperations[i]); + } + } + if (object.estimateCowSize != null) + if ($util.Long) + (message.estimateCowSize = $util.Long.fromValue(object.estimateCowSize)).unsigned = true; + else if (typeof object.estimateCowSize === "string") + message.estimateCowSize = parseInt(object.estimateCowSize, 10); + else if (typeof object.estimateCowSize === "number") + message.estimateCowSize = object.estimateCowSize; + else if (typeof object.estimateCowSize === "object") + message.estimateCowSize = new $util.LongBits(object.estimateCowSize.low >>> 0, object.estimateCowSize.high >>> 0).toNumber(true); + return message; + }; + + /** + * Creates a plain object from a PartitionUpdate message. Also converts values to other types if specified. + * @function toObject + * @memberof chromeos_update_engine.PartitionUpdate + * @static + * @param {chromeos_update_engine.PartitionUpdate} message PartitionUpdate + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PartitionUpdate.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.arrays || options.defaults) { + object.newPartitionSignature = []; + object.operations = []; + object.mergeOperations = []; + } + if (options.defaults) { + object.partitionName = ""; + object.runPostinstall = false; + object.postinstallPath = ""; + object.filesystemType = ""; + object.oldPartitionInfo = null; + object.newPartitionInfo = null; + object.postinstallOptional = false; + object.hashTreeDataExtent = null; + object.hashTreeExtent = null; + object.hashTreeAlgorithm = ""; + if (options.bytes === String) + object.hashTreeSalt = ""; + else { + object.hashTreeSalt = []; + if (options.bytes !== Array) + object.hashTreeSalt = $util.newBuffer(object.hashTreeSalt); + } + object.fecDataExtent = null; + object.fecExtent = null; + object.fecRoots = 2; + object.version = ""; + if ($util.Long) { + let long = new $util.Long(0, 0, true); + object.estimateCowSize = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.estimateCowSize = options.longs === String ? "0" : 0; + } + if (message.partitionName != null && message.hasOwnProperty("partitionName")) + object.partitionName = message.partitionName; + if (message.runPostinstall != null && message.hasOwnProperty("runPostinstall")) + object.runPostinstall = message.runPostinstall; + if (message.postinstallPath != null && message.hasOwnProperty("postinstallPath")) + object.postinstallPath = message.postinstallPath; + if (message.filesystemType != null && message.hasOwnProperty("filesystemType")) + object.filesystemType = message.filesystemType; + if (message.newPartitionSignature && message.newPartitionSignature.length) { + object.newPartitionSignature = []; + for (let j = 0; j < message.newPartitionSignature.length; ++j) + object.newPartitionSignature[j] = $root.chromeos_update_engine.Signatures.Signature.toObject(message.newPartitionSignature[j], options); + } + if (message.oldPartitionInfo != null && message.hasOwnProperty("oldPartitionInfo")) + object.oldPartitionInfo = $root.chromeos_update_engine.PartitionInfo.toObject(message.oldPartitionInfo, options); + if (message.newPartitionInfo != null && message.hasOwnProperty("newPartitionInfo")) + object.newPartitionInfo = $root.chromeos_update_engine.PartitionInfo.toObject(message.newPartitionInfo, options); + if (message.operations && message.operations.length) { + object.operations = []; + for (let j = 0; j < message.operations.length; ++j) + object.operations[j] = $root.chromeos_update_engine.InstallOperation.toObject(message.operations[j], options); + } + if (message.postinstallOptional != null && message.hasOwnProperty("postinstallOptional")) + object.postinstallOptional = message.postinstallOptional; + if (message.hashTreeDataExtent != null && message.hasOwnProperty("hashTreeDataExtent")) + object.hashTreeDataExtent = $root.chromeos_update_engine.Extent.toObject(message.hashTreeDataExtent, options); + if (message.hashTreeExtent != null && message.hasOwnProperty("hashTreeExtent")) + object.hashTreeExtent = $root.chromeos_update_engine.Extent.toObject(message.hashTreeExtent, options); + if (message.hashTreeAlgorithm != null && message.hasOwnProperty("hashTreeAlgorithm")) + object.hashTreeAlgorithm = message.hashTreeAlgorithm; + if (message.hashTreeSalt != null && message.hasOwnProperty("hashTreeSalt")) + object.hashTreeSalt = options.bytes === String ? $util.base64.encode(message.hashTreeSalt, 0, message.hashTreeSalt.length) : options.bytes === Array ? Array.prototype.slice.call(message.hashTreeSalt) : message.hashTreeSalt; + if (message.fecDataExtent != null && message.hasOwnProperty("fecDataExtent")) + object.fecDataExtent = $root.chromeos_update_engine.Extent.toObject(message.fecDataExtent, options); + if (message.fecExtent != null && message.hasOwnProperty("fecExtent")) + object.fecExtent = $root.chromeos_update_engine.Extent.toObject(message.fecExtent, options); + if (message.fecRoots != null && message.hasOwnProperty("fecRoots")) + object.fecRoots = message.fecRoots; + if (message.version != null && message.hasOwnProperty("version")) + object.version = message.version; + if (message.mergeOperations && message.mergeOperations.length) { + object.mergeOperations = []; + for (let j = 0; j < message.mergeOperations.length; ++j) + object.mergeOperations[j] = $root.chromeos_update_engine.CowMergeOperation.toObject(message.mergeOperations[j], options); + } + if (message.estimateCowSize != null && message.hasOwnProperty("estimateCowSize")) + if (typeof message.estimateCowSize === "number") + object.estimateCowSize = options.longs === String ? String(message.estimateCowSize) : message.estimateCowSize; + else + object.estimateCowSize = options.longs === String ? $util.Long.prototype.toString.call(message.estimateCowSize) : options.longs === Number ? new $util.LongBits(message.estimateCowSize.low >>> 0, message.estimateCowSize.high >>> 0).toNumber(true) : message.estimateCowSize; + return object; + }; + + /** + * Converts this PartitionUpdate to JSON. + * @function toJSON + * @memberof chromeos_update_engine.PartitionUpdate + * @instance + * @returns {Object.} JSON object + */ + PartitionUpdate.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return PartitionUpdate; + })(); + + chromeos_update_engine.DynamicPartitionGroup = (function() { + + /** + * Properties of a DynamicPartitionGroup. + * @memberof chromeos_update_engine + * @interface IDynamicPartitionGroup + * @property {string} name DynamicPartitionGroup name + * @property {number|Long|null} [size] DynamicPartitionGroup size + * @property {Array.|null} [partitionNames] DynamicPartitionGroup partitionNames + */ + + /** + * Constructs a new DynamicPartitionGroup. + * @memberof chromeos_update_engine + * @classdesc Represents a DynamicPartitionGroup. + * @implements IDynamicPartitionGroup + * @constructor + * @param {chromeos_update_engine.IDynamicPartitionGroup=} [properties] Properties to set + */ + function DynamicPartitionGroup(properties) { + this.partitionNames = []; + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * DynamicPartitionGroup name. + * @member {string} name + * @memberof chromeos_update_engine.DynamicPartitionGroup + * @instance + */ + DynamicPartitionGroup.prototype.name = ""; + + /** + * DynamicPartitionGroup size. + * @member {number|Long} size + * @memberof chromeos_update_engine.DynamicPartitionGroup + * @instance + */ + DynamicPartitionGroup.prototype.size = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * DynamicPartitionGroup partitionNames. + * @member {Array.} partitionNames + * @memberof chromeos_update_engine.DynamicPartitionGroup + * @instance + */ + DynamicPartitionGroup.prototype.partitionNames = $util.emptyArray; + + /** + * Creates a new DynamicPartitionGroup instance using the specified properties. + * @function create + * @memberof chromeos_update_engine.DynamicPartitionGroup + * @static + * @param {chromeos_update_engine.IDynamicPartitionGroup=} [properties] Properties to set + * @returns {chromeos_update_engine.DynamicPartitionGroup} DynamicPartitionGroup instance + */ + DynamicPartitionGroup.create = function create(properties) { + return new DynamicPartitionGroup(properties); + }; + + /** + * Encodes the specified DynamicPartitionGroup message. Does not implicitly {@link chromeos_update_engine.DynamicPartitionGroup.verify|verify} messages. + * @function encode + * @memberof chromeos_update_engine.DynamicPartitionGroup + * @static + * @param {chromeos_update_engine.IDynamicPartitionGroup} message DynamicPartitionGroup message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DynamicPartitionGroup.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.size != null && Object.hasOwnProperty.call(message, "size")) + writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.size); + if (message.partitionNames != null && message.partitionNames.length) + for (let i = 0; i < message.partitionNames.length; ++i) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.partitionNames[i]); + return writer; + }; + + /** + * Encodes the specified DynamicPartitionGroup message, length delimited. Does not implicitly {@link chromeos_update_engine.DynamicPartitionGroup.verify|verify} messages. + * @function encodeDelimited + * @memberof chromeos_update_engine.DynamicPartitionGroup + * @static + * @param {chromeos_update_engine.IDynamicPartitionGroup} message DynamicPartitionGroup message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DynamicPartitionGroup.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DynamicPartitionGroup message from the specified reader or buffer. + * @function decode + * @memberof chromeos_update_engine.DynamicPartitionGroup + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {chromeos_update_engine.DynamicPartitionGroup} DynamicPartitionGroup + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DynamicPartitionGroup.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.chromeos_update_engine.DynamicPartitionGroup(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + message.size = reader.uint64(); + break; + case 3: + if (!(message.partitionNames && message.partitionNames.length)) + message.partitionNames = []; + message.partitionNames.push(reader.string()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("name")) + throw $util.ProtocolError("missing required 'name'", { instance: message }); + return message; + }; + + /** + * Decodes a DynamicPartitionGroup message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof chromeos_update_engine.DynamicPartitionGroup + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {chromeos_update_engine.DynamicPartitionGroup} DynamicPartitionGroup + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DynamicPartitionGroup.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DynamicPartitionGroup message. + * @function verify + * @memberof chromeos_update_engine.DynamicPartitionGroup + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DynamicPartitionGroup.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.size != null && message.hasOwnProperty("size")) + if (!$util.isInteger(message.size) && !(message.size && $util.isInteger(message.size.low) && $util.isInteger(message.size.high))) + return "size: integer|Long expected"; + if (message.partitionNames != null && message.hasOwnProperty("partitionNames")) { + if (!Array.isArray(message.partitionNames)) + return "partitionNames: array expected"; + for (let i = 0; i < message.partitionNames.length; ++i) + if (!$util.isString(message.partitionNames[i])) + return "partitionNames: string[] expected"; + } + return null; + }; + + /** + * Creates a DynamicPartitionGroup message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof chromeos_update_engine.DynamicPartitionGroup + * @static + * @param {Object.} object Plain object + * @returns {chromeos_update_engine.DynamicPartitionGroup} DynamicPartitionGroup + */ + DynamicPartitionGroup.fromObject = function fromObject(object) { + if (object instanceof $root.chromeos_update_engine.DynamicPartitionGroup) + return object; + let message = new $root.chromeos_update_engine.DynamicPartitionGroup(); + if (object.name != null) + message.name = String(object.name); + if (object.size != null) + if ($util.Long) + (message.size = $util.Long.fromValue(object.size)).unsigned = true; + else if (typeof object.size === "string") + message.size = parseInt(object.size, 10); + else if (typeof object.size === "number") + message.size = object.size; + else if (typeof object.size === "object") + message.size = new $util.LongBits(object.size.low >>> 0, object.size.high >>> 0).toNumber(true); + if (object.partitionNames) { + if (!Array.isArray(object.partitionNames)) + throw TypeError(".chromeos_update_engine.DynamicPartitionGroup.partitionNames: array expected"); + message.partitionNames = []; + for (let i = 0; i < object.partitionNames.length; ++i) + message.partitionNames[i] = String(object.partitionNames[i]); + } + return message; + }; + + /** + * Creates a plain object from a DynamicPartitionGroup message. Also converts values to other types if specified. + * @function toObject + * @memberof chromeos_update_engine.DynamicPartitionGroup + * @static + * @param {chromeos_update_engine.DynamicPartitionGroup} message DynamicPartitionGroup + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DynamicPartitionGroup.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.arrays || options.defaults) + object.partitionNames = []; + if (options.defaults) { + object.name = ""; + if ($util.Long) { + let long = new $util.Long(0, 0, true); + object.size = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.size = options.longs === String ? "0" : 0; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.size != null && message.hasOwnProperty("size")) + if (typeof message.size === "number") + object.size = options.longs === String ? String(message.size) : message.size; + else + object.size = options.longs === String ? $util.Long.prototype.toString.call(message.size) : options.longs === Number ? new $util.LongBits(message.size.low >>> 0, message.size.high >>> 0).toNumber(true) : message.size; + if (message.partitionNames && message.partitionNames.length) { + object.partitionNames = []; + for (let j = 0; j < message.partitionNames.length; ++j) + object.partitionNames[j] = message.partitionNames[j]; + } + return object; + }; + + /** + * Converts this DynamicPartitionGroup to JSON. + * @function toJSON + * @memberof chromeos_update_engine.DynamicPartitionGroup + * @instance + * @returns {Object.} JSON object + */ + DynamicPartitionGroup.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return DynamicPartitionGroup; + })(); + + chromeos_update_engine.DynamicPartitionMetadata = (function() { + + /** + * Properties of a DynamicPartitionMetadata. + * @memberof chromeos_update_engine + * @interface IDynamicPartitionMetadata + * @property {Array.|null} [groups] DynamicPartitionMetadata groups + * @property {boolean|null} [snapshotEnabled] DynamicPartitionMetadata snapshotEnabled + * @property {boolean|null} [vabcEnabled] DynamicPartitionMetadata vabcEnabled + * @property {string|null} [vabcCompressionParam] DynamicPartitionMetadata vabcCompressionParam + * @property {number|null} [cowVersion] DynamicPartitionMetadata cowVersion + */ + + /** + * Constructs a new DynamicPartitionMetadata. + * @memberof chromeos_update_engine + * @classdesc Represents a DynamicPartitionMetadata. + * @implements IDynamicPartitionMetadata + * @constructor + * @param {chromeos_update_engine.IDynamicPartitionMetadata=} [properties] Properties to set + */ + function DynamicPartitionMetadata(properties) { + this.groups = []; + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * DynamicPartitionMetadata groups. + * @member {Array.} groups + * @memberof chromeos_update_engine.DynamicPartitionMetadata + * @instance + */ + DynamicPartitionMetadata.prototype.groups = $util.emptyArray; + + /** + * DynamicPartitionMetadata snapshotEnabled. + * @member {boolean} snapshotEnabled + * @memberof chromeos_update_engine.DynamicPartitionMetadata + * @instance + */ + DynamicPartitionMetadata.prototype.snapshotEnabled = false; + + /** + * DynamicPartitionMetadata vabcEnabled. + * @member {boolean} vabcEnabled + * @memberof chromeos_update_engine.DynamicPartitionMetadata + * @instance + */ + DynamicPartitionMetadata.prototype.vabcEnabled = false; + + /** + * DynamicPartitionMetadata vabcCompressionParam. + * @member {string} vabcCompressionParam + * @memberof chromeos_update_engine.DynamicPartitionMetadata + * @instance + */ + DynamicPartitionMetadata.prototype.vabcCompressionParam = ""; + + /** + * DynamicPartitionMetadata cowVersion. + * @member {number} cowVersion + * @memberof chromeos_update_engine.DynamicPartitionMetadata + * @instance + */ + DynamicPartitionMetadata.prototype.cowVersion = 0; + + /** + * Creates a new DynamicPartitionMetadata instance using the specified properties. + * @function create + * @memberof chromeos_update_engine.DynamicPartitionMetadata + * @static + * @param {chromeos_update_engine.IDynamicPartitionMetadata=} [properties] Properties to set + * @returns {chromeos_update_engine.DynamicPartitionMetadata} DynamicPartitionMetadata instance + */ + DynamicPartitionMetadata.create = function create(properties) { + return new DynamicPartitionMetadata(properties); + }; + + /** + * Encodes the specified DynamicPartitionMetadata message. Does not implicitly {@link chromeos_update_engine.DynamicPartitionMetadata.verify|verify} messages. + * @function encode + * @memberof chromeos_update_engine.DynamicPartitionMetadata + * @static + * @param {chromeos_update_engine.IDynamicPartitionMetadata} message DynamicPartitionMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DynamicPartitionMetadata.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.groups != null && message.groups.length) + for (let i = 0; i < message.groups.length; ++i) + $root.chromeos_update_engine.DynamicPartitionGroup.encode(message.groups[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.snapshotEnabled != null && Object.hasOwnProperty.call(message, "snapshotEnabled")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.snapshotEnabled); + if (message.vabcEnabled != null && Object.hasOwnProperty.call(message, "vabcEnabled")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.vabcEnabled); + if (message.vabcCompressionParam != null && Object.hasOwnProperty.call(message, "vabcCompressionParam")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.vabcCompressionParam); + if (message.cowVersion != null && Object.hasOwnProperty.call(message, "cowVersion")) + writer.uint32(/* id 5, wireType 0 =*/40).uint32(message.cowVersion); + return writer; + }; + + /** + * Encodes the specified DynamicPartitionMetadata message, length delimited. Does not implicitly {@link chromeos_update_engine.DynamicPartitionMetadata.verify|verify} messages. + * @function encodeDelimited + * @memberof chromeos_update_engine.DynamicPartitionMetadata + * @static + * @param {chromeos_update_engine.IDynamicPartitionMetadata} message DynamicPartitionMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DynamicPartitionMetadata.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DynamicPartitionMetadata message from the specified reader or buffer. + * @function decode + * @memberof chromeos_update_engine.DynamicPartitionMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {chromeos_update_engine.DynamicPartitionMetadata} DynamicPartitionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DynamicPartitionMetadata.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.chromeos_update_engine.DynamicPartitionMetadata(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.groups && message.groups.length)) + message.groups = []; + message.groups.push($root.chromeos_update_engine.DynamicPartitionGroup.decode(reader, reader.uint32())); + break; + case 2: + message.snapshotEnabled = reader.bool(); + break; + case 3: + message.vabcEnabled = reader.bool(); + break; + case 4: + message.vabcCompressionParam = reader.string(); + break; + case 5: + message.cowVersion = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DynamicPartitionMetadata message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof chromeos_update_engine.DynamicPartitionMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {chromeos_update_engine.DynamicPartitionMetadata} DynamicPartitionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DynamicPartitionMetadata.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DynamicPartitionMetadata message. + * @function verify + * @memberof chromeos_update_engine.DynamicPartitionMetadata + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DynamicPartitionMetadata.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.groups != null && message.hasOwnProperty("groups")) { + if (!Array.isArray(message.groups)) + return "groups: array expected"; + for (let i = 0; i < message.groups.length; ++i) { + let error = $root.chromeos_update_engine.DynamicPartitionGroup.verify(message.groups[i]); + if (error) + return "groups." + error; + } + } + if (message.snapshotEnabled != null && message.hasOwnProperty("snapshotEnabled")) + if (typeof message.snapshotEnabled !== "boolean") + return "snapshotEnabled: boolean expected"; + if (message.vabcEnabled != null && message.hasOwnProperty("vabcEnabled")) + if (typeof message.vabcEnabled !== "boolean") + return "vabcEnabled: boolean expected"; + if (message.vabcCompressionParam != null && message.hasOwnProperty("vabcCompressionParam")) + if (!$util.isString(message.vabcCompressionParam)) + return "vabcCompressionParam: string expected"; + if (message.cowVersion != null && message.hasOwnProperty("cowVersion")) + if (!$util.isInteger(message.cowVersion)) + return "cowVersion: integer expected"; + return null; + }; + + /** + * Creates a DynamicPartitionMetadata message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof chromeos_update_engine.DynamicPartitionMetadata + * @static + * @param {Object.} object Plain object + * @returns {chromeos_update_engine.DynamicPartitionMetadata} DynamicPartitionMetadata + */ + DynamicPartitionMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.chromeos_update_engine.DynamicPartitionMetadata) + return object; + let message = new $root.chromeos_update_engine.DynamicPartitionMetadata(); + if (object.groups) { + if (!Array.isArray(object.groups)) + throw TypeError(".chromeos_update_engine.DynamicPartitionMetadata.groups: array expected"); + message.groups = []; + for (let i = 0; i < object.groups.length; ++i) { + if (typeof object.groups[i] !== "object") + throw TypeError(".chromeos_update_engine.DynamicPartitionMetadata.groups: object expected"); + message.groups[i] = $root.chromeos_update_engine.DynamicPartitionGroup.fromObject(object.groups[i]); + } + } + if (object.snapshotEnabled != null) + message.snapshotEnabled = Boolean(object.snapshotEnabled); + if (object.vabcEnabled != null) + message.vabcEnabled = Boolean(object.vabcEnabled); + if (object.vabcCompressionParam != null) + message.vabcCompressionParam = String(object.vabcCompressionParam); + if (object.cowVersion != null) + message.cowVersion = object.cowVersion >>> 0; + return message; + }; + + /** + * Creates a plain object from a DynamicPartitionMetadata message. Also converts values to other types if specified. + * @function toObject + * @memberof chromeos_update_engine.DynamicPartitionMetadata + * @static + * @param {chromeos_update_engine.DynamicPartitionMetadata} message DynamicPartitionMetadata + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DynamicPartitionMetadata.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.arrays || options.defaults) + object.groups = []; + if (options.defaults) { + object.snapshotEnabled = false; + object.vabcEnabled = false; + object.vabcCompressionParam = ""; + object.cowVersion = 0; + } + if (message.groups && message.groups.length) { + object.groups = []; + for (let j = 0; j < message.groups.length; ++j) + object.groups[j] = $root.chromeos_update_engine.DynamicPartitionGroup.toObject(message.groups[j], options); + } + if (message.snapshotEnabled != null && message.hasOwnProperty("snapshotEnabled")) + object.snapshotEnabled = message.snapshotEnabled; + if (message.vabcEnabled != null && message.hasOwnProperty("vabcEnabled")) + object.vabcEnabled = message.vabcEnabled; + if (message.vabcCompressionParam != null && message.hasOwnProperty("vabcCompressionParam")) + object.vabcCompressionParam = message.vabcCompressionParam; + if (message.cowVersion != null && message.hasOwnProperty("cowVersion")) + object.cowVersion = message.cowVersion; + return object; + }; + + /** + * Converts this DynamicPartitionMetadata to JSON. + * @function toJSON + * @memberof chromeos_update_engine.DynamicPartitionMetadata + * @instance + * @returns {Object.} JSON object + */ + DynamicPartitionMetadata.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return DynamicPartitionMetadata; + })(); + + chromeos_update_engine.ApexInfo = (function() { + + /** + * Properties of an ApexInfo. + * @memberof chromeos_update_engine + * @interface IApexInfo + * @property {string|null} [packageName] ApexInfo packageName + * @property {number|Long|null} [version] ApexInfo version + * @property {boolean|null} [isCompressed] ApexInfo isCompressed + * @property {number|Long|null} [decompressedSize] ApexInfo decompressedSize + */ + + /** + * Constructs a new ApexInfo. + * @memberof chromeos_update_engine + * @classdesc Represents an ApexInfo. + * @implements IApexInfo + * @constructor + * @param {chromeos_update_engine.IApexInfo=} [properties] Properties to set + */ + function ApexInfo(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ApexInfo packageName. + * @member {string} packageName + * @memberof chromeos_update_engine.ApexInfo + * @instance + */ + ApexInfo.prototype.packageName = ""; + + /** + * ApexInfo version. + * @member {number|Long} version + * @memberof chromeos_update_engine.ApexInfo + * @instance + */ + ApexInfo.prototype.version = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * ApexInfo isCompressed. + * @member {boolean} isCompressed + * @memberof chromeos_update_engine.ApexInfo + * @instance + */ + ApexInfo.prototype.isCompressed = false; + + /** + * ApexInfo decompressedSize. + * @member {number|Long} decompressedSize + * @memberof chromeos_update_engine.ApexInfo + * @instance + */ + ApexInfo.prototype.decompressedSize = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * Creates a new ApexInfo instance using the specified properties. + * @function create + * @memberof chromeos_update_engine.ApexInfo + * @static + * @param {chromeos_update_engine.IApexInfo=} [properties] Properties to set + * @returns {chromeos_update_engine.ApexInfo} ApexInfo instance + */ + ApexInfo.create = function create(properties) { + return new ApexInfo(properties); + }; + + /** + * Encodes the specified ApexInfo message. Does not implicitly {@link chromeos_update_engine.ApexInfo.verify|verify} messages. + * @function encode + * @memberof chromeos_update_engine.ApexInfo + * @static + * @param {chromeos_update_engine.IApexInfo} message ApexInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ApexInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.packageName != null && Object.hasOwnProperty.call(message, "packageName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.packageName); + if (message.version != null && Object.hasOwnProperty.call(message, "version")) + writer.uint32(/* id 2, wireType 0 =*/16).int64(message.version); + if (message.isCompressed != null && Object.hasOwnProperty.call(message, "isCompressed")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.isCompressed); + if (message.decompressedSize != null && Object.hasOwnProperty.call(message, "decompressedSize")) + writer.uint32(/* id 4, wireType 0 =*/32).int64(message.decompressedSize); + return writer; + }; + + /** + * Encodes the specified ApexInfo message, length delimited. Does not implicitly {@link chromeos_update_engine.ApexInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof chromeos_update_engine.ApexInfo + * @static + * @param {chromeos_update_engine.IApexInfo} message ApexInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ApexInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an ApexInfo message from the specified reader or buffer. + * @function decode + * @memberof chromeos_update_engine.ApexInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {chromeos_update_engine.ApexInfo} ApexInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ApexInfo.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.chromeos_update_engine.ApexInfo(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.packageName = reader.string(); + break; + case 2: + message.version = reader.int64(); + break; + case 3: + message.isCompressed = reader.bool(); + break; + case 4: + message.decompressedSize = reader.int64(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an ApexInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof chromeos_update_engine.ApexInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {chromeos_update_engine.ApexInfo} ApexInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ApexInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an ApexInfo message. + * @function verify + * @memberof chromeos_update_engine.ApexInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ApexInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.packageName != null && message.hasOwnProperty("packageName")) + if (!$util.isString(message.packageName)) + return "packageName: string expected"; + if (message.version != null && message.hasOwnProperty("version")) + if (!$util.isInteger(message.version) && !(message.version && $util.isInteger(message.version.low) && $util.isInteger(message.version.high))) + return "version: integer|Long expected"; + if (message.isCompressed != null && message.hasOwnProperty("isCompressed")) + if (typeof message.isCompressed !== "boolean") + return "isCompressed: boolean expected"; + if (message.decompressedSize != null && message.hasOwnProperty("decompressedSize")) + if (!$util.isInteger(message.decompressedSize) && !(message.decompressedSize && $util.isInteger(message.decompressedSize.low) && $util.isInteger(message.decompressedSize.high))) + return "decompressedSize: integer|Long expected"; + return null; + }; + + /** + * Creates an ApexInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof chromeos_update_engine.ApexInfo + * @static + * @param {Object.} object Plain object + * @returns {chromeos_update_engine.ApexInfo} ApexInfo + */ + ApexInfo.fromObject = function fromObject(object) { + if (object instanceof $root.chromeos_update_engine.ApexInfo) + return object; + let message = new $root.chromeos_update_engine.ApexInfo(); + if (object.packageName != null) + message.packageName = String(object.packageName); + if (object.version != null) + if ($util.Long) + (message.version = $util.Long.fromValue(object.version)).unsigned = false; + else if (typeof object.version === "string") + message.version = parseInt(object.version, 10); + else if (typeof object.version === "number") + message.version = object.version; + else if (typeof object.version === "object") + message.version = new $util.LongBits(object.version.low >>> 0, object.version.high >>> 0).toNumber(); + if (object.isCompressed != null) + message.isCompressed = Boolean(object.isCompressed); + if (object.decompressedSize != null) + if ($util.Long) + (message.decompressedSize = $util.Long.fromValue(object.decompressedSize)).unsigned = false; + else if (typeof object.decompressedSize === "string") + message.decompressedSize = parseInt(object.decompressedSize, 10); + else if (typeof object.decompressedSize === "number") + message.decompressedSize = object.decompressedSize; + else if (typeof object.decompressedSize === "object") + message.decompressedSize = new $util.LongBits(object.decompressedSize.low >>> 0, object.decompressedSize.high >>> 0).toNumber(); + return message; + }; + + /** + * Creates a plain object from an ApexInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof chromeos_update_engine.ApexInfo + * @static + * @param {chromeos_update_engine.ApexInfo} message ApexInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ApexInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.defaults) { + object.packageName = ""; + if ($util.Long) { + let long = new $util.Long(0, 0, false); + object.version = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.version = options.longs === String ? "0" : 0; + object.isCompressed = false; + if ($util.Long) { + let long = new $util.Long(0, 0, false); + object.decompressedSize = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.decompressedSize = options.longs === String ? "0" : 0; + } + if (message.packageName != null && message.hasOwnProperty("packageName")) + object.packageName = message.packageName; + if (message.version != null && message.hasOwnProperty("version")) + if (typeof message.version === "number") + object.version = options.longs === String ? String(message.version) : message.version; + else + object.version = options.longs === String ? $util.Long.prototype.toString.call(message.version) : options.longs === Number ? new $util.LongBits(message.version.low >>> 0, message.version.high >>> 0).toNumber() : message.version; + if (message.isCompressed != null && message.hasOwnProperty("isCompressed")) + object.isCompressed = message.isCompressed; + if (message.decompressedSize != null && message.hasOwnProperty("decompressedSize")) + if (typeof message.decompressedSize === "number") + object.decompressedSize = options.longs === String ? String(message.decompressedSize) : message.decompressedSize; + else + object.decompressedSize = options.longs === String ? $util.Long.prototype.toString.call(message.decompressedSize) : options.longs === Number ? new $util.LongBits(message.decompressedSize.low >>> 0, message.decompressedSize.high >>> 0).toNumber() : message.decompressedSize; + return object; + }; + + /** + * Converts this ApexInfo to JSON. + * @function toJSON + * @memberof chromeos_update_engine.ApexInfo + * @instance + * @returns {Object.} JSON object + */ + ApexInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ApexInfo; + })(); + + chromeos_update_engine.ApexMetadata = (function() { + + /** + * Properties of an ApexMetadata. + * @memberof chromeos_update_engine + * @interface IApexMetadata + * @property {Array.|null} [apexInfo] ApexMetadata apexInfo + */ + + /** + * Constructs a new ApexMetadata. + * @memberof chromeos_update_engine + * @classdesc Represents an ApexMetadata. + * @implements IApexMetadata + * @constructor + * @param {chromeos_update_engine.IApexMetadata=} [properties] Properties to set + */ + function ApexMetadata(properties) { + this.apexInfo = []; + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ApexMetadata apexInfo. + * @member {Array.} apexInfo + * @memberof chromeos_update_engine.ApexMetadata + * @instance + */ + ApexMetadata.prototype.apexInfo = $util.emptyArray; + + /** + * Creates a new ApexMetadata instance using the specified properties. + * @function create + * @memberof chromeos_update_engine.ApexMetadata + * @static + * @param {chromeos_update_engine.IApexMetadata=} [properties] Properties to set + * @returns {chromeos_update_engine.ApexMetadata} ApexMetadata instance + */ + ApexMetadata.create = function create(properties) { + return new ApexMetadata(properties); + }; + + /** + * Encodes the specified ApexMetadata message. Does not implicitly {@link chromeos_update_engine.ApexMetadata.verify|verify} messages. + * @function encode + * @memberof chromeos_update_engine.ApexMetadata + * @static + * @param {chromeos_update_engine.IApexMetadata} message ApexMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ApexMetadata.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.apexInfo != null && message.apexInfo.length) + for (let i = 0; i < message.apexInfo.length; ++i) + $root.chromeos_update_engine.ApexInfo.encode(message.apexInfo[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified ApexMetadata message, length delimited. Does not implicitly {@link chromeos_update_engine.ApexMetadata.verify|verify} messages. + * @function encodeDelimited + * @memberof chromeos_update_engine.ApexMetadata + * @static + * @param {chromeos_update_engine.IApexMetadata} message ApexMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ApexMetadata.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an ApexMetadata message from the specified reader or buffer. + * @function decode + * @memberof chromeos_update_engine.ApexMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {chromeos_update_engine.ApexMetadata} ApexMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ApexMetadata.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.chromeos_update_engine.ApexMetadata(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.apexInfo && message.apexInfo.length)) + message.apexInfo = []; + message.apexInfo.push($root.chromeos_update_engine.ApexInfo.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an ApexMetadata message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof chromeos_update_engine.ApexMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {chromeos_update_engine.ApexMetadata} ApexMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ApexMetadata.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an ApexMetadata message. + * @function verify + * @memberof chromeos_update_engine.ApexMetadata + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ApexMetadata.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.apexInfo != null && message.hasOwnProperty("apexInfo")) { + if (!Array.isArray(message.apexInfo)) + return "apexInfo: array expected"; + for (let i = 0; i < message.apexInfo.length; ++i) { + let error = $root.chromeos_update_engine.ApexInfo.verify(message.apexInfo[i]); + if (error) + return "apexInfo." + error; + } + } + return null; + }; + + /** + * Creates an ApexMetadata message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof chromeos_update_engine.ApexMetadata + * @static + * @param {Object.} object Plain object + * @returns {chromeos_update_engine.ApexMetadata} ApexMetadata + */ + ApexMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.chromeos_update_engine.ApexMetadata) + return object; + let message = new $root.chromeos_update_engine.ApexMetadata(); + if (object.apexInfo) { + if (!Array.isArray(object.apexInfo)) + throw TypeError(".chromeos_update_engine.ApexMetadata.apexInfo: array expected"); + message.apexInfo = []; + for (let i = 0; i < object.apexInfo.length; ++i) { + if (typeof object.apexInfo[i] !== "object") + throw TypeError(".chromeos_update_engine.ApexMetadata.apexInfo: object expected"); + message.apexInfo[i] = $root.chromeos_update_engine.ApexInfo.fromObject(object.apexInfo[i]); + } + } + return message; + }; + + /** + * Creates a plain object from an ApexMetadata message. Also converts values to other types if specified. + * @function toObject + * @memberof chromeos_update_engine.ApexMetadata + * @static + * @param {chromeos_update_engine.ApexMetadata} message ApexMetadata + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ApexMetadata.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.arrays || options.defaults) + object.apexInfo = []; + if (message.apexInfo && message.apexInfo.length) { + object.apexInfo = []; + for (let j = 0; j < message.apexInfo.length; ++j) + object.apexInfo[j] = $root.chromeos_update_engine.ApexInfo.toObject(message.apexInfo[j], options); + } + return object; + }; + + /** + * Converts this ApexMetadata to JSON. + * @function toJSON + * @memberof chromeos_update_engine.ApexMetadata + * @instance + * @returns {Object.} JSON object + */ + ApexMetadata.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ApexMetadata; + })(); + + chromeos_update_engine.DeltaArchiveManifest = (function() { + + /** + * Properties of a DeltaArchiveManifest. + * @memberof chromeos_update_engine + * @interface IDeltaArchiveManifest + * @property {Array.|null} [installOperations] DeltaArchiveManifest installOperations + * @property {Array.|null} [kernelInstallOperations] DeltaArchiveManifest kernelInstallOperations + * @property {number|null} [blockSize] DeltaArchiveManifest blockSize + * @property {number|Long|null} [signaturesOffset] DeltaArchiveManifest signaturesOffset + * @property {number|Long|null} [signaturesSize] DeltaArchiveManifest signaturesSize + * @property {chromeos_update_engine.IPartitionInfo|null} [oldKernelInfo] DeltaArchiveManifest oldKernelInfo + * @property {chromeos_update_engine.IPartitionInfo|null} [newKernelInfo] DeltaArchiveManifest newKernelInfo + * @property {chromeos_update_engine.IPartitionInfo|null} [oldRootfsInfo] DeltaArchiveManifest oldRootfsInfo + * @property {chromeos_update_engine.IPartitionInfo|null} [newRootfsInfo] DeltaArchiveManifest newRootfsInfo + * @property {chromeos_update_engine.IImageInfo|null} [oldImageInfo] DeltaArchiveManifest oldImageInfo + * @property {chromeos_update_engine.IImageInfo|null} [newImageInfo] DeltaArchiveManifest newImageInfo + * @property {number|null} [minorVersion] DeltaArchiveManifest minorVersion + * @property {Array.|null} [partitions] DeltaArchiveManifest partitions + * @property {number|Long|null} [maxTimestamp] DeltaArchiveManifest maxTimestamp + * @property {chromeos_update_engine.IDynamicPartitionMetadata|null} [dynamicPartitionMetadata] DeltaArchiveManifest dynamicPartitionMetadata + * @property {boolean|null} [partialUpdate] DeltaArchiveManifest partialUpdate + * @property {Array.|null} [apexInfo] DeltaArchiveManifest apexInfo + */ + + /** + * Constructs a new DeltaArchiveManifest. + * @memberof chromeos_update_engine + * @classdesc Represents a DeltaArchiveManifest. + * @implements IDeltaArchiveManifest + * @constructor + * @param {chromeos_update_engine.IDeltaArchiveManifest=} [properties] Properties to set + */ + function DeltaArchiveManifest(properties) { + this.installOperations = []; + this.kernelInstallOperations = []; + this.partitions = []; + this.apexInfo = []; + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * DeltaArchiveManifest installOperations. + * @member {Array.} installOperations + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @instance + */ + DeltaArchiveManifest.prototype.installOperations = $util.emptyArray; + + /** + * DeltaArchiveManifest kernelInstallOperations. + * @member {Array.} kernelInstallOperations + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @instance + */ + DeltaArchiveManifest.prototype.kernelInstallOperations = $util.emptyArray; + + /** + * DeltaArchiveManifest blockSize. + * @member {number} blockSize + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @instance + */ + DeltaArchiveManifest.prototype.blockSize = 4096; + + /** + * DeltaArchiveManifest signaturesOffset. + * @member {number|Long} signaturesOffset + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @instance + */ + DeltaArchiveManifest.prototype.signaturesOffset = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * DeltaArchiveManifest signaturesSize. + * @member {number|Long} signaturesSize + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @instance + */ + DeltaArchiveManifest.prototype.signaturesSize = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * DeltaArchiveManifest oldKernelInfo. + * @member {chromeos_update_engine.IPartitionInfo|null|undefined} oldKernelInfo + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @instance + */ + DeltaArchiveManifest.prototype.oldKernelInfo = null; + + /** + * DeltaArchiveManifest newKernelInfo. + * @member {chromeos_update_engine.IPartitionInfo|null|undefined} newKernelInfo + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @instance + */ + DeltaArchiveManifest.prototype.newKernelInfo = null; + + /** + * DeltaArchiveManifest oldRootfsInfo. + * @member {chromeos_update_engine.IPartitionInfo|null|undefined} oldRootfsInfo + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @instance + */ + DeltaArchiveManifest.prototype.oldRootfsInfo = null; + + /** + * DeltaArchiveManifest newRootfsInfo. + * @member {chromeos_update_engine.IPartitionInfo|null|undefined} newRootfsInfo + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @instance + */ + DeltaArchiveManifest.prototype.newRootfsInfo = null; + + /** + * DeltaArchiveManifest oldImageInfo. + * @member {chromeos_update_engine.IImageInfo|null|undefined} oldImageInfo + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @instance + */ + DeltaArchiveManifest.prototype.oldImageInfo = null; + + /** + * DeltaArchiveManifest newImageInfo. + * @member {chromeos_update_engine.IImageInfo|null|undefined} newImageInfo + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @instance + */ + DeltaArchiveManifest.prototype.newImageInfo = null; + + /** + * DeltaArchiveManifest minorVersion. + * @member {number} minorVersion + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @instance + */ + DeltaArchiveManifest.prototype.minorVersion = 0; + + /** + * DeltaArchiveManifest partitions. + * @member {Array.} partitions + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @instance + */ + DeltaArchiveManifest.prototype.partitions = $util.emptyArray; + + /** + * DeltaArchiveManifest maxTimestamp. + * @member {number|Long} maxTimestamp + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @instance + */ + DeltaArchiveManifest.prototype.maxTimestamp = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * DeltaArchiveManifest dynamicPartitionMetadata. + * @member {chromeos_update_engine.IDynamicPartitionMetadata|null|undefined} dynamicPartitionMetadata + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @instance + */ + DeltaArchiveManifest.prototype.dynamicPartitionMetadata = null; + + /** + * DeltaArchiveManifest partialUpdate. + * @member {boolean} partialUpdate + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @instance + */ + DeltaArchiveManifest.prototype.partialUpdate = false; + + /** + * DeltaArchiveManifest apexInfo. + * @member {Array.} apexInfo + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @instance + */ + DeltaArchiveManifest.prototype.apexInfo = $util.emptyArray; + + /** + * Creates a new DeltaArchiveManifest instance using the specified properties. + * @function create + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @static + * @param {chromeos_update_engine.IDeltaArchiveManifest=} [properties] Properties to set + * @returns {chromeos_update_engine.DeltaArchiveManifest} DeltaArchiveManifest instance + */ + DeltaArchiveManifest.create = function create(properties) { + return new DeltaArchiveManifest(properties); + }; + + /** + * Encodes the specified DeltaArchiveManifest message. Does not implicitly {@link chromeos_update_engine.DeltaArchiveManifest.verify|verify} messages. + * @function encode + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @static + * @param {chromeos_update_engine.IDeltaArchiveManifest} message DeltaArchiveManifest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DeltaArchiveManifest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.installOperations != null && message.installOperations.length) + for (let i = 0; i < message.installOperations.length; ++i) + $root.chromeos_update_engine.InstallOperation.encode(message.installOperations[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.kernelInstallOperations != null && message.kernelInstallOperations.length) + for (let i = 0; i < message.kernelInstallOperations.length; ++i) + $root.chromeos_update_engine.InstallOperation.encode(message.kernelInstallOperations[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.blockSize != null && Object.hasOwnProperty.call(message, "blockSize")) + writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.blockSize); + if (message.signaturesOffset != null && Object.hasOwnProperty.call(message, "signaturesOffset")) + writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.signaturesOffset); + if (message.signaturesSize != null && Object.hasOwnProperty.call(message, "signaturesSize")) + writer.uint32(/* id 5, wireType 0 =*/40).uint64(message.signaturesSize); + if (message.oldKernelInfo != null && Object.hasOwnProperty.call(message, "oldKernelInfo")) + $root.chromeos_update_engine.PartitionInfo.encode(message.oldKernelInfo, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.newKernelInfo != null && Object.hasOwnProperty.call(message, "newKernelInfo")) + $root.chromeos_update_engine.PartitionInfo.encode(message.newKernelInfo, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.oldRootfsInfo != null && Object.hasOwnProperty.call(message, "oldRootfsInfo")) + $root.chromeos_update_engine.PartitionInfo.encode(message.oldRootfsInfo, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.newRootfsInfo != null && Object.hasOwnProperty.call(message, "newRootfsInfo")) + $root.chromeos_update_engine.PartitionInfo.encode(message.newRootfsInfo, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + if (message.oldImageInfo != null && Object.hasOwnProperty.call(message, "oldImageInfo")) + $root.chromeos_update_engine.ImageInfo.encode(message.oldImageInfo, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + if (message.newImageInfo != null && Object.hasOwnProperty.call(message, "newImageInfo")) + $root.chromeos_update_engine.ImageInfo.encode(message.newImageInfo, writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim(); + if (message.minorVersion != null && Object.hasOwnProperty.call(message, "minorVersion")) + writer.uint32(/* id 12, wireType 0 =*/96).uint32(message.minorVersion); + if (message.partitions != null && message.partitions.length) + for (let i = 0; i < message.partitions.length; ++i) + $root.chromeos_update_engine.PartitionUpdate.encode(message.partitions[i], writer.uint32(/* id 13, wireType 2 =*/106).fork()).ldelim(); + if (message.maxTimestamp != null && Object.hasOwnProperty.call(message, "maxTimestamp")) + writer.uint32(/* id 14, wireType 0 =*/112).int64(message.maxTimestamp); + if (message.dynamicPartitionMetadata != null && Object.hasOwnProperty.call(message, "dynamicPartitionMetadata")) + $root.chromeos_update_engine.DynamicPartitionMetadata.encode(message.dynamicPartitionMetadata, writer.uint32(/* id 15, wireType 2 =*/122).fork()).ldelim(); + if (message.partialUpdate != null && Object.hasOwnProperty.call(message, "partialUpdate")) + writer.uint32(/* id 16, wireType 0 =*/128).bool(message.partialUpdate); + if (message.apexInfo != null && message.apexInfo.length) + for (let i = 0; i < message.apexInfo.length; ++i) + $root.chromeos_update_engine.ApexInfo.encode(message.apexInfo[i], writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified DeltaArchiveManifest message, length delimited. Does not implicitly {@link chromeos_update_engine.DeltaArchiveManifest.verify|verify} messages. + * @function encodeDelimited + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @static + * @param {chromeos_update_engine.IDeltaArchiveManifest} message DeltaArchiveManifest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DeltaArchiveManifest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DeltaArchiveManifest message from the specified reader or buffer. + * @function decode + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {chromeos_update_engine.DeltaArchiveManifest} DeltaArchiveManifest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DeltaArchiveManifest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.chromeos_update_engine.DeltaArchiveManifest(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.installOperations && message.installOperations.length)) + message.installOperations = []; + message.installOperations.push($root.chromeos_update_engine.InstallOperation.decode(reader, reader.uint32())); + break; + case 2: + if (!(message.kernelInstallOperations && message.kernelInstallOperations.length)) + message.kernelInstallOperations = []; + message.kernelInstallOperations.push($root.chromeos_update_engine.InstallOperation.decode(reader, reader.uint32())); + break; + case 3: + message.blockSize = reader.uint32(); + break; + case 4: + message.signaturesOffset = reader.uint64(); + break; + case 5: + message.signaturesSize = reader.uint64(); + break; + case 6: + message.oldKernelInfo = $root.chromeos_update_engine.PartitionInfo.decode(reader, reader.uint32()); + break; + case 7: + message.newKernelInfo = $root.chromeos_update_engine.PartitionInfo.decode(reader, reader.uint32()); + break; + case 8: + message.oldRootfsInfo = $root.chromeos_update_engine.PartitionInfo.decode(reader, reader.uint32()); + break; + case 9: + message.newRootfsInfo = $root.chromeos_update_engine.PartitionInfo.decode(reader, reader.uint32()); + break; + case 10: + message.oldImageInfo = $root.chromeos_update_engine.ImageInfo.decode(reader, reader.uint32()); + break; + case 11: + message.newImageInfo = $root.chromeos_update_engine.ImageInfo.decode(reader, reader.uint32()); + break; + case 12: + message.minorVersion = reader.uint32(); + break; + case 13: + if (!(message.partitions && message.partitions.length)) + message.partitions = []; + message.partitions.push($root.chromeos_update_engine.PartitionUpdate.decode(reader, reader.uint32())); + break; + case 14: + message.maxTimestamp = reader.int64(); + break; + case 15: + message.dynamicPartitionMetadata = $root.chromeos_update_engine.DynamicPartitionMetadata.decode(reader, reader.uint32()); + break; + case 16: + message.partialUpdate = reader.bool(); + break; + case 17: + if (!(message.apexInfo && message.apexInfo.length)) + message.apexInfo = []; + message.apexInfo.push($root.chromeos_update_engine.ApexInfo.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DeltaArchiveManifest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {chromeos_update_engine.DeltaArchiveManifest} DeltaArchiveManifest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DeltaArchiveManifest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DeltaArchiveManifest message. + * @function verify + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DeltaArchiveManifest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.installOperations != null && message.hasOwnProperty("installOperations")) { + if (!Array.isArray(message.installOperations)) + return "installOperations: array expected"; + for (let i = 0; i < message.installOperations.length; ++i) { + let error = $root.chromeos_update_engine.InstallOperation.verify(message.installOperations[i]); + if (error) + return "installOperations." + error; + } + } + if (message.kernelInstallOperations != null && message.hasOwnProperty("kernelInstallOperations")) { + if (!Array.isArray(message.kernelInstallOperations)) + return "kernelInstallOperations: array expected"; + for (let i = 0; i < message.kernelInstallOperations.length; ++i) { + let error = $root.chromeos_update_engine.InstallOperation.verify(message.kernelInstallOperations[i]); + if (error) + return "kernelInstallOperations." + error; + } + } + if (message.blockSize != null && message.hasOwnProperty("blockSize")) + if (!$util.isInteger(message.blockSize)) + return "blockSize: integer expected"; + if (message.signaturesOffset != null && message.hasOwnProperty("signaturesOffset")) + if (!$util.isInteger(message.signaturesOffset) && !(message.signaturesOffset && $util.isInteger(message.signaturesOffset.low) && $util.isInteger(message.signaturesOffset.high))) + return "signaturesOffset: integer|Long expected"; + if (message.signaturesSize != null && message.hasOwnProperty("signaturesSize")) + if (!$util.isInteger(message.signaturesSize) && !(message.signaturesSize && $util.isInteger(message.signaturesSize.low) && $util.isInteger(message.signaturesSize.high))) + return "signaturesSize: integer|Long expected"; + if (message.oldKernelInfo != null && message.hasOwnProperty("oldKernelInfo")) { + let error = $root.chromeos_update_engine.PartitionInfo.verify(message.oldKernelInfo); + if (error) + return "oldKernelInfo." + error; + } + if (message.newKernelInfo != null && message.hasOwnProperty("newKernelInfo")) { + let error = $root.chromeos_update_engine.PartitionInfo.verify(message.newKernelInfo); + if (error) + return "newKernelInfo." + error; + } + if (message.oldRootfsInfo != null && message.hasOwnProperty("oldRootfsInfo")) { + let error = $root.chromeos_update_engine.PartitionInfo.verify(message.oldRootfsInfo); + if (error) + return "oldRootfsInfo." + error; + } + if (message.newRootfsInfo != null && message.hasOwnProperty("newRootfsInfo")) { + let error = $root.chromeos_update_engine.PartitionInfo.verify(message.newRootfsInfo); + if (error) + return "newRootfsInfo." + error; + } + if (message.oldImageInfo != null && message.hasOwnProperty("oldImageInfo")) { + let error = $root.chromeos_update_engine.ImageInfo.verify(message.oldImageInfo); + if (error) + return "oldImageInfo." + error; + } + if (message.newImageInfo != null && message.hasOwnProperty("newImageInfo")) { + let error = $root.chromeos_update_engine.ImageInfo.verify(message.newImageInfo); + if (error) + return "newImageInfo." + error; + } + if (message.minorVersion != null && message.hasOwnProperty("minorVersion")) + if (!$util.isInteger(message.minorVersion)) + return "minorVersion: integer expected"; + if (message.partitions != null && message.hasOwnProperty("partitions")) { + if (!Array.isArray(message.partitions)) + return "partitions: array expected"; + for (let i = 0; i < message.partitions.length; ++i) { + let error = $root.chromeos_update_engine.PartitionUpdate.verify(message.partitions[i]); + if (error) + return "partitions." + error; + } + } + if (message.maxTimestamp != null && message.hasOwnProperty("maxTimestamp")) + if (!$util.isInteger(message.maxTimestamp) && !(message.maxTimestamp && $util.isInteger(message.maxTimestamp.low) && $util.isInteger(message.maxTimestamp.high))) + return "maxTimestamp: integer|Long expected"; + if (message.dynamicPartitionMetadata != null && message.hasOwnProperty("dynamicPartitionMetadata")) { + let error = $root.chromeos_update_engine.DynamicPartitionMetadata.verify(message.dynamicPartitionMetadata); + if (error) + return "dynamicPartitionMetadata." + error; + } + if (message.partialUpdate != null && message.hasOwnProperty("partialUpdate")) + if (typeof message.partialUpdate !== "boolean") + return "partialUpdate: boolean expected"; + if (message.apexInfo != null && message.hasOwnProperty("apexInfo")) { + if (!Array.isArray(message.apexInfo)) + return "apexInfo: array expected"; + for (let i = 0; i < message.apexInfo.length; ++i) { + let error = $root.chromeos_update_engine.ApexInfo.verify(message.apexInfo[i]); + if (error) + return "apexInfo." + error; + } + } + return null; + }; + + /** + * Creates a DeltaArchiveManifest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @static + * @param {Object.} object Plain object + * @returns {chromeos_update_engine.DeltaArchiveManifest} DeltaArchiveManifest + */ + DeltaArchiveManifest.fromObject = function fromObject(object) { + if (object instanceof $root.chromeos_update_engine.DeltaArchiveManifest) + return object; + let message = new $root.chromeos_update_engine.DeltaArchiveManifest(); + if (object.installOperations) { + if (!Array.isArray(object.installOperations)) + throw TypeError(".chromeos_update_engine.DeltaArchiveManifest.installOperations: array expected"); + message.installOperations = []; + for (let i = 0; i < object.installOperations.length; ++i) { + if (typeof object.installOperations[i] !== "object") + throw TypeError(".chromeos_update_engine.DeltaArchiveManifest.installOperations: object expected"); + message.installOperations[i] = $root.chromeos_update_engine.InstallOperation.fromObject(object.installOperations[i]); + } + } + if (object.kernelInstallOperations) { + if (!Array.isArray(object.kernelInstallOperations)) + throw TypeError(".chromeos_update_engine.DeltaArchiveManifest.kernelInstallOperations: array expected"); + message.kernelInstallOperations = []; + for (let i = 0; i < object.kernelInstallOperations.length; ++i) { + if (typeof object.kernelInstallOperations[i] !== "object") + throw TypeError(".chromeos_update_engine.DeltaArchiveManifest.kernelInstallOperations: object expected"); + message.kernelInstallOperations[i] = $root.chromeos_update_engine.InstallOperation.fromObject(object.kernelInstallOperations[i]); + } + } + if (object.blockSize != null) + message.blockSize = object.blockSize >>> 0; + if (object.signaturesOffset != null) + if ($util.Long) + (message.signaturesOffset = $util.Long.fromValue(object.signaturesOffset)).unsigned = true; + else if (typeof object.signaturesOffset === "string") + message.signaturesOffset = parseInt(object.signaturesOffset, 10); + else if (typeof object.signaturesOffset === "number") + message.signaturesOffset = object.signaturesOffset; + else if (typeof object.signaturesOffset === "object") + message.signaturesOffset = new $util.LongBits(object.signaturesOffset.low >>> 0, object.signaturesOffset.high >>> 0).toNumber(true); + if (object.signaturesSize != null) + if ($util.Long) + (message.signaturesSize = $util.Long.fromValue(object.signaturesSize)).unsigned = true; + else if (typeof object.signaturesSize === "string") + message.signaturesSize = parseInt(object.signaturesSize, 10); + else if (typeof object.signaturesSize === "number") + message.signaturesSize = object.signaturesSize; + else if (typeof object.signaturesSize === "object") + message.signaturesSize = new $util.LongBits(object.signaturesSize.low >>> 0, object.signaturesSize.high >>> 0).toNumber(true); + if (object.oldKernelInfo != null) { + if (typeof object.oldKernelInfo !== "object") + throw TypeError(".chromeos_update_engine.DeltaArchiveManifest.oldKernelInfo: object expected"); + message.oldKernelInfo = $root.chromeos_update_engine.PartitionInfo.fromObject(object.oldKernelInfo); + } + if (object.newKernelInfo != null) { + if (typeof object.newKernelInfo !== "object") + throw TypeError(".chromeos_update_engine.DeltaArchiveManifest.newKernelInfo: object expected"); + message.newKernelInfo = $root.chromeos_update_engine.PartitionInfo.fromObject(object.newKernelInfo); + } + if (object.oldRootfsInfo != null) { + if (typeof object.oldRootfsInfo !== "object") + throw TypeError(".chromeos_update_engine.DeltaArchiveManifest.oldRootfsInfo: object expected"); + message.oldRootfsInfo = $root.chromeos_update_engine.PartitionInfo.fromObject(object.oldRootfsInfo); + } + if (object.newRootfsInfo != null) { + if (typeof object.newRootfsInfo !== "object") + throw TypeError(".chromeos_update_engine.DeltaArchiveManifest.newRootfsInfo: object expected"); + message.newRootfsInfo = $root.chromeos_update_engine.PartitionInfo.fromObject(object.newRootfsInfo); + } + if (object.oldImageInfo != null) { + if (typeof object.oldImageInfo !== "object") + throw TypeError(".chromeos_update_engine.DeltaArchiveManifest.oldImageInfo: object expected"); + message.oldImageInfo = $root.chromeos_update_engine.ImageInfo.fromObject(object.oldImageInfo); + } + if (object.newImageInfo != null) { + if (typeof object.newImageInfo !== "object") + throw TypeError(".chromeos_update_engine.DeltaArchiveManifest.newImageInfo: object expected"); + message.newImageInfo = $root.chromeos_update_engine.ImageInfo.fromObject(object.newImageInfo); + } + if (object.minorVersion != null) + message.minorVersion = object.minorVersion >>> 0; + if (object.partitions) { + if (!Array.isArray(object.partitions)) + throw TypeError(".chromeos_update_engine.DeltaArchiveManifest.partitions: array expected"); + message.partitions = []; + for (let i = 0; i < object.partitions.length; ++i) { + if (typeof object.partitions[i] !== "object") + throw TypeError(".chromeos_update_engine.DeltaArchiveManifest.partitions: object expected"); + message.partitions[i] = $root.chromeos_update_engine.PartitionUpdate.fromObject(object.partitions[i]); + } + } + if (object.maxTimestamp != null) + if ($util.Long) + (message.maxTimestamp = $util.Long.fromValue(object.maxTimestamp)).unsigned = false; + else if (typeof object.maxTimestamp === "string") + message.maxTimestamp = parseInt(object.maxTimestamp, 10); + else if (typeof object.maxTimestamp === "number") + message.maxTimestamp = object.maxTimestamp; + else if (typeof object.maxTimestamp === "object") + message.maxTimestamp = new $util.LongBits(object.maxTimestamp.low >>> 0, object.maxTimestamp.high >>> 0).toNumber(); + if (object.dynamicPartitionMetadata != null) { + if (typeof object.dynamicPartitionMetadata !== "object") + throw TypeError(".chromeos_update_engine.DeltaArchiveManifest.dynamicPartitionMetadata: object expected"); + message.dynamicPartitionMetadata = $root.chromeos_update_engine.DynamicPartitionMetadata.fromObject(object.dynamicPartitionMetadata); + } + if (object.partialUpdate != null) + message.partialUpdate = Boolean(object.partialUpdate); + if (object.apexInfo) { + if (!Array.isArray(object.apexInfo)) + throw TypeError(".chromeos_update_engine.DeltaArchiveManifest.apexInfo: array expected"); + message.apexInfo = []; + for (let i = 0; i < object.apexInfo.length; ++i) { + if (typeof object.apexInfo[i] !== "object") + throw TypeError(".chromeos_update_engine.DeltaArchiveManifest.apexInfo: object expected"); + message.apexInfo[i] = $root.chromeos_update_engine.ApexInfo.fromObject(object.apexInfo[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a DeltaArchiveManifest message. Also converts values to other types if specified. + * @function toObject + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @static + * @param {chromeos_update_engine.DeltaArchiveManifest} message DeltaArchiveManifest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DeltaArchiveManifest.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.arrays || options.defaults) { + object.installOperations = []; + object.kernelInstallOperations = []; + object.partitions = []; + object.apexInfo = []; + } + if (options.defaults) { + object.blockSize = 4096; + if ($util.Long) { + let long = new $util.Long(0, 0, true); + object.signaturesOffset = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.signaturesOffset = options.longs === String ? "0" : 0; + if ($util.Long) { + let long = new $util.Long(0, 0, true); + object.signaturesSize = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.signaturesSize = options.longs === String ? "0" : 0; + object.oldKernelInfo = null; + object.newKernelInfo = null; + object.oldRootfsInfo = null; + object.newRootfsInfo = null; + object.oldImageInfo = null; + object.newImageInfo = null; + object.minorVersion = 0; + if ($util.Long) { + let long = new $util.Long(0, 0, false); + object.maxTimestamp = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.maxTimestamp = options.longs === String ? "0" : 0; + object.dynamicPartitionMetadata = null; + object.partialUpdate = false; + } + if (message.installOperations && message.installOperations.length) { + object.installOperations = []; + for (let j = 0; j < message.installOperations.length; ++j) + object.installOperations[j] = $root.chromeos_update_engine.InstallOperation.toObject(message.installOperations[j], options); + } + if (message.kernelInstallOperations && message.kernelInstallOperations.length) { + object.kernelInstallOperations = []; + for (let j = 0; j < message.kernelInstallOperations.length; ++j) + object.kernelInstallOperations[j] = $root.chromeos_update_engine.InstallOperation.toObject(message.kernelInstallOperations[j], options); + } + if (message.blockSize != null && message.hasOwnProperty("blockSize")) + object.blockSize = message.blockSize; + if (message.signaturesOffset != null && message.hasOwnProperty("signaturesOffset")) + if (typeof message.signaturesOffset === "number") + object.signaturesOffset = options.longs === String ? String(message.signaturesOffset) : message.signaturesOffset; + else + object.signaturesOffset = options.longs === String ? $util.Long.prototype.toString.call(message.signaturesOffset) : options.longs === Number ? new $util.LongBits(message.signaturesOffset.low >>> 0, message.signaturesOffset.high >>> 0).toNumber(true) : message.signaturesOffset; + if (message.signaturesSize != null && message.hasOwnProperty("signaturesSize")) + if (typeof message.signaturesSize === "number") + object.signaturesSize = options.longs === String ? String(message.signaturesSize) : message.signaturesSize; + else + object.signaturesSize = options.longs === String ? $util.Long.prototype.toString.call(message.signaturesSize) : options.longs === Number ? new $util.LongBits(message.signaturesSize.low >>> 0, message.signaturesSize.high >>> 0).toNumber(true) : message.signaturesSize; + if (message.oldKernelInfo != null && message.hasOwnProperty("oldKernelInfo")) + object.oldKernelInfo = $root.chromeos_update_engine.PartitionInfo.toObject(message.oldKernelInfo, options); + if (message.newKernelInfo != null && message.hasOwnProperty("newKernelInfo")) + object.newKernelInfo = $root.chromeos_update_engine.PartitionInfo.toObject(message.newKernelInfo, options); + if (message.oldRootfsInfo != null && message.hasOwnProperty("oldRootfsInfo")) + object.oldRootfsInfo = $root.chromeos_update_engine.PartitionInfo.toObject(message.oldRootfsInfo, options); + if (message.newRootfsInfo != null && message.hasOwnProperty("newRootfsInfo")) + object.newRootfsInfo = $root.chromeos_update_engine.PartitionInfo.toObject(message.newRootfsInfo, options); + if (message.oldImageInfo != null && message.hasOwnProperty("oldImageInfo")) + object.oldImageInfo = $root.chromeos_update_engine.ImageInfo.toObject(message.oldImageInfo, options); + if (message.newImageInfo != null && message.hasOwnProperty("newImageInfo")) + object.newImageInfo = $root.chromeos_update_engine.ImageInfo.toObject(message.newImageInfo, options); + if (message.minorVersion != null && message.hasOwnProperty("minorVersion")) + object.minorVersion = message.minorVersion; + if (message.partitions && message.partitions.length) { + object.partitions = []; + for (let j = 0; j < message.partitions.length; ++j) + object.partitions[j] = $root.chromeos_update_engine.PartitionUpdate.toObject(message.partitions[j], options); + } + if (message.maxTimestamp != null && message.hasOwnProperty("maxTimestamp")) + if (typeof message.maxTimestamp === "number") + object.maxTimestamp = options.longs === String ? String(message.maxTimestamp) : message.maxTimestamp; + else + object.maxTimestamp = options.longs === String ? $util.Long.prototype.toString.call(message.maxTimestamp) : options.longs === Number ? new $util.LongBits(message.maxTimestamp.low >>> 0, message.maxTimestamp.high >>> 0).toNumber() : message.maxTimestamp; + if (message.dynamicPartitionMetadata != null && message.hasOwnProperty("dynamicPartitionMetadata")) + object.dynamicPartitionMetadata = $root.chromeos_update_engine.DynamicPartitionMetadata.toObject(message.dynamicPartitionMetadata, options); + if (message.partialUpdate != null && message.hasOwnProperty("partialUpdate")) + object.partialUpdate = message.partialUpdate; + if (message.apexInfo && message.apexInfo.length) { + object.apexInfo = []; + for (let j = 0; j < message.apexInfo.length; ++j) + object.apexInfo[j] = $root.chromeos_update_engine.ApexInfo.toObject(message.apexInfo[j], options); + } + return object; + }; + + /** + * Converts this DeltaArchiveManifest to JSON. + * @function toJSON + * @memberof chromeos_update_engine.DeltaArchiveManifest + * @instance + * @returns {Object.} JSON object + */ + DeltaArchiveManifest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return DeltaArchiveManifest; + })(); + + return chromeos_update_engine; +})(); + +export { $root as default };