@decaf-ts/decorator-validation 1.11.5 → 1.11.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- var e,t;e=this,t=function(e,t,r,a){"use strict";var s;e.ModelKeys=void 0,(s=e.ModelKeys||(e.ModelKeys={})).DESCRIPTION="description",s.TYPE="design:type",s.MODEL="model",s.ANCHOR="__model",s.CONSTRUCTION="constructed-by",s.ATTRIBUTE="__attributes",s.HASHING="hashing",s.SERIALIZATION="serialization",s.DECORATORS="decorators",s.CONSTRUCTOR="__original";const i="json";class n{constructor(){}preSerialize(r){const a=Object.assign({},r);let s;try{s=t.Metadata.modelName(r.constructor)}catch(e){s=void 0}return a[e.ModelKeys.ANCHOR]=s||r.constructor.name,a}deserialize(t){const r=JSON.parse(t),a=r[e.ModelKeys.ANCHOR];if(!a)throw Error("Could not find class reference in serialized model");return ce.build(r,a)}serialize(e){return JSON.stringify(this.preSerialize(e))}}class o{static{this.current=i}static{this.cache={json:new n}}constructor(){}static get(e){if(e in this.cache)return this.cache[e];throw Error("No serialization method registered under "+e)}static register(e,t,r=!1){if(e in this.cache)throw Error(`Serialization method ${e} already registered`);this.cache[e]=new t,r&&(this.current=e)}static serialize(e,t,...r){return t?this.get(t).serialize(e,...r):this.get(this.current).serialize(e,...r)}static deserialize(e,t,...r){return t?this.get(t).deserialize(e,...r):this.get(this.current).deserialize(e,...r)}static setDefault(e){this.current=this.get(e)}}class c{constructor(e){for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&e[t]&&Object.defineProperty(this,t,{enumerable:!0,configurable:!1,value:e[t],writable:!1})}toString(){const e=this;return Object.keys(e).filter(t=>Object.prototype.hasOwnProperty.call(e,t)&&"function"!=typeof e[t]).reduce((t,r)=>{let a=Object.keys(e[r]).reduce((t,a)=>(t?t+="\n"+e[r][a]:t=e[r][a],t),void 0);return a&&(a=`${r} - ${a}`,t?t+="\n"+a:t=a),t},"")}}const d={EQUALS:"equals",DIFF:"different",LESS_THAN:"lessThan",LESS_THAN_OR_EQUAL:"lessThanOrEqual",GREATER_THAN:"greaterThan",GREATER_THAN_OR_EQUAL:"greaterThanOrEqual"},u={REFLECT:"validation",DATE:"date",EMAIL:"email",FORMAT:"format",LIST:"list",MAX:"max",MAX_LENGTH:"maxlength",MIN:"min",MIN_LENGTH:"minlength",PASSWORD:"password",PATTERN:"pattern",REQUIRED:"required",STEP:"step",TYPE:"type",UNIQUE:"unique",URL:"url",VALIDATOR:"validator",ENUM:"enum",...d},l=["January","February","March","April","May","June","July","August","September","October","November","December"],f=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],h={REQUIRED:"This field is required",MIN:"The minimum value is {0}",MAX:"The maximum value is {0}",MIN_LENGTH:"The minimum length is {0}",MAX_LENGTH:"The maximum length is {0}",PATTERN:"The value does not match the pattern",EMAIL:"The value is not a valid email",URL:"The value is not a valid URL",TYPE:"Invalid type. Expected {0}, received {1}",STEP:"Invalid value. Not a step of {0}",DATE:"Invalid value. not a valid Date",DEFAULT:"There is an Error",PASSWORD:"Must be at least 8 characters and contain one of number, lower and upper case letters, and special character (@$!%*?&_-.,)",LIST:"Invalid list of {0}",MODEL_NOT_FOUND:"No model registered under {0}",EQUALS:"This field must be equal to field {0}",DIFF:"This field must be different from field {0}",LESS_THAN:"This field must be less than field {0}",LESS_THAN_OR_EQUAL:"This field must be less than or equal to field {0}",GREATER_THAN:"This field must be greater than field {0}",GREATER_THAN_OR_EQUAL:"This field must be greater than or equal to field {0}",UNIQUE:"Duplicate found, this field must be unique.",ENUM:"Value is not allowed. Must be one of {0}"},g={EMAIL:/[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?/,URL:/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i,PASSWORD:{CHAR8_ONE_OF_EACH:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&_\-.,])[A-Za-z\d@$!%*?&_\-.,]{8,}$/g}};function p(e,...t){return e.replace(/{(\d+)}/g,(e,r)=>void 0!==t[r]?t[r].toString():"undefined")}const y=p,m={INVALID_PATH:"Invalid path argument. Expected non-empty string but received: '{0}'",CONTEXT_NOT_OBJECT_COMPARISON:"Unable to access parent at level {0} for path '{1}': current context is not an object",PROPERTY_INVALID:"Failed to resolve path {0}: property '{1}' is invalid or does not exist.",PROPERTY_NOT_EXIST:"Failed to resolve path: property '{0}' does not exist.",UNSUPPORTED_TYPES_COMPARISON:"Unsupported types for comparison: '{0}' and '{1}'",NULL_OR_UNDEFINED_COMPARISON:"Comparison failed due to null or undefined value",INVALID_DATE_COMPARISON:"Invalid Date objects are not comparable",TYPE_MISMATCH_COMPARISON:"Cannot compare values of different types: {0} and {1}.",NAN_COMPARISON:"Comparison not supported for NaN values"},E=Symbol("_parent"),T=Symbol("isAsync");function b(e,t){let r=t;r.match(/hh/)?r=r.replace("hh","(?<hour>\\d{2})"):r.match(/h/)?r=r.replace("h","(?<hour>\\d{1,2})"):r.match(/HH/)?r=r.replace("HH","(?<hour>\\d{2})"):r.match(/H/)&&(r=r.replace("H","(?<hour>\\d{1,2})")),r.match(/mm/)?r=r.replace("mm","(?<minutes>\\d{2})"):r.match(/m/)&&(r=r.replace("m","(?<minutes>\\d{1,2})")),r.match(/ss/)?r=r.replace("ss","(?<seconds>\\d{2})"):r.match(/s/)&&(r=r.replace("s","(?<seconds>\\d{1,2})")),r.match(/dd/)?r=r.replace("dd","(?<day>\\d{2})"):r.match(/d/)&&(r=r.replace("d","(?<day>\\d{1,2})")),r.match(/EEEE/)?r=r.replace("EEEE","(?<dayofweek>\\w+)"):r.match(/EEEE/)&&(r=r.replace("EEE","(?<dayofweek>\\w+)")),r.match(/yyyy/)?r=r.replace("yyyy","(?<year>\\d{4})"):r.match(/yy/)&&(r=r.replace("yy","(?<year>\\d{2})")),r.match(/MMMM/)?r=r.replace("MMMM","(?<monthname>\\w+)"):r.match(/MMM/)&&(r=r.replace("MMM","(?<monthnamesmall>\\w+)")),r.match(/MM/)?r=r.replace("MM","(?<month>\\d{2})"):r.match(/M/)&&(r=r.replace("M","(?<month>\\d{1,2})")),r=r.replace("S","(?<milis>\\d{1,3})").replace("aaa","(?<ampm>\\w{2})");const a=RegExp(r,"g").exec(e);if(!a||!a.groups)return new Date(e);const s=e=>{if(!e)return 0;const t=parseInt(e);return isNaN(t)?0:t},i=s(a.groups.year),n=s(a.groups.day),o=a.groups.ampm;let c=s(a.groups.hour);o&&(c="PM"===o?c+12:c);const d=s(a.groups.minutes),u=s(a.groups.seconds),f=s(a.groups.milis),h=a.groups.monthname,g=a.groups.monthnamesmall;let p=a.groups.month;if(h)p=l.indexOf(h);else if(g){const t=l.find(e=>e.toLowerCase().startsWith(g.toLowerCase()));if(!t)return new Date(e);p=l.indexOf(t)}else p=s(""+p);return new Date(i,p-1,n,c,d,u,f)}function M(e,t){if(e)return Object.defineProperty(e,"toISOString",{enumerable:!1,configurable:!1,value:new Proxy(e.toISOString,{apply:(e,r)=>O(r,t)})}),Object.defineProperty(e,"toString",{enumerable:!1,configurable:!1,value:new Proxy(e.toISOString,{apply:(e,r)=>O(r,t)})}),e}function A(e){return e&&"[object Date]"===Object.prototype.toString.call(e)&&!Number.isNaN(e)}function N(e){return 10>e?"0"+e:e.toString()}function O(e,t="yyyy/MM/dd"){const r=e.getDate(),a=e.getMonth(),s=e.getFullYear(),i=e.getHours(),n=e.getMinutes(),o=e.getSeconds(),c=e.getMilliseconds(),d=i%12,u=N(d),h=N(i),g=N(n),p=N(o),y=12>i?"AM":"PM",m=f[e.getDay()],E=m.substr(0,3),T=N(r),b=a+1,M=N(b),A=l[a],O=A.substr(0,3),_=s+"",S=_.substr(2,2);return(t=t.replace("hh",u).replace("h",d.toString()).replace("HH",h).replace("H",i.toString()).replace("mm",g).replace("m",n.toString()).replace("ss",p).replace("s",o.toString()).replace("S",c.toString()).replace("dd",T).replace("d",r.toString()).replace("EEEE",m).replace("EEE",E).replace("yyyy",_).replace("yy",S).replace("aaa",y)).indexOf("MMM")>-1?t.replace("MMMM",A).replace("MMM",O):t.replace("MM",M).replace("M",b.toString())}function _(e,t){let r;if(t){if(t instanceof Date)try{r=b(O(t,e),e)}catch(r){throw Error(y("Could not convert date {0} to format: {1}",t.toString(),e))}else if("string"==typeof t)r=b(t,e);else if("number"==typeof t)r=b(O(new Date(t),e),e);else{if(!A(t))throw Error("Invalid value provided "+t);try{r=b(O(new Date(t),e),e)}catch(r){throw Error(y("Could not convert date {0} to format: {1}",t,e))}}return M(r,e)}}function S(e,t,...r){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return e===t;if(typeof e!=typeof t)return!1;if(Number.isNaN(e)&&Number.isNaN(t))return!0;if("object"!=typeof e)return e===t;if(e instanceof Date&&t instanceof Date)return!(!isNaN(e.getTime())||!isNaN(t.getTime()))||e.getTime()===t.getTime();if(e instanceof RegExp&&t instanceof RegExp)return e.toString()===t.toString();if(e instanceof Error&&t instanceof Error)return e.name===t.name&&e.message===t.message;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let a=0;a<e.length;a++)if(!S(e[a],t[a],...r))return!1;return!0}if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[a,s]of e)if(!t.has(a)||!S(s,t.get(a),...r))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(e.byteLength!==t.byteLength)return!1;if(e.byteOffset!==t.byteOffset)return!1;if(e.buffer.byteLength!==t.buffer.byteLength)return!1;const r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),a=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);for(let e=0;e<r.length;e++)if(r[e]!==a[e])return!1;return!0}const a=Object.keys(e).filter(e=>!r.includes(e)),s=Object.keys(t).filter(e=>!r.includes(e));if(a.length!==s.length)return!1;for(const i of a){if(!s.includes(i))return!1;if(!S(e[i],t[i],...r))return!1}const i=Object.getOwnPropertySymbols(e).filter(e=>!r.includes(e.toString())),n=Object.getOwnPropertySymbols(t).filter(e=>!r.includes(e.toString()));if(i.length!==n.length)return!1;for(const a of i){if(!n.includes(a))return!1;if(!S(e[a],t[a],...r))return!1}return Object.getPrototypeOf(e)===Object.getPrototypeOf(t)}function R(e){e+="";let t=0;for(let r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r),t&=t;return t.toString()}function v(e){const t=(e,t)=>{const r=a(t);return"string"==typeof r?a((e||"")+a(t)):(e=((e=e||0)<<5)-e+r)&e},r=R,a=e=>void 0===e?"":-1!==["string","number","symbol"].indexOf(typeof e)?r(e.toString()):e instanceof Date?r(e.getTime()):Array.isArray(e)?e.reduce(t,void 0):Object.values(e).reduce(t,void 0),s=Object.values(e).reduce(t,0);return("number"==typeof s?Math.abs(s):s).toString()}const P="default";class L{static{this.current=P}static{this.cache={default:v}}constructor(){}static get(e){if(e in this.cache)return this.cache[e];throw Error("No hashing method registered under "+e)}static register(e,t,r=!1){if(e in this.cache)throw Error(`Hashing method ${e} already registered`);this.cache[e]=t,r&&(this.current=e)}static hash(e,t,...r){return t?this.get(t)(e,...r):this.get(this.current)(e,...r)}static setDefault(e){this.current=this.get(e)}}const D=e=>e[E],I=(e,t)=>{if(!Object.prototype.hasOwnProperty.call(e,t))throw Error(y(m.PROPERTY_NOT_EXIST,t));return e[t]};class w{static create(e,t){const{getValue:r,getParent:a,ignoreUndefined:s,ignoreNull:i}={getParent:D,getValue:I,ignoreNull:!1,ignoreUndefined:!1,...t};return new Proxy({},{get:(t,n)=>"getValueFromPath"===n?t=>{const n=w.parsePath(t);let o=e;for(let e=0;e<n.length;e++){const c=n[e];if(".."===c){const r=a(o);if(!r||"object"!=typeof r)throw Error(y(m.CONTEXT_NOT_OBJECT_COMPARISON,e+1,t));o=r;continue}if(o=r(o,c),!s&&void 0===o)throw Error(y(m.PROPERTY_INVALID,t,c));if(!i&&null===o)throw Error(y(m.PROPERTY_INVALID,t,c))}return o}:t[n]})}static parsePath(e){if("string"!=typeof e||!e.trim())throw Error(y(m.INVALID_PATH,e));return e.match(/(\.\.|[^/.]+)/g)||[]}}const V=e=>null===e?"null":e instanceof Date?"Date":Number.isNaN(e)?"NaN":e===1/0?"Infinity":e===-1/0?"-Infinity":Array.isArray(e)?"array":typeof e,j=e=>void 0===e||e instanceof Date||"bigint"==typeof e||"number"==typeof e&&Number.isFinite(e);function U(e,t){if(j(e)&&j(t))return!0;throw new TypeError(y(m.UNSUPPORTED_TYPES_COMPARISON,V(e),V(t)))}function H(e,t){if([null,void 0].includes(e)||[null,void 0].includes(t))throw Error(m.NULL_OR_UNDEFINED_COMPARISON);const r=typeof e,a=typeof t;if(r!==a){if("bigint"===r&&"number"===a)return t>Number(e);if("number"===r&&"bigint"===a)return Number(t)>e;throw new TypeError(y(m.TYPE_MISMATCH_COMPARISON,r,a))}if("number"===r&&"number"===a||"bigint"===r&&"bigint"===a){if(Number.isNaN(e)||Number.isNaN(t))throw new TypeError(m.NAN_COMPARISON);return t>e}if(e instanceof Date&&t instanceof Date){if(isNaN(e.getTime())||isNaN(t.getTime()))throw new TypeError(m.INVALID_DATE_COMPARISON);return e.getTime()<t.getTime()}throw new TypeError(y(m.UNSUPPORTED_TYPES_COMPARISON,V(e),V(t)))}function C(e,t){if([null,void 0].includes(e)||[null,void 0].includes(t))throw Error(m.NULL_OR_UNDEFINED_COMPARISON);const r=typeof e,a=typeof t;if(r!==a){if("bigint"===r&&"number"===a)return Number(e)>t;if("number"===r&&"bigint"===a)return e>Number(t);throw Error(y(m.TYPE_MISMATCH_COMPARISON,r,a))}if("number"===r&&"number"===a||"bigint"===r&&"bigint"===a){if(Number.isNaN(e)||Number.isNaN(t))throw new TypeError(m.NAN_COMPARISON);return e>t}if(e instanceof Date&&t instanceof Date){if(isNaN(e.getTime())||isNaN(t.getTime()))throw new TypeError(m.INVALID_DATE_COMPARISON);return e.getTime()>t.getTime()}throw new TypeError(y(m.UNSUPPORTED_TYPES_COMPARISON,V(e),V(t)))}function x(e,t){return typeof e===t.toLowerCase()||void 0!==e&&"object"==typeof e&&e.constructor&&e.constructor.name.toLowerCase()===t.toLowerCase()}function F(e,t){return!t.every(t=>!x(e,t))}function z(e,t){switch(typeof t){case"string":return x(e,t);case"object":return!Array.isArray(t)||F(e,t);case"function":return!t.name||"Object"===t.name||x(e,t.name);default:return!0}}function G(e){return e instanceof Set||e instanceof Map?e.size:e.length}class ${constructor(e,t=h.DEFAULT,...r){this.async=e,this.message=t,r.length&&(this.acceptedTypes=r),this.acceptedTypes&&(this.hasErrors=this.checkTypeAndHasErrors(this.hasErrors.bind(this)))}getMessage(e,...t){return y(e,...t)}checkTypeAndHasErrors(e){return function(t,r,a,...s){return void 0!==t&&this.acceptedTypes?F(t,this.acceptedTypes)?e(t,r,a,...s):this.getMessage(h.TYPE,this.acceptedTypes.join(", "),"number"!=typeof t?typeof t:isNaN(t)?"NaN":typeof t):e(t,r,a,...s)}.bind(this)}static isValidator(e){return e.constructor&&!!e.hasErrors}}class Y extends ${constructor(e=h.DEFAULT,...t){super(!1,e,...t)}}class q{constructor(...e){this.cache={},this.customKeyCache={},this.register(...e)}getCustomKeys(){return Object.assign({},this.customKeyCache)}getKeys(){return Object.keys(this.cache)}get(e){if(!(e in this.cache))return;const t=this.cache[e];if(Y.isValidator(t))return t;const r=new(t.default||t);return this.cache[e]=r,r}register(...e){e.forEach(e=>{if(Y.isValidator(e)){if(e.validationKey in this.cache)return;this.cache[e.validationKey]=e}else{const{validationKey:t,validator:r,save:a}=e;if(t in this.cache)return;if(this.cache[t]=r,!a)return;const s={};s[t.toUpperCase()]=t,this.customKeyCache=Object.assign({},this.customKeyCache,s)}})}}class K{static{this.actingValidatorRegistry=void 0}constructor(){}static setRegistry(e,t){t&&K.actingValidatorRegistry&&K.actingValidatorRegistry.getKeys().forEach(r=>{const a=e.get(r);a&&e.register(t(a))}),K.actingValidatorRegistry=e}static getRegistry(){return K.actingValidatorRegistry||(K.actingValidatorRegistry=new q),K.actingValidatorRegistry}static get(e){return K.getRegistry().get(e)}static register(...e){return K.getRegistry().register(...e)}static key(e){return u.REFLECT+e}static keys(){return this.getRegistry().getKeys()}static registerDecorator(r,a){const s=t.Metadata.innerGet(Symbol.for(e.ModelKeys.DECORATORS),t.Metadata.key(u.REFLECT,r));s?.[r]||t.Metadata.set(e.ModelKeys.DECORATORS,t.Metadata.key(u.REFLECT,r),a)}static decoratorFromKey(r){try{return t.Metadata.innerGet(Symbol.for(e.ModelKeys.DECORATORS),t.Metadata.key(u.REFLECT,r))}catch(e){throw Error(`No decorator registered under ${r}: ${e}`)}}}function k(e,t){return t?Promise.resolve(e):e}function Q(e,t,r){Object.hasOwnProperty.call(e,t)||(e[t]=r)}function B(e,t){Object.hasOwnProperty.call(e,t)&&delete e[t]}function X(e,t,r,...a){t&&Q(e,E,t),Q(e,T,!!r);const s=e.hasErrors(...a);return B(e,E),B(e,T),s}function W(e,t,r,a,s,...i){let n,o=!1;for(const d of a){const a=ce.get(d);if(a||(n=new c({[e]:{[u.TYPE]:"Unable to verify type consistency, missing model registry for "+d}})),t instanceof a){o=!0,n=X(t,r,s,...i);break}}return o?n:n||new c({[e]:{[u.TYPE]:"Value must be an instance of one of the expected types: "+a.join(", ")}})}function Z(e,...t){return t?.map(t=>("string"==typeof t&&t?.startsWith(e+".")&&(t=t.replace(e+".","")),t))}function J(t,r,a,s){const i=K.get(a.key);if(!i)throw Error("Missing validator for "+a.key);if(!s&&a.async)return;const n=a.key===e.ModelKeys.TYPE?[a]:a||{},o=w.create(t,{ignoreUndefined:!0,ignoreNull:!0}),c=a.key===e.ModelKeys.TYPE?n[0]:n;return k(i.hasErrors(r,c,o),s)}function ee(t,r,a,s,i,...n){const o={};for(const c in s){const d={...s[c],key:c};if(!i&&d.async)continue;let l=J(t,a,d,i);if(c===u.LIST&&(!l||i)){const e=a instanceof Set?[...a]:a;if(e&&e.length>0){let a=d.class||d.clazz||d.customTypes;a=(Array.isArray(a)?a:[a]).map(e=>(e="function"!=typeof e||e.name?e:e()).name?e.name:e);const s=[a].flat().map(e=>(e+"").toLowerCase()),o=e.map(e=>{if(ce.isModel(e)){const s=Z(r,...n);return W(r,e,t,a.flat(),!!i,...s)}return s.includes(typeof e)?void 0:"Value has no validatable type"});if(i)l=Promise.all(o).then(e=>e.every(e=>!e)?void 0:e);else{const e=o.every(e=>!e);l=o.length>0&&!e?o:void 0}}}const f=c===e.ModelKeys.TYPE?u.TYPE:c;l&&(o[f]=l)}if(!i)return Object.keys(o).length>0?o:void 0;const c=Object.keys(o),d=Object.values(o);return Promise.all(d).then(e=>{const t={};for(let r=0;r<e.length;r++){const a=e[r];void 0!==a&&(t[c[r]]=a)}return Object.keys(t).length>0?t:void 0})}function te(r,a,...s){const i=t.Metadata.validatableProperties(r.constructor,...s),n={},o={};for(const c of i){const i=c+"",d=r[c],l=t.Metadata.validationFor(r.constructor,c)||{},{designTypes:f,designType:h}=t.Metadata.getPropDesignTypes(r.constructor,c);if(!f)continue;if(f.some(e=>[Array.name,Set.name].includes(e.name))){if(!l||!Object.keys(l).includes(u.LIST)){n[i]={[u.TYPE]:`Array or Set property '${i}' requires a @list decorator`};continue}if(d&&!(Array.isArray(d)||d instanceof Set)){n[i]={[u.TYPE]:`Property '${c+""}' must be either an Array or a Set`};continue}}const g=ee(r,i,d,l,a,...s)||{};if(ce.isPropertyModel(r,i)&&null!=d){const t=d,n=(Array.isArray(h)?f:[h]).map(e=>("function"!=typeof e||e.name||(e=e()),ce.get(e.name||e))).find(e=>!!e);if(n&&t instanceof n){const e=Z(i,...s);o[i]=X(t,r,a,...e)}else g[u.TYPE]=n?"Value must be an instance of "+n.name:`Unable to verify type consistency, missing model registry for ${f.toString()} on prop ${i}`,delete g[e.ModelKeys.TYPE]}(Object.keys(g).length>0||a)&&(n[i]=g),a||Object.entries(o[i]||{}).forEach(([e,t])=>{void 0!==t&&(n[`${i}.${e}`]=t)})}if(!a)return Object.keys(n).length>0?new c(n):void 0;const d=n,l=Object.keys(d),f=Object.values(d);return Promise.allSettled(f).then(async e=>{const t={};for(const[e,r]of Object.entries(o)){const a=await r;a&&Object.entries(a).forEach(([r,a])=>{void 0!==a&&(t[[e,r].join(".")]=a)})}for(let r=0;r<e.length;r++){const a=l[r],s=e[r];"fulfilled"===s.status&&void 0!==s.value?t[a]=s.value:"rejected"===s.status&&(t[a]=s.reason instanceof Error?s.reason.message:(s.reason||"Validation failed")+"")}return Object.keys(t).length>0?new c(t):void 0})}var re;e.Primitives=void 0,(re=e.Primitives||(e.Primitives={})).STRING="string",re.NUMBER="number",re.BOOLEAN="boolean",re.BIGINT="bigint";const ae={STRING:String,OBJECT:Object,NUMBER:Number,BOOLEAN:Boolean,BIGINT:BigInt,DATE:Date},se=["string","array","number","boolean","symbol","function","object","undefined","null","bigint"];let ie,ne;class oe{constructor(e=ce.isModel){this.cache={},this.testFunction=e}register(e,t){if("function"!=typeof e)throw Error("Model registering failed. Missing Class name or constructor");t=t||e.name,this.cache[t]=e}get(e){try{return this.cache[e]}catch(e){return}}build(e={},r){if(!r&&!this.testFunction(e))throw Error("Provided obj is not a Model object");const a=r||t.Metadata.modelName(e.constructor);if(!(a in this.cache))throw Error(`Provided class ${a} is not a registered Model object`);return new this.cache[a](e)}}class ce{constructor(e=void 0){}isAsync(){return!!(this[T]??this?.constructor[T])}hasErrors(...e){return te(this,this.isAsync(),...e)}equals(e,...t){return S(this,e,...t)}compare(e,...r){const a=t.Metadata.properties(this.constructor);if(!a||!a.length)return;const s=a.reduce((t,a)=>{const s=a;if(r.includes(s))return t;if(S(this[s],e[s]))return t;if(void 0===this[s]&&void 0!==e[s])return t[s]={other:e[s],current:void 0},t;if(void 0!==this[s]&&void 0===e[s])return t[s]={other:void 0,current:this[s]},t;if(ce.isPropertyModel(this,s)){const r=this[s].compare(e[s]);return r&&(t[s]=r),t}if(Array.isArray(this[s])&&Array.isArray(e[s])){if(this[s].length!==e[s].length)return t[s]={current:this[s],other:e[s]},t;const r=this[s].map((t,r)=>S(t,e[s][r])?null:t instanceof ce&&e[s][r]instanceof ce?t.compare(e[s][r]):{current:t,other:e[s][r]});return r.some(e=>null!==e)&&(t[s]=r),t}return t[s]={other:e[s],current:this[s]},t},{});return Object.keys(s).length>0?s:void 0}serialize(){return ce.serialize(this)}toString(){return this.constructor.name+": "+JSON.stringify(this,void 0,2)}hash(){return ce.hash(this)}static deserialize(r){let a;try{a=t.Metadata.get(this.constructor,e.ModelKeys.SERIALIZATION)}catch(e){a=void 0}return a&&a.serializer?o.deserialize(r,a.serializer,...a.args||[]):o.deserialize(r)}static fromObject(e,t){t||(t={});for(const r of ce.getAttributes(e))e[r]=t[r]??e[r]??void 0;return e}static fromModel(e,r){let a;r||(r={});const s=ce.getAttributes(e),i=Object.getPrototypeOf(e);let n;for(const o of s){try{e[o]=r[o]??e[o]??void 0}catch(e){if(n=Object.getOwnPropertyDescriptor(i,o),!n||n.writable)throw Error(`Unable to write property ${o} to model: ${e}`)}if("object"!=typeof e[o])continue;const s=ce.isPropertyModel(e,o);if(s){try{e[o]=ce.build(e[o],"string"==typeof s?s:void 0)}catch(e){}continue}if(a=t.Metadata.allowedTypes(e.constructor,o),!a||!a.length)throw Error("failed to find decorators for property "+o);const c=a.map(e=>"function"!=typeof e||e.name?e:e()),d=Object.values(ae);c.forEach(r=>{if(!d.includes(r))try{switch(r.name){case"Array":case"Set":{const a=t.Metadata.validationFor(e.constructor,o);if(!a||!a[u.LIST])break;const s=a[u.LIST].clazz.map(e=>"function"!=typeof e||e.name?e:e()).find(e=>!se.includes(e.name));if("Array"===r.name&&(e[o]=e[o].map(e=>["object","function"].includes(typeof e)&&s?ce.build(e,s.name):e)),"Set"===r.name){const t=new Set;for(const r of e[o])["object","function"].includes(typeof r)&&s?t.add(ce.build(r,s.name)):t.add(r);e[o]=t}break}default:void 0!==e[o]&&ce.get(r.name)&&(e[o]=ce.build(e[o],r.name))}}catch(e){}})}return e}static setBuilder(e){ie=e}static getBuilder(){return ie||ce.fromModel}static getRegistry(){return ne||(ne=new oe),ne}static setRegistry(e){ne=e}static register(e,t){return ce.getRegistry().register(e,t)}static get(e){return ce.getRegistry().get(e)}static build(e={},t){return ce.getRegistry().build(e,t)}static getAttributes(e){const r=e instanceof ce?e.constructor:e,a=new Set,s=e=>{if(!e)return[];const r=s(Object.getPrototypeOf(e)),i=t.Metadata.properties(e)??[];for(const e of i)a.has(e)||(a.add(e),r.push(e));return r};return s(r)}static equals(e,t,...r){return S(e,t,...r)}static hasErrors(e,t,...r){return te(e,t,...r)}static serialize(r){let a;try{a=t.Metadata.get(r.constructor,e.ModelKeys.SERIALIZATION)}catch(e){a=void 0}return a&&a.serializer?o.serialize(this,a.serializer,...a.args||[]):o.serialize(r)}static hash(r){const a=t.Metadata.get(r.constructor,e.ModelKeys.HASHING);return a&&a.algorithm?L.hash(r,a.algorithm,...a.args||[]):L.hash(r)}static isModel(e){try{if(e instanceof ce)return!0;const r=t.Metadata.constr(e);return!(!r||r===e||!t.Metadata.modelName(r))}catch(e){return!1}}static isPropertyModel(e,r){if(ce.isModel(e[r]))return!0;const a=t.Metadata.type(e.constructor,r);return a&&ce.get(a.name)?a.name:void 0}static describe(e,r){return t.Metadata.description(e,r)}}function de(...e){return t.apply(t=>(e.forEach(e=>{K.register({validator:t,validationKey:e,save:!0})}),t),t.metadata(u.VALIDATOR,e))}t.Metadata.validationFor=((e,r,a)=>{const s=t.Metadata.get(e);if(!s)return;if(!r)return s.validation;if(!s.validation)return;if(!s.validation[u.TYPE]){const{designTypes:a}=t.Metadata.getPropDesignTypes(e,r);s.validation[r]&&a?.length&&a[0]!==ae.OBJECT&&(s.validation[r][u.TYPE]={customTypes:a,message:h.TYPE,description:"defines the accepted types for the attribute",async:!1})}if(!a)return s.validation[r];const i=s.validation[r];return i?i[a]:void 0}).bind(t.Metadata),t.Metadata.modelName=(e=>{const r=t.Metadata.constr(e);return r?r.name:e.name}).bind(t.Metadata),t.Metadata.validatableProperties=((e,...r)=>{const a=t.Metadata.validationFor(e),s=a?Object.keys(a):[];return[...new Set([...ce.getAttributes(e),...s])].filter(e=>!r||!r?.includes(e))}).bind(t.Metadata),t.Metadata.allowedTypes=((e,r)=>{const a=t.Metadata.type(e,r);if(!a)throw Error("No metadata found for property "+r);const s=t.Metadata.validationFor(e,r);return s&&s[u.TYPE]&&"function"==typeof s[u.TYPE]?.customTypes[Symbol.iterator]?[...s[u.TYPE].customTypes]:[a]}).bind(t.Metadata),t.Metadata.getPropDesignTypes=((e,r)=>{const a=t.Metadata.get(e),s=t.Metadata.type(e,r),i=a?.[u.REFLECT]?.[r];if(!(s||i&&i[u.TYPE]))return{};const n=i&&i[u.TYPE]?[i[u.TYPE].customTypes]:[s];if(!n?.length)return{};const o=n[0],c=o.class||o.clazz||o.customTypes||o;return{designTypes:(Array.isArray(c)?c:[c]).map(e=>"function"!=typeof e||e.name?e:e()),designType:c}}).bind(t.Metadata),e.DateValidator=class extends Y{constructor(e=h.DATE){super(e,Number.name,Date.name,String.name)}hasErrors(e,t={}){if(void 0!==e&&("string"==typeof e&&(e=new Date(e)),Number.isNaN(e.getDate()))){const{message:e=""}=t;return this.getMessage(e||this.message)}}},e.DateValidator=r.__decorate([de(u.DATE),r.__metadata("design:paramtypes",[String])],e.DateValidator),e.DiffValidator=class extends Y{constructor(e=h.DIFF){super(e)}hasErrors(e,t,r){let a;try{a=r.getValueFromPath(t[u.DIFF])}catch(e){return this.getMessage(e.message||this.message)}return S(e,a)?this.getMessage(t.message||this.message,t.label||t[u.DIFF]):void 0}},e.DiffValidator=r.__decorate([de(u.DIFF),r.__metadata("design:paramtypes",[String])],e.DiffValidator);const ue=RegExp("^/(.+)/([gimus]*)$");function le(e,r,a){return t.apply(t.propMetadata(r,a))}function fe(e,t,r){return K.registerDecorator(t,e),(e,a)=>le(0,`${u.REFLECT}.${a}.${t}`,r)(e,a)}function he(e=h.REQUIRED){const r=u.REQUIRED,a={message:e,description:"defines the attribute as required",async:!1};return t.Decoration.for(r).define({decorator:fe,args:[he,r,a]}).apply()}function ge(e,r=h.MIN){const a=u.MIN,s={[u.MIN]:e,message:r,description:`defines the max value of the attribute as ${e} (applies to numbers or Dates)`,async:!1};return t.Decoration.for(a).define({decorator:fe,args:[ge,a,s]}).apply()}function pe(e,r=h.MAX){const a=u.MAX,s={[u.MAX]:e,message:r,description:`defines the max value of the attribute as ${e} (applies to numbers or Dates)`,async:!1};return t.Decoration.for(a).define({decorator:fe,args:[pe,a,s]}).apply()}function ye(e,r=h.STEP){const a=u.STEP,s={[u.STEP]:e,message:r,description:"defines the step of the attribute as "+e,async:!1};return t.Decoration.for(a).define({decorator:fe,args:[ye,a,s]}).apply()}function me(e,r=h.MIN_LENGTH){const a=u.MIN_LENGTH,s={[u.MIN_LENGTH]:e,message:r,description:`defines the min length of the attribute as ${e} (applies to strings or lists)`,async:!1};return t.Decoration.for(a).define({decorator:fe,args:[me,a,s]}).apply()}function Ee(e,r=h.MAX_LENGTH){const a=u.MAX_LENGTH,s={[u.MAX_LENGTH]:e,message:r,description:`defines the max length of the attribute as ${e} (applies to strings or lists)`,async:!1};return t.Decoration.for(a).define({decorator:fe,args:[Ee,a,s]}).apply()}function Te(e,r=h.PATTERN){const a=u.PATTERN,s={[u.PATTERN]:"string"==typeof e?e:e.toString(),message:r,description:`assigns the ${"string"===e?e:e.toString()} pattern to the attribute`,async:!1};return t.Decoration.for(a).define({decorator:fe,args:[Te,a,s]}).apply()}function be(e=h.EMAIL){const r=u.EMAIL,a={[u.PATTERN]:g.EMAIL.toString(),message:e,description:"marks the attribute as an email",async:!1};return t.Decoration.for(r).define({decorator:fe,args:[be,r,a]}).apply()}function Me(e=h.URL){const r=u.URL,a={[u.PATTERN]:g.URL.toString(),message:e,description:"marks the attribute as an url",async:!1};return t.Decoration.for(r).define({decorator:fe,args:[Me,r,a]}).apply()}function Ae(e,r=h.TYPE){const a=u.TYPE,s={customTypes:e,message:r,description:"defines the accepted types for the attribute",async:!1};return t.Decoration.for(a).define({decorator:fe,args:[Ae,a,s]}).apply()}function Ne(e="dd/MM/yyyy",r=h.DATE){const a=u.DATE;return t.Decoration.for(a).define({decorator:function(e,t){const r={[u.FORMAT]:e,message:t,description:"defines the attribute as a date with the format "+e,async:!1};return function(t,s){const i=new WeakMap;return Object.defineProperty(t,s,{configurable:!0,set(t){const r=Object.getOwnPropertyDescriptor(this,s);r&&!r.configurable||Object.defineProperty(this,s,{enumerable:!0,configurable:!1,get:()=>i.get(this),set:t=>{let r;try{r=_(e,t),i.set(this,r)}catch(e){}}}),this[s]=t},get(){return i.get(this)}}),fe(Ne,a,r)(t,s)}},args:[e,r]}).apply()}function Oe(e=g.PASSWORD.CHAR8_ONE_OF_EACH,r=h.PASSWORD){const a=u.PASSWORD,s={[u.PATTERN]:e.toString(),message:r,description:"attribute as a password",async:!1};return t.Decoration.for(a).define({decorator:fe,args:[Oe,a,s]}).apply()}function _e(e,r="Array",a=h.LIST){const s=u.LIST,i={clazz:Array.isArray(e)?e:[e],type:r,message:a,async:!1,description:`defines the attribute as a ${r} of ${e.name}`};return t.Decoration.for(s).define({decorator:fe,args:[_e,s,i]}).apply()}function Se(e,t){return fe(Se,u.EQUALS,{label:t?.label||e,message:t?.message||h.EQUALS,[u.EQUALS]:e,description:"defines attribute as equal to "+e,async:!1})}function Re(e,t){return fe(Re,u.DIFF,{label:t?.label||e,message:t?.message||h.DIFF,[u.DIFF]:e,description:"defines attribute as different to "+e,async:!1})}function ve(e,t){return fe(ve,u.LESS_THAN,{label:t?.label||e,message:t?.message||h.LESS_THAN,[u.LESS_THAN]:e,description:"defines attribute as less than to "+e,async:!1})}function Pe(e,t){return fe(Pe,u.LESS_THAN_OR_EQUAL,{label:t?.label||e,message:t?.message||h.LESS_THAN_OR_EQUAL,[u.LESS_THAN_OR_EQUAL]:e,description:"defines attribute as less or equal to "+e,async:!1})}function Le(e,t){return fe(Le,u.GREATER_THAN,{label:t?.label||e,message:t?.message||h.GREATER_THAN,[u.GREATER_THAN]:e,description:"defines attribute as greater than "+e,async:!1})}function De(e,t){return fe(De,u.GREATER_THAN_OR_EQUAL,{label:t?.label||e,message:t?.message||h.GREATER_THAN_OR_EQUAL,[u.GREATER_THAN_OR_EQUAL]:e,description:"defines attribute as greater or equal to "+e,async:!1})}function Ie(e,r=h.ENUM){const a=u.ENUM,s={[u.ENUM]:e,message:r,description:"defines a list or an object of accepted values for the attribute",async:!1};return t.Decoration.for(a).define({decorator:fe,args:[Ie,a,s]}).apply()}function we(e,...t){const r=(...t)=>new e(...t);return r.prototype=e.prototype,r(...t)}function Ve(e){if(e instanceof ce)return;function t(e,t){Object.setPrototypeOf(e,t)}const r=Object.getPrototypeOf(e);if(r===Object.prototype)return t(e,ce.prototype);for(;r!==Object.prototype;){const e=Object.getPrototypeOf(r);if(e===Object.prototype||Object.getPrototypeOf(e)===Object.prototype)return t(r,ce.prototype)}throw Error("Could not find proper prototype to bind")}function je(r){const a=(...e)=>{const t=we(r,...e);Ve(t);const a=ce.getBuilder();return a&&a(t,e.length?e[0]:void 0),t};return a.prototype=r.prototype,Object.defineProperty(a,"name",{writable:!1,enumerable:!0,configurable:!1,value:r.prototype.constructor.name}),t.metadata(e.ModelKeys.CONSTRUCTOR,r)(a),ce.register(a,r.name),a}function Ue(){const r=e.ModelKeys.MODEL;return t.Decoration.for(r).define(je).apply()}e.PatternValidator=class extends Y{constructor(e=h.PATTERN){super(e,"string")}getPattern(e){if(!ue.test(e))return RegExp(e);const t=e.match(ue);return RegExp(t[1],t[2])}hasErrors(e,t){if(!e)return;let{pattern:r}=t;if(!r)throw Error("Missing Pattern");return r="string"==typeof r?this.getPattern(r):r,r.lastIndex=0,r.test(e)?void 0:this.getMessage(t.message||this.message)}},e.PatternValidator=r.__decorate([de(u.PATTERN),r.__metadata("design:paramtypes",[String])],e.PatternValidator),e.EmailValidator=class extends e.PatternValidator{constructor(e=h.EMAIL){super(e)}hasErrors(e,t={}){return super.hasErrors(e,{...t,message:t.message||this.message,pattern:t?.pattern||g.EMAIL})}},e.EmailValidator=r.__decorate([de(u.EMAIL),r.__metadata("design:paramtypes",[String])],e.EmailValidator),e.EqualsValidator=class extends Y{constructor(e=h.EQUALS){super(e)}hasErrors(e,t,r){let a;try{a=r.getValueFromPath(t[u.EQUALS])}catch(e){return this.getMessage(e.message||this.message)}return S(e,a)?void 0:this.getMessage(t.message||this.message,t.label||t[u.EQUALS])}},e.EqualsValidator=r.__decorate([de(u.EQUALS),r.__metadata("design:paramtypes",[String])],e.EqualsValidator),e.GreaterThanValidator=class extends Y{constructor(e=h.GREATER_THAN){super(e)}hasErrors(e,t,r){let a;try{a=r.getValueFromPath(t[u.GREATER_THAN])}catch(e){return this.getMessage(e.message||this.message)}try{if(!C(e,a))throw Error(t.message||this.message)}catch(e){return this.getMessage(e.message,t.label||t[u.GREATER_THAN])}}},e.GreaterThanValidator=r.__decorate([de(u.GREATER_THAN),r.__metadata("design:paramtypes",[String])],e.GreaterThanValidator),e.GreaterThanOrEqualValidator=class extends Y{constructor(e=h.GREATER_THAN_OR_EQUAL){super(e)}hasErrors(e,t,r){let a;try{a=r.getValueFromPath(t[u.GREATER_THAN_OR_EQUAL])}catch(e){return this.getMessage(e.message||this.message)}try{if(U(e,a)&&S(e,a)||C(e,a))return;throw Error(t.message||this.message)}catch(e){return this.getMessage(e.message,t.label||t[u.GREATER_THAN_OR_EQUAL])}}},e.GreaterThanOrEqualValidator=r.__decorate([de(u.GREATER_THAN_OR_EQUAL),r.__metadata("design:paramtypes",[String])],e.GreaterThanOrEqualValidator),e.LessThanValidator=class extends Y{constructor(e=h.LESS_THAN){super(e)}hasErrors(e,t,r){let a;try{a=r.getValueFromPath(t[u.LESS_THAN])}catch(e){return this.getMessage(e.message||this.message)}try{if(!H(e,a))throw Error(t.message||this.message)}catch(e){return this.getMessage(e.message,t.label||t[u.LESS_THAN])}}},e.LessThanValidator=r.__decorate([de(u.LESS_THAN),r.__metadata("design:paramtypes",[String])],e.LessThanValidator),e.LessThanOrEqualValidator=class extends Y{constructor(e=h.LESS_THAN_OR_EQUAL){super(e)}hasErrors(e,t,r){let a;try{a=r.getValueFromPath(t[u.LESS_THAN_OR_EQUAL])}catch(e){return this.getMessage(e.message||this.message)}try{if(U(e,a)&&S(e,a)||H(e,a))return;throw Error(t.message||this.message)}catch(e){return this.getMessage(e.message,t.label||t[u.LESS_THAN_OR_EQUAL])}}},e.LessThanOrEqualValidator=r.__decorate([de(u.LESS_THAN_OR_EQUAL),r.__metadata("design:paramtypes",[String])],e.LessThanOrEqualValidator),e.ListValidator=class extends Y{constructor(e=h.LIST){super(e,Array.name,Set.name)}hasErrors(e,t){if(!e||(Array.isArray(e)?!e.length:!e.size))return;const r=(Array.isArray(t.clazz)?t.clazz:[t.clazz]).map(e=>"string"==typeof e?e:e?.name||"function"!=typeof e?e?.name:e().name);let a,s=!0;for(let t=0;t<(Array.isArray(e)?e.length:e.size);t++)switch(a=[...e][t],typeof a){case"object":case"function":s=r.includes((a??{}).constructor?.name);break;default:s=r.some(e=>typeof a===e?.toLowerCase())}return s?void 0:this.getMessage(t.message||this.message,r)}},e.ListValidator=r.__decorate([de(u.LIST),r.__metadata("design:paramtypes",[String])],e.ListValidator),e.MaxLengthValidator=class extends Y{constructor(e=h.MAX_LENGTH){super(e,String.name,Array.name,Set.name,Map.name)}hasErrors(e,t){if(void 0!==e)return G(e)>t.maxlength?this.getMessage(t.message||this.message,t.maxlength):void 0}},e.MaxLengthValidator=r.__decorate([de(u.MAX_LENGTH),r.__metadata("design:paramtypes",[String])],e.MaxLengthValidator),e.MaxValidator=class extends Y{constructor(e=h.MAX){super(e,Number.name,Date.name,String.name)}hasErrors(e,t){if(void 0===e)return;let{max:r}=t;if(e instanceof Date&&!(r instanceof Date)&&(r=new Date(r),Number.isNaN(r.getDate())))throw Error("Invalid Max param defined");return e>r?this.getMessage(t.message||this.message,r):void 0}},e.MaxValidator=r.__decorate([de(u.MAX),r.__metadata("design:paramtypes",[String])],e.MaxValidator),e.MinLengthValidator=class extends Y{constructor(e=h.MIN_LENGTH){super(e,String.name,Array.name,Set.name,Map.name)}hasErrors(e,t){if(void 0!==e)return G(e)<t.minlength?this.getMessage(t.message||this.message,t.minlength):void 0}},e.MinLengthValidator=r.__decorate([de(u.MIN_LENGTH),r.__metadata("design:paramtypes",[String])],e.MinLengthValidator),e.MinValidator=class extends Y{constructor(e=h.MIN){super(e,Number.name,Date.name,String.name)}hasErrors(e,t){if(void 0===e)return;let{min:r}=t;if(e instanceof Date&&!(r instanceof Date)&&(r=new Date(r),Number.isNaN(r.getDate())))throw Error("Invalid Min param defined");return r>e?this.getMessage(t.message||this.message,r):void 0}},e.MinValidator=r.__decorate([de(u.MIN),r.__metadata("design:paramtypes",[String])],e.MinValidator),e.OptionValidator=class extends Y{constructor(e=h.ENUM){super(e)}hasErrors(e,t){if(void 0!==e){if(Array.isArray(t.enum))return t.enum.includes(e)?void 0:this.getMessage(t.message||this.message,t.enum);if("object"==typeof t.enum){const r=Object.keys(t.enum);for(const a of r)if(t.enum[a]===e)return;return this.getMessage(t.message||this.message,Object.values(t.enum))}}}},e.OptionValidator=r.__decorate([de(u.ENUM),r.__metadata("design:paramtypes",[String])],e.OptionValidator),e.PasswordValidator=class extends e.PatternValidator{constructor(e=h.PASSWORD){super(e)}hasErrors(e,t={}){return super.hasErrors(e,{...t,message:t.message||this.message,[u.PATTERN]:t?.pattern||g.PASSWORD.CHAR8_ONE_OF_EACH})}},e.PasswordValidator=r.__decorate([de(u.PASSWORD),r.__metadata("design:paramtypes",[Object])],e.PasswordValidator),e.RequiredValidator=class extends Y{constructor(e=h.REQUIRED){super(e)}hasErrors(e,t={}){switch(typeof e){case"boolean":case"number":return void 0===e?this.getMessage(t.message||this.message):void 0;default:return e?void 0:this.getMessage(t.message||this.message)}}},e.RequiredValidator=r.__decorate([de(u.REQUIRED),r.__metadata("design:paramtypes",[String])],e.RequiredValidator),e.StepValidator=class extends Y{constructor(e=h.STEP){super(e,"number","string")}hasErrors(e,t){if(void 0!==e)return Number(e)%Number(t.step)!==0?this.getMessage(t.message||this.message,t.step):void 0}},e.StepValidator=r.__decorate([de(u.STEP),r.__metadata("design:paramtypes",[String])],e.StepValidator),e.TypeValidator=class extends Y{constructor(e=h.TYPE){super(e)}hasErrors(e,t){if(void 0===e)return;const{type:r,message:a,customTypes:s}=t;let i=s||r;return i=(Array.isArray(i)?i:[i]).map(e=>"string"==typeof e?e:("function"!=typeof e||e.name||(e=e()),e.name||e)),z(e,i)?void 0:this.getMessage(a||this.message,"string"==typeof i?i:Array.isArray(i)?i.join(", "):i,typeof e)}},e.TypeValidator=r.__decorate([de(u.TYPE),r.__metadata("design:paramtypes",[String])],e.TypeValidator),K.register({validator:e.TypeValidator,validationKey:e.ModelKeys.TYPE,save:!1}),e.URLValidator=class extends e.PatternValidator{constructor(e=h.URL){super(e)}hasErrors(e,t={}){return super.hasErrors(e,{...t,message:t.message||this.message,pattern:t.pattern||g.URL})}},e.URLValidator=r.__decorate([de(u.URL),r.__metadata("design:paramtypes",[String])],e.URLValidator);class He{constructor(e,t,r){this.parent=e,this.attr=t,this.declaredType=r,this.decorators=[]}decorate(...e){for(const t of e){if(this.decorators.includes(t))throw Error(`Decorator "${t}" has already been used`);this.decorators.push(t)}return this.parent}undecorate(...e){for(const t of e){const e=this.decorators.indexOf(t);if(0>e)throw Error(`Decorator "${t}" is not applied to ${this.attr}`);this.decorators.splice(e,1)}return this.parent}required(e){const t=He.asMeta(e),r="string"==typeof e?e:He.resolveMessage(t);return this.decorate(he(r))}min(e,t){const r=He.asMeta(e),a=r?.[u.MIN]??(r?void 0:e);if(void 0===a)throw Error(`Missing ${u.MIN} for ${this.attr+""}`);return this.decorate(ge(a,He.resolveMessage(r,t)))}max(e,t){const r=He.asMeta(e),a=r?.[u.MAX]??(r?void 0:e);if(void 0===a)throw Error(`Missing ${u.MAX} for ${this.attr+""}`);return this.decorate(pe(a,He.resolveMessage(r,t)))}step(e,t){const r=He.asMeta(e),a=r?.[u.STEP]??(r?void 0:e);if(void 0===a)throw Error(`Missing ${u.STEP} for ${this.attr+""}`);return this.decorate(ye(a,He.resolveMessage(r,t)))}minlength(e,t){const r=He.asMeta(e),a=r?.[u.MIN_LENGTH]??(r?void 0:e);if(void 0===a)throw Error(`Missing ${u.MIN_LENGTH} for ${this.attr+""}`);return this.decorate(me(a,He.resolveMessage(r,t)))}maxlength(e,t){const r=He.asMeta(e),a=r?.[u.MAX_LENGTH]??(r?void 0:e);if(void 0===a)throw Error(`Missing ${u.MAX_LENGTH} for ${this.attr+""}`);return this.decorate(Ee(a,He.resolveMessage(r,t)))}pattern(e,t){const r=He.asMeta(e),a=r?.[u.PATTERN]??(r?void 0:e),s=He.patternFromString(a)??/.*/;return this.decorate(Te(s,He.resolveMessage(r,t)))}email(e){const t=He.asMeta(e),r="string"==typeof e?e:He.resolveMessage(t);return this.decorate(be(r))}url(e){const t=He.asMeta(e),r="string"==typeof e?e:He.resolveMessage(t);return this.decorate(Me(r))}type(e,t){const r=He.asMeta(e),a=r?.customTypes??r?.type??(r?void 0:e);return this.decorate(Ae(a,He.resolveMessage(r,t)))}date(e,t){const r=He.asMeta(e),a=r?.[u.FORMAT]??(r?void 0:e);return this.decorate(Ne(a,He.resolveMessage(r,t)))}password(e,t){const r=He.asMeta(e),a=r?.[u.PATTERN]??(r?void 0:e),s=He.patternFromString(a);return this.decorate(Oe(s,He.resolveMessage(r,t)))}list(e,t,r){const a=He.asMeta(e),s=a?.clazz??(a?void 0:e),i=a?.type??t;return this.decorate(_e(s,i,He.resolveMessage(a,r)))}set(e,t){return He.isMetadataPayload(e)?this.list(e):this.list(e,"Set",t)}enum(e,t){const r=He.asMeta(e),a=r?.[u.ENUM]??(r?void 0:e);return this.decorate(Ie(a,He.resolveMessage(r,t)))}option(e,t){return this.enum(e,t)}static isMetadataPayload(e){return!(!e||e instanceof Date||e instanceof RegExp||Array.isArray(e)||"object"!=typeof e)}static asMeta(e){return He.isMetadataPayload(e)?e:void 0}static resolveMessage(e,t){return e?.message??t}static patternFromString(e){if(!e)return;if(e instanceof RegExp)return e;const t=e.match(/^\/(.+)\/([gimsuy]*)$/);return t?RegExp(t[1],t[2]):RegExp(e)}resolveComparison(e,t,r){const a=He.asMeta(e);return a?{target:a[t],options:{label:a.label,message:a.message}}:{target:e,options:r}}equals(e,t){const{target:r,options:a}=this.resolveComparison(e,u.EQUALS,t);return this.decorate(Se(r,a))}eq(e,t){return this.equals(e,t)}different(e,t){const{target:r,options:a}=this.resolveComparison(e,u.DIFF,t);return this.decorate(Re(r,a))}diff(e,t){return this.different(e,t)}lessThan(e,t){const{target:r,options:a}=this.resolveComparison(e,u.LESS_THAN,t);return this.decorate(ve(r,a))}lt(e,t){return this.lessThan(e,t)}lessThanOrEqual(e,t){const{target:r,options:a}=this.resolveComparison(e,u.LESS_THAN_OR_EQUAL,t);return this.decorate(Pe(r,a))}lte(e,t){return this.lessThanOrEqual(e,t)}greaterThan(e,t){const{target:r,options:a}=this.resolveComparison(e,u.GREATER_THAN,t);return this.decorate(Le(r,a))}gt(e,t){return this.greaterThan(e,t)}greaterThanOrEqual(e,t){const{target:r,options:a}=this.resolveComparison(e,u.GREATER_THAN_OR_EQUAL,t);return this.decorate(De(r,a))}gte(e,t){return this.greaterThanOrEqual(e,t)}description(e){return this.decorate(t.description(e))}build(e){const r=e.prototype,a=this.attr;Object.getOwnPropertyDescriptor(r,a)||Object.defineProperty(r,a,{configurable:!0,enumerable:!0,writable:!0,value:void 0}),this.declaredType&&Reflect.defineMetadata(t.DecorationKeys.DESIGN_TYPE,this.declaredType,r,a),t.prop()(r,a),this.decorators.forEach(e=>{try{e(r,a)}catch(e){throw Error(`Failed to apply decorator to property "${this.attr}": ${e}`)}})}}class Ce{constructor(e,t,r){this.parent=e,this.attribute=t,this.collection=r}ofPrimitives(e,t){return this.attribute.list(e,this.collection,t),this.parent}ofModel(){const e=xe.builder(),t=e.build;let r;return this.attribute.list(()=>(r||(r=Reflect.apply(t,e,[])),r),this.collection),e.build=new Proxy(t,{apply:(e,t,a)=>(r=Reflect.apply(e,t,a),this.parent)}),e}}class xe extends a.ObjectAccumulator{constructor(){super(...arguments),this.attributes=new Map}setName(e){return this._name=e,this}description(e){return this._description=e,this}attribute(e,t){const r=this.attributes.get(e);if(r){if(r.declaredType!==t)throw Error(`Attribute "${e+""}" already exists with a different type`);return r}const a=new He(this,e,t);return this.attributes.set(e,a),a}string(e){return this.attribute(e,String)}number(e){return this.attribute(e,Number)}date(e){return this.attribute(e,Date)}bigint(e){return this.attribute(e,BigInt)}instance(e,t){return this.attribute(t,e)}model(e){const t=new xe;return t.build=new Proxy(t.build,{apply:(t,r,a)=>{const s=Reflect.apply(t,r,a);return this.instance(s,e)}}),t}listOf(e,t="Array"){const r="Set"===t?Set:Array,a=this.attribute(e,r);return new Ce(this,a,t)}build(){if(!this._name)throw Error("name is required");const e=this._parent??ce;class r extends e{constructor(e){super(e)}}Object.defineProperty(r,"name",{value:this._name,writable:!1});for(const e of this.attributes.values())e.build(r);let a=Ue()(r);return this._description&&(a=t.description(this._description)(a)),a}static builder(){return new xe}static from(e,t){if(!e)throw Error("metadata is required");const r=xe.builder(),a=t??"GeneratedModel"+Date.now();r.setName(a);const s=e.properties||{},i=e.validation||{};for(const[e,t]of Object.entries(s)){const a=r.attribute(e,t||Object),s=i[e];if(s)for(const[e,t]of Object.entries(s)){const r=a[e];if("function"!=typeof r)try{const r=K.decoratorFromKey(e),s="function"==typeof r?r(t):r;a.decorate(s)}catch{}else r.call(a,t)}}return r.build()}}const Fe="##VERSION##",ze="##PACKAGE##";t.Metadata.registerLibrary(ze,Fe),e.ASYNC_META_KEY=T,e.AsyncValidator=class extends ${constructor(e=h.DEFAULT,...t){super(!0,e,...t)}},e.AttributeBuilder=He,e.COMPARISON_ERROR_MESSAGES=m,e.ComparisonValidationKeys=d,e.DAYS_OF_WEEK_NAMES=f,e.DEFAULT_ERROR_MESSAGES=h,e.DEFAULT_PATTERNS=g,e.DefaultHashingMethod=P,e.DefaultSerializationMethod=i,e.Hashing=L,e.JSONSerializer=n,e.MONTH_NAMES=l,e.Model=ce,e.ModelBuilder=xe,e.ModelErrorDefinition=c,e.ModelRegistryManager=oe,e.PACKAGE_NAME=ze,e.PathProxyEngine=w,e.ReservedModels=ae,e.Serialization=o,e.VALIDATION_PARENT_KEY=E,e.VERSION=Fe,e.Validation=K,e.ValidationKeys=u,e.Validator=Y,e.ValidatorRegistry=q,e.async=()=>e=>{Object.prototype.hasOwnProperty.call(e,T)||(e[T]=!0)},e.bindDateToString=M,e.bindModelPrototype=Ve,e.bulkModelRegister=(...e)=>{e.forEach(e=>{const t=e.constructor?e.constructor:e;ce.register(t,e.name)})},e.checkType=x,e.checkTypes=F,e.construct=we,e.date=Ne,e.dateFromFormat=b,e.diff=Re,e.email=be,e.eq=Se,e.evaluateDesignTypes=z,e.findLastProtoBeforeObject=e=>{let t=Object.getPrototypeOf(e);if(t===Object.prototype)return e;for(;t!==Object.prototype;){if(t=Object.getPrototypeOf(t),t===Object.prototype)return t;if(Object.getPrototypeOf(t)===Object.prototype)return t}throw Error("Could not find proper prototype")},e.formatDate=O,e.gt=Le,e.gte=De,e.hashCode=R,e.hashObj=v,e.hashedBy=(r,...a)=>t.metadata(e.ModelKeys.HASHING,{algorithm:r,args:a}),e.innerValidationDecorator=fe,e.isEqual=S,e.isGreaterThan=C,e.isLessThan=H,e.isValidDate=A,e.isValidForGteOrLteComparison=U,e.jsTypes=se,e.list=_e,e.lt=ve,e.lte=Pe,e.max=pe,e.maxlength=Ee,e.min=ge,e.minlength=me,e.model=Ue,e.modelBaseDecorator=je,e.option=Ie,e.parseDate=_,e.password=Oe,e.pattern=Te,e.regexpParser=ue,e.required=he,e.serializedBy=(r,...a)=>t.metadata(e.ModelKeys.SERIALIZATION,{serializer:r,args:a}),e.set=(e,t=h.LIST)=>_e(e,"Set",t),e.sf=y,e.step=ye,e.stringFormat=p,e.toConditionalPromise=k,e.twoDigitPad=N,e.type=Ae,e.url=Me,e.validate=te,e.validateChildValue=W,e.validateDecorator=J,e.validateDecorators=ee,e.validationMetadata=le,e.validator=de,e.valueLength=G},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("tslib"),require("typed-object-accumulator")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","tslib","typed-object-accumulator"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["decorator-validation"]={},e.decafTsDecoration,e.tslib,e.typedObjectAccumulator);
1
+ var e,t;e=this,t=function(e,t,r,a){"use strict";var s;e.ModelKeys=void 0,(s=e.ModelKeys||(e.ModelKeys={})).DESCRIPTION="description",s.TYPE="design:type",s.MODEL="model",s.ANCHOR="__model",s.CONSTRUCTION="constructed-by",s.ATTRIBUTE="__attributes",s.HASHING="hashing",s.SERIALIZATION="serialization",s.DECORATORS="decorators",s.CONSTRUCTOR="__original";const i="json";class n{constructor(){}preSerialize(r,...a){const s=Object.assign({},r);let i;try{i=t.Metadata.modelName(r.constructor)}catch(e){i=void 0}return s[e.ModelKeys.ANCHOR]=i||r.constructor.name,s}deserialize(t,...r){const a=JSON.parse(t),s=a[e.ModelKeys.ANCHOR];if(!s)throw Error("Could not find class reference in serialized model");return ce.build(a,s)}serialize(e,...t){return JSON.stringify(this.preSerialize(e))}}class o{static{this.current=i}static{this.cache={json:new n}}constructor(){}static get(e){if(e in this.cache)return this.cache[e];throw Error("No serialization method registered under "+e)}static register(e,t,r=!1){if(e in this.cache)throw Error(`Serialization method ${e} already registered`);this.cache[e]=new t,r&&(this.current=e)}static serialize(e,t,...r){return t?this.get(t).serialize(e,...r):this.get(this.current).serialize(e,...r)}static deserialize(e,t,...r){return t?this.get(t).deserialize(e,...r):this.get(this.current).deserialize(e,...r)}static setDefault(e){this.current=this.get(e)}}class c{constructor(e){for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&e[t]&&Object.defineProperty(this,t,{enumerable:!0,configurable:!1,value:e[t],writable:!1})}toString(){const e=this;return Object.keys(e).filter((t=>Object.prototype.hasOwnProperty.call(e,t)&&"function"!=typeof e[t])).reduce(((t,r)=>{let a=Object.keys(e[r]).reduce(((t,a)=>(t?t+="\n"+e[r][a]:t=e[r][a],t)),void 0);return a&&(a=`${r} - ${a}`,t?t+="\n"+a:t=a),t}),"")}}const d={EQUALS:"equals",DIFF:"different",LESS_THAN:"lessThan",LESS_THAN_OR_EQUAL:"lessThanOrEqual",GREATER_THAN:"greaterThan",GREATER_THAN_OR_EQUAL:"greaterThanOrEqual"},u={REFLECT:"validation",DATE:"date",EMAIL:"email",FORMAT:"format",LIST:"list",MAX:"max",MAX_LENGTH:"maxlength",MIN:"min",MIN_LENGTH:"minlength",PASSWORD:"password",PATTERN:"pattern",REQUIRED:"required",STEP:"step",TYPE:"type",UNIQUE:"unique",URL:"url",VALIDATOR:"validator",ENUM:"enum",...d},l=["January","February","March","April","May","June","July","August","September","October","November","December"],f=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],h={REQUIRED:"This field is required",MIN:"The minimum value is {0}",MAX:"The maximum value is {0}",MIN_LENGTH:"The minimum length is {0}",MAX_LENGTH:"The maximum length is {0}",PATTERN:"The value does not match the pattern",EMAIL:"The value is not a valid email",URL:"The value is not a valid URL",TYPE:"Invalid type. Expected {0}, received {1}",STEP:"Invalid value. Not a step of {0}",DATE:"Invalid value. not a valid Date",DEFAULT:"There is an Error",PASSWORD:"Must be at least 8 characters and contain one of number, lower and upper case letters, and special character (@$!%*?&_-.,)",LIST:"Invalid list of {0}",MODEL_NOT_FOUND:"No model registered under {0}",EQUALS:"This field must be equal to field {0}",DIFF:"This field must be different from field {0}",LESS_THAN:"This field must be less than field {0}",LESS_THAN_OR_EQUAL:"This field must be less than or equal to field {0}",GREATER_THAN:"This field must be greater than field {0}",GREATER_THAN_OR_EQUAL:"This field must be greater than or equal to field {0}",UNIQUE:"Duplicate found, this field must be unique.",ENUM:"Value is not allowed. Must be one of {0}"},g={EMAIL:/[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?/,URL:/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i,PASSWORD:{CHAR8_ONE_OF_EACH:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&_\-.,])[A-Za-z\d@$!%*?&_\-.,]{8,}$/g}};function p(e,...t){return e.replace(/{(\d+)}/g,((e,r)=>void 0!==t[r]?t[r].toString():"undefined"))}const y=p,m={INVALID_PATH:"Invalid path argument. Expected non-empty string but received: '{0}'",CONTEXT_NOT_OBJECT_COMPARISON:"Unable to access parent at level {0} for path '{1}': current context is not an object",PROPERTY_INVALID:"Failed to resolve path {0}: property '{1}' is invalid or does not exist.",PROPERTY_NOT_EXIST:"Failed to resolve path: property '{0}' does not exist.",UNSUPPORTED_TYPES_COMPARISON:"Unsupported types for comparison: '{0}' and '{1}'",NULL_OR_UNDEFINED_COMPARISON:"Comparison failed due to null or undefined value",INVALID_DATE_COMPARISON:"Invalid Date objects are not comparable",TYPE_MISMATCH_COMPARISON:"Cannot compare values of different types: {0} and {1}.",NAN_COMPARISON:"Comparison not supported for NaN values"},E=Symbol("_parent"),T=Symbol("isAsync");function b(e,t){let r=t;r.match(/hh/)?r=r.replace("hh","(?<hour>\\d{2})"):r.match(/h/)?r=r.replace("h","(?<hour>\\d{1,2})"):r.match(/HH/)?r=r.replace("HH","(?<hour>\\d{2})"):r.match(/H/)&&(r=r.replace("H","(?<hour>\\d{1,2})")),r.match(/mm/)?r=r.replace("mm","(?<minutes>\\d{2})"):r.match(/m/)&&(r=r.replace("m","(?<minutes>\\d{1,2})")),r.match(/ss/)?r=r.replace("ss","(?<seconds>\\d{2})"):r.match(/s/)&&(r=r.replace("s","(?<seconds>\\d{1,2})")),r.match(/dd/)?r=r.replace("dd","(?<day>\\d{2})"):r.match(/d/)&&(r=r.replace("d","(?<day>\\d{1,2})")),r.match(/EEEE/)?r=r.replace("EEEE","(?<dayofweek>\\w+)"):r.match(/EEEE/)&&(r=r.replace("EEE","(?<dayofweek>\\w+)")),r.match(/yyyy/)?r=r.replace("yyyy","(?<year>\\d{4})"):r.match(/yy/)&&(r=r.replace("yy","(?<year>\\d{2})")),r.match(/MMMM/)?r=r.replace("MMMM","(?<monthname>\\w+)"):r.match(/MMM/)&&(r=r.replace("MMM","(?<monthnamesmall>\\w+)")),r.match(/MM/)?r=r.replace("MM","(?<month>\\d{2})"):r.match(/M/)&&(r=r.replace("M","(?<month>\\d{1,2})")),r=r.replace("S","(?<milis>\\d{1,3})").replace("aaa","(?<ampm>\\w{2})");const a=RegExp(r,"g").exec(e);if(!a||!a.groups)return new Date(e);const s=e=>{if(!e)return 0;const t=parseInt(e);return isNaN(t)?0:t},i=s(a.groups.year),n=s(a.groups.day),o=a.groups.ampm;let c=s(a.groups.hour);o&&(c="PM"===o?c+12:c);const d=s(a.groups.minutes),u=s(a.groups.seconds),f=s(a.groups.milis),h=a.groups.monthname,g=a.groups.monthnamesmall;let p=a.groups.month;if(h)p=l.indexOf(h);else if(g){const t=l.find((e=>e.toLowerCase().startsWith(g.toLowerCase())));if(!t)return new Date(e);p=l.indexOf(t)}else p=s(""+p);return new Date(i,p-1,n,c,d,u,f)}function M(e,t){if(e)return Object.defineProperty(e,"toISOString",{enumerable:!1,configurable:!1,value:new Proxy(e.toISOString,{apply:(e,r)=>O(r,t)})}),Object.defineProperty(e,"toString",{enumerable:!1,configurable:!1,value:new Proxy(e.toISOString,{apply:(e,r)=>O(r,t)})}),e}function A(e){return e&&"[object Date]"===Object.prototype.toString.call(e)&&!Number.isNaN(e)}function N(e){return 10>e?"0"+e:e.toString()}function O(e,t="yyyy/MM/dd"){const r=e.getDate(),a=e.getMonth(),s=e.getFullYear(),i=e.getHours(),n=e.getMinutes(),o=e.getSeconds(),c=e.getMilliseconds(),d=i%12,u=N(d),h=N(i),g=N(n),p=N(o),y=12>i?"AM":"PM",m=f[e.getDay()],E=m.substr(0,3),T=N(r),b=a+1,M=N(b),A=l[a],O=A.substr(0,3),_=s+"",S=_.substr(2,2);return(t=t.replace("hh",u).replace("h",d.toString()).replace("HH",h).replace("H",i.toString()).replace("mm",g).replace("m",n.toString()).replace("ss",p).replace("s",o.toString()).replace("S",c.toString()).replace("dd",T).replace("d",r.toString()).replace("EEEE",m).replace("EEE",E).replace("yyyy",_).replace("yy",S).replace("aaa",y)).indexOf("MMM")>-1?t.replace("MMMM",A).replace("MMM",O):t.replace("MM",M).replace("M",b.toString())}function _(e,t){let r;if(t){if(t instanceof Date)try{r=b(O(t,e),e)}catch(r){throw Error(y("Could not convert date {0} to format: {1}",t.toString(),e))}else if("string"==typeof t)r=b(t,e);else if("number"==typeof t)r=b(O(new Date(t),e),e);else{if(!A(t))throw Error("Invalid value provided "+t);try{r=b(O(new Date(t),e),e)}catch(r){throw Error(y("Could not convert date {0} to format: {1}",t,e))}}return M(r,e)}}function S(e,t,...r){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return e===t;if(typeof e!=typeof t)return!1;if(Number.isNaN(e)&&Number.isNaN(t))return!0;if("object"!=typeof e)return e===t;if(e instanceof Date&&t instanceof Date)return!(!isNaN(e.getTime())||!isNaN(t.getTime()))||e.getTime()===t.getTime();if(e instanceof RegExp&&t instanceof RegExp)return e.toString()===t.toString();if(e instanceof Error&&t instanceof Error)return e.name===t.name&&e.message===t.message;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let a=0;a<e.length;a++)if(!S(e[a],t[a],...r))return!1;return!0}if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[a,s]of e)if(!t.has(a)||!S(s,t.get(a),...r))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(e.byteLength!==t.byteLength)return!1;if(e.byteOffset!==t.byteOffset)return!1;if(e.buffer.byteLength!==t.buffer.byteLength)return!1;const r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),a=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);for(let e=0;e<r.length;e++)if(r[e]!==a[e])return!1;return!0}const a=Object.keys(e).filter((e=>!r.includes(e))),s=Object.keys(t).filter((e=>!r.includes(e)));if(a.length!==s.length)return!1;for(const i of a){if(!s.includes(i))return!1;if(!S(e[i],t[i],...r))return!1}const i=Object.getOwnPropertySymbols(e).filter((e=>!r.includes(e.toString()))),n=Object.getOwnPropertySymbols(t).filter((e=>!r.includes(e.toString())));if(i.length!==n.length)return!1;for(const a of i){if(!n.includes(a))return!1;if(!S(e[a],t[a],...r))return!1}return Object.getPrototypeOf(e)===Object.getPrototypeOf(t)}function R(e){e+="";let t=0;for(let r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r),t|=0;return t.toString()}function v(e){const t=(e,t)=>{const r=a(t);return"string"==typeof r?a((e||"")+a(t)):0|(e=((e=e||0)<<5)-e+r)},r=R,a=e=>void 0===e?"":-1!==["string","number","symbol"].indexOf(typeof e)?r(e.toString()):e instanceof Date?r(e.getTime()):Array.isArray(e)?e.reduce(t,void 0):Object.values(e).reduce(t,void 0),s=Object.values(e).reduce(t,0);return("number"==typeof s?Math.abs(s):s).toString()}const P="default";class L{static{this.current=P}static{this.cache={default:v}}constructor(){}static get(e){if(e in this.cache)return this.cache[e];throw Error("No hashing method registered under "+e)}static register(e,t,r=!1){if(e in this.cache)throw Error(`Hashing method ${e} already registered`);this.cache[e]=t,r&&(this.current=e)}static hash(e,t,...r){return t?this.get(t)(e,...r):this.get(this.current)(e,...r)}static setDefault(e){this.current=this.get(e)}}const D=e=>e[E],I=(e,t)=>{if(!Object.prototype.hasOwnProperty.call(e,t))throw Error(y(m.PROPERTY_NOT_EXIST,t));return e[t]};class w{static create(e,t){const{getValue:r,getParent:a,ignoreUndefined:s,ignoreNull:i}={getParent:D,getValue:I,ignoreNull:!1,ignoreUndefined:!1,...t};return new Proxy({},{get:(t,n)=>"getValueFromPath"===n?t=>{const n=w.parsePath(t);let o=e;for(let e=0;e<n.length;e++){const c=n[e];if(".."!==c){if(o=r(o,c),!s&&void 0===o)throw Error(y(m.PROPERTY_INVALID,t,c));if(!i&&null===o)throw Error(y(m.PROPERTY_INVALID,t,c))}else{const r=a(o);if(!r||"object"!=typeof r)throw Error(y(m.CONTEXT_NOT_OBJECT_COMPARISON,e+1,t));o=r}}return o}:t[n]})}static parsePath(e){if("string"!=typeof e||!e.trim())throw Error(y(m.INVALID_PATH,e));return e.match(/(\.\.|[^/.]+)/g)||[]}}const V=e=>null===e?"null":e instanceof Date?"Date":Number.isNaN(e)?"NaN":e===1/0?"Infinity":e===-1/0?"-Infinity":Array.isArray(e)?"array":typeof e,j=e=>void 0===e||e instanceof Date||"bigint"==typeof e||"number"==typeof e&&Number.isFinite(e);function U(e,t){if(j(e)&&j(t))return!0;throw new TypeError(y(m.UNSUPPORTED_TYPES_COMPARISON,V(e),V(t)))}function H(e,t){if([null,void 0].includes(e)||[null,void 0].includes(t))throw Error(m.NULL_OR_UNDEFINED_COMPARISON);const r=typeof e,a=typeof t;if(r!==a){if("bigint"===r&&"number"===a)return t>Number(e);if("number"===r&&"bigint"===a)return Number(t)>e;throw new TypeError(y(m.TYPE_MISMATCH_COMPARISON,r,a))}if("number"===r&&"number"===a||"bigint"===r&&"bigint"===a){if(Number.isNaN(e)||Number.isNaN(t))throw new TypeError(m.NAN_COMPARISON);return t>e}if(e instanceof Date&&t instanceof Date){if(isNaN(e.getTime())||isNaN(t.getTime()))throw new TypeError(m.INVALID_DATE_COMPARISON);return e.getTime()<t.getTime()}throw new TypeError(y(m.UNSUPPORTED_TYPES_COMPARISON,V(e),V(t)))}function C(e,t){if([null,void 0].includes(e)||[null,void 0].includes(t))throw Error(m.NULL_OR_UNDEFINED_COMPARISON);const r=typeof e,a=typeof t;if(r!==a){if("bigint"===r&&"number"===a)return Number(e)>t;if("number"===r&&"bigint"===a)return e>Number(t);throw Error(y(m.TYPE_MISMATCH_COMPARISON,r,a))}if("number"===r&&"number"===a||"bigint"===r&&"bigint"===a){if(Number.isNaN(e)||Number.isNaN(t))throw new TypeError(m.NAN_COMPARISON);return e>t}if(e instanceof Date&&t instanceof Date){if(isNaN(e.getTime())||isNaN(t.getTime()))throw new TypeError(m.INVALID_DATE_COMPARISON);return e.getTime()>t.getTime()}throw new TypeError(y(m.UNSUPPORTED_TYPES_COMPARISON,V(e),V(t)))}function x(e,t){return typeof e===t.toLowerCase()||void 0!==e&&"object"==typeof e&&e.constructor&&e.constructor.name.toLowerCase()===t.toLowerCase()}function F(e,t){return!t.every((t=>!x(e,t)))}function z(e,t){switch(typeof t){case"string":return x(e,t);case"object":return!Array.isArray(t)||F(e,t);case"function":return!t.name||"Object"===t.name||x(e,t.name);default:return!0}}function G(e){return e instanceof Set||e instanceof Map?e.size:e.length}class ${constructor(e,t=h.DEFAULT,...r){this.async=e,this.message=t,r.length&&(this.acceptedTypes=r),this.acceptedTypes&&(this.hasErrors=this.checkTypeAndHasErrors(this.hasErrors.bind(this)))}getMessage(e,...t){return y(e,...t)}checkTypeAndHasErrors(e){return function(t,r,a,...s){return void 0!==t&&this.acceptedTypes?F(t,this.acceptedTypes)?e(t,r,a,...s):this.getMessage(h.TYPE,this.acceptedTypes.join(", "),"number"!=typeof t?typeof t:isNaN(t)?"NaN":typeof t):e(t,r,a,...s)}.bind(this)}static isValidator(e){return e.constructor&&!!e.hasErrors}}class Y extends ${constructor(e=h.DEFAULT,...t){super(!1,e,...t)}}class q{constructor(...e){this.cache={},this.customKeyCache={},this.register(...e)}getCustomKeys(){return Object.assign({},this.customKeyCache)}getKeys(){return Object.keys(this.cache)}get(e){if(!(e in this.cache))return;const t=this.cache[e];if(Y.isValidator(t))return t;const r=new(t.default||t);return this.cache[e]=r,r}register(...e){e.forEach((e=>{if(Y.isValidator(e)){if(e.validationKey in this.cache)return;this.cache[e.validationKey]=e}else{const{validationKey:t,validator:r,save:a}=e;if(t in this.cache)return;if(this.cache[t]=r,!a)return;const s={};s[t.toUpperCase()]=t,this.customKeyCache=Object.assign({},this.customKeyCache,s)}}))}}class K{static{this.actingValidatorRegistry=void 0}constructor(){}static setRegistry(e,t){t&&K.actingValidatorRegistry&&K.actingValidatorRegistry.getKeys().forEach((r=>{const a=e.get(r);a&&e.register(t(a))})),K.actingValidatorRegistry=e}static getRegistry(){return K.actingValidatorRegistry||(K.actingValidatorRegistry=new q),K.actingValidatorRegistry}static get(e){return K.getRegistry().get(e)}static register(...e){return K.getRegistry().register(...e)}static key(e){return u.REFLECT+e}static keys(){return this.getRegistry().getKeys()}static registerDecorator(r,a){const s=t.Metadata.innerGet(Symbol.for(e.ModelKeys.DECORATORS),t.Metadata.key(u.REFLECT,r));s?.[r]||t.Metadata.set(e.ModelKeys.DECORATORS,t.Metadata.key(u.REFLECT,r),a)}static decoratorFromKey(r){try{return t.Metadata.innerGet(Symbol.for(e.ModelKeys.DECORATORS),t.Metadata.key(u.REFLECT,r))}catch(e){throw Error(`No decorator registered under ${r}: ${e}`)}}}function k(e,t){return t?Promise.resolve(e):e}function Q(e,t,r){Object.hasOwnProperty.call(e,t)||(e[t]=r)}function B(e,t){Object.hasOwnProperty.call(e,t)&&delete e[t]}function X(e,t,r,...a){t&&Q(e,E,t),Q(e,T,!!r);const s=e.hasErrors(...a);return B(e,E),B(e,T),s}function W(e,t,r,a,s,...i){let n,o=!1;for(const d of a){const a=ce.get(d);if(a||(n=new c({[e]:{[u.TYPE]:"Unable to verify type consistency, missing model registry for "+d}})),t instanceof a){o=!0,n=X(t,r,s,...i);break}}return o?n:n||new c({[e]:{[u.TYPE]:"Value must be an instance of one of the expected types: "+a.join(", ")}})}function Z(e,...t){return t?.map((t=>("string"==typeof t&&t?.startsWith(e+".")&&(t=t.replace(e+".","")),t)))}function J(t,r,a,s){const i=K.get(a.key);if(!i)throw Error("Missing validator for "+a.key);if(!s&&a.async)return;const n=a.key===e.ModelKeys.TYPE?[a]:a||{},o=w.create(t,{ignoreUndefined:!0,ignoreNull:!0}),c=a.key===e.ModelKeys.TYPE?n[0]:n;return k(i.hasErrors(r,c,o),s)}function ee(t,r,a,s,i,...n){const o={};for(const c in s){const d={...s[c],key:c};if(!i&&d.async)continue;let l=J(t,a,d,i);if(c===u.LIST&&(!l||i)){const e=a instanceof Set?[...a]:a;if(e&&e.length>0){let a=d.class||d.clazz||d.customTypes;a=(Array.isArray(a)?a:[a]).map((e=>(e="function"!=typeof e||e.name?e:e()).name?e.name:e));const s=[a].flat().map((e=>(e+"").toLowerCase())),o=e.map((e=>{if(ce.isModel(e)){const s=Z(r,...n);return W(r,e,t,a.flat(),!!i,...s)}return s.includes(typeof e)?void 0:"Value has no validatable type"}));if(i)l=Promise.all(o).then((e=>e.every((e=>!e))?void 0:e));else{const e=o.every((e=>!e));l=o.length>0&&!e?o:void 0}}}const f=c===e.ModelKeys.TYPE?u.TYPE:c;l&&(o[f]=l)}if(!i)return Object.keys(o).length>0?o:void 0;const c=Object.keys(o),d=Object.values(o);return Promise.all(d).then((e=>{const t={};for(let r=0;r<e.length;r++){const a=e[r];void 0!==a&&(t[c[r]]=a)}return Object.keys(t).length>0?t:void 0}))}function te(r,a,...s){const i=t.Metadata.validatableProperties(r.constructor,...s),n={},o={};for(const c of i){const i=c+"",d=r[c],l=t.Metadata.validationFor(r.constructor,c)||{},{designTypes:f,designType:h}=t.Metadata.getPropDesignTypes(r.constructor,c);if(!f)continue;if(f.some((e=>[Array.name,Set.name].includes(e.name)))){if(!l||!Object.keys(l).includes(u.LIST)){n[i]={[u.TYPE]:`Array or Set property '${i}' requires a @list decorator`};continue}if(d&&!(Array.isArray(d)||d instanceof Set)){n[i]={[u.TYPE]:`Property '${c+""}' must be either an Array or a Set`};continue}}const g=ee(r,i,d,l,a,...s)||{};if(ce.isPropertyModel(r,i)&&null!=d){const t=d,n=(Array.isArray(h)?f:[h]).map((e=>("function"!=typeof e||e.name||(e=e()),ce.get(e.name||e)))).find((e=>!!e));if(n&&t instanceof n){const e=Z(i,...s);o[i]=X(t,r,a,...e)}else g[u.TYPE]=n?"Value must be an instance of "+n.name:`Unable to verify type consistency, missing model registry for ${f.toString()} on prop ${i}`,delete g[e.ModelKeys.TYPE]}(Object.keys(g).length>0||a)&&(n[i]=g),a||Object.entries(o[i]||{}).forEach((([e,t])=>{void 0!==t&&(n[`${i}.${e}`]=t)}))}if(!a)return Object.keys(n).length>0?new c(n):void 0;const d=n,l=Object.keys(d),f=Object.values(d);return Promise.allSettled(f).then((async e=>{const t={};for(const[e,r]of Object.entries(o)){const a=await r;a&&Object.entries(a).forEach((([r,a])=>{void 0!==a&&(t[[e,r].join(".")]=a)}))}for(let r=0;r<e.length;r++){const a=l[r],s=e[r];"fulfilled"===s.status&&void 0!==s.value?t[a]=s.value:"rejected"===s.status&&(t[a]=s.reason instanceof Error?s.reason.message:(s.reason||"Validation failed")+"")}return Object.keys(t).length>0?new c(t):void 0}))}var re;e.Primitives=void 0,(re=e.Primitives||(e.Primitives={})).STRING="string",re.NUMBER="number",re.BOOLEAN="boolean",re.BIGINT="bigint";const ae={STRING:String,OBJECT:Object,NUMBER:Number,BOOLEAN:Boolean,BIGINT:BigInt,DATE:Date},se=["string","array","number","boolean","symbol","function","object","undefined","null","bigint"];let ie,ne;class oe{constructor(e=ce.isModel){this.cache={},this.testFunction=e}register(e,t){if("function"!=typeof e)throw Error("Model registering failed. Missing Class name or constructor");t=t||e.name,this.cache[t]=e}get(e){try{return this.cache[e]}catch(e){return}}build(e={},r){if(!r&&!this.testFunction(e))throw Error("Provided obj is not a Model object");const a=r||t.Metadata.modelName(e.constructor);if(!(a in this.cache))throw Error(`Provided class ${a} is not a registered Model object`);return new this.cache[a](e)}}class ce{constructor(e=void 0){}isAsync(){return!!(this[T]??this?.constructor[T])}hasErrors(...e){return te(this,this.isAsync(),...e)}equals(e,...t){return S(this,e,...t)}compare(e,...r){const a=t.Metadata.properties(this.constructor);if(!a||!a.length)return;const s=a.reduce(((t,a)=>{const s=a;if(r.includes(s))return t;if(S(this[s],e[s]))return t;if(void 0===this[s]&&void 0!==e[s])return t[s]={other:e[s],current:void 0},t;if(void 0!==this[s]&&void 0===e[s])return t[s]={other:void 0,current:this[s]},t;if(ce.isPropertyModel(this,s)){const r=this[s].compare(e[s]);return r&&(t[s]=r),t}if(Array.isArray(this[s])&&Array.isArray(e[s])){if(this[s].length!==e[s].length)return t[s]={current:this[s],other:e[s]},t;const r=this[s].map(((t,r)=>S(t,e[s][r])?null:t instanceof ce&&e[s][r]instanceof ce?t.compare(e[s][r]):{current:t,other:e[s][r]}));return r.some((e=>null!==e))&&(t[s]=r),t}return t[s]={other:e[s],current:this[s]},t}),{});return Object.keys(s).length>0?s:void 0}serialize(){return ce.serialize(this)}toString(){return this.constructor.name+": "+JSON.stringify(this,void 0,2)}hash(){return ce.hash(this)}static deserialize(r){let a;try{a=t.Metadata.get(this.constructor,e.ModelKeys.SERIALIZATION)}catch(e){a=void 0}return a&&a.serializer?o.deserialize(r,a.serializer,...a.args||[]):o.deserialize(r)}static fromObject(e,t){t||(t={});for(const r of ce.getAttributes(e))e[r]=t[r]??e[r]??void 0;return e}static fromModel(e,r){let a;r||(r={});const s=ce.getAttributes(e),i=Object.getPrototypeOf(e);let n;for(const o of s){try{e[o]=r[o]??e[o]??void 0}catch(e){if(n=Object.getOwnPropertyDescriptor(i,o),!n||n.writable)throw Error(`Unable to write property ${o} to model: ${e}`)}if("object"!=typeof e[o])continue;const s=ce.isPropertyModel(e,o);if(s){try{e[o]=ce.build(e[o],"string"==typeof s?s:void 0)}catch(e){}continue}if(a=t.Metadata.allowedTypes(e.constructor,o),!a||!a.length)throw Error("failed to find decorators for property "+o);const c=a.map((e=>"function"!=typeof e||e.name?e:e())),d=Object.values(ae);c.forEach((r=>{if(!d.includes(r))try{switch(r.name){case"Array":case"Set":{const a=t.Metadata.validationFor(e.constructor,o);if(!a||!a[u.LIST])break;const s=a[u.LIST].clazz.map((e=>"function"!=typeof e||e.name?e:e())).find((e=>!se.includes(e.name)));if("Array"===r.name&&(e[o]=e[o].map((e=>["object","function"].includes(typeof e)&&s?ce.build(e,s.name):e))),"Set"===r.name){const t=new Set;for(const r of e[o])["object","function"].includes(typeof r)&&s?t.add(ce.build(r,s.name)):t.add(r);e[o]=t}break}default:void 0!==e[o]&&ce.get(r.name)&&(e[o]=ce.build(e[o],r.name))}}catch(e){}}))}return e}static setBuilder(e){ie=e}static getBuilder(){return ie||ce.fromModel}static getRegistry(){return ne||(ne=new oe),ne}static setRegistry(e){ne=e}static register(e,t){return ce.getRegistry().register(e,t)}static get(e){return ce.getRegistry().get(e)}static build(e={},t){return ce.getRegistry().build(e,t)}static getAttributes(e){const r=e instanceof ce?e.constructor:e,a=new Set,s=e=>{if(!e)return[];const r=s(Object.getPrototypeOf(e)),i=t.Metadata.properties(e)??[];for(const e of i)a.has(e)||(a.add(e),r.push(e));return r};return s(r)}static equals(e,t,...r){return S(e,t,...r)}static hasErrors(e,t,...r){return te(e,t,...r)}static serialize(r){let a;try{a=t.Metadata.get(r.constructor,e.ModelKeys.SERIALIZATION)}catch(e){a=void 0}return a&&a.serializer?o.serialize(this,a.serializer,...a.args||[]):o.serialize(r)}static hash(r){const a=t.Metadata.get(r.constructor,e.ModelKeys.HASHING);return a&&a.algorithm?L.hash(r,a.algorithm,...a.args||[]):L.hash(r)}static isModel(e){try{if(e instanceof ce)return!0;const r=t.Metadata.constr(e);return!(!r||r===e||!t.Metadata.modelName(r))}catch(e){return!1}}static isPropertyModel(e,r){if(ce.isModel(e[r]))return!0;const a=t.Metadata.type(e.constructor,r);return a&&ce.get(a.name)?a.name:void 0}static describe(e,r){return t.Metadata.description(e,r)}}function de(...e){return t.apply((t=>(e.forEach((e=>{K.register({validator:t,validationKey:e,save:!0})})),t)),t.metadata(u.VALIDATOR,e))}t.Metadata.validationFor=((e,r,a)=>{const s=t.Metadata.get(e);if(!s)return;if(!r)return s.validation;if(!s.validation)return;if(!s.validation[u.TYPE]){const{designTypes:a}=t.Metadata.getPropDesignTypes(e,r);s.validation[r]&&a?.length&&a[0]!==ae.OBJECT&&(s.validation[r][u.TYPE]={customTypes:a,message:h.TYPE,description:"defines the accepted types for the attribute",async:!1})}if(!a)return s.validation[r];const i=s.validation[r];return i?i[a]:void 0}).bind(t.Metadata),t.Metadata.modelName=(e=>{const r=t.Metadata.constr(e);return r?r.name:e.name}).bind(t.Metadata),t.Metadata.validatableProperties=((e,...r)=>{const a=t.Metadata.validationFor(e),s=a?Object.keys(a):[];return[...new Set([...ce.getAttributes(e),...s])].filter((e=>!r||!r?.includes(e)))}).bind(t.Metadata),t.Metadata.allowedTypes=((e,r)=>{const a=t.Metadata.type(e,r);if(!a)throw Error("No metadata found for property "+r);const s=t.Metadata.validationFor(e,r);return s&&s[u.TYPE]&&"function"==typeof s[u.TYPE]?.customTypes[Symbol.iterator]?[...s[u.TYPE].customTypes]:[a]}).bind(t.Metadata),t.Metadata.getPropDesignTypes=((e,r)=>{const a=t.Metadata.get(e),s=t.Metadata.type(e,r),i=a?.[u.REFLECT]?.[r];if(!(s||i&&i[u.TYPE]))return{};const n=i&&i[u.TYPE]?[i[u.TYPE].customTypes]:[s];if(!n?.length)return{};const o=n[0],c=o.class||o.clazz||o.customTypes||o;return{designTypes:(Array.isArray(c)?c:[c]).map((e=>"function"!=typeof e||e.name?e:e())),designType:c}}).bind(t.Metadata),e.DateValidator=class extends Y{constructor(e=h.DATE){super(e,Number.name,Date.name,String.name)}hasErrors(e,t={}){if(void 0!==e&&("string"==typeof e&&(e=new Date(e)),Number.isNaN(e.getDate()))){const{message:e=""}=t;return this.getMessage(e||this.message)}}},e.DateValidator=r.__decorate([de(u.DATE),r.__metadata("design:paramtypes",[String])],e.DateValidator),e.DiffValidator=class extends Y{constructor(e=h.DIFF){super(e)}hasErrors(e,t,r){let a;try{a=r.getValueFromPath(t[u.DIFF])}catch(e){return this.getMessage(e.message||this.message)}return S(e,a)?this.getMessage(t.message||this.message,t.label||t[u.DIFF]):void 0}},e.DiffValidator=r.__decorate([de(u.DIFF),r.__metadata("design:paramtypes",[String])],e.DiffValidator);const ue=RegExp("^/(.+)/([gimus]*)$");function le(e,r,a){return t.apply(t.propMetadata(r,a))}function fe(e,t,r){return K.registerDecorator(t,e),(e,a)=>le(0,`${u.REFLECT}.${a}.${t}`,r)(e,a)}function he(e=h.REQUIRED){const r=u.REQUIRED,a={message:e,description:"defines the attribute as required",async:!1};return t.Decoration.for(r).define({decorator:fe,args:[he,r,a]}).apply()}function ge(e,r=h.MIN){const a=u.MIN,s={[u.MIN]:e,message:r,description:`defines the max value of the attribute as ${e} (applies to numbers or Dates)`,async:!1};return t.Decoration.for(a).define({decorator:fe,args:[ge,a,s]}).apply()}function pe(e,r=h.MAX){const a=u.MAX,s={[u.MAX]:e,message:r,description:`defines the max value of the attribute as ${e} (applies to numbers or Dates)`,async:!1};return t.Decoration.for(a).define({decorator:fe,args:[pe,a,s]}).apply()}function ye(e,r=h.STEP){const a=u.STEP,s={[u.STEP]:e,message:r,description:"defines the step of the attribute as "+e,async:!1};return t.Decoration.for(a).define({decorator:fe,args:[ye,a,s]}).apply()}function me(e,r=h.MIN_LENGTH){const a=u.MIN_LENGTH,s={[u.MIN_LENGTH]:e,message:r,description:`defines the min length of the attribute as ${e} (applies to strings or lists)`,async:!1};return t.Decoration.for(a).define({decorator:fe,args:[me,a,s]}).apply()}function Ee(e,r=h.MAX_LENGTH){const a=u.MAX_LENGTH,s={[u.MAX_LENGTH]:e,message:r,description:`defines the max length of the attribute as ${e} (applies to strings or lists)`,async:!1};return t.Decoration.for(a).define({decorator:fe,args:[Ee,a,s]}).apply()}function Te(e,r=h.PATTERN){const a=u.PATTERN,s={[u.PATTERN]:"string"==typeof e?e:e.toString(),message:r,description:`assigns the ${"string"===e?e:e.toString()} pattern to the attribute`,async:!1};return t.Decoration.for(a).define({decorator:fe,args:[Te,a,s]}).apply()}function be(e=h.EMAIL){const r=u.EMAIL,a={[u.PATTERN]:g.EMAIL.toString(),message:e,description:"marks the attribute as an email",async:!1};return t.Decoration.for(r).define({decorator:fe,args:[be,r,a]}).apply()}function Me(e=h.URL){const r=u.URL,a={[u.PATTERN]:g.URL.toString(),message:e,description:"marks the attribute as an url",async:!1};return t.Decoration.for(r).define({decorator:fe,args:[Me,r,a]}).apply()}function Ae(e,r=h.TYPE){const a=u.TYPE,s={customTypes:e,message:r,description:"defines the accepted types for the attribute",async:!1};return t.Decoration.for(a).define({decorator:fe,args:[Ae,a,s]}).apply()}function Ne(e="dd/MM/yyyy",r=h.DATE){const a=u.DATE;return t.Decoration.for(a).define({decorator:function(e,t){const r={[u.FORMAT]:e,message:t,description:"defines the attribute as a date with the format "+e,async:!1};return function(t,s){const i=new WeakMap;return Object.defineProperty(t,s,{configurable:!0,set(t){const r=Object.getOwnPropertyDescriptor(this,s);r&&!r.configurable||Object.defineProperty(this,s,{enumerable:!0,configurable:!1,get:()=>i.get(this),set:t=>{let r;try{r=_(e,t),i.set(this,r)}catch(e){}}}),this[s]=t},get(){return i.get(this)}}),fe(Ne,a,r)(t,s)}},args:[e,r]}).apply()}function Oe(e=g.PASSWORD.CHAR8_ONE_OF_EACH,r=h.PASSWORD){const a=u.PASSWORD,s={[u.PATTERN]:e.toString(),message:r,description:"attribute as a password",async:!1};return t.Decoration.for(a).define({decorator:fe,args:[Oe,a,s]}).apply()}function _e(e,r="Array",a=h.LIST){const s=u.LIST,i={clazz:Array.isArray(e)?e:[e],type:r,message:a,async:!1,description:`defines the attribute as a ${r} of ${e.name}`};return t.Decoration.for(s).define({decorator:fe,args:[_e,s,i]}).apply()}function Se(e,t){return fe(Se,u.EQUALS,{label:t?.label||e,message:t?.message||h.EQUALS,[u.EQUALS]:e,description:"defines attribute as equal to "+e,async:!1})}function Re(e,t){return fe(Re,u.DIFF,{label:t?.label||e,message:t?.message||h.DIFF,[u.DIFF]:e,description:"defines attribute as different to "+e,async:!1})}function ve(e,t){return fe(ve,u.LESS_THAN,{label:t?.label||e,message:t?.message||h.LESS_THAN,[u.LESS_THAN]:e,description:"defines attribute as less than to "+e,async:!1})}function Pe(e,t){return fe(Pe,u.LESS_THAN_OR_EQUAL,{label:t?.label||e,message:t?.message||h.LESS_THAN_OR_EQUAL,[u.LESS_THAN_OR_EQUAL]:e,description:"defines attribute as less or equal to "+e,async:!1})}function Le(e,t){return fe(Le,u.GREATER_THAN,{label:t?.label||e,message:t?.message||h.GREATER_THAN,[u.GREATER_THAN]:e,description:"defines attribute as greater than "+e,async:!1})}function De(e,t){return fe(De,u.GREATER_THAN_OR_EQUAL,{label:t?.label||e,message:t?.message||h.GREATER_THAN_OR_EQUAL,[u.GREATER_THAN_OR_EQUAL]:e,description:"defines attribute as greater or equal to "+e,async:!1})}function Ie(e,r=h.ENUM){const a=u.ENUM,s={[u.ENUM]:e,message:r,description:"defines a list or an object of accepted values for the attribute",async:!1};return t.Decoration.for(a).define({decorator:fe,args:[Ie,a,s]}).apply()}function we(e,...t){const r=(...t)=>new e(...t);return r.prototype=e.prototype,r(...t)}function Ve(e){if(e instanceof ce)return;function t(e,t){Object.setPrototypeOf(e,t)}const r=Object.getPrototypeOf(e);if(r===Object.prototype)return t(e,ce.prototype);for(;r!==Object.prototype;){const e=Object.getPrototypeOf(r);if(e===Object.prototype||Object.getPrototypeOf(e)===Object.prototype)return t(r,ce.prototype)}throw Error("Could not find proper prototype to bind")}function je(r){const a=(...e)=>{const t=we(r,...e);Ve(t);const a=ce.getBuilder();return a&&a(t,e.length?e[0]:void 0),t};return a.prototype=r.prototype,Object.defineProperty(a,"name",{writable:!1,enumerable:!0,configurable:!1,value:r.prototype.constructor.name}),t.metadata(e.ModelKeys.CONSTRUCTOR,r)(a),ce.register(a,r.name),a}function Ue(){const r=e.ModelKeys.MODEL;return t.Decoration.for(r).define(je).apply()}e.PatternValidator=class extends Y{constructor(e=h.PATTERN){super(e,"string")}getPattern(e){if(!ue.test(e))return RegExp(e);const t=e.match(ue);return RegExp(t[1],t[2])}hasErrors(e,t){if(!e)return;let{pattern:r}=t;if(!r)throw Error("Missing Pattern");return r="string"==typeof r?this.getPattern(r):r,r.lastIndex=0,r.test(e)?void 0:this.getMessage(t.message||this.message)}},e.PatternValidator=r.__decorate([de(u.PATTERN),r.__metadata("design:paramtypes",[String])],e.PatternValidator),e.EmailValidator=class extends e.PatternValidator{constructor(e=h.EMAIL){super(e)}hasErrors(e,t={}){return super.hasErrors(e,{...t,message:t.message||this.message,pattern:t?.pattern||g.EMAIL})}},e.EmailValidator=r.__decorate([de(u.EMAIL),r.__metadata("design:paramtypes",[String])],e.EmailValidator),e.EqualsValidator=class extends Y{constructor(e=h.EQUALS){super(e)}hasErrors(e,t,r){let a;try{a=r.getValueFromPath(t[u.EQUALS])}catch(e){return this.getMessage(e.message||this.message)}return S(e,a)?void 0:this.getMessage(t.message||this.message,t.label||t[u.EQUALS])}},e.EqualsValidator=r.__decorate([de(u.EQUALS),r.__metadata("design:paramtypes",[String])],e.EqualsValidator),e.GreaterThanValidator=class extends Y{constructor(e=h.GREATER_THAN){super(e)}hasErrors(e,t,r){let a;try{a=r.getValueFromPath(t[u.GREATER_THAN])}catch(e){return this.getMessage(e.message||this.message)}try{if(!C(e,a))throw Error(t.message||this.message)}catch(e){return this.getMessage(e.message,t.label||t[u.GREATER_THAN])}}},e.GreaterThanValidator=r.__decorate([de(u.GREATER_THAN),r.__metadata("design:paramtypes",[String])],e.GreaterThanValidator),e.GreaterThanOrEqualValidator=class extends Y{constructor(e=h.GREATER_THAN_OR_EQUAL){super(e)}hasErrors(e,t,r){let a;try{a=r.getValueFromPath(t[u.GREATER_THAN_OR_EQUAL])}catch(e){return this.getMessage(e.message||this.message)}try{if(U(e,a)&&S(e,a)||C(e,a))return;throw Error(t.message||this.message)}catch(e){return this.getMessage(e.message,t.label||t[u.GREATER_THAN_OR_EQUAL])}}},e.GreaterThanOrEqualValidator=r.__decorate([de(u.GREATER_THAN_OR_EQUAL),r.__metadata("design:paramtypes",[String])],e.GreaterThanOrEqualValidator),e.LessThanValidator=class extends Y{constructor(e=h.LESS_THAN){super(e)}hasErrors(e,t,r){let a;try{a=r.getValueFromPath(t[u.LESS_THAN])}catch(e){return this.getMessage(e.message||this.message)}try{if(!H(e,a))throw Error(t.message||this.message)}catch(e){return this.getMessage(e.message,t.label||t[u.LESS_THAN])}}},e.LessThanValidator=r.__decorate([de(u.LESS_THAN),r.__metadata("design:paramtypes",[String])],e.LessThanValidator),e.LessThanOrEqualValidator=class extends Y{constructor(e=h.LESS_THAN_OR_EQUAL){super(e)}hasErrors(e,t,r){let a;try{a=r.getValueFromPath(t[u.LESS_THAN_OR_EQUAL])}catch(e){return this.getMessage(e.message||this.message)}try{if(U(e,a)&&S(e,a)||H(e,a))return;throw Error(t.message||this.message)}catch(e){return this.getMessage(e.message,t.label||t[u.LESS_THAN_OR_EQUAL])}}},e.LessThanOrEqualValidator=r.__decorate([de(u.LESS_THAN_OR_EQUAL),r.__metadata("design:paramtypes",[String])],e.LessThanOrEqualValidator),e.ListValidator=class extends Y{constructor(e=h.LIST){super(e,Array.name,Set.name)}hasErrors(e,t){if(!e||(Array.isArray(e)?!e.length:!e.size))return;const r=(Array.isArray(t.clazz)?t.clazz:[t.clazz]).map((e=>"string"==typeof e?e:e?.name||"function"!=typeof e?e?.name:e().name));let a,s=!0;for(let t=0;t<(Array.isArray(e)?e.length:e.size);t++)switch(a=[...e][t],typeof a){case"object":case"function":s=r.includes((a??{}).constructor?.name);break;default:s=r.some((e=>typeof a===e?.toLowerCase()))}return s?void 0:this.getMessage(t.message||this.message,r)}},e.ListValidator=r.__decorate([de(u.LIST),r.__metadata("design:paramtypes",[String])],e.ListValidator),e.MaxLengthValidator=class extends Y{constructor(e=h.MAX_LENGTH){super(e,String.name,Array.name,Set.name,Map.name)}hasErrors(e,t){if(void 0!==e)return G(e)>t.maxlength?this.getMessage(t.message||this.message,t.maxlength):void 0}},e.MaxLengthValidator=r.__decorate([de(u.MAX_LENGTH),r.__metadata("design:paramtypes",[String])],e.MaxLengthValidator),e.MaxValidator=class extends Y{constructor(e=h.MAX){super(e,Number.name,Date.name,String.name)}hasErrors(e,t){if(void 0===e)return;let{max:r}=t;if(e instanceof Date&&!(r instanceof Date)&&(r=new Date(r),Number.isNaN(r.getDate())))throw Error("Invalid Max param defined");return e>r?this.getMessage(t.message||this.message,r):void 0}},e.MaxValidator=r.__decorate([de(u.MAX),r.__metadata("design:paramtypes",[String])],e.MaxValidator),e.MinLengthValidator=class extends Y{constructor(e=h.MIN_LENGTH){super(e,String.name,Array.name,Set.name,Map.name)}hasErrors(e,t){if(void 0!==e)return G(e)<t.minlength?this.getMessage(t.message||this.message,t.minlength):void 0}},e.MinLengthValidator=r.__decorate([de(u.MIN_LENGTH),r.__metadata("design:paramtypes",[String])],e.MinLengthValidator),e.MinValidator=class extends Y{constructor(e=h.MIN){super(e,Number.name,Date.name,String.name)}hasErrors(e,t){if(void 0===e)return;let{min:r}=t;if(e instanceof Date&&!(r instanceof Date)&&(r=new Date(r),Number.isNaN(r.getDate())))throw Error("Invalid Min param defined");return r>e?this.getMessage(t.message||this.message,r):void 0}},e.MinValidator=r.__decorate([de(u.MIN),r.__metadata("design:paramtypes",[String])],e.MinValidator),e.OptionValidator=class extends Y{constructor(e=h.ENUM){super(e)}hasErrors(e,t){if(void 0!==e){if(Array.isArray(t.enum))return t.enum.includes(e)?void 0:this.getMessage(t.message||this.message,t.enum);if("object"==typeof t.enum){const r=Object.keys(t.enum);for(const a of r)if(t.enum[a]===e)return;return this.getMessage(t.message||this.message,Object.values(t.enum))}}}},e.OptionValidator=r.__decorate([de(u.ENUM),r.__metadata("design:paramtypes",[String])],e.OptionValidator),e.PasswordValidator=class extends e.PatternValidator{constructor(e=h.PASSWORD){super(e)}hasErrors(e,t={}){return super.hasErrors(e,{...t,message:t.message||this.message,[u.PATTERN]:t?.pattern||g.PASSWORD.CHAR8_ONE_OF_EACH})}},e.PasswordValidator=r.__decorate([de(u.PASSWORD),r.__metadata("design:paramtypes",[Object])],e.PasswordValidator),e.RequiredValidator=class extends Y{constructor(e=h.REQUIRED){super(e)}hasErrors(e,t={}){switch(typeof e){case"boolean":case"number":return void 0===e?this.getMessage(t.message||this.message):void 0;default:return e?void 0:this.getMessage(t.message||this.message)}}},e.RequiredValidator=r.__decorate([de(u.REQUIRED),r.__metadata("design:paramtypes",[String])],e.RequiredValidator),e.StepValidator=class extends Y{constructor(e=h.STEP){super(e,"number","string")}hasErrors(e,t){if(void 0!==e)return Number(e)%Number(t.step)!=0?this.getMessage(t.message||this.message,t.step):void 0}},e.StepValidator=r.__decorate([de(u.STEP),r.__metadata("design:paramtypes",[String])],e.StepValidator),e.TypeValidator=class extends Y{constructor(e=h.TYPE){super(e)}hasErrors(e,t){if(void 0===e)return;const{type:r,message:a,customTypes:s}=t;let i=s||r;return i=(Array.isArray(i)?i:[i]).map((e=>"string"==typeof e?e:("function"!=typeof e||e.name||(e=e()),e.name||e))),z(e,i)?void 0:this.getMessage(a||this.message,"string"==typeof i?i:Array.isArray(i)?i.join(", "):i,typeof e)}},e.TypeValidator=r.__decorate([de(u.TYPE),r.__metadata("design:paramtypes",[String])],e.TypeValidator),K.register({validator:e.TypeValidator,validationKey:e.ModelKeys.TYPE,save:!1}),e.URLValidator=class extends e.PatternValidator{constructor(e=h.URL){super(e)}hasErrors(e,t={}){return super.hasErrors(e,{...t,message:t.message||this.message,pattern:t.pattern||g.URL})}},e.URLValidator=r.__decorate([de(u.URL),r.__metadata("design:paramtypes",[String])],e.URLValidator);class He{constructor(e,t,r){this.parent=e,this.attr=t,this.declaredType=r,this.decorators=[]}decorate(...e){for(const t of e){if(this.decorators.includes(t))throw Error(`Decorator "${t}" has already been used`);this.decorators.push(t)}return this.parent}undecorate(...e){for(const t of e){const e=this.decorators.indexOf(t);if(0>e)throw Error(`Decorator "${t}" is not applied to ${this.attr}`);this.decorators.splice(e,1)}return this.parent}required(e){const t=He.asMeta(e),r="string"==typeof e?e:He.resolveMessage(t);return this.decorate(he(r))}min(e,t){const r=He.asMeta(e),a=r?.[u.MIN]??(r?void 0:e);if(void 0===a)throw Error(`Missing ${u.MIN} for ${this.attr+""}`);return this.decorate(ge(a,He.resolveMessage(r,t)))}max(e,t){const r=He.asMeta(e),a=r?.[u.MAX]??(r?void 0:e);if(void 0===a)throw Error(`Missing ${u.MAX} for ${this.attr+""}`);return this.decorate(pe(a,He.resolveMessage(r,t)))}step(e,t){const r=He.asMeta(e),a=r?.[u.STEP]??(r?void 0:e);if(void 0===a)throw Error(`Missing ${u.STEP} for ${this.attr+""}`);return this.decorate(ye(a,He.resolveMessage(r,t)))}minlength(e,t){const r=He.asMeta(e),a=r?.[u.MIN_LENGTH]??(r?void 0:e);if(void 0===a)throw Error(`Missing ${u.MIN_LENGTH} for ${this.attr+""}`);return this.decorate(me(a,He.resolveMessage(r,t)))}maxlength(e,t){const r=He.asMeta(e),a=r?.[u.MAX_LENGTH]??(r?void 0:e);if(void 0===a)throw Error(`Missing ${u.MAX_LENGTH} for ${this.attr+""}`);return this.decorate(Ee(a,He.resolveMessage(r,t)))}pattern(e,t){const r=He.asMeta(e),a=r?.[u.PATTERN]??(r?void 0:e),s=He.patternFromString(a)??/.*/;return this.decorate(Te(s,He.resolveMessage(r,t)))}email(e){const t=He.asMeta(e),r="string"==typeof e?e:He.resolveMessage(t);return this.decorate(be(r))}url(e){const t=He.asMeta(e),r="string"==typeof e?e:He.resolveMessage(t);return this.decorate(Me(r))}type(e,t){const r=He.asMeta(e),a=r?.customTypes??r?.type??(r?void 0:e);return this.decorate(Ae(a,He.resolveMessage(r,t)))}date(e,t){const r=He.asMeta(e),a=r?.[u.FORMAT]??(r?void 0:e);return this.decorate(Ne(a,He.resolveMessage(r,t)))}password(e,t){const r=He.asMeta(e),a=r?.[u.PATTERN]??(r?void 0:e),s=He.patternFromString(a);return this.decorate(Oe(s,He.resolveMessage(r,t)))}list(e,t,r){const a=He.asMeta(e),s=a?.clazz??(a?void 0:e),i=a?.type??t;return this.decorate(_e(s,i,He.resolveMessage(a,r)))}set(e,t){return He.isMetadataPayload(e)?this.list(e):this.list(e,"Set",t)}enum(e,t){const r=He.asMeta(e),a=r?.[u.ENUM]??(r?void 0:e);return this.decorate(Ie(a,He.resolveMessage(r,t)))}option(e,t){return this.enum(e,t)}static isMetadataPayload(e){return!(!e||e instanceof Date||e instanceof RegExp||Array.isArray(e)||"object"!=typeof e)}static asMeta(e){return He.isMetadataPayload(e)?e:void 0}static resolveMessage(e,t){return e?.message??t}static patternFromString(e){if(!e)return;if(e instanceof RegExp)return e;const t=e.match(/^\/(.+)\/([gimsuy]*)$/);return t?RegExp(t[1],t[2]):RegExp(e)}resolveComparison(e,t,r){const a=He.asMeta(e);return a?{target:a[t],options:{label:a.label,message:a.message}}:{target:e,options:r}}equals(e,t){const{target:r,options:a}=this.resolveComparison(e,u.EQUALS,t);return this.decorate(Se(r,a))}eq(e,t){return this.equals(e,t)}different(e,t){const{target:r,options:a}=this.resolveComparison(e,u.DIFF,t);return this.decorate(Re(r,a))}diff(e,t){return this.different(e,t)}lessThan(e,t){const{target:r,options:a}=this.resolveComparison(e,u.LESS_THAN,t);return this.decorate(ve(r,a))}lt(e,t){return this.lessThan(e,t)}lessThanOrEqual(e,t){const{target:r,options:a}=this.resolveComparison(e,u.LESS_THAN_OR_EQUAL,t);return this.decorate(Pe(r,a))}lte(e,t){return this.lessThanOrEqual(e,t)}greaterThan(e,t){const{target:r,options:a}=this.resolveComparison(e,u.GREATER_THAN,t);return this.decorate(Le(r,a))}gt(e,t){return this.greaterThan(e,t)}greaterThanOrEqual(e,t){const{target:r,options:a}=this.resolveComparison(e,u.GREATER_THAN_OR_EQUAL,t);return this.decorate(De(r,a))}gte(e,t){return this.greaterThanOrEqual(e,t)}description(e){return this.decorate(t.description(e))}build(e){const r=e.prototype,a=this.attr;Object.getOwnPropertyDescriptor(r,a)||Object.defineProperty(r,a,{configurable:!0,enumerable:!0,writable:!0,value:void 0}),this.declaredType&&Reflect.defineMetadata(t.DecorationKeys.DESIGN_TYPE,this.declaredType,r,a),t.prop()(r,a),this.decorators.forEach((e=>{try{e(r,a)}catch(e){throw Error(`Failed to apply decorator to property "${this.attr}": ${e}`)}}))}}class Ce{constructor(e,t,r){this.parent=e,this.attribute=t,this.collection=r}ofPrimitives(e,t){return this.attribute.list(e,this.collection,t),this.parent}ofModel(){const e=xe.builder(),t=e.build;let r;return this.attribute.list((()=>(r||(r=Reflect.apply(t,e,[])),r)),this.collection),e.build=new Proxy(t,{apply:(e,t,a)=>(r=Reflect.apply(e,t,a),this.parent)}),e}}class xe extends a.ObjectAccumulator{constructor(){super(...arguments),this.attributes=new Map}setName(e){return this._name=e,this}description(e){return this._description=e,this}attribute(e,t){const r=this.attributes.get(e);if(r){if(r.declaredType!==t)throw Error(`Attribute "${e+""}" already exists with a different type`);return r}const a=new He(this,e,t);return this.attributes.set(e,a),a}string(e){return this.attribute(e,String)}number(e){return this.attribute(e,Number)}date(e){return this.attribute(e,Date)}bigint(e){return this.attribute(e,BigInt)}instance(e,t){return this.attribute(t,e)}model(e){const t=new xe;return t.build=new Proxy(t.build,{apply:(t,r,a)=>{const s=Reflect.apply(t,r,a);return this.instance(s,e)}}),t}listOf(e,t="Array"){const r="Set"===t?Set:Array,a=this.attribute(e,r);return new Ce(this,a,t)}build(){if(!this._name)throw Error("name is required");const e=this._parent??ce;class r extends e{constructor(e){super(e)}}Object.defineProperty(r,"name",{value:this._name,writable:!1});for(const e of this.attributes.values())e.build(r);let a=Ue()(r);return this._description&&(a=t.description(this._description)(a)),a}static builder(){return new xe}static from(e,t){if(!e)throw Error("metadata is required");const r=xe.builder(),a=t??"GeneratedModel"+Date.now();r.setName(a);const s=e.properties||{},i=e.validation||{};for(const[e,t]of Object.entries(s)){const a=r.attribute(e,t||Object),s=i[e];if(s)for(const[e,t]of Object.entries(s)){const r=a[e];if("function"!=typeof r)try{const r=K.decoratorFromKey(e),s="function"==typeof r?r(t):r;a.decorate(s)}catch{}else r.call(a,t)}}return r.build()}}const Fe="##VERSION##",ze="##PACKAGE##";t.Metadata.registerLibrary(ze,Fe),e.ASYNC_META_KEY=T,e.AsyncValidator=class extends ${constructor(e=h.DEFAULT,...t){super(!0,e,...t)}},e.AttributeBuilder=He,e.COMPARISON_ERROR_MESSAGES=m,e.ComparisonValidationKeys=d,e.DAYS_OF_WEEK_NAMES=f,e.DEFAULT_ERROR_MESSAGES=h,e.DEFAULT_PATTERNS=g,e.DefaultHashingMethod=P,e.DefaultSerializationMethod=i,e.Hashing=L,e.JSONSerializer=n,e.MONTH_NAMES=l,e.Model=ce,e.ModelBuilder=xe,e.ModelErrorDefinition=c,e.ModelRegistryManager=oe,e.PACKAGE_NAME=ze,e.PathProxyEngine=w,e.ReservedModels=ae,e.Serialization=o,e.VALIDATION_PARENT_KEY=E,e.VERSION=Fe,e.Validation=K,e.ValidationKeys=u,e.Validator=Y,e.ValidatorRegistry=q,e.async=()=>e=>{Object.prototype.hasOwnProperty.call(e,T)||(e[T]=!0)},e.bindDateToString=M,e.bindModelPrototype=Ve,e.bulkModelRegister=(...e)=>{e.forEach((e=>{const t=e.constructor?e.constructor:e;ce.register(t,e.name)}))},e.checkType=x,e.checkTypes=F,e.construct=we,e.date=Ne,e.dateFromFormat=b,e.diff=Re,e.email=be,e.eq=Se,e.evaluateDesignTypes=z,e.findLastProtoBeforeObject=e=>{let t=Object.getPrototypeOf(e);if(t===Object.prototype)return e;for(;t!==Object.prototype;){if(t=Object.getPrototypeOf(t),t===Object.prototype)return t;if(Object.getPrototypeOf(t)===Object.prototype)return t}throw Error("Could not find proper prototype")},e.formatDate=O,e.gt=Le,e.gte=De,e.hashCode=R,e.hashObj=v,e.hashedBy=(r,...a)=>t.metadata(e.ModelKeys.HASHING,{algorithm:r,args:a}),e.innerValidationDecorator=fe,e.isEqual=S,e.isGreaterThan=C,e.isLessThan=H,e.isValidDate=A,e.isValidForGteOrLteComparison=U,e.jsTypes=se,e.list=_e,e.lt=ve,e.lte=Pe,e.max=pe,e.maxlength=Ee,e.min=ge,e.minlength=me,e.model=Ue,e.modelBaseDecorator=je,e.option=Ie,e.parseDate=_,e.password=Oe,e.pattern=Te,e.regexpParser=ue,e.required=he,e.serializedBy=(r,...a)=>t.metadata(e.ModelKeys.SERIALIZATION,{serializer:r,args:a}),e.set=(e,t=h.LIST)=>_e(e,"Set",t),e.sf=y,e.step=ye,e.stringFormat=p,e.toConditionalPromise=k,e.twoDigitPad=N,e.type=Ae,e.url=Me,e.validate=te,e.validateChildValue=W,e.validateDecorator=J,e.validateDecorators=ee,e.validationMetadata=le,e.validator=de,e.valueLength=G},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("tslib"),require("typed-object-accumulator")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","tslib","typed-object-accumulator"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["decorator-validation"]={},e.decafTsDecoration,e.tslib,e.typedObjectAccumulator);
2
2
  //# sourceMappingURL=decorator-validation.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorator-validation.cjs","sources":["../src/utils/constants.ts","../src/utils/serialization.ts","../src/model/ModelErrorDefinition.ts","../src/validation/Validators/constants.ts","../src/utils/strings.ts","../src/constants/errors.ts","../src/constants/validation.ts","../src/utils/dates.ts","../src/utils/equality.ts","../src/utils/hashing.ts","../src/utils/PathProxy.ts","../src/validation/Validators/utils.ts","../src/validation/Validators/BaseValidator.ts","../src/validation/Validators/Validator.ts","../src/validation/Validators/ValidatorRegistry.ts","../src/validation/Validation.ts","../src/model/utils.ts","../src/model/validation.ts","../src/model/constants.ts","../src/model/Model.ts","../src/validation/Validators/decorators.ts","../src/overrides/overrides.ts","../src/validation/Validators/DateValidator.ts","../src/validation/Validators/DiffValidator.ts","../src/validation/Validators/PatternValidator.ts","../src/validation/decorators.ts","../src/model/construction.ts","../src/model/decorators.ts","../src/validation/Validators/EmailValidator.ts","../src/validation/Validators/EqualsValidator.ts","../src/validation/Validators/GreaterThanValidator.ts","../src/validation/Validators/GreaterThanOrEqualValidator.ts","../src/validation/Validators/LessThanValidator.ts","../src/validation/Validators/LessThanOrEqualValidator.ts","../src/validation/Validators/ListValidator.ts","../src/validation/Validators/MaxLengthValidator.ts","../src/validation/Validators/MaxValidator.ts","../src/validation/Validators/MinLengthValidator.ts","../src/validation/Validators/MinValidator.ts","../src/validation/Validators/OptionValidator.ts","../src/validation/Validators/PasswordValidator.ts","../src/validation/Validators/RequiredValidator.ts","../src/validation/Validators/StepValidator.ts","../src/validation/Validators/TypeValidator.ts","../src/validation/Validators/URLValidator.ts","../src/model/Builder.ts","../src/index.ts","../src/validation/Validators/AsyncValidator.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["ModelKeys","exports","DefaultSerializationMethod","JSONSerializer","constructor","preSerialize","model","toSerialize","Object","assign","metadata","Metadata","modelName","error","undefined","ANCHOR","name","deserialize","str","deserialization","JSON","parse","className","Error","Model","build","serialize","stringify","this","Serialization","current","cache","json","get","key","register","func","setDefault","obj","method","args","ModelErrorDefinition","errors","prop","prototype","hasOwnProperty","call","defineProperty","enumerable","configurable","value","writable","toString","self","keys","filter","k","reduce","accum","propError","propAccum","ComparisonValidationKeys","EQUALS","DIFF","LESS_THAN","LESS_THAN_OR_EQUAL","GREATER_THAN","GREATER_THAN_OR_EQUAL","ValidationKeys","REFLECT","DATE","EMAIL","FORMAT","LIST","MAX","MAX_LENGTH","MIN","MIN_LENGTH","PASSWORD","PATTERN","REQUIRED","STEP","TYPE","UNIQUE","URL","VALIDATOR","ENUM","MONTH_NAMES","DAYS_OF_WEEK_NAMES","DEFAULT_ERROR_MESSAGES","DEFAULT","MODEL_NOT_FOUND","DEFAULT_PATTERNS","CHAR8_ONE_OF_EACH","stringFormat","string","replace","match","number","sf","COMPARISON_ERROR_MESSAGES","INVALID_PATH","CONTEXT_NOT_OBJECT_COMPARISON","PROPERTY_INVALID","PROPERTY_NOT_EXIST","UNSUPPORTED_TYPES_COMPARISON","NULL_OR_UNDEFINED_COMPARISON","INVALID_DATE_COMPARISON","TYPE_MISMATCH_COMPARISON","NAN_COMPARISON","VALIDATION_PARENT_KEY","Symbol","ASYNC_META_KEY","dateFromFormat","date","format","formatRegexp","RegExp","exec","groups","Date","safeParseInt","n","result","parseInt","isNaN","year","day","amPm","ampm","hour","minutes","seconds","ms","milis","monthName","monthname","monthNameSmall","monthnamesmall","month","indexOf","m","find","toLowerCase","startsWith","bindDateToString","Proxy","toISOString","apply","target","thisArg","formatDate","isValidDate","Number","twoDigitPad","num","patternStr","getDate","getMonth","getFullYear","getHours","minute","getMinutes","second","getSeconds","miliseconds","getMilliseconds","h","hh","HH","mm","ss","aaa","EEEE","getDay","EEE","substr","dd","M","MM","MMMM","MMM","yyyy","yy","parseDate","v","e","isEqual","a","b","propsToIgnore","getTime","message","Array","isArray","length","i","Map","size","has","Set","item","ArrayBuffer","isView","byteLength","byteOffset","buffer","uint8A","Uint8Array","uint8B","aKeys","includes","bKeys","aSymbols","getOwnPropertySymbols","s","bSymbols","sym","getPrototypeOf","hashCode","String","hash","charCodeAt","hashObj","hashReducer","el","elHash","hashFunction","values","Math","abs","DefaultHashingMethod","Hashing","default","fallbackGetParent","fallbackGetValue","PathProxyEngine","create","rootTarget","opts","getValue","getParent","ignoreUndefined","ignoreNull","path","parts","parsePath","part","parent","trim","getTypeName","Infinity","isSupported","isFinite","isValidForGteOrLteComparison","TypeError","isLessThan","aType","bType","isGreaterThan","checkType","acceptedType","checkTypes","acceptedTypes","every","t","evaluateDesignTypes","types","valueLength","BaseValidator","async","hasErrors","checkTypeAndHasErrors","bind","getMessage","unbound","options","proxy","join","isValidator","val","Validator","super","ValidatorRegistry","validators","customKeyCache","getCustomKeys","getKeys","validatorKey","classOrInstance","instance","validator","forEach","validationKey","save","toUpperCase","Validation","actingValidatorRegistry","setRegistry","validatorRegistry","migrationHandler","getRegistry","registerDecorator","decorator","meta","for","DECORATORS","set","decoratorFromKey","toConditionalPromise","Promise","resolve","setTemporaryContext","cleanupTemporaryContext","getNestedValidationErrors","nestedModel","parentModel","isAsync","errs","validateChildValue","childValue","allowedTypes","err","atLeastOneMatched","allowedType","Constr","getChildNestedPropsToIgnore","parentProp","map","propToIgnore","validateDecorator","decoratorProps","context","validatorOptions","validateDecorators","decorators","decoratorKey","validationErrors","class","clazz","customTypes","flat","isModel","nestedPropsToIgnore","all","then","r","allEmpty","promises","resolvedValues","res","validate","decoratedProperties","validatableProperties","nestedErrors","propKey","propValue","validationFor","designTypes","designType","getPropDesignTypes","some","propErrors","isPropertyModel","d","entries","merged","allSettled","results","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","status","reason","Primitives","ReservedModels","STRING","OBJECT","NUMBER","BOOLEAN","Boolean","BIGINT","BigInt","jsTypes","modelBuilderFunction","actingModelRegistry","ModelRegistryManager","testFunction","arg","exceptions","equals","compare","other","props","properties","diff","acc","nestedDiff","listDiff","SERIALIZATION","serializer","fromObject","getAttributes","fromModel","proto","descriptor","getOwnPropertyDescriptor","propM","reserved","c","validation","clazzName","add","setBuilder","builder","getBuilder","modelRegistry","seen","collect","attributes","push","obj1","obj2","HASHING","algorithm","constr","attribute","type","describe","description","original","decoration","property","propValidation","metavalidation","iterator","designTypeMeta","propTypes","designTypeDec","DateValidator","__decorate","DiffValidator","accessor","comparisonPropertyValue","getValueFromPath","label","regexpParser","validationMetadata","propMetadata","innerValidationDecorator","dec","required","Decoration","define","min","max","step","minlength","maxlength","pattern","email","url","propertyKey","WeakMap","newValue","password","list","collection","eq","propertyToCompare","lt","lte","gt","gte","option","construct","_constr","argz","bindModelPrototype","bindPrototype","objToOverride","setPrototypeOf","prot","modelBaseDecorator","newConstructor","CONSTRUCTOR","MODEL","PatternValidator","getPattern","test","lastIndex","EmailValidator","EqualsValidator","GreaterThanValidator","GreaterThanOrEqualValidator","LessThanValidator","LessThanOrEqualValidator","ListValidator","isValid","MaxLengthValidator","MaxValidator","MinLengthValidator","MinValidator","OptionValidator","enum","PasswordValidator","RequiredValidator","StepValidator","TypeValidator","ts","URLValidator","AttributeBuilder","attr","declaredType","decorate","undecorate","index","splice","messageOrMeta","asMeta","resolveMessage","valueOrMeta","rawPattern","regex","patternFromString","formatOrMeta","clazzOrMeta","typeOfCollection","isMetadataPayload","fallback","resolveComparison","propertyOrMeta","resolvedOptions","different","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","desc","Reflect","defineMetadata","DecorationKeys","DESIGN_TYPE","ListAttributeBuilder","ofPrimitives","ofModel","nestedBuilder","ModelBuilder","originalBuild","cachedConstructor","argArray","ObjectAccumulator","setName","_name","_description","existing","attributeBuilder","bigint","built","listOf","listType","Parent","_parent","DynamicBuiltClass","from","derivedName","now","validations","validationMeta","handler","decoratorFactory","VERSION","PACKAGE_NAME","registerLibrary","models"],"mappings":"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"}
