You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							1029 lines
						
					
					
						
							52 KiB
						
					
					
				
			
		
		
	
	
							1029 lines
						
					
					
						
							52 KiB
						
					
					
				// This file is autogenerated by build/build-validation.js, do not edit
 | 
						|
/* istanbul ignore file */
 | 
						|
// constant needed for customRule0 to work
 | 
						|
const self = {}
 | 
						|
 | 
						|
'use strict';
 | 
						|
var validate = (function() {
 | 
						|
  var refVal = [];
 | 
						|
  return function validate(data, dataPath, parentData, parentDataProperty, rootData) {
 | 
						|
    'use strict';
 | 
						|
    var vErrors = null;
 | 
						|
    var errors = 0;
 | 
						|
    if (rootData === undefined) rootData = data;
 | 
						|
    if ((data && typeof data === "object" && !Array.isArray(data))) {
 | 
						|
      if (data.connectionTimeout === undefined) data.connectionTimeout = 0;
 | 
						|
      if (data.keepAliveTimeout === undefined) data.keepAliveTimeout = 5000;
 | 
						|
      if (data.maxRequestsPerSocket === undefined) data.maxRequestsPerSocket = 0;
 | 
						|
      if (data.requestTimeout === undefined) data.requestTimeout = 0;
 | 
						|
      if (data.bodyLimit === undefined) data.bodyLimit = 1048576;
 | 
						|
      if (data.caseSensitive === undefined) data.caseSensitive = true;
 | 
						|
      if (data.ignoreTrailingSlash === undefined) data.ignoreTrailingSlash = false;
 | 
						|
      if (data.disableRequestLogging === undefined) data.disableRequestLogging = false;
 | 
						|
      if (data.jsonShorthand === undefined) data.jsonShorthand = true;
 | 
						|
      if (data.maxParamLength === undefined) data.maxParamLength = 100;
 | 
						|
      if (data.onProtoPoisoning === undefined) data.onProtoPoisoning = "error";
 | 
						|
      if (data.onConstructorPoisoning === undefined) data.onConstructorPoisoning = "error";
 | 
						|
      if (data.pluginTimeout === undefined) data.pluginTimeout = 10000;
 | 
						|
      if (data.requestIdHeader === undefined) data.requestIdHeader = "request-id";
 | 
						|
      if (data.requestIdLogLabel === undefined) data.requestIdLogLabel = "reqId";
 | 
						|
      if (data.http2SessionTimeout === undefined) data.http2SessionTimeout = 5000;
 | 
						|
      var errs__0 = errors;
 | 
						|
      var valid1 = true;
 | 
						|
      for (var key0 in data) {
 | 
						|
        var isAdditional0 = !(false || validate.schema.properties.hasOwnProperty(key0));
 | 
						|
        if (isAdditional0) {
 | 
						|
          delete data[key0];
 | 
						|
        }
 | 
						|
      }
 | 
						|
      if (valid1) {
 | 
						|
        var data1 = data.connectionTimeout;
 | 
						|
        var errs_1 = errors;
 | 
						|
        if ((typeof data1 !== "number" || (data1 % 1) || data1 !== data1)) {
 | 
						|
          var dataType1 = typeof data1;
 | 
						|
          var coerced1 = undefined;
 | 
						|
          if (coerced1 !== undefined);
 | 
						|
          else if (dataType1 == 'boolean' || data1 === null || (dataType1 == 'string' && data1 && data1 == +data1 && !(data1 % 1))) coerced1 = +data1;
 | 
						|
          else {
 | 
						|
            validate.errors = [{
 | 
						|
              keyword: 'type',
 | 
						|
              dataPath: (dataPath || '') + '.connectionTimeout',
 | 
						|
              schemaPath: '#/properties/connectionTimeout/type',
 | 
						|
              params: {
 | 
						|
                type: 'integer'
 | 
						|
              },
 | 
						|
              message: 'should be integer'
 | 
						|
            }];
 | 
						|
            return false;
 | 
						|
          }
 | 
						|
          if (coerced1 !== undefined) {
 | 
						|
            data1 = coerced1;
 | 
						|
            data['connectionTimeout'] = coerced1;
 | 
						|
          }
 | 
						|
        }
 | 
						|
        var valid1 = errors === errs_1;
 | 
						|
        if (valid1) {
 | 
						|
          var data1 = data.keepAliveTimeout;
 | 
						|
          var errs_1 = errors;
 | 
						|
          if ((typeof data1 !== "number" || (data1 % 1) || data1 !== data1)) {
 | 
						|
            var dataType1 = typeof data1;
 | 
						|
            var coerced1 = undefined;
 | 
						|
            if (coerced1 !== undefined);
 | 
						|
            else if (dataType1 == 'boolean' || data1 === null || (dataType1 == 'string' && data1 && data1 == +data1 && !(data1 % 1))) coerced1 = +data1;
 | 
						|
            else {
 | 
						|
              validate.errors = [{
 | 
						|
                keyword: 'type',
 | 
						|
                dataPath: (dataPath || '') + '.keepAliveTimeout',
 | 
						|
                schemaPath: '#/properties/keepAliveTimeout/type',
 | 
						|
                params: {
 | 
						|
                  type: 'integer'
 | 
						|
                },
 | 
						|
                message: 'should be integer'
 | 
						|
              }];
 | 
						|
              return false;
 | 
						|
            }
 | 
						|
            if (coerced1 !== undefined) {
 | 
						|
              data1 = coerced1;
 | 
						|
              data['keepAliveTimeout'] = coerced1;
 | 
						|
            }
 | 
						|
          }
 | 
						|
          var valid1 = errors === errs_1;
 | 
						|
          if (valid1) {
 | 
						|
            var data1 = data.maxRequestsPerSocket;
 | 
						|
            var errs_1 = errors;
 | 
						|
            if ((typeof data1 !== "number" || (data1 % 1) || data1 !== data1)) {
 | 
						|
              var dataType1 = typeof data1;
 | 
						|
              var coerced1 = undefined;
 | 
						|
              if (coerced1 !== undefined);
 | 
						|
              else if (dataType1 == 'boolean' || data1 === null || (dataType1 == 'string' && data1 && data1 == +data1 && !(data1 % 1))) coerced1 = +data1;
 | 
						|
              else {
 | 
						|
                validate.errors = [{
 | 
						|
                  keyword: 'type',
 | 
						|
                  dataPath: (dataPath || '') + '.maxRequestsPerSocket',
 | 
						|
                  schemaPath: '#/properties/maxRequestsPerSocket/type',
 | 
						|
                  params: {
 | 
						|
                    type: 'integer'
 | 
						|
                  },
 | 
						|
                  message: 'should be integer'
 | 
						|
                }];
 | 
						|
                return false;
 | 
						|
              }
 | 
						|
              if (coerced1 !== undefined) {
 | 
						|
                data1 = coerced1;
 | 
						|
                data['maxRequestsPerSocket'] = coerced1;
 | 
						|
              }
 | 
						|
            }
 | 
						|
            var valid1 = errors === errs_1;
 | 
						|
            if (valid1) {
 | 
						|
              var data1 = data.requestTimeout;
 | 
						|
              var errs_1 = errors;
 | 
						|
              if ((typeof data1 !== "number" || (data1 % 1) || data1 !== data1)) {
 | 
						|
                var dataType1 = typeof data1;
 | 
						|
                var coerced1 = undefined;
 | 
						|
                if (coerced1 !== undefined);
 | 
						|
                else if (dataType1 == 'boolean' || data1 === null || (dataType1 == 'string' && data1 && data1 == +data1 && !(data1 % 1))) coerced1 = +data1;
 | 
						|
                else {
 | 
						|
                  validate.errors = [{
 | 
						|
                    keyword: 'type',
 | 
						|
                    dataPath: (dataPath || '') + '.requestTimeout',
 | 
						|
                    schemaPath: '#/properties/requestTimeout/type',
 | 
						|
                    params: {
 | 
						|
                      type: 'integer'
 | 
						|
                    },
 | 
						|
                    message: 'should be integer'
 | 
						|
                  }];
 | 
						|
                  return false;
 | 
						|
                }
 | 
						|
                if (coerced1 !== undefined) {
 | 
						|
                  data1 = coerced1;
 | 
						|
                  data['requestTimeout'] = coerced1;
 | 
						|
                }
 | 
						|
              }
 | 
						|
              var valid1 = errors === errs_1;
 | 
						|
              if (valid1) {
 | 
						|
                var data1 = data.bodyLimit;
 | 
						|
                var errs_1 = errors;
 | 
						|
                if ((typeof data1 !== "number" || (data1 % 1) || data1 !== data1)) {
 | 
						|
                  var dataType1 = typeof data1;
 | 
						|
                  var coerced1 = undefined;
 | 
						|
                  if (coerced1 !== undefined);
 | 
						|
                  else if (dataType1 == 'boolean' || data1 === null || (dataType1 == 'string' && data1 && data1 == +data1 && !(data1 % 1))) coerced1 = +data1;
 | 
						|
                  else {
 | 
						|
                    validate.errors = [{
 | 
						|
                      keyword: 'type',
 | 
						|
                      dataPath: (dataPath || '') + '.bodyLimit',
 | 
						|
                      schemaPath: '#/properties/bodyLimit/type',
 | 
						|
                      params: {
 | 
						|
                        type: 'integer'
 | 
						|
                      },
 | 
						|
                      message: 'should be integer'
 | 
						|
                    }];
 | 
						|
                    return false;
 | 
						|
                  }
 | 
						|
                  if (coerced1 !== undefined) {
 | 
						|
                    data1 = coerced1;
 | 
						|
                    data['bodyLimit'] = coerced1;
 | 
						|
                  }
 | 
						|
                }
 | 
						|
                var valid1 = errors === errs_1;
 | 
						|
                if (valid1) {
 | 
						|
                  var data1 = data.caseSensitive;
 | 
						|
                  var errs_1 = errors;
 | 
						|
                  if (typeof data1 !== "boolean") {
 | 
						|
                    var dataType1 = typeof data1;
 | 
						|
                    var coerced1 = undefined;
 | 
						|
                    if (coerced1 !== undefined);
 | 
						|
                    else if (data1 === 'false' || data1 === 0 || data1 === null) coerced1 = false;
 | 
						|
                    else if (data1 === 'true' || data1 === 1) coerced1 = true;
 | 
						|
                    else {
 | 
						|
                      validate.errors = [{
 | 
						|
                        keyword: 'type',
 | 
						|
                        dataPath: (dataPath || '') + '.caseSensitive',
 | 
						|
                        schemaPath: '#/properties/caseSensitive/type',
 | 
						|
                        params: {
 | 
						|
                          type: 'boolean'
 | 
						|
                        },
 | 
						|
                        message: 'should be boolean'
 | 
						|
                      }];
 | 
						|
                      return false;
 | 
						|
                    }
 | 
						|
                    if (coerced1 !== undefined) {
 | 
						|
                      data1 = coerced1;
 | 
						|
                      data['caseSensitive'] = coerced1;
 | 
						|
                    }
 | 
						|
                  }
 | 
						|
                  var valid1 = errors === errs_1;
 | 
						|
                  if (valid1) {
 | 
						|
                    var data1 = data.http2;
 | 
						|
                    if (data1 === undefined) {
 | 
						|
                      valid1 = true;
 | 
						|
                    } else {
 | 
						|
                      var errs_1 = errors;
 | 
						|
                      if (typeof data1 !== "boolean") {
 | 
						|
                        var dataType1 = typeof data1;
 | 
						|
                        var coerced1 = undefined;
 | 
						|
                        if (coerced1 !== undefined);
 | 
						|
                        else if (data1 === 'false' || data1 === 0 || data1 === null) coerced1 = false;
 | 
						|
                        else if (data1 === 'true' || data1 === 1) coerced1 = true;
 | 
						|
                        else {
 | 
						|
                          validate.errors = [{
 | 
						|
                            keyword: 'type',
 | 
						|
                            dataPath: (dataPath || '') + '.http2',
 | 
						|
                            schemaPath: '#/properties/http2/type',
 | 
						|
                            params: {
 | 
						|
                              type: 'boolean'
 | 
						|
                            },
 | 
						|
                            message: 'should be boolean'
 | 
						|
                          }];
 | 
						|
                          return false;
 | 
						|
                        }
 | 
						|
                        if (coerced1 !== undefined) {
 | 
						|
                          data1 = coerced1;
 | 
						|
                          data['http2'] = coerced1;
 | 
						|
                        }
 | 
						|
                      }
 | 
						|
                      var valid1 = errors === errs_1;
 | 
						|
                    }
 | 
						|
                    if (valid1) {
 | 
						|
                      var data1 = data.https;
 | 
						|
                      if (data1 === undefined) {
 | 
						|
                        valid1 = true;
 | 
						|
                      } else {
 | 
						|
                        var errs_1 = errors;
 | 
						|
                        var errs__1 = errors;
 | 
						|
                        var valid1 = true;
 | 
						|
                        var errs_2 = errors;
 | 
						|
                        var errs__2 = errors;
 | 
						|
                        var errs_3 = errors;
 | 
						|
                        var errs__3 = errors,
 | 
						|
                          prevValid3 = false,
 | 
						|
                          valid3 = false,
 | 
						|
                          passingSchemas3 = null;
 | 
						|
                        var errs_4 = errors;
 | 
						|
                        if (typeof data1 !== "boolean") {
 | 
						|
                          var dataType4 = typeof data1;
 | 
						|
                          var coerced4 = undefined;
 | 
						|
                          if (coerced4 !== undefined);
 | 
						|
                          else if (data1 === 'false' || data1 === 0 || data1 === null) coerced4 = false;
 | 
						|
                          else if (data1 === 'true' || data1 === 1) coerced4 = true;
 | 
						|
                          else {
 | 
						|
                            var err = {};
 | 
						|
                            if (vErrors === null) vErrors = [err];
 | 
						|
                            else vErrors.push(err);
 | 
						|
                            errors++;
 | 
						|
                          }
 | 
						|
                          if (coerced4 !== undefined) {
 | 
						|
                            data1 = coerced4;
 | 
						|
                            data['https'] = coerced4;
 | 
						|
                          }
 | 
						|
                        }
 | 
						|
                        var valid4 = errors === errs_4;
 | 
						|
                        if (valid4) {
 | 
						|
                          valid3 = prevValid3 = true;
 | 
						|
                          passingSchemas3 = 0;
 | 
						|
                        }
 | 
						|
                        var errs_4 = errors;
 | 
						|
                        if (data1 !== null) {
 | 
						|
                          var dataType4 = typeof data1;
 | 
						|
                          var coerced4 = undefined;
 | 
						|
                          if (coerced4 !== undefined);
 | 
						|
                          else if (data1 === '' || data1 === 0 || data1 === false) coerced4 = null;
 | 
						|
                          else {
 | 
						|
                            var err = {};
 | 
						|
                            if (vErrors === null) vErrors = [err];
 | 
						|
                            else vErrors.push(err);
 | 
						|
                            errors++;
 | 
						|
                          }
 | 
						|
                          if (coerced4 !== undefined) {
 | 
						|
                            data1 = coerced4;
 | 
						|
                            data['https'] = coerced4;
 | 
						|
                          }
 | 
						|
                        }
 | 
						|
                        var valid4 = errors === errs_4;
 | 
						|
                        if (valid4 && prevValid3) {
 | 
						|
                          valid3 = false;
 | 
						|
                          passingSchemas3 = [passingSchemas3, 1];
 | 
						|
                        } else {
 | 
						|
                          if (valid4) {
 | 
						|
                            valid3 = prevValid3 = true;
 | 
						|
                            passingSchemas3 = 1;
 | 
						|
                          }
 | 
						|
                          var errs_4 = errors;
 | 
						|
                          if ((data1 && typeof data1 === "object" && !Array.isArray(data1))) {
 | 
						|
                            if (true) {
 | 
						|
                              var errs__4 = errors;
 | 
						|
                              var valid5 = true;
 | 
						|
                              for (var key4 in data1) {
 | 
						|
                                var isAdditional4 = !(false || key4 == 'allowHTTP1');
 | 
						|
                                if (isAdditional4) {
 | 
						|
                                  delete data1[key4];
 | 
						|
                                }
 | 
						|
                              }
 | 
						|
                              if (valid5) {
 | 
						|
                                var data2 = data1.allowHTTP1;
 | 
						|
                                if (data2 === undefined) {
 | 
						|
                                  valid5 = false;
 | 
						|
                                  var err = {};
 | 
						|
                                  if (vErrors === null) vErrors = [err];
 | 
						|
                                  else vErrors.push(err);
 | 
						|
                                  errors++;
 | 
						|
                                } else {
 | 
						|
                                  var errs_5 = errors;
 | 
						|
                                  if (typeof data2 !== "boolean") {
 | 
						|
                                    var dataType5 = typeof data2;
 | 
						|
                                    var coerced5 = undefined;
 | 
						|
                                    if (coerced5 !== undefined);
 | 
						|
                                    else if (data2 === 'false' || data2 === 0 || data2 === null) coerced5 = false;
 | 
						|
                                    else if (data2 === 'true' || data2 === 1) coerced5 = true;
 | 
						|
                                    else {
 | 
						|
                                      var err = {};
 | 
						|
                                      if (vErrors === null) vErrors = [err];
 | 
						|
                                      else vErrors.push(err);
 | 
						|
                                      errors++;
 | 
						|
                                    }
 | 
						|
                                    if (coerced5 !== undefined) {
 | 
						|
                                      data2 = coerced5;
 | 
						|
                                      data1['allowHTTP1'] = coerced5;
 | 
						|
                                    }
 | 
						|
                                  }
 | 
						|
                                  var valid5 = errors === errs_5;
 | 
						|
                                }
 | 
						|
                                if (valid5) {}
 | 
						|
                              }
 | 
						|
                              if (errs__4 == errors) {}
 | 
						|
                            }
 | 
						|
                          } else {
 | 
						|
                            var err = {};
 | 
						|
                            if (vErrors === null) vErrors = [err];
 | 
						|
                            else vErrors.push(err);
 | 
						|
                            errors++;
 | 
						|
                          }
 | 
						|
                          if (errors === errs_4) {}
 | 
						|
                          var valid4 = errors === errs_4;
 | 
						|
                          if (valid4 && prevValid3) {
 | 
						|
                            valid3 = false;
 | 
						|
                            passingSchemas3 = [passingSchemas3, 2];
 | 
						|
                          } else {
 | 
						|
                            if (valid4) {
 | 
						|
                              valid3 = prevValid3 = true;
 | 
						|
                              passingSchemas3 = 2;
 | 
						|
                            }
 | 
						|
                          }
 | 
						|
                        }
 | 
						|
                        if (!valid3) {
 | 
						|
                          var err = {};
 | 
						|
                          if (vErrors === null) vErrors = [err];
 | 
						|
                          else vErrors.push(err);
 | 
						|
                          errors++;
 | 
						|
                        } else {
 | 
						|
                          errors = errs__3;
 | 
						|
                          if (vErrors !== null) {
 | 
						|
                            if (errs__3) vErrors.length = errs__3;
 | 
						|
                            else vErrors = null;
 | 
						|
                          }
 | 
						|
                        }
 | 
						|
                        if (errors === errs_3) {}
 | 
						|
                        var valid3 = errors === errs_3;
 | 
						|
                        if (valid3) {
 | 
						|
                          var err = {};
 | 
						|
                          if (vErrors === null) vErrors = [err];
 | 
						|
                          else vErrors.push(err);
 | 
						|
                          errors++;
 | 
						|
                        } else {
 | 
						|
                          errors = errs__2;
 | 
						|
                          if (vErrors !== null) {
 | 
						|
                            if (errs__2) vErrors.length = errs__2;
 | 
						|
                            else vErrors = null;
 | 
						|
                          }
 | 
						|
                        }
 | 
						|
                        if (errors === errs_2) {}
 | 
						|
                        var valid2 = errors === errs_2;
 | 
						|
                        errors = errs__1;
 | 
						|
                        if (vErrors !== null) {
 | 
						|
                          if (errs__1) vErrors.length = errs__1;
 | 
						|
                          else vErrors = null;
 | 
						|
                        }
 | 
						|
                        if (valid2) {
 | 
						|
                          var errs_2 = errors;
 | 
						|
                          customRule0.errors = null;
 | 
						|
                          var errs__2 = errors;
 | 
						|
                          var valid2;
 | 
						|
                          valid2 = customRule0.call(self, validate.schema.properties.https.then.setDefaultValue, data1, validate.schema.properties.https.then, (dataPath || '') + '.https', data, 'https', rootData);
 | 
						|
                          if (data) data1 = data['https'];
 | 
						|
                          if (!valid2) {
 | 
						|
                            validate.errors = [{
 | 
						|
                              keyword: 'setDefaultValue',
 | 
						|
                              dataPath: (dataPath || '') + '.https',
 | 
						|
                              schemaPath: '#/properties/https/then/setDefaultValue',
 | 
						|
                              params: {
 | 
						|
                                keyword: 'setDefaultValue'
 | 
						|
                              },
 | 
						|
                              message: 'should pass "setDefaultValue" keyword validation'
 | 
						|
                            }];
 | 
						|
                            return false;
 | 
						|
                          } else {}
 | 
						|
                          if (errors === errs_2) {}
 | 
						|
                          var valid2 = errors === errs_2;
 | 
						|
                          valid1 = valid2;
 | 
						|
                        }
 | 
						|
                        if (!valid1) {
 | 
						|
                          var err = {
 | 
						|
                            keyword: 'if',
 | 
						|
                            dataPath: (dataPath || '') + '.https',
 | 
						|
                            schemaPath: '#/properties/https/if',
 | 
						|
                            params: {
 | 
						|
                              failingKeyword: 'then'
 | 
						|
                            },
 | 
						|
                            message: 'should match "' + 'then' + '" schema'
 | 
						|
                          };
 | 
						|
                          if (vErrors === null) vErrors = [err];
 | 
						|
                          else vErrors.push(err);
 | 
						|
                          errors++;
 | 
						|
                          validate.errors = vErrors;
 | 
						|
                          return false;
 | 
						|
                        } else {}
 | 
						|
                        if (errors === errs_1) {}
 | 
						|
                        var valid1 = errors === errs_1;
 | 
						|
                      }
 | 
						|
                      if (valid1) {
 | 
						|
                        var data1 = data.ignoreTrailingSlash;
 | 
						|
                        var errs_1 = errors;
 | 
						|
                        if (typeof data1 !== "boolean") {
 | 
						|
                          var dataType1 = typeof data1;
 | 
						|
                          var coerced1 = undefined;
 | 
						|
                          if (coerced1 !== undefined);
 | 
						|
                          else if (data1 === 'false' || data1 === 0 || data1 === null) coerced1 = false;
 | 
						|
                          else if (data1 === 'true' || data1 === 1) coerced1 = true;
 | 
						|
                          else {
 | 
						|
                            validate.errors = [{
 | 
						|
                              keyword: 'type',
 | 
						|
                              dataPath: (dataPath || '') + '.ignoreTrailingSlash',
 | 
						|
                              schemaPath: '#/properties/ignoreTrailingSlash/type',
 | 
						|
                              params: {
 | 
						|
                                type: 'boolean'
 | 
						|
                              },
 | 
						|
                              message: 'should be boolean'
 | 
						|
                            }];
 | 
						|
                            return false;
 | 
						|
                          }
 | 
						|
                          if (coerced1 !== undefined) {
 | 
						|
                            data1 = coerced1;
 | 
						|
                            data['ignoreTrailingSlash'] = coerced1;
 | 
						|
                          }
 | 
						|
                        }
 | 
						|
                        var valid1 = errors === errs_1;
 | 
						|
                        if (valid1) {
 | 
						|
                          var data1 = data.disableRequestLogging;
 | 
						|
                          var errs_1 = errors;
 | 
						|
                          if (typeof data1 !== "boolean") {
 | 
						|
                            var dataType1 = typeof data1;
 | 
						|
                            var coerced1 = undefined;
 | 
						|
                            if (coerced1 !== undefined);
 | 
						|
                            else if (data1 === 'false' || data1 === 0 || data1 === null) coerced1 = false;
 | 
						|
                            else if (data1 === 'true' || data1 === 1) coerced1 = true;
 | 
						|
                            else {
 | 
						|
                              validate.errors = [{
 | 
						|
                                keyword: 'type',
 | 
						|
                                dataPath: (dataPath || '') + '.disableRequestLogging',
 | 
						|
                                schemaPath: '#/properties/disableRequestLogging/type',
 | 
						|
                                params: {
 | 
						|
                                  type: 'boolean'
 | 
						|
                                },
 | 
						|
                                message: 'should be boolean'
 | 
						|
                              }];
 | 
						|
                              return false;
 | 
						|
                            }
 | 
						|
                            if (coerced1 !== undefined) {
 | 
						|
                              data1 = coerced1;
 | 
						|
                              data['disableRequestLogging'] = coerced1;
 | 
						|
                            }
 | 
						|
                          }
 | 
						|
                          var valid1 = errors === errs_1;
 | 
						|
                          if (valid1) {
 | 
						|
                            var data1 = data.jsonShorthand;
 | 
						|
                            var errs_1 = errors;
 | 
						|
                            if (typeof data1 !== "boolean") {
 | 
						|
                              var dataType1 = typeof data1;
 | 
						|
                              var coerced1 = undefined;
 | 
						|
                              if (coerced1 !== undefined);
 | 
						|
                              else if (data1 === 'false' || data1 === 0 || data1 === null) coerced1 = false;
 | 
						|
                              else if (data1 === 'true' || data1 === 1) coerced1 = true;
 | 
						|
                              else {
 | 
						|
                                validate.errors = [{
 | 
						|
                                  keyword: 'type',
 | 
						|
                                  dataPath: (dataPath || '') + '.jsonShorthand',
 | 
						|
                                  schemaPath: '#/properties/jsonShorthand/type',
 | 
						|
                                  params: {
 | 
						|
                                    type: 'boolean'
 | 
						|
                                  },
 | 
						|
                                  message: 'should be boolean'
 | 
						|
                                }];
 | 
						|
                                return false;
 | 
						|
                              }
 | 
						|
                              if (coerced1 !== undefined) {
 | 
						|
                                data1 = coerced1;
 | 
						|
                                data['jsonShorthand'] = coerced1;
 | 
						|
                              }
 | 
						|
                            }
 | 
						|
                            var valid1 = errors === errs_1;
 | 
						|
                            if (valid1) {
 | 
						|
                              var data1 = data.maxParamLength;
 | 
						|
                              var errs_1 = errors;
 | 
						|
                              if ((typeof data1 !== "number" || (data1 % 1) || data1 !== data1)) {
 | 
						|
                                var dataType1 = typeof data1;
 | 
						|
                                var coerced1 = undefined;
 | 
						|
                                if (coerced1 !== undefined);
 | 
						|
                                else if (dataType1 == 'boolean' || data1 === null || (dataType1 == 'string' && data1 && data1 == +data1 && !(data1 % 1))) coerced1 = +data1;
 | 
						|
                                else {
 | 
						|
                                  validate.errors = [{
 | 
						|
                                    keyword: 'type',
 | 
						|
                                    dataPath: (dataPath || '') + '.maxParamLength',
 | 
						|
                                    schemaPath: '#/properties/maxParamLength/type',
 | 
						|
                                    params: {
 | 
						|
                                      type: 'integer'
 | 
						|
                                    },
 | 
						|
                                    message: 'should be integer'
 | 
						|
                                  }];
 | 
						|
                                  return false;
 | 
						|
                                }
 | 
						|
                                if (coerced1 !== undefined) {
 | 
						|
                                  data1 = coerced1;
 | 
						|
                                  data['maxParamLength'] = coerced1;
 | 
						|
                                }
 | 
						|
                              }
 | 
						|
                              var valid1 = errors === errs_1;
 | 
						|
                              if (valid1) {
 | 
						|
                                var data1 = data.onProtoPoisoning;
 | 
						|
                                var errs_1 = errors;
 | 
						|
                                if (typeof data1 !== "string") {
 | 
						|
                                  var dataType1 = typeof data1;
 | 
						|
                                  var coerced1 = undefined;
 | 
						|
                                  if (coerced1 !== undefined);
 | 
						|
                                  else if (dataType1 == 'number' || dataType1 == 'boolean') coerced1 = '' + data1;
 | 
						|
                                  else if (data1 === null) coerced1 = '';
 | 
						|
                                  else {
 | 
						|
                                    validate.errors = [{
 | 
						|
                                      keyword: 'type',
 | 
						|
                                      dataPath: (dataPath || '') + '.onProtoPoisoning',
 | 
						|
                                      schemaPath: '#/properties/onProtoPoisoning/type',
 | 
						|
                                      params: {
 | 
						|
                                        type: 'string'
 | 
						|
                                      },
 | 
						|
                                      message: 'should be string'
 | 
						|
                                    }];
 | 
						|
                                    return false;
 | 
						|
                                  }
 | 
						|
                                  if (coerced1 !== undefined) {
 | 
						|
                                    data1 = coerced1;
 | 
						|
                                    data['onProtoPoisoning'] = coerced1;
 | 
						|
                                  }
 | 
						|
                                }
 | 
						|
                                var valid1 = errors === errs_1;
 | 
						|
                                if (valid1) {
 | 
						|
                                  var data1 = data.onConstructorPoisoning;
 | 
						|
                                  var errs_1 = errors;
 | 
						|
                                  if (typeof data1 !== "string") {
 | 
						|
                                    var dataType1 = typeof data1;
 | 
						|
                                    var coerced1 = undefined;
 | 
						|
                                    if (coerced1 !== undefined);
 | 
						|
                                    else if (dataType1 == 'number' || dataType1 == 'boolean') coerced1 = '' + data1;
 | 
						|
                                    else if (data1 === null) coerced1 = '';
 | 
						|
                                    else {
 | 
						|
                                      validate.errors = [{
 | 
						|
                                        keyword: 'type',
 | 
						|
                                        dataPath: (dataPath || '') + '.onConstructorPoisoning',
 | 
						|
                                        schemaPath: '#/properties/onConstructorPoisoning/type',
 | 
						|
                                        params: {
 | 
						|
                                          type: 'string'
 | 
						|
                                        },
 | 
						|
                                        message: 'should be string'
 | 
						|
                                      }];
 | 
						|
                                      return false;
 | 
						|
                                    }
 | 
						|
                                    if (coerced1 !== undefined) {
 | 
						|
                                      data1 = coerced1;
 | 
						|
                                      data['onConstructorPoisoning'] = coerced1;
 | 
						|
                                    }
 | 
						|
                                  }
 | 
						|
                                  var valid1 = errors === errs_1;
 | 
						|
                                  if (valid1) {
 | 
						|
                                    var data1 = data.pluginTimeout;
 | 
						|
                                    var errs_1 = errors;
 | 
						|
                                    if ((typeof data1 !== "number" || (data1 % 1) || data1 !== data1)) {
 | 
						|
                                      var dataType1 = typeof data1;
 | 
						|
                                      var coerced1 = undefined;
 | 
						|
                                      if (coerced1 !== undefined);
 | 
						|
                                      else if (dataType1 == 'boolean' || data1 === null || (dataType1 == 'string' && data1 && data1 == +data1 && !(data1 % 1))) coerced1 = +data1;
 | 
						|
                                      else {
 | 
						|
                                        validate.errors = [{
 | 
						|
                                          keyword: 'type',
 | 
						|
                                          dataPath: (dataPath || '') + '.pluginTimeout',
 | 
						|
                                          schemaPath: '#/properties/pluginTimeout/type',
 | 
						|
                                          params: {
 | 
						|
                                            type: 'integer'
 | 
						|
                                          },
 | 
						|
                                          message: 'should be integer'
 | 
						|
                                        }];
 | 
						|
                                        return false;
 | 
						|
                                      }
 | 
						|
                                      if (coerced1 !== undefined) {
 | 
						|
                                        data1 = coerced1;
 | 
						|
                                        data['pluginTimeout'] = coerced1;
 | 
						|
                                      }
 | 
						|
                                    }
 | 
						|
                                    var valid1 = errors === errs_1;
 | 
						|
                                    if (valid1) {
 | 
						|
                                      var data1 = data.requestIdHeader;
 | 
						|
                                      var errs_1 = errors;
 | 
						|
                                      if (typeof data1 !== "string") {
 | 
						|
                                        var dataType1 = typeof data1;
 | 
						|
                                        var coerced1 = undefined;
 | 
						|
                                        if (coerced1 !== undefined);
 | 
						|
                                        else if (dataType1 == 'number' || dataType1 == 'boolean') coerced1 = '' + data1;
 | 
						|
                                        else if (data1 === null) coerced1 = '';
 | 
						|
                                        else {
 | 
						|
                                          validate.errors = [{
 | 
						|
                                            keyword: 'type',
 | 
						|
                                            dataPath: (dataPath || '') + '.requestIdHeader',
 | 
						|
                                            schemaPath: '#/properties/requestIdHeader/type',
 | 
						|
                                            params: {
 | 
						|
                                              type: 'string'
 | 
						|
                                            },
 | 
						|
                                            message: 'should be string'
 | 
						|
                                          }];
 | 
						|
                                          return false;
 | 
						|
                                        }
 | 
						|
                                        if (coerced1 !== undefined) {
 | 
						|
                                          data1 = coerced1;
 | 
						|
                                          data['requestIdHeader'] = coerced1;
 | 
						|
                                        }
 | 
						|
                                      }
 | 
						|
                                      var valid1 = errors === errs_1;
 | 
						|
                                      if (valid1) {
 | 
						|
                                        var data1 = data.requestIdLogLabel;
 | 
						|
                                        var errs_1 = errors;
 | 
						|
                                        if (typeof data1 !== "string") {
 | 
						|
                                          var dataType1 = typeof data1;
 | 
						|
                                          var coerced1 = undefined;
 | 
						|
                                          if (coerced1 !== undefined);
 | 
						|
                                          else if (dataType1 == 'number' || dataType1 == 'boolean') coerced1 = '' + data1;
 | 
						|
                                          else if (data1 === null) coerced1 = '';
 | 
						|
                                          else {
 | 
						|
                                            validate.errors = [{
 | 
						|
                                              keyword: 'type',
 | 
						|
                                              dataPath: (dataPath || '') + '.requestIdLogLabel',
 | 
						|
                                              schemaPath: '#/properties/requestIdLogLabel/type',
 | 
						|
                                              params: {
 | 
						|
                                                type: 'string'
 | 
						|
                                              },
 | 
						|
                                              message: 'should be string'
 | 
						|
                                            }];
 | 
						|
                                            return false;
 | 
						|
                                          }
 | 
						|
                                          if (coerced1 !== undefined) {
 | 
						|
                                            data1 = coerced1;
 | 
						|
                                            data['requestIdLogLabel'] = coerced1;
 | 
						|
                                          }
 | 
						|
                                        }
 | 
						|
                                        var valid1 = errors === errs_1;
 | 
						|
                                        if (valid1) {
 | 
						|
                                          var data1 = data.http2SessionTimeout;
 | 
						|
                                          var errs_1 = errors;
 | 
						|
                                          if ((typeof data1 !== "number" || (data1 % 1) || data1 !== data1)) {
 | 
						|
                                            var dataType1 = typeof data1;
 | 
						|
                                            var coerced1 = undefined;
 | 
						|
                                            if (coerced1 !== undefined);
 | 
						|
                                            else if (dataType1 == 'boolean' || data1 === null || (dataType1 == 'string' && data1 && data1 == +data1 && !(data1 % 1))) coerced1 = +data1;
 | 
						|
                                            else {
 | 
						|
                                              validate.errors = [{
 | 
						|
                                                keyword: 'type',
 | 
						|
                                                dataPath: (dataPath || '') + '.http2SessionTimeout',
 | 
						|
                                                schemaPath: '#/properties/http2SessionTimeout/type',
 | 
						|
                                                params: {
 | 
						|
                                                  type: 'integer'
 | 
						|
                                                },
 | 
						|
                                                message: 'should be integer'
 | 
						|
                                              }];
 | 
						|
                                              return false;
 | 
						|
                                            }
 | 
						|
                                            if (coerced1 !== undefined) {
 | 
						|
                                              data1 = coerced1;
 | 
						|
                                              data['http2SessionTimeout'] = coerced1;
 | 
						|
                                            }
 | 
						|
                                          }
 | 
						|
                                          var valid1 = errors === errs_1;
 | 
						|
                                          if (valid1) {
 | 
						|
                                            var data1 = data.versioning;
 | 
						|
                                            if (data1 === undefined) {
 | 
						|
                                              valid1 = true;
 | 
						|
                                            } else {
 | 
						|
                                              var errs_1 = errors;
 | 
						|
                                              if ((data1 && typeof data1 === "object" && !Array.isArray(data1))) {
 | 
						|
                                                var missing1;
 | 
						|
                                                if (((data1.storage === undefined) && (missing1 = '.storage')) || ((data1.deriveVersion === undefined) && (missing1 = '.deriveVersion'))) {
 | 
						|
                                                  validate.errors = [{
 | 
						|
                                                    keyword: 'required',
 | 
						|
                                                    dataPath: (dataPath || '') + '.versioning',
 | 
						|
                                                    schemaPath: '#/properties/versioning/required',
 | 
						|
                                                    params: {
 | 
						|
                                                      missingProperty: '' + missing1 + ''
 | 
						|
                                                    },
 | 
						|
                                                    message: 'should have required property \'' + missing1 + '\''
 | 
						|
                                                  }];
 | 
						|
                                                  return false;
 | 
						|
                                                } else {
 | 
						|
                                                  var errs__1 = errors;
 | 
						|
                                                  var valid2 = true;
 | 
						|
                                                  for (var key1 in data1) {
 | 
						|
                                                    var isAdditional1 = !(false || key1 == 'storage' || key1 == 'deriveVersion');
 | 
						|
                                                    if (isAdditional1) {}
 | 
						|
                                                  }
 | 
						|
                                                  if (valid2) {
 | 
						|
                                                    if (valid2) {
 | 
						|
                                                      if (valid2) {}
 | 
						|
                                                    }
 | 
						|
                                                  }
 | 
						|
                                                  if (errs__1 == errors) {}
 | 
						|
                                                }
 | 
						|
                                              } else {
 | 
						|
                                                validate.errors = [{
 | 
						|
                                                  keyword: 'type',
 | 
						|
                                                  dataPath: (dataPath || '') + '.versioning',
 | 
						|
                                                  schemaPath: '#/properties/versioning/type',
 | 
						|
                                                  params: {
 | 
						|
                                                    type: 'object'
 | 
						|
                                                  },
 | 
						|
                                                  message: 'should be object'
 | 
						|
                                                }];
 | 
						|
                                                return false;
 | 
						|
                                              }
 | 
						|
                                              if (errors === errs_1) {}
 | 
						|
                                              var valid1 = errors === errs_1;
 | 
						|
                                            }
 | 
						|
                                            if (valid1) {
 | 
						|
                                              var data1 = data.constraints;
 | 
						|
                                              if (data1 === undefined) {
 | 
						|
                                                valid1 = true;
 | 
						|
                                              } else {
 | 
						|
                                                var errs_1 = errors;
 | 
						|
                                                if ((data1 && typeof data1 === "object" && !Array.isArray(data1))) {
 | 
						|
                                                  var errs__1 = errors;
 | 
						|
                                                  var valid2 = true;
 | 
						|
                                                  for (var key1 in data1) {
 | 
						|
                                                    var data2 = data1[key1];
 | 
						|
                                                    var errs_2 = errors;
 | 
						|
                                                    if ((data2 && typeof data2 === "object" && !Array.isArray(data2))) {
 | 
						|
                                                      var missing2;
 | 
						|
                                                      if (((data2.storage === undefined) && (missing2 = '.storage')) || ((data2.validate === undefined) && (missing2 = '.validate')) || ((data2.deriveConstraint === undefined) && (missing2 = '.deriveConstraint'))) {
 | 
						|
                                                        validate.errors = [{
 | 
						|
                                                          keyword: 'required',
 | 
						|
                                                          dataPath: (dataPath || '') + '.constraints[\'' + key1 + '\']',
 | 
						|
                                                          schemaPath: '#/properties/constraints/additionalProperties/required',
 | 
						|
                                                          params: {
 | 
						|
                                                            missingProperty: '' + missing2 + ''
 | 
						|
                                                          },
 | 
						|
                                                          message: 'should have required property \'' + missing2 + '\''
 | 
						|
                                                        }];
 | 
						|
                                                        return false;
 | 
						|
                                                      } else {
 | 
						|
                                                        var errs__2 = errors;
 | 
						|
                                                        var valid3 = true;
 | 
						|
                                                        for (var key2 in data2) {
 | 
						|
                                                          var isAdditional2 = !(false || key2 == 'name' || key2 == 'storage' || key2 == 'validate' || key2 == 'deriveConstraint');
 | 
						|
                                                          if (isAdditional2) {}
 | 
						|
                                                        }
 | 
						|
                                                        if (valid3) {
 | 
						|
                                                          var data3 = data2.name;
 | 
						|
                                                          if (data3 === undefined) {
 | 
						|
                                                            valid3 = false;
 | 
						|
                                                            validate.errors = [{
 | 
						|
                                                              keyword: 'required',
 | 
						|
                                                              dataPath: (dataPath || '') + '.constraints[\'' + key1 + '\']',
 | 
						|
                                                              schemaPath: '#/properties/constraints/additionalProperties/required',
 | 
						|
                                                              params: {
 | 
						|
                                                                missingProperty: 'name'
 | 
						|
                                                              },
 | 
						|
                                                              message: 'should have required property \'name\''
 | 
						|
                                                            }];
 | 
						|
                                                            return false;
 | 
						|
                                                          } else {
 | 
						|
                                                            var errs_3 = errors;
 | 
						|
                                                            if (typeof data3 !== "string") {
 | 
						|
                                                              var dataType3 = typeof data3;
 | 
						|
                                                              var coerced3 = undefined;
 | 
						|
                                                              if (coerced3 !== undefined);
 | 
						|
                                                              else if (dataType3 == 'number' || dataType3 == 'boolean') coerced3 = '' + data3;
 | 
						|
                                                              else if (data3 === null) coerced3 = '';
 | 
						|
                                                              else {
 | 
						|
                                                                validate.errors = [{
 | 
						|
                                                                  keyword: 'type',
 | 
						|
                                                                  dataPath: (dataPath || '') + '.constraints[\'' + key1 + '\'].name',
 | 
						|
                                                                  schemaPath: '#/properties/constraints/additionalProperties/properties/name/type',
 | 
						|
                                                                  params: {
 | 
						|
                                                                    type: 'string'
 | 
						|
                                                                  },
 | 
						|
                                                                  message: 'should be string'
 | 
						|
                                                                }];
 | 
						|
                                                                return false;
 | 
						|
                                                              }
 | 
						|
                                                              if (coerced3 !== undefined) {
 | 
						|
                                                                data3 = coerced3;
 | 
						|
                                                                data2['name'] = coerced3;
 | 
						|
                                                              }
 | 
						|
                                                            }
 | 
						|
                                                            var valid3 = errors === errs_3;
 | 
						|
                                                          }
 | 
						|
                                                          if (valid3) {
 | 
						|
                                                            if (valid3) {
 | 
						|
                                                              if (valid3) {
 | 
						|
                                                                if (valid3) {}
 | 
						|
                                                              }
 | 
						|
                                                            }
 | 
						|
                                                          }
 | 
						|
                                                        }
 | 
						|
                                                        if (errs__2 == errors) {}
 | 
						|
                                                      }
 | 
						|
                                                    } else {
 | 
						|
                                                      validate.errors = [{
 | 
						|
                                                        keyword: 'type',
 | 
						|
                                                        dataPath: (dataPath || '') + '.constraints[\'' + key1 + '\']',
 | 
						|
                                                        schemaPath: '#/properties/constraints/additionalProperties/type',
 | 
						|
                                                        params: {
 | 
						|
                                                          type: 'object'
 | 
						|
                                                        },
 | 
						|
                                                        message: 'should be object'
 | 
						|
                                                      }];
 | 
						|
                                                      return false;
 | 
						|
                                                    }
 | 
						|
                                                    if (errors === errs_2) {}
 | 
						|
                                                    var valid2 = errors === errs_2;
 | 
						|
                                                    if (!valid2) break;
 | 
						|
                                                  }
 | 
						|
                                                  if (valid2) {}
 | 
						|
                                                  if (errs__1 == errors) {}
 | 
						|
                                                } else {
 | 
						|
                                                  validate.errors = [{
 | 
						|
                                                    keyword: 'type',
 | 
						|
                                                    dataPath: (dataPath || '') + '.constraints',
 | 
						|
                                                    schemaPath: '#/properties/constraints/type',
 | 
						|
                                                    params: {
 | 
						|
                                                      type: 'object'
 | 
						|
                                                    },
 | 
						|
                                                    message: 'should be object'
 | 
						|
                                                  }];
 | 
						|
                                                  return false;
 | 
						|
                                                }
 | 
						|
                                                if (errors === errs_1) {}
 | 
						|
                                                var valid1 = errors === errs_1;
 | 
						|
                                              }
 | 
						|
                                              if (valid1) {}
 | 
						|
                                            }
 | 
						|
                                          }
 | 
						|
                                        }
 | 
						|
                                      }
 | 
						|
                                    }
 | 
						|
                                  }
 | 
						|
                                }
 | 
						|
                              }
 | 
						|
                            }
 | 
						|
                          }
 | 
						|
                        }
 | 
						|
                      }
 | 
						|
                    }
 | 
						|
                  }
 | 
						|
                }
 | 
						|
              }
 | 
						|
            }
 | 
						|
          }
 | 
						|
        }
 | 
						|
      }
 | 
						|
      if (errs__0 == errors) {}
 | 
						|
    } else {
 | 
						|
      validate.errors = [{
 | 
						|
        keyword: 'type',
 | 
						|
        dataPath: (dataPath || '') + "",
 | 
						|
        schemaPath: '#/type',
 | 
						|
        params: {
 | 
						|
          type: 'object'
 | 
						|
        },
 | 
						|
        message: 'should be object'
 | 
						|
      }];
 | 
						|
      return false;
 | 
						|
    }
 | 
						|
    if (errors === 0) {}
 | 
						|
    validate.errors = vErrors;
 | 
						|
    return errors === 0;
 | 
						|
  };
 | 
						|
})();
 | 
						|
