@decaf-ts/decorator-validation 1.11.1 → 1.11.3

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 +1 @@
1
- {"version":3,"file":"decorator-validation.cjs","sources":["../src/utils/constants.ts","../src/utils/serialization.ts","../src/model/ModelErrorDefinition.ts","../src/validation/Validators/constants.ts","../src/utils/strings.ts","../src/constants/errors.ts","../src/constants/validation.ts","../src/utils/dates.ts","../src/utils/equality.ts","../src/utils/hashing.ts","../src/utils/PathProxy.ts","../src/validation/Validators/utils.ts","../src/validation/Validators/BaseValidator.ts","../src/validation/Validators/Validator.ts","../src/validation/Validators/ValidatorRegistry.ts","../src/validation/Validation.ts","../src/model/utils.ts","../src/model/validation.ts","../src/model/constants.ts","../src/model/Model.ts","../src/validation/Validators/decorators.ts","../src/overrides/overrides.ts","../src/validation/Validators/DateValidator.ts","../src/validation/Validators/DiffValidator.ts","../src/validation/Validators/PatternValidator.ts","../src/validation/decorators.ts","../src/model/construction.ts","../src/model/decorators.ts","../src/validation/Validators/EmailValidator.ts","../src/validation/Validators/EqualsValidator.ts","../src/validation/Validators/GreaterThanValidator.ts","../src/validation/Validators/GreaterThanOrEqualValidator.ts","../src/validation/Validators/LessThanValidator.ts","../src/validation/Validators/LessThanOrEqualValidator.ts","../src/validation/Validators/ListValidator.ts","../src/validation/Validators/MaxLengthValidator.ts","../src/validation/Validators/MaxValidator.ts","../src/validation/Validators/MinLengthValidator.ts","../src/validation/Validators/MinValidator.ts","../src/validation/Validators/OptionValidator.ts","../src/validation/Validators/PasswordValidator.ts","../src/validation/Validators/RequiredValidator.ts","../src/validation/Validators/StepValidator.ts","../src/validation/Validators/TypeValidator.ts","../src/validation/Validators/URLValidator.ts","../src/model/Builder.ts","../src/index.ts","../src/validation/Validators/AsyncValidator.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["ModelKeys","exports","DefaultSerializationMethod","JSONSerializer","constructor","preSerialize","model","toSerialize","Object","assign","metadata","Metadata","modelName","error","undefined","ANCHOR","name","deserialize","str","deserialization","JSON","parse","className","Error","Model","build","serialize","stringify","this","Serialization","current","cache","json","get","key","register","func","setDefault","obj","method","args","ModelErrorDefinition","errors","prop","prototype","hasOwnProperty","call","defineProperty","enumerable","configurable","value","writable","toString","self","keys","filter","k","reduce","accum","propError","propAccum","ComparisonValidationKeys","EQUALS","DIFF","LESS_THAN","LESS_THAN_OR_EQUAL","GREATER_THAN","GREATER_THAN_OR_EQUAL","ValidationKeys","REFLECT","DATE","EMAIL","FORMAT","LIST","MAX","MAX_LENGTH","MIN","MIN_LENGTH","PASSWORD","PATTERN","REQUIRED","STEP","TYPE","UNIQUE","URL","VALIDATOR","ENUM","MONTH_NAMES","DAYS_OF_WEEK_NAMES","DEFAULT_ERROR_MESSAGES","DEFAULT","MODEL_NOT_FOUND","DEFAULT_PATTERNS","CHAR8_ONE_OF_EACH","stringFormat","string","replace","match","number","sf","COMPARISON_ERROR_MESSAGES","INVALID_PATH","CONTEXT_NOT_OBJECT_COMPARISON","PROPERTY_INVALID","PROPERTY_NOT_EXIST","UNSUPPORTED_TYPES_COMPARISON","NULL_OR_UNDEFINED_COMPARISON","INVALID_DATE_COMPARISON","TYPE_MISMATCH_COMPARISON","NAN_COMPARISON","VALIDATION_PARENT_KEY","Symbol","ASYNC_META_KEY","dateFromFormat","date","format","formatRegexp","RegExp","exec","groups","Date","safeParseInt","n","result","parseInt","isNaN","year","day","amPm","ampm","hour","minutes","seconds","ms","milis","monthName","monthname","monthNameSmall","monthnamesmall","month","indexOf","m","find","toLowerCase","startsWith","bindDateToString","Proxy","toISOString","apply","target","thisArg","formatDate","isValidDate","Number","twoDigitPad","num","patternStr","getDate","getMonth","getFullYear","getHours","minute","getMinutes","second","getSeconds","miliseconds","getMilliseconds","h","hh","HH","mm","ss","aaa","EEEE","getDay","EEE","substr","dd","M","MM","MMMM","MMM","yyyy","yy","parseDate","v","e","isEqual","a","b","propsToIgnore","getTime","message","Array","isArray","length","i","Map","size","has","Set","item","ArrayBuffer","isView","byteLength","byteOffset","buffer","uint8A","Uint8Array","uint8B","aKeys","includes","bKeys","aSymbols","getOwnPropertySymbols","s","bSymbols","sym","getPrototypeOf","hashCode","String","hash","charCodeAt","hashObj","hashReducer","el","elHash","hashFunction","values","Math","abs","DefaultHashingMethod","Hashing","default","fallbackGetParent","fallbackGetValue","PathProxyEngine","create","rootTarget","opts","getValue","getParent","ignoreUndefined","ignoreNull","path","parts","parsePath","part","parent","trim","getTypeName","Infinity","isSupported","isFinite","isValidForGteOrLteComparison","TypeError","isLessThan","aType","bType","isGreaterThan","checkType","acceptedType","checkTypes","acceptedTypes","every","t","evaluateDesignTypes","types","valueLength","BaseValidator","async","hasErrors","checkTypeAndHasErrors","bind","getMessage","unbound","options","proxy","join","isValidator","val","Validator","super","ValidatorRegistry","validators","customKeyCache","getCustomKeys","getKeys","validatorKey","classOrInstance","instance","validator","forEach","validationKey","save","toUpperCase","Validation","actingValidatorRegistry","setRegistry","validatorRegistry","migrationHandler","getRegistry","registerDecorator","decorator","meta","for","DECORATORS","set","decoratorFromKey","toConditionalPromise","Promise","resolve","setTemporaryContext","cleanupTemporaryContext","getNestedValidationErrors","nestedModel","parentModel","isAsync","errs","validateChildValue","childValue","allowedTypes","err","atLeastOneMatched","allowedType","Constr","validateDecorator","decoratorProps","context","validatorOptions","validateDecorators","decorators","decoratorKey","validationErrors","class","clazz","customTypes","map","flat","isModel","all","then","r","allEmpty","promises","resolvedValues","res","validate","decoratedProperties","validatableProperties","nestedErrors","propKey","propValue","validationFor","designTypes","designType","getPropDesignTypes","some","propErrors","isConstr","isPropertyModel","hasPropValue","isModelInstance","d","entries","merged","allSettled","results","parentProp","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","status","reason","Primitives","ReservedModels","STRING","OBJECT","NUMBER","BOOLEAN","Boolean","BIGINT","BigInt","jsTypes","modelBuilderFunction","actingModelRegistry","ModelRegistryManager","testFunction","arg","exceptions","equals","SERIALIZATION","serializer","fromObject","getAttributes","fromModel","props","proto","descriptor","getOwnPropertyDescriptor","propM","reserved","c","validation","clazzName","add","setBuilder","builder","getBuilder","modelRegistry","seen","collect","attributes","properties","push","obj1","obj2","HASHING","algorithm","constr","attribute","type","describe","description","shouldValidateNestedHandler","property","original","decoration","propValidation","metavalidation","iterator","designTypeMeta","propTypes","designTypeDec","DateValidator","__decorate","DiffValidator","accessor","comparisonPropertyValue","getValueFromPath","label","regexpParser","validationMetadata","propMetadata","innerValidationDecorator","dec","required","Decoration","define","min","max","step","minlength","maxlength","pattern","email","url","propertyKey","WeakMap","newValue","password","list","collection","eq","propertyToCompare","diff","lt","lte","gt","gte","option","construct","_constr","argz","bindModelPrototype","bindPrototype","objToOverride","setPrototypeOf","prot","modelBaseDecorator","newConstructor","CONSTRUCTOR","MODEL","PatternValidator","getPattern","test","lastIndex","EmailValidator","EqualsValidator","GreaterThanValidator","GreaterThanOrEqualValidator","LessThanValidator","LessThanOrEqualValidator","ListValidator","isValid","MaxLengthValidator","MaxValidator","MinLengthValidator","MinValidator","OptionValidator","enum","PasswordValidator","RequiredValidator","StepValidator","TypeValidator","ts","URLValidator","AttributeBuilder","attr","declaredType","decorate","undecorate","index","splice","messageOrMeta","asMeta","resolveMessage","valueOrMeta","rawPattern","regex","patternFromString","formatOrMeta","clazzOrMeta","typeOfCollection","isMetadataPayload","fallback","resolveComparison","propertyOrMeta","resolvedOptions","different","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","desc","Reflect","defineMetadata","DecorationKeys","DESIGN_TYPE","ListAttributeBuilder","ofPrimitives","ofModel","nestedBuilder","ModelBuilder","originalBuild","cachedConstructor","argArray","ObjectAccumulator","setName","_name","_description","existing","attributeBuilder","bigint","built","listOf","listType","Parent","_parent","DynamicBuiltClass","from","derivedName","now","validations","validationMeta","handler","decoratorFactory","VERSION","PACKAGE_NAME","registerLibrary","models"],"mappings":"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"}
1
+ {"version":3,"file":"decorator-validation.cjs","sources":["../src/utils/constants.ts","../src/utils/serialization.ts","../src/model/ModelErrorDefinition.ts","../src/validation/Validators/constants.ts","../src/utils/strings.ts","../src/constants/errors.ts","../src/constants/validation.ts","../src/utils/dates.ts","../src/utils/equality.ts","../src/utils/hashing.ts","../src/utils/PathProxy.ts","../src/validation/Validators/utils.ts","../src/validation/Validators/BaseValidator.ts","../src/validation/Validators/Validator.ts","../src/validation/Validators/ValidatorRegistry.ts","../src/validation/Validation.ts","../src/model/utils.ts","../src/model/validation.ts","../src/model/constants.ts","../src/model/Model.ts","../src/validation/Validators/decorators.ts","../src/overrides/overrides.ts","../src/validation/Validators/DateValidator.ts","../src/validation/Validators/DiffValidator.ts","../src/validation/Validators/PatternValidator.ts","../src/validation/decorators.ts","../src/model/construction.ts","../src/model/decorators.ts","../src/validation/Validators/EmailValidator.ts","../src/validation/Validators/EqualsValidator.ts","../src/validation/Validators/GreaterThanValidator.ts","../src/validation/Validators/GreaterThanOrEqualValidator.ts","../src/validation/Validators/LessThanValidator.ts","../src/validation/Validators/LessThanOrEqualValidator.ts","../src/validation/Validators/ListValidator.ts","../src/validation/Validators/MaxLengthValidator.ts","../src/validation/Validators/MaxValidator.ts","../src/validation/Validators/MinLengthValidator.ts","../src/validation/Validators/MinValidator.ts","../src/validation/Validators/OptionValidator.ts","../src/validation/Validators/PasswordValidator.ts","../src/validation/Validators/RequiredValidator.ts","../src/validation/Validators/StepValidator.ts","../src/validation/Validators/TypeValidator.ts","../src/validation/Validators/URLValidator.ts","../src/model/Builder.ts","../src/index.ts","../src/validation/Validators/AsyncValidator.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["ModelKeys","exports","DefaultSerializationMethod","JSONSerializer","constructor","preSerialize","model","toSerialize","Object","assign","metadata","Metadata","modelName","error","undefined","ANCHOR","name","deserialize","str","deserialization","JSON","parse","className","Error","Model","build","serialize","stringify","this","Serialization","current","cache","json","get","key","register","func","setDefault","obj","method","args","ModelErrorDefinition","errors","prop","prototype","hasOwnProperty","call","defineProperty","enumerable","configurable","value","writable","toString","self","keys","filter","k","reduce","accum","propError","propAccum","ComparisonValidationKeys","EQUALS","DIFF","LESS_THAN","LESS_THAN_OR_EQUAL","GREATER_THAN","GREATER_THAN_OR_EQUAL","ValidationKeys","REFLECT","DATE","EMAIL","FORMAT","LIST","MAX","MAX_LENGTH","MIN","MIN_LENGTH","PASSWORD","PATTERN","REQUIRED","STEP","TYPE","UNIQUE","URL","VALIDATOR","ENUM","MONTH_NAMES","DAYS_OF_WEEK_NAMES","DEFAULT_ERROR_MESSAGES","DEFAULT","MODEL_NOT_FOUND","DEFAULT_PATTERNS","CHAR8_ONE_OF_EACH","stringFormat","string","replace","match","number","sf","COMPARISON_ERROR_MESSAGES","INVALID_PATH","CONTEXT_NOT_OBJECT_COMPARISON","PROPERTY_INVALID","PROPERTY_NOT_EXIST","UNSUPPORTED_TYPES_COMPARISON","NULL_OR_UNDEFINED_COMPARISON","INVALID_DATE_COMPARISON","TYPE_MISMATCH_COMPARISON","NAN_COMPARISON","VALIDATION_PARENT_KEY","Symbol","ASYNC_META_KEY","dateFromFormat","date","format","formatRegexp","RegExp","exec","groups","Date","safeParseInt","n","result","parseInt","isNaN","year","day","amPm","ampm","hour","minutes","seconds","ms","milis","monthName","monthname","monthNameSmall","monthnamesmall","month","indexOf","m","find","toLowerCase","startsWith","bindDateToString","Proxy","toISOString","apply","target","thisArg","formatDate","isValidDate","Number","twoDigitPad","num","patternStr","getDate","getMonth","getFullYear","getHours","minute","getMinutes","second","getSeconds","miliseconds","getMilliseconds","h","hh","HH","mm","ss","aaa","EEEE","getDay","EEE","substr","dd","M","MM","MMMM","MMM","yyyy","yy","parseDate","v","e","isEqual","a","b","propsToIgnore","getTime","message","Array","isArray","length","i","Map","size","has","Set","item","ArrayBuffer","isView","byteLength","byteOffset","buffer","uint8A","Uint8Array","uint8B","aKeys","includes","bKeys","aSymbols","getOwnPropertySymbols","s","bSymbols","sym","getPrototypeOf","hashCode","String","hash","charCodeAt","hashObj","hashReducer","el","elHash","hashFunction","values","Math","abs","DefaultHashingMethod","Hashing","default","fallbackGetParent","fallbackGetValue","PathProxyEngine","create","rootTarget","opts","getValue","getParent","ignoreUndefined","ignoreNull","path","parts","parsePath","part","parent","trim","getTypeName","Infinity","isSupported","isFinite","isValidForGteOrLteComparison","TypeError","isLessThan","aType","bType","isGreaterThan","checkType","acceptedType","checkTypes","acceptedTypes","every","t","evaluateDesignTypes","types","valueLength","BaseValidator","async","hasErrors","checkTypeAndHasErrors","bind","getMessage","unbound","options","proxy","join","isValidator","val","Validator","super","ValidatorRegistry","validators","customKeyCache","getCustomKeys","getKeys","validatorKey","classOrInstance","instance","validator","forEach","validationKey","save","toUpperCase","Validation","actingValidatorRegistry","setRegistry","validatorRegistry","migrationHandler","getRegistry","registerDecorator","decorator","meta","for","DECORATORS","set","decoratorFromKey","toConditionalPromise","Promise","resolve","setTemporaryContext","cleanupTemporaryContext","getNestedValidationErrors","nestedModel","parentModel","isAsync","errs","validateChildValue","childValue","allowedTypes","err","atLeastOneMatched","allowedType","Constr","validateDecorator","decoratorProps","context","validatorOptions","validateDecorators","decorators","decoratorKey","validationErrors","class","clazz","customTypes","map","flat","isModel","all","then","r","allEmpty","promises","resolvedValues","res","validate","decoratedProperties","validatableProperties","nestedErrors","propKey","propValue","validationFor","designTypes","designType","getPropDesignTypes","some","propErrors","isConstr","isPropertyModel","hasPropValue","isModelInstance","d","entries","merged","allSettled","results","parentProp","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","status","reason","Primitives","ReservedModels","STRING","OBJECT","NUMBER","BOOLEAN","Boolean","BIGINT","BigInt","jsTypes","modelBuilderFunction","actingModelRegistry","ModelRegistryManager","testFunction","arg","exceptions","equals","compare","other","props","properties","diff","acc","nestedDiff","listDiff","SERIALIZATION","serializer","fromObject","getAttributes","fromModel","proto","descriptor","getOwnPropertyDescriptor","propM","reserved","c","validation","clazzName","add","setBuilder","builder","getBuilder","modelRegistry","seen","collect","attributes","push","obj1","obj2","HASHING","algorithm","constr","attribute","type","describe","description","shouldValidateNestedHandler","property","original","decoration","propValidation","metavalidation","iterator","designTypeMeta","propTypes","designTypeDec","DateValidator","__decorate","DiffValidator","accessor","comparisonPropertyValue","getValueFromPath","label","regexpParser","validationMetadata","propMetadata","innerValidationDecorator","dec","required","Decoration","define","min","max","step","minlength","maxlength","pattern","email","url","propertyKey","WeakMap","newValue","password","list","collection","eq","propertyToCompare","lt","lte","gt","gte","option","construct","_constr","argz","bindModelPrototype","bindPrototype","objToOverride","setPrototypeOf","prot","modelBaseDecorator","newConstructor","CONSTRUCTOR","MODEL","PatternValidator","getPattern","test","lastIndex","EmailValidator","EqualsValidator","GreaterThanValidator","GreaterThanOrEqualValidator","LessThanValidator","LessThanOrEqualValidator","ListValidator","isValid","MaxLengthValidator","MaxValidator","MinLengthValidator","MinValidator","OptionValidator","enum","PasswordValidator","RequiredValidator","StepValidator","TypeValidator","ts","URLValidator","AttributeBuilder","attr","declaredType","decorate","undecorate","index","splice","messageOrMeta","asMeta","resolveMessage","valueOrMeta","rawPattern","regex","patternFromString","formatOrMeta","clazzOrMeta","typeOfCollection","isMetadataPayload","fallback","resolveComparison","propertyOrMeta","resolvedOptions","different","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","desc","Reflect","defineMetadata","DecorationKeys","DESIGN_TYPE","ListAttributeBuilder","ofPrimitives","ofModel","nestedBuilder","ModelBuilder","originalBuild","cachedConstructor","argArray","ObjectAccumulator","setName","_name","_description","existing","attributeBuilder","bigint","built","listOf","listType","Parent","_parent","DynamicBuiltClass","from","derivedName","now","validations","validationMeta","handler","decoratorFactory","VERSION","PACKAGE_NAME","registerLibrary","models"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{Metadata as e,apply as t,metadata as r,propMetadata as s,Decoration as n,description as a,DecorationKeys as i,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 g{constructor(){}preSerialize(t){const r=Object.assign({},t);let s;try{s=e.modelName(t.constructor)}catch(e){s=void 0}return r[d.ANCHOR]=s||t.constructor.name,r}deserialize(e){const t=JSON.parse(e),r=t[d.ANCHOR];if(!r)throw Error("Could not find class reference in serialized model");return pe.build(t,r)}serialize(e){return JSON.stringify(this.preSerialize(e))}}class h{static{this.current=f}static{this.cache={json:new g}}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},a=n(s.groups.year),i=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,g=s.groups.monthnamesmall;let h=s.groups.month;if(f)h=E.indexOf(f);else if(g){const t=E.find(e=>e.toLowerCase().startsWith(g.toLowerCase()));if(!t)return new Date(e);h=E.indexOf(t)}else h=n(""+h);return new Date(a,h-1,i,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(),a=e.getHours(),i=e.getMinutes(),o=e.getSeconds(),c=e.getMilliseconds(),u=a%12,l=L(u),d=L(a),f=L(i),g=L(o),h=12>a?"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",a.toString()).replace("mm",f).replace("m",i.toString()).replace("ss",g).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",h)).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 a of s){if(!n.includes(a))return!1;if(!D(e[a],t[a],...r))return!1}const a=Object.getOwnPropertySymbols(e).filter(e=>!r.includes(e.toString())),i=Object.getOwnPropertySymbols(t).filter(e=>!r.includes(e.toString()));if(a.length!==i.length)return!1;for(const s of a){if(!i.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:a}={getParent:x,getValue:F,ignoreNull:!1,ignoreUndefined:!1,...t},i=new Proxy({},{get:(t,i)=>"getValueFromPath"===i?t=>{const i=z.parsePath(t);let o=e;for(let e=0;e<i.length;e++){const c=i[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(!a&&null===o)throw Error(O(S.PROPERTY_INVALID,t,c))}return o}:t[i]});return i}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 V(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 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 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 k(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=>!k(e,t))}function X(e,t){switch(typeof t){case"string":return k(e,t);case"object":return!Array.isArray(t)||q(e,t);case"function":return!t.name||"Object"===t.name||k(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 Z extends K{constructor(e=T.DEFAULT,...t){super(!1,e,...t)}}class W{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(Z.isValidator(t))return t;const r=new(t.default||t);return this.cache[e]=r,r}register(...e){e.forEach(e=>{if(Z.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 W),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,...a){let i,o=!1;for(const c of s){const s=pe.get(c);if(s||(i=new p({[e]:{[y.TYPE]:"Unable to verify type consistency, missing model registry for "+c}})),t instanceof s){o=!0,i=se(t,r,n,...a);break}}return o?i:i||new p({[e]:{[y.TYPE]:"Value must be an instance of one of the expected types: "+s.join(", ")}})}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 a=r.key===d.TYPE?[r]:r||{},i=z.create(e,{ignoreUndefined:!0,ignoreNull:!0}),o=r.key===d.TYPE?a[0]:a;return ee(n.hasErrors(t,o,i),s)}function ie(e,t,r,s,n,...a){const i={};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 i=[r].flat().map(e=>(e+"").toLowerCase()),o=s.map(s=>pe.isModel(s)?ne(t,s,e,r.flat(),!!n,...a):i.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&&(i[l]=u)}if(!n)return Object.keys(i).length>0?i:void 0;const o=Object.keys(i),c=Object.values(i);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 oe(t,r,...s){const n=e.validatableProperties(t.constructor,...s),a={},i={};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)){a[n]={[y.TYPE]:`Array or Set property '${n}' requires a @list decorator`};continue}if(c&&!(Array.isArray(c)||c instanceof Set)){a[n]={[y.TYPE]:`Property '${o+""}' must be either an Array or a Set`};continue}}const g=ie(t,n,c,u,r,...s)||{},h=pe.isPropertyModel(t,n),p=null!=c,m=p&&pe.isModel(c);if(h&&p&&m){const e=c;if(pe.shouldValidateNestedHandler(t,n)){const a=(Array.isArray(f)?l:[f]).map(e=>("function"!=typeof e||e.name||(e=e()),pe.get(e.name||e))).find(e=>!!e);a&&e instanceof a?i[n]=se(e,t,r,...s):(g[y.TYPE]=a?"Value must be an instance of "+a.name:`Unable to verify type consistency, missing model registry for ${l.toString()} on prop ${n}`,delete g[d.TYPE])}}(Object.keys(g).length>0||r)&&(a[n]=g),r||Object.entries(i[n]||{}).forEach(([e,t])=>{void 0!==t&&(a[`${n}.${e}`]=t)})}if(!r)return Object.keys(a).length>0?new p(a):void 0;const o=a,c=Object.keys(o),u=Object.values(o);return Promise.allSettled(u).then(async e=>{const t={};for(const[e,r]of Object.entries(i)){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 ce;(e=>{e.STRING="string",e.NUMBER="number",e.BOOLEAN="boolean",e.BIGINT="bigint"})(ce||(ce={}));const ue={STRING:String,OBJECT:Object,NUMBER:Number,BOOLEAN:Boolean,BIGINT:BigInt,DATE:Date},le=["string","array","number","boolean","symbol","function","object","undefined","null","bigint"];let de,fe;class ge{constructor(e=pe.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 he(...e){e.forEach(e=>{const t=e.constructor?e.constructor:e;pe.register(t,e.name)})}class pe{constructor(e=void 0){}isAsync(){return!!(this[R]??this?.constructor[R])}hasErrors(...e){return oe(this,this.isAsync(),...e)}equals(e,...t){return D(this,e,...t)}serialize(){return pe.serialize(this)}toString(){return this.constructor.name+": "+JSON.stringify(this,void 0,2)}hash(){return pe.hash(this)}static deserialize(t){let r;try{r=e.get(this.constructor,d.SERIALIZATION)}catch(e){r=void 0}return r&&r.serializer?h.deserialize(t,r.serializer,...r.args||[]):h.deserialize(t)}static fromObject(e,t){t||(t={});for(const r of pe.getAttributes(e))e[r]=t[r]??e[r]??void 0;return e}static fromModel(t,r){let s;r||(r={});const n=pe.getAttributes(t),a=Object.getPrototypeOf(t);let i;for(const o of n){try{t[o]=r[o]??t[o]??void 0}catch(e){if(i=Object.getOwnPropertyDescriptor(a,o),!i||i.writable)throw Error(`Unable to write property ${o} to model: ${e}`)}if("object"!=typeof t[o])continue;const n=pe.isPropertyModel(t,o);if(n){try{t[o]=pe.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(ue);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=>!le.includes(e.name));if("Array"===r.name&&(t[o]=t[o].map(e=>["object","function"].includes(typeof e)&&n?pe.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(pe.build(r,n.name)):e.add(r);t[o]=e}break}default:void 0!==t[o]&&pe.get(r.name)&&(t[o]=pe.build(t[o],r.name))}}catch(e){}})}return t}static setBuilder(e){de=e}static getBuilder(){return de||pe.fromModel}static getRegistry(){return fe||(fe=new ge),fe}static setRegistry(e){fe=e}static register(e,t){return pe.getRegistry().register(e,t)}static get(e){return pe.getRegistry().get(e)}static build(e={},t){return pe.getRegistry().build(e,t)}static getAttributes(t){const r=t instanceof pe?t.constructor:t,s=new Set,n=t=>{if(!t)return[];const r=n(Object.getPrototypeOf(t)),a=e.properties(t)??[];for(const e of a)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 oe(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?h.serialize(this,r.serializer,...r.args||[]):h.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 pe)return!0;const r=e.constr(t);return!(!r||r===t||!e.modelName(r))}catch(e){return!1}}static isPropertyModel(t,r){if(pe.isModel(t[r]))return!0;const s=e.type(t.constructor,r);return s&&pe.get(s.name)?s.name:void 0}static describe(t,r){return e.description(t,r)}static{this.shouldValidateNestedHandler=(e,t)=>{const r=e[t];return!!r&&"object"==typeof r&&"function"==typeof r.hasErrors}}}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]!==ue.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 a=n.validation[r];return a?a[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([...pe.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),a=s?.[y.REFLECT]?.[r];if(!(n||a&&a[y.TYPE]))return{};const i=a&&a[y.TYPE]?[a[y.TYPE].customTypes]:[n];if(!i?.length)return{};const o=i[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 me extends K{constructor(e=T.DEFAULT,...t){super(!0,e,...t)}}function ye(...e){return t(t=>(e.forEach(e=>{J.register({validator:t,validationKey:e,save:!0})}),t),r(y.VALIDATOR,e))}let Ee=class extends Z{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)}}};Ee=c([ye(y.DATE),u("design:paramtypes",[String])],Ee);let be=class extends Z{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}};be=c([ye(y.DIFF),u("design:paramtypes",[String])],be);const Te=RegExp("^/(.+)/([gimus]*)$");let Ae=class extends Z{constructor(e=T.PATTERN){super(e,"string")}getPattern(e){if(!Te.test(e))return RegExp(e);const t=e.match(Te);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)}};Ae=c([ye(y.PATTERN),u("design:paramtypes",[String])],Ae);let Ne=class extends Ae{constructor(e=T.EMAIL){super(e)}hasErrors(e,t={}){return super.hasErrors(e,{...t,message:t.message||this.message,pattern:t?.pattern||A.EMAIL})}};Ne=c([ye(y.EMAIL),u("design:paramtypes",[String])],Ne);let Oe=class extends Z{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])}};Oe=c([ye(y.EQUALS),u("design:paramtypes",[String])],Oe);let Se=class extends Z{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(!Q(e,s))throw Error(t.message||this.message)}catch(e){return this.getMessage(e.message,t.label||t[y.GREATER_THAN])}}};Se=c([ye(y.GREATER_THAN),u("design:paramtypes",[String])],Se);let Me=class extends Z{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)||Q(e,s))return;throw Error(t.message||this.message)}catch(e){return this.getMessage(e.message,t.label||t[y.GREATER_THAN_OR_EQUAL])}}};Me=c([ye(y.GREATER_THAN_OR_EQUAL),u("design:paramtypes",[String])],Me);let Re=class extends Z{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(!V(e,s))throw Error(t.message||this.message)}catch(e){return this.getMessage(e.message,t.label||t[y.LESS_THAN])}}};Re=c([ye(y.LESS_THAN),u("design:paramtypes",[String])],Re);let ve=class extends Z{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)||V(e,s))return;throw Error(t.message||this.message)}catch(e){return this.getMessage(e.message,t.label||t[y.LESS_THAN_OR_EQUAL])}}};ve=c([ye(y.LESS_THAN_OR_EQUAL),u("design:paramtypes",[String])],ve);let Pe=class extends Z{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)}};Pe=c([ye(y.LIST),u("design:paramtypes",[String])],Pe);let _e=class extends Z{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}};_e=c([ye(y.MAX_LENGTH),u("design:paramtypes",[String])],_e);let Le=class extends Z{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}};Le=c([ye(y.MAX),u("design:paramtypes",[String])],Le);let Ie=class extends Z{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([ye(y.MIN_LENGTH),u("design:paramtypes",[String])],Ie);let we=class extends Z{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}};we=c([ye(y.MIN),u("design:paramtypes",[String])],we);let De=class extends Z{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))}}}};De=c([ye(y.ENUM),u("design:paramtypes",[String])],De);let je=class extends Ae{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})}};je=c([ye(y.PASSWORD),u("design:paramtypes",[Object])],je);let Ue=class extends Z{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)}}};Ue=c([ye(y.REQUIRED),u("design:paramtypes",[String])],Ue);let He=class extends Z{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}};He=c([ye(y.STEP),u("design:paramtypes",[String])],He);let Ce=class extends Z{constructor(e=T.TYPE){super(e)}hasErrors(e,t){if(void 0===e)return;const{type:r,message:s,customTypes:n}=t;let a=n||r;return a=(Array.isArray(a)?a:[a]).map(e=>"string"==typeof e?e:("function"!=typeof e||e.name||(e=e()),e.name||e)),X(e,a)?void 0:this.getMessage(s||this.message,"string"==typeof a?a:Array.isArray(a)?a.join(", "):a,typeof e)}};Ce=c([ye(y.TYPE),u("design:paramtypes",[String])],Ce),J.register({validator:Ce,validationKey:d.TYPE,save:!1});let xe=class extends Ae{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 Fe(e,r,n){return t(s(r,n))}function ze(e,t,r){return J.registerDecorator(t,e),(e,s)=>Fe(0,`${y.REFLECT}.${s}.${t}`,r)(e,s)}function Ge(){return e=>{Object.prototype.hasOwnProperty.call(e,R)||(e[R]=!0)}}function $e(e=T.REQUIRED){const t=y.REQUIRED,r={message:e,description:"defines the attribute as required",async:!1};return n.for(t).define({decorator:ze,args:[$e,t,r]}).apply()}function Ye(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:ze,args:[Ye,r,s]}).apply()}function Ve(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:ze,args:[Ve,r,s]}).apply()}function Qe(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:ze,args:[Qe,r,s]}).apply()}function ke(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:ze,args:[ke,r,s]}).apply()}function qe(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:ze,args:[qe,r,s]}).apply()}function Xe(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:ze,args:[Xe,r,s]}).apply()}function Be(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:ze,args:[Be,t,r]}).apply()}function Ke(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:ze,args:[Ke,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:ze,args:[Ze,r,s]}).apply()}function We(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 a=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:()=>a.get(this),set:t=>{let r;try{r=w(e,t),a.set(this,r)}catch(e){}}}),this[n]=t},get(){return a.get(this)}}),ze(We,r,s)(t,n)}},args:[e,t]}).apply()}function Je(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:ze,args:[Je,r,s]}).apply()}function et(e,t="Array",r=T.LIST){const s=y.LIST,a={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:ze,args:[et,s,a]}).apply()}function tt(e,t=T.LIST){return et(e,"Set",t)}function rt(e,t){return ze(rt,y.EQUALS,{label:t?.label||e,message:t?.message||T.EQUALS,[y.EQUALS]:e,description:"defines attribute as equal to "+e,async:!1})}function st(e,t){return ze(st,y.DIFF,{label:t?.label||e,message:t?.message||T.DIFF,[y.DIFF]:e,description:"defines attribute as different to "+e,async:!1})}function nt(e,t){return ze(nt,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 ze(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 it(e,t){return ze(it,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 ot(e,t){return ze(ot,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 ct(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:ze,args:[ct,r,s]}).apply()}function ut(e,...t){const r=(...t)=>new e(...t);return r.prototype=e.prototype,r(...t)}function lt(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 dt(e){if(e instanceof pe)return;function t(e,t){Object.setPrototypeOf(e,t)}const r=Object.getPrototypeOf(e);if(r===Object.prototype)return t(e,pe.prototype);for(;r!==Object.prototype;){const e=Object.getPrototypeOf(r);if(e===Object.prototype||Object.getPrototypeOf(e)===Object.prototype)return t(r,pe.prototype)}throw Error("Could not find proper prototype to bind")}function ft(e){const t=(...t)=>{const r=ut(e,...t);dt(r);const s=pe.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),pe.register(t,e.name),t}function gt(){const e=d.MODEL;return n.for(e).define(ft).apply()}function ht(e,...t){return r(d.HASHING,{algorithm:e,args:t})}function pt(e,...t){return r(d.SERIALIZATION,{serializer:e,args:t})}xe=c([ye(y.URL),u("design:paramtypes",[String])],xe);class mt{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=mt.asMeta(e),r="string"==typeof e?e:mt.resolveMessage(t);return this.decorate($e(r))}min(e,t){const r=mt.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(Ye(s,mt.resolveMessage(r,t)))}max(e,t){const r=mt.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(Ve(s,mt.resolveMessage(r,t)))}step(e,t){const r=mt.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(Qe(s,mt.resolveMessage(r,t)))}minlength(e,t){const r=mt.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(ke(s,mt.resolveMessage(r,t)))}maxlength(e,t){const r=mt.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(qe(s,mt.resolveMessage(r,t)))}pattern(e,t){const r=mt.asMeta(e),s=r?.[y.PATTERN]??(r?void 0:e),n=mt.patternFromString(s)??/.*/;return this.decorate(Xe(n,mt.resolveMessage(r,t)))}email(e){const t=mt.asMeta(e),r="string"==typeof e?e:mt.resolveMessage(t);return this.decorate(Be(r))}url(e){const t=mt.asMeta(e),r="string"==typeof e?e:mt.resolveMessage(t);return this.decorate(Ke(r))}type(e,t){const r=mt.asMeta(e),s=r?.customTypes??r?.type??(r?void 0:e);return this.decorate(Ze(s,mt.resolveMessage(r,t)))}date(e,t){const r=mt.asMeta(e),s=r?.[y.FORMAT]??(r?void 0:e);return this.decorate(We(s,mt.resolveMessage(r,t)))}password(e,t){const r=mt.asMeta(e),s=r?.[y.PATTERN]??(r?void 0:e),n=mt.patternFromString(s);return this.decorate(Je(n,mt.resolveMessage(r,t)))}list(e,t,r){const s=mt.asMeta(e),n=s?.clazz??(s?void 0:e),a=s?.type??t;return this.decorate(et(n,a,mt.resolveMessage(s,r)))}set(e,t){return mt.isMetadataPayload(e)?this.list(e):this.list(e,"Set",t)}enum(e,t){const r=mt.asMeta(e),s=r?.[y.ENUM]??(r?void 0:e);return this.decorate(ct(s,mt.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 mt.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=mt.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(rt(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(st(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(nt(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(it(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(ot(r,s))}gte(e,t){return this.greaterThanOrEqual(e,t)}description(e){return this.decorate(a(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(i.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 yt{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=Et.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 Et 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 mt(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 Et;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 yt(this,s,t)}build(){if(!this._name)throw Error("name is required");const e=this._parent??pe;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=a(this._description)(r)),r}static builder(){return new Et}static from(e,t){if(!e)throw Error("metadata is required");const r=Et.builder(),s=t??"GeneratedModel"+Date.now();r.setName(s);const n=e.properties||{},a=e.validation||{};for(const[e,t]of Object.entries(n)){const s=r.attribute(e,t||Object),n=a[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 bt="##VERSION##",Tt="##PACKAGE##";e.registerLibrary(Tt,bt);export{R as ASYNC_META_KEY,me as AsyncValidator,mt 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,Ee as DateValidator,H as DefaultHashingMethod,f as DefaultSerializationMethod,be as DiffValidator,Ne as EmailValidator,Oe as EqualsValidator,Me as GreaterThanOrEqualValidator,Se as GreaterThanValidator,C as Hashing,g as JSONSerializer,ve as LessThanOrEqualValidator,Re as LessThanValidator,Pe as ListValidator,E as MONTH_NAMES,_e as MaxLengthValidator,Le as MaxValidator,Ie as MinLengthValidator,we as MinValidator,pe as Model,Et as ModelBuilder,p as ModelErrorDefinition,d as ModelKeys,ge as ModelRegistryManager,De as OptionValidator,Tt as PACKAGE_NAME,je as PasswordValidator,z as PathProxyEngine,Ae as PatternValidator,ce as Primitives,Ue as RequiredValidator,ue as ReservedModels,h as Serialization,He as StepValidator,Ce as TypeValidator,xe as URLValidator,M as VALIDATION_PARENT_KEY,bt as VERSION,J as Validation,y as ValidationKeys,Z as Validator,W as ValidatorRegistry,Ge as async,P as bindDateToString,dt as bindModelPrototype,he as bulkModelRegister,k as checkType,q as checkTypes,ut as construct,We as date,v as dateFromFormat,st as diff,Be as email,rt as eq,X as evaluateDesignTypes,lt as findLastProtoBeforeObject,I as formatDate,it as gt,ot as gte,j as hashCode,U as hashObj,ht as hashedBy,ze as innerValidationDecorator,D as isEqual,Q as isGreaterThan,V as isLessThan,_ as isValidDate,Y as isValidForGteOrLteComparison,le as jsTypes,et as list,nt as lt,at as lte,Ve as max,qe as maxlength,Ye as min,ke as minlength,gt as model,ft as modelBaseDecorator,ct as option,w as parseDate,Je as password,Xe as pattern,Te as regexpParser,$e as required,pt as serializedBy,tt as set,O as sf,Qe as step,N as stringFormat,ee as toConditionalPromise,L as twoDigitPad,Ze as type,Ke as url,oe as validate,ne as validateChildValue,ae as validateDecorator,ie as validateDecorators,Fe as validationMetadata,ye 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){const r=Object.assign({},t);let s;try{s=e.modelName(t.constructor)}catch(e){s=void 0}return r[d.ANCHOR]=s||t.constructor.name,r}deserialize(e){const t=JSON.parse(e),r=t[d.ANCHOR];if(!r)throw Error("Could not find class reference in serialized model");return pe.build(t,r)}serialize(e){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 y={EQUALS:"equals",DIFF:"different",LESS_THAN:"lessThan",LESS_THAN_OR_EQUAL:"lessThanOrEqual",GREATER_THAN:"greaterThan",GREATER_THAN_OR_EQUAL:"greaterThanOrEqual"},m={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",...y},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()],y=p.substr(0,3),m=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",m).replace("d",r.toString()).replace("EEEE",p).replace("EEE",y).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 V(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 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 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 k(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=>!k(e,t))}function X(e,t){switch(typeof t){case"string":return k(e,t);case"object":return!Array.isArray(t)||q(e,t);case"function":return!t.name||"Object"===t.name||k(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 Z extends K{constructor(e=T.DEFAULT,...t){super(!1,e,...t)}}class W{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(Z.isValidator(t))return t;const r=new(t.default||t);return this.cache[e]=r,r}register(...e){e.forEach(e=>{if(Z.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 W),J.actingValidatorRegistry}static get(e){return J.getRegistry().get(e)}static register(...e){return J.getRegistry().register(...e)}static key(e){return m.REFLECT+e}static keys(){return this.getRegistry().getKeys()}static registerDecorator(t,r){const s=e.innerGet(Symbol.for(d.DECORATORS),e.key(m.REFLECT,t));s?.[t]||e.set(d.DECORATORS,e.key(m.REFLECT,t),r)}static decoratorFromKey(t){try{return e.innerGet(Symbol.for(d.DECORATORS),e.key(m.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=pe.get(c);if(s||(a=new p({[e]:{[m.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]:{[m.TYPE]:"Value must be an instance of one of the expected types: "+s.join(", ")}})}function ie(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 ae(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=ie(e,r,c,n);if(o===m.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=>pe.isModel(s)?ne(t,s,e,r.flat(),!!n,...i):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?m.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 oe(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(m.LIST)){i[n]={[m.TYPE]:`Array or Set property '${n}' requires a @list decorator`};continue}if(c&&!(Array.isArray(c)||c instanceof Set)){i[n]={[m.TYPE]:`Property '${o+""}' must be either an Array or a Set`};continue}}const h=ae(t,n,c,u,r,...s)||{},g=pe.isPropertyModel(t,n),p=null!=c,y=p&&pe.isModel(c);if(g&&p&&y){const e=c;if(pe.shouldValidateNestedHandler(t,n)){const i=(Array.isArray(f)?l:[f]).map(e=>("function"!=typeof e||e.name||(e=e()),pe.get(e.name||e))).find(e=>!!e);i&&e instanceof i?a[n]=se(e,t,r,...s):(h[m.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 ce;(e=>{e.STRING="string",e.NUMBER="number",e.BOOLEAN="boolean",e.BIGINT="bigint"})(ce||(ce={}));const ue={STRING:String,OBJECT:Object,NUMBER:Number,BOOLEAN:Boolean,BIGINT:BigInt,DATE:Date},le=["string","array","number","boolean","symbol","function","object","undefined","null","bigint"];let de,fe;class he{constructor(e=pe.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 ge(...e){e.forEach(e=>{const t=e.constructor?e.constructor:e;pe.register(t,e.name)})}class pe{constructor(e=void 0){}isAsync(){return!!(this[R]??this?.constructor[R])}hasErrors(...e){return oe(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(pe.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 pe&&t[n][r]instanceof pe?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 pe.serialize(this)}toString(){return this.constructor.name+": "+JSON.stringify(this,void 0,2)}hash(){return pe.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 pe.getAttributes(e))e[r]=t[r]??e[r]??void 0;return e}static fromModel(t,r){let s;r||(r={});const n=pe.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=pe.isPropertyModel(t,o);if(n){try{t[o]=pe.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(ue);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[m.LIST])break;const n=s[m.LIST].clazz.map(e=>"function"!=typeof e||e.name?e:e()).find(e=>!le.includes(e.name));if("Array"===r.name&&(t[o]=t[o].map(e=>["object","function"].includes(typeof e)&&n?pe.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(pe.build(r,n.name)):e.add(r);t[o]=e}break}default:void 0!==t[o]&&pe.get(r.name)&&(t[o]=pe.build(t[o],r.name))}}catch(e){}})}return t}static setBuilder(e){de=e}static getBuilder(){return de||pe.fromModel}static getRegistry(){return fe||(fe=new he),fe}static setRegistry(e){fe=e}static register(e,t){return pe.getRegistry().register(e,t)}static get(e){return pe.getRegistry().get(e)}static build(e={},t){return pe.getRegistry().build(e,t)}static getAttributes(t){const r=t instanceof pe?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 oe(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 pe)return!0;const r=e.constr(t);return!(!r||r===t||!e.modelName(r))}catch(e){return!1}}static isPropertyModel(t,r){if(pe.isModel(t[r]))return!0;const s=e.type(t.constructor,r);return s&&pe.get(s.name)?s.name:void 0}static describe(t,r){return e.description(t,r)}static{this.shouldValidateNestedHandler=(e,t)=>{const r=e[t];return!!r&&"object"==typeof r&&"function"==typeof r.hasErrors}}}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[m.TYPE]){const{designTypes:s}=e.getPropDesignTypes(t,r);n.validation[r]&&s?.length&&s[0]!==ue.OBJECT&&(n.validation[r][m.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([...pe.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[m.TYPE]&&"function"==typeof n[m.TYPE]?.customTypes[Symbol.iterator]?[...n[m.TYPE].customTypes]:[s]}).bind(e),e.getPropDesignTypes=((t,r)=>{const s=e.get(t),n=e.type(t,r),i=s?.[m.REFLECT]?.[r];if(!(n||i&&i[m.TYPE]))return{};const a=i&&i[m.TYPE]?[i[m.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 me(...e){return t(t=>(e.forEach(e=>{J.register({validator:t,validationKey:e,save:!0})}),t),r(m.VALIDATOR,e))}let Ee=class extends Z{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)}}};Ee=c([me(m.DATE),u("design:paramtypes",[String])],Ee);let be=class extends Z{constructor(e=T.DIFF){super(e)}hasErrors(e,t,r){let s;try{s=r.getValueFromPath(t[m.DIFF])}catch(e){return this.getMessage(e.message||this.message)}return D(e,s)?this.getMessage(t.message||this.message,t.label||t[m.DIFF]):void 0}};be=c([me(m.DIFF),u("design:paramtypes",[String])],be);const Te=RegExp("^/(.+)/([gimus]*)$");let Ae=class extends Z{constructor(e=T.PATTERN){super(e,"string")}getPattern(e){if(!Te.test(e))return RegExp(e);const t=e.match(Te);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)}};Ae=c([me(m.PATTERN),u("design:paramtypes",[String])],Ae);let Ne=class extends Ae{constructor(e=T.EMAIL){super(e)}hasErrors(e,t={}){return super.hasErrors(e,{...t,message:t.message||this.message,pattern:t?.pattern||A.EMAIL})}};Ne=c([me(m.EMAIL),u("design:paramtypes",[String])],Ne);let Oe=class extends Z{constructor(e=T.EQUALS){super(e)}hasErrors(e,t,r){let s;try{s=r.getValueFromPath(t[m.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[m.EQUALS])}};Oe=c([me(m.EQUALS),u("design:paramtypes",[String])],Oe);let Se=class extends Z{constructor(e=T.GREATER_THAN){super(e)}hasErrors(e,t,r){let s;try{s=r.getValueFromPath(t[m.GREATER_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[m.GREATER_THAN])}}};Se=c([me(m.GREATER_THAN),u("design:paramtypes",[String])],Se);let Me=class extends Z{constructor(e=T.GREATER_THAN_OR_EQUAL){super(e)}hasErrors(e,t,r){let s;try{s=r.getValueFromPath(t[m.GREATER_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[m.GREATER_THAN_OR_EQUAL])}}};Me=c([me(m.GREATER_THAN_OR_EQUAL),u("design:paramtypes",[String])],Me);let Re=class extends Z{constructor(e=T.LESS_THAN){super(e)}hasErrors(e,t,r){let s;try{s=r.getValueFromPath(t[m.LESS_THAN])}catch(e){return this.getMessage(e.message||this.message)}try{if(!V(e,s))throw Error(t.message||this.message)}catch(e){return this.getMessage(e.message,t.label||t[m.LESS_THAN])}}};Re=c([me(m.LESS_THAN),u("design:paramtypes",[String])],Re);let ve=class extends Z{constructor(e=T.LESS_THAN_OR_EQUAL){super(e)}hasErrors(e,t,r){let s;try{s=r.getValueFromPath(t[m.LESS_THAN_OR_EQUAL])}catch(e){return this.getMessage(e.message||this.message)}try{if(Y(e,s)&&D(e,s)||V(e,s))return;throw Error(t.message||this.message)}catch(e){return this.getMessage(e.message,t.label||t[m.LESS_THAN_OR_EQUAL])}}};ve=c([me(m.LESS_THAN_OR_EQUAL),u("design:paramtypes",[String])],ve);let Pe=class extends Z{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)}};Pe=c([me(m.LIST),u("design:paramtypes",[String])],Pe);let _e=class extends Z{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}};_e=c([me(m.MAX_LENGTH),u("design:paramtypes",[String])],_e);let Le=class extends Z{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}};Le=c([me(m.MAX),u("design:paramtypes",[String])],Le);let Ie=class extends Z{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([me(m.MIN_LENGTH),u("design:paramtypes",[String])],Ie);let we=class extends Z{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}};we=c([me(m.MIN),u("design:paramtypes",[String])],we);let De=class extends Z{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))}}}};De=c([me(m.ENUM),u("design:paramtypes",[String])],De);let je=class extends Ae{constructor(e=T.PASSWORD){super(e)}hasErrors(e,t={}){return super.hasErrors(e,{...t,message:t.message||this.message,[m.PATTERN]:t?.pattern||A.PASSWORD.CHAR8_ONE_OF_EACH})}};je=c([me(m.PASSWORD),u("design:paramtypes",[Object])],je);let Ue=class extends Z{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)}}};Ue=c([me(m.REQUIRED),u("design:paramtypes",[String])],Ue);let He=class extends Z{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}};He=c([me(m.STEP),u("design:paramtypes",[String])],He);let Ce=class extends Z{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)}};Ce=c([me(m.TYPE),u("design:paramtypes",[String])],Ce),J.register({validator:Ce,validationKey:d.TYPE,save:!1});let xe=class extends Ae{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 Fe(e,r,n){return t(s(r,n))}function ze(e,t,r){return J.registerDecorator(t,e),(e,s)=>Fe(0,`${m.REFLECT}.${s}.${t}`,r)(e,s)}function Ge(){return e=>{Object.prototype.hasOwnProperty.call(e,R)||(e[R]=!0)}}function $e(e=T.REQUIRED){const t=m.REQUIRED,r={message:e,description:"defines the attribute as required",async:!1};return n.for(t).define({decorator:ze,args:[$e,t,r]}).apply()}function Ye(e,t=T.MIN){const r=m.MIN,s={[m.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:ze,args:[Ye,r,s]}).apply()}function Ve(e,t=T.MAX){const r=m.MAX,s={[m.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:ze,args:[Ve,r,s]}).apply()}function Qe(e,t=T.STEP){const r=m.STEP,s={[m.STEP]:e,message:t,description:"defines the step of the attribute as "+e,async:!1};return n.for(r).define({decorator:ze,args:[Qe,r,s]}).apply()}function ke(e,t=T.MIN_LENGTH){const r=m.MIN_LENGTH,s={[m.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:ze,args:[ke,r,s]}).apply()}function qe(e,t=T.MAX_LENGTH){const r=m.MAX_LENGTH,s={[m.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:ze,args:[qe,r,s]}).apply()}function Xe(e,t=T.PATTERN){const r=m.PATTERN,s={[m.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:ze,args:[Xe,r,s]}).apply()}function Be(e=T.EMAIL){const t=m.EMAIL,r={[m.PATTERN]:A.EMAIL.toString(),message:e,description:"marks the attribute as an email",async:!1};return n.for(t).define({decorator:ze,args:[Be,t,r]}).apply()}function Ke(e=T.URL){const t=m.URL,r={[m.PATTERN]:A.URL.toString(),message:e,description:"marks the attribute as an url",async:!1};return n.for(t).define({decorator:ze,args:[Ke,t,r]}).apply()}function Ze(e,t=T.TYPE){const r=m.TYPE,s={customTypes:e,message:t,description:"defines the accepted types for the attribute",async:!1};return n.for(r).define({decorator:ze,args:[Ze,r,s]}).apply()}function We(e="dd/MM/yyyy",t=T.DATE){const r=m.DATE;return n.for(r).define({decorator:function(e,t){const s={[m.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)}}),ze(We,r,s)(t,n)}},args:[e,t]}).apply()}function Je(e=A.PASSWORD.CHAR8_ONE_OF_EACH,t=T.PASSWORD){const r=m.PASSWORD,s={[m.PATTERN]:e.toString(),message:t,description:"attribute as a password",async:!1};return n.for(r).define({decorator:ze,args:[Je,r,s]}).apply()}function et(e,t="Array",r=T.LIST){const s=m.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:ze,args:[et,s,i]}).apply()}function tt(e,t=T.LIST){return et(e,"Set",t)}function rt(e,t){return ze(rt,m.EQUALS,{label:t?.label||e,message:t?.message||T.EQUALS,[m.EQUALS]:e,description:"defines attribute as equal to "+e,async:!1})}function st(e,t){return ze(st,m.DIFF,{label:t?.label||e,message:t?.message||T.DIFF,[m.DIFF]:e,description:"defines attribute as different to "+e,async:!1})}function nt(e,t){return ze(nt,m.LESS_THAN,{label:t?.label||e,message:t?.message||T.LESS_THAN,[m.LESS_THAN]:e,description:"defines attribute as less than to "+e,async:!1})}function it(e,t){return ze(it,m.LESS_THAN_OR_EQUAL,{label:t?.label||e,message:t?.message||T.LESS_THAN_OR_EQUAL,[m.LESS_THAN_OR_EQUAL]:e,description:"defines attribute as less or equal to "+e,async:!1})}function at(e,t){return ze(at,m.GREATER_THAN,{label:t?.label||e,message:t?.message||T.GREATER_THAN,[m.GREATER_THAN]:e,description:"defines attribute as greater than "+e,async:!1})}function ot(e,t){return ze(ot,m.GREATER_THAN_OR_EQUAL,{label:t?.label||e,message:t?.message||T.GREATER_THAN_OR_EQUAL,[m.GREATER_THAN_OR_EQUAL]:e,description:"defines attribute as greater or equal to "+e,async:!1})}function ct(e,t=T.ENUM){const r=m.ENUM,s={[m.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:ze,args:[ct,r,s]}).apply()}function ut(e,...t){const r=(...t)=>new e(...t);return r.prototype=e.prototype,r(...t)}function lt(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 dt(e){if(e instanceof pe)return;function t(e,t){Object.setPrototypeOf(e,t)}const r=Object.getPrototypeOf(e);if(r===Object.prototype)return t(e,pe.prototype);for(;r!==Object.prototype;){const e=Object.getPrototypeOf(r);if(e===Object.prototype||Object.getPrototypeOf(e)===Object.prototype)return t(r,pe.prototype)}throw Error("Could not find proper prototype to bind")}function ft(e){const t=(...t)=>{const r=ut(e,...t);dt(r);const s=pe.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),pe.register(t,e.name),t}function ht(){const e=d.MODEL;return n.for(e).define(ft).apply()}function gt(e,...t){return r(d.HASHING,{algorithm:e,args:t})}function pt(e,...t){return r(d.SERIALIZATION,{serializer:e,args:t})}xe=c([me(m.URL),u("design:paramtypes",[String])],xe);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($e(r))}min(e,t){const r=yt.asMeta(e),s=r?.[m.MIN]??(r?void 0:e);if(void 0===s)throw Error(`Missing ${m.MIN} for ${this.attr+""}`);return this.decorate(Ye(s,yt.resolveMessage(r,t)))}max(e,t){const r=yt.asMeta(e),s=r?.[m.MAX]??(r?void 0:e);if(void 0===s)throw Error(`Missing ${m.MAX} for ${this.attr+""}`);return this.decorate(Ve(s,yt.resolveMessage(r,t)))}step(e,t){const r=yt.asMeta(e),s=r?.[m.STEP]??(r?void 0:e);if(void 0===s)throw Error(`Missing ${m.STEP} for ${this.attr+""}`);return this.decorate(Qe(s,yt.resolveMessage(r,t)))}minlength(e,t){const r=yt.asMeta(e),s=r?.[m.MIN_LENGTH]??(r?void 0:e);if(void 0===s)throw Error(`Missing ${m.MIN_LENGTH} for ${this.attr+""}`);return this.decorate(ke(s,yt.resolveMessage(r,t)))}maxlength(e,t){const r=yt.asMeta(e),s=r?.[m.MAX_LENGTH]??(r?void 0:e);if(void 0===s)throw Error(`Missing ${m.MAX_LENGTH} for ${this.attr+""}`);return this.decorate(qe(s,yt.resolveMessage(r,t)))}pattern(e,t){const r=yt.asMeta(e),s=r?.[m.PATTERN]??(r?void 0:e),n=yt.patternFromString(s)??/.*/;return this.decorate(Xe(n,yt.resolveMessage(r,t)))}email(e){const t=yt.asMeta(e),r="string"==typeof e?e:yt.resolveMessage(t);return this.decorate(Be(r))}url(e){const t=yt.asMeta(e),r="string"==typeof e?e:yt.resolveMessage(t);return this.decorate(Ke(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?.[m.FORMAT]??(r?void 0:e);return this.decorate(We(s,yt.resolveMessage(r,t)))}password(e,t){const r=yt.asMeta(e),s=r?.[m.PATTERN]??(r?void 0:e),n=yt.patternFromString(s);return this.decorate(Je(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(et(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?.[m.ENUM]??(r?void 0:e);return this.decorate(ct(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,m.EQUALS,t);return this.decorate(rt(r,s))}eq(e,t){return this.equals(e,t)}different(e,t){const{target:r,options:s}=this.resolveComparison(e,m.DIFF,t);return this.decorate(st(r,s))}diff(e,t){return this.different(e,t)}lessThan(e,t){const{target:r,options:s}=this.resolveComparison(e,m.LESS_THAN,t);return this.decorate(nt(r,s))}lt(e,t){return this.lessThan(e,t)}lessThanOrEqual(e,t){const{target:r,options:s}=this.resolveComparison(e,m.LESS_THAN_OR_EQUAL,t);return this.decorate(it(r,s))}lte(e,t){return this.lessThanOrEqual(e,t)}greaterThan(e,t){const{target:r,options:s}=this.resolveComparison(e,m.GREATER_THAN,t);return this.decorate(at(r,s))}gt(e,t){return this.greaterThan(e,t)}greaterThanOrEqual(e,t){const{target:r,options:s}=this.resolveComparison(e,m.GREATER_THAN_OR_EQUAL,t);return this.decorate(ot(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 mt{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=Et.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 Et 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 Et;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 mt(this,s,t)}build(){if(!this._name)throw Error("name is required");const e=this._parent??pe;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=ht()(t);return this._description&&(r=i(this._description)(r)),r}static builder(){return new Et}static from(e,t){if(!e)throw Error("metadata is required");const r=Et.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 bt="##VERSION##",Tt="##PACKAGE##";e.registerLibrary(Tt,bt);export{R as ASYNC_META_KEY,ye as AsyncValidator,yt as AttributeBuilder,S as COMPARISON_ERROR_MESSAGES,y as ComparisonValidationKeys,b as DAYS_OF_WEEK_NAMES,T as DEFAULT_ERROR_MESSAGES,A as DEFAULT_PATTERNS,Ee as DateValidator,H as DefaultHashingMethod,f as DefaultSerializationMethod,be as DiffValidator,Ne as EmailValidator,Oe as EqualsValidator,Me as GreaterThanOrEqualValidator,Se as GreaterThanValidator,C as Hashing,h as JSONSerializer,ve as LessThanOrEqualValidator,Re as LessThanValidator,Pe as ListValidator,E as MONTH_NAMES,_e as MaxLengthValidator,Le as MaxValidator,Ie as MinLengthValidator,we as MinValidator,pe as Model,Et as ModelBuilder,p as ModelErrorDefinition,d as ModelKeys,he as ModelRegistryManager,De as OptionValidator,Tt as PACKAGE_NAME,je as PasswordValidator,z as PathProxyEngine,Ae as PatternValidator,ce as Primitives,Ue as RequiredValidator,ue as ReservedModels,g as Serialization,He as StepValidator,Ce as TypeValidator,xe as URLValidator,M as VALIDATION_PARENT_KEY,bt as VERSION,J as Validation,m as ValidationKeys,Z as Validator,W as ValidatorRegistry,Ge as async,P as bindDateToString,dt as bindModelPrototype,ge as bulkModelRegister,k as checkType,q as checkTypes,ut as construct,We as date,v as dateFromFormat,st as diff,Be as email,rt as eq,X as evaluateDesignTypes,lt as findLastProtoBeforeObject,I as formatDate,at as gt,ot as gte,j as hashCode,U as hashObj,gt as hashedBy,ze as innerValidationDecorator,D as isEqual,Q as isGreaterThan,V as isLessThan,_ as isValidDate,Y as isValidForGteOrLteComparison,le as jsTypes,et as list,nt as lt,it as lte,Ve as max,qe as maxlength,Ye as min,ke as minlength,ht as model,ft as modelBaseDecorator,ct as option,w as parseDate,Je as password,Xe as pattern,Te as regexpParser,$e as required,pt as serializedBy,tt as set,O as sf,Qe as step,N as stringFormat,ee as toConditionalPromise,L as twoDigitPad,Ze as type,Ke as url,oe as validate,ne as validateChildValue,ie as validateDecorator,ae as validateDecorators,Fe as validationMetadata,me as validator,B as valueLength};
2
2
  //# sourceMappingURL=decorator-validation.js.map