-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathschemasaurus.min.js
1 lines (1 loc) · 23.5 KB
/
schemasaurus.min.js
1
(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.schemasaurus=e()}})(function(){var e,t,i;return function r(e,t,i){function n(o,a){if(!t[o]){if(!e[o]){var c=typeof require=="function"&&require;if(!a&&c)return c(o,!0);if(s)return s(o,!0);var h=new Error("Cannot find module '"+o+"'");throw h.code="MODULE_NOT_FOUND",h}var f=t[o]={exports:{}};e[o][0].call(f.exports,function(t){var i=e[o][1][t];return n(i?i:t)},f,f.exports,r,e,t,i)}return t[o].exports}var s=typeof require=="function"&&require;for(var o=0;o<i.length;o++)n(i[o]);return n}({1:[function(e,t,i){"use strict";var r=e("./int/context");var n=r;var s=e("./int/gen");var o=e("./int/shared");var a=e("./int/processor");var c=e("./int/code");var h=e("./int/references");var f=e("./int/matchers");function l(e){if(Object.keys(e.prototype).length!==0){return function(){return new e}}return e}function u(e,t,i){this.schema=e;this.varName=t;this.next=i}function p(e,t,i,r){if(!t||typeof t!=="function"){throw new Error("selectorCtor shall be a function")}this.schemaRoot=e;this.selectorCtor=l(t);this.options=i||{};this.options.ignoreAdditionalItems=this.options.ignoreAdditionalItems===undefined?false:this.options.ignoreAdditionalItems;this.ctx=new n(r);this.codeComposer=new c;this.shared=new o;this.gen=new s("var");this.processor=new a(this.gen,this.codeComposer,this.options);this.selector=this.selectorCtor();this.prepareMatchers();this.prepareContext()}p.prototype={code:function(){this.codeComposer.code.apply(this.codeComposer,arguments)},subCompile:function(e,t){return new p(e,this.selectorCtor,this.options,t).compile()},prepareContext:function(){this.ctx.compile=function(e,t){var i;if(Array.isArray(e)){this.ctx[t]=e.map(function(e){return this.subCompile(e)}.bind(this))}else{this.ctx[t]=this.subCompile(e,this.ctx.path.slice())}i=this.shared.inner(this.ctx[t]);this.code("ctx.%% = %%",t,i)}.bind(this)},prepareMatchers:function(){var e,t;this.matchers=[];for(e in this.selector){t=f(e);if(t){this.matchers.push(t)}}},callback:function(e,t){var i,r=this,n=this.gen.next(),s=false;this.code("%%: {",n);function o(t){s=true;r.addFn(t,e,n)}for(i=0;i<this.matchers.length;i++){this.matchers[i](e.schema,t,o)}if(!s){this.codeComposer.pop()}else{this.code("}")}},addFn:function(e,t,i){var r=this.selector[e];this.code("//call %%",e);if(r.prepare){this.addFn2(r.prepare(t.schema,this.ctx),t,null,i)}else if(r.length===1||r.length===2){this.addFn2(r.call(this.selector,t.schema,this.ctx),t,null,i)}else{this.addFn2(r,t,e,i)}},addFn2:function(e,t,i,r){if(e===undefined||e===null){return}if(typeof e.inline==="function"&&this.options.noinline){this.code("this['%%'].inline.call(this, %%, ctx)",i,t.varName)}else if(e.inline){this.codeComposer.inline(e.inline,t.varName,r);return}else if(i){this.code("this['%%'](%%, %%, ctx)",i,this.shared.schema(t.schema),t.varName)}else{this.code("%%.call(this, %%, %%, ctx)",this.shared.inner(e),this.shared.schema(t.schema),t.varName)}if(!this.options.noreplace){this.code("if (ctx.wasReplaced()) %% = ctx.replacement()",t.varName)}this.code("if (ctx.isStopped()) break %%",r)},step:function(e,t,i){if(e.$$visited){this.code("if (%% !== undefined) self(%%,ctx.path);",t,t);return}Object.defineProperty(e,"$$visited",{value:true,enumerable:false,configurable:true});if(e.$ref){return this.step(h(this.options.loader,this.schemaRoot,e.$ref),t,i)}this.stepProcess(new u(e,t,function(i,r,n,s,o){this.ctx.push(n,e,i);this.code("ctx.push(%%, %%, %%)",s||JSON.stringify(n),t,r);this.step(i,r,{attr:o});this.ctx.pop();this.code("ctx.pop()")}.bind(this)),i);delete e.$$visited},stepProcess:function(e,t){var i=this.callback.bind(this,e);this.processAggregate(e.schema);if(t&&t.attr){i(t.attr)}i("start");i();this.processor.execute(e);i("end");if(t&&t.attr){i(t.attr+"-end")}},processAggregate:function(e){["oneOf","anyOf","allOf","not"].forEach(function(t){if(e[t]){this.ctx.compile(e[t],t)}}.bind(this))},addEnd:function(){var e=this.selector.end;if(e){if(e.inline&&(typeof e.inline==="string"||!this.options.noinline)){this.codeComposer.inline(e.inline,"val",null,true)}else{this.codeComposer.code("return this.%%",e.inline?"end.inline.call(this)":"end()")}}},compile:function(){var e,t;this.step(this.schemaRoot,"val");this.addEnd();e=this.codeComposer.prettify().map(function(e){return"{};".indexOf(e[e.length-1])===-1?e+";":e}).join("\n");e=["var self; selector._f = function(val, path) { var nil = undefined, schemaOnly = val === undefined"].concat(this.gen.generated).join(",")+";\nctx.reset(path, val);"+e+"}; self = function (val, path) {"+(this.selector.begin?"selector.begin();":"")+" return selector._f(val, path) }; self.fn = selector._f; return self; ";try{t=new Function("selector","schemas","innerFns","ctx",e)}catch(i){console.error(e);throw i}return t(this.selector,this.shared.schemas,this.shared.innerFns,new r)}};function d(e,t,i,r){return new p(e,t,i,r).compile()}t.exports=d},{"./int/code":2,"./int/context":3,"./int/gen":5,"./int/matchers":6,"./int/processor":7,"./int/references":8,"./int/shared":9}],2:[function(e,t,i){"use strict";var r=e("./gen");var n=e("../interpolate");function s(){this.codeLines=[];this.labelgen=new r("clabel")}function o(e){var t="",i=" ",r,n,s,o;for(n=0;n<e.length;n=n+1){r=e[n].trim();s=r.indexOf("{")!==-1;o=r.indexOf("}")!==-1;if(o&&!s){t=t.substring(0,t.length-i.length)}r=t+r;if(s&&!o){t=t+i}e[n]=r}return e}s.prototype={pop:function(){this.codeLines.pop()},code:function(e){this.codeLines.push(n(e).apply(null,[].slice.call(arguments,1)))},prettify:function(){return o(this.codeLines)},inline:function(e,t,i,r){var n=e.toString().replace(/^function\s*\([^)]*\)/,"").replace(/_/g,t),s=this.labelgen.next(),o=n.indexOf("return")!==-1;n=n.replace(/ctx\.stop\(\)/,"break "+i);if(!r){n=n.replace(/return/g,"break "+s)}if(o){this.code("%%:{%%}",s,n)}else{this.code(n)}}};t.exports=s},{"../interpolate":10,"./gen":5}],3:[function(e,t,i){"use strict";function r(e){this.path=e?e.slice():[];this.stack=new Array(100);this.si=0;this.parent=null;this.property=null;this.self=null}r.prototype={reset:function(e,t){if(e){this.path=e.slice()}this.self=t},replace:function(e){if(!this.parent){throw new Error("Cannot replace top-level object. Check in your iterator that `ctx.parent` is defined")}this.parent[this.property]=e;this.replaced=true},wasReplaced:function(){var e=this.replaced;this.replaced=false;return e},replacement:function(){return this.parent[this.property]},remove:function(){delete this.parent[this.property]},push:function(e,t,i){this.path.push(e);this.stack[this.si]=[e,t,i];this.si=this.si+1;this.property=e;this.parent=t;this.self=i},stop:function(){this.stopped=true},isStopped:function(){if(this.stopped){this.stopped=false;return true}return false},pop:function(){this.si=this.si-1;this.path.pop();var e=this.stack[this.si];if(e){this.parent=e[0];this.property=e[1];this.self=e[2]}}};t.exports=r},{}],4:[function(e,t,i){"use strict";t.exports=function r(e){e.email=e.email||{regexp:/^[^@]+@[^@]+$/,message:"shall be valid email"};e["date-time"]=e["date-time"]||{regexp:/^\d{4}-(?:0[0-9]{1}|1[0-2]{1})-[0-9]{2}[tT ]\d{2}:\d{2}:\d{2}(\.\d+)?([zZ]|[+\-]\d{2}:\d{2})$/,message:"shall be valid date"};e.ipv4=e.ipv4||{regexp:/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,message:"shall be valid ipv4 address"};e.ipv6=e.ipv6||{regexp:/^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/,message:"shall be valid ipv6 address"};e.uri=e.uri||{regexp:/^[a-zA-Z][a-zA-Z0-9+-.]*:[^\s]*$/,message:"shall be valid URI"};e.hostname=e.hostname||{regexp:/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$/,message:"shall be valid host name"}}},{}],5:[function(e,t,i){"use strict";function r(e){this.i=0;this.prefix=e;this.generated=[]}r.prototype={next:function(){this.i=this.i+1;var e=this.prefix+this.i;this.generated.push(e);return e}};t.exports=r},{}],6:[function(e,t,i){"use strict";var r=/(\[(\^?[\-_\w]+)(=[\-_\w]+)?\])/g;var n=/:([\-\w]+)$/;function s(e){if(e===null){return null}var t=parseFloat(e);if(!isNaN(t)){return t}if(e==="true"){return true}if(e==="false"){return false}return e}function o(e,t){return e!==undefined&&(e===t||t===undefined)}function a(e,t){return e===undefined||e!==t&&t!==undefined}function c(e){var t=n.exec(e),i=[],c,h,f;if(t){c=t[1]}t=r.exec(e);while(t){h=t[2][0]==="^";i.push({name:h?t[2].substring(1):t[2],matcher:h?a:o,value:t[3]?s(t[3].substring(1)):undefined});t=r.exec(e)}return function(t,r,n){var s,o=true;if(r!==c){return false}for(f=0;f<i.length;f=f+1){s=t[i[f].name];if(!i[f].matcher(s,i[f].value)){o=false;break}}if(o){return n(e)}}}t.exports=function(e){if(e.indexOf(":")!==-1||e.indexOf("[")!==-1){return c(e)}}},{}],7:[function(e,t,i){"use strict";var r=e("./gen");function n(e,t,i){this.vargen=e;this.labelgen=new r("label");this.codeComposer=t;this.options=i}n.prototype={processors:["processItems","processProperties"],execute:function(e){this.processors.forEach(function(t){this[t](e)}.bind(this))},createVar:function(){return this.vargen.next()},code:function(){this.codeComposer.code.apply(this.codeComposer,arguments)}};n.prototype.processItems=function(e){if(!e.schema.items&&!e.schema.additionalItems){return}var t,i,r;if(!Array.isArray(e.schema.items)){t=this.createVar();this.codeComposer.code("for (%% = 0; %% < (%% ? %%.length : 0); %%++) {",t,t,e.varName,e.varName,t);i=this.createVar();this.codeComposer.code("%% = %%[%%]",i,e.varName,t);e.next(e.schema.items,i,"[]",t,"item");this.code("}");if(!this.options.ignoreSchemaOnly){this.code("if (schemaOnly) {");e.next(e.schema.items,"nil","[]",undefined,"item");this.code("}")}}else{for(r=0;r<e.schema.items.length;r=r+1){i=this.createVar();this.code("%% = %% ? %%[%%] : undefined",i,e.varName,e.varName,r);e.next(e.schema.items[r],i,r)}if(!this.options.ignoreAdditionalItems){t=this.createVar();this.code("for (%% = %%; %% < (%% ? %%.length : 0); %%++) {",t,e.schema.items.length,t,e.varName,e.varName,t);i=this.createVar();this.code("%% = %%[%%]",i,e.varName,t);this.processAdditional(e,"additionalItems","additionalItem",t,i);this.code("}")}}};n.prototype.processProperties=function(e){if(!e.schema.properties&&!e.schema.additionalProperties&&!e.schema.patternProperties){return}var t,i,r;if(!this.options.ignoreAdditionalItems){t=this.createVar();this.code("%% = {}",t)}for(r in e.schema.properties){if(e.schema.properties.hasOwnProperty(r)){i=this.createVar();this.code("%% = %% ? %%.%% : undefined",i,e.varName,e.varName,r);if(!this.options.ignoreAdditionalItems){this.code("%%.%% = true",t,r)}e.next(e.schema.properties[r],i,r)}}if(!this.options.ignoreAdditionalItems){this.processAdditionalProperties(e,t)}};n.prototype.processAdditionalProperties=function(e,t){var i,r,n,s;i=this.createVar();r=this.createVar();this.code("if (typeof %% === 'object' && !Array.isArray(%%)) for (%% in %%) if (%%.hasOwnProperty(%%)) {",e.varName,e.varName,i,e.varName,e.varName,i);this.code("%% = %%[%%]",r,e.varName,i);s=e.schema.patternProperties||{};for(n in s){if(s.hasOwnProperty(n)){this.code("if (/%%/.test(%%)) {",n,i);e.next(e.schema.patternProperties[n],r,n,i);this.code("%%[%%] = true",t,i);this.code("}")}}this.code("if (!%%[%%]) {",t,i);this.processAdditional(e,"additionalProperties","additionalProperty",i,r);this.code("}");this.code("}")};n.prototype.processAdditional=function(e,t,i,r,n){var s={};s[i]=false;if(e.schema[t]===false){e.next(s,n,"*",r)}else if(typeof e.schema[t]==="object"){e.next(e.schema[t],n,"*",r)}else{s[i]="allowed";e.next(s,n,"*",r)}};t.exports=n},{"./gen":5}],8:[function(e,t,i){"use strict";function r(){throw new Error("Remote refs are not supported for now :(")}function n(e){return e.replace(/~0/g,"~").replace(/~1/g,"/")}function s(e,t,i){var s=decodeURI(i).split("#"),o=s[0],a=s[1].split("/").map(n),c=t,h;if(o!==""){c=(e||r)(o)}for(h=0;h<a.length;h=h+1){if(a[h]===""){continue}c=c[a[h]];if(c===undefined){throw new Error("Cannot find ref '"+i+"' in schema")}}return c}t.exports=s},{}],9:[function(e,t,i){"use strict";function r(){this.innerFns=[];this.schemas=[]}r.prototype={inner:function(e){this.innerFns.push(e);return"innerFns["+(this.innerFns.length-1)+"]"},schema:function(e){this.schemas.push(e);return"schemas["+(this.schemas.length-1)+"]"}};t.exports=r},{}],10:[function(e,t,i){"use strict";var r={};function n(e){if(r[e]){return r[e]}var t=e.split("%%"),i="return "+["list[0]","a","list[1]","b","list[2]","c","list[3]","d","list[4]","e","list[5]","f","list[6]","g","list[7]"].slice(0,t.length*2-1).join("+"),n=new Function("list","return function(a,b,c,d,e,f,g){"+i+"};")(t);r[e]=n;return n}t.exports=n},{}],11:[function(e,t,i){"use strict";var r=e("./compiler");var n=e("./v4validator");var s=e("./normalizer");var o=e("./validator_extend");o(n);t.exports={Validator:n,Normalizer:s,compile:r,newIterator:r,newValidator:function(e,t){t=t||{};t.noreplace=true;return r(e,n.factory(t),t)},newNormalizer:function(e){return r(e,s.factory)}}},{"./compiler":1,"./normalizer":13,"./v4validator":14,"./validator_extend":15}],12:[function(e,t,i){"use strict";t.exports=function r(e){return{string:e("shall be a string"),"null":e("shall be null"),minLength:e("shall have length at least %d"),maxLength:e("shall have length no more than %d"),pattern:e("shall match pattern %s"),integer:e("shall be an integer"),multipleOf:e("shall be multiple of %d"),number:e("shall be a number"),minimum:e("shall be >= %d"),"minimum.exclusive":e("shall be > %d"),maximum:e("shall be <= %d"),"maximum.exclusive":e("shall be < %d"),"boolean":e("shall be boolean"),object:e("shall be object"),additionalProperties:e("shall not have additional properties"),minProperties:e("shall have at least %d properties"),maxProperties:e("shall have no more than %d properties"),array:e("shall be array"),additionalItems:e("shall not have additional items"),minItems:e("shall have at least %d items"),maxItems:e("shall have no more %d items"),uniqueItems:e("shall have unique items"),"enum":e("shall be one of values %s"),required:e("is required"),dependency:e("does not meet additional requirements for %s"),not:e("does not meet 'not' requirement"),oneOf:e("does not meet exactly one requirement"),"oneOf.zero":e("does not meet any requirement"),allOf:e("does not meet all requirements"),anyOf:e("does not meet any requirement"),custom:e("is not valid")}}},{}],13:[function(e,t,i){"use strict";function r(){}function n(e){return e===null||e===undefined}r.prototype={"[default]":function(e,t,i){if(n(t)){i.replace(e.default)}},"[properties]":function(e,t,i){if(i.parent&&n(t)){i.replace({})}},"[additionalProperty]":function(e,t,i){i.remove()},"[type]":function(e,t,i){var r,s;if(n(t)){return}switch(e.type){case"null":i.replace(null);break;case"string":i.replace(t.toString());break;case"integer":i.replace(parseInt(t,10));break;case"number":i.replace(parseFloat(t));break;case"boolean":r=t===true||["true","on"].indexOf(t.toString().toLowerCase())!==-1;s=t===false||["false","off"].indexOf(t.toString().toLowerCase())!==-1;i.replace(r?true:s?false:!!t);break;case"array":if(!Array.isArray(t)){i.replace([t])}break;case"object":break}},end:{inline:"return _"}};r.factory=function(){return new r};t.exports=r},{}],14:[function(e,t,i){"use strict";var r=e("./messages");var n=e("./int/default_formats");function s(e){return typeof e==="object"&&!Array.isArray(e)&&e!==null}function o(e){return e.length}function a(e){this.options=e||{};if(!this.options.gettext){this.options.gettext=function(e){return e}}if(!this.options.messages){this.options.messages=r(this.options.gettext)}this.options.custom=this.custom=this.options.custom||{};this.options.formats=this.formats=this.options.formats||{};this.options.strLength=this.strLength=this.options.strLength||o;n(this.formats);this.errors=[];this.res={valid:true,errors:this.errors}}function c(e){throw new Error("There is no message registered for error '"+e+"'")}a.prototype={toComparable:function(e){return typeof e==="object"?JSON.stringify(e):e},error:function(e,t,i,r){var n=this.$cm&&this.$cm[e]?this.options.gettext(this.$cm[e]):this.options.messages[e]||i;if(!n){return c(e)}this.errors.push({code:e,message:n,value:t.self,arg:i,path:r||t.path.slice()})},copyErrors:function(e){this.errors.splice.apply(this.errors,[this.errors.length,0].concat(e))},"[messages]":function(e){this.$messages=this.$messages||[];this.$messages.push(e.messages);return{inline:"this.$cm = this.$messages["+(this.$messages.length-1)+"]"}},"[messages]:end":{inline:"this.$cm = undefined;"},processBoolRequired:function(e,t){if(!t.parent){return null}return{inline:"if (_ === undefined) ctx.stop()"}},"[^required]":function(e,t){return this.processBoolRequired(e,t)},"[required=false]":function(e,t){return this.processBoolRequired(e,t)},"[required=true]":{inline:"if (_ === undefined) { this.error('required', ctx); ctx.stop(); }"},"[type=string]":{inline:"if (typeof _ !== 'string') this.error('string', ctx)"},"[type=number]":{inline:"if (typeof _ !== 'number') this.error('number', ctx)"},"[type=integer]":{inline:"if ((typeof _ !== 'number') || (_ % 1 !== 0)) this.error('integer', ctx)"},"[type=null]":{inline:"if (_ !== null) this.error('null', ctx);"},"[type=boolean]":{inline:"if (typeof _ !== 'boolean') this.error('boolean', ctx)"},"[type=array]":{inline:"if (!Array.isArray(_)) this.error('array', ctx)"},"[type=object]":{inline:"if (Array.isArray(_) || typeof _ !== 'object' || _ === null) this.error('object', ctx);"},"[type]":function(e){if(Array.isArray(e.type)){var t=[],i;for(i=0;i<e.type.length;i++){t.push(this["[type="+e.type[i]+"]"].inline)}return{inline:["{var oldlength = this.errors.length, iferr = this.errors.length + "+t.length].concat(t).concat(["if (this.errors.length !== iferr) this.errors.splice(oldlength, iferr);}"]).join(";")}}},"[dependencies]":function(e,t){var i,r=[],n,s;for(i in e.dependencies){if(e.dependencies.hasOwnProperty(i)){n=e.dependencies[i];if(Array.isArray(n)){n={required:n}}s="dep"+i;t.compile(n,s);r.push("if (_.hasOwnProperty('"+i+"')) {");r.push("var res = ctx."+s+"(_);");r.push("if (!res.valid) { this.error('dependency', ctx, "+JSON.stringify(e.dependencies[i])+"); this.copyErrors(res.errors); }");r.push("}")}}return{inline:r.join("\n")}},"[allOf]":function(e,t,i){var r,n;for(r=0;r<i.allOf.length;r++){n=i.allOf[r](t,i.path);if(!n.valid){this.error("allOf",i);this.copyErrors(n.errors)}}},"[anyOf]":function(e,t,i){var r=[],n,s;for(s=0;s<i.anyOf.length;s++){n=i.anyOf[s](t,i.path);r=r.concat(n.errors);if(n.valid){break}}if(!n.valid){this.error("anyOf",i);this.copyErrors(r)}},"[oneOf]":function(e,t,i){var r=0,n=[],s,o;for(o=0;o<i.oneOf.length;o++){s=i.oneOf[o](t,i.path);n=n.concat(s.errors);if(s.valid){r++}}if(r===0){this.error("oneOf.zero",i);this.copyErrors(n)}else if(r!==1){this.error("oneOf",i)}},"[not]":function(e,t,i){var r=i.not(t,i.path);if(r.valid){this.error("not",i)}},"[enum]":function(e){this.$enums=this.$enums||[];var t={},i,r;for(i=0;i<e.enum.length;i++){r=e.enum[i];t[this.toComparable(r)]=1}this.$enums.push(t);return{inline:"if(!this.$enums["+(this.$enums.length-1)+"][this.toComparable(_)]) this.error('enum', ctx, "+JSON.stringify(e.enum)+")"}},xLength:function(e,t,i){return{inline:"if (typeof _ === 'string' && this.strLength(_) "+e+t+") this.error('"+i+"', ctx, "+t+")"}},"[maxLength]":function(e){return this.xLength(">",e.maxLength,"maxLength")},"[minLength]":function(e){return this.xLength("<",e.minLength,"minLength")},"[pattern]":function(e){return{inline:"if (typeof _ === 'string' && !_.match(/"+e.pattern+"/)) this.error('pattern', ctx, "+JSON.stringify(e.pattern)+")"}},"[format]":function(e){var t=this.formats[e.format];if(!t){throw new Error("Unknown format '"+e.format+"'. Did you forget to register it?")}return{inline:"if (typeof _ === 'string' && !_.match("+t.regexp+")) this.error('format."+e.format+"', ctx, "+JSON.stringify(t.message)+")"}},"[additionalItem=false]":{inline:"this.error('additionalItems', ctx);"},xItems:function(e,t,i){return{inline:"if(Array.isArray(_) && _.length "+e+t+") this.error('"+i+"', ctx)"}},"[minItems]":function(e){return this.xItems("<",e.minItems,"minItems")},"[maxItems]":function(e){return this.xItems(">",e.maxItems,"maxItems")},"[uniqueItems]":function(e,t,i){if(!Array.isArray(t)){return}var r={},n,s;for(n=0;n<t.length;n=n+1){s=this.toComparable(t[n]);if(r[s]){this.error("uniqueItems",i,t[n])}r[s]=true}},processRequired:function(e){if(Array.isArray(e)){return function(t,i,r){if(!s(i)){return}var n;for(n=0;n<e.length;n++){if(!i.hasOwnProperty(e[n])){this.error("required",r,null,r.path.slice().concat(e[n]))}}}}},"[required][^properties]":function(e){return this.processRequired(e.required)},"[properties]":function(e){return this.processRequired(e.required)},xProperties:function(e,t,i){return{inline:"if (typeof _ === 'object' && Object.keys(_).length "+e+" "+t+") this.error('"+i+"', ctx, "+t+")"}},"[maxProperties]":function(e){return this.xProperties(">",e.maxProperties,"maxProperties")},"[minProperties]":function(e){return this.xProperties("<",e.minProperties,"minProperties")},"[additionalProperty=false]":{inline:"this.error('additionalProperties', ctx)"},"[multipleOf]":function(e){return{inline:"if (typeof _ === 'number' && (_ / "+e.multipleOf+") % 1 !== 0) this.error('multipleOf', ctx, "+e.multipleOf+")"}},ximum:function(e,t,i,r){return{inline:"if (_ "+e+(t?"=":"")+i+") this.error('"+r+(t?".exclusive":"")+"', ctx, "+i+")"}},"[minimum]":function(e){return this.ximum("<",e.exclusiveMinimum,e.minimum,"minimum")},"[maximum]":function(e){return this.ximum(">",e.exclusiveMaximum,e.maximum,"maximum")},"[conform]":function(e){this.$custom=this.$custom||[];if(typeof e.conform==="function"){this.$custom.push(e.conform);return{inline:"if (!this.$custom["+(this.$custom.length-1)+"](_, ctx)) this.error('custom', ctx)"}}var t=[];var i,r,n;for(i in e.conform){if(e.conform.hasOwnProperty(i)){r=this.custom[i];n=e.conform[i]===true?"":e.conform[i].map(JSON.stringify).concat([""]).join(",");this.$custom.push(r);t.push("if (!this.$custom["+(this.$custom.length-1)+"](_, "+n+" ctx)) this.error('custom."+i+"', ctx, this.options.messages.custom)")}}return{inline:t.join("\n")}},end:{inline:"this.res.valid = this.errors.length === 0; return this.res;"},begin:function(){this.errors=this.res.errors=[];this.res.valid=true}};a.prototype.constructor=a;a.factory=function(e){return function(){return new a(e)}};t.exports=a},{"./int/default_formats":4,"./messages":12}],15:[function(e,t,i){"use strict";t.exports=function r(e){e.extend=function(t,i){function r(t){e.call(this,t);if(i){i.call(this,t)}}r.prototype=new e;r.prototype.constructor=r;var n;for(n in t){if(t.hasOwnProperty(n)){r.prototype[n]=t[n]}}r.factory=function(e){return function(){return new r(e)}};return r}}},{}]},{},[11])(11)});