'use strict';
							 | 
						|
								
							 | 
						|
								var resolve = require('./resolve');
							 | 
						|
								
							 | 
						|
								module.exports = {
							 | 
						|
								  Validation: errorSubclass(ValidationError),
							 | 
						|
								  MissingRef: errorSubclass(MissingRefError)
							 | 
						|
								};
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								function ValidationError(errors) {
							 | 
						|
								  this.message = 'validation failed';
							 | 
						|
								  this.errors = errors;
							 | 
						|
								  this.ajv = this.validation = true;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								MissingRefError.message = function (baseId, ref) {
							 | 
						|
								  return 'can\'t resolve reference ' + ref + ' from id ' + baseId;
							 | 
						|
								};
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								function MissingRefError(baseId, ref, message) {
							 | 
						|
								  this.message = message || MissingRefError.message(baseId, ref);
							 | 
						|
								  this.missingRef = resolve.url(baseId, ref);
							 | 
						|
								  this.missingSchema = resolve.normalizeId(resolve.fullPath(this.missingRef));
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								function errorSubclass(Subclass) {
							 | 
						|
								  Subclass.prototype = Object.create(Error.prototype);
							 | 
						|
								  Subclass.prototype.constructor = Subclass;
							 | 
						|
								  return Subclass;
							 | 
						|
								}
							 |