UNPKG

gtfs-rb

Version:

Generated JavaScript library based on the GTFS Realtime protocol buffer specification

1,110 lines (1,038 loc) 211 kB
// THIS IS AN AUTO-GENERATED FILE, DO NOT MANUALLY MODIFY // Copyright (c) 2019 Cyberscape // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. // // Copyright (c) 2015 Google Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. "use strict"; var $protobuf = require("protobufjs/minimal"); // Common aliases var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util; // Exported root namespace var $root = $protobuf.roots["default"] || ($protobuf.roots["default"] = {}); $root.transit_realtime = (function() { /** * Namespace transit_realtime. * @exports transit_realtime * @namespace */ var transit_realtime = {}; transit_realtime.FeedMessage = (function() { /** * Properties of a FeedMessage. * @memberof transit_realtime * @interface IFeedMessage * @property {transit_realtime.IFeedHeader} header FeedMessage header * @property {Array.<transit_realtime.IFeedEntity>|null} [entity] FeedMessage entity */ /** * Constructs a new FeedMessage. * @memberof transit_realtime * @classdesc Represents a FeedMessage. * @implements IFeedMessage * @constructor * @param {transit_realtime.IFeedMessage=} [properties] Properties to set */ function FeedMessage(properties) { this.entity = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) this[keys[i]] = properties[keys[i]]; } /** * FeedMessage header. * @member {transit_realtime.IFeedHeader} header * @memberof transit_realtime.FeedMessage * @instance */ FeedMessage.prototype.header = null; /** * FeedMessage entity. * @member {Array.<transit_realtime.IFeedEntity>} entity * @memberof transit_realtime.FeedMessage * @instance */ FeedMessage.prototype.entity = $util.emptyArray; /** * Creates a new FeedMessage instance using the specified properties. * @function create * @memberof transit_realtime.FeedMessage * @static * @param {transit_realtime.IFeedMessage=} [properties] Properties to set * @returns {transit_realtime.FeedMessage} FeedMessage instance */ FeedMessage.create = function create(properties) { return new FeedMessage(properties); }; /** * Encodes the specified FeedMessage message. Does not implicitly {@link transit_realtime.FeedMessage.verify|verify} messages. * @function encode * @memberof transit_realtime.FeedMessage * @static * @param {transit_realtime.IFeedMessage} message FeedMessage message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ FeedMessage.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); $root.transit_realtime.FeedHeader.encode(message.header, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); if (message.entity != null && message.entity.length) for (var i = 0; i < message.entity.length; ++i) $root.transit_realtime.FeedEntity.encode(message.entity[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** * Encodes the specified FeedMessage message, length delimited. Does not implicitly {@link transit_realtime.FeedMessage.verify|verify} messages. * @function encodeDelimited * @memberof transit_realtime.FeedMessage * @static * @param {transit_realtime.IFeedMessage} message FeedMessage message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ FeedMessage.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** * Decodes a FeedMessage message from the specified reader or buffer. * @function decode * @memberof transit_realtime.FeedMessage * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand * @returns {transit_realtime.FeedMessage} FeedMessage * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ FeedMessage.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.transit_realtime.FeedMessage(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: message.header = $root.transit_realtime.FeedHeader.decode(reader, reader.uint32()); break; case 2: if (!(message.entity && message.entity.length)) message.entity = []; message.entity.push($root.transit_realtime.FeedEntity.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); break; } } if (!message.hasOwnProperty("header")) throw $util.ProtocolError("missing required 'header'", { instance: message }); return message; }; /** * Decodes a FeedMessage message from the specified reader or buffer, length delimited. * @function decodeDelimited * @memberof transit_realtime.FeedMessage * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @returns {transit_realtime.FeedMessage} FeedMessage * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ FeedMessage.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** * Verifies a FeedMessage message. * @function verify * @memberof transit_realtime.FeedMessage * @static * @param {Object.<string,*>} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ FeedMessage.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; { var error = $root.transit_realtime.FeedHeader.verify(message.header); if (error) return "header." + error; } if (message.entity != null && message.hasOwnProperty("entity")) { if (!Array.isArray(message.entity)) return "entity: array expected"; for (var i = 0; i < message.entity.length; ++i) { var error = $root.transit_realtime.FeedEntity.verify(message.entity[i]); if (error) return "entity." + error; } } return null; }; /** * Creates a FeedMessage message from a plain object. Also converts values to their respective internal types. * @function fromObject * @memberof transit_realtime.FeedMessage * @static * @param {Object.<string,*>} object Plain object * @returns {transit_realtime.FeedMessage} FeedMessage */ FeedMessage.fromObject = function fromObject(object) { if (object instanceof $root.transit_realtime.FeedMessage) return object; var message = new $root.transit_realtime.FeedMessage(); if (object.header != null) { if (typeof object.header !== "object") throw TypeError(".transit_realtime.FeedMessage.header: object expected"); message.header = $root.transit_realtime.FeedHeader.fromObject(object.header); } if (object.entity) { if (!Array.isArray(object.entity)) throw TypeError(".transit_realtime.FeedMessage.entity: array expected"); message.entity = []; for (var i = 0; i < object.entity.length; ++i) { if (typeof object.entity[i] !== "object") throw TypeError(".transit_realtime.FeedMessage.entity: object expected"); message.entity[i] = $root.transit_realtime.FeedEntity.fromObject(object.entity[i]); } } return message; }; /** * Creates a plain object from a FeedMessage message. Also converts values to other types if specified. * @function toObject * @memberof transit_realtime.FeedMessage * @static * @param {transit_realtime.FeedMessage} message FeedMessage * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.<string,*>} Plain object */ FeedMessage.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.arrays || options.defaults) object.entity = []; if (options.defaults) object.header = null; if (message.header != null && message.hasOwnProperty("header")) object.header = $root.transit_realtime.FeedHeader.toObject(message.header, options); if (message.entity && message.entity.length) { object.entity = []; for (var j = 0; j < message.entity.length; ++j) object.entity[j] = $root.transit_realtime.FeedEntity.toObject(message.entity[j], options); } return object; }; /** * Converts this FeedMessage to JSON. * @function toJSON * @memberof transit_realtime.FeedMessage * @instance * @returns {Object.<string,*>} JSON object */ FeedMessage.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; return FeedMessage; })(); transit_realtime.FeedHeader = (function() { /** * Properties of a FeedHeader. * @memberof transit_realtime * @interface IFeedHeader * @property {string} gtfsRealtimeVersion FeedHeader gtfsRealtimeVersion * @property {transit_realtime.FeedHeader.Incrementality|null} [incrementality] FeedHeader incrementality * @property {Long|null} [timestamp] FeedHeader timestamp */ /** * Constructs a new FeedHeader. * @memberof transit_realtime * @classdesc Represents a FeedHeader. * @implements IFeedHeader * @constructor * @param {transit_realtime.IFeedHeader=} [properties] Properties to set */ function FeedHeader(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) this[keys[i]] = properties[keys[i]]; } /** * FeedHeader gtfsRealtimeVersion. * @member {string} gtfsRealtimeVersion * @memberof transit_realtime.FeedHeader * @instance */ FeedHeader.prototype.gtfsRealtimeVersion = ""; /** * FeedHeader incrementality. * @member {transit_realtime.FeedHeader.Incrementality} incrementality * @memberof transit_realtime.FeedHeader * @instance */ FeedHeader.prototype.incrementality = 0; /** * FeedHeader timestamp. * @member {Long} timestamp * @memberof transit_realtime.FeedHeader * @instance */ FeedHeader.prototype.timestamp = $util.Long ? $util.Long.fromBits(0,0,true) : 0; /** * Creates a new FeedHeader instance using the specified properties. * @function create * @memberof transit_realtime.FeedHeader * @static * @param {transit_realtime.IFeedHeader=} [properties] Properties to set * @returns {transit_realtime.FeedHeader} FeedHeader instance */ FeedHeader.create = function create(properties) { return new FeedHeader(properties); }; /** * Encodes the specified FeedHeader message. Does not implicitly {@link transit_realtime.FeedHeader.verify|verify} messages. * @function encode * @memberof transit_realtime.FeedHeader * @static * @param {transit_realtime.IFeedHeader} message FeedHeader message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ FeedHeader.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); writer.uint32(/* id 1, wireType 2 =*/10).string(message.gtfsRealtimeVersion); if (message.incrementality != null && message.hasOwnProperty("incrementality")) writer.uint32(/* id 2, wireType 0 =*/16).int32(message.incrementality); if (message.timestamp != null && message.hasOwnProperty("timestamp")) writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.timestamp); return writer; }; /** * Encodes the specified FeedHeader message, length delimited. Does not implicitly {@link transit_realtime.FeedHeader.verify|verify} messages. * @function encodeDelimited * @memberof transit_realtime.FeedHeader * @static * @param {transit_realtime.IFeedHeader} message FeedHeader message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ FeedHeader.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** * Decodes a FeedHeader message from the specified reader or buffer. * @function decode * @memberof transit_realtime.FeedHeader * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand * @returns {transit_realtime.FeedHeader} FeedHeader * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ FeedHeader.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.transit_realtime.FeedHeader(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: message.gtfsRealtimeVersion = reader.string(); break; case 2: message.incrementality = reader.int32(); break; case 3: message.timestamp = reader.uint64(); break; default: reader.skipType(tag & 7); break; } } if (!message.hasOwnProperty("gtfsRealtimeVersion")) throw $util.ProtocolError("missing required 'gtfsRealtimeVersion'", { instance: message }); return message; }; /** * Decodes a FeedHeader message from the specified reader or buffer, length delimited. * @function decodeDelimited * @memberof transit_realtime.FeedHeader * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @returns {transit_realtime.FeedHeader} FeedHeader * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ FeedHeader.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** * Verifies a FeedHeader message. * @function verify * @memberof transit_realtime.FeedHeader * @static * @param {Object.<string,*>} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ FeedHeader.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; if (!$util.isString(message.gtfsRealtimeVersion)) return "gtfsRealtimeVersion: string expected"; if (message.incrementality != null && message.hasOwnProperty("incrementality")) switch (message.incrementality) { default: return "incrementality: enum value expected"; case 0: case 1: break; } if (message.timestamp != null && message.hasOwnProperty("timestamp")) if (!$util.isInteger(message.timestamp) && !(message.timestamp && $util.isInteger(message.timestamp.low) && $util.isInteger(message.timestamp.high))) return "timestamp: integer|Long expected"; return null; }; /** * Creates a FeedHeader message from a plain object. Also converts values to their respective internal types. * @function fromObject * @memberof transit_realtime.FeedHeader * @static * @param {Object.<string,*>} object Plain object * @returns {transit_realtime.FeedHeader} FeedHeader */ FeedHeader.fromObject = function fromObject(object) { if (object instanceof $root.transit_realtime.FeedHeader) return object; var message = new $root.transit_realtime.FeedHeader(); if (object.gtfsRealtimeVersion != null) message.gtfsRealtimeVersion = String(object.gtfsRealtimeVersion); switch (object.incrementality) { case "FULL_DATASET": case 0: message.incrementality = 0; break; case "DIFFERENTIAL": case 1: message.incrementality = 1; break; } if (object.timestamp != null) if ($util.Long) (message.timestamp = $util.Long.fromValue(object.timestamp)).unsigned = true; else if (typeof object.timestamp === "string") message.timestamp = parseInt(object.timestamp, 10); else if (typeof object.timestamp === "number") message.timestamp = object.timestamp; else if (typeof object.timestamp === "object") message.timestamp = new $util.LongBits(object.timestamp.low >>> 0, object.timestamp.high >>> 0).toNumber(true); return message; }; /** * Creates a plain object from a FeedHeader message. Also converts values to other types if specified. * @function toObject * @memberof transit_realtime.FeedHeader * @static * @param {transit_realtime.FeedHeader} message FeedHeader * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.<string,*>} Plain object */ FeedHeader.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { object.gtfsRealtimeVersion = ""; object.incrementality = options.enums === String ? "FULL_DATASET" : 0; if ($util.Long) { var long = new $util.Long(0, 0, true); object.timestamp = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; } else object.timestamp = options.longs === String ? "0" : 0; } if (message.gtfsRealtimeVersion != null && message.hasOwnProperty("gtfsRealtimeVersion")) object.gtfsRealtimeVersion = message.gtfsRealtimeVersion; if (message.incrementality != null && message.hasOwnProperty("incrementality")) object.incrementality = options.enums === String ? $root.transit_realtime.FeedHeader.Incrementality[message.incrementality] : message.incrementality; if (message.timestamp != null && message.hasOwnProperty("timestamp")) if (typeof message.timestamp === "number") object.timestamp = options.longs === String ? String(message.timestamp) : message.timestamp; else object.timestamp = options.longs === String ? $util.Long.prototype.toString.call(message.timestamp) : options.longs === Number ? new $util.LongBits(message.timestamp.low >>> 0, message.timestamp.high >>> 0).toNumber(true) : message.timestamp; return object; }; /** * Converts this FeedHeader to JSON. * @function toJSON * @memberof transit_realtime.FeedHeader * @instance * @returns {Object.<string,*>} JSON object */ FeedHeader.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** * Incrementality enum. * @name transit_realtime.FeedHeader.Incrementality * @enum {string} * @property {number} FULL_DATASET=0 FULL_DATASET value * @property {number} DIFFERENTIAL=1 DIFFERENTIAL value */ FeedHeader.Incrementality = (function() { var valuesById = {}, values = Object.create(valuesById); values[valuesById[0] = "FULL_DATASET"] = 0; values[valuesById[1] = "DIFFERENTIAL"] = 1; return values; })(); return FeedHeader; })(); transit_realtime.FeedEntity = (function() { /** * Properties of a FeedEntity. * @memberof transit_realtime * @interface IFeedEntity * @property {string} id FeedEntity id * @property {boolean|null} [isDeleted] FeedEntity isDeleted * @property {transit_realtime.ITripUpdate|null} [tripUpdate] FeedEntity tripUpdate * @property {transit_realtime.IVehiclePosition|null} [vehicle] FeedEntity vehicle * @property {transit_realtime.IAlert|null} [alert] FeedEntity alert */ /** * Constructs a new FeedEntity. * @memberof transit_realtime * @classdesc Represents a FeedEntity. * @implements IFeedEntity * @constructor * @param {transit_realtime.IFeedEntity=} [properties] Properties to set */ function FeedEntity(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) this[keys[i]] = properties[keys[i]]; } /** * FeedEntity id. * @member {string} id * @memberof transit_realtime.FeedEntity * @instance */ FeedEntity.prototype.id = ""; /** * FeedEntity isDeleted. * @member {boolean} isDeleted * @memberof transit_realtime.FeedEntity * @instance */ FeedEntity.prototype.isDeleted = false; /** * FeedEntity tripUpdate. * @member {transit_realtime.ITripUpdate|null|undefined} tripUpdate * @memberof transit_realtime.FeedEntity * @instance */ FeedEntity.prototype.tripUpdate = null; /** * FeedEntity vehicle. * @member {transit_realtime.IVehiclePosition|null|undefined} vehicle * @memberof transit_realtime.FeedEntity * @instance */ FeedEntity.prototype.vehicle = null; /** * FeedEntity alert. * @member {transit_realtime.IAlert|null|undefined} alert * @memberof transit_realtime.FeedEntity * @instance */ FeedEntity.prototype.alert = null; /** * Creates a new FeedEntity instance using the specified properties. * @function create * @memberof transit_realtime.FeedEntity * @static * @param {transit_realtime.IFeedEntity=} [properties] Properties to set * @returns {transit_realtime.FeedEntity} FeedEntity instance */ FeedEntity.create = function create(properties) { return new FeedEntity(properties); }; /** * Encodes the specified FeedEntity message. Does not implicitly {@link transit_realtime.FeedEntity.verify|verify} messages. * @function encode * @memberof transit_realtime.FeedEntity * @static * @param {transit_realtime.IFeedEntity} message FeedEntity message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ FeedEntity.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); writer.uint32(/* id 1, wireType 2 =*/10).string(message.id); if (message.isDeleted != null && message.hasOwnProperty("isDeleted")) writer.uint32(/* id 2, wireType 0 =*/16).bool(message.isDeleted); if (message.tripUpdate != null && message.hasOwnProperty("tripUpdate")) $root.transit_realtime.TripUpdate.encode(message.tripUpdate, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); if (message.vehicle != null && message.hasOwnProperty("vehicle")) $root.transit_realtime.VehiclePosition.encode(message.vehicle, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); if (message.alert != null && message.hasOwnProperty("alert")) $root.transit_realtime.Alert.encode(message.alert, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); return writer; }; /** * Encodes the specified FeedEntity message, length delimited. Does not implicitly {@link transit_realtime.FeedEntity.verify|verify} messages. * @function encodeDelimited * @memberof transit_realtime.FeedEntity * @static * @param {transit_realtime.IFeedEntity} message FeedEntity message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ FeedEntity.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** * Decodes a FeedEntity message from the specified reader or buffer. * @function decode * @memberof transit_realtime.FeedEntity * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand * @returns {transit_realtime.FeedEntity} FeedEntity * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ FeedEntity.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.transit_realtime.FeedEntity(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: message.id = reader.string(); break; case 2: message.isDeleted = reader.bool(); break; case 3: message.tripUpdate = $root.transit_realtime.TripUpdate.decode(reader, reader.uint32()); break; case 4: message.vehicle = $root.transit_realtime.VehiclePosition.decode(reader, reader.uint32()); break; case 5: message.alert = $root.transit_realtime.Alert.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } if (!message.hasOwnProperty("id")) throw $util.ProtocolError("missing required 'id'", { instance: message }); return message; }; /** * Decodes a FeedEntity message from the specified reader or buffer, length delimited. * @function decodeDelimited * @memberof transit_realtime.FeedEntity * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @returns {transit_realtime.FeedEntity} FeedEntity * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ FeedEntity.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** * Verifies a FeedEntity message. * @function verify * @memberof transit_realtime.FeedEntity * @static * @param {Object.<string,*>} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ FeedEntity.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; if (!$util.isString(message.id)) return "id: string expected"; if (message.isDeleted != null && message.hasOwnProperty("isDeleted")) if (typeof message.isDeleted !== "boolean") return "isDeleted: boolean expected"; if (message.tripUpdate != null && message.hasOwnProperty("tripUpdate")) { var error = $root.transit_realtime.TripUpdate.verify(message.tripUpdate); if (error) return "tripUpdate." + error; } if (message.vehicle != null && message.hasOwnProperty("vehicle")) { var error = $root.transit_realtime.VehiclePosition.verify(message.vehicle); if (error) return "vehicle." + error; } if (message.alert != null && message.hasOwnProperty("alert")) { var error = $root.transit_realtime.Alert.verify(message.alert); if (error) return "alert." + error; } return null; }; /** * Creates a FeedEntity message from a plain object. Also converts values to their respective internal types. * @function fromObject * @memberof transit_realtime.FeedEntity * @static * @param {Object.<string,*>} object Plain object * @returns {transit_realtime.FeedEntity} FeedEntity */ FeedEntity.fromObject = function fromObject(object) { if (object instanceof $root.transit_realtime.FeedEntity) return object; var message = new $root.transit_realtime.FeedEntity(); if (object.id != null) message.id = String(object.id); if (object.isDeleted != null) message.isDeleted = Boolean(object.isDeleted); if (object.tripUpdate != null) { if (typeof object.tripUpdate !== "object") throw TypeError(".transit_realtime.FeedEntity.tripUpdate: object expected"); message.tripUpdate = $root.transit_realtime.TripUpdate.fromObject(object.tripUpdate); } if (object.vehicle != null) { if (typeof object.vehicle !== "object") throw TypeError(".transit_realtime.FeedEntity.vehicle: object expected"); message.vehicle = $root.transit_realtime.VehiclePosition.fromObject(object.vehicle); } if (object.alert != null) { if (typeof object.alert !== "object") throw TypeError(".transit_realtime.FeedEntity.alert: object expected"); message.alert = $root.transit_realtime.Alert.fromObject(object.alert); } return message; }; /** * Creates a plain object from a FeedEntity message. Also converts values to other types if specified. * @function toObject * @memberof transit_realtime.FeedEntity * @static * @param {transit_realtime.FeedEntity} message FeedEntity * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.<string,*>} Plain object */ FeedEntity.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { object.id = ""; object.isDeleted = false; object.tripUpdate = null; object.vehicle = null; object.alert = null; } if (message.id != null && message.hasOwnProperty("id")) object.id = message.id; if (message.isDeleted != null && message.hasOwnProperty("isDeleted")) object.isDeleted = message.isDeleted; if (message.tripUpdate != null && message.hasOwnProperty("tripUpdate")) object.tripUpdate = $root.transit_realtime.TripUpdate.toObject(message.tripUpdate, options); if (message.vehicle != null && message.hasOwnProperty("vehicle")) object.vehicle = $root.transit_realtime.VehiclePosition.toObject(message.vehicle, options); if (message.alert != null && message.hasOwnProperty("alert")) object.alert = $root.transit_realtime.Alert.toObject(message.alert, options); return object; }; /** * Converts this FeedEntity to JSON. * @function toJSON * @memberof transit_realtime.FeedEntity * @instance * @returns {Object.<string,*>} JSON object */ FeedEntity.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; return FeedEntity; })(); transit_realtime.TripUpdate = (function() { /** * Properties of a TripUpdate. * @memberof transit_realtime * @interface ITripUpdate * @property {transit_realtime.ITripDescriptor} trip TripUpdate trip * @property {transit_realtime.IVehicleDescriptor|null} [vehicle] TripUpdate vehicle * @property {Array.<transit_realtime.TripUpdate.IStopTimeUpdate>|null} [stopTimeUpdate] TripUpdate stopTimeUpdate * @property {Long|null} [timestamp] TripUpdate timestamp * @property {number|null} [delay] TripUpdate delay */ /** * Constructs a new TripUpdate. * @memberof transit_realtime * @classdesc Represents a TripUpdate. * @implements ITripUpdate * @constructor * @param {transit_realtime.ITripUpdate=} [properties] Properties to set */ function TripUpdate(properties) { this.stopTimeUpdate = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) this[keys[i]] = properties[keys[i]]; } /** * TripUpdate trip. * @member {transit_realtime.ITripDescriptor} trip * @memberof transit_realtime.TripUpdate * @instance */ TripUpdate.prototype.trip = null; /** * TripUpdate vehicle. * @member {transit_realtime.IVehicleDescriptor|null|undefined} vehicle * @memberof transit_realtime.TripUpdate * @instance */ TripUpdate.prototype.vehicle = null; /** * TripUpdate stopTimeUpdate. * @member {Array.<transit_realtime.TripUpdate.IStopTimeUpdate>} stopTimeUpdate * @memberof transit_realtime.TripUpdate * @instance */ TripUpdate.prototype.stopTimeUpdate = $util.emptyArray; /** * TripUpdate timestamp. * @member {Long} timestamp * @memberof transit_realtime.TripUpdate * @instance */ TripUpdate.prototype.timestamp = $util.Long ? $util.Long.fromBits(0,0,true) : 0; /** * TripUpdate delay. * @member {number} delay * @memberof transit_realtime.TripUpdate * @instance */ TripUpdate.prototype.delay = 0; /** * Creates a new TripUpdate instance using the specified properties. * @function create * @memberof transit_realtime.TripUpdate * @static * @param {transit_realtime.ITripUpdate=} [properties] Properties to set * @returns {transit_realtime.TripUpdate} TripUpdate instance */ TripUpdate.create = function create(properties) { return new TripUpdate(properties); }; /** * Encodes the specified TripUpdate message. Does not implicitly {@link transit_realtime.TripUpdate.verify|verify} messages. * @function encode * @memberof transit_realtime.TripUpdate * @static * @param {transit_realtime.ITripUpdate} message TripUpdate message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ TripUpdate.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); $root.transit_realtime.TripDescriptor.encode(message.trip, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); if (message.stopTimeUpdate != null && message.stopTimeUpdate.length) for (var i = 0; i < message.stopTimeUpdate.length; ++i) $root.transit_realtime.TripUpdate.StopTimeUpdate.encode(message.stopTimeUpdate[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); if (message.vehicle != null && message.hasOwnProperty("vehicle")) $root.transit_realtime.VehicleDescriptor.encode(message.vehicle, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); if (message.timestamp != null && message.hasOwnProperty("timestamp")) writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.timestamp); if (message.delay != null && message.hasOwnProperty("delay")) writer.uint32(/* id 5, wireType 0 =*/40).int32(message.delay); return writer; }; /** * Encodes the specified TripUpdate message, length delimited. Does not implicitly {@link transit_realtime.TripUpdate.verify|verify} messages. * @function encodeDelimited * @memberof transit_realtime.TripUpdate * @static * @param {transit_realtime.ITripUpdate} message TripUpdate message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ TripUpdate.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** * Decodes a TripUpdate message from the specified reader or buffer. * @function decode * @memberof transit_realtime.TripUpdate * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand * @returns {transit_realtime.TripUpdate} TripUpdate * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ TripUpdate.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.transit_realtime.TripUpdate(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: message.trip = $root.transit_realtime.TripDescriptor.decode(reader, reader.uint32()); break; case 3: message.vehicle = $root.transit_realtime.VehicleDescriptor.decode(reader, reader.uint32()); break; case 2: if (!(message.stopTimeUpdate && message.stopTimeUpdate.length)) message.stopTimeUpdate = []; message.stopTimeUpdate.push($root.transit_realtime.TripUpdate.StopTimeUpdate.decode(reader, reader.uint32())); break; case 4: message.timestamp = reader.uint64(); break; case 5: message.delay = reader.int32(); break; default: reader.skipType(tag & 7); break; } } if (!message.hasOwnProperty("trip")) throw $util.ProtocolError("missing required 'trip'", { instance: message }); return message; }; /** * Decodes a TripUpdate message from the specified reader or buffer, length delimited. * @function decodeDelimited * @memberof transit_realtime.TripUpdate * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @returns {transit_realtime.TripUpdate} TripUpdate * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ TripUpdate.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** * Verifies a TripUpdate message. * @function verify * @memberof transit_realtime.TripUpdate * @static * @param {Object.<string,*>} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ TripUpdate.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; { var error = $root.transit_realtime.TripDescriptor.verify(message.trip); if (error) return "trip." + error; } if (message.vehicle != null && message.hasOwnProperty("vehicle")) { var error = $root.transit_realtime.VehicleDescriptor.verify(message.vehicle); if (error) return "vehicle." + error; } if (message.stopTimeUpdate != null && message.hasOwnProperty("stopTimeUpdate")) { if (!Array.isArray(message.stopTimeUpdate)) return "stopTimeUpdate: array expected"; for (var i = 0; i < message.stopTimeUpdate.length; ++i) { var error = $root.transit_realtime.TripUpdate.StopTimeUpdate.verify(message.stopTimeUpdate[i]); if (error) return "stopTimeUpdate." + error; } } if (message.timestamp != null && message.hasOwnProperty("timestamp")) if (!$util.isInteger(message.timestamp) && !(message.timestamp && $util.isInteger(message.timestamp.low) && $util.isInteger(message.timestamp.high))) return "timestamp: integer|Long expected"; if (message.delay != null && message.hasOwnProperty("delay")) if (!$util.isInteger(message.delay)) return "delay: integer expected"; return null; }; /** * Creates a TripUpdate message from a plain object. Also converts values to their respective internal types. * @function fromObject * @memberof transit_realtime.TripUpdate * @static * @param {Object.<string,*>} object Plain object * @returns {transit_realtime.TripUpdate} TripUpdate */ TripUpdate.fromObject = function fromObject(object) { if (object instanceof $root.transit_realtime.TripUpdate) return object; var message = new $root.transit_realtime.TripUpdate(); if (object.trip != null) { if (typeof object.trip !== "object") throw TypeError(".transit_realtime.TripUpdate.trip: object expected"); message.trip = $root.transit_realtime.TripDescriptor.fromObject(object.trip); } if (object.vehicle != null) { if (typeof object.vehicle !== "object") throw TypeError(".transit_realtime.TripUpdate.vehicle: object expected"); message.vehicle = $root.transit_realtime.VehicleDescriptor.fromObject(object.vehicle); } if (object.stopTimeUpdate) { if (!Array.isArray(object.stopTimeUpdate)) throw TypeError(".transit_realtime.TripUpdate.stopTimeUpdate: array expected"); message.stopTimeUpdate = []; for (var i = 0; i < object.stopTimeUpdate.length; ++i) { if (typeof object.stopTimeUpdate[i] !== "object") throw TypeError(".transit_realtime.TripUpdate.stopTimeUpdate: object expected"); message.stopTimeUpdate[i] = $root.transit_realtime.TripUpdate.StopTimeUpdate.fromObject(object.stopTimeUpdate[i]); } } if (object.timestamp != null) if ($util.Long) (message.tim