vda-5050-lib
Version:
Universal VDA 5050 library for Node.js and browsers
738 lines (736 loc) • 269 kB
JavaScript
// ----------------------------------------------------------------------------"
// This file was generated by a tool, do not modify it directly.
// ----------------------------------------------------------------------------
const validateConnection = (function() {
'use strict'
const hasOwn = Function.prototype.call.bind(Object.prototype.hasOwnProperty);
const format0 = (input) => {
if (input.length > 10 + 1 + 9 + 12 + 6) return false
const full = /^\d\d\d\d-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])[t\s](?:2[0-3]|[0-1]\d):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:z|[+-](?:2[0-3]|[0-1]\d)(?::?[0-5]\d)?)$/i
const feb = input[5] === '0' && input[6] === '2'
if ((feb && input[8] === '3') || !full.test(input)) return false
if (input[17] === '6') {
const p = input.slice(11).match(/([0-9.]+|[^0-9.])/g)
let hm = Number(p[0]) * 60 + Number(p[2])
if (p[5] === '+') hm += 24 * 60 - Number(p[6] || 0) * 60 - Number(p[8] || 0)
else if (p[5] === '-') hm += Number(p[6] || 0) * 60 + Number(p[8] || 0)
if (hm % (24 * 60) !== 23 * 60 + 59) return false
}
if (feb) {
if (/^\d\d\d\d-02-(?:[012][1-8]|[12]0|[01]9)/.test(input)) return true
const matches = input.match(/^(\d\d\d\d)-02-29/)
if (!matches) return false
const year = matches[1] | 0
return year % 16 === 0 || (year % 4 === 0 && year % 25 !== 0)
}
if (input[8] === '3' && input[9] === '1') return /^\d\d\d\d-(?:0[13578]|1[02])-31/.test(input)
return /^\d\d\d\d-(?:0[13-9]|1[012])-(?:[012][1-9]|[123]0)/.test(input)
};
const ref0 = function validate(data) {
validate.errors = null
if (!(typeof data === "object" && data && !Array.isArray(data))) {
validate.errors = [{ keywordLocation: "#/type", instanceLocation: "#" }]
return false
}
if (!("headerId" in data && hasOwn(data, "headerId"))) {
validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/headerId" }]
return false
}
if (!("timestamp" in data && hasOwn(data, "timestamp"))) {
validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/timestamp" }]
return false
}
if (!("version" in data && hasOwn(data, "version"))) {
validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/version" }]
return false
}
if (!("manufacturer" in data && hasOwn(data, "manufacturer"))) {
validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/manufacturer" }]
return false
}
if (!("serialNumber" in data && hasOwn(data, "serialNumber"))) {
validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/serialNumber" }]
return false
}
if (!("connectionState" in data && hasOwn(data, "connectionState"))) {
validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/connectionState" }]
return false
}
if (!Number.isInteger(data.headerId)) {
validate.errors = [{ keywordLocation: "#/properties/headerId/type", instanceLocation: "#/headerId" }]
return false
}
if (!(typeof data.timestamp === "string")) {
validate.errors = [{ keywordLocation: "#/properties/timestamp/type", instanceLocation: "#/timestamp" }]
return false
}
if (!format0(data.timestamp)) {
validate.errors = [{ keywordLocation: "#/properties/timestamp/format", instanceLocation: "#/timestamp" }]
return false
}
if (!(typeof data.version === "string")) {
validate.errors = [{ keywordLocation: "#/properties/version/type", instanceLocation: "#/version" }]
return false
}
if (!(typeof data.manufacturer === "string")) {
validate.errors = [{ keywordLocation: "#/properties/manufacturer/type", instanceLocation: "#/manufacturer" }]
return false
}
if (!(typeof data.serialNumber === "string")) {
validate.errors = [{ keywordLocation: "#/properties/serialNumber/type", instanceLocation: "#/serialNumber" }]
return false
}
if (!(typeof data.connectionState === "string")) {
validate.errors = [{ keywordLocation: "#/properties/connectionState/type", instanceLocation: "#/connectionState" }]
return false
}
if (!(data.connectionState === "ONLINE" || data.connectionState === "OFFLINE" || data.connectionState === "HIBERNATING" || data.connectionState === "CONNECTION_BROKEN")) {
validate.errors = [{ keywordLocation: "#/properties/connectionState/enum", instanceLocation: "#/connectionState" }]
return false
}
return true
};
return ref0})();
const validateFactsheet = (function() {
'use strict'
const hasOwn = Function.prototype.call.bind(Object.prototype.hasOwnProperty);
const format0 = (input) => {
if (input.length > 10 + 1 + 9 + 12 + 6) return false
const full = /^\d\d\d\d-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])[t\s](?:2[0-3]|[0-1]\d):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:z|[+-](?:2[0-3]|[0-1]\d)(?::?[0-5]\d)?)$/i
const feb = input[5] === '0' && input[6] === '2'
if ((feb && input[8] === '3') || !full.test(input)) return false
if (input[17] === '6') {
const p = input.slice(11).match(/([0-9.]+|[^0-9.])/g)
let hm = Number(p[0]) * 60 + Number(p[2])
if (p[5] === '+') hm += 24 * 60 - Number(p[6] || 0) * 60 - Number(p[8] || 0)
else if (p[5] === '-') hm += Number(p[6] || 0) * 60 + Number(p[8] || 0)
if (hm % (24 * 60) !== 23 * 60 + 59) return false
}
if (feb) {
if (/^\d\d\d\d-02-(?:[012][1-8]|[12]0|[01]9)/.test(input)) return true
const matches = input.match(/^(\d\d\d\d)-02-29/)
if (!matches) return false
const year = matches[1] | 0
return year % 16 === 0 || (year % 4 === 0 && year % 25 !== 0)
}
if (input[8] === '3' && input[9] === '1') return /^\d\d\d\d-(?:0[13578]|1[02])-31/.test(input)
return /^\d\d\d\d-(?:0[13-9]|1[012])-(?:[012][1-9]|[123]0)/.test(input)
};
const ref0 = function validate(data) {
validate.errors = null
if (!(typeof data === "object" && data && !Array.isArray(data))) {
validate.errors = [{ keywordLocation: "#/type", instanceLocation: "#" }]
return false
}
if (!("headerId" in data && hasOwn(data, "headerId"))) {
validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/headerId" }]
return false
}
if (!("timestamp" in data && hasOwn(data, "timestamp"))) {
validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/timestamp" }]
return false
}
if (!("version" in data && hasOwn(data, "version"))) {
validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/version" }]
return false
}
if (!("manufacturer" in data && hasOwn(data, "manufacturer"))) {
validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/manufacturer" }]
return false
}
if (!("serialNumber" in data && hasOwn(data, "serialNumber"))) {
validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/serialNumber" }]
return false
}
if (!("typeSpecification" in data && hasOwn(data, "typeSpecification"))) {
validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/typeSpecification" }]
return false
}
if (!("physicalParameters" in data && hasOwn(data, "physicalParameters"))) {
validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/physicalParameters" }]
return false
}
if (!("protocolLimits" in data && hasOwn(data, "protocolLimits"))) {
validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/protocolLimits" }]
return false
}
if (!("protocolFeatures" in data && hasOwn(data, "protocolFeatures"))) {
validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/protocolFeatures" }]
return false
}
if (!("mobileRobotGeometry" in data && hasOwn(data, "mobileRobotGeometry"))) {
validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/mobileRobotGeometry" }]
return false
}
if (!("loadSpecification" in data && hasOwn(data, "loadSpecification"))) {
validate.errors = [{ keywordLocation: "#/required", instanceLocation: "#/loadSpecification" }]
return false
}
if (!Number.isInteger(data.headerId)) {
validate.errors = [{ keywordLocation: "#/properties/headerId/type", instanceLocation: "#/headerId" }]
return false
}
if (!(0 <= data.headerId)) {
validate.errors = [{ keywordLocation: "#/properties/headerId/minimum", instanceLocation: "#/headerId" }]
return false
}
if (!(typeof data.timestamp === "string")) {
validate.errors = [{ keywordLocation: "#/properties/timestamp/type", instanceLocation: "#/timestamp" }]
return false
}
if (!format0(data.timestamp)) {
validate.errors = [{ keywordLocation: "#/properties/timestamp/format", instanceLocation: "#/timestamp" }]
return false
}
if (!(typeof data.version === "string")) {
validate.errors = [{ keywordLocation: "#/properties/version/type", instanceLocation: "#/version" }]
return false
}
if (!(typeof data.manufacturer === "string")) {
validate.errors = [{ keywordLocation: "#/properties/manufacturer/type", instanceLocation: "#/manufacturer" }]
return false
}
if (!(typeof data.serialNumber === "string")) {
validate.errors = [{ keywordLocation: "#/properties/serialNumber/type", instanceLocation: "#/serialNumber" }]
return false
}
if (!(typeof data.typeSpecification === "object" && data.typeSpecification && !Array.isArray(data.typeSpecification))) {
validate.errors = [{ keywordLocation: "#/properties/typeSpecification/type", instanceLocation: "#/typeSpecification" }]
return false
}
if (!("seriesName" in data.typeSpecification && hasOwn(data.typeSpecification, "seriesName"))) {
validate.errors = [{ keywordLocation: "#/properties/typeSpecification/required", instanceLocation: "#/typeSpecification/seriesName" }]
return false
}
if (!("mobileRobotKinematic" in data.typeSpecification && hasOwn(data.typeSpecification, "mobileRobotKinematic"))) {
validate.errors = [{ keywordLocation: "#/properties/typeSpecification/required", instanceLocation: "#/typeSpecification/mobileRobotKinematic" }]
return false
}
if (!("mobileRobotClass" in data.typeSpecification && hasOwn(data.typeSpecification, "mobileRobotClass"))) {
validate.errors = [{ keywordLocation: "#/properties/typeSpecification/required", instanceLocation: "#/typeSpecification/mobileRobotClass" }]
return false
}
if (!("maximumLoadMass" in data.typeSpecification && hasOwn(data.typeSpecification, "maximumLoadMass"))) {
validate.errors = [{ keywordLocation: "#/properties/typeSpecification/required", instanceLocation: "#/typeSpecification/maximumLoadMass" }]
return false
}
if (!("localizationTypes" in data.typeSpecification && hasOwn(data.typeSpecification, "localizationTypes"))) {
validate.errors = [{ keywordLocation: "#/properties/typeSpecification/required", instanceLocation: "#/typeSpecification/localizationTypes" }]
return false
}
if (!("navigationTypes" in data.typeSpecification && hasOwn(data.typeSpecification, "navigationTypes"))) {
validate.errors = [{ keywordLocation: "#/properties/typeSpecification/required", instanceLocation: "#/typeSpecification/navigationTypes" }]
return false
}
if (!(typeof data.typeSpecification.seriesName === "string")) {
validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/seriesName/type", instanceLocation: "#/typeSpecification/seriesName" }]
return false
}
if ("seriesDescription" in data.typeSpecification && hasOwn(data.typeSpecification, "seriesDescription")) {
if (!(typeof data.typeSpecification.seriesDescription === "string")) {
validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/seriesDescription/type", instanceLocation: "#/typeSpecification/seriesDescription" }]
return false
}
}
if ("mobileRobotKinematics" in data.typeSpecification && hasOwn(data.typeSpecification, "mobileRobotKinematics")) {
if (!(typeof data.typeSpecification.mobileRobotKinematics === "string")) {
validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/mobileRobotKinematics/type", instanceLocation: "#/typeSpecification/mobileRobotKinematics" }]
return false
}
}
if (!(typeof data.typeSpecification.mobileRobotClass === "string")) {
validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/mobileRobotClass/type", instanceLocation: "#/typeSpecification/mobileRobotClass" }]
return false
}
if (!(typeof data.typeSpecification.maximumLoadMass === "number")) {
validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/maximumLoadMass/type", instanceLocation: "#/typeSpecification/maximumLoadMass" }]
return false
}
if (!(0 <= data.typeSpecification.maximumLoadMass)) {
validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/maximumLoadMass/minimum", instanceLocation: "#/typeSpecification/maximumLoadMass" }]
return false
}
if (!Array.isArray(data.typeSpecification.localizationTypes)) {
validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/localizationTypes/type", instanceLocation: "#/typeSpecification/localizationTypes" }]
return false
}
for (let i = 0; i < data.typeSpecification.localizationTypes.length; i++) {
if (i in data.typeSpecification.localizationTypes && hasOwn(data.typeSpecification.localizationTypes, i)) {
if (!(typeof data.typeSpecification.localizationTypes[i] === "string")) {
validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/localizationTypes/items/type", instanceLocation: "#/typeSpecification/localizationTypes/"+i }]
return false
}
}
}
if (!Array.isArray(data.typeSpecification.navigationTypes)) {
validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/navigationTypes/type", instanceLocation: "#/typeSpecification/navigationTypes" }]
return false
}
for (let j = 0; j < data.typeSpecification.navigationTypes.length; j++) {
if (j in data.typeSpecification.navigationTypes && hasOwn(data.typeSpecification.navigationTypes, j)) {
if (!(typeof data.typeSpecification.navigationTypes[j] === "string")) {
validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/navigationTypes/items/type", instanceLocation: "#/typeSpecification/navigationTypes/"+j }]
return false
}
}
}
if ("supportedZones" in data.typeSpecification && hasOwn(data.typeSpecification, "supportedZones")) {
if (!Array.isArray(data.typeSpecification.supportedZones)) {
validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/supportedZones/type", instanceLocation: "#/typeSpecification/supportedZones" }]
return false
}
for (let k = 0; k < data.typeSpecification.supportedZones.length; k++) {
if (k in data.typeSpecification.supportedZones && hasOwn(data.typeSpecification.supportedZones, k)) {
if (!(typeof data.typeSpecification.supportedZones[k] === "string")) {
validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/supportedZones/items/type", instanceLocation: "#/typeSpecification/supportedZones/"+k }]
return false
}
if (!(data.typeSpecification.supportedZones[k] === "BLOCKED" || data.typeSpecification.supportedZones[k] === "LINE_GUIDED" || data.typeSpecification.supportedZones[k] === "RELEASE" || data.typeSpecification.supportedZones[k] === "COORDINATED_REPLANNING" || data.typeSpecification.supportedZones[k] === "SPEED_LIMIT" || data.typeSpecification.supportedZones[k] === "ACTION" || data.typeSpecification.supportedZones[k] === "PRIORITY" || data.typeSpecification.supportedZones[k] === "PENALTY" || data.typeSpecification.supportedZones[k] === "DIRECTED" || data.typeSpecification.supportedZones[k] === "BIDIRECTED")) {
validate.errors = [{ keywordLocation: "#/properties/typeSpecification/properties/supportedZones/items/enum", instanceLocation: "#/typeSpecification/supportedZones/"+k }]
return false
}
}
}
}
if (!(typeof data.physicalParameters === "object" && data.physicalParameters && !Array.isArray(data.physicalParameters))) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/type", instanceLocation: "#/physicalParameters" }]
return false
}
if (!("minimumSpeed" in data.physicalParameters && hasOwn(data.physicalParameters, "minimumSpeed"))) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/required", instanceLocation: "#/physicalParameters/minimumSpeed" }]
return false
}
if (!("maximumSpeed" in data.physicalParameters && hasOwn(data.physicalParameters, "maximumSpeed"))) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/required", instanceLocation: "#/physicalParameters/maximumSpeed" }]
return false
}
if (!("maximumAcceleration" in data.physicalParameters && hasOwn(data.physicalParameters, "maximumAcceleration"))) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/required", instanceLocation: "#/physicalParameters/maximumAcceleration" }]
return false
}
if (!("maximumDeceleration" in data.physicalParameters && hasOwn(data.physicalParameters, "maximumDeceleration"))) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/required", instanceLocation: "#/physicalParameters/maximumDeceleration" }]
return false
}
if (!("minimumHeight" in data.physicalParameters && hasOwn(data.physicalParameters, "minimumHeight"))) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/required", instanceLocation: "#/physicalParameters/minimumHeight" }]
return false
}
if (!("maximumHeight" in data.physicalParameters && hasOwn(data.physicalParameters, "maximumHeight"))) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/required", instanceLocation: "#/physicalParameters/maximumHeight" }]
return false
}
if (!("width" in data.physicalParameters && hasOwn(data.physicalParameters, "width"))) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/required", instanceLocation: "#/physicalParameters/width" }]
return false
}
if (!("length" in data.physicalParameters && hasOwn(data.physicalParameters, "length"))) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/required", instanceLocation: "#/physicalParameters/length" }]
return false
}
if (!(typeof data.physicalParameters.minimumSpeed === "number")) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/minimumSpeed/type", instanceLocation: "#/physicalParameters/minimumSpeed" }]
return false
}
if (!(0 <= data.physicalParameters.minimumSpeed)) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/minimumSpeed/minimum", instanceLocation: "#/physicalParameters/minimumSpeed" }]
return false
}
if (!(typeof data.physicalParameters.maximumSpeed === "number")) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/maximumSpeed/type", instanceLocation: "#/physicalParameters/maximumSpeed" }]
return false
}
if (!(0 <= data.physicalParameters.maximumSpeed)) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/maximumSpeed/minimum", instanceLocation: "#/physicalParameters/maximumSpeed" }]
return false
}
if ("minimumAngularSpeed" in data.physicalParameters && hasOwn(data.physicalParameters, "minimumAngularSpeed")) {
if (!(typeof data.physicalParameters.minimumAngularSpeed === "number")) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/minimumAngularSpeed/type", instanceLocation: "#/physicalParameters/minimumAngularSpeed" }]
return false
}
if (!(0 <= data.physicalParameters.minimumAngularSpeed)) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/minimumAngularSpeed/minimum", instanceLocation: "#/physicalParameters/minimumAngularSpeed" }]
return false
}
}
if ("maximumAngularSpeed" in data.physicalParameters && hasOwn(data.physicalParameters, "maximumAngularSpeed")) {
if (!(typeof data.physicalParameters.maximumAngularSpeed === "number")) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/maximumAngularSpeed/type", instanceLocation: "#/physicalParameters/maximumAngularSpeed" }]
return false
}
if (!(0 <= data.physicalParameters.maximumAngularSpeed)) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/maximumAngularSpeed/minimum", instanceLocation: "#/physicalParameters/maximumAngularSpeed" }]
return false
}
}
if (!(typeof data.physicalParameters.maximumAcceleration === "number")) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/maximumAcceleration/type", instanceLocation: "#/physicalParameters/maximumAcceleration" }]
return false
}
if (!(0 <= data.physicalParameters.maximumAcceleration)) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/maximumAcceleration/minimum", instanceLocation: "#/physicalParameters/maximumAcceleration" }]
return false
}
if (!(typeof data.physicalParameters.maximumDeceleration === "number")) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/maximumDeceleration/type", instanceLocation: "#/physicalParameters/maximumDeceleration" }]
return false
}
if (!(typeof data.physicalParameters.minimumHeight === "number")) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/minimumHeight/type", instanceLocation: "#/physicalParameters/minimumHeight" }]
return false
}
if (!(typeof data.physicalParameters.maximumHeight === "number")) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/maximumHeight/type", instanceLocation: "#/physicalParameters/maximumHeight" }]
return false
}
if (!(typeof data.physicalParameters.width === "number")) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/width/type", instanceLocation: "#/physicalParameters/width" }]
return false
}
if (!(typeof data.physicalParameters.length === "number")) {
validate.errors = [{ keywordLocation: "#/properties/physicalParameters/properties/length/type", instanceLocation: "#/physicalParameters/length" }]
return false
}
if (!(typeof data.protocolLimits === "object" && data.protocolLimits && !Array.isArray(data.protocolLimits))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/type", instanceLocation: "#/protocolLimits" }]
return false
}
if (!("maximumStringLengths" in data.protocolLimits && hasOwn(data.protocolLimits, "maximumStringLengths"))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/required", instanceLocation: "#/protocolLimits/maximumStringLengths" }]
return false
}
if (!("maximumArrayLengths" in data.protocolLimits && hasOwn(data.protocolLimits, "maximumArrayLengths"))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/required", instanceLocation: "#/protocolLimits/maximumArrayLengths" }]
return false
}
if (!("timing" in data.protocolLimits && hasOwn(data.protocolLimits, "timing"))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/required", instanceLocation: "#/protocolLimits/timing" }]
return false
}
if (!(typeof data.protocolLimits.maximumStringLengths === "object" && data.protocolLimits.maximumStringLengths && !Array.isArray(data.protocolLimits.maximumStringLengths))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/type", instanceLocation: "#/protocolLimits/maximumStringLengths" }]
return false
}
if ("maximumMessageLength" in data.protocolLimits.maximumStringLengths && hasOwn(data.protocolLimits.maximumStringLengths, "maximumMessageLength")) {
if (!Number.isInteger(data.protocolLimits.maximumStringLengths.maximumMessageLength)) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/properties/maximumMessageLength/type", instanceLocation: "#/protocolLimits/maximumStringLengths/maximumMessageLength" }]
return false
}
if (!(0 <= data.protocolLimits.maximumStringLengths.maximumMessageLength)) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/properties/maximumMessageLength/minimum", instanceLocation: "#/protocolLimits/maximumStringLengths/maximumMessageLength" }]
return false
}
}
if ("maximumTopicSerialLength" in data.protocolLimits.maximumStringLengths && hasOwn(data.protocolLimits.maximumStringLengths, "maximumTopicSerialLength")) {
if (!Number.isInteger(data.protocolLimits.maximumStringLengths.maximumTopicSerialLength)) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/properties/maximumTopicSerialLength/type", instanceLocation: "#/protocolLimits/maximumStringLengths/maximumTopicSerialLength" }]
return false
}
if (!(0 <= data.protocolLimits.maximumStringLengths.maximumTopicSerialLength)) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/properties/maximumTopicSerialLength/minimum", instanceLocation: "#/protocolLimits/maximumStringLengths/maximumTopicSerialLength" }]
return false
}
}
if ("maximumTopicElementLength" in data.protocolLimits.maximumStringLengths && hasOwn(data.protocolLimits.maximumStringLengths, "maximumTopicElementLength")) {
if (!Number.isInteger(data.protocolLimits.maximumStringLengths.maximumTopicElementLength)) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/properties/maximumTopicElementLength/type", instanceLocation: "#/protocolLimits/maximumStringLengths/maximumTopicElementLength" }]
return false
}
if (!(0 <= data.protocolLimits.maximumStringLengths.maximumTopicElementLength)) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/properties/maximumTopicElementLength/minimum", instanceLocation: "#/protocolLimits/maximumStringLengths/maximumTopicElementLength" }]
return false
}
}
if ("maximumIdLength" in data.protocolLimits.maximumStringLengths && hasOwn(data.protocolLimits.maximumStringLengths, "maximumIdLength")) {
if (!Number.isInteger(data.protocolLimits.maximumStringLengths.maximumIdLength)) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/properties/maximumIdLength/type", instanceLocation: "#/protocolLimits/maximumStringLengths/maximumIdLength" }]
return false
}
if (!(0 <= data.protocolLimits.maximumStringLengths.maximumIdLength)) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/properties/maximumIdLength/minimum", instanceLocation: "#/protocolLimits/maximumStringLengths/maximumIdLength" }]
return false
}
}
if ("idNumericalOnly" in data.protocolLimits.maximumStringLengths && hasOwn(data.protocolLimits.maximumStringLengths, "idNumericalOnly")) {
if (!(typeof data.protocolLimits.maximumStringLengths.idNumericalOnly === "boolean")) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/properties/idNumericalOnly/type", instanceLocation: "#/protocolLimits/maximumStringLengths/idNumericalOnly" }]
return false
}
}
if ("maximumLoadIdLength" in data.protocolLimits.maximumStringLengths && hasOwn(data.protocolLimits.maximumStringLengths, "maximumLoadIdLength")) {
if (!Number.isInteger(data.protocolLimits.maximumStringLengths.maximumLoadIdLength)) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/properties/maximumLoadIdLength/type", instanceLocation: "#/protocolLimits/maximumStringLengths/maximumLoadIdLength" }]
return false
}
if (!(0 <= data.protocolLimits.maximumStringLengths.maximumLoadIdLength)) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumStringLengths/properties/maximumLoadIdLength/minimum", instanceLocation: "#/protocolLimits/maximumStringLengths/maximumLoadIdLength" }]
return false
}
}
if (!(typeof data.protocolLimits.maximumArrayLengths === "object" && data.protocolLimits.maximumArrayLengths && !Array.isArray(data.protocolLimits.maximumArrayLengths))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/type", instanceLocation: "#/protocolLimits/maximumArrayLengths" }]
return false
}
if ("order.nodes" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "order.nodes")) {
if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["order.nodes"]))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/order.nodes/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/order.nodes" }]
return false
}
if (!(0 <= data.protocolLimits.maximumArrayLengths["order.nodes"])) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/order.nodes/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/order.nodes" }]
return false
}
}
if ("order.edges" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "order.edges")) {
if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["order.edges"]))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/order.edges/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/order.edges" }]
return false
}
if (!(0 <= data.protocolLimits.maximumArrayLengths["order.edges"])) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/order.edges/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/order.edges" }]
return false
}
}
if ("node.actions" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "node.actions")) {
if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["node.actions"]))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/node.actions/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/node.actions" }]
return false
}
if (!(0 <= data.protocolLimits.maximumArrayLengths["node.actions"])) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/node.actions/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/node.actions" }]
return false
}
}
if ("edge.actions" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "edge.actions")) {
if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["edge.actions"]))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/edge.actions/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/edge.actions" }]
return false
}
if (!(0 <= data.protocolLimits.maximumArrayLengths["edge.actions"])) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/edge.actions/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/edge.actions" }]
return false
}
}
if ("actions.actionsParameters" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "actions.actionsParameters")) {
if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["actions.actionsParameters"]))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/actions.actionsParameters/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/actions.actionsParameters" }]
return false
}
if (!(0 <= data.protocolLimits.maximumArrayLengths["actions.actionsParameters"])) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/actions.actionsParameters/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/actions.actionsParameters" }]
return false
}
}
if ("instantActions" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "instantActions")) {
if (!Number.isInteger(data.protocolLimits.maximumArrayLengths.instantActions)) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/instantActions/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/instantActions" }]
return false
}
if (!(0 <= data.protocolLimits.maximumArrayLengths.instantActions)) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/instantActions/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/instantActions" }]
return false
}
}
if ("trajectory.knotVector" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "trajectory.knotVector")) {
if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["trajectory.knotVector"]))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/trajectory.knotVector/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/trajectory.knotVector" }]
return false
}
if (!(0 <= data.protocolLimits.maximumArrayLengths["trajectory.knotVector"])) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/trajectory.knotVector/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/trajectory.knotVector" }]
return false
}
}
if ("trajectory.controlPoints" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "trajectory.controlPoints")) {
if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["trajectory.controlPoints"]))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/trajectory.controlPoints/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/trajectory.controlPoints" }]
return false
}
if (!(0 <= data.protocolLimits.maximumArrayLengths["trajectory.controlPoints"])) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/trajectory.controlPoints/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/trajectory.controlPoints" }]
return false
}
}
if ("zoneSet.zones" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "zoneSet.zones")) {
if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["zoneSet.zones"]))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/zoneSet.zones/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/zoneSet.zones" }]
return false
}
if (!(0 <= data.protocolLimits.maximumArrayLengths["zoneSet.zones"])) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/zoneSet.zones/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/zoneSet.zones" }]
return false
}
}
if ("state.nodeStates" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "state.nodeStates")) {
if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["state.nodeStates"]))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.nodeStates/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.nodeStates" }]
return false
}
if (!(0 <= data.protocolLimits.maximumArrayLengths["state.nodeStates"])) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.nodeStates/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.nodeStates" }]
return false
}
}
if ("state.edgeStates" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "state.edgeStates")) {
if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["state.edgeStates"]))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.edgeStates/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.edgeStates" }]
return false
}
if (!(0 <= data.protocolLimits.maximumArrayLengths["state.edgeStates"])) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.edgeStates/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.edgeStates" }]
return false
}
}
if ("state.loads" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "state.loads")) {
if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["state.loads"]))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.loads/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.loads" }]
return false
}
if (!(0 <= data.protocolLimits.maximumArrayLengths["state.loads"])) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.loads/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.loads" }]
return false
}
}
if ("state.actionStates" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "state.actionStates")) {
if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["state.actionStates"]))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.actionStates/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.actionStates" }]
return false
}
if (!(0 <= data.protocolLimits.maximumArrayLengths["state.actionStates"])) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.actionStates/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.actionStates" }]
return false
}
}
if ("state.instantActionStates" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "state.instantActionStates")) {
if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["state.instantActionStates"]))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.instantActionStates/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.instantActionStates" }]
return false
}
if (!(0 <= data.protocolLimits.maximumArrayLengths["state.instantActionStates"])) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.instantActionStates/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.instantActionStates" }]
return false
}
}
if ("state.zoneActionStates" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "state.zoneActionStates")) {
if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["state.zoneActionStates"]))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.zoneActionStates/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.zoneActionStates" }]
return false
}
if (!(0 <= data.protocolLimits.maximumArrayLengths["state.zoneActionStates"])) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.zoneActionStates/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.zoneActionStates" }]
return false
}
}
if ("state.errors" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "state.errors")) {
if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["state.errors"]))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.errors/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.errors" }]
return false
}
if (!(0 <= data.protocolLimits.maximumArrayLengths["state.errors"])) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.errors/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.errors" }]
return false
}
}
if ("state.information" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "state.information")) {
if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["state.information"]))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.information/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.information" }]
return false
}
if (!(0 <= data.protocolLimits.maximumArrayLengths["state.information"])) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/state.information/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/state.information" }]
return false
}
}
if ("error.errorReferences" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "error.errorReferences")) {
if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["error.errorReferences"]))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/error.errorReferences/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/error.errorReferences" }]
return false
}
if (!(0 <= data.protocolLimits.maximumArrayLengths["error.errorReferences"])) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/error.errorReferences/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/error.errorReferences" }]
return false
}
}
if ("information.infoReferences" in data.protocolLimits.maximumArrayLengths && hasOwn(data.protocolLimits.maximumArrayLengths, "information.infoReferences")) {
if (!(Number.isInteger(data.protocolLimits.maximumArrayLengths["information.infoReferences"]))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/information.infoReferences/type", instanceLocation: "#/protocolLimits/maximumArrayLengths/information.infoReferences" }]
return false
}
if (!(0 <= data.protocolLimits.maximumArrayLengths["information.infoReferences"])) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/maximumArrayLengths/properties/information.infoReferences/minimum", instanceLocation: "#/protocolLimits/maximumArrayLengths/information.infoReferences" }]
return false
}
}
if (!(typeof data.protocolLimits.timing === "object" && data.protocolLimits.timing && !Array.isArray(data.protocolLimits.timing))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/timing/type", instanceLocation: "#/protocolLimits/timing" }]
return false
}
if (!("minimumOrderInterval" in data.protocolLimits.timing && hasOwn(data.protocolLimits.timing, "minimumOrderInterval"))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/timing/required", instanceLocation: "#/protocolLimits/timing/minimumOrderInterval" }]
return false
}
if (!("minimumStateInterval" in data.protocolLimits.timing && hasOwn(data.protocolLimits.timing, "minimumStateInterval"))) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/timing/required", instanceLocation: "#/protocolLimits/timing/minimumStateInterval" }]
return false
}
if (!(typeof data.protocolLimits.timing.minimumOrderInterval === "number")) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/timing/properties/minimumOrderInterval/type", instanceLocation: "#/protocolLimits/timing/minimumOrderInterval" }]
return false
}
if (!(0 <= data.protocolLimits.timing.minimumOrderInterval)) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/timing/properties/minimumOrderInterval/minimum", instanceLocation: "#/protocolLimits/timing/minimumOrderInterval" }]
return false
}
if (!(typeof data.protocolLimits.timing.minimumStateInterval === "number")) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/timing/properties/minimumStateInterval/type", instanceLocation: "#/protocolLimits/timing/minimumStateInterval" }]
return false
}
if (!(0 <= data.protocolLimits.timing.minimumStateInterval)) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/timing/properties/minimumStateInterval/minimum", instanceLocation: "#/protocolLimits/timing/minimumStateInterval" }]
return false
}
if ("defaultStateInterval" in data.protocolLimits.timing && hasOwn(data.protocolLimits.timing, "defaultStateInterval")) {
if (!(typeof data.protocolLimits.timing.defaultStateInterval === "number")) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/timing/properties/defaultStateInterval/type", instanceLocation: "#/protocolLimits/timing/defaultStateInterval" }]
return false
}
if (!(0 <= data.protocolLimits.timing.defaultStateInterval)) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/timing/properties/defaultStateInterval/minimum", instanceLocation: "#/protocolLimits/timing/defaultStateInterval" }]
return false
}
}
if ("visualizationInterval" in data.protocolLimits.timing && hasOwn(data.protocolLimits.timing, "visualizationInterval")) {
if (!(typeof data.protocolLimits.timing.visualizationInterval === "number")) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/timing/properties/visualizationInterval/type", instanceLocation: "#/protocolLimits/timing/visualizationInterval" }]
return false
}
if (!(0 <= data.protocolLimits.timing.visualizationInterval)) {
validate.errors = [{ keywordLocation: "#/properties/protocolLimits/properties/timing/properties/visualizationInterval/minimum", instanceLocation: "#/protocolLimits/timing/visualizationInterval" }]
return false
}
}
if (!(typeof data.protocolFeatures === "object" && data.protocolFeatures && !Array.isArray(data.protocolFeatures))) {
validate.errors = [{ keywordLocation: "#/properties/protocolFeatures/type", instanceLocation: "#/protocolFeatures" }]
return false
}
if (!("optionalParameters" in data.protocolFeatures && hasOwn(data.protocolFeatures, "optionalParameters"))) {
validate.errors = [{ keywordLocation: "#/properties/protocolFeatures/required", instanceLocation: "#/protocolFeatures/optionalParameters" }]
return false
}
if (!("mobileRobotActions" in data.protocolFeatures && hasOwn(data.protocolFeatures, "mobileRobotActions"))) {
validate.errors = [{ keywordLocation: "#/properties/protocolFeatures/required", instanceLocation: "#/protocolFeatures/mobileRobotActions" }]
return false
}
if (!Array.isArray(data.protocolFeatures.optionalParameters)) {
validate.errors = [{ keywordLocation: "#/properties/protocolFeatures/properties/optionalParameters/type", instanceLocation: "#/protocolFeatures/optionalParameters" }]
return false
}
for (let l = 0; l < data.protocolFeatures.optionalParameters.length; l++) {
if (l in data.protocolFeatures.optionalParameters && hasOwn(data.protocolFeatures.optionalParameters, l)) {
if (!(typeof data.protocolFeatures.optionalParameters[l] === "object" && data.protocolFeatures.optionalParameters[l] && !Array.isArray(data.protocolFeatures.optionalParameters[l]))) {
validate.errors = [{ keywordLocation: "#/properties/protocolFeatures/properties/optionalParameters/items/type", instanceLocation: "#/protocolFeatures/optionalParameters/"+l }]
return false
}
if (!("parameter" in data.protocolFeatures.optionalParameters[l] && hasOwn(data.protocolFeatures.optionalParameters[l], "parameter"))) {
validate.errors = [{ keywordL