@decaf-ts/decorator-validation 1.11.8 → 1.11.10

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
- import{Metadata as e,apply as t,metadata as r,propMetadata as s,Decoration as n,description as i,DecorationKeys as a,prop as o}from"@decaf-ts/decoration";import{__decorate as c,__metadata as u}from"tslib";import{ObjectAccumulator as l}from"typed-object-accumulator";var d;(e=>{e.DESCRIPTION="description",e.TYPE="design:type",e.MODEL="model",e.ANCHOR="__model",e.CONSTRUCTION="constructed-by",e.ATTRIBUTE="__attributes",e.HASHING="hashing",e.SERIALIZATION="serialization",e.DECORATORS="decorators",e.CONSTRUCTOR="__original"})(d||(d={}));const f="json";class h{constructor(){}preSerialize(t,...r){const s=Object.assign({},t);let n;try{n=e.modelName(t.constructor)}catch(e){n=void 0}return s[d.ANCHOR]=n||t.constructor.name,s}deserialize(e,...t){const r=JSON.parse(e),s=r[d.ANCHOR];if(!s)throw Error("Could not find class reference in serialized model");return me.build(r,s)}serialize(e,...t){return JSON.stringify(this.preSerialize(e))}}class g{static{this.current=f}static{this.cache={json:new h}}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 p{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 s=Object.keys(e[r]).reduce((t,s)=>(t?t+="\n"+e[r][s]:t=e[r][s],t),void 0);return s&&(s=`${r} - ${s}`,t?t+="\n"+s:t=s),t},"")}}const m={EQUALS:"equals",DIFF:"different",LESS_THAN:"lessThan",LESS_THAN_OR_EQUAL:"lessThanOrEqual",GREATER_THAN:"greaterThan",GREATER_THAN_OR_EQUAL:"greaterThanOrEqual"},y={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",...m},E=["January","February","March","April","May","June","July","August","September","October","November","December"],b=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],T={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}"},A={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 N(e,...t){return e.replace(/{(\d+)}/g,(e,r)=>void 0!==t[r]?t[r].toString():"undefined")}const O=N,S={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"},M=Symbol("_parent"),R=Symbol("isAsync");function v(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 s=RegExp(r,"g").exec(e);if(!s||!s.groups)return new Date(e);const n=e=>{if(!e)return 0;const t=parseInt(e);return isNaN(t)?0:t},i=n(s.groups.year),a=n(s.groups.day),o=s.groups.ampm;let c=n(s.groups.hour);o&&(c="PM"===o?c+12:c);const u=n(s.groups.minutes),l=n(s.groups.seconds),d=n(s.groups.milis),f=s.groups.monthname,h=s.groups.monthnamesmall;let g=s.groups.month;if(f)g=E.indexOf(f);else if(h){const t=E.find(e=>e.toLowerCase().startsWith(h.toLowerCase()));if(!t)return new Date(e);g=E.indexOf(t)}else g=n(""+g);return new Date(i,g-1,a,c,u,l,d)}function P(e,t){if(e)return Object.defineProperty(e,"toISOString",{enumerable:!1,configurable:!1,value:new Proxy(e.toISOString,{apply:(e,r)=>I(r,t)})}),Object.defineProperty(e,"toString",{enumerable:!1,configurable:!1,value:new Proxy(e.toISOString,{apply:(e,r)=>I(r,t)})}),e}function _(e){return e&&"[object Date]"===Object.prototype.toString.call(e)&&!Number.isNaN(e)}function L(e){return 10>e?"0"+e:e.toString()}function I(e,t="yyyy/MM/dd"){const r=e.getDate(),s=e.getMonth(),n=e.getFullYear(),i=e.getHours(),a=e.getMinutes(),o=e.getSeconds(),c=e.getMilliseconds(),u=i%12,l=L(u),d=L(i),f=L(a),h=L(o),g=12>i?"AM":"PM",p=b[e.getDay()],m=p.substr(0,3),y=L(r),T=s+1,A=L(T),N=E[s],O=N.substr(0,3),S=n+"",M=S.substr(2,2);return(t=t.replace("hh",l).replace("h",u.toString()).replace("HH",d).replace("H",i.toString()).replace("mm",f).replace("m",a.toString()).replace("ss",h).replace("s",o.toString()).replace("S",c.toString()).replace("dd",y).replace("d",r.toString()).replace("EEEE",p).replace("EEE",m).replace("yyyy",S).replace("yy",M).replace("aaa",g)).indexOf("MMM")>-1?t.replace("MMMM",N).replace("MMM",O):t.replace("MM",A).replace("M",T.toString())}function w(e,t){let r;if(t){if(t instanceof Date)try{r=v(I(t,e),e)}catch(r){throw Error(O("Could not convert date {0} to format: {1}",t.toString(),e))}else if("string"==typeof t)r=v(t,e);else if("number"==typeof t)r=v(I(new Date(t),e),e);else{if(!_(t))throw Error("Invalid value provided "+t);try{r=v(I(new Date(t),e),e)}catch(r){throw Error(O("Could not convert date {0} to format: {1}",t,e))}}return P(r,e)}}function D(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 s=0;s<e.length;s++)if(!D(e[s],t[s],...r))return!1;return!0}if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[s,n]of e)if(!t.has(s)||!D(n,t.get(s),...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),s=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);for(let e=0;e<r.length;e++)if(r[e]!==s[e])return!1;return!0}const s=Object.keys(e).filter(e=>!r.includes(e)),n=Object.keys(t).filter(e=>!r.includes(e));if(s.length!==n.length)return!1;for(const i of s){if(!n.includes(i))return!1;if(!D(e[i],t[i],...r))return!1}const i=Object.getOwnPropertySymbols(e).filter(e=>!r.includes(e.toString())),a=Object.getOwnPropertySymbols(t).filter(e=>!r.includes(e.toString()));if(i.length!==a.length)return!1;for(const s of i){if(!a.includes(s))return!1;if(!D(e[s],t[s],...r))return!1}return Object.getPrototypeOf(e)===Object.getPrototypeOf(t)}function j(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 U(e){const t=(e,t)=>{const r=s(t);return"string"==typeof r?s((e||"")+s(t)):(e=((e=e||0)<<5)-e+r)&e},r=j,s=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),n=Object.values(e).reduce(t,0);return("number"==typeof n?Math.abs(n):n).toString()}const H="default";class C{static{this.current=H}static{this.cache={default:U}}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 x=e=>e[M],F=(e,t)=>{if(!Object.prototype.hasOwnProperty.call(e,t))throw Error(O(S.PROPERTY_NOT_EXIST,t));return e[t]};class z{static create(e,t){const{getValue:r,getParent:s,ignoreUndefined:n,ignoreNull:i}={getParent:x,getValue:F,ignoreNull:!1,ignoreUndefined:!1,...t},a=new Proxy({},{get:(t,a)=>"getValueFromPath"===a?t=>{const a=z.parsePath(t);let o=e;for(let e=0;e<a.length;e++){const c=a[e];if(".."===c){const r=s(o);if(!r||"object"!=typeof r)throw Error(O(S.CONTEXT_NOT_OBJECT_COMPARISON,e+1,t));o=r;continue}if(o=r(o,c),!n&&void 0===o)throw Error(O(S.PROPERTY_INVALID,t,c));if(!i&&null===o)throw Error(O(S.PROPERTY_INVALID,t,c))}return o}:t[a]});return a}static parsePath(e){if("string"!=typeof e||!e.trim())throw Error(O(S.INVALID_PATH,e));return e.match(/(\.\.|[^/.]+)/g)||[]}}const G=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,$=e=>void 0===e||e instanceof Date||"bigint"==typeof e||"number"==typeof e&&Number.isFinite(e);function Y(e,t){if($(e)&&$(t))return!0;throw new TypeError(O(S.UNSUPPORTED_TYPES_COMPARISON,G(e),G(t)))}function Q(e,t){if([null,void 0].includes(e)||[null,void 0].includes(t))throw Error(S.NULL_OR_UNDEFINED_COMPARISON);const r=typeof e,s=typeof t;if(r!==s){if("bigint"===r&&"number"===s)return t>Number(e);if("number"===r&&"bigint"===s)return Number(t)>e;throw new TypeError(O(S.TYPE_MISMATCH_COMPARISON,r,s))}if("number"===r&&"number"===s||"bigint"===r&&"bigint"===s){if(Number.isNaN(e)||Number.isNaN(t))throw new TypeError(S.NAN_COMPARISON);return t>e}if(e instanceof Date&&t instanceof Date){if(isNaN(e.getTime())||isNaN(t.getTime()))throw new TypeError(S.INVALID_DATE_COMPARISON);return e.getTime()<t.getTime()}throw new TypeError(O(S.UNSUPPORTED_TYPES_COMPARISON,G(e),G(t)))}function k(e,t){if([null,void 0].includes(e)||[null,void 0].includes(t))throw Error(S.NULL_OR_UNDEFINED_COMPARISON);const r=typeof e,s=typeof t;if(r!==s){if("bigint"===r&&"number"===s)return Number(e)>t;if("number"===r&&"bigint"===s)return e>Number(t);throw Error(O(S.TYPE_MISMATCH_COMPARISON,r,s))}if("number"===r&&"number"===s||"bigint"===r&&"bigint"===s){if(Number.isNaN(e)||Number.isNaN(t))throw new TypeError(S.NAN_COMPARISON);return e>t}if(e instanceof Date&&t instanceof Date){if(isNaN(e.getTime())||isNaN(t.getTime()))throw new TypeError(S.INVALID_DATE_COMPARISON);return e.getTime()>t.getTime()}throw new TypeError(O(S.UNSUPPORTED_TYPES_COMPARISON,G(e),G(t)))}function V(e,t){return typeof e===t.toLowerCase()||void 0!==e&&"object"==typeof e&&e.constructor&&e.constructor.name.toLowerCase()===t.toLowerCase()}function q(e,t){return!t.every(t=>!V(e,t))}function X(e,t){switch(typeof t){case"string":return V(e,t);case"object":return!Array.isArray(t)||q(e,t);case"function":return!t.name||"Object"===t.name||V(e,t.name);default:return!0}}function B(e){return e instanceof Set||e instanceof Map?e.size:e.length}class K{constructor(e,t=T.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 O(e,...t)}checkTypeAndHasErrors(e){return function(t,r,s,...n){return void 0!==t&&this.acceptedTypes?q(t,this.acceptedTypes)?e(t,r,s,...n):this.getMessage(T.TYPE,this.acceptedTypes.join(", "),"number"!=typeof t?typeof t:isNaN(t)?"NaN":typeof t):e(t,r,s,...n)}.bind(this)}static isValidator(e){return e.constructor&&!!e.hasErrors}}class W extends K{constructor(e=T.DEFAULT,...t){super(!1,e,...t)}}class Z{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(W.isValidator(t))return t;const r=new(t.default||t);return this.cache[e]=r,r}register(...e){e.forEach(e=>{if(W.isValidator(e)){if(e.validationKey in this.cache)return;this.cache[e.validationKey]=e}else{const{validationKey:t,validator:r,save:s}=e;if(t in this.cache)return;if(this.cache[t]=r,!s)return;const n={};n[t.toUpperCase()]=t,this.customKeyCache=Object.assign({},this.customKeyCache,n)}})}}class J{static{this.actingValidatorRegistry=void 0}constructor(){}static setRegistry(e,t){t&&J.actingValidatorRegistry&&J.actingValidatorRegistry.getKeys().forEach(r=>{const s=e.get(r);s&&e.register(t(s))}),J.actingValidatorRegistry=e}static getRegistry(){return J.actingValidatorRegistry||(J.actingValidatorRegistry=new Z),J.actingValidatorRegistry}static get(e){return J.getRegistry().get(e)}static register(...e){return J.getRegistry().register(...e)}static key(e){return y.REFLECT+e}static keys(){return this.getRegistry().getKeys()}static registerDecorator(t,r){const s=e.innerGet(Symbol.for(d.DECORATORS),e.key(y.REFLECT,t));s?.[t]||e.set(d.DECORATORS,e.key(y.REFLECT,t),r)}static decoratorFromKey(t){try{return e.innerGet(Symbol.for(d.DECORATORS),e.key(y.REFLECT,t))}catch(e){throw Error(`No decorator registered under ${t}: ${e}`)}}}function ee(e,t){return t?Promise.resolve(e):e}function te(e,t,r){Object.hasOwnProperty.call(e,t)||(e[t]=r)}function re(e,t){Object.hasOwnProperty.call(e,t)&&delete e[t]}function se(e,t,r,...s){t&&te(e,M,t),te(e,R,!!r);const n=e.hasErrors(...s);return re(e,M),re(e,R),n}function ne(e,t,r,s,n,...i){let a,o=!1;for(const c of s){const s=me.get(c);if(s||(a=new p({[e]:{[y.TYPE]:"Unable to verify type consistency, missing model registry for "+c}})),t instanceof s){o=!0,a=se(t,r,n,...i);break}}return o?a:a||new p({[e]:{[y.TYPE]:"Value must be an instance of one of the expected types: "+s.join(", ")}})}function ie(e,...t){return t?.map(t=>("string"==typeof t&&t?.startsWith(e+".")&&(t=t.replace(e+".","")),t))}function ae(e,t,r,s){const n=J.get(r.key);if(!n)throw Error("Missing validator for "+r.key);if(!s&&r.async)return;const i=r.key===d.TYPE?[r]:r||{},a=z.create(e,{ignoreUndefined:!0,ignoreNull:!0}),o=r.key===d.TYPE?i[0]:i;return ee(n.hasErrors(t,o,a),s)}function oe(e,t,r,s,n,...i){const a={};for(const o in s){const c={...s[o],key:o};if(!n&&c.async)continue;let u=ae(e,r,c,n);if(o===y.LIST&&(!u||n)){const s=r instanceof Set?[...r]:r;if(s&&s.length>0){let r=c.class||c.clazz||c.customTypes;r=(Array.isArray(r)?r:[r]).map(e=>(e="function"!=typeof e||e.name?e:e()).name?e.name:e);const a=[r].flat().map(e=>(e+"").toLowerCase()),o=s.map(s=>{if(me.isModel(s)){const a=ie(t,...i);return ne(t,s,e,r.flat(),!!n,...a)}return a.includes(typeof s)?void 0:"Value has no validatable type"});if(n)u=Promise.all(o).then(e=>e.every(e=>!e)?void 0:e);else{const e=o.every(e=>!e);u=o.length>0&&!e?o:void 0}}}const l=o===d.TYPE?y.TYPE:o;u&&(a[l]=u)}if(!n)return Object.keys(a).length>0?a:void 0;const o=Object.keys(a),c=Object.values(a);return Promise.all(c).then(e=>{const t={};for(let r=0;r<e.length;r++){const s=e[r];void 0!==s&&(t[o[r]]=s)}return Object.keys(t).length>0?t:void 0})}function ce(t,r,...s){const n=e.validatableProperties(t.constructor,...s),i={},a={};for(const o of n){const n=o+"",c=t[o],u=e.validationFor(t.constructor,o)||{},{designTypes:l,designType:f}=e.getPropDesignTypes(t.constructor,o);if(!l)continue;if(l.some(e=>[Array.name,Set.name].includes(e.name))){if(!u||!Object.keys(u).includes(y.LIST)){i[n]={[y.TYPE]:`Array or Set property '${n}' requires a @list decorator`};continue}if(c&&!(Array.isArray(c)||c instanceof Set)){i[n]={[y.TYPE]:`Property '${o+""}' must be either an Array or a Set`};continue}}const h=oe(t,n,c,u,r,...s)||{};if(me.isPropertyModel(t,n)&&null!=c){const e=c,i=(Array.isArray(f)?l:[f]).map(e=>("function"!=typeof e||e.name||(e=e()),me.get(e.name||e))).find(e=>!!e);if(i&&e instanceof i){const i=ie(n,...s);a[n]=se(e,t,r,...i)}else h[y.TYPE]=i?"Value must be an instance of "+i.name:`Unable to verify type consistency, missing model registry for ${l.toString()} on prop ${n}`,delete h[d.TYPE]}(Object.keys(h).length>0||r)&&(i[n]=h),r||Object.entries(a[n]||{}).forEach(([e,t])=>{void 0!==t&&(i[`${n}.${e}`]=t)})}if(!r)return Object.keys(i).length>0?new p(i):void 0;const o=i,c=Object.keys(o),u=Object.values(o);return Promise.allSettled(u).then(async e=>{const t={};for(const[e,r]of Object.entries(a)){const s=await r;s&&Object.entries(s).forEach(([r,s])=>{void 0!==s&&(t[[e,r].join(".")]=s)})}for(let r=0;r<e.length;r++){const s=c[r],n=e[r];"fulfilled"===n.status&&void 0!==n.value?t[s]=n.value:"rejected"===n.status&&(t[s]=n.reason instanceof Error?n.reason.message:(n.reason||"Validation failed")+"")}return Object.keys(t).length>0?new p(t):void 0})}var ue;(e=>{e.STRING="string",e.NUMBER="number",e.BOOLEAN="boolean",e.BIGINT="bigint"})(ue||(ue={}));const le={STRING:String,OBJECT:Object,NUMBER:Number,BOOLEAN:Boolean,BIGINT:BigInt,DATE:Date},de=["string","array","number","boolean","symbol","function","object","undefined","null","bigint"];let fe,he;class ge{constructor(e=me.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(t={},r){if(!r&&!this.testFunction(t))throw Error("Provided obj is not a Model object");const s=r||e.modelName(t.constructor);if(!(s in this.cache))throw Error(`Provided class ${s} is not a registered Model object`);return new this.cache[s](t)}}function pe(...e){e.forEach(e=>{const t=e.constructor?e.constructor:e;me.register(t,e.name)})}class me{constructor(e=void 0){}isAsync(){return!!(this[R]??this?.constructor[R])}hasErrors(...e){return ce(this,this.isAsync(),...e)}equals(e,...t){return D(this,e,...t)}compare(t,...r){const s=e.properties(this.constructor);if(!s||!s.length)return;const n=s.reduce((e,s)=>{const n=s;if(r.includes(n))return e;if(D(this[n],t[n]))return e;if(void 0===this[n]&&void 0!==t[n])return e[n]={other:t[n],current:void 0},e;if(void 0!==this[n]&&void 0===t[n])return e[n]={other:void 0,current:this[n]},e;if(me.isPropertyModel(this,n)){const r=this[n].compare(t[n]);return r&&(e[n]=r),e}if(Array.isArray(this[n])&&Array.isArray(t[n])){if(this[n].length!==t[n].length)return e[n]={current:this[n],other:t[n]},e;const r=this[n].map((e,r)=>D(e,t[n][r])?null:e instanceof me&&t[n][r]instanceof me?e.compare(t[n][r]):{current:e,other:t[n][r]});return r.some(e=>null!==e)&&(e[n]=r),e}return e[n]={other:t[n],current:this[n]},e},{});return Object.keys(n).length>0?n:void 0}serialize(){return me.serialize(this)}toString(){return this.constructor.name+": "+JSON.stringify(this,void 0,2)}hash(){return me.hash(this)}static deserialize(t){let r;try{r=e.get(this.constructor,d.SERIALIZATION)}catch(e){r=void 0}return r&&r.serializer?g.deserialize(t,r.serializer,...r.args||[]):g.deserialize(t)}static fromObject(e,t){t||(t={});for(const r of me.getAttributes(e))e[r]=t[r]??e[r]??void 0;return e}static fromModel(t,r){let s;r||(r={});const n=me.getAttributes(t),i=Object.getPrototypeOf(t);let a;for(const o of n){try{t[o]=r[o]??t[o]??void 0}catch(e){if(a=Object.getOwnPropertyDescriptor(i,o),!a||a.writable)throw Error(`Unable to write property ${o} to model: ${e}`)}if("object"!=typeof t[o])continue;const n=me.isPropertyModel(t,o);if(n){try{t[o]=me.build(t[o],"string"==typeof n?n:void 0)}catch(e){}continue}if(s=e.allowedTypes(t.constructor,o),!s||!s.length)throw Error("failed to find decorators for property "+o);const c=s.map(e=>"function"!=typeof e||e.name?e:e()),u=Object.values(le);c.forEach(r=>{if(!u.includes(r))try{switch(r.name){case"Array":case"Set":{const s=e.validationFor(t.constructor,o);if(!s||!s[y.LIST])break;const n=s[y.LIST].clazz.map(e=>"function"!=typeof e||e.name?e:e()).find(e=>!de.includes(e.name));if("Array"===r.name&&(t[o]=t[o].map(e=>["object","function"].includes(typeof e)&&n?me.build(e,n.name):e)),"Set"===r.name){const e=new Set;for(const r of t[o])["object","function"].includes(typeof r)&&n?e.add(me.build(r,n.name)):e.add(r);t[o]=e}break}default:void 0!==t[o]&&me.get(r.name)&&(t[o]=me.build(t[o],r.name))}}catch(e){}})}return t}static setBuilder(e){fe=e}static getBuilder(){return fe||me.fromModel}static getRegistry(){return he||(he=new ge),he}static setRegistry(e){he=e}static register(e,t){return me.getRegistry().register(e,t)}static get(e){return me.getRegistry().get(e)}static build(e={},t){return me.getRegistry().build(e,t)}static getAttributes(t){const r=t instanceof me?t.constructor:t,s=new Set,n=t=>{if(!t)return[];const r=n(Object.getPrototypeOf(t)),i=e.properties(t)??[];for(const e of i)s.has(e)||(s.add(e),r.push(e));return r};return n(r)}static equals(e,t,...r){return D(e,t,...r)}static hasErrors(e,t,...r){return ce(e,t,...r)}static serialize(t){let r;try{r=e.get(t.constructor,d.SERIALIZATION)}catch(e){r=void 0}return r&&r.serializer?g.serialize(this,r.serializer,...r.args||[]):g.serialize(t)}static hash(t){const r=e.get(t.constructor,d.HASHING);return r&&r.algorithm?C.hash(t,r.algorithm,...r.args||[]):C.hash(t)}static isModel(t){try{if(t instanceof me)return!0;const r=e.constr(t);return!(!r||r===t||!e.modelName(r))}catch(e){return!1}}static isPropertyModel(t,r){if(me.isModel(t[r]))return!0;const s=e.type(t.constructor,r);return s&&me.get(s.name)?s.name:void 0}static describe(t,r){return e.description(t,r)}}e.validationFor=((t,r,s)=>{const n=e.get(t);if(!n)return;if(!r)return n.validation;if(!n.validation)return;if(!n.validation[y.TYPE]){const{designTypes:s}=e.getPropDesignTypes(t,r);n.validation[r]&&s?.length&&s[0]!==le.OBJECT&&(n.validation[r][y.TYPE]={customTypes:s,message:T.TYPE,description:"defines the accepted types for the attribute",async:!1})}if(!s)return n.validation[r];const i=n.validation[r];return i?i[s]:void 0}).bind(e),e.modelName=(t=>{const r=e.constr(t);return r?r.name:t.name}).bind(e),e.validatableProperties=((t,...r)=>{const s=e.validationFor(t),n=s?Object.keys(s):[];return[...new Set([...me.getAttributes(t),...n])].filter(e=>!r||!r?.includes(e))}).bind(e),e.allowedTypes=((t,r)=>{const s=e.type(t,r);if(!s)throw Error("No metadata found for property "+r);const n=e.validationFor(t,r);return n&&n[y.TYPE]&&"function"==typeof n[y.TYPE]?.customTypes[Symbol.iterator]?[...n[y.TYPE].customTypes]:[s]}).bind(e),e.getPropDesignTypes=((t,r)=>{const s=e.get(t),n=e.type(t,r),i=s?.[y.REFLECT]?.[r];if(!(n||i&&i[y.TYPE]))return{};const a=i&&i[y.TYPE]?[i[y.TYPE].customTypes]:[n];if(!a?.length)return{};const o=a[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(e);class ye extends K{constructor(e=T.DEFAULT,...t){super(!0,e,...t)}}function Ee(...e){return t(t=>(e.forEach(e=>{J.register({validator:t,validationKey:e,save:!0})}),t),r(y.VALIDATOR,e))}let be=class extends W{constructor(e=T.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)}}};be=c([Ee(y.DATE),u("design:paramtypes",[String])],be);let Te=class extends W{constructor(e=T.DIFF){super(e)}hasErrors(e,t,r){let s;try{s=r.getValueFromPath(t[y.DIFF])}catch(e){return this.getMessage(e.message||this.message)}return D(e,s)?this.getMessage(t.message||this.message,t.label||t[y.DIFF]):void 0}};Te=c([Ee(y.DIFF),u("design:paramtypes",[String])],Te);const Ae=RegExp("^/(.+)/([gimus]*)$");let Ne=class extends W{constructor(e=T.PATTERN){super(e,"string")}getPattern(e){if(!Ae.test(e))return RegExp(e);const t=e.match(Ae);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)}};Ne=c([Ee(y.PATTERN),u("design:paramtypes",[String])],Ne);let Oe=class extends Ne{constructor(e=T.EMAIL){super(e)}hasErrors(e,t={}){return super.hasErrors(e,{...t,message:t.message||this.message,pattern:t?.pattern||A.EMAIL})}};Oe=c([Ee(y.EMAIL),u("design:paramtypes",[String])],Oe);let Se=class extends W{constructor(e=T.EQUALS){super(e)}hasErrors(e,t,r){let s;try{s=r.getValueFromPath(t[y.EQUALS])}catch(e){return this.getMessage(e.message||this.message)}return D(e,s)?void 0:this.getMessage(t.message||this.message,t.label||t[y.EQUALS])}};Se=c([Ee(y.EQUALS),u("design:paramtypes",[String])],Se);let Me=class extends W{constructor(e=T.GREATER_THAN){super(e)}hasErrors(e,t,r){let s;try{s=r.getValueFromPath(t[y.GREATER_THAN])}catch(e){return this.getMessage(e.message||this.message)}try{if(!k(e,s))throw Error(t.message||this.message)}catch(e){return this.getMessage(e.message,t.label||t[y.GREATER_THAN])}}};Me=c([Ee(y.GREATER_THAN),u("design:paramtypes",[String])],Me);let Re=class extends W{constructor(e=T.GREATER_THAN_OR_EQUAL){super(e)}hasErrors(e,t,r){let s;try{s=r.getValueFromPath(t[y.GREATER_THAN_OR_EQUAL])}catch(e){return this.getMessage(e.message||this.message)}try{if(Y(e,s)&&D(e,s)||k(e,s))return;throw Error(t.message||this.message)}catch(e){return this.getMessage(e.message,t.label||t[y.GREATER_THAN_OR_EQUAL])}}};Re=c([Ee(y.GREATER_THAN_OR_EQUAL),u("design:paramtypes",[String])],Re);let ve=class extends W{constructor(e=T.LESS_THAN){super(e)}hasErrors(e,t,r){let s;try{s=r.getValueFromPath(t[y.LESS_THAN])}catch(e){return this.getMessage(e.message||this.message)}try{if(!Q(e,s))throw Error(t.message||this.message)}catch(e){return this.getMessage(e.message,t.label||t[y.LESS_THAN])}}};ve=c([Ee(y.LESS_THAN),u("design:paramtypes",[String])],ve);let Pe=class extends W{constructor(e=T.LESS_THAN_OR_EQUAL){super(e)}hasErrors(e,t,r){let s;try{s=r.getValueFromPath(t[y.LESS_THAN_OR_EQUAL])}catch(e){return this.getMessage(e.message||this.message)}try{if(Y(e,s)&&D(e,s)||Q(e,s))return;throw Error(t.message||this.message)}catch(e){return this.getMessage(e.message,t.label||t[y.LESS_THAN_OR_EQUAL])}}};Pe=c([Ee(y.LESS_THAN_OR_EQUAL),u("design:paramtypes",[String])],Pe);let _e=class extends W{constructor(e=T.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 s,n=!0;for(let t=0;t<(Array.isArray(e)?e.length:e.size);t++)switch(s=[...e][t],typeof s){case"object":case"function":n=r.includes((s??{}).constructor?.name);break;default:n=r.some(e=>typeof s===e?.toLowerCase())}return n?void 0:this.getMessage(t.message||this.message,r)}};_e=c([Ee(y.LIST),u("design:paramtypes",[String])],_e);let Le=class extends W{constructor(e=T.MAX_LENGTH){super(e,String.name,Array.name,Set.name,Map.name)}hasErrors(e,t){if(void 0!==e)return B(e)>t.maxlength?this.getMessage(t.message||this.message,t.maxlength):void 0}};Le=c([Ee(y.MAX_LENGTH),u("design:paramtypes",[String])],Le);let Ie=class extends W{constructor(e=T.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}};Ie=c([Ee(y.MAX),u("design:paramtypes",[String])],Ie);let we=class extends W{constructor(e=T.MIN_LENGTH){super(e,String.name,Array.name,Set.name,Map.name)}hasErrors(e,t){if(void 0!==e)return B(e)<t.minlength?this.getMessage(t.message||this.message,t.minlength):void 0}};we=c([Ee(y.MIN_LENGTH),u("design:paramtypes",[String])],we);let De=class extends W{constructor(e=T.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}};De=c([Ee(y.MIN),u("design:paramtypes",[String])],De);let je=class extends W{constructor(e=T.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 s of r)if(t.enum[s]===e)return;return this.getMessage(t.message||this.message,Object.values(t.enum))}}}};je=c([Ee(y.ENUM),u("design:paramtypes",[String])],je);let Ue=class extends Ne{constructor(e=T.PASSWORD){super(e)}hasErrors(e,t={}){return super.hasErrors(e,{...t,message:t.message||this.message,[y.PATTERN]:t?.pattern||A.PASSWORD.CHAR8_ONE_OF_EACH})}};Ue=c([Ee(y.PASSWORD),u("design:paramtypes",[Object])],Ue);let He=class extends W{constructor(e=T.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)}}};He=c([Ee(y.REQUIRED),u("design:paramtypes",[String])],He);let Ce=class extends W{constructor(e=T.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}};Ce=c([Ee(y.STEP),u("design:paramtypes",[String])],Ce);let xe=class extends W{constructor(e=T.TYPE){super(e)}hasErrors(e,t){if(void 0===e)return;const{type:r,message:s,customTypes:n}=t;let i=n||r;return i=(Array.isArray(i)?i:[i]).map(e=>"string"==typeof e?e:("function"!=typeof e||e.name||(e=e()),e.name||e)),X(e,i)?void 0:this.getMessage(s||this.message,"string"==typeof i?i:Array.isArray(i)?i.join(", "):i,typeof e)}};xe=c([Ee(y.TYPE),u("design:paramtypes",[String])],xe),J.register({validator:xe,validationKey:d.TYPE,save:!1});let Fe=class extends Ne{constructor(e=T.URL){super(e)}hasErrors(e,t={}){return super.hasErrors(e,{...t,message:t.message||this.message,pattern:t.pattern||A.URL})}};function ze(e,r,n){return t(s(r,n))}function Ge(e,t,r){return J.registerDecorator(t,e),(e,s)=>ze(0,`${y.REFLECT}.${s}.${t}`,r)(e,s)}function $e(){return e=>{Object.prototype.hasOwnProperty.call(e,R)||(e[R]=!0)}}function Ye(e=T.REQUIRED){const t=y.REQUIRED,r={message:e,description:"defines the attribute as required",async:!1};return n.for(t).define({decorator:Ge,args:[Ye,t,r]}).apply()}function Qe(e,t=T.MIN){const r=y.MIN,s={[y.MIN]:e,message:t,description:`defines the max value of the attribute as ${e} (applies to numbers or Dates)`,async:!1};return n.for(r).define({decorator:Ge,args:[Qe,r,s]}).apply()}function ke(e,t=T.MAX){const r=y.MAX,s={[y.MAX]:e,message:t,description:`defines the max value of the attribute as ${e} (applies to numbers or Dates)`,async:!1};return n.for(r).define({decorator:Ge,args:[ke,r,s]}).apply()}function Ve(e,t=T.STEP){const r=y.STEP,s={[y.STEP]:e,message:t,description:"defines the step of the attribute as "+e,async:!1};return n.for(r).define({decorator:Ge,args:[Ve,r,s]}).apply()}function qe(e,t=T.MIN_LENGTH){const r=y.MIN_LENGTH,s={[y.MIN_LENGTH]:e,message:t,description:`defines the min length of the attribute as ${e} (applies to strings or lists)`,async:!1};return n.for(r).define({decorator:Ge,args:[qe,r,s]}).apply()}function Xe(e,t=T.MAX_LENGTH){const r=y.MAX_LENGTH,s={[y.MAX_LENGTH]:e,message:t,description:`defines the max length of the attribute as ${e} (applies to strings or lists)`,async:!1};return n.for(r).define({decorator:Ge,args:[Xe,r,s]}).apply()}function Be(e,t=T.PATTERN){const r=y.PATTERN,s={[y.PATTERN]:"string"==typeof e?e:e.toString(),message:t,description:`assigns the ${"string"===e?e:e.toString()} pattern to the attribute`,async:!1};return n.for(r).define({decorator:Ge,args:[Be,r,s]}).apply()}function Ke(e=T.EMAIL){const t=y.EMAIL,r={[y.PATTERN]:A.EMAIL.toString(),message:e,description:"marks the attribute as an email",async:!1};return n.for(t).define({decorator:Ge,args:[Ke,t,r]}).apply()}function We(e=T.URL){const t=y.URL,r={[y.PATTERN]:A.URL.toString(),message:e,description:"marks the attribute as an url",async:!1};return n.for(t).define({decorator:Ge,args:[We,t,r]}).apply()}function Ze(e,t=T.TYPE){const r=y.TYPE,s={customTypes:e,message:t,description:"defines the accepted types for the attribute",async:!1};return n.for(r).define({decorator:Ge,args:[Ze,r,s]}).apply()}function Je(e="dd/MM/yyyy",t=T.DATE){const r=y.DATE;return n.for(r).define({decorator:function(e,t){const s={[y.FORMAT]:e,message:t,description:"defines the attribute as a date with the format "+e,async:!1};return function(t,n){const i=new WeakMap;return Object.defineProperty(t,n,{configurable:!0,set(t){const r=Object.getOwnPropertyDescriptor(this,n);r&&!r.configurable||Object.defineProperty(this,n,{enumerable:!0,configurable:!1,get:()=>i.get(this),set:t=>{let r;try{r=w(e,t),i.set(this,r)}catch(e){}}}),this[n]=t},get(){return i.get(this)}}),Ge(Je,r,s)(t,n)}},args:[e,t]}).apply()}function et(e=A.PASSWORD.CHAR8_ONE_OF_EACH,t=T.PASSWORD){const r=y.PASSWORD,s={[y.PATTERN]:e.toString(),message:t,description:"attribute as a password",async:!1};return n.for(r).define({decorator:Ge,args:[et,r,s]}).apply()}function tt(e,t="Array",r=T.LIST){const s=y.LIST,i={clazz:Array.isArray(e)?e:[e],type:t,message:r,async:!1,description:`defines the attribute as a ${t} of ${e.name}`};return n.for(s).define({decorator:Ge,args:[tt,s,i]}).apply()}function rt(e,t=T.LIST){return tt(e,"Set",t)}function st(e,t){return Ge(st,y.EQUALS,{label:t?.label||e,message:t?.message||T.EQUALS,[y.EQUALS]:e,description:"defines attribute as equal to "+e,async:!1})}function nt(e,t){return Ge(nt,y.DIFF,{label:t?.label||e,message:t?.message||T.DIFF,[y.DIFF]:e,description:"defines attribute as different to "+e,async:!1})}function it(e,t){return Ge(it,y.LESS_THAN,{label:t?.label||e,message:t?.message||T.LESS_THAN,[y.LESS_THAN]:e,description:"defines attribute as less than to "+e,async:!1})}function at(e,t){return Ge(at,y.LESS_THAN_OR_EQUAL,{label:t?.label||e,message:t?.message||T.LESS_THAN_OR_EQUAL,[y.LESS_THAN_OR_EQUAL]:e,description:"defines attribute as less or equal to "+e,async:!1})}function ot(e,t){return Ge(ot,y.GREATER_THAN,{label:t?.label||e,message:t?.message||T.GREATER_THAN,[y.GREATER_THAN]:e,description:"defines attribute as greater than "+e,async:!1})}function ct(e,t){return Ge(ct,y.GREATER_THAN_OR_EQUAL,{label:t?.label||e,message:t?.message||T.GREATER_THAN_OR_EQUAL,[y.GREATER_THAN_OR_EQUAL]:e,description:"defines attribute as greater or equal to "+e,async:!1})}function ut(e,t=T.ENUM){const r=y.ENUM,s={[y.ENUM]:e,message:t,description:"defines a list or an object of accepted values for the attribute",async:!1};return n.for(r).define({decorator:Ge,args:[ut,r,s]}).apply()}function lt(e,...t){const r=(...t)=>new e(...t);return r.prototype=e.prototype,r(...t)}function dt(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")}function ft(e){if(e instanceof me)return;function t(e,t){Object.setPrototypeOf(e,t)}const r=Object.getPrototypeOf(e);if(r===Object.prototype)return t(e,me.prototype);for(;r!==Object.prototype;){const e=Object.getPrototypeOf(r);if(e===Object.prototype||Object.getPrototypeOf(e)===Object.prototype)return t(r,me.prototype)}throw Error("Could not find proper prototype to bind")}function ht(e){const t=(...t)=>{const r=lt(e,...t);ft(r);const s=me.getBuilder();return s&&s(r,t.length?t[0]:void 0),r};return t.prototype=e.prototype,Object.defineProperty(t,"name",{writable:!1,enumerable:!0,configurable:!1,value:e.prototype.constructor.name}),r(d.CONSTRUCTOR,e)(t),me.register(t,e.name),t}function gt(){const e=d.MODEL;return n.for(e).define(ht).apply()}function pt(e,...t){return r(d.HASHING,{algorithm:e,args:t})}function mt(e,...t){return r(d.SERIALIZATION,{serializer:e,args:t})}Fe=c([Ee(y.URL),u("design:paramtypes",[String])],Fe);class yt{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=yt.asMeta(e),r="string"==typeof e?e:yt.resolveMessage(t);return this.decorate(Ye(r))}min(e,t){const r=yt.asMeta(e),s=r?.[y.MIN]??(r?void 0:e);if(void 0===s)throw Error(`Missing ${y.MIN} for ${this.attr+""}`);return this.decorate(Qe(s,yt.resolveMessage(r,t)))}max(e,t){const r=yt.asMeta(e),s=r?.[y.MAX]??(r?void 0:e);if(void 0===s)throw Error(`Missing ${y.MAX} for ${this.attr+""}`);return this.decorate(ke(s,yt.resolveMessage(r,t)))}step(e,t){const r=yt.asMeta(e),s=r?.[y.STEP]??(r?void 0:e);if(void 0===s)throw Error(`Missing ${y.STEP} for ${this.attr+""}`);return this.decorate(Ve(s,yt.resolveMessage(r,t)))}minlength(e,t){const r=yt.asMeta(e),s=r?.[y.MIN_LENGTH]??(r?void 0:e);if(void 0===s)throw Error(`Missing ${y.MIN_LENGTH} for ${this.attr+""}`);return this.decorate(qe(s,yt.resolveMessage(r,t)))}maxlength(e,t){const r=yt.asMeta(e),s=r?.[y.MAX_LENGTH]??(r?void 0:e);if(void 0===s)throw Error(`Missing ${y.MAX_LENGTH} for ${this.attr+""}`);return this.decorate(Xe(s,yt.resolveMessage(r,t)))}pattern(e,t){const r=yt.asMeta(e),s=r?.[y.PATTERN]??(r?void 0:e),n=yt.patternFromString(s)??/.*/;return this.decorate(Be(n,yt.resolveMessage(r,t)))}email(e){const t=yt.asMeta(e),r="string"==typeof e?e:yt.resolveMessage(t);return this.decorate(Ke(r))}url(e){const t=yt.asMeta(e),r="string"==typeof e?e:yt.resolveMessage(t);return this.decorate(We(r))}type(e,t){const r=yt.asMeta(e),s=r?.customTypes??r?.type??(r?void 0:e);return this.decorate(Ze(s,yt.resolveMessage(r,t)))}date(e,t){const r=yt.asMeta(e),s=r?.[y.FORMAT]??(r?void 0:e);return this.decorate(Je(s,yt.resolveMessage(r,t)))}password(e,t){const r=yt.asMeta(e),s=r?.[y.PATTERN]??(r?void 0:e),n=yt.patternFromString(s);return this.decorate(et(n,yt.resolveMessage(r,t)))}list(e,t,r){const s=yt.asMeta(e),n=s?.clazz??(s?void 0:e),i=s?.type??t;return this.decorate(tt(n,i,yt.resolveMessage(s,r)))}set(e,t){return yt.isMetadataPayload(e)?this.list(e):this.list(e,"Set",t)}enum(e,t){const r=yt.asMeta(e),s=r?.[y.ENUM]??(r?void 0:e);return this.decorate(ut(s,yt.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 yt.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 s=yt.asMeta(e);return s?{target:s[t],options:{label:s.label,message:s.message}}:{target:e,options:r}}equals(e,t){const{target:r,options:s}=this.resolveComparison(e,y.EQUALS,t);return this.decorate(st(r,s))}eq(e,t){return this.equals(e,t)}different(e,t){const{target:r,options:s}=this.resolveComparison(e,y.DIFF,t);return this.decorate(nt(r,s))}diff(e,t){return this.different(e,t)}lessThan(e,t){const{target:r,options:s}=this.resolveComparison(e,y.LESS_THAN,t);return this.decorate(it(r,s))}lt(e,t){return this.lessThan(e,t)}lessThanOrEqual(e,t){const{target:r,options:s}=this.resolveComparison(e,y.LESS_THAN_OR_EQUAL,t);return this.decorate(at(r,s))}lte(e,t){return this.lessThanOrEqual(e,t)}greaterThan(e,t){const{target:r,options:s}=this.resolveComparison(e,y.GREATER_THAN,t);return this.decorate(ot(r,s))}gt(e,t){return this.greaterThan(e,t)}greaterThanOrEqual(e,t){const{target:r,options:s}=this.resolveComparison(e,y.GREATER_THAN_OR_EQUAL,t);return this.decorate(ct(r,s))}gte(e,t){return this.greaterThanOrEqual(e,t)}description(e){return this.decorate(i(e))}build(e){const t=e.prototype,r=this.attr;Object.getOwnPropertyDescriptor(t,r)||Object.defineProperty(t,r,{configurable:!0,enumerable:!0,writable:!0,value:void 0}),this.declaredType&&Reflect.defineMetadata(a.DESIGN_TYPE,this.declaredType,t,r),o()(t,r),this.decorators.forEach(e=>{try{e(t,r)}catch(e){throw Error(`Failed to apply decorator to property "${this.attr}": ${e}`)}})}}class Et{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=bt.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,s)=>(r=Reflect.apply(e,t,s),this.parent)}),e}}class bt extends l{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 s=new yt(this,e,t);return this.attributes.set(e,s),s}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 bt;return t.build=new Proxy(t.build,{apply:(t,r,s)=>{const n=Reflect.apply(t,r,s);return this.instance(n,e)}}),t}listOf(e,t="Array"){const r="Set"===t?Set:Array,s=this.attribute(e,r);return new Et(this,s,t)}build(){if(!this._name)throw Error("name is required");const e=this._parent??me;class t extends e{constructor(e){super(e)}}Object.defineProperty(t,"name",{value:this._name,writable:!1});for(const e of this.attributes.values())e.build(t);let r=gt()(t);return this._description&&(r=i(this._description)(r)),r}static builder(){return new bt}static from(e,t){if(!e)throw Error("metadata is required");const r=bt.builder(),s=t??"GeneratedModel"+Date.now();r.setName(s);const n=e.properties||{},i=e.validation||{};for(const[e,t]of Object.entries(n)){const s=r.attribute(e,t||Object),n=i[e];if(n)for(const[e,t]of Object.entries(n)){const r=s[e];if("function"!=typeof r)try{const r=J.decoratorFromKey(e),n="function"==typeof r?r(t):r;s.decorate(n)}catch{}else r.call(s,t)}}return r.build()}}const Tt="##VERSION##",At="##PACKAGE##";e.registerLibrary(At,Tt);export{R as ASYNC_META_KEY,ye as AsyncValidator,yt as AttributeBuilder,S as COMPARISON_ERROR_MESSAGES,m as ComparisonValidationKeys,b as DAYS_OF_WEEK_NAMES,T as DEFAULT_ERROR_MESSAGES,A as DEFAULT_PATTERNS,be as DateValidator,H as DefaultHashingMethod,f as DefaultSerializationMethod,Te as DiffValidator,Oe as EmailValidator,Se as EqualsValidator,Re as GreaterThanOrEqualValidator,Me as GreaterThanValidator,C as Hashing,h as JSONSerializer,Pe as LessThanOrEqualValidator,ve as LessThanValidator,_e as ListValidator,E as MONTH_NAMES,Le as MaxLengthValidator,Ie as MaxValidator,we as MinLengthValidator,De as MinValidator,me as Model,bt as ModelBuilder,p as ModelErrorDefinition,d as ModelKeys,ge as ModelRegistryManager,je as OptionValidator,At as PACKAGE_NAME,Ue as PasswordValidator,z as PathProxyEngine,Ne as PatternValidator,ue as Primitives,He as RequiredValidator,le as ReservedModels,g as Serialization,Ce as StepValidator,xe as TypeValidator,Fe as URLValidator,M as VALIDATION_PARENT_KEY,Tt as VERSION,J as Validation,y as ValidationKeys,W as Validator,Z as ValidatorRegistry,$e as async,P as bindDateToString,ft as bindModelPrototype,pe as bulkModelRegister,V as checkType,q as checkTypes,lt as construct,Je as date,v as dateFromFormat,nt as diff,Ke as email,st as eq,X as evaluateDesignTypes,dt as findLastProtoBeforeObject,I as formatDate,ot as gt,ct as gte,j as hashCode,U as hashObj,pt as hashedBy,Ge as innerValidationDecorator,D as isEqual,k as isGreaterThan,Q as isLessThan,_ as isValidDate,Y as isValidForGteOrLteComparison,de as jsTypes,tt as list,it as lt,at as lte,ke as max,Xe as maxlength,Qe as min,qe as minlength,gt as model,ht as modelBaseDecorator,ut as option,w as parseDate,et as password,Be as pattern,Ae as regexpParser,Ye as required,mt as serializedBy,rt as set,O as sf,Ve as step,N as stringFormat,ee as toConditionalPromise,L as twoDigitPad,Ze as type,We as url,ce as validate,ne as validateChildValue,ae as validateDecorator,oe as validateDecorators,ze as validationMetadata,Ee as validator,B as valueLength};
1
+ import{Metadata as e,apply as t,metadata as r,propMetadata as s,Decoration as n,description as i,DecorationKeys as a,prop as o}from"@decaf-ts/decoration";import{__decorate as c,__metadata as u}from"tslib";import{ObjectAccumulator as l}from"typed-object-accumulator";var d;(e=>{e.DESCRIPTION="description",e.TYPE="design:type",e.MODEL="model",e.ANCHOR="__model",e.CONSTRUCTION="constructed-by",e.ATTRIBUTE="__attributes",e.HASHING="hashing",e.SERIALIZATION="serialization",e.DECORATORS="decorators",e.CONSTRUCTOR="__original"})(d||(d={}));const f="json";class h{constructor(){}preSerialize(t,...r){const s=Object.assign({},t);let n;try{n=e.modelName(t.constructor)}catch(e){n=void 0}return s[d.ANCHOR]=n||t.constructor.name,s}deserialize(e,...t){const r=JSON.parse(e),s=r[d.ANCHOR];if(!s)throw Error("Could not find class reference in serialized model");return me.build(r,s)}serialize(e,...t){return JSON.stringify(this.preSerialize(e))}}class g{static{this.current=f}static{this.cache={json:new h}}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 p{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 s=Object.keys(e[r]).reduce((t,s)=>(t?t+="\n"+e[r][s]:t=e[r][s],t),void 0);return s&&(s=`${r} - ${s}`,t?t+="\n"+s:t=s),t},"")}}const m={EQUALS:"equals",DIFF:"different",LESS_THAN:"lessThan",LESS_THAN_OR_EQUAL:"lessThanOrEqual",GREATER_THAN:"greaterThan",GREATER_THAN_OR_EQUAL:"greaterThanOrEqual"},y={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",...m},E=["January","February","March","April","May","June","July","August","September","October","November","December"],b=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],T={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}"},A={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 N(e,...t){return e.replace(/{(\d+)}/g,(e,r)=>void 0!==t[r]?t[r].toString():"undefined")}const O=N,S={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"},M=Symbol("_parent"),R=Symbol("isAsync");function v(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 s=RegExp(r,"g").exec(e);if(!s||!s.groups)return new Date(e);const n=e=>{if(!e)return 0;const t=parseInt(e);return isNaN(t)?0:t},i=n(s.groups.year),a=n(s.groups.day),o=s.groups.ampm;let c=n(s.groups.hour);o&&(c="PM"===o?c+12:c);const u=n(s.groups.minutes),l=n(s.groups.seconds),d=n(s.groups.milis),f=s.groups.monthname,h=s.groups.monthnamesmall;let g=s.groups.month;if(f)g=E.indexOf(f);else if(h){const t=E.find(e=>e.toLowerCase().startsWith(h.toLowerCase()));if(!t)return new Date(e);g=E.indexOf(t)}else g=n(""+g);return new Date(i,g-1,a,c,u,l,d)}function P(e,t){if(e)return Object.defineProperty(e,"toISOString",{enumerable:!1,configurable:!1,value:new Proxy(e.toISOString,{apply:(e,r)=>w(r,t)})}),Object.defineProperty(e,"toString",{enumerable:!1,configurable:!1,value:new Proxy(e.toISOString,{apply:(e,r)=>w(r,t)})}),e}function _(e){return e&&"[object Date]"===Object.prototype.toString.call(e)&&!Number.isNaN(e)}function L(e){return 10>e?"0"+e:e.toString()}function w(e,t="yyyy/MM/dd"){const r=e.getDate(),s=e.getMonth(),n=e.getFullYear(),i=e.getHours(),a=e.getMinutes(),o=e.getSeconds(),c=e.getMilliseconds(),u=i%12,l=L(u),d=L(i),f=L(a),h=L(o),g=12>i?"AM":"PM",p=b[e.getDay()],m=p.substr(0,3),y=L(r),T=s+1,A=L(T),N=E[s],O=N.substr(0,3),S=n+"",M=S.substr(2,2);return(t=t.replace("hh",l).replace("h",u.toString()).replace("HH",d).replace("H",i.toString()).replace("mm",f).replace("m",a.toString()).replace("ss",h).replace("s",o.toString()).replace("S",c.toString()).replace("dd",y).replace("d",r.toString()).replace("EEEE",p).replace("EEE",m).replace("yyyy",S).replace("yy",M).replace("aaa",g)).indexOf("MMM")>-1?t.replace("MMMM",N).replace("MMM",O):t.replace("MM",A).replace("M",T.toString())}function I(e,t){let r;if(t){if(t instanceof Date)try{r=v(w(t,e),e)}catch(r){throw Error(O("Could not convert date {0} to format: {1}",t.toString(),e))}else if("string"==typeof t)r=v(t,e);else if("number"==typeof t)r=v(w(new Date(t),e),e);else{if(!_(t))throw Error("Invalid value provided "+t);try{r=v(w(new Date(t),e),e)}catch(r){throw Error(O("Could not convert date {0} to format: {1}",t,e))}}return P(r,e)}}function D(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 s=0;s<e.length;s++)if(!D(e[s],t[s],...r))return!1;return!0}if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[s,n]of e)if(!t.has(s)||!D(n,t.get(s),...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),s=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);for(let e=0;e<r.length;e++)if(r[e]!==s[e])return!1;return!0}const s=Object.keys(e).filter(e=>!r.includes(e)),n=Object.keys(t).filter(e=>!r.includes(e));if(s.length!==n.length)return!1;for(const i of s){if(!n.includes(i))return!1;if(!D(e[i],t[i],...r))return!1}const i=Object.getOwnPropertySymbols(e).filter(e=>!r.includes(e.toString())),a=Object.getOwnPropertySymbols(t).filter(e=>!r.includes(e.toString()));if(i.length!==a.length)return!1;for(const s of i){if(!a.includes(s))return!1;if(!D(e[s],t[s],...r))return!1}return Object.getPrototypeOf(e)===Object.getPrototypeOf(t)}function j(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 U(e){const t=(e,t)=>{const r=s(t);return"string"==typeof r?s((e||"")+s(t)):(e=((e=e||0)<<5)-e+r)&e},r=j,s=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),n=Object.values(e).reduce(t,0);return("number"==typeof n?Math.abs(n):n).toString()}const H="default";class C{static{this.current=H}static{this.cache={default:U}}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 x=e=>e[M],F=(e,t)=>{if(!Object.prototype.hasOwnProperty.call(e,t))throw Error(O(S.PROPERTY_NOT_EXIST,t));return e[t]};class z{static create(e,t){const{getValue:r,getParent:s,ignoreUndefined:n,ignoreNull:i}={getParent:x,getValue:F,ignoreNull:!1,ignoreUndefined:!1,...t},a=new Proxy({},{get:(t,a)=>"getValueFromPath"===a?t=>{const a=z.parsePath(t);let o=e;for(let e=0;e<a.length;e++){const c=a[e];if(".."===c){const r=s(o);if(!r||"object"!=typeof r)throw Error(O(S.CONTEXT_NOT_OBJECT_COMPARISON,e+1,t));o=r;continue}if(o=r(o,c),!n&&void 0===o)throw Error(O(S.PROPERTY_INVALID,t,c));if(!i&&null===o)throw Error(O(S.PROPERTY_INVALID,t,c))}return o}:t[a]});return a}static parsePath(e){if("string"!=typeof e||!e.trim())throw Error(O(S.INVALID_PATH,e));return e.match(/(\.\.|[^/.]+)/g)||[]}}const G=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,$=e=>void 0===e||e instanceof Date||"bigint"==typeof e||"number"==typeof e&&Number.isFinite(e);function Y(e,t){if($(e)&&$(t))return!0;throw new TypeError(O(S.UNSUPPORTED_TYPES_COMPARISON,G(e),G(t)))}function Q(e,t){if([null,void 0].includes(e)||[null,void 0].includes(t))throw Error(S.NULL_OR_UNDEFINED_COMPARISON);const r=typeof e,s=typeof t;if(r!==s){if("bigint"===r&&"number"===s)return t>Number(e);if("number"===r&&"bigint"===s)return Number(t)>e;throw new TypeError(O(S.TYPE_MISMATCH_COMPARISON,r,s))}if("number"===r&&"number"===s||"bigint"===r&&"bigint"===s){if(Number.isNaN(e)||Number.isNaN(t))throw new TypeError(S.NAN_COMPARISON);return t>e}if(e instanceof Date&&t instanceof Date){if(isNaN(e.getTime())||isNaN(t.getTime()))throw new TypeError(S.INVALID_DATE_COMPARISON);return e.getTime()<t.getTime()}throw new TypeError(O(S.UNSUPPORTED_TYPES_COMPARISON,G(e),G(t)))}function k(e,t){if([null,void 0].includes(e)||[null,void 0].includes(t))throw Error(S.NULL_OR_UNDEFINED_COMPARISON);const r=typeof e,s=typeof t;if(r!==s){if("bigint"===r&&"number"===s)return Number(e)>t;if("number"===r&&"bigint"===s)return e>Number(t);throw Error(O(S.TYPE_MISMATCH_COMPARISON,r,s))}if("number"===r&&"number"===s||"bigint"===r&&"bigint"===s){if(Number.isNaN(e)||Number.isNaN(t))throw new TypeError(S.NAN_COMPARISON);return e>t}if(e instanceof Date&&t instanceof Date){if(isNaN(e.getTime())||isNaN(t.getTime()))throw new TypeError(S.INVALID_DATE_COMPARISON);return e.getTime()>t.getTime()}throw new TypeError(O(S.UNSUPPORTED_TYPES_COMPARISON,G(e),G(t)))}function V(e,t){return typeof e===t.toLowerCase()||void 0!==e&&"object"==typeof e&&e.constructor&&e.constructor.name.toLowerCase()===t.toLowerCase()}function q(e,t){return!t.every(t=>!V(e,t))}function X(e,t){switch(typeof t){case"string":return V(e,t);case"object":return!Array.isArray(t)||q(e,t);case"function":return!t.name||"Object"===t.name||V(e,t.name);default:return!0}}function B(e){return e instanceof Set||e instanceof Map?e.size:e.length}class K{constructor(e,t=T.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 O(e,...t)}checkTypeAndHasErrors(e){return function(t,r,s,...n){return void 0!==t&&this.acceptedTypes?q(t,this.acceptedTypes)?e(t,r,s,...n):this.getMessage(T.TYPE,this.acceptedTypes.join(", "),"number"!=typeof t?typeof t:isNaN(t)?"NaN":typeof t):e(t,r,s,...n)}.bind(this)}static isValidator(e){return e.constructor&&!!e.hasErrors}}class W extends K{constructor(e=T.DEFAULT,...t){super(!1,e,...t)}}class Z{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(W.isValidator(t))return t;const r=new(t.default||t);return this.cache[e]=r,r}register(...e){e.forEach(e=>{if(W.isValidator(e)){if(e.validationKey in this.cache)return;this.cache[e.validationKey]=e}else{const{validationKey:t,validator:r,save:s}=e;if(t in this.cache)return;if(this.cache[t]=r,!s)return;const n={};n[t.toUpperCase()]=t,this.customKeyCache=Object.assign({},this.customKeyCache,n)}})}}class J{static{this.actingValidatorRegistry=void 0}constructor(){}static setRegistry(e,t){t&&J.actingValidatorRegistry&&J.actingValidatorRegistry.getKeys().forEach(r=>{const s=e.get(r);s&&e.register(t(s))}),J.actingValidatorRegistry=e}static getRegistry(){return J.actingValidatorRegistry||(J.actingValidatorRegistry=new Z),J.actingValidatorRegistry}static get(e){return J.getRegistry().get(e)}static register(...e){return J.getRegistry().register(...e)}static key(e){return y.REFLECT+e}static keys(){return this.getRegistry().getKeys()}static registerDecorator(t,r){const s=e.innerGet(Symbol.for(d.DECORATORS),e.key(y.REFLECT,t));s?.[t]||e.set(d.DECORATORS,e.key(y.REFLECT,t),r)}static decoratorFromKey(t){try{return e.innerGet(Symbol.for(d.DECORATORS),e.key(y.REFLECT,t))}catch(e){throw Error(`No decorator registered under ${t}: ${e}`)}}}function ee(e,t){return t?Promise.resolve(e):e}function te(e,t,r){Object.hasOwnProperty.call(e,t)||(e[t]=r)}function re(e,t){Object.hasOwnProperty.call(e,t)&&delete e[t]}function se(e,t,r,...s){t&&te(e,M,t),te(e,R,!!r);const n=e.hasErrors(...s);return re(e,M),re(e,R),n}function ne(e,t,r,s,n,...i){let a,o=!1;for(const c of s){const s=me.get(c);if(s||(a=new p({[e]:{[y.TYPE]:"Unable to verify type consistency, missing model registry for "+c}})),t instanceof s){o=!0,a=se(t,r,n,...i);break}}return o?a:a||new p({[e]:{[y.TYPE]:"Value must be an instance of one of the expected types: "+s.join(", ")}})}function ie(e,...t){return t?.map(t=>("string"==typeof t&&t?.startsWith(e+".")&&(t=t.replace(e+".","")),t))}function ae(e,t,r,s){const n=J.get(r.key);if(!n)throw Error("Missing validator for "+r.key);if(!s&&r.async)return;const i=r.key===d.TYPE?[r]:r||{},a=z.create(e,{ignoreUndefined:!0,ignoreNull:!0}),o=r.key===d.TYPE?i[0]:i;return ee(n.hasErrors(t,o,a),s)}function oe(e,t,r,s,n,...i){const a={};for(const o in s){const c={...s[o],key:o};if(!n&&c.async)continue;let u=ae(e,r,c,n);if(o===y.LIST&&(!u||n)){const s=r instanceof Set?[...r]:r;if(s&&s.length>0){let r=c.class||c.clazz||c.customTypes;r=(Array.isArray(r)?r:[r]).map(e=>(e="function"!=typeof e||e.name?e:e()).name?e.name:e);const a=[r].flat().map(e=>(e+"").toLowerCase()),o=s.map(s=>{if(me.isModel(s)){const a=ie(t,...i);return ne(t,s,e,r.flat(),!!n,...a)}return a.includes(typeof s)?void 0:"Value has no validatable type"});if(n)u=Promise.all(o).then(e=>e.every(e=>!e)?void 0:e);else{const e=o.every(e=>!e);u=o.length>0&&!e?o:void 0}}}const l=o===d.TYPE?y.TYPE:o;u&&(a[l]=u)}if(!n)return Object.keys(a).length>0?a:void 0;const o=Object.keys(a),c=Object.values(a);return Promise.all(c).then(e=>{const t={};for(let r=0;r<e.length;r++){const s=e[r];void 0!==s&&(t[o[r]]=s)}return Object.keys(t).length>0?t:void 0})}function ce(t,r,...s){const n=e.validatableProperties(t.constructor,...s),i={},a={};for(const o of n){const n=o+"",c=t[o],u=e.validationFor(t.constructor,o)||{},{designTypes:l,designType:f}=e.getPropDesignTypes(t.constructor,o);if(!l)continue;if(l.some(e=>[Array.name,Set.name].includes(e.name))){if(!u||!Object.keys(u).includes(y.LIST)){i[n]={[y.TYPE]:`Array or Set property '${n}' requires a @list decorator`};continue}if(c&&!(Array.isArray(c)||c instanceof Set)){i[n]={[y.TYPE]:`Property '${o+""}' must be either an Array or a Set`};continue}}const h=oe(t,n,c,u,r,...s)||{};if(me.isPropertyModel(t,n)&&null!=c){const e=l.map(e=>me.get(e.name||e)).find(e=>!!e),i=l.map(e=>"function"==typeof e?e.name?e.name.toLowerCase():e()?.name.toLowerCase():e.toLowerCase());if(e&&c instanceof e){const e=ie(n,...s);a[n]=se(c,t,r,...e)}else i.includes(typeof c)||(h[y.TYPE]=e?"Value must be an instance of "+e.name:`Unable to verify type consistency, missing model registry for ${l.toString()} on prop ${n}`,delete h[d.TYPE])}(Object.keys(h).length>0||r)&&(i[n]=h),r||Object.entries(a[n]||{}).forEach(([e,t])=>{void 0!==t&&(i[`${n}.${e}`]=t)})}if(!r)return Object.keys(i).length>0?new p(i):void 0;const o=i,c=Object.keys(o),u=Object.values(o);return Promise.allSettled(u).then(async e=>{const t={};for(const[e,r]of Object.entries(a)){const s=await r;s&&Object.entries(s).forEach(([r,s])=>{void 0!==s&&(t[[e,r].join(".")]=s)})}for(let r=0;r<e.length;r++){const s=c[r],n=e[r];"fulfilled"===n.status&&void 0!==n.value?t[s]=n.value:"rejected"===n.status&&(t[s]=n.reason instanceof Error?n.reason.message:(n.reason||"Validation failed")+"")}return Object.keys(t).length>0?new p(t):void 0})}var ue;(e=>{e.STRING="string",e.NUMBER="number",e.BOOLEAN="boolean",e.BIGINT="bigint"})(ue||(ue={}));const le={STRING:String,OBJECT:Object,NUMBER:Number,BOOLEAN:Boolean,BIGINT:BigInt,DATE:Date},de=["string","array","number","boolean","symbol","function","object","undefined","null","bigint"];let fe,he;class ge{constructor(e=me.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(t={},r){if(!r&&!this.testFunction(t))throw Error("Provided obj is not a Model object");const s=r||e.modelName(t.constructor);if(!(s in this.cache))throw Error(`Provided class ${s} is not a registered Model object`);return new this.cache[s](t)}}function pe(...e){e.forEach(e=>{const t=e.constructor?e.constructor:e;me.register(t,e.name)})}class me{constructor(e=void 0){}isAsync(){return!!(this[R]??this?.constructor[R])}hasErrors(...e){return ce(this,this.isAsync(),...e)}equals(e,...t){return D(this,e,...t)}compare(t,...r){const s=e.properties(this.constructor);if(!s||!s.length)return;const n=s.reduce((e,s)=>{const n=s;if(r.includes(n))return e;if(void 0===this[n]&&void 0!==t[n])return e[n]={other:t[n],current:void 0},e;if(void 0!==this[n]&&void 0===t[n])return e[n]={other:void 0,current:this[n]},e;if(D(this[n],t[n]))return e;if(me.isPropertyModel(this,n)){const r=this[n].compare(t[n]);return r&&(e[n]=r),e}if(Array.isArray(this[n])&&Array.isArray(t[n])){if(this[n].length!==t[n].length)return e[n]={current:this[n],other:t[n]},e;const r=this[n].map((e,r)=>D(e,t[n][r])?null:e instanceof me&&t[n][r]instanceof me?e.compare(t[n][r]):{current:e,other:t[n][r]});return r.some(e=>null!==e)&&(e[n]=r),e}return e[n]={other:t[n],current:this[n]},e},{});return Object.keys(n).length>0?n:void 0}serialize(){return me.serialize(this)}toString(){return this.constructor.name+": "+JSON.stringify(this,void 0,2)}hash(){return me.hash(this)}static deserialize(t){let r;try{r=e.get(this.constructor,d.SERIALIZATION)}catch(e){r=void 0}return r&&r.serializer?g.deserialize(t,r.serializer,...r.args||[]):g.deserialize(t)}static fromObject(e,t){t||(t={});for(const r of me.getAttributes(e))e[r]=t[r]??e[r]??void 0;return e}static fromModel(t,r){let s;r||(r={});const n=me.getAttributes(t),i=Object.getPrototypeOf(t);let a;for(const o of n){try{t[o]=r[o]??t[o]??void 0}catch(e){if(a=Object.getOwnPropertyDescriptor(i,o),!a||a.writable)throw Error(`Unable to write property ${o} to model: ${e}`)}if("object"!=typeof t[o])continue;const n=me.isPropertyModel(t,o);if(n){try{t[o]=me.build(t[o],"string"==typeof n?n:void 0)}catch(e){}continue}if(s=e.allowedTypes(t.constructor,o),!s||!s.length)throw Error("failed to find decorators for property "+o);const c=s.map(e=>"function"!=typeof e||e.name?e:e()),u=Object.values(le);c.forEach(r=>{if(!u.includes(r))try{switch(r.name){case"Array":case"Set":{const s=e.validationFor(t.constructor,o);if(!s||!s[y.LIST])break;const n=s[y.LIST].clazz.map(e=>"function"!=typeof e||e.name?e:e()).find(e=>!de.includes(e.name));if("Array"===r.name&&(t[o]=t[o].map(e=>["object","function"].includes(typeof e)&&n?me.build(e,n.name):e)),"Set"===r.name){const e=new Set;for(const r of t[o])["object","function"].includes(typeof r)&&n?e.add(me.build(r,n.name)):e.add(r);t[o]=e}break}default:void 0!==t[o]&&me.get(r.name)&&(t[o]=me.build(t[o],r.name))}}catch(e){}})}return t}static setBuilder(e){fe=e}static getBuilder(){return fe||me.fromModel}static getRegistry(){return he||(he=new ge),he}static setRegistry(e){he=e}static register(e,t){return me.getRegistry().register(e,t)}static get(e){return me.getRegistry().get(e)}static build(e={},t){return me.getRegistry().build(e,t)}static getAttributes(t){const r=t instanceof me?t.constructor:t,s=new Set,n=t=>{if(!t)return[];const r=n(Object.getPrototypeOf(t)),i=e.properties(t)??[];for(const e of i)s.has(e)||(s.add(e),r.push(e));return r};return n(r)}static equals(e,t,...r){return D(e,t,...r)}static hasErrors(e,t,...r){return ce(e,t,...r)}static serialize(t){let r;try{r=e.get(t.constructor,d.SERIALIZATION)}catch(e){r=void 0}return r&&r.serializer?g.serialize(this,r.serializer,...r.args||[]):g.serialize(t)}static hash(t){const r=e.get(t.constructor,d.HASHING);return r&&r.algorithm?C.hash(t,r.algorithm,...r.args||[]):C.hash(t)}static isModel(t){try{if(t instanceof me)return!0;const r=e.constr(t);return!(!r||r===t||!e.modelName(r))}catch(e){return!1}}static isPropertyModel(t,r){if(me.isModel(t[r]))return!0;const s=e.type(t.constructor,r);return s&&me.get(s.name)?s.name:void 0}static describe(t,r){return e.description(t,r)}}e.validationFor=((t,r,s)=>{const n=e.get(t);if(!n)return;if(!r)return n.validation;if(!n.validation)return;if(!n.validation[y.TYPE]){const{designTypes:s}=e.getPropDesignTypes(t,r);n.validation[r]&&s?.length&&s[0]!==le.OBJECT&&(n.validation[r][y.TYPE]={customTypes:s,message:T.TYPE,description:"defines the accepted types for the attribute",async:!1})}if(!s)return n.validation[r];const i=n.validation[r];return i?i[s]:void 0}).bind(e),e.modelName=(t=>{const r=e.constr(t);return r?r.name:t.name}).bind(e),e.validatableProperties=((t,...r)=>{const s=e.validationFor(t),n=s?Object.keys(s):[];return[...new Set([...me.getAttributes(t),...n])].filter(e=>!r||!r?.includes(e))}).bind(e),e.allowedTypes=((t,r)=>{const s=e.type(t,r);if(!s)throw Error("No metadata found for property "+r);const n=e.validationFor(t,r);return n&&n[y.TYPE]&&"function"==typeof n[y.TYPE]?.customTypes[Symbol.iterator]?[...n[y.TYPE].customTypes]:[s]}).bind(e),e.getPropDesignTypes=((t,r)=>{const s=e.get(t),n=e.type(t,r),i=s?.[y.REFLECT]?.[r];if(!(n||i&&i[y.TYPE]))return{};const a=i&&i[y.TYPE]?[i[y.TYPE].customTypes]:[n];if(!a?.length)return{};const o=a[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(e);class ye extends K{constructor(e=T.DEFAULT,...t){super(!0,e,...t)}}function Ee(...e){return t(t=>(e.forEach(e=>{J.register({validator:t,validationKey:e,save:!0})}),t),r(y.VALIDATOR,e))}let be=class extends W{constructor(e=T.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)}}};be=c([Ee(y.DATE),u("design:paramtypes",[String])],be);let Te=class extends W{constructor(e=T.DIFF){super(e)}hasErrors(e,t,r){let s;try{s=r.getValueFromPath(t[y.DIFF])}catch(e){return this.getMessage(e.message||this.message)}return D(e,s)?this.getMessage(t.message||this.message,t.label||t[y.DIFF]):void 0}};Te=c([Ee(y.DIFF),u("design:paramtypes",[String])],Te);const Ae=RegExp("^/(.+)/([gimus]*)$");let Ne=class extends W{constructor(e=T.PATTERN){super(e,"string")}getPattern(e){if(!Ae.test(e))return RegExp(e);const t=e.match(Ae);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)}};Ne=c([Ee(y.PATTERN),u("design:paramtypes",[String])],Ne);let Oe=class extends Ne{constructor(e=T.EMAIL){super(e)}hasErrors(e,t={}){return super.hasErrors(e,{...t,message:t.message||this.message,pattern:t?.pattern||A.EMAIL})}};Oe=c([Ee(y.EMAIL),u("design:paramtypes",[String])],Oe);let Se=class extends W{constructor(e=T.EQUALS){super(e)}hasErrors(e,t,r){let s;try{s=r.getValueFromPath(t[y.EQUALS])}catch(e){return this.getMessage(e.message||this.message)}return D(e,s)?void 0:this.getMessage(t.message||this.message,t.label||t[y.EQUALS])}};Se=c([Ee(y.EQUALS),u("design:paramtypes",[String])],Se);let Me=class extends W{constructor(e=T.GREATER_THAN){super(e)}hasErrors(e,t,r){let s;try{s=r.getValueFromPath(t[y.GREATER_THAN])}catch(e){return this.getMessage(e.message||this.message)}try{if(!k(e,s))throw Error(t.message||this.message)}catch(e){return this.getMessage(e.message,t.label||t[y.GREATER_THAN])}}};Me=c([Ee(y.GREATER_THAN),u("design:paramtypes",[String])],Me);let Re=class extends W{constructor(e=T.GREATER_THAN_OR_EQUAL){super(e)}hasErrors(e,t,r){let s;try{s=r.getValueFromPath(t[y.GREATER_THAN_OR_EQUAL])}catch(e){return this.getMessage(e.message||this.message)}try{if(Y(e,s)&&D(e,s)||k(e,s))return;throw Error(t.message||this.message)}catch(e){return this.getMessage(e.message,t.label||t[y.GREATER_THAN_OR_EQUAL])}}};Re=c([Ee(y.GREATER_THAN_OR_EQUAL),u("design:paramtypes",[String])],Re);let ve=class extends W{constructor(e=T.LESS_THAN){super(e)}hasErrors(e,t,r){let s;try{s=r.getValueFromPath(t[y.LESS_THAN])}catch(e){return this.getMessage(e.message||this.message)}try{if(!Q(e,s))throw Error(t.message||this.message)}catch(e){return this.getMessage(e.message,t.label||t[y.LESS_THAN])}}};ve=c([Ee(y.LESS_THAN),u("design:paramtypes",[String])],ve);let Pe=class extends W{constructor(e=T.LESS_THAN_OR_EQUAL){super(e)}hasErrors(e,t,r){let s;try{s=r.getValueFromPath(t[y.LESS_THAN_OR_EQUAL])}catch(e){return this.getMessage(e.message||this.message)}try{if(Y(e,s)&&D(e,s)||Q(e,s))return;throw Error(t.message||this.message)}catch(e){return this.getMessage(e.message,t.label||t[y.LESS_THAN_OR_EQUAL])}}};Pe=c([Ee(y.LESS_THAN_OR_EQUAL),u("design:paramtypes",[String])],Pe);let _e=class extends W{constructor(e=T.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 s,n=!0;for(let t=0;t<(Array.isArray(e)?e.length:e.size);t++)switch(s=[...e][t],typeof s){case"object":case"function":n=r.includes((s??{}).constructor?.name);break;default:n=r.some(e=>typeof s===e?.toLowerCase())}return n?void 0:this.getMessage(t.message||this.message,r)}};_e=c([Ee(y.LIST),u("design:paramtypes",[String])],_e);let Le=class extends W{constructor(e=T.MAX_LENGTH){super(e,String.name,Array.name,Set.name,Map.name)}hasErrors(e,t){if(void 0!==e)return B(e)>t.maxlength?this.getMessage(t.message||this.message,t.maxlength):void 0}};Le=c([Ee(y.MAX_LENGTH),u("design:paramtypes",[String])],Le);let we=class extends W{constructor(e=T.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}};we=c([Ee(y.MAX),u("design:paramtypes",[String])],we);let Ie=class extends W{constructor(e=T.MIN_LENGTH){super(e,String.name,Array.name,Set.name,Map.name)}hasErrors(e,t){if(void 0!==e)return B(e)<t.minlength?this.getMessage(t.message||this.message,t.minlength):void 0}};Ie=c([Ee(y.MIN_LENGTH),u("design:paramtypes",[String])],Ie);let De=class extends W{constructor(e=T.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}};De=c([Ee(y.MIN),u("design:paramtypes",[String])],De);let je=class extends W{constructor(e=T.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 s of r)if(t.enum[s]===e)return;return this.getMessage(t.message||this.message,Object.values(t.enum))}}}};je=c([Ee(y.ENUM),u("design:paramtypes",[String])],je);let Ue=class extends Ne{constructor(e=T.PASSWORD){super(e)}hasErrors(e,t={}){return super.hasErrors(e,{...t,message:t.message||this.message,[y.PATTERN]:t?.pattern||A.PASSWORD.CHAR8_ONE_OF_EACH})}};Ue=c([Ee(y.PASSWORD),u("design:paramtypes",[Object])],Ue);let He=class extends W{constructor(e=T.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)}}};He=c([Ee(y.REQUIRED),u("design:paramtypes",[String])],He);let Ce=class extends W{constructor(e=T.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}};Ce=c([Ee(y.STEP),u("design:paramtypes",[String])],Ce);let xe=class extends W{constructor(e=T.TYPE){super(e)}hasErrors(e,t){if(void 0===e)return;const{type:r,message:s,customTypes:n}=t;let i=n||r;return i=(Array.isArray(i)?i:[i]).map(e=>"string"==typeof e?e:("function"!=typeof e||e.name||(e=e()),e.name||e)),X(e,i)?void 0:this.getMessage(s||this.message,"string"==typeof i?i:Array.isArray(i)?i.join(", "):i,typeof e)}};xe=c([Ee(y.TYPE),u("design:paramtypes",[String])],xe),J.register({validator:xe,validationKey:d.TYPE,save:!1});let Fe=class extends Ne{constructor(e=T.URL){super(e)}hasErrors(e,t={}){return super.hasErrors(e,{...t,message:t.message||this.message,pattern:t.pattern||A.URL})}};function ze(e,r,n){return t(s(r,n))}function Ge(e,t,r){return J.registerDecorator(t,e),(e,s)=>ze(0,`${y.REFLECT}.${s}.${t}`,r)(e,s)}function $e(){return e=>{Object.prototype.hasOwnProperty.call(e,R)||(e[R]=!0)}}function Ye(e=T.REQUIRED){const t=y.REQUIRED,r={message:e,description:"defines the attribute as required",async:!1};return n.for(t).define({decorator:Ge,args:[Ye,t,r]}).apply()}function Qe(e,t=T.MIN){const r=y.MIN,s={[y.MIN]:e,message:t,description:`defines the max value of the attribute as ${e} (applies to numbers or Dates)`,async:!1};return n.for(r).define({decorator:Ge,args:[Qe,r,s]}).apply()}function ke(e,t=T.MAX){const r=y.MAX,s={[y.MAX]:e,message:t,description:`defines the max value of the attribute as ${e} (applies to numbers or Dates)`,async:!1};return n.for(r).define({decorator:Ge,args:[ke,r,s]}).apply()}function Ve(e,t=T.STEP){const r=y.STEP,s={[y.STEP]:e,message:t,description:"defines the step of the attribute as "+e,async:!1};return n.for(r).define({decorator:Ge,args:[Ve,r,s]}).apply()}function qe(e,t=T.MIN_LENGTH){const r=y.MIN_LENGTH,s={[y.MIN_LENGTH]:e,message:t,description:`defines the min length of the attribute as ${e} (applies to strings or lists)`,async:!1};return n.for(r).define({decorator:Ge,args:[qe,r,s]}).apply()}function Xe(e,t=T.MAX_LENGTH){const r=y.MAX_LENGTH,s={[y.MAX_LENGTH]:e,message:t,description:`defines the max length of the attribute as ${e} (applies to strings or lists)`,async:!1};return n.for(r).define({decorator:Ge,args:[Xe,r,s]}).apply()}function Be(e,t=T.PATTERN){const r=y.PATTERN,s={[y.PATTERN]:"string"==typeof e?e:e.toString(),message:t,description:`assigns the ${"string"===e?e:e.toString()} pattern to the attribute`,async:!1};return n.for(r).define({decorator:Ge,args:[Be,r,s]}).apply()}function Ke(e=T.EMAIL){const t=y.EMAIL,r={[y.PATTERN]:A.EMAIL.toString(),message:e,description:"marks the attribute as an email",async:!1};return n.for(t).define({decorator:Ge,args:[Ke,t,r]}).apply()}function We(e=T.URL){const t=y.URL,r={[y.PATTERN]:A.URL.toString(),message:e,description:"marks the attribute as an url",async:!1};return n.for(t).define({decorator:Ge,args:[We,t,r]}).apply()}function Ze(e,t=T.TYPE){const r=y.TYPE,s={customTypes:e,message:t,description:"defines the accepted types for the attribute",async:!1};return n.for(r).define({decorator:Ge,args:[Ze,r,s]}).apply()}function Je(e="dd/MM/yyyy",t=T.DATE){const r=y.DATE;return n.for(r).define({decorator:function(e,t){const s={[y.FORMAT]:e,message:t,description:"defines the attribute as a date with the format "+e,async:!1};return function(t,n){const i=new WeakMap;return Object.defineProperty(t,n,{configurable:!0,set(t){const r=Object.getOwnPropertyDescriptor(this,n);r&&!r.configurable||Object.defineProperty(this,n,{enumerable:!0,configurable:!1,get:()=>i.get(this),set:t=>{let r;try{r=I(e,t),i.set(this,r)}catch(e){}}}),this[n]=t},get(){return i.get(this)}}),Ge(Je,r,s)(t,n)}},args:[e,t]}).apply()}function et(e=A.PASSWORD.CHAR8_ONE_OF_EACH,t=T.PASSWORD){const r=y.PASSWORD,s={[y.PATTERN]:e.toString(),message:t,description:"attribute as a password",async:!1};return n.for(r).define({decorator:Ge,args:[et,r,s]}).apply()}function tt(e,t="Array",r=T.LIST){const s=y.LIST,i={clazz:Array.isArray(e)?e:[e],type:t,message:r,async:!1,description:`defines the attribute as a ${t} of ${e.name}`};return n.for(s).define({decorator:Ge,args:[tt,s,i]}).apply()}function rt(e,t=T.LIST){return tt(e,"Set",t)}function st(e,t){return Ge(st,y.EQUALS,{label:t?.label||e,message:t?.message||T.EQUALS,[y.EQUALS]:e,description:"defines attribute as equal to "+e,async:!1})}function nt(e,t){return Ge(nt,y.DIFF,{label:t?.label||e,message:t?.message||T.DIFF,[y.DIFF]:e,description:"defines attribute as different to "+e,async:!1})}function it(e,t){return Ge(it,y.LESS_THAN,{label:t?.label||e,message:t?.message||T.LESS_THAN,[y.LESS_THAN]:e,description:"defines attribute as less than to "+e,async:!1})}function at(e,t){return Ge(at,y.LESS_THAN_OR_EQUAL,{label:t?.label||e,message:t?.message||T.LESS_THAN_OR_EQUAL,[y.LESS_THAN_OR_EQUAL]:e,description:"defines attribute as less or equal to "+e,async:!1})}function ot(e,t){return Ge(ot,y.GREATER_THAN,{label:t?.label||e,message:t?.message||T.GREATER_THAN,[y.GREATER_THAN]:e,description:"defines attribute as greater than "+e,async:!1})}function ct(e,t){return Ge(ct,y.GREATER_THAN_OR_EQUAL,{label:t?.label||e,message:t?.message||T.GREATER_THAN_OR_EQUAL,[y.GREATER_THAN_OR_EQUAL]:e,description:"defines attribute as greater or equal to "+e,async:!1})}function ut(e,t=T.ENUM){const r=y.ENUM,s={[y.ENUM]:e,message:t,description:"defines a list or an object of accepted values for the attribute",async:!1};return n.for(r).define({decorator:Ge,args:[ut,r,s]}).apply()}function lt(e,...t){const r=(...t)=>new e(...t);return r.prototype=e.prototype,r(...t)}function dt(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")}function ft(e){if(e instanceof me)return;function t(e,t){Object.setPrototypeOf(e,t)}const r=Object.getPrototypeOf(e);if(r===Object.prototype)return t(e,me.prototype);for(;r!==Object.prototype;){const e=Object.getPrototypeOf(r);if(e===Object.prototype||Object.getPrototypeOf(e)===Object.prototype)return t(r,me.prototype)}throw Error("Could not find proper prototype to bind")}function ht(e){const t=(...t)=>{const r=lt(e,...t);ft(r);const s=me.getBuilder();return s&&s(r,t.length?t[0]:void 0),r};return t.prototype=e.prototype,Object.defineProperty(t,"name",{writable:!1,enumerable:!0,configurable:!1,value:e.prototype.constructor.name}),r(d.CONSTRUCTOR,e)(t),me.register(t,e.name),t}function gt(){const e=d.MODEL;return n.for(e).define(ht).apply()}function pt(e,...t){return r(d.HASHING,{algorithm:e,args:t})}function mt(e,...t){return r(d.SERIALIZATION,{serializer:e,args:t})}Fe=c([Ee(y.URL),u("design:paramtypes",[String])],Fe);class yt{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=yt.asMeta(e),r="string"==typeof e?e:yt.resolveMessage(t);return this.decorate(Ye(r))}min(e,t){const r=yt.asMeta(e),s=r?.[y.MIN]??(r?void 0:e);if(void 0===s)throw Error(`Missing ${y.MIN} for ${this.attr+""}`);return this.decorate(Qe(s,yt.resolveMessage(r,t)))}max(e,t){const r=yt.asMeta(e),s=r?.[y.MAX]??(r?void 0:e);if(void 0===s)throw Error(`Missing ${y.MAX} for ${this.attr+""}`);return this.decorate(ke(s,yt.resolveMessage(r,t)))}step(e,t){const r=yt.asMeta(e),s=r?.[y.STEP]??(r?void 0:e);if(void 0===s)throw Error(`Missing ${y.STEP} for ${this.attr+""}`);return this.decorate(Ve(s,yt.resolveMessage(r,t)))}minlength(e,t){const r=yt.asMeta(e),s=r?.[y.MIN_LENGTH]??(r?void 0:e);if(void 0===s)throw Error(`Missing ${y.MIN_LENGTH} for ${this.attr+""}`);return this.decorate(qe(s,yt.resolveMessage(r,t)))}maxlength(e,t){const r=yt.asMeta(e),s=r?.[y.MAX_LENGTH]??(r?void 0:e);if(void 0===s)throw Error(`Missing ${y.MAX_LENGTH} for ${this.attr+""}`);return this.decorate(Xe(s,yt.resolveMessage(r,t)))}pattern(e,t){const r=yt.asMeta(e),s=r?.[y.PATTERN]??(r?void 0:e),n=yt.patternFromString(s)??/.*/;return this.decorate(Be(n,yt.resolveMessage(r,t)))}email(e){const t=yt.asMeta(e),r="string"==typeof e?e:yt.resolveMessage(t);return this.decorate(Ke(r))}url(e){const t=yt.asMeta(e),r="string"==typeof e?e:yt.resolveMessage(t);return this.decorate(We(r))}type(e,t){const r=yt.asMeta(e),s=r?.customTypes??r?.type??(r?void 0:e);return this.decorate(Ze(s,yt.resolveMessage(r,t)))}date(e,t){const r=yt.asMeta(e),s=r?.[y.FORMAT]??(r?void 0:e);return this.decorate(Je(s,yt.resolveMessage(r,t)))}password(e,t){const r=yt.asMeta(e),s=r?.[y.PATTERN]??(r?void 0:e),n=yt.patternFromString(s);return this.decorate(et(n,yt.resolveMessage(r,t)))}list(e,t,r){const s=yt.asMeta(e),n=s?.clazz??(s?void 0:e),i=s?.type??t;return this.decorate(tt(n,i,yt.resolveMessage(s,r)))}set(e,t){return yt.isMetadataPayload(e)?this.list(e):this.list(e,"Set",t)}enum(e,t){const r=yt.asMeta(e),s=r?.[y.ENUM]??(r?void 0:e);return this.decorate(ut(s,yt.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 yt.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 s=yt.asMeta(e);return s?{target:s[t],options:{label:s.label,message:s.message}}:{target:e,options:r}}equals(e,t){const{target:r,options:s}=this.resolveComparison(e,y.EQUALS,t);return this.decorate(st(r,s))}eq(e,t){return this.equals(e,t)}different(e,t){const{target:r,options:s}=this.resolveComparison(e,y.DIFF,t);return this.decorate(nt(r,s))}diff(e,t){return this.different(e,t)}lessThan(e,t){const{target:r,options:s}=this.resolveComparison(e,y.LESS_THAN,t);return this.decorate(it(r,s))}lt(e,t){return this.lessThan(e,t)}lessThanOrEqual(e,t){const{target:r,options:s}=this.resolveComparison(e,y.LESS_THAN_OR_EQUAL,t);return this.decorate(at(r,s))}lte(e,t){return this.lessThanOrEqual(e,t)}greaterThan(e,t){const{target:r,options:s}=this.resolveComparison(e,y.GREATER_THAN,t);return this.decorate(ot(r,s))}gt(e,t){return this.greaterThan(e,t)}greaterThanOrEqual(e,t){const{target:r,options:s}=this.resolveComparison(e,y.GREATER_THAN_OR_EQUAL,t);return this.decorate(ct(r,s))}gte(e,t){return this.greaterThanOrEqual(e,t)}description(e){return this.decorate(i(e))}build(e){const t=e.prototype,r=this.attr;Object.getOwnPropertyDescriptor(t,r)||Object.defineProperty(t,r,{configurable:!0,enumerable:!0,writable:!0,value:void 0}),this.declaredType&&Reflect.defineMetadata(a.DESIGN_TYPE,this.declaredType,t,r),o()(t,r),this.decorators.forEach(e=>{try{e(t,r)}catch(e){throw Error(`Failed to apply decorator to property "${this.attr}": ${e}`)}})}}class Et{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=bt.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,s)=>(r=Reflect.apply(e,t,s),this.parent)}),e}}class bt extends l{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 s=new yt(this,e,t);return this.attributes.set(e,s),s}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 bt;return t.build=new Proxy(t.build,{apply:(t,r,s)=>{const n=Reflect.apply(t,r,s);return this.instance(n,e)}}),t}listOf(e,t="Array"){const r="Set"===t?Set:Array,s=this.attribute(e,r);return new Et(this,s,t)}build(){if(!this._name)throw Error("name is required");const e=this._parent??me;class t extends e{constructor(e){super(e)}}Object.defineProperty(t,"name",{value:this._name,writable:!1});for(const e of this.attributes.values())e.build(t);let r=gt()(t);return this._description&&(r=i(this._description)(r)),r}static builder(){return new bt}static from(e,t){if(!e)throw Error("metadata is required");const r=bt.builder(),s=t??"GeneratedModel"+Date.now();r.setName(s);const n=e.properties||{},i=e.validation||{};for(const[e,t]of Object.entries(n)){const s=r.attribute(e,t||Object),n=i[e];if(n)for(const[e,t]of Object.entries(n)){const r=s[e];if("function"!=typeof r)try{const r=J.decoratorFromKey(e),n="function"==typeof r?r(t):r;s.decorate(n)}catch{}else r.call(s,t)}}return r.build()}}const Tt="##VERSION##",At="##PACKAGE##";e.registerLibrary(At,Tt);export{R as ASYNC_META_KEY,ye as AsyncValidator,yt as AttributeBuilder,S as COMPARISON_ERROR_MESSAGES,m as ComparisonValidationKeys,b as DAYS_OF_WEEK_NAMES,T as DEFAULT_ERROR_MESSAGES,A as DEFAULT_PATTERNS,be as DateValidator,H as DefaultHashingMethod,f as DefaultSerializationMethod,Te as DiffValidator,Oe as EmailValidator,Se as EqualsValidator,Re as GreaterThanOrEqualValidator,Me as GreaterThanValidator,C as Hashing,h as JSONSerializer,Pe as LessThanOrEqualValidator,ve as LessThanValidator,_e as ListValidator,E as MONTH_NAMES,Le as MaxLengthValidator,we as MaxValidator,Ie as MinLengthValidator,De as MinValidator,me as Model,bt as ModelBuilder,p as ModelErrorDefinition,d as ModelKeys,ge as ModelRegistryManager,je as OptionValidator,At as PACKAGE_NAME,Ue as PasswordValidator,z as PathProxyEngine,Ne as PatternValidator,ue as Primitives,He as RequiredValidator,le as ReservedModels,g as Serialization,Ce as StepValidator,xe as TypeValidator,Fe as URLValidator,M as VALIDATION_PARENT_KEY,Tt as VERSION,J as Validation,y as ValidationKeys,W as Validator,Z as ValidatorRegistry,$e as async,P as bindDateToString,ft as bindModelPrototype,pe as bulkModelRegister,V as checkType,q as checkTypes,lt as construct,Je as date,v as dateFromFormat,nt as diff,Ke as email,st as eq,X as evaluateDesignTypes,dt as findLastProtoBeforeObject,w as formatDate,ie as getChildNestedPropsToIgnore,ot as gt,ct as gte,j as hashCode,U as hashObj,pt as hashedBy,Ge as innerValidationDecorator,D as isEqual,k as isGreaterThan,Q as isLessThan,_ as isValidDate,Y as isValidForGteOrLteComparison,de as jsTypes,tt as list,it as lt,at as lte,ke as max,Xe as maxlength,Qe as min,qe as minlength,gt as model,ht as modelBaseDecorator,ut as option,I as parseDate,et as password,Be as pattern,Ae as regexpParser,Ye as required,mt as serializedBy,rt as set,O as sf,Ve as step,N as stringFormat,ee as toConditionalPromise,L as twoDigitPad,Ze as type,We as url,ce as validate,ne as validateChildValue,ae as validateDecorator,oe as validateDecorators,ze as validationMetadata,Ee as validator,B as valueLength};
2
2
  //# sourceMappingURL=decorator-validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorator-validation.js","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/overrides/overrides.ts","../src/validation/Validators/AsyncValidator.ts","../src/validation/Validators/decorators.ts","../src/validation/Validators/DateValidator.ts","../src/validation/Validators/DiffValidator.ts","../src/validation/Validators/PatternValidator.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/validation/decorators.ts","../src/model/construction.ts","../src/model/decorators.ts","../src/model/Builder.ts","../src/index.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","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","proxy","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","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","bulkModelRegister","models","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","property","propValidation","metavalidation","iterator","designTypeMeta","propTypes","designTypeDec","AsyncValidator","original","DateValidator","__decorate","DiffValidator","accessor","comparisonPropertyValue","getValueFromPath","label","regexpParser","PatternValidator","getPattern","pattern","test","lastIndex","EmailValidator","EqualsValidator","GreaterThanValidator","GreaterThanOrEqualValidator","LessThanValidator","LessThanOrEqualValidator","ListValidator","isValid","MaxLengthValidator","maxlength","MaxValidator","max","MinLengthValidator","minlength","MinValidator","min","OptionValidator","enum","PasswordValidator","RequiredValidator","StepValidator","step","TypeValidator","ts","URLValidator","validationMetadata","propMetadata","innerValidationDecorator","dec","required","Decoration","define","email","url","propertyKey","WeakMap","newValue","password","list","collection","eq","propertyToCompare","lt","lte","gt","gte","option","construct","_constr","argz","findLastProtoBeforeObject","bindModelPrototype","bindPrototype","objToOverride","setPrototypeOf","prot","modelBaseDecorator","newConstructor","CONSTRUCTOR","MODEL","hashedBy","serializedBy","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"],"mappings":"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"}