validate.schema = {
 | 
						|
  "type": "object",
 | 
						|
  "additionalProperties": false,
 | 
						|
  "properties": {
 | 
						|
    "connectionTimeout": {
 | 
						|
      "type": "integer",
 | 
						|
      "default": 0
 | 
						|
    },
 | 
						|
    "keepAliveTimeout": {
 | 
						|
      "type": "integer",
 | 
						|
      "default": 5000
 | 
						|
    },
 | 
						|
    "maxRequestsPerSocket": {
 | 
						|
      "type": "integer",
 | 
						|
      "default": 0,
 | 
						|
      "nullable": true
 | 
						|
    },
 | 
						|
    "requestTimeout": {
 | 
						|
      "type": "integer",
 | 
						|
      "default": 0
 | 
						|
    },
 | 
						|
    "bodyLimit": {
 | 
						|
      "type": "integer",
 | 
						|
      "default": 1048576
 | 
						|
    },
 | 
						|
    "caseSensitive": {
 | 
						|
      "type": "boolean",
 | 
						|
      "default": true
 | 
						|
    },
 | 
						|
    "http2": {
 | 
						|
      "type": "boolean"
 | 
						|
    },
 | 
						|
    "https": {
 | 
						|
      "if": {
 | 
						|
        "not": {
 | 
						|
          "oneOf": [{
 | 
						|
            "type": "boolean"
 | 
						|
          }, {
 | 
						|
            "type": "null"
 | 
						|
          }, {
 | 
						|
            "type": "object",
 | 
						|
            "additionalProperties": false,
 | 
						|
            "required": ["allowHTTP1"],
 | 
						|
            "properties": {
 | 
						|
              "allowHTTP1": {
 | 
						|
                "type": "boolean"
 | 
						|
              }
 | 
						|
            }
 | 
						|
          }]
 | 
						|
        }
 | 
						|
      },
 | 
						|
      "then": {
 | 
						|
        "setDefaultValue": true
 | 
						|
      }
 | 
						|
    },
 | 
						|
    "ignoreTrailingSlash": {
 | 
						|
      "type": "boolean",
 | 
						|
      "default": false
 | 
						|
    },
 | 
						|
    "disableRequestLogging": {
 | 
						|
      "type": "boolean",
 | 
						|
      "default": false
 | 
						|
    },
 | 
						|
    "jsonShorthand": {
 | 
						|
      "type": "boolean",
 | 
						|
      "default": true
 | 
						|
    },
 | 
						|
    "maxParamLength": {
 | 
						|
      "type": "integer",
 | 
						|
      "default": 100
 | 
						|
    },
 | 
						|
    "onProtoPoisoning": {
 | 
						|
      "type": "string",
 | 
						|
      "default": "error"
 | 
						|
    },
 | 
						|
    "onConstructorPoisoning": {
 | 
						|
      "type": "string",
 | 
						|
      "default": "error"
 | 
						|
    },
 | 
						|
    "pluginTimeout": {
 | 
						|
      "type": "integer",
 | 
						|
      "default": 10000
 | 
						|
    },
 | 
						|
    "requestIdHeader": {
 | 
						|
      "type": "string",
 | 
						|
      "default": "request-id"
 | 
						|
    },
 | 
						|
    "requestIdLogLabel": {
 | 
						|
      "type": "string",
 | 
						|
      "default": "reqId"
 | 
						|
    },
 | 
						|
    "http2SessionTimeout": {
 | 
						|
      "type": "integer",
 | 
						|
      "default": 5000
 | 
						|
    },
 | 
						|
    "versioning": {
 | 
						|
      "type": "object",
 | 
						|
      "additionalProperties": true,
 | 
						|
      "required": ["storage", "deriveVersion"],
 | 
						|
      "properties": {
 | 
						|
        "storage": {},
 | 
						|
        "deriveVersion": {}
 | 
						|
      }
 | 
						|
    },
 | 
						|
    "constraints": {
 | 
						|
      "type": "object",
 | 
						|
      "additionalProperties": {
 | 
						|
        "type": "object",
 | 
						|
        "required": ["name", "storage", "validate", "deriveConstraint"],
 | 
						|
        "additionalProperties": true,
 | 
						|
        "properties": {
 | 
						|
          "name": {
 | 
						|
            "type": "string"
 | 
						|
          },
 | 
						|
          "storage": {},
 | 
						|
          "validate": {},
 | 
						|
          "deriveConstraint": {}
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }
 | 
						|
  }
 | 
						|
};
 | 
						|
validate.errors = null;
 | 
						|
module.exports = validate;
 | 
						|
 | 
						|
function customRule0 (schemaParamValue, validatedParamValue, validationSchemaObject, currentDataPath, validatedParamObject, validatedParam) {
 | 
						|
  validatedParamObject[validatedParam] = schemaParamValue
 | 
						|
  return true
 | 
						|
}
 | 
						|
 | 
						|
module.exports.defaultInitOptions = {"connectionTimeout":0,"keepAliveTimeout":5000,"maxRequestsPerSocket":0,"requestTimeout":0,"bodyLimit":1048576,"caseSensitive":true,"disableRequestLogging":false,"jsonShorthand":true,"ignoreTrailingSlash":false,"maxParamLength":100,"onProtoPoisoning":"error","onConstructorPoisoning":"error","pluginTimeout":10000,"requestIdHeader":"request-id","requestIdLogLabel":"reqId","http2SessionTimeout":5000}
 |