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}
 |