|  | {{# def.definitions }} | 
						
						
							|  | 
 | 
						
						
							|  | {{## def._error:_rule: | 
						
						
							|  |   {{ 'istanbul ignore else'; }} | 
						
						
							|  |   {{? it.createErrors !== false }} | 
						
						
							|  |     { | 
						
						
							|  |       keyword: '{{= $errorKeyword || _rule }}' | 
						
						
							|  |       , dataPath: (dataPath || '') + {{= it.errorPath }} | 
						
						
							|  |       , schemaPath: {{=it.util.toQuotedString($errSchemaPath)}} | 
						
						
							|  |       , params: {{# def._errorParams[_rule] }} | 
						
						
							|  |       {{? it.opts.messages !== false }} | 
						
						
							|  |         , message: {{# def._errorMessages[_rule] }} | 
						
						
							|  |       {{?}} | 
						
						
							|  |       {{? it.opts.verbose }} | 
						
						
							|  |         , schema: {{# def._errorSchemas[_rule] }} | 
						
						
							|  |         , parentSchema: validate.schema{{=it.schemaPath}} | 
						
						
							|  |         , data: {{=$data}} | 
						
						
							|  |       {{?}} | 
						
						
							|  |     } | 
						
						
							|  |   {{??}} | 
						
						
							|  |     {} | 
						
						
							|  |   {{?}} | 
						
						
							|  | #}} | 
						
						
							|  | 
 | 
						
						
							|  | 
 | 
						
						
							|  | {{## def._addError:_rule: | 
						
						
							|  |   if (vErrors === null) vErrors = [err]; | 
						
						
							|  |   else vErrors.push(err); | 
						
						
							|  |   errors++; | 
						
						
							|  | #}} | 
						
						
							|  | 
 | 
						
						
							|  | 
 | 
						
						
							|  | {{## def.addError:_rule: | 
						
						
							|  |   var err = {{# def._error:_rule }}; | 
						
						
							|  |   {{# def._addError:_rule }} | 
						
						
							|  | #}} | 
						
						
							|  | 
 | 
						
						
							|  | 
 | 
						
						
							|  | {{## def.error:_rule: | 
						
						
							|  |   {{# def.beginDefOut}} | 
						
						
							|  |     {{# def._error:_rule }} | 
						
						
							|  |   {{# def.storeDefOut:__err }} | 
						
						
							|  | 
 | 
						
						
							|  |   {{? !it.compositeRule && $breakOnError }} | 
						
						
							|  |     {{ 'istanbul ignore if'; }} | 
						
						
							|  |     {{? it.async }} | 
						
						
							|  |       throw new ValidationError([{{=__err}}]); | 
						
						
							|  |     {{??}} | 
						
						
							|  |       validate.errors = [{{=__err}}]; | 
						
						
							|  |       return false; | 
						
						
							|  |     {{?}} | 
						
						
							|  |   {{??}} | 
						
						
							|  |     var err = {{=__err}}; | 
						
						
							|  |     {{# def._addError:_rule }} | 
						
						
							|  |   {{?}} | 
						
						
							|  | #}} | 
						
						
							|  | 
 | 
						
						
							|  | 
 | 
						
						
							|  | {{## def.extraError:_rule: | 
						
						
							|  |   {{# def.addError:_rule}} | 
						
						
							|  |   {{? !it.compositeRule && $breakOnError }} | 
						
						
							|  |     {{ 'istanbul ignore if'; }} | 
						
						
							|  |     {{? it.async }} | 
						
						
							|  |       throw new ValidationError(vErrors); | 
						
						
							|  |     {{??}} | 
						
						
							|  |       validate.errors = vErrors; | 
						
						
							|  |       return false; | 
						
						
							|  |     {{?}} | 
						
						
							|  |   {{?}} | 
						
						
							|  | #}} | 
						
						
							|  | 
 | 
						
						
							|  | 
 | 
						
						
							|  | {{## def.checkError:_rule: | 
						
						
							|  |   if (!{{=$valid}}) { | 
						
						
							|  |     {{# def.error:_rule }} | 
						
						
							|  |   } | 
						
						
							|  | #}} | 
						
						
							|  | 
 | 
						
						
							|  | 
 | 
						
						
							|  | {{## def.resetErrors: | 
						
						
							|  |   errors = {{=$errs}}; | 
						
						
							|  |   if (vErrors !== null) { | 
						
						
							|  |     if ({{=$errs}}) vErrors.length = {{=$errs}}; | 
						
						
							|  |     else vErrors = null; | 
						
						
							|  |   } | 
						
						
							|  | #}} | 
						
						
							|  | 
 | 
						
						
							|  | 
 | 
						
						
							|  | {{## def.concatSchema:{{?$isData}}' + {{=$schemaValue}} + '{{??}}{{=$schema}}{{?}}#}} | 
						
						
							|  | {{## def.appendSchema:{{?$isData}}' + {{=$schemaValue}}{{??}}{{=$schemaValue}}'{{?}}#}} | 
						
						
							|  | {{## def.concatSchemaEQ:{{?$isData}}' + {{=$schemaValue}} + '{{??}}{{=it.util.escapeQuotes($schema)}}{{?}}#}} | 
						
						
							|  | 
 | 
						
						
							|  | {{## def._errorMessages = { | 
						
						
							|  |   'false schema':  "'boolean schema is false'", | 
						
						
							|  |   $ref:            "'can\\\'t resolve reference {{=it.util.escapeQuotes($schema)}}'", | 
						
						
							|  |   additionalItems: "'should NOT have more than {{=$schema.length}} items'", | 
						
						
							|  |   additionalProperties: "'{{? it.opts._errorDataPathProperty }}is an invalid additional property{{??}}should NOT have additional properties{{?}}'", | 
						
						
							|  |   anyOf:           "'should match some schema in anyOf'", | 
						
						
							|  |   const:           "'should be equal to constant'", | 
						
						
							|  |   contains:        "'should contain a valid item'", | 
						
						
							|  |   dependencies:    "'should have {{? $deps.length == 1 }}property {{= it.util.escapeQuotes($deps[0]) }}{{??}}properties {{= it.util.escapeQuotes($deps.join(\", \")) }}{{?}} when property {{= it.util.escapeQuotes($property) }} is present'", | 
						
						
							|  |   'enum':          "'should be equal to one of the allowed values'", | 
						
						
							|  |   format:          "'should match format \"{{#def.concatSchemaEQ}}\"'", | 
						
						
							|  |   'if':            "'should match \"' + {{=$ifClause}} + '\" schema'", | 
						
						
							|  |   _limit:          "'should be {{=$opStr}} {{#def.appendSchema}}", | 
						
						
							|  |   _exclusiveLimit: "'{{=$exclusiveKeyword}} should be boolean'", | 
						
						
							|  |   _limitItems:     "'should NOT have {{?$keyword=='maxItems'}}more{{??}}fewer{{?}} than {{#def.concatSchema}} items'", | 
						
						
							|  |   _limitLength:    "'should NOT be {{?$keyword=='maxLength'}}longer{{??}}shorter{{?}} than {{#def.concatSchema}} characters'", | 
						
						
							|  |   _limitProperties:"'should NOT have {{?$keyword=='maxProperties'}}more{{??}}fewer{{?}} than {{#def.concatSchema}} properties'", | 
						
						
							|  |   multipleOf:      "'should be multiple of {{#def.appendSchema}}", | 
						
						
							|  |   not:             "'should NOT be valid'", | 
						
						
							|  |   oneOf:           "'should match exactly one schema in oneOf'", | 
						
						
							|  |   pattern:         "'should match pattern \"{{#def.concatSchemaEQ}}\"'", | 
						
						
							|  |   propertyNames:   "'property name \\'{{=$invalidName}}\\' is invalid'", | 
						
						
							|  |   required:        "'{{? it.opts._errorDataPathProperty }}is a required property{{??}}should have required property \\'{{=$missingProperty}}\\'{{?}}'", | 
						
						
							|  |   type:            "'should be {{? $typeIsArray }}{{= $typeSchema.join(\",\") }}{{??}}{{=$typeSchema}}{{?}}'", | 
						
						
							|  |   uniqueItems:     "'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)'", | 
						
						
							|  |   custom:          "'should pass \"{{=$rule.keyword}}\" keyword validation'", | 
						
						
							|  |   patternRequired: "'should have property matching pattern \\'{{=$missingPattern}}\\''", | 
						
						
							|  |   switch:          "'should pass \"switch\" keyword validation'", | 
						
						
							|  |   _formatLimit:    "'should be {{=$opStr}} \"{{#def.concatSchemaEQ}}\"'", | 
						
						
							|  |   _formatExclusiveLimit: "'{{=$exclusiveKeyword}} should be boolean'" | 
						
						
							|  | } #}} | 
						
						
							|  | 
 | 
						
						
							|  | 
 | 
						
						
							|  | {{## def.schemaRefOrVal: {{?$isData}}validate.schema{{=$schemaPath}}{{??}}{{=$schema}}{{?}} #}} | 
						
						
							|  | {{## def.schemaRefOrQS: {{?$isData}}validate.schema{{=$schemaPath}}{{??}}{{=it.util.toQuotedString($schema)}}{{?}} #}} | 
						
						
							|  | 
 | 
						
						
							|  | {{## def._errorSchemas = { | 
						
						
							|  |   'false schema':  "false", | 
						
						
							|  |   $ref:            "{{=it.util.toQuotedString($schema)}}", | 
						
						
							|  |   additionalItems: "false", | 
						
						
							|  |   additionalProperties: "false", | 
						
						
							|  |   anyOf:           "validate.schema{{=$schemaPath}}", | 
						
						
							|  |   const:           "validate.schema{{=$schemaPath}}", | 
						
						
							|  |   contains:        "validate.schema{{=$schemaPath}}", | 
						
						
							|  |   dependencies:    "validate.schema{{=$schemaPath}}", | 
						
						
							|  |   'enum':          "validate.schema{{=$schemaPath}}", | 
						
						
							|  |   format:          "{{#def.schemaRefOrQS}}", | 
						
						
							|  |   'if':            "validate.schema{{=$schemaPath}}", | 
						
						
							|  |   _limit:          "{{#def.schemaRefOrVal}}", | 
						
						
							|  |   _exclusiveLimit: "validate.schema{{=$schemaPath}}", | 
						
						
							|  |   _limitItems:     "{{#def.schemaRefOrVal}}", | 
						
						
							|  |   _limitLength:    "{{#def.schemaRefOrVal}}", | 
						
						
							|  |   _limitProperties:"{{#def.schemaRefOrVal}}", | 
						
						
							|  |   multipleOf:      "{{#def.schemaRefOrVal}}", | 
						
						
							|  |   not:             "validate.schema{{=$schemaPath}}", | 
						
						
							|  |   oneOf:           "validate.schema{{=$schemaPath}}", | 
						
						
							|  |   pattern:         "{{#def.schemaRefOrQS}}", | 
						
						
							|  |   propertyNames:   "validate.schema{{=$schemaPath}}", | 
						
						
							|  |   required:        "validate.schema{{=$schemaPath}}", | 
						
						
							|  |   type:            "validate.schema{{=$schemaPath}}", | 
						
						
							|  |   uniqueItems:     "{{#def.schemaRefOrVal}}", | 
						
						
							|  |   custom:          "validate.schema{{=$schemaPath}}", | 
						
						
							|  |   patternRequired: "validate.schema{{=$schemaPath}}", | 
						
						
							|  |   switch:          "validate.schema{{=$schemaPath}}", | 
						
						
							|  |   _formatLimit:    "{{#def.schemaRefOrQS}}", | 
						
						
							|  |   _formatExclusiveLimit: "validate.schema{{=$schemaPath}}" | 
						
						
							|  | } #}} | 
						
						
							|  | 
 | 
						
						
							|  | 
 | 
						
						
							|  | {{## def.schemaValueQS: {{?$isData}}{{=$schemaValue}}{{??}}{{=it.util.toQuotedString($schema)}}{{?}} #}} | 
						
						
							|  | 
 | 
						
						
							|  | {{## def._errorParams = { | 
						
						
							|  |   'false schema':  "{}", | 
						
						
							|  |   $ref:            "{ ref: '{{=it.util.escapeQuotes($schema)}}' }", | 
						
						
							|  |   additionalItems: "{ limit: {{=$schema.length}} }", | 
						
						
							|  |   additionalProperties: "{ additionalProperty: '{{=$additionalProperty}}' }", | 
						
						
							|  |   anyOf:           "{}", | 
						
						
							|  |   const:           "{ allowedValue: schema{{=$lvl}} }", | 
						
						
							|  |   contains:        "{}", | 
						
						
							|  |   dependencies:    "{ property: '{{= it.util.escapeQuotes($property) }}', missingProperty: '{{=$missingProperty}}', depsCount: {{=$deps.length}}, deps: '{{= it.util.escapeQuotes($deps.length==1 ? $deps[0] : $deps.join(\", \")) }}' }", | 
						
						
							|  |   'enum':          "{ allowedValues: schema{{=$lvl}} }", | 
						
						
							|  |   format:          "{ format: {{#def.schemaValueQS}} }", | 
						
						
							|  |   'if':            "{ failingKeyword: {{=$ifClause}} }", | 
						
						
							|  |   _limit:          "{ comparison: {{=$opExpr}}, limit: {{=$schemaValue}}, exclusive: {{=$exclusive}} }", | 
						
						
							|  |   _exclusiveLimit: "{}", | 
						
						
							|  |   _limitItems:     "{ limit: {{=$schemaValue}} }", | 
						
						
							|  |   _limitLength:    "{ limit: {{=$schemaValue}} }", | 
						
						
							|  |   _limitProperties:"{ limit: {{=$schemaValue}} }", | 
						
						
							|  |   multipleOf:      "{ multipleOf: {{=$schemaValue}} }", | 
						
						
							|  |   not:             "{}", | 
						
						
							|  |   oneOf:           "{ passingSchemas: {{=$passingSchemas}} }", | 
						
						
							|  |   pattern:         "{ pattern: {{#def.schemaValueQS}} }", | 
						
						
							|  |   propertyNames:   "{ propertyName: '{{=$invalidName}}' }", | 
						
						
							|  |   required:        "{ missingProperty: '{{=$missingProperty}}' }", | 
						
						
							|  |   type:            "{ type: '{{? $typeIsArray }}{{= $typeSchema.join(\",\") }}{{??}}{{=$typeSchema}}{{?}}' }", | 
						
						
							|  |   uniqueItems:     "{ i: i, j: j }", | 
						
						
							|  |   custom:          "{ keyword: '{{=$rule.keyword}}' }", | 
						
						
							|  |   patternRequired: "{ missingPattern: '{{=$missingPattern}}' }", | 
						
						
							|  |   switch:          "{ caseIndex: {{=$caseIndex}} }", | 
						
						
							|  |   _formatLimit:    "{ comparison: {{=$opExpr}}, limit: {{#def.schemaValueQS}}, exclusive: {{=$exclusive}} }", | 
						
						
							|  |   _formatExclusiveLimit: "{}" | 
						
						
							|  | } #}}
 |