UNPKG

@korbiniankuhn/validator

Version:

Validate object schemas for js, expressjs, angular and mongoose.

1 lines 63.3 kB
!function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=21)}([function(e,t){const n=e=>null!=e&&"object"==typeof e&&!1===Array.isArray(e),i=(e,t,n)=>{let i=e;try{t.split(".").map(e=>{i=i[e]})}catch(e){return n}return void 0===i?n:i},r=e=>null==e,s=e=>!r(e),a=e=>void 0===e,o=Object.keys,l=e=>"[object Function]"===Object.prototype.toString.call(e),u=e=>"AsyncFunction"===e.constructor.name,c={global:"g",ignoreCase:"i",multiline:"m",dotAll:"s",sticky:"y",unicode:"u"};e.exports={defaultToAny:(...e)=>{for(const t of e)if(s(t))return t},isString:e=>"[object String]"===Object.prototype.toString.call(e),isBoolean:e=>"[object Boolean]"===Object.prototype.toString.call(e),isInteger:e=>Number.isInteger(e),isPlainObject:e=>{let t,i;return!1!==n(e)&&"function"==typeof(t=e.constructor)&&(i=t.prototype,!1!==n(i)&&!1!==i.hasOwnProperty("isPrototypeOf"))},isArray:e=>Array.isArray(e),isFunction:e=>l(e)||u(e),isSyncFunction:l,isAsyncFunction:u,get:i,set:(e,t,n)=>{let i=e;const r=t.split("."),s=r.length-1;for(let e=0;e<s;e++){const t=r[e];void 0===i[t]&&(i[t]={}),i=i[t]}i[r[s]]=n},has:(e,t)=>void 0!==i(e,t),keys:o,isNumber:e=>"[object Number]"===Object.prototype.toString.call(e),isNil:r,isNotNil:s,uniqWith:(e,t)=>{const n=[];return e.map(e=>{void 0===n.find(n=>t(n,e))&&n.push(e)}),n},isEqual:(e,t)=>{try{return JSON.stringify(e)===JSON.stringify(t)}catch(e){return!1}},isRegExp:e=>"[object RegExp]"===Object.prototype.toString.call(e),isUndefined:a,isNotUndefined:e=>!a(e),removeUndefinedProperties:e=>(Object.keys(e).forEach(t=>a(e[t])&&delete e[t]),e),isObject:e=>{const t=typeof e;return null!=e&&("object"==t||"function"==t)},removeNilProperties:e=>(Object.keys(e).forEach(t=>r(e[t])&&delete e[t]),e),clone:e=>JSON.parse(JSON.stringify(e)),cloneRegex:e=>{const t=Object.keys(c).map(t=>e[t]?c[t]:"").join(""),n=new RegExp(e.source,t);return n.lastIndex=e.lastIndex,n},isNull:e=>null===e}},function(e,t,n){function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){r(e,t,n[t])})}return e}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const{defaultToAny:s,removeUndefinedProperties:a,isArray:o}=n(0),{toObject:l}=n(4),{validate:u,validateSync:c}=n(2),{isFunction:d}=n(0),{Message:m}=n(7),{cloneSchema:y}=n(28);class h{constructor(e,t){this._message=s(e.message,t.message,m("en")),this._required=s(e.requiredAsDefault,t.requiredAsDefault,!1),this._parse=s(e.parseToType,t.parseToType,!1),this._nullAsUndefined=s(e.nullAsUndefined,t.nullAsUndefined,!1)}options(e={}){const t={allowed:this._allowed,required:this._required,parse:this._parse,only:this._only,not:this._not};return e.validation?a(i({},t,{defaultValue:this._default,message:this._message,func:this._func,nullAsUndefined:this._nullAsUndefined})):a(i({},t,{type:"any",description:this._description,example:this.example(),default:this._default}))}async validate(e){return u(e,this.options({validation:!0}))}validateSync(e){return c(e,this.options({validation:!0}))}required(){return this._required=!0,this}optional(){return this._required=!1,this}description(e){return this._description=e,this}example(e){return void 0===e?void 0!==this._example?this._example:this._message.get("no_example"):(this._example=e,this)}default(e){return this._default=e,this}parse(e){return this._parse=e,this}only(...e){return this._only=o(e[0])?e[0]:e,this}not(...e){return this._not=e,this}allow(...e){return this._allowed=e,this}func(e){if(!d(e))throw this._message.error("invalid_function",{});return this._func=e,this}toObject(e={}){return l(this.options(),e)}clone(){return y(this)}}t.ANY=h,t.AnyFactory=(e={},t={})=>new h(e,t)},function(e,t,n){const{isUndefined:i,isNotUndefined:r,defaultToAny:s,isNull:a,clone:o}=n(0),{getErrorMessage:l}=n(6),u=(e,{defaultValue:t,allowed:n,required:s,message:l,not:u,only:c,nullAsUndefined:d})=>{if(!(i(e)||d&&a(e))){if(n&&-1!==n.indexOf(e))return e;if(null===e)throw l.get("not_null",{value:e});return m(c,e,l),y(u,e,l),e}if(r(t))return o(t);if(s)throw l.get("required",{value:e})},c=(e,t)=>{if(e)try{return s(e(t),t)}catch(e){throw l(e)}return t},d=async(e,t)=>{if(e){const n=await Promise.resolve(e(t)).catch(e=>{throw l(e)});return s(n,t)}return t},m=(e,t,n)=>{if(e&&-1===e.indexOf(t))throw n.get("only",{value:t,only:e.join(", ")})},y=(e,t,n)=>{if(e&&-1!==e.indexOf(t))throw n.get("not",{value:t,not:e.join(", ")})};e.exports={validate:async(e,{defaultValue:t,allowed:n,required:i,message:r,not:s,only:a,func:o,nullAsUndefined:l})=>(e=u(e,{defaultValue:t,allowed:n,required:i,message:r,not:s,only:a,nullAsUndefined:l}),d(o,e)),validateSync:(e,{defaultValue:t,allowed:n,required:i,message:r,not:s,only:a,func:o,nullAsUndefined:l})=>(e=u(e,{defaultValue:t,allowed:n,required:i,message:r,not:s,only:a,nullAsUndefined:l}),c(o,e)),validateAny:u,validateFunctionSync:c,validateFunctionAsync:d,validateOnly:m,validateNot:y}},function(e,t,n){function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){r(e,t,n[t])})}return e}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const{defaultToAny:s,isPlainObject:a,isFunction:o,removeUndefinedProperties:l}=n(0),{ANY:u}=n(1),{validate:c,validateSync:d}=n(17),{toObject:m}=n(4),y=(e,t,n)=>(Object.keys(e).filter(t=>"Object"===e[t].constructor.name).map(i=>{e[i]=new h(e[i],t,n)}),e);class h extends u{constructor(e={},t,n){if(super(t,n),!a(e))throw this._message.error("object_invalid_type");this._object=y(e,t,n),this._conditions=[],this._empty=s(t.emptyObjects,n.emptyObjects,!0),this._unknown=s(t.unknownObjectKeys,n.unknownObjectKeys,!0)}options(e={}){const t={allowed:this._allowed,required:this._required,parse:this._parse,only:this._only,not:this._not,min:this._min,max:this._max,length:this._length,empty:this._empty,unknown:this._unknown};return e.validation?l(i({},t,{defaultValue:this._default,message:this._message,object:this._object,func:this._func,conditions:this._conditions,nullAsUndefined:this._nullAsUndefined})):l(i({},t,{type:"object",description:this._description,example:this.example(),default:this._default}))}async validate(e){return c(e,this.options({validation:!0}))}validateSync(e){return d(e,this.options({validation:!0}))}example(e){if(void 0===e){if(void 0===this._example){const e={};for(const t in this._object)e[t]=this._object[t].example();return e}return this._example}return this._example=e,this}empty(e){return this._empty=e,this}gt(e,t){return this._conditions.push({keyA:e,keyB:t,method:"gt"}),this}gte(e,t){return this._conditions.push({keyA:e,keyB:t,method:"gte"}),this}lt(e,t){return this._conditions.push({keyA:e,keyB:t,method:"lt"}),this}lte(e,t){return this._conditions.push({keyA:e,keyB:t,method:"lte"}),this}equals(e,t){return this._conditions.push({keyA:e,keyB:t,method:"equals"}),this}notEquals(e,t){return this._conditions.push({keyA:e,keyB:t,method:"notEquals"}),this}dependsOn(e,t){return this._conditions.push({keyA:e,keyB:t,method:"dependsOn"}),this}xor(e,t){return this._conditions.push({keyA:e,keyB:t,method:"xor"}),this}or(e,t){return this._conditions.push({keyA:e,keyB:t,method:"or"}),this}func(e,...t){if(!o(e))throw this._message.error("invalid_function");return this._func={fn:e,keys:t},this}min(e){return this._min=e,this}max(e){return this._max=e,this}length(e){return this._length=e,this}unknown(e){return this._unknown=e,this}toObject(e={}){const t={};for(const n in this._object)t[n]=this._object[n].toObject(e);return m(i({},this.options(),{properties:t}),e)}}t.OBJECT=h,t.ObjectFactory=(e,t={},n={})=>new h(e,t,n)},function(e,t,n){const{removeNilProperties:i}=n(0),r={rename:{only:"enum"},whitelist:["type","description","required","default","example","enum"]},s={rename:{only:"enum",unique:"uniqueItems",min:"minItems",max:"maxItems"},whitelist:["type","description","required","default","example","enum","items","uniqueItems","minItems","maxItems"]},a={rename:{only:"enum"},whitelist:["type","description","required","default","example","enum"]},o={rename:{only:"enum"},whitelist:["type","description","required","default","example","enum"]},l={rename:{only:"enum",min:"minimum",max:"maximum"},whitelist:["type","description","required","default","example","enum","minimum","maximum"]},u={rename:{only:"enum",min:"minProperties",max:"maxProperties"},whitelist:["type","description","required","default","example","enum","minProperties","maxProperties","properties"]},c={rename:{only:"enum",min:"minLength",max:"maxLength"},whitelist:["type","description","required","default","example","enum","pattern","minLength","maxLength"]},d=(e,t)=>{for(const n in t.rename)if(n in e){e[t.rename[n]]=e[n],delete e[n]}for(const n in e)-1===t.whitelist.indexOf(n)&&delete e[n];return e};t.toObject=(e,t={})=>{const n=i(e);switch(t.type){case"raml":return(e=>{switch(e.type){case"any":return d(e,r);case"array":return d(e,s);case"boolean":return d(e,a);case"date":return e.type="datetime",d(e,o);case"number":return e.integer&&(e.type="integer"),d(e,l);case"object":return d(e,u);case"string":return d(e,c);case"request":return i({description:e.description,uriParameters:e.params?e.params.properties:void 0,queryParameters:e.query?e.query.properties:void 0,body:e.body?{"application/json":e.body}:void 0});case"response":return{[e.status]:i({description:e.description,body:e.body?{"application/json":e.body}:void 0})};default:return e}})(n);default:return n}}},function(e,t,n){function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const{defaultToAny:r,has:s}=n(0),{ValidationError:a}=n(6),{Message:o}=n(7),{VALIDATOR_OPTIONS:l,TYPES:u}=n(27),{AnyFactory:c}=n(1),{ArrayFactory:d}=n(9),{BooleanFactory:m}=n(11),{DateFactory:y}=n(13),{NumberFactory:h}=n(15),{ObjectFactory:p}=n(3),{StringFactory:_}=n(18);class f{constructor(e){this._options=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){i(e,t,n[t])})}return e}({},l,e),this._customs={},this._types=u,this._message=o(r(this._options.locale,"en")),this._options.message=this._message}async validate(e,t){if(!s(e,"constructor.name"))throw this._message.error("invalid_schema");if(-1===this._types.indexOf(e.constructor.name))throw this._message.error("unknown_schema");try{return await e.validate(t)}catch(e){const t=new a(this._message.get("validation_error"),e);if(this._options.throwValidationErrors)throw t;return t}}validateSync(e,t){if(!s(e,"constructor.name"))throw this._message.error("invalid_schema");if(-1===this._types.indexOf(e.constructor.name))throw this._message.error("unknown_schema");try{return e.validateSync(t)}catch(e){const t=new a(this._message.get("validation_error"),e);if(this._options.throwValidationErrors)throw t;return t}}addLocale(e,t){return this._message.addLocale(e,t),this}setLocale(e){return this._message.setLocale(e),this}addType(e,t){if(e in this._customs)throw this._message.error("duplicate_custom_type",{name:e});if(-1===this._types.indexOf(t.constructor.name))throw this._message.error("invalid_custom_type",{name:e,type:t.constructor.name});return this._customs[e]=t.clone(),this}Custom(e){if(e in this._customs)return this._customs[e].clone();throw this._message.error("unknown_custom_type",{name:e})}listCustomTypes(){const e=[];for(const t in this._customs)e.push(`${t}: ${this._customs[t].constructor.name}`);return e}Any(e={}){return c(e,this._options)}Array(e,t={}){return d(e,t,this._options)}Boolean(e={}){return m(e,this._options)}Date(e={}){return y(e,this._options)}Number(e={}){return h(e,this._options)}Object(e,t={}){return p(e,t,this._options)}String(e={}){return _(e,this._options)}}t.Validator=f,t.ValidatorFactory=(e={})=>new f(e)},function(e,t){t.ValidationError=class extends Error{constructor(e,t){super(e),this.name="ValidationError",this.type="validator",t&&(this.details=t),this.code="validation_error"}},t.getErrorMessage=e=>e instanceof Error?e.message:e},function(e,t,n){function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const r=n(22);class s{constructor(e="en"){this._locales=r,this._locale="en",this._messages=this._locales[e],this.setLocale(e)}addLocale(e,t,n="en"){if(!(n in this._locales))throw this.error("unknown_locale",{locale:e});return t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){i(e,t,n[t])})}return e}({},this._locales[n],t),this._locales[e]=t,this}setLocale(e){if(!(e in this._locales))throw this.error("unknown_locale",{locale:e});return this._locale=e,this._messages=this._locales[e],this}getLocale(){return this._locale}replace(e,t){for(const n in t)e=e.replace(new RegExp(`{{${n}}}`,"g"),t[n]);return e}get(e,t){let n=this._messages[e];return n?this.replace(n,t):this._messages.default}error(e,t){return`${this.get("configuration_error")}: ${this.get(e,t)}`}}t.Message=e=>new s(e)},function(e,t){t.MIDDLEWARE_OPTIONS={details:!0,next:!1},t.TYPES=["ANY","ARRAY","BOOLEAN","DATE","NUMBER","OBJECT","STRING","REQUEST","RESPONSE"],t.VALIDATOR_OPTIONS={locale:"en",requiredAsDefault:!0,throwValidationErrors:!0,parseToType:!0,emptyStrings:!1,trimStrings:!0,emptyArrays:!1,emptyObjects:!1,unknownObjectKeys:!1,parseDates:!0,utc:!0,nullAsUndefined:!1},t.URI_OPTIONS={},t.QUERY_OPTIONS={requiredAsDefault:!1,emptyObjects:!0},t.BODY_OPTIONS={}},function(e,t,n){function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){r(e,t,n[t])})}return e}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const{defaultToAny:s,removeUndefinedProperties:a}=n(0),{ANY:o}=n(1),{validate:l,validateSync:u}=n(10),{toObject:c}=n(4);class d extends o{constructor(e,t,n){super(t,n),this._type=e,this._empty=s(t.emptyArrays,n.emptyArrays,!0)}options(e={}){const t={allowed:this._allowed,required:this._required,parse:this._parse,unique:this._unique,empty:this._empty,min:this._min,max:this._max,length:this._length,only:this._only,not:this._not};return e.validation?a(i({},t,{defaultValue:this._default,message:this._message,itemSchema:this._type,func:this._func,nullAsUndefined:this._nullAsUndefined})):a(i({},t,{type:"array",description:this._description,example:this.example(),default:this._default}))}async validate(e){return l(e,this.options({validation:!0}))}validateSync(e){return u(e,this.options({validation:!0}))}example(e){return void 0===e?void 0===this._example?void 0===this._type?this._message.get("no_example"):[this._type.example()]:this._example:(this._example=e,this)}min(e){return this._min=e,this}max(e){return this._max=e,this}length(e){return this._length=e,this}empty(e){return this._empty=e,this}unique(e){return this._unique=e,this}toObject(e={}){const t=this._type?this._type.toObject(e):void 0;return c(i({},this.options(),{items:t}),e)}}t.ARRAY=d,t.ArrayFactory=(e,t={},n={})=>new d(e,t,n)},function(e,t,n){const{isUndefined:i,isNotUndefined:r,isArray:s,isString:a,uniqWith:o,isEqual:l,keys:u,isNull:c,clone:d}=n(0),{validateFunctionSync:m,validateFunctionAsync:y}=n(2),h=(e,t)=>{if(void 0!==t){const n={};for(const i in e)try{e[i]=t.validateSync(e[i])}catch(e){n[i]=e}if(u(n).length>0)throw n;return e}return e},p=async(e,t)=>{if(void 0!==t){const n={};for(const i in e)try{e[i]=await t.validate(e[i])}catch(e){n[i]=e}if(u(n).length>0)throw n;return e}return e},_=(e,{defaultValue:t,allowed:n,required:u,message:m,parse:y,unique:h,empty:p,min:_,max:f,length:g,nullAsUndefined:b})=>{if(!(i(e)||b&&c(e))){if(n&&-1!==n.indexOf(e))return e;if(null===e)throw m.get("not_null",{value:e});if(y&&a(e))try{e=JSON.parse(e)}catch(t){e=e.split(",")}if(!s(e))throw m.get("wrong_type",{expected:"array",actual:typeof e});if(!1===p&&0===e.length)throw m.get("array_empty");if(_||f||g){const t=e.length;if(_&&t<_)throw m.get("array_min",{expected:_,actual:t});if(f&&t>f)throw m.get("array_max",{expected:f,actual:t});if(g&&t!==g)throw m.get("array_length",{expected:g,actual:t})}if(h&&o(e,l).length!==e.length)throw m.get("array_duplicate_items");return e}if(r(t))return d(t);if(u)throw m.get("required",{value:e})};e.exports={validate:async(e,{defaultValue:t,allowed:n,required:i,message:r,parse:s,unique:a,empty:o,min:l,max:u,length:c,not:d,only:m,func:h,itemSchema:f,nullAsUndefined:g})=>(e=_(e,{defaultValue:t,allowed:n,required:i,message:r,parse:s,unique:a,empty:o,min:l,max:u,length:c,not:d,only:m,nullAsUndefined:g}),e=await p(e,f),y(h,e)),validateSync:(e,{defaultValue:t,allowed:n,required:i,message:r,parse:s,unique:a,empty:o,min:l,max:u,length:c,not:d,only:y,func:p,itemSchema:f,nullAsUndefined:g})=>(e=_(e,{defaultValue:t,allowed:n,required:i,message:r,parse:s,unique:a,empty:o,min:l,max:u,length:c,not:d,only:y,nullAsUndefined:g}),e=h(e,f),m(p,e)),validateArray:_,validateItemsAsync:p,validateItemsSync:h}},function(e,t,n){function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){r(e,t,n[t])})}return e}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const{ANY:s}=n(1),{validate:a,validateSync:o}=n(12),{removeUndefinedProperties:l}=n(0);class u extends s{constructor(e,t){super(e,t)}options(e={}){const t={allowed:this._allowed,required:this._required,parse:this._parse,only:this._only,not:this._not};return e.validation?l(i({},t,{defaultValue:this._default,message:this._message,func:this._func,nullAsUndefined:this._nullAsUndefined})):l(i({},t,{type:"boolean",description:this._description,example:this.example(),default:this._default}))}async validate(e){return a(e,this.options({validation:!0}))}validateSync(e){return o(e,this.options({validation:!0}))}}t.BOOLEAN=u,t.BooleanFactory=(e={},t={})=>new u(e,t)},function(e,t,n){const{isUndefined:i,isNotUndefined:r,isBoolean:s,isNull:a,clone:o}=n(0),{validateFunctionSync:l,validateFunctionAsync:u,validateOnly:c,validateNot:d}=n(2),m=["0",0,"false"],y=["1",1,"true"],h=(e,{defaultValue:t,allowed:n,required:l,message:u,parse:h,not:p,only:_,nullAsUndefined:f})=>{if(!(i(e)||f&&a(e))){if(n&&-1!==n.indexOf(e))return e;if(null===e)throw u.get("not_null",{value:e});if(h){if(-1!==y.indexOf(e))return!0;if(-1!==m.indexOf(e))return!1}if(c(_,e,u),d(p,e,u),!s(e))throw u.get("wrong_type",{expected:"boolean",actual:typeof e});return e}if(r(t))return o(t);if(l)throw u.get("required",{value:e})};e.exports={validate:async(e,{defaultValue:t,allowed:n,required:i,message:r,func:s,parse:a,not:o,only:l,nullAsUndefined:c})=>(e=h(e,{defaultValue:t,allowed:n,required:i,message:r,parse:a,not:o,only:l,nullAsUndefined:c}),u(s,e)),validateSync:(e,{defaultValue:t,allowed:n,required:i,message:r,func:s,parse:a,not:o,only:u,nullAsUndefined:c})=>(e=h(e,{defaultValue:t,allowed:n,required:i,message:r,parse:a,not:o,only:u,nullAsUndefined:c}),l(s,e)),validateBoolean:h}},function(e,t,n){function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){r(e,t,n[t])})}return e}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const{defaultToAny:s,removeUndefinedProperties:a}=n(0),{ANY:o}=n(1),{validate:l,validateSync:u}=n(14),{toDate:c}=n(20);class d extends o{constructor(e,t){super(e,t),this._utc=s(e.utc,t.utc,!1)}options(e={}){const t={allowed:this._allowed,required:this._required,parse:this._parse,utc:this._utc,only:this._only,not:this._not};return e.validation?a(i({},t,{defaultValue:this._default,message:this._message,func:this._func,min:this._min,max:this._max,nullAsUndefined:this._nullAsUndefined})):a(i({},t,{type:"date",description:this._description,example:this.example(),default:this._default,min:this._min?this._min:void 0,max:this._max?this._max:void 0}))}async validate(e){return l(e,this.options({validation:!0}))}validateSync(e){return u(e,this.options({validation:!0}))}utc(e){return this._utc=e,this}min(e){return this._min=c(this._message,e,this._utc).toISOString(),this}max(e){return this._max=c(this._message,e,this._utc).toISOString(),this}}t.DATE=d,t.DateFactory=(e={},t={})=>new d(e,t)},function(e,t,n){const{isUndefined:i,isNotUndefined:r,isNull:s,clone:a}=n(0),{toDate:o}=n(20),{validateFunctionSync:l,validateFunctionAsync:u,validateOnly:c,validateNot:d}=n(2),m=(e,{defaultValue:t,allowed:n,required:l,message:u,parse:m,utc:y,min:h,max:p,only:_,not:f,nullAsUndefined:g})=>{if(i(e)||g&&s(e)){if(r(t))return a(t);if(l)throw u.get("required",{value:e});return}if(n&&-1!==n.indexOf(e))return e;if(null===e)throw u.get("not_null",{value:e});const b=o(u,e,y);if(h&&b.toISOString()<h)throw u.get("date_min",{min:h});if(p&&b.toISOString()>p)throw u.get("date_max",{max:p});return c(_,e,u),d(f,e,u),m&&(e=b),e};e.exports={validate:async(e,{defaultValue:t,allowed:n,required:i,message:r,parse:s,utc:a,min:o,max:l,only:c,not:d,func:y,nullAsUndefined:h})=>(e=m(e,{defaultValue:t,allowed:n,required:i,message:r,parse:s,utc:a,min:o,max:l,only:c,not:d,nullAsUndefined:h}),u(y,e)),validateSync:(e,{defaultValue:t,allowed:n,required:i,message:r,parse:s,utc:a,min:o,max:u,only:c,not:d,func:y,nullAsUndefined:h})=>(e=m(e,{defaultValue:t,allowed:n,required:i,message:r,parse:s,utc:a,min:o,max:u,only:c,not:d,nullAsUndefined:h}),l(y,e)),validateDate:m}},function(e,t,n){function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){r(e,t,n[t])})}return e}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const{ANY:s}=n(1),{validate:a,validateSync:o}=n(16),{removeUndefinedProperties:l}=n(0);class u extends s{constructor(e,t){super(e,t),this._integer=!1}options(e={}){const t={allowed:this._allowed,required:this._required,parse:this._parse,only:this._only,not:this._not,min:this._min,max:this._max,less:this._less,greater:this._greater,positive:this._positive,negative:this._negative,integer:this._integer};return e.validation?l(i({},t,{defaultValue:this._default,message:this._message,func:this._func,nullAsUndefined:this._nullAsUndefined})):l(i({},t,{type:"number",description:this._description,example:this.example(),default:this._default}))}async validate(e){return a(e,this.options({validation:!0}))}validateSync(e){return o(e,this.options({validation:!0}))}integer(){return this._integer=!0,this}min(e){return this._min=e,this}max(e){return this._max=e,this}less(e){return this._less=e,this}greater(e){return this._greater=e,this}positive(){return this._positive=!0,this}negative(){return this._negative=!0,this}}t.NUMBER=u,t.NumberFactory=(e={},t={})=>new u(e,t)},function(e,t,n){const{isUndefined:i,isNotUndefined:r,isNumber:s,isString:a,isInteger:o,isNull:l,clone:u}=n(0),{validateFunctionSync:c,validateFunctionAsync:d,validateOnly:m,validateNot:y}=n(2),h=(e,{defaultValue:t,allowed:n,required:c,message:d,parse:h,min:p,max:_,less:f,greater:g,positive:b,negative:v,integer:w,only:x,not:O,nullAsUndefined:A})=>{if(!(i(e)||A&&l(e))){if(n&&-1!==n.indexOf(e))return e;if(null===e)throw d.get("not_null",{value:e});if(h&&a(e)&&(w&&e.match(/^[+-]?\d+$/)?e=parseInt(e):e.match(/^[-\/+]?\d+(\.\d+)?$/)&&(e=parseFloat(e))),m(x,e,d),y(O,e,d),w){if(!o(e))throw s(e)?d.get("integer_is_number",{value:e,actual:"number"}):d.get("integer_wrong_type",{expected:"integer",actual:typeof e})}else if(!s(e))throw d.get("number_wrong_type",{expected:"number",actual:typeof e});if(p&&e<p)throw d.get("number_min",{expected:p,actual:e});if(_&&e>_)throw d.get("number_max",{expected:_,actual:e});if(f&&e>=f)throw d.get("number_less",{expected:f,actual:e});if(g&&e<=g)throw d.get("number_greater",{expected:g,actual:e});if(b&&e<=0)throw d.get("number_positive",{value:e});if(v&&e>=0)throw d.get("number_negative",{value:e});return e}if(r(t))return u(t);if(c)throw d.get("required",{value:e})};e.exports={validate:async(e,{defaultValue:t,allowed:n,required:i,message:r,parse:s,min:a,max:o,less:l,greater:u,positive:c,negative:m,integer:y,only:p,not:_,func:f,nullAsUndefined:g})=>(e=h(e,{defaultValue:t,allowed:n,required:i,message:r,parse:s,min:a,max:o,less:l,greater:u,positive:c,negative:m,integer:y,only:p,not:_,nullAsUndefined:g}),d(f,e)),validateSync:(e,{defaultValue:t,allowed:n,required:i,message:r,parse:s,min:a,max:o,less:l,greater:u,positive:d,negative:m,integer:y,only:p,not:_,func:f,nullAsUndefined:g})=>(e=h(e,{defaultValue:t,allowed:n,required:i,message:r,parse:s,min:a,max:o,less:l,greater:u,positive:d,negative:m,integer:y,only:p,not:_,nullAsUndefined:g}),c(f,e)),validateNumber:h}},function(e,t,n){const{isUndefined:i,isNotUndefined:r,isString:s,isPlainObject:a,keys:o,has:l,get:u,isEqual:c,isAsyncFunction:d,isNil:m,isNull:y}=n(0),{getErrorMessage:h}=n(6),p=(e,{defaultValue:t,allowed:n,required:l,message:u,parse:c,empty:d,min:m,max:h,length:p,nullAsUndefined:_})=>{if(i(e)||_&&y(e)){if(r(t))return[!1,t];if(l)throw u.get("required",{value:e});return[!1,void 0]}if(n&&-1!==n.indexOf(e))return[!1,e];if(null===e)throw u.get("not_null",{value:e});if(c&&s(e))try{e=JSON.parse(e)}catch(e){}if(!a(e))throw u.get("wrong_type",{expected:"object",actual:typeof e});const f=o(e).length;if(0===f&&!1===d)throw u.get("object_empty");if(m&&f<m)throw u.get("object_min",{expected:m,actual:f});if(h&&f>h)throw u.get("object_max",{expected:h,actual:f});if(p&&f!==p)throw u.get("object_length",{expected:p,actual:f});return[!0,e]},_=(e,t)=>{const n={};for(const s in t){if(t[s]._required||!i(e[s]))try{const i=t[s].validateSync(e[s]);r(i)&&(e[s]=i)}catch(e){n[s]=e}}if(o(n).length>0)throw n;return e},f=async(e,t)=>{const n={};for(const i in t)try{const s=await t[i].validate(e[i]);r(s)&&(e[i]=s)}catch(e){n[i]=e}if(o(n).length>0)throw n;return e},g=(e,{unknown:t,conditions:n,object:i,message:r})=>{if(!1===t){const t={};for(const n in e)l(i,n)||(t[n]=r.get("object_unknown",{key:n}));if(o(t).length>0)throw t}n&&v(r,e,n)},b=(e,t,n,i,r,s)=>{switch(t){case"gt":return((e,t,n,i,r)=>{if(!(m(i)||m(r)||a(i)||a(r)||i>r))throw e.get("condition_gt",{keyA:t,keyB:n})})(e,n,i,r,s);case"gte":return((e,t,n,i,r)=>{if(!(m(i)||m(r)||a(i)||a(r)||i>=r))throw e.get("condition_gte",{keyA:t,keyB:n})})(e,n,i,r,s);case"lt":return((e,t,n,i,r)=>{if(!(m(i)||m(r)||a(i)||a(r)||i<r))throw e.get("condition_lt",{keyA:t,keyB:n})})(e,n,i,r,s);case"lte":return((e,t,n,i,r)=>{if(!(m(i)||m(r)||a(i)||a(r)||i<=r))throw e.get("condition_lte",{keyA:t,keyB:n})})(e,n,i,r,s);case"equals":return((e,t,n,i,r)=>{if(!c(i,r))throw e.get("condition_equals",{keyA:t,keyB:n})})(e,n,i,r,s);case"notEquals":return((e,t,n,i,r)=>{if(c(i,r))throw e.get("condition_not_equals",{keyA:t,keyB:n})})(e,n,i,r,s);case"xor":return((e,t,n,i,r)=>{if(void 0!==i&&void 0!==r||void 0===i&&void 0===r)throw e.get("condition_xor",{keyA:t,keyB:n})})(e,n,i,r,s);case"or":return((e,t,n,i,r)=>{if(void 0!==i&&void 0!==r)throw e.get("condition_or",{keyA:t,keyB:n})})(e,n,i,r,s);case"dependsOn":return((e,t,n,i,r)=>{if(void 0!==i&&void 0===r)throw e.get("condition_depends_on",{keyA:t,keyB:n})})(e,n,i,r,s)}},v=(e,t,n)=>{const i={};for(const r of n){const n=r.keyA,s=r.keyB,a=u(t,n),o=u(t,s);try{b(e,r.method,n,s,a,o)}catch(e){i[n]=n in i?`${i[n]} ${e}`:e}}if(o(i).length>0)throw i},w=(e,t)=>{if(t){const n={},i=t.fn,r=[];for(const n of t.keys)r.push(u(e,n,null));try{i(...r)}catch(e){n[`[${t.keys.join(", ")}]`]=h(e)}if(o(n).length>0)throw n}return e},x=async(e,t)=>{if(t){const n={},i=t.fn,r=[];for(const n of t.keys)r.push(u(e,n,null));try{d(i)?await i(...r):i(...r)}catch(e){n[`[${t.keys.join(", ")}]`]=h(e)}if(o(n).length>0)throw n}return e};e.exports={validate:async(e,{defaultValue:t,allowed:n,required:i,message:r,parse:s,empty:a,min:o,max:l,length:u,object:c,func:d,unknown:m,conditions:y,nullAsUndefined:h})=>{let[_,b]=p(e,{defaultValue:t,allowed:n,required:i,message:r,parse:s,empty:a,min:o,max:l,length:u,nullAsUndefined:h});return _&&(b=await f(b,c),g(b,{unknown:m,conditions:y,message:r,object:c}),await x(b,d)),b},validateSync:(e,{defaultValue:t,allowed:n,required:i,message:r,parse:s,empty:a,min:o,max:l,length:u,object:c,func:d,unknown:m,conditions:y,nullAsUndefined:h})=>{let[f,b]=p(e,{defaultValue:t,allowed:n,required:i,message:r,parse:s,empty:a,min:o,max:l,length:u,nullAsUndefined:h});return f&&(b=_(b,c),g(b,{unknown:m,conditions:y,message:r,object:c}),w(b,d)),b},validateObjectBeforeProperties:p,validateObjectPropertiesSync:_,validateObjectPropertiesAsync:f,validateObjectAfterProperties:g,validateCondition:b,validateObjectConditions:v,validateObjectFunctionSync:w,validateObjectFunctionAsync:x}},function(e,t,n){function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){r(e,t,n[t])})}return e}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const{defaultToAny:s,isRegExp:a,removeUndefinedProperties:o}=n(0),{ANY:l}=n(1),{validate:u,validateSync:c}=n(19);class d extends l{constructor(e,t){super(e,t),this._empty=s(e.emptyStrings,t.emptyStrings,!0),this._trim=s(e.trimStrings,t.trimStrings,!1)}options(e={}){const t={allowed:this._allowed,required:this._required,parse:this._parse,only:this._only,not:this._not,trim:this._trim,empty:this._empty,min:this._min,max:this._max,length:this._length};return e.validation?o(i({},t,{defaultValue:this._default,message:this._message,func:this._func,regex:this._regex,nullAsUndefined:this._nullAsUndefined})):o(i({},t,{type:"string",description:this._description,example:this.example(),default:this._default,pattern:this._regex?this._regex.pattern:void 0}))}async validate(e){return u(e,this.options({validation:!0}))}validateSync(e){return c(e,this.options({validation:!0}))}min(e){return this._min=e,this}max(e){return this._max=e,this}length(e){return this._length=e,this}empty(e){return this._empty=e,this}trim(e){return this._trim=e,this}regex(e,t={}){if(!a(e))throw this._message.error("invalid_regular_expression");return this._regex={pattern:e,locales:t},this}}t.STRING=d,t.StringFactory=(e={},t={})=>new d(e,t)},function(e,t,n){const{isUndefined:i,isString:r,isNotUndefined:s,isNull:a,clone:o}=n(0),{validateFunctionSync:l,validateFunctionAsync:u,validateOnly:c,validateNot:d}=n(2),m=(e,{defaultValue:t,allowed:n,required:l,message:u,trim:m,empty:y,min:h,max:p,length:_,regex:f,not:g,only:b,nullAsUndefined:v})=>{if(!(i(e)||v&&a(e))){if(n&&-1!==n.indexOf(e))return e;if(null===e)throw u.get("not_null",{value:e});if(!r(e))throw u.get("wrong_type",{expected:"string",actual:typeof e});if(m&&(e=e.trim()),""===e&&!1===y)throw u.get("string_empty");if(c(b,e,u),d(g,e,u),h||p||_){const t=e.length;if(h&&t<h)throw u.get("string_min",{expected:h,actual:t});if(p&&t>p)throw u.get("string_max",{expected:p,actual:t});if(_&&t!==_)throw u.get("string_length",{expected:_,actual:t})}if(f&&!e.match(f.pattern)){const t=u.getLocale();throw t in f.locales?u.replace(f.locales[t],{pattern:f.pattern,value:e}):u.get("string_regex_invalid",{})}return e}if(s(t))return o(t);if(l)throw u.get("required",{value:e})};e.exports={validate:async(e,{defaultValue:t,allowed:n,required:i,message:r,parse:s,trim:a,empty:o,min:l,max:c,length:d,regex:y,not:h,only:p,func:_,nullAsUndefined:f})=>(e=m(e,{defaultValue:t,allowed:n,required:i,message:r,parse:s,trim:a,empty:o,min:l,max:c,length:d,regex:y,not:h,only:p,func:_,nullAsUndefined:f}),u(_,e)),validateSync:(e,{defaultValue:t,allowed:n,required:i,message:r,parse:s,trim:a,empty:o,min:u,max:c,length:d,regex:y,not:h,only:p,func:_,nullAsUndefined:f})=>(e=m(e,{defaultValue:t,allowed:n,required:i,message:r,parse:s,trim:a,empty:o,min:u,max:c,length:d,regex:y,not:h,only:p,func:_,nullAsUndefined:f}),l(_,e)),validateString:m}},function(e,t){t.toDate=(e,t,i)=>{const r=new Date(t);if(isNaN(r.getTime()))throw e.get("date_invalid",{});return i?n(r):r};const n=e=>new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()))},function(e,t,n){t.Validator=n(5).ValidatorFactory,t.AngularValidator=n(29).AngularValidatorFactory,t.ExpressValidator=n(38).ExpressValidatorFactory,t.MongooseValidator=n(44).MongooseValidatorFactory,t.ValidationError=n(6).ValidationError},function(e,t,n){e.exports={en:n(23),"en-alt":n(24),de:n(25),"de-alt":n(26)}},function(e,t){e.exports={default:"Invalid.",configuration_error:"Validator configuration error",validation_error:"Invalid input parameters and/or values.",unknown_locale:"Unknown locale {{locale}}.",invalid_schema:"Invalid schema.",unknown_schema:"Unknown schema.",invalid_custom_type:"Cannot add custom type {{name}}. Invalid type {{type}}.",duplicate_custom_type:"Cannot add custom type. Name {{name}} is already set.",unknown_custom_type:"Error getting custom type {{name}}. Unknown type.",no_example:"No example provided",required:"Required but is {{value}}.",not_null:"Null is not allowed.",wrong_type:"Must be type {{expected}} but is {{actual}}.",only:"Only '{{only}}' is allowed.",not:"Is not allowed.",invalid_function:"Must be a function.",invalid_regular_expression:"Must be a regular expression.",string_empty:"String is empty.",string_min:"Must have at least {{expected}} characters.",string_max:"Must have at most {{expected}} characters.",string_length:"Must have exactly {{expected}} characters.",string_regex_invalid:"Value does not match regular expression.",array_empty:"Array is empty.",array_min:"Must have at least {{expected}} items.",array_max:"Must have at most {{expected}} items.",array_length:"Must have exactly {{expected}} items.",array_duplicate_items:"Items must be unique.",number_wrong_type:"Must be a number.",number_min:"Must be at minimum {{expected}}.",number_max:"Must be at maximum {{expected}}.",number_less:"Must be less than {{expected}}.",number_greater:"Must be greater than {{expected}}.",number_positive:"Must be a positive number.",number_negative:"Must be a negative number.",integer_wrong_type:"Must be an integer.",integer_is_number:"No decimal places allowed.",date_invalid:"Must be a valid date with the format {{format}}.",date_min:"Must be at minimum {{min}}.",date_max:"Must be at maximum {{max}}.",object_invalid_type:"Must be an object.",object_min:"Must have at least {{expected}} keys.",object_max:"Must have at most {{expected}} keys.",object_length:"Must have exactly {{expected}} keys.",object_empty:"Object is empty.",object_unknown:"Unknown key.",condition_gt:"Must be greater than {{keyB}}.",condition_gte:"Must be greater than or equal {{keyB}}.",condition_lt:"Must be less than {{keyB}}.",condition_lte:"Must be less than or equal {{keyB}}.",condition_equals:"Must equal {{keyB}}.",condition_not_equals:"Must not equal {{keyB}}.",condition_xor:"Either {{keyA}} or {{keyB}} must be set.",condition_or:"Either {{keyA}} or {{keyB}} can be set.",condition_depends_on:"Depends on {{keyB}}.",express_invalid_request_object:"Invalid express req object.",express_unknown_params:"URI parameters are not allowed.",express_unknown_query:"Query parameters are not allowed.",express_unknown_body:"Body parameters are not allowed.",express_object_or_array_schema:"Must be object or array schema.",express_invalid_status_code:"Must have status code {{expected}} but has {{actual}}."}},function(e,t){e.exports={default:"Invalid.",configuration_error:"Validator configuration error",validation_error:"Invalid input parameters and/or values.",unknown_locale:"Unknown locale {{locale}}.",invalid_schema:"Invalid schema.",unknown_schema:"Unknown schema.",invalid_custom_type:"Cannot add custom type {{name}}. Invalid type {{type}}.",duplicate_custom_type:"Cannot add custom type. Name {{name}} is already set.",unknown_custom_type:"Error getting custom type {{name}}. Unknown type.",no_example:"No example provided",required:"Required but is {{value}}.",not_null:"Null is not allowed.",wrong_type:"Must be type {{expected}} but is {{actual}}.",only:"Only '{{only}}' is allowed.",not:"Is not allowed.",invalid_function:"Must be a function.",invalid_regular_expression:"Must be a regular expression.",string_empty:"String must not be empty.",string_min:"Must have at least {{expected}} characters.",string_max:"Must have at most {{expected}} characters.",string_length:"Must have exactly {{expected}} characters.",string_regex_invalid:"Value does not match regular expression.",array_empty:"The list must not be empty.",array_min:"The list must have at least {{expected}} items.",array_max:"The list must have at most {{expected}} items.",array_length:"The list must have exactly {{expected}} items.",array_duplicate_items:"The items must be unique.",number_wrong_type:"Must be a number.",number_min:"Must be at minimum {{expected}}.",number_max:"Must be at maximum {{expected}}.",number_less:"Must be less than {{expected}}.",number_greater:"Must be greater than {{expected}}.",number_positive:"Must be a positive number.",number_negative:"Must be a negative number.",integer_wrong_type:"Must be an integer.",integer_is_number:"No decimal places allowed.",date_invalid:"Is not a valid date.",date_min:"Must be at minimum {{min}}.",date_max:"Must be at maximum {{max}}.",object_invalid_type:"Must be an object.",object_min:"Must have at least {{expected}} keys.",object_max:"Must have at most {{expected}} keys.",object_length:"Must have exactly {{expected}} keys.",object_empty:"Object is empty.",object_unknown:"{{key}} is an unknown key.",condition_gt:"{{keyA}} must be greater than {{keyB}}.",condition_gte:"{{keyA}} must be greater than or equal {{keyB}}.",condition_lt:"{{keyA}} must be less than {{keyB}}.",condition_lte:"{{keyA}} must be less than or equal {{keyB}}.",condition_equals:"{{keyA}} must equal {{keyB}}.",condition_not_equals:"{{keyA}} must not equal {{keyB}}.",condition_xor:"Either {{keyA}} or {{keyB}} must be set.",condition_or:"Either {{keyA}} or {{keyB}} can be set.",condition_depends_on:"{{keyA}} depends on {{keyB}}.",express_invalid_request_object:"Invalid express req object.",express_unknown_params:"URI parameters are not allowed.",express_unknown_query:"Query parameters are not allowed.",express_unknown_body:"Body parameters are not allowed.",express_object_or_array_schema:"Must be object or array schema.",express_invalid_status_code:"Must have status code {{expected}} but has {{actual}}."}},function(e,t){e.exports={default:"Ungültig.",configuration_error:"Validator Konfigurationsfehler",validation_error:"Ungültig Eingabe Parameter oder Werte.",unknown_locale:"Unbekanntes Sprachpaket {{locale}}.",invalid_schema:"Ungültiges Schema.",unknown_schema:"Unbekanntes Schema.",invalid_custom_type:"Eigenes Schema {{name}} kann nicht hinzugefügt werden. Ungültiges Schema {{type}}.",duplicate_custom_type:"Eigenes Schema kann nicht hinzugefügt werden, da {{name}} schon in Verwendung ist.",unknown_custom_type:"Unbekanntes eigenes Schema {{name}}.",no_example:"Kein Beispiel vorhanden.",required:"Erforderlich aber ist {{value}}.",not_null:"Null ist nicht erlaubt.",wrong_type:"Muss {{expected}} sein aber ist {{actual}}.",only:"Nur '{{only}}' ist erlaubt.",not:"Ist nicht erlaubt.",invalid_function:"Muss eine Funktion sein.",invalid_regular_expression:"Muss ein regulärer Ausdruck sein.",string_empty:"String ist leer.",string_min:"Muss mindestens {{expected}} Zeichen besitzen.",string_max:"Darf maximal {{expected}} Zeichen besitzen..",string_length:"Muss genau {{expected}} Zeichen besitzen.",string_regex_invalid:"Wert erfüllt nicht den regulären Ausdruck.",array_empty:"Array ist leer.",array_min:"Muss mindestens {{expected}} Einträge besitzen.",array_max:"Darf maximal {{expected}} Einträge besitzen.",array_length:"Muss genau {{expected}} Einträge besitzen.",array_duplicate_items:"Einträge müssen eindeutig sein.",number_wrong_type:"Muss ein numerischer Wert sein.",number_min:"Muss mindestens {{expected}} sein.",number_max:"Darf maximal {{expected}} sein.",number_less:"Muss kleiner als {{expected}} sein.",number_greater:"Muss größer als {{expected}} sein.",number_positive:"Muss ein positiver numerischer Wert sein.",number_negative:"Muss ein negativer numerischer Wert sein.",integer_wrong_type:"Muss ein numerischer Wert sein.",integer_is_number:"Darf keine Nachkommastellen besitzen.",date_invalid:"Ungültiges Datum. Erforderliches Format {{format}}.",date_min:"Muss mindestens {{min}} sein.",date_max:"Darf maximal {{max}} sein.",object_invalid_type:"Muss ein Objekt sein.",object_min:"Muss mindestens {{expected}} Einträge besitzen.",object_max:"Darf maximal {{expected}} Einträge besitzen.",object_length:"Muss genau {{expected}} Einträge besitzen.",object_empty:"Objekt ist leer.",object_unknown:"Unbekannter Eintrag.",condition_gt:"Muss größer als {{keyB}} sein.",condition_gte:"Muss größer oder gleich wie {{keyB}} sein.",condition_lt:"Muss kleiner als {{keyB}} sein.",condition_lte:"Muss kleiner oder gleich wie {{keyB}} sein.",condition_equals:"Muss gleich wie {{keyB}} sein.",condition_not_equals:"Darf nicht gleich wie {{keyB}} sein.",condition_xor:"Entweder {{keyA}} oder {{keyB}} darf gesetzt sein.",condition_or:"Entweder {{keyA}} oder {{keyB}} darf gesetzt sein.",condition_depends_on:"Benötigt {{keyB}}.",express_invalid_request_object:"Ungültiges express req Objekt.",express_unknown_params:"URL Parameter sind nicht erlaubt.",express_unknown_query:"Query Parameter sind nicht erlaubt.",express_unknown_body:"Body Parameter sind nicht erlaubt.",express_object_or_array_schema:"Muss ein Objekt oder Array Schema sein.",express_invalid_status_code:"Status Code muss {{expected}} sein, aber ist {{actual}}."}},function(e,t){e.exports={default:"Ungültig.",configuration_error:"Validator Konfigurationsfehler",validation_error:"Ungültig Eingabe Parameter oder Werte.",unknown_locale:"Unbekanntes Sprachpaket {{locale}}.",invalid_schema:"Ungültiges Schema.",unknown_schema:"Unbekanntes Schema.",invalid_custom_type:"Eigenes Schema {{name}} kann nicht hinzugefügt werden. Ungültiges Schema {{type}}.",duplicate_custom_type:"Eigenes Schema kann nicht hinzugefügt werden, da {{name}} schon in Verwendung ist.",unknown_custom_type:"Unbekanntes eigenes Schema {{name}}.",no_example:"Kein Beispiel vorhanden.",required:"Dieses Feld ist erforderlich.",not_null:"Ungültiger Wert.",wrong_type:"Muss {{expected}} sein aber ist {{actual}}.",only:"Nur '{{only}}' ist erlaubt.",not:"Ist nicht erlaubt.",invalid_function:"Muss eine Funktion sein.",invalid_regular_expression:"Muss ein regulärer Ausdruck sein.",string_empty:"Darf nicht leer sein.",string_min:"Muss mindestens {{expected}} Zeichen besitzen.",string_max:"Darf maximal {{expected}} Zeichen besitzen..",string_length:"Muss genau {{expected}} Zeichen besitzen.",string_regex_invalid:"Wert erfüllt nicht den regulären Ausdruck.",array_empty:"Die Liste darf nicht leer sein.",array_min:"Die Liste muss mindestens {{expected}} Einträge besitzen.",array_max:"Die Liste darf maximal {{expected}} Einträge besitzen.",array_length:"Die Liste muss genau {{expected}} Einträge besitzen.",array_duplicate_items:"Die Einträge müssen eindeutig sein.",number_wrong_type:"Muss ein numerischer Wert sein.",number_min:"Muss mindestens {{expected}} sein.",number_max:"Darf maximal {{expected}} sein.",number_less:"Muss kleiner als {{expected}} sein.",number_greater:"Muss größer als {{expected}} sein.",number_positive:"Muss ein positiver numerischer Wert sein.",number_negative:"Muss ein negativer numerischer Wert sein.",integer_wrong_type:"Muss ein numerischer Wert sein.",integer_is_number:"Darf keine Nachkommastellen besitzen.",date_invalid:"Ist kein gültiges Datum.",date_min:"Muss mindestens {{min}} sein.",date_max:"Darf maximal {{max}} sein.",object_invalid_type:"Muss ein Objekt sein.",object_min:"Muss mindestens {{expected}} Einträge besitzen.",object_max:"Darf maximal {{expected}} Einträge besitzen.",object_length:"Muss genau {{expected}} Einträge besitzen.",object_empty:"Objekt ist leer.",object_unknown:"{{key}} ist ein unbekannter Eintrag.",condition_gt:"{{keyA}} muss größer als {{keyB}} sein.",condition_gte:"{{keyA}} muss größer oder gleich wie {{keyB}} sein.",condition_lt:"{{keyA}} muss kleiner als {{keyB}} sein.",condition_lte:"{{keyA}} muss kleiner oder gleich wie {{keyB}} sein.",condition_equals:"{{keyA}} muss gleich wie {{keyB}} sein.",condition_not_equals:"{{keyA}} darf nicht gleich wie {{keyB}} sein.",condition_xor:"Entweder {{keyA}} oder {{keyB}} darf gesetzt sein.",condition_or:"Entweder {{keyA}} oder {{keyB}} darf gesetzt sein.",condition_depends_on:"{{keyA}} benötigt {{keyB}}.",express_invalid_request_object:"Ungültiges express req Objekt.",express_unknown_params:"URL Parameter sind nicht erlaubt.",express_unknown_query:"Query Parameter sind nicht erlaubt.",express_unknown_body:"Body Parameter sind nicht erlaubt.",express_object_or_array_schema:"Muss ein Objekt oder Array Schema sein.",express_invalid_status_code:"Status Code muss {{expected}} sein, aber ist {{actual}}."}},function(e,t){t.VALIDATOR_OPTIONS={locale:"en",requiredAsDefault:!0,throwValidationErrors:!0,parseToType:!0,emptyStrings:!1,trimStrings:!0,emptyArrays:!1,emptyObjects:!1,unknownObjectKeys:!1,parseDates:!0,utc:!0,nullAsUndefined:!1},t.TYPES=["ANY","ARRAY","BOOLEAN","DATE","NUMBER","OBJECT","STRING"]},function(e,t,n){const{clone:i,cloneRegex:r}=n(0);t.cloneSchema=e=>{const t=Object.create(Object.getPrototypeOf(e));return Object.getOwnPropertyNames(e).forEach(n=>{switch(n){case"_message":t._message=e._message;break;case"_func":t._func=e._func;break;case"_regex":t._regex={pattern:r(e._regex.pattern),locales:e._regex.locales};break;case"_type":case"_body":case"_query":case"_params":t[n]=e[n].clone();break;case"_object":t._object={},Object.keys(e._object).map(n=>{t._object[n]=e._object[n].clone()});break;default:t[n]=i(e[n])}}),t}},function(e,t,n){function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const{Validator:r}=n(5),{VALIDATOR_OPTIONS:s,TYPES:a}=n(30),{AnyFactory:o}=n(31),{ArrayFactory:l}=n(32),{BooleanFactory:u}=n(33),{DateFactory:c}=n(34),{NumberFactory:d}=n(35),{ObjectFactory:m}=n(36),{StringFactory:y}=n(37);class h extends r{constructor(e){super(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){i(e,t,n[t])})}return e}({},s,e)),this._types=a}addType(e,t){if(e in this._customs)throw this._message.error("duplicate_custom_type",{name:e});return this._customs[e]=t.clone(),this}Any(e={}){return o(e,this._options)}Array(e,t={}){return l(e,t,this._options)}Boolean(e={}){return u(e,this._options)}Date(e={}){return c(e,this._options)}Number(e={}){return d(e,this._options)}Object(e,t={}){return m(e,t,this._options)}String(e={}){return y(e,this._options)}}t.AngularValidator=h,t.AngularValidatorFactory=(e={})=>new h(e)},function(e,t){t.VALIDATOR_OPTIONS={locale:"en",requiredAsDefault:!0,throwValidationErrors:!0,parseToType:!0,emptyStrings:!1,trimStrings:!0,emptyArrays:!1,emptyObjects:!1,unknownObjectKeys:!1,parseDates:!0,utc:!0,nullAsUndefined:!0},t.TYPES=["ANY_ANGULAR","ARRAY_ANGULAR","BOOLEAN_ANGULAR","DATE_ANGULAR","NUMBER_ANGULAR","OBJECT_ANGULAR","STRING_ANGULAR"]},function(e,t,n){const{ANY:i}=n(1),{validate:r,validateSync:s}=n(2);class a extends i{constructor(e,t){super(e,t)}validate(){return async e=>{try{