1
+ {"version":3,"file":"decorator-validation.cjs","sources":["../src/utils/constants.ts","../src/utils/serialization.ts","../src/model/ModelErrorDefinition.ts","../src/validation/Validators/constants.ts","../src/utils/strings.ts","../src/constants/errors.ts","../src/constants/validation.ts","../src/utils/dates.ts","../src/utils/equality.ts","../src/utils/hashing.ts","../src/utils/PathProxy.ts","../src/validation/Validators/utils.ts","../src/validation/Validators/BaseValidator.ts","../src/validation/Validators/Validator.ts","../src/validation/Validators/ValidatorRegistry.ts","../src/validation/Validation.ts","../src/model/utils.ts","../src/model/validation.ts","../src/model/constants.ts","../src/model/Model.ts","../src/validation/Validators/decorators.ts","../src/overrides/overrides.ts","../src/validation/Validators/DateValidator.ts","../src/validation/Validators/DiffValidator.ts","../src/validation/Validators/PatternValidator.ts","../src/validation/decorators.ts","../src/model/construction.ts","../src/model/decorators.ts","../src/validation/Validators/EmailValidator.ts","../src/validation/Validators/EqualsValidator.ts","../src/validation/Validators/GreaterThanValidator.ts","../src/validation/Validators/GreaterThanOrEqualValidator.ts","../src/validation/Validators/LessThanValidator.ts","../src/validation/Validators/LessThanOrEqualValidator.ts","../src/validation/Validators/ListValidator.ts","../src/validation/Validators/MaxLengthValidator.ts","../src/validation/Validators/MaxValidator.ts","../src/validation/Validators/MinLengthValidator.ts","../src/validation/Validators/MinValidator.ts","../src/validation/Validators/OptionValidator.ts","../src/validation/Validators/PasswordValidator.ts","../src/validation/Validators/RequiredValidator.ts","../src/validation/Validators/StepValidator.ts","../src/validation/Validators/TypeValidator.ts","../src/validation/Validators/URLValidator.ts","../src/model/Builder.ts","../src/index.ts","../src/validation/Validators/AsyncValidator.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["ModelKeys","exports","DefaultSerializationMethod","JSONSerializer","constructor","preSerialize","model","args","toSerialize","Object","assign","metadata","Metadata","modelName","error","undefined","ANCHOR","name","deserialize","str","deserialization","JSON","parse","className","Error","Model","build","serialize","stringify","this","Serialization","current","cache","json","get","key","register","func","setDefault","obj","method","ModelErrorDefinition","errors","prop","prototype","hasOwnProperty","call","defineProperty","enumerable","configurable","value","writable","toString","self","keys","filter","k","reduce","accum","propError","propAccum","ComparisonValidationKeys","EQUALS","DIFF","LESS_THAN","LESS_THAN_OR_EQUAL","GREATER_THAN","GREATER_THAN_OR_EQUAL","ValidationKeys","REFLECT","DATE","EMAIL","FORMAT","LIST","MAX","MAX_LENGTH","MIN","MIN_LENGTH","PASSWORD","PATTERN","REQUIRED","STEP","TYPE","UNIQUE","URL","VALIDATOR","ENUM","MONTH_NAMES","DAYS_OF_WEEK_NAMES","DEFAULT_ERROR_MESSAGES","DEFAULT","MODEL_NOT_FOUND","DEFAULT_PATTERNS","CHAR8_ONE_OF_EACH","stringFormat","string","replace","match","number","sf","COMPARISON_ERROR_MESSAGES","INVALID_PATH","CONTEXT_NOT_OBJECT_COMPARISON","PROPERTY_INVALID","PROPERTY_NOT_EXIST","UNSUPPORTED_TYPES_COMPARISON","NULL_OR_UNDEFINED_COMPARISON","INVALID_DATE_COMPARISON","TYPE_MISMATCH_COMPARISON","NAN_COMPARISON","VALIDATION_PARENT_KEY","Symbol","ASYNC_META_KEY","dateFromFormat","date","format","formatRegexp","RegExp","exec","groups","Date","safeParseInt","n","result","parseInt","isNaN","year","day","amPm","ampm","hour","minutes","seconds","ms","milis","monthName","monthname","monthNameSmall","monthnamesmall","month","indexOf","m","find","toLowerCase","startsWith","bindDateToString","Proxy","toISOString","apply","target","thisArg","formatDate","isValidDate","Number","twoDigitPad","num","patternStr","getDate","getMonth","getFullYear","getHours","minute","getMinutes","second","getSeconds","miliseconds","getMilliseconds","h","hh","HH","mm","ss","aaa","EEEE","getDay","EEE","substr","dd","M","MM","MMMM","MMM","yyyy","yy","parseDate","v","e","isEqual","a","b","propsToIgnore","getTime","message","Array","isArray","length","i","Map","size","has","Set","item","ArrayBuffer","isView","byteLength","byteOffset","buffer","uint8A","Uint8Array","uint8B","aKeys","includes","bKeys","aSymbols","getOwnPropertySymbols","s","bSymbols","sym","getPrototypeOf","hashCode","String","hash","charCodeAt","hashObj","hashReducer","el","elHash","hashFunction","values","Math","abs","DefaultHashingMethod","Hashing","default","fallbackGetParent","fallbackGetValue","PathProxyEngine","create","rootTarget","opts","getValue","getParent","ignoreUndefined","ignoreNull","path","parts","parsePath","part","parent","trim","getTypeName","Infinity","isSupported","isFinite","isValidForGteOrLteComparison","TypeError","isLessThan","aType","bType","isGreaterThan","checkType","acceptedType","checkTypes","acceptedTypes","every","t","evaluateDesignTypes","types","valueLength","BaseValidator","async","hasErrors","checkTypeAndHasErrors","bind","getMessage","unbound","options","proxy","join","isValidator","val","Validator","super","ValidatorRegistry","validators","customKeyCache","getCustomKeys","getKeys","validatorKey","classOrInstance","instance","validator","forEach","validationKey","save","toUpperCase","Validation","actingValidatorRegistry","setRegistry","validatorRegistry","migrationHandler","getRegistry","registerDecorator","decorator","meta","for","DECORATORS","set","decoratorFromKey","toConditionalPromise","Promise","resolve","setTemporaryContext","cleanupTemporaryContext","getNestedValidationErrors","nestedModel","parentModel","isAsync","errs","validateChildValue","childValue","allowedTypes","err","atLeastOneMatched","allowedType","Constr","getChildNestedPropsToIgnore","parentProp","map","propToIgnore","validateDecorator","decoratorProps","context","validatorOptions","validateDecorators","decorators","decoratorKey","validationErrors","class","clazz","customTypes","flat","isModel","nestedPropsToIgnore","all","then","r","allEmpty","promises","resolvedValues","res","validate","decoratedProperties","validatableProperties","nestedErrors","propKey","propValue","validationFor","designTypes","designType","getPropDesignTypes","some","propErrors","isPropertyModel","d","entries","merged","allSettled","results","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","status","reason","Primitives","ReservedModels","STRING","OBJECT","NUMBER","BOOLEAN","Boolean","BIGINT","BigInt","jsTypes","modelBuilderFunction","actingModelRegistry","ModelRegistryManager","testFunction","arg","exceptions","equals","compare","other","props","properties","diff","acc","nestedDiff","listDiff","SERIALIZATION","serializer","fromObject","getAttributes","fromModel","proto","descriptor","getOwnPropertyDescriptor","propM","reserved","c","validation","clazzName","add","setBuilder","builder","getBuilder","modelRegistry","seen","collect","attributes","push","obj1","obj2","HASHING","algorithm","constr","attribute","type","describe","description","original","decoration","property","propValidation","metavalidation","iterator","designTypeMeta","propTypes","designTypeDec","DateValidator","__decorate","DiffValidator","accessor","comparisonPropertyValue","getValueFromPath","label","regexpParser","validationMetadata","propMetadata","innerValidationDecorator","dec","required","Decoration","define","min","max","step","minlength","maxlength","pattern","email","url","propertyKey","WeakMap","newValue","password","list","collection","eq","propertyToCompare","lt","lte","gt","gte","option","construct","_constr","argz","bindModelPrototype","bindPrototype","objToOverride","setPrototypeOf","prot","modelBaseDecorator","newConstructor","CONSTRUCTOR","MODEL","PatternValidator","getPattern","test","lastIndex","EmailValidator","EqualsValidator","GreaterThanValidator","GreaterThanOrEqualValidator","LessThanValidator","LessThanOrEqualValidator","ListValidator","isValid","MaxLengthValidator","MaxValidator","MinLengthValidator","MinValidator","OptionValidator","enum","PasswordValidator","RequiredValidator","StepValidator","TypeValidator","ts","URLValidator","AttributeBuilder","attr","declaredType","decorate","undecorate","index","splice","messageOrMeta","asMeta","resolveMessage","valueOrMeta","rawPattern","regex","patternFromString","formatOrMeta","clazzOrMeta","typeOfCollection","isMetadataPayload","fallback","resolveComparison","propertyOrMeta","resolvedOptions","different","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","desc","Reflect","defineMetadata","DecorationKeys","DESIGN_TYPE","ListAttributeBuilder","ofPrimitives","ofModel","nestedBuilder","ModelBuilder","originalBuild","cachedConstructor","argArray","ObjectAccumulator","setName","_name","_description","existing","attributeBuilder","bigint","built","listOf","listType","Parent","_parent","DynamicBuiltClass","from","derivedName","now","validations","validationMeta","handler","decoratorFactory","VERSION","PACKAGE_NAME","registerLibrary","models"],"mappings":"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"}