1
+ {"version":3,"file":"decorator-validation.js","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/overrides/overrides.ts","../src/validation/Validators/AsyncValidator.ts","../src/validation/Validators/decorators.ts","../src/validation/Validators/DateValidator.ts","../src/validation/Validators/DiffValidator.ts","../src/validation/Validators/PatternValidator.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/validation/decorators.ts","../src/model/construction.ts","../src/model/decorators.ts","../src/model/Builder.ts","../src/index.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","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","proxy","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","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","designTypeNames","entries","merged","allSettled","results","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","status","reason","Primitives","ReservedModels","STRING","OBJECT","NUMBER","BOOLEAN","Boolean","BIGINT","BigInt","jsTypes","modelBuilderFunction","actingModelRegistry","ModelRegistryManager","testFunction","bulkModelRegister","models","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","property","propValidation","metavalidation","iterator","designTypeMeta","propTypes","designTypeDec","AsyncValidator","original","DateValidator","__decorate","DiffValidator","accessor","comparisonPropertyValue","getValueFromPath","label","regexpParser","PatternValidator","getPattern","pattern","test","lastIndex","EmailValidator","EqualsValidator","GreaterThanValidator","GreaterThanOrEqualValidator","LessThanValidator","LessThanOrEqualValidator","ListValidator","isValid","MaxLengthValidator","maxlength","MaxValidator","max","MinLengthValidator","minlength","MinValidator","min","OptionValidator","enum","PasswordValidator","RequiredValidator","StepValidator","step","TypeValidator","ts","URLValidator","validationMetadata","propMetadata","innerValidationDecorator","dec","required","Decoration","define","email","url","propertyKey","WeakMap","newValue","password","list","collection","eq","propertyToCompare","lt","lte","gt","gte","option","construct","_constr","argz","findLastProtoBeforeObject","bindModelPrototype","bindPrototype","objToOverride","setPrototypeOf","prot","modelBaseDecorator","newConstructor","CONSTRUCTOR","MODEL","hashedBy","serializedBy","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"],"mappings":"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"}
@@ -10,7 +10,7 @@ export * from "./model";
10
10
  * @const VERSION
11
11
  * @memberOf module:decorator-validation
12
12
  */
13
- export declare const VERSION = "1.11.7";
13
+ export declare const VERSION = "1.11.10";
14
14
  /**
15
15
  * @description Current version of the reflection package
16
16
  * @summary Stores the semantic version number of the package
package/lib/esm/index.js CHANGED
@@ -18,7 +18,7 @@ export * from "./model/index.js";
18
18
  * @const VERSION
19
19
  * @memberOf module:decorator-validation
20
20
  */
21
- export const VERSION = "1.11.7";
21
+ export const VERSION = "1.11.10";
22
22
  /**
23
23
  * @description Current version of the reflection package
24
24
  * @summary Stores the semantic version number of the package