function e(){return e=object.assign?object.assign.bind():function(e){for(var r=1;r1?r-1:0),n=1;n=u)return e;switch(e){case"%s":return string(t[i++]);case"%d":return number(t[i++]);case"%j":try{return json.stringify(t[i++])}catch(r){return"[circular]"}break;default:return e}})):e}function f(e,r){return null==e||(!("array"!==r||!array.isarray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(r)||"string"!=typeof e||e))}function l(e,r,t){var n=0,i=e.length;!function a(u){if(u&&u.length)t(u);else{var s=n;n+=1,s()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-za-z\-0-9\u00a0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]+\.)+[a-za-z\u00a0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]{2,}))$/,m=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,b={integer:function(e){return b.number(e)&&parseint(e,10)===e},float:function(e){return b.number(e)&&!b.integer(e)},array:function(e){return array.isarray(e)},regexp:function(e){if(e instanceof regexp)return!0;try{return!!new regexp(e)}catch(r){return!1}},date:function(e){return"function"==typeof e.gettime&&"function"==typeof e.getmonth&&"function"==typeof e.getyear&&!isnan(e.gettime())},number:function(e){return!isnan(e)&&"number"==typeof e},object:function(e){return"object"==typeof e&&!b.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&e.length<=320&&!!e.match(v)},url:function(e){return"string"==typeof e&&e.length<=2048&&!!e.match(function(){if(g)return g;var e="[a-fa-f\\d:]",r=function(r){return r&&r.includeboundaries?"(?:(?<=\\s|^)(?="+e+")|(?<="+e+")(?=\\s|$))":""},t="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",n="[a-fa-f\\d]{1,4}",i=("\n(?:\n(?:"+n+":){7}(?:"+n+"|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:"+n+":){6}(?:"+t+"|:"+n+"|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:"+n+":){5}(?::"+t+"|(?::"+n+"){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:"+n+":){4}(?:(?::"+n+"){0,1}:"+t+"|(?::"+n+"){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:"+n+":){3}(?:(?::"+n+"){0,2}:"+t+"|(?::"+n+"){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:"+n+":){2}(?:(?::"+n+"){0,3}:"+t+"|(?::"+n+"){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:"+n+":){1}(?:(?::"+n+"){0,4}:"+t+"|(?::"+n+"){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::"+n+"){0,5}:"+t+"|(?::"+n+"){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-za-z]{1,})? // %eth0 %1\n").replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),a=new regexp("(?:^"+t+"$)|(?:^"+i+"$)"),u=new regexp("^"+t+"$"),s=new regexp("^"+i+"$"),o=function(e){return e&&e.exact?a:new regexp("(?:"+r(e)+t+r(e)+")|(?:"+r(e)+i+r(e)+")","g")};o.v4=function(e){return e&&e.exact?u:new regexp(""+r(e)+t+r(e),"g")},o.v6=function(e){return e&&e.exact?s:new regexp(""+r(e)+i+r(e),"g")};var f=o.v4().source,l=o.v6().source;return g=new regexp("(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\s+(?::\\s*)?@)?(?:localhost|"+f+"|"+l+'|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s"]*)?$)',"i")}())},hex:function(e){return"string"==typeof e&&!!e.match(m)}},q="enum",w={required:h,whitespace:function(e,r,t,n,i){(/^\s+$/.test(r)||""===r)&&n.push(o(i.messages.whitespace,e.fullfield))},type:function(e,r,t,n,i){if(e.required&&void 0===r)h(e,r,t,n,i);else{var a=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexof(a)>-1?b[a](r)||n.push(o(i.messages.types[a],e.fullfield,e.type)):a&&typeof r!==e.type&&n.push(o(i.messages.types[a],e.fullfield,e.type))}},range:function(e,r,t,n,i){var a="number"==typeof e.len,u="number"==typeof e.min,s="number"==typeof e.max,f=r,l=null,c="number"==typeof r,d="string"==typeof r,p=array.isarray(r);if(c?l="number":d?l="string":p&&(l="array"),!l)return!1;p&&(f=r.length),d&&(f=r.replace(/[\ud800-\udbff][\udc00-\udfff]/g,"_").length),a?f!==e.len&&n.push(o(i.messages[l].len,e.fullfield,e.len)):u&&!s&&fe.max?n.push(o(i.messages[l].max,e.fullfield,e.max)):u&&s&&(fe.max)&&n.push(o(i.messages[l].range,e.fullfield,e.min,e.max))},enum:function(e,r,t,n,i){e[q]=array.isarray(e[q])?e[q]:[],-1===e[q].indexof(r)&&n.push(o(i.messages[q],e.fullfield,e[q].join(", ")))},pattern:function(e,r,t,n,i){if(e.pattern)if(e.pattern instanceof regexp)e.pattern.lastindex=0,e.pattern.test(r)||n.push(o(i.messages.pattern.mismatch,e.fullfield,r,e.pattern));else if("string"==typeof e.pattern){new regexp(e.pattern).test(r)||n.push(o(i.messages.pattern.mismatch,e.fullfield,r,e.pattern))}}},f=function(e,r,t,n,i){var a=e.type,u=[];if(e.required||!e.required&&n.hasownproperty(e.field)){if(f(r,a)&&!e.required)return t();w.required(e,r,n,u,i,a),f(r,a)||w.type(e,r,n,u,i)}t(u)},o={string:function(e,r,t,n,i){var a=[];if(e.required||!e.required&&n.hasownproperty(e.field)){if(f(r,"string")&&!e.required)return t();w.required(e,r,n,a,i,"string"),f(r,"string")||(w.type(e,r,n,a,i),w.range(e,r,n,a,i),w.pattern(e,r,n,a,i),!0===e.whitespace&&w.whitespace(e,r,n,a,i))}t(a)},method:function(e,r,t,n,i){var a=[];if(e.required||!e.required&&n.hasownproperty(e.field)){if(f(r)&&!e.required)return t();w.required(e,r,n,a,i),void 0!==r&&w.type(e,r,n,a,i)}t(a)},number:function(e,r,t,n,i){var a=[];if(e.required||!e.required&&n.hasownproperty(e.field)){if(""===r&&(r=void 0),f(r)&&!e.required)return t();w.required(e,r,n,a,i),void 0!==r&&(w.type(e,r,n,a,i),w.range(e,r,n,a,i))}t(a)},boolean:function(e,r,t,n,i){var a=[];if(e.required||!e.required&&n.hasownproperty(e.field)){if(f(r)&&!e.required)return t();w.required(e,r,n,a,i),void 0!==r&&w.type(e,r,n,a,i)}t(a)},regexp:function(e,r,t,n,i){var a=[];if(e.required||!e.required&&n.hasownproperty(e.field)){if(f(r)&&!e.required)return t();w.required(e,r,n,a,i),f(r)||w.type(e,r,n,a,i)}t(a)},integer:function(e,r,t,n,i){var a=[];if(e.required||!e.required&&n.hasownproperty(e.field)){if(f(r)&&!e.required)return t();w.required(e,r,n,a,i),void 0!==r&&(w.type(e,r,n,a,i),w.range(e,r,n,a,i))}t(a)},float:function(e,r,t,n,i){var a=[];if(e.required||!e.required&&n.hasownproperty(e.field)){if(f(r)&&!e.required)return t();w.required(e,r,n,a,i),void 0!==r&&(w.type(e,r,n,a,i),w.range(e,r,n,a,i))}t(a)},array:function(e,r,t,n,i){var a=[];if(e.required||!e.required&&n.hasownproperty(e.field)){if(null==r&&!e.required)return t();w.required(e,r,n,a,i,"array"),null!=r&&(w.type(e,r,n,a,i),w.range(e,r,n,a,i))}t(a)},object:function(e,r,t,n,i){var a=[];if(e.required||!e.required&&n.hasownproperty(e.field)){if(f(r)&&!e.required)return t();w.required(e,r,n,a,i),void 0!==r&&w.type(e,r,n,a,i)}t(a)},enum:function(e,r,t,n,i){var a=[];if(e.required||!e.required&&n.hasownproperty(e.field)){if(f(r)&&!e.required)return t();w.required(e,r,n,a,i),void 0!==r&&w.enum(e,r,n,a,i)}t(a)},pattern:function(e,r,t,n,i){var a=[];if(e.required||!e.required&&n.hasownproperty(e.field)){if(f(r,"string")&&!e.required)return t();w.required(e,r,n,a,i),f(r,"string")||w.pattern(e,r,n,a,i)}t(a)},date:function(e,r,t,n,i){var a=[];if(e.required||!e.required&&n.hasownproperty(e.field)){if(f(r,"date")&&!e.required)return t();var u;if(w.required(e,r,n,a,i),!f(r,"date"))u=r instanceof date?r:new date(r),w.type(e,u,n,a,i),u&&w.range(e,u.gettime(),n,a,i)}t(a)},url:f,hex:f,email:f,required:function(e,r,t,n,i){var a=[],u=array.isarray(r)?"array":typeof r;w.required(e,r,n,a,i,u),t(a)},any:function(e,r,t,n,i){var a=[];if(e.required||!e.required&&n.hasownproperty(e.field)){if(f(r)&&!e.required)return t();w.required(e,r,n,a,i)}t(a)}};function x(){return{default:"validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=json.parse(json.stringify(this));return e.clone=this.clone,e}}}var j=x(),e=function(){function r(e){this.rules=null,this._messages=j,this.define(e)}var t=r.prototype;return t.define=function(e){var r=this;if(!e)throw new error("cannot configure a schema with no rules");if("object"!=typeof e||array.isarray(e))throw new error("rules must be an object");this.rules={},object.keys(e).foreach((function(t){var n=e[t];r.rules[t]=array.isarray(n)?n:[n]}))},t.messages=function(e){return e&&(this._messages=y(x(),e)),this._messages},t.validate=function(t,n,i){var a=this;void 0===n&&(n={}),void 0===i&&(i=function(){});var u=t,f=n,l=i;if("function"==typeof f&&(l=f,f={}),!this.rules||0===object.keys(this.rules).length)return l&&l(null,u),promise.resolve(u);if(f.messages){var c=this.messages();c===j&&(c=x()),y(c,f.messages),f.messages=c}else f.messages=this.messages();var g={};(f.keys||object.keys(this.rules)).foreach((function(r){var n=a.rules[r],i=u[r];n.foreach((function(n){var s=n;"function"==typeof s.transform&&(u===t&&(u=e({},u)),i=u[r]=s.transform(i)),(s="function"==typeof s?{validator:s}:e({},s)).validator=a.getvalidationmethod(s),s.validator&&(s.field=r,s.fullfield=s.fullfield||r,s.type=a.gettype(s),g[r]=g[r]||[],g[r].push({rule:s,value:i,source:u,field:r}))}))}));var h={};return d(g,f,(function(t,n){var i,a=t.rule,s=!("object"!==a.type&&"array"!==a.type||"object"!=typeof a.fields&&"object"!=typeof a.defaultfield);function l(r,t){return e({},t,{fullfield:a.fullfield+"."+r,fullfields:a.fullfields?[].concat(a.fullfields,[r]):[r]})}function c(i){void 0===i&&(i=[]);var c=array.isarray(i)?i:[i];!f.suppresswarning&&c.length&&r.warning("async-validator:",c),c.length&&void 0!==a.message&&(c=[].concat(a.message));var d=c.map(p(a,u));if(f.first&&d.length)return h[a.field]=1,n(d);if(s){if(a.required&&!t.value)return void 0!==a.message?d=[].concat(a.message).map(p(a,u)):f.error&&(d=[f.error(a,o(f.messages.required,a.field))]),n(d);var y={};a.defaultfield&&object.keys(t.value).map((function(e){y[e]=a.defaultfield})),y=e({},y,t.rule.fields);var g={};object.keys(y).foreach((function(e){var r=y[e],t=array.isarray(r)?r:[r];g[e]=t.map(l.bind(null,e))}));var v=new r(g);v.messages(f.messages),t.rule.options&&(t.rule.options.messages=f.messages,t.rule.options.error=f.error),v.validate(t.value,t.rule.options||f,(function(e){var r=[];d&&d.length&&r.push.apply(r,d),e&&e.length&&r.push.apply(r,e),n(r.length?r:null)}))}else n(d)}if(s=s&&(a.required||!a.required&&t.value),a.field=t.field,a.asyncvalidator)i=a.asyncvalidator(a,t.value,c,t.source,f);else if(a.validator){try{i=a.validator(a,t.value,c,t.source,f)}catch(d){console.error,f.suppressvalidatorerror||settimeout((function(){throw d}),0),c(d.message)}!0===i?c():!1===i?c("function"==typeof a.message?a.message(a.fullfield||a.field):a.message||(a.fullfield||a.field)+" fails"):i instanceof array?c(i):i instanceof error&&c(i.message)}i&&i.then&&i.then((function(){return c()}),(function(e){return c(e)}))}),(function(e){!function(e){for(var r,t,n=[],i={},a=0;a