@decaf-ts/db-decorators 0.3.1 → 0.3.4

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.
Files changed (61) hide show
  1. package/dist/db-decorators.bundle.min.js +1 -1
  2. package/dist/esm/db-decorators.bundle.min.esm.js +1 -1
  3. package/lib/esm/identity/decorators.js +4 -2
  4. package/lib/esm/identity/utils.d.ts +1 -0
  5. package/lib/esm/identity/utils.js +2 -2
  6. package/lib/esm/interfaces/IRepository.d.ts +1 -1
  7. package/lib/esm/interfaces/IRepository.js +1 -1
  8. package/lib/esm/model/decorators.d.ts +1 -0
  9. package/lib/esm/model/decorators.js +2 -2
  10. package/lib/esm/model/model.d.ts +107 -3
  11. package/lib/esm/model/model.js +1 -1
  12. package/lib/esm/model/validation.d.ts +1 -1
  13. package/lib/esm/model/validation.js +1 -1
  14. package/lib/esm/operations/Operations.d.ts +1 -0
  15. package/lib/esm/operations/Operations.js +1 -1
  16. package/lib/esm/operations/OperationsRegistry.d.ts +1 -0
  17. package/lib/esm/operations/OperationsRegistry.js +1 -1
  18. package/lib/esm/operations/types.d.ts +7 -6
  19. package/lib/esm/operations/types.js +1 -1
  20. package/lib/esm/repository/BaseRepository.d.ts +1 -1
  21. package/lib/esm/repository/BaseRepository.js +1 -1
  22. package/lib/esm/repository/Repository.d.ts +1 -1
  23. package/lib/esm/repository/Repository.js +1 -1
  24. package/lib/esm/repository/utils.d.ts +1 -1
  25. package/lib/esm/repository/utils.js +2 -2
  26. package/lib/esm/validation/decorators.d.ts +1 -1
  27. package/lib/esm/validation/decorators.js +5 -8
  28. package/lib/esm/validation/index.d.ts +1 -0
  29. package/lib/esm/validation/index.js +2 -1
  30. package/lib/esm/validation/validation.d.ts +41 -0
  31. package/lib/esm/validation/validation.js +7 -0
  32. package/lib/identity/decorators.cjs +5 -3
  33. package/lib/identity/utils.cjs +2 -2
  34. package/lib/identity/utils.d.ts +1 -0
  35. package/lib/interfaces/IRepository.cjs +1 -1
  36. package/lib/interfaces/IRepository.d.ts +1 -1
  37. package/lib/model/decorators.cjs +1 -1
  38. package/lib/model/decorators.d.ts +1 -0
  39. package/lib/model/model.cjs +1 -1
  40. package/lib/model/model.d.ts +107 -3
  41. package/lib/model/validation.cjs +1 -1
  42. package/lib/model/validation.d.ts +1 -1
  43. package/lib/operations/Operations.cjs +1 -1
  44. package/lib/operations/Operations.d.ts +1 -0
  45. package/lib/operations/OperationsRegistry.cjs +1 -1
  46. package/lib/operations/OperationsRegistry.d.ts +1 -0
  47. package/lib/operations/types.cjs +1 -1
  48. package/lib/operations/types.d.ts +7 -6
  49. package/lib/repository/BaseRepository.cjs +1 -1
  50. package/lib/repository/BaseRepository.d.ts +1 -1
  51. package/lib/repository/Repository.cjs +1 -1
  52. package/lib/repository/Repository.d.ts +1 -1
  53. package/lib/repository/utils.cjs +1 -1
  54. package/lib/repository/utils.d.ts +1 -1
  55. package/lib/validation/decorators.cjs +3 -7
  56. package/lib/validation/decorators.d.ts +1 -1
  57. package/lib/validation/index.cjs +2 -1
  58. package/lib/validation/index.d.ts +1 -0
  59. package/lib/validation/validation.cjs +9 -0
  60. package/lib/validation/validation.d.ts +41 -0
  61. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see db-decorators.bundle.min.esm.js.LICENSE.txt */
2
- var e={5580:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.id=function(){return(0,n.apply)((0,o.required)(),(0,a.readonly)(),(0,o.propMetadata)(s.Repository.key(i.DBKeys.ID),{}))};const o=r(2302),n=r(32),a=r(3475),i=r(2402),s=r(5666)},2912:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),n(r(5580),t),n(r(861),t)},861:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.findPrimaryKey=s,t.findModelId=function(e,t=!1){const r=s(e).id,o=e[r];if(!o&&!t)throw new i.NotFoundError((0,a.sf)("No value for the Id is defined under the property {0}",r));return o};const o=r(2402),n=r(8311),a=r(2302),i=r(879);function s(e){const t=(0,n.getAllPropertyDecoratorsRecursive)(e,void 0,o.DBKeys.REFLECT+o.DBKeys.ID),r=Object.entries(t).reduce(((e,[t,r])=>{const o=r.filter((e=>e.key!==a.ModelKeys.TYPE));return o&&o.length&&(e[t]=e[t]||[],e[t].push(...o)),e}),{});if(!r||!Object.keys(r).length)throw new i.InternalError("Could not find ID decorated Property");if(Object.keys(r).length>1)throw new i.InternalError((0,a.sf)(Object.keys(r).join(", ")));const s=Object.keys(r)[0];if(!s)throw new i.InternalError("Could not find ID decorated Property");return{id:s,props:r[s][0].props.options}}},7729:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),n(r(2912),t),n(r(1206),t),n(r(3847),t),n(r(5804),t),n(r(5666),t),n(r(965),t)},5996:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},2564:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},885:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},1206:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),n(r(5996),t),n(r(2564),t),n(r(885),t)},2402:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_TIMESTAMP_FORMAT=t.DefaultSeparator=t.DBKeys=void 0;const o=r(2302);t.DBKeys={REFLECT:`${o.ModelKeys.REFLECT}persistence.`,REPOSITORY:"repository",CLASS:"_class",ID:"id",INDEX:"index",UNIQUE:"unique",SERIALIZE:"serialize",READONLY:"readonly",TIMESTAMP:"timestamp",HASH:"hash",COMPOSED:"composed",ORIGINAL:"__originalObj"},t.DefaultSeparator="_",t.DEFAULT_TIMESTAMP_FORMAT="dd/MM/yyyy HH:mm:ss:S"},5893:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.hashOnCreateUpdate=l,t.hash=u,t.composedFromCreateUpdate=d,t.composedFromKeys=function(e,t=o.DefaultSeparator,r=!1,n="",a=""){return f(e,r,t,"keys",n,a)},t.composed=function(e,t=o.DefaultSeparator,r=!1,n="",a=""){return f(e,r,t,"values",n,a)};const o=r(2402),n=r(32),a=r(2302),i=r(6208),s=r(879),c=r(3932);function l(e,t,r,o){if(!r[t])return;const n=a.Hashing.hash(r[t]);o&&r[t]===n||(r[t]=n)}function u(){return(0,n.apply)((0,i.onCreateUpdate)(l),(0,a.propMetadata)(c.Repository.key(o.DBKeys.HASH),{}))}function d(e,t,r){try{const{args:o,type:n,prefix:i,suffix:c,separator:l}=e,u=o.map((e=>{if(!(e in r))throw new s.InternalError((0,a.sf)("Property {0} not found to compose from",e));if("keys"===n)return e;if(void 0===r[e])throw new s.InternalError((0,a.sf)("Property {0} does not contain a value to compose from",e));return r[e].toString()}));i&&u.unshift(i),c&&u.push(c),r[t]=u.join(l)}catch(e){throw new s.InternalError(`Failed to compose value: ${e}`)}}function f(e,t=!1,r=o.DefaultSeparator,s="values",l="",f=""){const p={args:e,hashResult:t,separator:r,type:s,prefix:l,suffix:f},y=[(0,i.onCreateUpdate)(d,p),(0,a.propMetadata)(c.Repository.key(o.DBKeys.COMPOSED),p)];return t&&y.push(u()),(0,n.apply)(...y)}},3847:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),n(r(192),t),n(r(2402),t),n(r(5893),t),n(r(2366),t)},2366:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=r(2302),n=r(192);o.Model.prototype.hasErrors=function(e,...t){!e||e instanceof o.Model||(t.unshift(e),e=void 0);const r=(0,o.validate)(this,...t);return r||!e?r:(0,n.validateCompare)(e,this,...t)}},192:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateCompare=function(e,t,...r){const s=[];for(const e in t)Object.prototype.hasOwnProperty.call(t,e)&&-1===r.indexOf(e)&&s.push((0,n.getPropertyDecorators)(a.UpdateValidationKeys.REFLECT,t,e));let c;for(const r of s){const{prop:n,decorators:a}=r;if(a.shift(),!a||!a.length)continue;let i;for(const s of a){const a=o.Validation.get(s.key);if(!a){console.error(`Could not find Matching validator for ${s.key} for property ${String(r.prop)}`);continue}const c=a.updateHasErrors(t[n.toString()],e[n.toString()],...Object.values(s.props));c&&(i=i||{},i[s.key]=c)}i&&(c=c||{},c[r.prop.toString()]=i)}for(const r of Object.keys(t).filter((e=>!c||!c[e]))){let a;const s=(0,n.getPropertyDecorators)(o.ValidationKeys.REFLECT,t,r).decorators,l=(0,n.getPropertyDecorators)(o.ValidationKeys.REFLECT,t,r).decorators.filter((e=>-1!==[o.ModelKeys.TYPE,o.ValidationKeys.TYPE].indexOf(e.key)));if(!l||!l.length)continue;const u=l.pop(),d=u.props.name?[u.props.name]:Array.isArray(u.props.customTypes)?u.props.customTypes:[u.props.customTypes],f=Object.values(o.ReservedModels).map((e=>e.toLowerCase()));for(const n of d){if(-1===f.indexOf(n.toLowerCase()))switch(n){case Array.name:case Set.name:if(s.length&&s.find((e=>e.key===o.ValidationKeys.LIST))){let o,s;switch(n){case Array.name:o=t[r],s=e[r];break;case Set.name:o=t[r].values(),s=e[r].values();break;default:throw new Error(`Invalid attribute type ${n}`)}a=o.map((e=>{const t=(0,i.findModelId)(e,!0);if(!t)return"Failed to find model id";const r=s.find((e=>t===(0,i.findModelId)(e,!0)));return r?e.hasErrors(r):void 0})).filter((e=>!!e)),a?.length||(a=void 0)}break;default:try{t[r]&&e[r]&&(a=t[r].hasErrors(e[r]))}catch(e){console.warn((0,o.sf)("Model should be validatable but its not"))}}a&&(c=c||{},c[r]=a)}}return c?new o.ModelErrorDefinition(c):void 0};const o=r(2302),n=r(32),a=r(965),i=r(2912)},9668:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Operations=void 0;const o=r(2302),n=r(4143),a=r(7625);class i{constructor(){}static getHandlerName(e){return e.name?e.name:(console.warn("Handler name not defined. A name will be generated, but this is not desirable. please avoid using anonymous functions"),o.Hashing.hash(e.toString()))}static key(e){return a.OperationKeys.REFLECT+e}static get(e,t,r){return i.registry.get(e,t,r)}static getOpRegistry(){return i.registry||(i.registry=new n.OperationsRegistry),i.registry}static register(e,t,r,o){i.getOpRegistry().register(e,t,r,o)}}t.Operations=i},4143:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OperationsRegistry=void 0;const o=r(9668);t.OperationsRegistry=class{constructor(){this.cache={}}get(e,t,r,o){let n;o=o||[];try{n="string"==typeof e?e:e.constructor.name,o.unshift(...Object.values(this.cache[n][t][r]||[]))}catch(t){if("string"==typeof e||e===Object.prototype||Object.getPrototypeOf(e)===Object.prototype)return o}let a=Object.getPrototypeOf(e);return a.constructor.name===n&&(a=Object.getPrototypeOf(a)),this.get(a,t,r,o)}register(e,t,r,n){const a=r.constructor.name,i=o.Operations.getHandlerName(e);this.cache[a]||(this.cache[a]={}),this.cache[a][n]||(this.cache[a][n]={}),this.cache[a][n][t]||(this.cache[a][n][t]={}),this.cache[a][n][t][i]||(this.cache[a][n][t][i]=e)}}},7625:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.DBOperations=t.OperationKeys=void 0,function(e){e.REFLECT="decaf.model.db.operations.",e.CREATE="create",e.READ="read",e.UPDATE="update",e.DELETE="delete",e.ON="on.",e.AFTER="after."}(r||(t.OperationKeys=r={})),t.DBOperations={CREATE:[r.CREATE],READ:[r.READ],UPDATE:[r.UPDATE],DELETE:[r.DELETE],CREATE_UPDATE:[r.CREATE,r.UPDATE],READ_CREATE:[r.READ,r.CREATE],ALL:[r.CREATE,r.READ,r.UPDATE,r.DELETE]}},6208:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.onCreateUpdate=function(e,t){return s(o.DBOperations.CREATE_UPDATE,e,t)},t.onUpdate=function(e,t){return s(o.DBOperations.UPDATE,e,t)},t.onCreate=function(e,t){return s(o.DBOperations.CREATE,e,t)},t.onRead=function(e,t){return s(o.DBOperations.READ,e,t)},t.onDelete=function(e,t){return s(o.DBOperations.DELETE,e,t)},t.on=s,t.afterCreateUpdate=function(e,t){return c(o.DBOperations.CREATE_UPDATE,e,t)},t.afterUpdate=function(e,t){return c(o.DBOperations.UPDATE,e,t)},t.afterCreate=function(e,t){return c(o.DBOperations.CREATE,e,t)},t.afterRead=function(e,t){return c(o.DBOperations.READ,e,t)},t.afterDelete=function(e,t){return c(o.DBOperations.DELETE,e,t)},t.after=c,t.operation=l;const o=r(7625),n=r(9668),a=r(32),i=r(2302);function s(e=o.DBOperations.ALL,t,r){return l(o.OperationKeys.ON,e,t,r)}function c(e=o.DBOperations.ALL,t,r){return l(o.OperationKeys.AFTER,e,t,r)}function l(e,t=o.DBOperations.ALL,r,s){return(o,c)=>{const l=o.constructor.name,u=t.reduce(((t,a)=>{const u=e+a;let d=Reflect.getMetadata(n.Operations.key(u),o,c);d||(d={operation:a,handlers:{}});const f=n.Operations.getHandlerName(r);return d.handlers[l]&&d.handlers[l][c]&&f in d.handlers[l][c]||(d.handlers[l]=d.handlers[l]||{},d.handlers[l][c]=d.handlers[l][c]||{},d.handlers[l][c][f]={data:s},t.push(function(e,t){return(r,o)=>{n.Operations.register(t,e,r,o)}}(u,r),(0,i.propMetadata)(n.Operations.key(u),d))),t}),[]);return(0,a.apply)(...u)(o,c)}}},5804:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),n(r(7625),t),n(r(6208),t),n(r(9668),t),n(r(4143),t),n(r(5981),t)},5981:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},8269:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BaseRepository=void 0;const o=r(2302),n=r(8311),a=r(7625),i=r(879),s=r(6124),c=r(3420),l=r(861);t.BaseRepository=class{get class(){if(!this._class)throw new i.InternalError("No class definition found for this repository");return this._class}get cache(){return this._cache||(this._cache=new s.DataCache),this._cache}constructor(e){e&&(this._class=e);const t=this;[this.create,this.read,this.update,this.delete].forEach((e=>{const r=e.name;(0,c.wrapMethod)(t,t[r+"Prefix"],e,t[r+"Suffix"])}))}async create(e,...t){throw new Error("Child classes must implement this.")}async createAll(e,...t){return Promise.all(e.map((e=>this.create(e,...t))))}async createPrefix(e,...t){return e=new this.class(e),await(0,n.enforceDBDecorators)(this,e,a.OperationKeys.CREATE,a.OperationKeys.ON),[e,...t]}async createSuffix(e){return await(0,n.enforceDBDecorators)(this,e,a.OperationKeys.CREATE,a.OperationKeys.AFTER),e}async createAllPrefix(e,...t){return await Promise.all(e.map((async e=>(e=new this.class(e),await(0,n.enforceDBDecorators)(this,e,a.OperationKeys.CREATE,a.OperationKeys.ON),e)))),[e,...t]}async createAllSuffix(e){return await Promise.all(e.map((e=>(0,n.enforceDBDecorators)(this,e,a.OperationKeys.CREATE,a.OperationKeys.AFTER)))),e}async read(e,...t){throw new Error("Child classes must implement this")}async readAll(e,...t){return await Promise.all(e.map((e=>this.read(e,...t))))}async readSuffix(e){return await(0,n.enforceDBDecorators)(this,e,a.OperationKeys.READ,a.OperationKeys.AFTER),e}async readPrefix(e,...t){const r=new this.class;return r[(0,l.findPrimaryKey)(r).id]=e,await(0,n.enforceDBDecorators)(this,r,a.OperationKeys.READ,a.OperationKeys.ON),[e,...t]}async readAllPrefix(e,...t){const r=new this.class,o=(0,l.findPrimaryKey)(r).id;return await Promise.all(e.map((async e=>{const t=new this.class;return t[o]=e,(0,n.enforceDBDecorators)(this,t,a.OperationKeys.READ,a.OperationKeys.ON)}))),[e,...t]}async readAllSuffix(e){return await Promise.all(e.map((e=>(0,n.enforceDBDecorators)(this,e,a.OperationKeys.READ,a.OperationKeys.AFTER)))),e}async update(e,...t){throw new Error("Child classes must implement this")}async updateAll(e,...t){return Promise.all(e.map((e=>this.update(e,...t))))}async updateSuffix(e){return await(0,n.enforceDBDecorators)(this,e,a.OperationKeys.UPDATE,a.OperationKeys.AFTER),e}async updatePrefix(e,...t){const r=(0,l.findModelId)(e),o=await this.read(r);return await(0,n.enforceDBDecorators)(this,e,a.OperationKeys.UPDATE,a.OperationKeys.ON,o),[e,...t]}async updateAllPrefix(e,...t){return await Promise.all(e.map((e=>(e=new this.class(e),(0,n.enforceDBDecorators)(this,e,a.OperationKeys.UPDATE,a.OperationKeys.ON),e)))),[e,...t]}async updateAllSuffix(e){return await Promise.all(e.map((e=>(0,n.enforceDBDecorators)(this,e,a.OperationKeys.UPDATE,a.OperationKeys.AFTER)))),e}async delete(e,...t){throw new Error("Child classes must implement this")}async deleteAll(e,...t){return Promise.all(e.map((e=>this.delete(e,...t))))}async deleteSuffix(e){return await(0,n.enforceDBDecorators)(this,e,a.OperationKeys.DELETE,a.OperationKeys.AFTER),e}async deletePrefix(e,...t){const r=await this.read(e,...t);return await(0,n.enforceDBDecorators)(this,r,a.OperationKeys.DELETE,a.OperationKeys.ON),[e,...t]}async deleteAllPrefix(e,...t){const r=await this.readAll(e,...t);return await Promise.all(r.map((async e=>(0,n.enforceDBDecorators)(this,e,a.OperationKeys.DELETE,a.OperationKeys.ON)))),[e,...t]}async deleteAllSuffix(e){return await Promise.all(e.map((e=>(0,n.enforceDBDecorators)(this,e,a.OperationKeys.DELETE,a.OperationKeys.AFTER)))),e}merge(e,t){const r=e=>Object.entries(e).reduce(((e,[t,r])=>(void 0!==r&&(e[t]=r),e)),{});return new this.class(Object.assign({},r(e),r(t)))}toString(){return(0,o.sf)("[{0}] - Repository for {1}",this.constructor.name,this.class.name)}}},6124:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DataCache=void 0;const o=r(879);t.DataCache=class{constructor(){this.cache={}}async get(e){if(!(e in this.cache))throw new o.NotFoundError(`Key ${e} not in dataStore`);return this.cache[e]}async push(e,t){if(e in this.cache)throw new o.ConflictError(`Key ${e} already in dataStore`);this.cache[e]=t}async put(e,t){this.cache[e]=t}async pop(e){const t=this.get(e);return delete this.cache[e],t}async purge(e){e?await this.pop(e):this.cache={}}}},3932:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Repository=void 0;const o=r(8311),n=r(7625),a=r(879),i=r(8269),s=r(861),c=r(2402);class l extends i.BaseRepository{constructor(e){super(e)}async create(e){throw new Error("Child classes must implement this.")}async createPrefix(e,...t){e=new this.class(e),await(0,o.enforceDBDecorators)(this,e,n.OperationKeys.CREATE,n.OperationKeys.ON);const r=e.hasErrors();if(r)throw new a.ValidationError(r.toString());return[e,...t]}async createAllPrefix(e,...t){await Promise.all(e.map((async e=>(e=new this.class(e),await(0,o.enforceDBDecorators)(this,e,n.OperationKeys.CREATE,n.OperationKeys.ON),e))));const r=e.map((e=>e.hasErrors())).reduce(((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e)),void 0);if(r)throw new a.ValidationError(r);return[e,...t]}async delete(e){throw new Error("Child classes must implement this.")}async read(e){throw new Error("Child classes must implement this.")}async update(e){throw new Error("Child classes must implement this.")}async updatePrefix(e,...t){const r=(0,s.findModelId)(e),i=await this.read(r);e=this.merge(i,e),await(0,o.enforceDBDecorators)(this,e,n.OperationKeys.UPDATE,n.OperationKeys.ON,i);const c=e.hasErrors(i);if(c)throw new a.ValidationError(c.toString());return[e,...t]}async updateAllPrefix(e,...t){const r=e.map((e=>(0,s.findModelId)(e))),i=await this.readAll(r);e=e.map(((e,t)=>this.merge(i[t],e))),await Promise.all(e.map(((e,t)=>(0,o.enforceDBDecorators)(this,e,n.OperationKeys.UPDATE,n.OperationKeys.ON,i[t]))));const c=e.map(((e,t)=>e.hasErrors(i[t],e))).reduce(((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e)),void 0);if(c)throw new a.ValidationError(c);return[e,...t]}static key(e){return c.DBKeys.REFLECT+e}}t.Repository=l},879:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ConflictError=t.NotFoundError=t.SerializationError=t.InternalError=t.ValidationError=t.BaseError=void 0;class r extends Error{constructor(e,t){if(t instanceof r)return t;super(`[${e}] ${t instanceof Error?t.message:t}`),t instanceof Error&&(this.stack=t.stack)}}t.BaseError=r;class o extends r{constructor(e){super(o.name,e)}}t.ValidationError=o;class n extends r{constructor(e){super(n.name,e)}}t.InternalError=n;class a extends r{constructor(e){super(a.name,e)}}t.SerializationError=a;class i extends r{constructor(e){super(i.name,e)}}t.NotFoundError=i;class s extends r{constructor(e){super(s.name,e)}}t.ConflictError=s},5666:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),n(r(8269),t),n(r(6124),t),n(r(879),t),n(r(3932),t),n(r(8311),t),n(r(3420),t)},8311:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getAllPropertyDecoratorsRecursive=t.getHandlerArgs=void 0,t.enforceDBDecorators=async function(e,r,a,l,u){const d=c(r,a,l);if(d)for(const c in d){const f=d[c];for(const d of f){const{key:f}=d,p=o.Operations.get(r,c,l+f);if(!p||!p.length)throw new i.InternalError(`Could not find registered handler for the operation ${l+f} under property ${c}`);const y=(0,t.getHandlerArgs)(d,c,r);if(!y||Object.values(y).length!==p.length)throw new i.InternalError((0,s.sf)("Args and handlers length do not match"));let h,g;for(let t=0;t<p.length;t++){h=p[t],g=Object.values(y)[t];const o=[g.data,c,r];if(a===n.OperationKeys.UPDATE){if(!u)throw new i.InternalError("Missing old model for update operation");o.push(u)}await h.apply(e,o)}}}},t.getDbDecorators=c;const o=r(9668),n=r(7625),a=r(32),i=r(879),s=r(2302);function c(e,t,r){const o=(0,a.getAllPropertyDecorators)(e,n.OperationKeys.REFLECT+(r||""));if(o)return Object.keys(o).reduce(((e,r)=>{const n=o[r].filter((e=>e.key===t));return n&&n.length&&(e||(e={}),e[r]=n),e}),void 0)}t.getHandlerArgs=function(e,r,o,n){const a=o.constructor.name;if(!a)throw new i.InternalError("Could not determine model class");n=n||{},e.props.handlers[a]&&e.props.handlers[a][r]&&(n={...e.props.handlers[a][r],...n});let s=Object.getPrototypeOf(o);return s===Object.prototype?n:(s.constructor.name===a&&(s=Object.getPrototypeOf(s)),(0,t.getHandlerArgs)(e,r,s,n))},t.getAllPropertyDecoratorsRecursive=function(e,r,...o){const i=r||{},c=(0,a.getAllPropertyDecorators)(e,...o);if(c&&function(e){Object.entries(e).forEach((([e,t])=>{i[e]=i[e]||[],((e,...t)=>{t.forEach((t=>{let r;if(!(r=i[e].find((e=>e.key===t.key)))||r.props.operation!==t.props.operation)return void i[e].push(t);if(t.key===s.ModelKeys.TYPE)return;const{handlers:o,operation:a}=t.props;if(!a||!a.match(new RegExp(`^(:?${n.OperationKeys.ON}|${n.OperationKeys.AFTER})(:?${n.OperationKeys.CREATE}|${n.OperationKeys.READ}|${n.OperationKeys.UPDATE}|${n.OperationKeys.DELETE})$`)))return void i[e].push(t);const c=r.props.handlers;Object.entries(o).forEach((([e,t])=>{e in c?Object.entries(t).forEach((([t,r])=>{t in c[e]?Object.entries(r).forEach((([r,o])=>{r in c[e][t]?console.warn((0,s.sf)("Skipping handler registration for {0} under prop {0} because handler is the same",e,t)):c[e][t][r]=o})):c[e][t]=r})):c[e]=t}))}))})(e,...t)}))}(c),Object.getPrototypeOf(e)===Object.prototype)return i;const l=Object.getPrototypeOf(e);return l?(0,t.getAllPropertyDecoratorsRecursive)(l,i,...o):i}},3420:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.prefixMethod=function(e,t,r,o){const n=async function(...e){const o=await Promise.resolve(r.call(this,...e));return Promise.resolve(t.apply(this,o))}.bind(e),a=o||t.name;Object.defineProperty(n,"name",{enumerable:!0,configurable:!0,writable:!1,value:a}),e[a]=n},t.suffixMethod=function(e,t,r,o){const n=async function(...e){const o=await Promise.resolve(t.call(this,...e));return r.call(this,...o)}.bind(e),a=o||t.name;Object.defineProperty(n,"name",{enumerable:!0,configurable:!0,writable:!1,value:a}),e[a]=n},t.wrapMethod=function(e,t,r,o,n){const a=async function(...n){let a=t.call(e,...n);a instanceof Promise&&(a=await a);let i=await r.call(e,...a);return i instanceof Promise&&(i=await i),i=o.call(this,i),i instanceof Promise&&(i=await i),i}.bind(e),i=n||r.name;Object.defineProperty(a,"name",{enumerable:!0,configurable:!0,writable:!1,value:i}),e[i]=a}},2628:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UpdateValidationKeys=t.DEFAULT_ERROR_MESSAGES=void 0;const o=r(2402);t.DEFAULT_ERROR_MESSAGES={ID:{INVALID:"This Id is invalid",REQUIRED:"The Id is mandatory"},READONLY:{INVALID:"This cannot be updated"},TIMESTAMP:{REQUIRED:"Timestamp is Mandatory",DATE:"The Timestamp must the a valid date",INVALID:"This value must always increase"}},t.UpdateValidationKeys={REFLECT:"db.update.validation.",TIMESTAMP:o.DBKeys.TIMESTAMP,READONLY:o.DBKeys.READONLY}},3475:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getDBUpdateKey=d,t.readonly=function(e=a.DEFAULT_ERROR_MESSAGES.READONLY.INVALID){return(0,o.propMetadata)(d(n.DBKeys.READONLY),{message:e})},t.timestampHandler=f,t.timestamp=function(e=i.DBOperations.CREATE_UPDATE,t=n.DEFAULT_TIMESTAMP_FORMAT){const r=[(0,o.date)(t,a.DEFAULT_ERROR_MESSAGES.TIMESTAMP.DATE),(0,o.required)(a.DEFAULT_ERROR_MESSAGES.TIMESTAMP.REQUIRED),(0,s.on)(e,f)];return-1!==e.indexOf(i.OperationKeys.UPDATE)&&r.push((0,l.metadata)(d(n.DBKeys.TIMESTAMP),{message:a.DEFAULT_ERROR_MESSAGES.TIMESTAMP.INVALID})),(0,l.apply)(...r)},t.serializeOnCreateUpdate=p,t.serializeAfterAll=y,t.serialize=function(){return(0,l.apply)((0,s.onCreateUpdate)(p),(0,s.after)(i.DBOperations.ALL,y),(0,o.type)([String.name,Object.name]),(0,l.metadata)(u.Repository.key(n.DBKeys.SERIALIZE),{}))};const o=r(2302),n=r(2402),a=r(2628),i=r(7625),s=r(6208),c=r(879),l=r(32),u=r(5666);function d(e){return a.UpdateValidationKeys.REFLECT+e}function f(e,t,r){r[t]=new Date}async function p(e,t,r,n){if(r[t])try{r[t]=JSON.stringify(r[t])}catch(e){throw new c.SerializationError((0,o.sf)("Failed to serialize {0} property on {1} model: {2}",t,r.constructor.name,e.message))}}async function y(e,t,r){if(r[t]&&"string"==typeof r[t])try{r[t]=JSON.parse(r[t])}catch(e){throw new c.SerializationError((0,o.sf)("Failed to deserialize {0} property on {1} model: {2}",t,r.constructor.name,e.message))}}},965:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),n(r(973),t),n(r(2628),t),n(r(3475),t)},4837:function(e,t,r){var o=this&&this.__decorate||function(e,t,r,o){var n,a=arguments.length,i=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(i=(a<3?n(i):a>3?n(t,r,i):n(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},n=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.ReadOnlyValidator=void 0;const a=r(2302),i=r(2628),s=r(32);let c=class extends a.Validator{constructor(){super(i.DEFAULT_ERROR_MESSAGES.READONLY.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,r){if(void 0!==e)return(0,s.isEqual)(e,t)?void 0:this.getMessage(r||this.message)}};t.ReadOnlyValidator=c,t.ReadOnlyValidator=c=o([(0,a.validator)(i.UpdateValidationKeys.READONLY),n("design:paramtypes",[])],c)},3927:function(e,t,r){var o=this&&this.__decorate||function(e,t,r,o){var n,a=arguments.length,i=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(i=(a<3?n(i):a>3?n(t,r,i):n(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},n=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.TimestampValidator=void 0;const a=r(2302),i=r(2628);let s=class extends a.Validator{constructor(){super(i.DEFAULT_ERROR_MESSAGES.TIMESTAMP.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,r){if(void 0!==e){r=r||this.getMessage(r||this.message);try{e=new Date(e),t=new Date(t)}catch(e){return r}return e<=t?r:void 0}}};t.TimestampValidator=s,t.TimestampValidator=s=o([(0,a.validator)(i.UpdateValidationKeys.TIMESTAMP),n("design:paramtypes",[])],s)},372:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UpdateValidator=void 0;const o=r(2302);class n extends o.Validator{constructor(e=o.DEFAULT_ERROR_MESSAGES.DEFAULT,...t){super(e,...t)}}t.UpdateValidator=n},973:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),n(r(4837),t),n(r(3927),t),n(r(372),t)},2302:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.VERSION=void 0,n(r(4072),t),n(r(5030),t),n(r(5643),t),t.VERSION="1.3.7"},3:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Model=void 0;const o=r(4744),n=r(1825),a=r(32),i=r(2709),s=r(2252),c=r(9683),l=r(7675),u=r(5021),d=r(1318),f=r(8539);let p,y;class h{constructor(e){}hasErrors(...e){return(0,i.validate)(this,...e)}equals(e,...t){return(0,a.isEqual)(this,e,...t)}serialize(){return h.serialize(this)}toString(){return this.constructor.name+": "+JSON.stringify(this,void 0,2)}hash(){return h.hash(this)}static deserialize(e){const t=Reflect.getMetadata(this.key(l.ModelKeys.SERIALIZATION),this.constructor);return t&&t.serializer?o.Serialization.deserialize(e,t.serializer,...t.args||[]):o.Serialization.deserialize(e)}static fromObject(e,t){t||(t={});for(const r of h.getAttributes(e))e[r]=t[r]||void 0;return e}static fromModel(e,t){let r,o;t||(t={});const n=h.getAttributes(e);for(const i of n){if(e[i]=t[i]||void 0,"object"!=typeof e[i])continue;const n=(0,c.isPropertyModel)(e,i);if(n){try{e[i]=h.build(e[i],"string"==typeof n?n:void 0)}catch(e){console.log(e)}continue}const s=(0,a.getPropertyDecorators)(u.ValidationKeys.REFLECT,e,i).decorators;if(r=s.filter((e=>-1!==[l.ModelKeys.TYPE,u.ValidationKeys.TYPE].indexOf(e.key))),!r||!r.length)throw new Error((0,d.sf)("failed to find decorators for property {0}",i));o=r.pop();const p=o.props.name?[o.props.name]:Array.isArray(o.props.customTypes)?o.props.customTypes:[o.props.customTypes],y=Object.values(f.ReservedModels).map((e=>e.toLowerCase()));p.forEach((t=>{if(-1===y.indexOf(t.toLowerCase()))try{switch(t){case"Array":case"Set":if(s.length){const r=s.find((e=>e.key===u.ValidationKeys.LIST));if(r){const o=r.props.class.find((e=>!f.jsTypes.includes(e.toLowerCase())));if("Array"===t&&(e[i]=e[i].map((e=>["object","function"].includes(typeof e)&&o?h.build(e,o):e))),"Set"===t){const t=new Set;for(const r of e[i])["object","function"].includes(typeof r)&&o?t.add(h.build(r,o)):t.add(r);e[i]=t}}}break;default:e[i]&&(e[i]=h.build(e[i],t))}}catch(e){console.log(e)}}))}return e}static setBuilder(e){p=e}static getBuilder(){return p}static getRegistry(){return y||(y=new n.ModelRegistryManager),y}static setRegistry(e){y=e}static register(e,t){return h.getRegistry().register(e,t)}static get(e){return h.getRegistry().get(e)}static build(e={},t){return h.getRegistry().build(e,t)}static getMetadata(e){const t=Reflect.getMetadata(this.key(l.ModelKeys.MODEL),e.constructor);if(!t)throw new Error("could not find metadata for provided "+e.constructor.name);return t}static getAttributes(e){const t=[];let r=e instanceof h?Object.getPrototypeOf(e):e.prototype;for(;null!=r;){const e=r[l.ModelKeys.ATTRIBUTE];e&&t.push(...e),r=Object.getPrototypeOf(r)}return t}static equals(e,t,...r){return(0,a.isEqual)(e,t,...r)}static hasErrors(e,...t){return(0,i.validate)(e,...t)}static serialize(e){const t=Reflect.getMetadata(this.key(l.ModelKeys.SERIALIZATION),e.constructor);return t&&t.serializer?o.Serialization.serialize(this,t.serializer,...t.args||[]):o.Serialization.serialize(e)}static hash(e){const t=Reflect.getMetadata(this.key(l.ModelKeys.HASHING),e.constructor);return t&&t.algorithm?s.Hashing.hash(e,t.algorithm,...t.args||[]):s.Hashing.hash(e)}static key(e){return l.ModelKeys.REFLECT+e}}t.Model=h},3368:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ModelErrorDefinition=void 0,t.ModelErrorDefinition=class{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 o=Object.keys(e[r]).reduce(((t,o)=>(t?t+=`\n${e[r][o]}`:t=e[r][o],t)),void 0);return o&&(o=`${r} - ${o}`,t?t+=`\n${o}`:t=o),t}),"")}}},1825:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ModelRegistryManager=void 0,t.bulkModelRegister=function(...e){e.forEach((e=>{const t=e.constructor?e.constructor:e;o.Model.register(t,e.name)}))};const o=r(3),n=r(1318),a=r(9683);t.ModelRegistryManager=class{constructor(e=a.isModel){this.cache={},this.testFunction=e}register(e,t){if("function"!=typeof e)throw new Error("Model registering failed. Missing Class name or constructor");t=t||e.name,this.cache[t]=e}get(e){try{return this.cache[e]}catch(e){return}}build(e={},t){if(!t&&!this.testFunction(e))throw new Error("Provided obj is not a Model object");const r=t||o.Model.getMetadata(e);if(!(r in this.cache))throw new Error((0,n.sf)("Provided class {0} is not a registered Model object",r));return new this.cache[r](e)}}},8539:(e,t)=>{var r,o;Object.defineProperty(t,"__esModule",{value:!0}),t.jsTypes=t.ReservedModels=t.Primitives=void 0,function(e){e.STRING="string",e.NUMBER="number",e.BOOLEAN="boolean",e.BIGINT="bigint"}(r||(t.Primitives=r={})),function(e){e.STRING="string",e.OBJECT="object",e.NUMBER="number",e.BOOLEAN="boolean",e.BIGINT="bigint",e.DATE="date"}(o||(t.ReservedModels=o={})),t.jsTypes=["string","array","number","boolean","symbol","function","object","undefined","null","bigint"]},4939:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.construct=function(e,...t){const r=(...t)=>new e(...t);return r.prototype=e.prototype,r(...t)},t.findLastProtoBeforeObject=function(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 new Error("Could not find proper prototype")},t.bindModelPrototype=function(e){if(e instanceof o.Model)return;function t(e,t){Object.setPrototypeOf(e,t)}const r=Object.getPrototypeOf(e);if(r===Object.prototype)return t(e,o.Model.prototype);for(;r!==Object.prototype;){const e=Object.getPrototypeOf(r);if(e===Object.prototype||Object.getPrototypeOf(e)===Object.prototype)return t(r,o.Model.prototype)}throw new Error("Could not find proper prototype to bind")};const o=r(3)},754:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.model=function(e){return t=>{const r=function(...r){const s=(0,o.construct)(t,...r);(0,o.bindModelPrototype)(s);const c=a.Model.getBuilder();return c&&c(s,r.length?r[0]:void 0),(0,i.metadata)(a.Model.key(n.ModelKeys.MODEL),t.name)(s.constructor),e&&e(s,...r),s};return r.prototype=t.prototype,Object.defineProperty(r,"name",{writable:!1,enumerable:!0,configurable:!1,value:t.prototype.constructor.name}),(0,i.metadata)(a.Model.key(n.ModelKeys.MODEL),t.name)(t),a.Model.register(r,t.name),r}},t.hashedBy=function(e,...t){return(0,i.metadata)(a.Model.key(n.ModelKeys.HASHING),{algorithm:e,args:t})},t.serializedBy=function(e,...t){return(0,i.metadata)(a.Model.key(n.ModelKeys.SERIALIZATION),{serializer:e,args:t})};const o=r(4939),n=r(7675),a=r(3),i=r(32)},5643:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),n(r(8539),t),n(r(4939),t),n(r(754),t),n(r(3),t),n(r(3368),t),n(r(1825),t),n(r(1967),t),n(r(9683),t),n(r(2709),t)},1967:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},9683:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isPropertyModel=function(e,t){if(a(e[t]))return!0;const r=Reflect.getMetadata(o.ModelKeys.TYPE,e,t);return n.Model.get(r.name)?r.name:void 0},t.isModel=a;const o=r(7675),n=r(3);function a(e){try{return e instanceof n.Model||!!n.Model.getMetadata(e)}catch(e){return!1}}},2709:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validate=function(e,...t){const r=[];for(const o in e)Object.prototype.hasOwnProperty.call(e,o)&&-1===t.indexOf(o)&&r.push((0,n.getPropertyDecorators)(l.ValidationKeys.REFLECT,e,o));let d;for(const t of r){const{prop:r,decorators:o}=t;if(!o||!o.length)continue;const n=o[0];let i;o.find((e=>e.key===l.ValidationKeys.TYPE||!!e.props.types?.find((e=>e===n.props.name))))&&o.shift();for(const t of o){const o=c.Validation.get(t.key);if(!o)throw new Error(`Missing validator for ${t.key}`);const n=o.hasErrors(e[r.toString()],...t.key===a.ModelKeys.TYPE?[t.props]:Object.values(t.props));n&&(i=i||{},i[t.key]=n)}i&&(d=d||{},d[t.prop.toString()]=i)}for(const t of Object.keys(e).filter((e=>!d||!d[e]))){let r;const o=(0,n.getPropertyDecorators)(l.ValidationKeys.REFLECT,e,t).decorators,c=(0,n.getPropertyDecorators)(l.ValidationKeys.REFLECT,e,t).decorators.filter((e=>-1!==[a.ModelKeys.TYPE,l.ValidationKeys.TYPE].indexOf(e.key)));if(!c||!c.length)continue;const f=c.pop(),p=f.props.name?[f.props.name]:Array.isArray(f.props.customTypes)?f.props.customTypes:[f.props.customTypes],y=Object.values(s.ReservedModels).map((e=>e.toLowerCase()));for(const n of p){if(-1===y.indexOf(n.toLowerCase())){const a=Array.isArray(e[t])?l.ValidationKeys.LIST:l.ValidationKeys.TYPE,s=o.find((e=>e.key===a))||{};let c=[];if(s&&s.props){const r=Array.isArray(e[t])?s.props.class:s.props.customTypes;r&&(c=Array.isArray(r)?r.map((e=>`${e}`.toLowerCase())):[r.toLowerCase()])}const d=(e,t)=>{if("object"==typeof t||"function"==typeof t)return(0,u.isModel)(t)?t.hasErrors():c.includes(typeof t)?void 0:"Value has no validatable type"};switch(n){case Array.name:case Set.name:o.length&&o.find((e=>e.key===l.ValidationKeys.LIST))&&(r=(n===Array.name?e[t]:e[t].values()).map((e=>d(t,e))).filter((e=>!!e)),r?.length||(r=void 0));break;default:try{e[t]&&(r=d(t,e[t]))}catch(e){console.warn((0,i.sf)("Model should be validatable but its not: "+e))}}}r&&(d=d||{},d[t]=r)}}return d?new o.ModelErrorDefinition(d):void 0};const o=r(3368),n=r(32),a=r(7675),i=r(1318),s=r(8539),c=r(1375),l=r(5021),u=r(9683)},7675:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ModelKeys=void 0,function(e){e.REFLECT="decaf.model.",e.TYPE="design:type",e.PARAMS="design:paramtypes",e.RETURN="design:returntype",e.MODEL="model",e.ANCHOR="__model",e.CONSTRUCTION="constructed-by",e.ATTRIBUTE="__attributes",e.HASHING="hashing",e.SERIALIZATION="serialization"}(r||(t.ModelKeys=r={}))},5243:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.dateFromFormat=a,t.bindDateToString=i,t.isValidDate=s,t.twoDigitPad=c,t.formatDate=l,t.parseDate=function(e,t){let r;if(t){if(t instanceof Date)try{r=a(l(t,e),e)}catch(r){throw new Error((0,n.sf)("Could not convert date {0} to format: {1}",t.toString(),e))}else if("string"==typeof t)r=a(t,e);else if("number"==typeof t)r=a(l(new Date(t),e),e);else{if(!s(t))throw new Error(`Invalid value provided ${t}`);try{r=a(l(new Date(t),e),e)}catch(r){throw new Error((0,n.sf)("Could not convert date {0} to format: {1}",t,e))}}return i(r,e)}},r(8630);const o=r(5021),n=r(1318);function a(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 n=new RegExp(r,"g").exec(e);if(!n||!n.groups)return new Date(e);const a=function(e){if(!e)return 0;const t=parseInt(e);return isNaN(t)?0:t},i=a(n.groups.year),s=a(n.groups.day),c=n.groups.ampm;let l=a(n.groups.hour);c&&(l="PM"===c?l+12:l);const u=a(n.groups.minutes),d=a(n.groups.seconds),f=a(n.groups.milis),p=n.groups.monthname,y=n.groups.monthnamesmall;let h=n.groups.month;if(p)h=o.MONTH_NAMES.indexOf(p);else if(y){const t=o.MONTH_NAMES.find((e=>e.toLowerCase().startsWith(y.toLowerCase())));if(!t)return new Date(e);h=o.MONTH_NAMES.indexOf(t)}else h=a(`${h}`);return new Date(i,h-1,s,l,u,d,f)}function i(e,t){if(!e)return;const r=()=>l(e,t);return Object.defineProperty(e,"toISOString",{enumerable:!1,configurable:!1,value:r}),Object.defineProperty(e,"toString",{enumerable:!1,configurable:!1,value:r}),e}function s(e){return e&&"[object Date]"===Object.prototype.toString.call(e)&&!isNaN(e)}function c(e){return e<10?"0"+e:e.toString()}function l(e,t="yyyy/MM/dd"){const r=e.getDate(),n=e.getMonth(),a=e.getFullYear(),i=e.getHours(),s=e.getMinutes(),l=e.getSeconds(),u=e.getMilliseconds(),d=i%12,f=c(d),p=c(i),y=c(s),h=c(l),g=i<12?"AM":"PM",E=o.DAYS_OF_WEEK_NAMES[e.getDay()],O=E.substr(0,3),v=c(r),_=n+1,m=c(_),b=o.MONTH_NAMES[n],M=b.substr(0,3),R=a+"",w=R.substr(2,2);return(t=t.replace("hh",f).replace("h",d.toString()).replace("HH",p).replace("H",i.toString()).replace("mm",y).replace("m",s.toString()).replace("ss",h).replace("s",l.toString()).replace("S",u.toString()).replace("dd",v).replace("d",r.toString()).replace("EEEE",E).replace("EEE",O).replace("yyyy",R).replace("yy",w).replace("aaa",g)).indexOf("MMM")>-1?t.replace("MMMM",b).replace("MMM",M):t.replace("MM",m).replace("M",_.toString())}},3042:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.prop=a,t.propMetadata=function(e,t){return(0,o.apply)(a(),(0,o.metadata)(e,t))};const o=r(32),n=r(7675);function a(){return(e,t)=>{let r;r=Object.prototype.hasOwnProperty.call(e,n.ModelKeys.ATTRIBUTE)?e[n.ModelKeys.ATTRIBUTE]:e[n.ModelKeys.ATTRIBUTE]=[],r.includes(t)||r.push(t)}}},2252:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Hashing=t.DefaultHashingMethod=void 0,t.hashCode=n,t.hashSerialization=function(e){return n(o.Serialization.serialize(e))},t.hashObj=a;const o=r(4744);function n(e){e=String(e);let t=0;for(let r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r),t|=0;return t.toString()}function a(e){const t=function(e,t){const r=o(t);return"string"==typeof r?o((e||"")+o(t)):0|(e=((e=e||0)<<5)-e+r)},r=n,o=function(e){return 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)},a=Object.values(e).reduce(t,0);return("number"==typeof a?Math.abs(a):a).toString()}t.DefaultHashingMethod="default";class i{static{this.current=t.DefaultHashingMethod}static{this.cache={default:a}}constructor(){}static get(e){if(e in this.cache)return this.cache[e];throw new Error(`No hashing method registered under ${e}`)}static register(e,t,r=!1){if(e in this.cache)throw new 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)}}t.Hashing=i},4072:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),n(r(7675),t),n(r(5243),t),n(r(3042),t),n(r(2252),t),n(r(2417),t),n(r(4744),t),n(r(1318),t)},2417:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},4744:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Serialization=t.DefaultSerializationMethod=t.JSONSerializer=void 0;const o=r(3),n=r(7675);class a{preSerialize(e){const t=Object.assign({},e),r=o.Model.getMetadata(e);return t[n.ModelKeys.ANCHOR]=r||e.constructor.name,t}deserialize(e){const t=JSON.parse(e),r=t[n.ModelKeys.ANCHOR];if(!r)throw new Error("Could not find class reference in serialized model");return o.Model.build(t,r)}serialize(e){return JSON.stringify(this.preSerialize(e))}}t.JSONSerializer=a,t.DefaultSerializationMethod="json";class i{static{this.current=t.DefaultSerializationMethod}static{this.cache={json:new a}}constructor(){}static get(e){if(e in this.cache)return this.cache[e];throw new Error(`No serialization method registered under ${e}`)}static register(e,t,r=!1){if(e in this.cache)throw new 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)}}t.Serialization=i},1318:(e,t)=>{function r(e,...t){return e.replace(/{(\d+)}/g,(function(e,r){return void 0!==t[r]?t[r].toString():"undefined"}))}Object.defineProperty(t,"__esModule",{value:!0}),t.sf=void 0,t.stringFormat=r,t.sf=r},1375:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Validation=void 0;const o=r(3201),n=r(5021);class a{static{this.actingValidatorRegistry=void 0}constructor(){}static setRegistry(e,t){t&&a.actingValidatorRegistry&&a.actingValidatorRegistry.getKeys().forEach((r=>{const o=e.get(r);o&&e.register(t(o))})),a.actingValidatorRegistry=e}static getRegistry(){return a.actingValidatorRegistry||(a.actingValidatorRegistry=new o.ValidatorRegistry),a.actingValidatorRegistry}static get(e){return a.getRegistry().get(e)}static register(...e){return a.getRegistry().register(...e)}static key(e){return n.ValidationKeys.REFLECT+e}}t.Validation=a},3576:function(e,t,r){var o=this&&this.__decorate||function(e,t,r,o){var n,a=arguments.length,i=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(i=(a<3?n(i):a>3?n(t,r,i):n(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},n=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.DateValidator=void 0;const a=r(7036),i=r(5021),s=r(8024);let c=class extends a.Validator{constructor(e=i.DEFAULT_ERROR_MESSAGES.DATE){super(e,Number.name,Date.name,String.name)}hasErrors(e,t,r){if(void 0!==e)return"string"==typeof e&&(e=new Date(e)),isNaN(e.getDate())?this.getMessage(r||this.message):void 0}};t.DateValidator=c,t.DateValidator=c=o([(0,s.validator)(i.ValidationKeys.DATE),n("design:paramtypes",[String])],c)},5224:function(e,t,r){var o=this&&this.__decorate||function(e,t,r,o){var n,a=arguments.length,i=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(i=(a<3?n(i):a>3?n(t,r,i):n(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},n=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.EmailValidator=void 0;const a=r(5021),i=r(6174),s=r(8024);let c=class extends i.PatternValidator{constructor(e=a.DEFAULT_ERROR_MESSAGES.EMAIL){super(e)}hasErrors(e,t,r){return super.hasErrors(e,t||a.DEFAULT_PATTERNS.EMAIL,r)}};t.EmailValidator=c,t.EmailValidator=c=o([(0,s.validator)(a.ValidationKeys.EMAIL),n("design:paramtypes",[String])],c)},2888:function(e,t,r){var o=this&&this.__decorate||function(e,t,r,o){var n,a=arguments.length,i=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(i=(a<3?n(i):a>3?n(t,r,i):n(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},n=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.ListValidator=void 0;const a=r(7036),i=r(5021),s=r(8024);let c=class extends a.Validator{constructor(e=i.DEFAULT_ERROR_MESSAGES.LIST){super(e,Array.name,Set.name)}hasErrors(e,t,r){if(!e||(Array.isArray(e)?!e.length:!e.size))return;t=Array.isArray(t)?t:[t];let o,n=!0;for(let r=0;r<(Array.isArray(e)?e.length:e.size);r++)switch(o=e[r],typeof o){case"object":case"function":n=t.includes(o.constructor?.name);break;default:n=t.some((e=>typeof o===e.toLowerCase()))}return n?void 0:this.getMessage(r||this.message,t)}};t.ListValidator=c,t.ListValidator=c=o([(0,s.validator)(i.ValidationKeys.LIST),n("design:paramtypes",[String])],c)},2382:function(e,t,r){var o=this&&this.__decorate||function(e,t,r,o){var n,a=arguments.length,i=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(i=(a<3?n(i):a>3?n(t,r,i):n(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},n=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.MaxLengthValidator=void 0;const a=r(7036),i=r(5021),s=r(8024);let c=class extends a.Validator{constructor(e=i.DEFAULT_ERROR_MESSAGES.MAX_LENGTH){super(e,String.name,Array.name)}hasErrors(e,t,r){if(void 0!==e)return e.length>t?this.getMessage(r||this.message,t):void 0}};t.MaxLengthValidator=c,t.MaxLengthValidator=c=o([(0,s.validator)(i.ValidationKeys.MAX_LENGTH),n("design:paramtypes",[String])],c)},9378:function(e,t,r){var o=this&&this.__decorate||function(e,t,r,o){var n,a=arguments.length,i=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(i=(a<3?n(i):a>3?n(t,r,i):n(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},n=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.MaxValidator=void 0;const a=r(7036),i=r(5021),s=r(8024);let c=class extends a.Validator{constructor(e=i.DEFAULT_ERROR_MESSAGES.MAX){super(e,"number","Date","string")}hasErrors(e,t,r){if(void 0!==e){if(e instanceof Date&&!(t instanceof Date)&&(t=new Date(t),isNaN(t.getDate())))throw new Error("Invalid Max param defined");return e>t?this.getMessage(r||this.message,t):void 0}}};t.MaxValidator=c,t.MaxValidator=c=o([(0,s.validator)(i.ValidationKeys.MAX),n("design:paramtypes",[String])],c)},2396:function(e,t,r){var o=this&&this.__decorate||function(e,t,r,o){var n,a=arguments.length,i=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(i=(a<3?n(i):a>3?n(t,r,i):n(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},n=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.MinLengthValidator=void 0;const a=r(7036),i=r(5021),s=r(8024);let c=class extends a.Validator{constructor(e=i.DEFAULT_ERROR_MESSAGES.MIN_LENGTH){super(e,String.name,Array.name)}hasErrors(e,t,r){if(void 0!==e)return e.length<t?this.getMessage(r||this.message,t):void 0}};t.MinLengthValidator=c,t.MinLengthValidator=c=o([(0,s.validator)(i.ValidationKeys.MIN_LENGTH),n("design:paramtypes",[String])],c)},9320:function(e,t,r){var o=this&&this.__decorate||function(e,t,r,o){var n,a=arguments.length,i=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(i=(a<3?n(i):a>3?n(t,r,i):n(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},n=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.MinValidator=void 0;const a=r(7036),i=r(5021),s=r(8024);let c=class extends a.Validator{constructor(e=i.DEFAULT_ERROR_MESSAGES.MIN){super(e,"number","Date","string")}hasErrors(e,t,r){if(void 0!==e){if(e instanceof Date&&!(t instanceof Date)&&(t=new Date(t),isNaN(t.getDate())))throw new Error("Invalid Min param defined");return e<t?this.getMessage(r||this.message,t):void 0}}};t.MinValidator=c,t.MinValidator=c=o([(0,s.validator)(i.ValidationKeys.MIN),n("design:paramtypes",[String])],c)},3317:function(e,t,r){var o=this&&this.__decorate||function(e,t,r,o){var n,a=arguments.length,i=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(i=(a<3?n(i):a>3?n(t,r,i):n(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},n=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.PasswordValidator=void 0;const a=r(6174),i=r(5021),s=r(8024);let c=class extends a.PatternValidator{constructor(e=i.DEFAULT_ERROR_MESSAGES.PASSWORD){super(e)}hasErrors(e,t,r){return super.hasErrors(e,t||i.DEFAULT_ERROR_MESSAGES.PASSWORD,r||this.message)}};t.PasswordValidator=c,t.PasswordValidator=c=o([(0,s.validator)(i.ValidationKeys.PASSWORD),n("design:paramtypes",[Object])],c)},6174:function(e,t,r){var o=this&&this.__decorate||function(e,t,r,o){var n,a=arguments.length,i=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(i=(a<3?n(i):a>3?n(t,r,i):n(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},n=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.PatternValidator=t.regexpParser=void 0;const a=r(7036),i=r(5021),s=r(8024);t.regexpParser=new RegExp("^/(.+)/([gimus]*)$");let c=class extends a.Validator{constructor(e=i.DEFAULT_ERROR_MESSAGES.PATTERN){super(e,"string")}getPattern(e){if(!t.regexpParser.test(e))return new RegExp(e);const r=e.match(t.regexpParser);return new RegExp(r[1],r[2])}hasErrors(e,t,r){if(e){if(!t)throw new Error("Missing Pattern");return(t="string"==typeof t?this.getPattern(t):t).lastIndex=0,t.test(e)?void 0:this.getMessage(r||this.message)}}};t.PatternValidator=c,t.PatternValidator=c=o([(0,s.validator)(i.ValidationKeys.PATTERN),n("design:paramtypes",[String])],c)},8089:function(e,t,r){var o=this&&this.__decorate||function(e,t,r,o){var n,a=arguments.length,i=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(i=(a<3?n(i):a>3?n(t,r,i):n(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},n=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.RequiredValidator=void 0;const a=r(7036),i=r(5021),s=r(8024);let c=class extends a.Validator{constructor(e=i.DEFAULT_ERROR_MESSAGES.REQUIRED){super(e)}hasErrors(e,t){switch(typeof e){case"boolean":case"number":return void 0===e?this.getMessage(t||this.message):void 0;default:return e?void 0:this.getMessage(t||this.message)}}};t.RequiredValidator=c,t.RequiredValidator=c=o([(0,s.validator)(i.ValidationKeys.REQUIRED),n("design:paramtypes",[String])],c)},6942:function(e,t,r){var o=this&&this.__decorate||function(e,t,r,o){var n,a=arguments.length,i=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(i=(a<3?n(i):a>3?n(t,r,i):n(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},n=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.StepValidator=void 0;const a=r(7036),i=r(5021),s=r(8024);let c=class extends a.Validator{constructor(e=i.DEFAULT_ERROR_MESSAGES.STEP){super(e,"number","string")}hasErrors(e,t,r){if(void 0!==e)return Number(e)%Number(t)!=0?this.getMessage(r||this.message,t):void 0}};t.StepValidator=c,t.StepValidator=c=o([(0,s.validator)(i.ValidationKeys.STEP),n("design:paramtypes",[String])],c)},4972:function(e,t,r){var o=this&&this.__decorate||function(e,t,r,o){var n,a=arguments.length,i=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(i=(a<3?n(i):a>3?n(t,r,i):n(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},n=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.TypeValidator=void 0;const a=r(7036),i=r(5021),s=r(8024),c=r(1375),l=r(32),u=r(7675);let d=class extends a.Validator{constructor(e=i.DEFAULT_ERROR_MESSAGES.TYPE){super(e)}hasErrors(e,t,r){if(void 0!==e)return(0,l.evaluateDesignTypes)(e,t)?void 0:this.getMessage(r||this.message,"string"==typeof t?t:Array.isArray(t)?t.join(", "):t.name,typeof e)}};t.TypeValidator=d,t.TypeValidator=d=o([(0,s.validator)(i.ValidationKeys.TYPE),n("design:paramtypes",[String])],d),c.Validation.register({validator:d,validationKey:u.ModelKeys.TYPE,save:!1})},8689:function(e,t,r){var o=this&&this.__decorate||function(e,t,r,o){var n,a=arguments.length,i=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(i=(a<3?n(i):a>3?n(t,r,i):n(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},n=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.URLValidator=void 0;const a=r(5021),i=r(6174),s=r(8024);let c=class extends i.PatternValidator{constructor(e=a.DEFAULT_ERROR_MESSAGES.URL){super(e)}hasErrors(e,t,r){return super.hasErrors(e,t||a.DEFAULT_PATTERNS.URL,r)}};t.URLValidator=c,t.URLValidator=c=o([(0,s.validator)(a.ValidationKeys.URL),n("design:paramtypes",[String])],c)},7036:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Validator=void 0;const o=r(5021),n=r(1318),a=r(32);t.Validator=class{constructor(e=o.DEFAULT_ERROR_MESSAGES.DEFAULT,...t){this.message=e,t.length&&(this.acceptedTypes=t),this.acceptedTypes&&(this.hasErrors=this.checkTypeAndHasErrors(this.hasErrors.bind(this)))}getMessage(e,...t){return(0,n.sf)(e,...t)}checkTypeAndHasErrors(e){return function(t,...r){return void 0!==t&&this.acceptedTypes?(0,a.checkTypes)(t,this.acceptedTypes)?e(t,...r):this.getMessage(o.DEFAULT_ERROR_MESSAGES.TYPE,this.acceptedTypes.join(", "),typeof t):e(t,...r)}.bind(this)}}},3201:(e,t)=>{function r(e){return e.constructor&&e.hasErrors}Object.defineProperty(t,"__esModule",{value:!0}),t.ValidatorRegistry=void 0,t.isValidator=r,t.ValidatorRegistry=class{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(r(t))return t;const o=new(t.default||t);return this.cache[e]=o,o}register(...e){e.forEach((e=>{if(r(e)){if(e.validationKey in this.cache)return;this.cache[e.validationKey]=e}else{const{validationKey:t,validator:r,save:o}=e;if(t in this.cache)return;if(this.cache[t]=r,!o)return;const n={};n[t.toUpperCase()]=t,this.customKeyCache=Object.assign({},this.customKeyCache,n)}}))}}},5021:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_PATTERNS=t.DEFAULT_ERROR_MESSAGES=t.DAYS_OF_WEEK_NAMES=t.MONTH_NAMES=t.ValidationKeys=void 0;const o=r(7675);t.ValidationKeys={REFLECT:`${o.ModelKeys.REFLECT}validation.`,VALIDATOR:"validator",REQUIRED:"required",MIN:"min",MAX:"max",STEP:"step",MIN_LENGTH:"minlength",MAX_LENGTH:"maxlength",PATTERN:"pattern",EMAIL:"email",URL:"url",DATE:"date",TYPE:"type",PASSWORD:"password",LIST:"list"},t.MONTH_NAMES=["January","February","March","April","May","June","July","August","September","October","November","December"],t.DAYS_OF_WEEK_NAMES=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],t.DEFAULT_ERROR_MESSAGES={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}"},t.DEFAULT_PATTERNS={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}}},8024:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validator=function(...e){return(0,a.apply)((t=>(e.forEach((e=>{o.Validation.register({validator:t,validationKey:e,save:!0})})),t)),(0,a.metadata)(o.Validation.key(n.ValidationKeys.VALIDATOR),e))};const o=r(1375),n=r(5021),a=r(32)},70:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.Validators=void 0;const a=r(3576),i=r(4972),s=r(3317),c=r(6942),l=r(8689),u=r(6174),d=r(9320),f=r(2396),p=r(9378),y=r(2382),h=r(8089),g=r(5224),E=r(2888);n(r(5021),t),n(r(3576),t),n(r(8024),t),n(r(5224),t),n(r(2888),t),n(r(2382),t),n(r(9378),t),n(r(2396),t),n(r(9320),t),n(r(3317),t),n(r(6174),t),n(r(8089),t),n(r(6942),t),n(r(7045),t),n(r(4972),t),n(r(8689),t),n(r(7036),t),n(r(3201),t),t.Validators={DateValidator:a.DateValidator,EmailValidator:g.EmailValidator,ListValidator:E.ListValidator,MaxLengthValidator:y.MaxLengthValidator,MaxValidator:p.MaxValidator,MinLengthValidator:f.MinLengthValidator,MinValidator:d.MinValidator,PasswordValidator:s.PasswordValidator,PatternValidator:u.PatternValidator,RequiredValidator:h.RequiredValidator,StepValidator:c.StepValidator,TypeValidator:i.TypeValidator,URLValidator:l.URLValidator}},7045:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},9944:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.required=function(e=o.DEFAULT_ERROR_MESSAGES.REQUIRED){return(0,i.propMetadata)(s.Validation.key(o.ValidationKeys.REQUIRED),{message:e})},t.min=function(e,t=o.DEFAULT_ERROR_MESSAGES.MIN){return(0,i.propMetadata)(s.Validation.key(o.ValidationKeys.MIN),{value:e,message:t,types:[Number.name,Date.name]})},t.max=function(e,t=o.DEFAULT_ERROR_MESSAGES.MAX){return(0,i.propMetadata)(s.Validation.key(o.ValidationKeys.MAX),{value:e,message:t,types:[Number.name,Date.name]})},t.step=function(e,t=o.DEFAULT_ERROR_MESSAGES.STEP){return(0,i.propMetadata)(s.Validation.key(o.ValidationKeys.STEP),{value:e,message:t,types:[Number.name]})},t.minlength=function(e,t=o.DEFAULT_ERROR_MESSAGES.MIN_LENGTH){return(0,i.propMetadata)(s.Validation.key(o.ValidationKeys.MIN_LENGTH),{value:e,message:t,types:[String.name,Array.name,Set.name]})},t.maxlength=function(e,t=o.DEFAULT_ERROR_MESSAGES.MAX_LENGTH){return(0,i.propMetadata)(s.Validation.key(o.ValidationKeys.MAX_LENGTH),{value:e,message:t,types:[String.name,Array.name,Set.name]})},t.pattern=function(e,t=o.DEFAULT_ERROR_MESSAGES.PATTERN){return(0,i.propMetadata)(s.Validation.key(o.ValidationKeys.PATTERN),{value:"string"==typeof e?e:e.toString(),message:t,types:[String.name]})},t.email=function(e=o.DEFAULT_ERROR_MESSAGES.EMAIL){return(0,i.propMetadata)(s.Validation.key(o.ValidationKeys.EMAIL),{pattern:o.DEFAULT_PATTERNS.EMAIL,message:e,types:[String.name]})},t.url=function(e=o.DEFAULT_ERROR_MESSAGES.URL){return(0,i.propMetadata)(s.Validation.key(o.ValidationKeys.URL),{pattern:o.DEFAULT_PATTERNS.URL,message:e,types:[String.name]})},t.type=function(e,t=o.DEFAULT_ERROR_MESSAGES.TYPE){return(0,i.propMetadata)(s.Validation.key(o.ValidationKeys.TYPE),{customTypes:e,message:t})},t.date=function(e="dd/MM/yyyy",t=o.DEFAULT_ERROR_MESSAGES.DATE){return(r,c)=>{(0,i.propMetadata)(s.Validation.key(o.ValidationKeys.DATE),{format:e,message:t,types:[Date.name]})(r,c);const l=new WeakMap;Object.defineProperty(r,c,{configurable:!1,set(t){const r=Object.getOwnPropertyDescriptor(this,c);r&&!r.configurable||Object.defineProperty(this,c,{enumerable:!0,configurable:!1,get:()=>l.get(this),set:t=>{let r;try{r=(0,a.parseDate)(e,t),l.set(this,r)}catch(e){console.error((0,n.sf)("Failed to parse date: {0}",e.message||e))}}}),this[c]=t},get(){console.log("here")}})}},t.password=function(e=o.DEFAULT_PATTERNS.PASSWORD.CHAR8_ONE_OF_EACH,t=o.DEFAULT_ERROR_MESSAGES.PASSWORD){return(0,i.propMetadata)(s.Validation.key(o.ValidationKeys.PASSWORD),{pattern:e,message:t,types:[String.name]})},t.list=c,t.set=function(e,t=o.DEFAULT_ERROR_MESSAGES.LIST){return c(e,"Set",t)},r(8630);const o=r(5021),n=r(1318),a=r(5243),i=r(3042),s=r(1375);function c(e,t="Array",r=o.DEFAULT_ERROR_MESSAGES.LIST){return(0,i.propMetadata)(s.Validation.key(o.ValidationKeys.LIST),{class:Array.isArray(e)?e.map((e=>e.name)):[e.name],type:t,message:r})}},5030:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),n(r(70),t),n(r(9944),t),n(r(4213),t),n(r(1375),t)},4213:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},1267:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ReflectionKeys=void 0,function(e){e.TYPE="design:type"}(r||(t.ReflectionKeys=r={}))},5530:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.metadata=function(e,t){return(r,o,n)=>{n?Reflect.defineMetadata(e,t,n.value):o?Reflect.defineMetadata(e,t,r,o):Reflect.defineMetadata(e,t,r)}},t.apply=function(...e){return(t,r,o)=>{for(const n of e)t instanceof Function&&!o?n(t):n(t,r,o)}},r(8630)},3032:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isEqual=function e(t,r,...o){if(t===r)return!0;if(t instanceof Date&&r instanceof Date)return t.getTime()===r.getTime();if(!t||!r||"object"!=typeof t&&"object"!=typeof r)return t===r;if(null==t||null==r)return!1;if(typeof t!=typeof r)return!1;if(t.prototype!==r.prototype)return!1;const n=Object.keys(t).filter((e=>-1===o.indexOf(e)));return n.length===Object.keys(r).filter((e=>-1===o.indexOf(e))).length&&n.every((n=>-1!==o.indexOf(n)||e(t[n],r[n],...o)))}},32:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.VERSION=void 0,n(r(1267),t),n(r(5530),t),n(r(3032),t),n(r(2199),t),n(r(3115),t),t.VERSION="0.3.0"},2199:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},3115:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getPropertyDecorators=a,t.getTypeFromDecorator=function(e,t){const r=a(o.ReflectionKeys.TYPE,e,t,!1);if(!r||!r.decorators)return;const n=r.decorators.shift(),i=n.props?n.props.name:void 0;return"Function"!==i?i:void 0},t.getAllPropertyDecorators=function(e,...t){if(t&&t.length)return Object.getOwnPropertyNames(e).reduce(((r,o)=>(t.forEach(((t,n)=>{const i=a(t,e,o,0!==n);r||(r={}),function(e,t,r){r&&r.length&&(e[t]||(e[t]=[]),e[t].push(...r))}(r,o,i.decorators)})),r)),void 0)},t.getAllProperties=function(e,t=!0,r="Object"){const o=[];let n=e;const a=function(){if(!t)return;const e=Object.getPrototypeOf(n);return e&&e.constructor.name!==r?(n=e,n):void 0};do{Object.getOwnPropertyNames(n).forEach((function(e){-1===o.indexOf(e)&&o.push(e)}))}while(a());return o},t.getClassDecorators=function(e,t){return Reflect.getOwnMetadataKeys(t.constructor).filter((t=>t.toString().startsWith(e))).reduce(((r,o)=>{const n={key:o.substring(e.length),props:Reflect.getMetadata(o,t.constructor)};return r.concat(n)}),[])},t.checkType=i,t.checkTypes=s,t.evaluateDesignTypes=function(e,t){switch(typeof t){case"string":return i(e,t);case"object":return!Array.isArray(t)||s(e,t);case"function":return!t.name||"Object"===t.name||i(e,t.name);default:return!0}},r(8630);const o=r(1267),n=r(3032);function a(e,t,r,i=!1,s=!0,c){const l=function(e,t,r,n=!1,a){const i=Reflect.getMetadataKeys(t,r).filter((t=>n?t.toString().startsWith(e):t===o.ReflectionKeys.TYPE||t.toString().startsWith(e))).reduce(((n,a)=>{const i={key:a!==o.ReflectionKeys.TYPE?a.substring(e.length):a,props:Reflect.getMetadata(a,t,r)};return n.concat(i)}),a||[]);return{prop:r.toString(),decorators:i}}(e,t,r,i,c);return s&&Object.getPrototypeOf(t)!==Object.prototype?a(e,Object.getPrototypeOf(t.constructor),r,!0,s,l.decorators):{prop:l.prop,decorators:function(e){const r={};return e.filter((e=>e.key in r?((0,n.isEqual)(e.props,r[e.key])||console.log(`Found a similar decorator for the ${e.key} propertyof a ${t.constructor.name} model but with different attributes.The original one will be kept`),!1):(r[e.key.toString()]=e.props,!0)))}(l.decorators)}}function i(e,t){return typeof e===t||e.constructor&&e.constructor.name.toLowerCase()===t.toLowerCase()}function s(e,t){return!t.every((t=>!i(e,t)))}},8630:(e,t,r)=>{var o;!function(e){!function(t){var o="object"==typeof globalThis?globalThis:"object"==typeof r.g?r.g:"object"==typeof self?self:"object"==typeof this?this:function(){try{return Function("return this;")()}catch(e){}}()||function(){try{return(0,eval)("(function() { return this; })()")}catch(e){}}(),n=a(e);function a(e,t){return function(r,o){Object.defineProperty(e,r,{configurable:!0,writable:!0,value:o}),t&&t(r,o)}}void 0!==o.Reflect&&(n=a(o.Reflect,n)),function(e,t){var r=Object.prototype.hasOwnProperty,o="function"==typeof Symbol,n=o&&void 0!==Symbol.toPrimitive?Symbol.toPrimitive:"@@toPrimitive",a=o&&void 0!==Symbol.iterator?Symbol.iterator:"@@iterator",i="function"==typeof Object.create,s={__proto__:[]}instanceof Array,c=!i&&!s,l={create:i?function(){return B(Object.create(null))}:s?function(){return B({__proto__:null})}:function(){return B({})},has:c?function(e,t){return r.call(e,t)}:function(e,t){return t in e},get:c?function(e,t){return r.call(e,t)?e[t]:void 0}:function(e,t){return e[t]}},u=Object.getPrototypeOf(Function),d="function"==typeof Map&&"function"==typeof Map.prototype.entries?Map:function(){var e={},t=[],r=function(){function e(e,t,r){this._index=0,this._keys=e,this._values=t,this._selector=r}return e.prototype["@@iterator"]=function(){return this},e.prototype[a]=function(){return this},e.prototype.next=function(){var e=this._index;if(e>=0&&e<this._keys.length){var r=this._selector(this._keys[e],this._values[e]);return e+1>=this._keys.length?(this._index=-1,this._keys=t,this._values=t):this._index++,{value:r,done:!1}}return{value:void 0,done:!0}},e.prototype.throw=function(e){throw this._index>=0&&(this._index=-1,this._keys=t,this._values=t),e},e.prototype.return=function(e){return this._index>=0&&(this._index=-1,this._keys=t,this._values=t),{value:e,done:!0}},e}();return function(){function t(){this._keys=[],this._values=[],this._cacheKey=e,this._cacheIndex=-2}return Object.defineProperty(t.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),t.prototype.has=function(e){return this._find(e,!1)>=0},t.prototype.get=function(e){var t=this._find(e,!1);return t>=0?this._values[t]:void 0},t.prototype.set=function(e,t){var r=this._find(e,!0);return this._values[r]=t,this},t.prototype.delete=function(t){var r=this._find(t,!1);if(r>=0){for(var o=this._keys.length,n=r+1;n<o;n++)this._keys[n-1]=this._keys[n],this._values[n-1]=this._values[n];return this._keys.length--,this._values.length--,K(t,this._cacheKey)&&(this._cacheKey=e,this._cacheIndex=-2),!0}return!1},t.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=e,this._cacheIndex=-2},t.prototype.keys=function(){return new r(this._keys,this._values,o)},t.prototype.values=function(){return new r(this._keys,this._values,n)},t.prototype.entries=function(){return new r(this._keys,this._values,i)},t.prototype["@@iterator"]=function(){return this.entries()},t.prototype[a]=function(){return this.entries()},t.prototype._find=function(e,t){if(!K(this._cacheKey,e)){this._cacheIndex=-1;for(var r=0;r<this._keys.length;r++)if(K(this._keys[r],e)){this._cacheIndex=r;break}}return this._cacheIndex<0&&t&&(this._cacheIndex=this._keys.length,this._keys.push(e),this._values.push(void 0)),this._cacheIndex},t}();function o(e,t){return e}function n(e,t){return t}function i(e,t){return[e,t]}}(),f="function"==typeof Set&&"function"==typeof Set.prototype.entries?Set:function(){function e(){this._map=new d}return Object.defineProperty(e.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),e.prototype.has=function(e){return this._map.has(e)},e.prototype.add=function(e){return this._map.set(e,e),this},e.prototype.delete=function(e){return this._map.delete(e)},e.prototype.clear=function(){this._map.clear()},e.prototype.keys=function(){return this._map.keys()},e.prototype.values=function(){return this._map.keys()},e.prototype.entries=function(){return this._map.entries()},e.prototype["@@iterator"]=function(){return this.keys()},e.prototype[a]=function(){return this.keys()},e}(),p="function"==typeof WeakMap?WeakMap:function(){var e=16,t=l.create(),o=n();return function(){function e(){this._key=n()}return e.prototype.has=function(e){var t=a(e,!1);return void 0!==t&&l.has(t,this._key)},e.prototype.get=function(e){var t=a(e,!1);return void 0!==t?l.get(t,this._key):void 0},e.prototype.set=function(e,t){return a(e,!0)[this._key]=t,this},e.prototype.delete=function(e){var t=a(e,!1);return void 0!==t&&delete t[this._key]},e.prototype.clear=function(){this._key=n()},e}();function n(){var e;do{e="@@WeakMap@@"+s()}while(l.has(t,e));return t[e]=!0,e}function a(e,t){if(!r.call(e,o)){if(!t)return;Object.defineProperty(e,o,{value:l.create()})}return e[o]}function i(e,t){for(var r=0;r<t;++r)e[r]=255*Math.random()|0;return e}function s(){var t,r=(t=e,"function"==typeof Uint8Array?"undefined"!=typeof crypto?crypto.getRandomValues(new Uint8Array(t)):"undefined"!=typeof msCrypto?msCrypto.getRandomValues(new Uint8Array(t)):i(new Uint8Array(t),t):i(new Array(t),t));r[6]=79&r[6]|64,r[8]=191&r[8]|128;for(var o="",n=0;n<e;++n){var a=r[n];4!==n&&6!==n&&8!==n||(o+="-"),a<16&&(o+="0"),o+=a.toString(16).toLowerCase()}return o}}(),y=o?Symbol.for("@reflect-metadata:registry"):void 0,h=function(){var e;return!w(y)&&P(t.Reflect)&&Object.isExtensible(t.Reflect)&&(e=t.Reflect[y]),w(e)&&(e=function(){var e,r,o,n;w(y)||void 0===t.Reflect||y in t.Reflect||"function"!=typeof t.Reflect.defineMetadata||(e=function(e){var t=e.defineMetadata,r=e.hasOwnMetadata,o=e.getOwnMetadata,n=e.getOwnMetadataKeys,a=e.deleteMetadata,i=new p;return{isProviderFor:function(e,t){var r=i.get(e);return w(r)?!!n(e,t).length&&(w(r)&&(r=new f,i.set(e,r)),r.add(t),!0):r.has(t)},OrdinaryDefineOwnMetadata:t,OrdinaryHasOwnMetadata:r,OrdinaryGetOwnMetadata:o,OrdinaryOwnMetadataKeys:n,OrdinaryDeleteMetadata:a}}(t.Reflect));var a=new p,i={registerProvider:s,getProvider:l,setProvider:h};return i;function s(t){if(!Object.isExtensible(i))throw new Error("Cannot add provider to a frozen registry.");switch(!0){case e===t:break;case w(r):r=t;break;case r===t:break;case w(o):o=t;break;case o===t:break;default:void 0===n&&(n=new f),n.add(t)}}function c(t,a){if(!w(r)){if(r.isProviderFor(t,a))return r;if(!w(o)){if(o.isProviderFor(t,a))return r;if(!w(n))for(var i=N(n);;){var s=k(i);if(!s)return;var c=x(s);if(c.isProviderFor(t,a))return U(i),c}}}if(!w(e)&&e.isProviderFor(t,a))return e}function l(e,t){var r,o=a.get(e);return w(o)||(r=o.get(t)),w(r)?(w(r=c(e,t))||(w(o)&&(o=new d,a.set(e,o)),o.set(t,r)),r):r}function u(e){if(w(e))throw new TypeError;return r===e||o===e||!w(n)&&n.has(e)}function h(e,t,r){if(!u(r))throw new Error("Metadata provider not registered.");var o=l(e,t);if(o!==r){if(!w(o))return!1;var n=a.get(e);w(n)&&(n=new d,a.set(e,n)),n.set(t,r)}return!0}}()),!w(y)&&P(t.Reflect)&&Object.isExtensible(t.Reflect)&&Object.defineProperty(t.Reflect,y,{enumerable:!1,configurable:!1,writable:!1,value:e}),e}(),g=function(e){var t=new p,r={isProviderFor:function(e,r){var o=t.get(e);return!w(o)&&o.has(r)},OrdinaryDefineOwnMetadata:function(e,t,r,n){o(r,n,!0).set(e,t)},OrdinaryHasOwnMetadata:function(e,t,r){var n=o(t,r,!1);return!w(n)&&S(n.has(e))},OrdinaryGetOwnMetadata:function(e,t,r){var n=o(t,r,!1);if(!w(n))return n.get(e)},OrdinaryOwnMetadataKeys:function(e,t){var r=[],n=o(e,t,!1);if(w(n))return r;for(var a=N(n.keys()),i=0;;){var s=k(a);if(!s)return r.length=i,r;var c=x(s);try{r[i]=c}catch(e){try{U(a)}finally{throw e}}i++}},OrdinaryDeleteMetadata:function(e,r,n){var a=o(r,n,!1);if(w(a))return!1;if(!a.delete(e))return!1;if(0===a.size){var i=t.get(r);w(i)||(i.delete(n),0===i.size&&t.delete(i))}return!0}};return h.registerProvider(r),r;function o(o,n,a){var i=t.get(o),s=!1;if(w(i)){if(!a)return;i=new d,t.set(o,i),s=!0}var c=i.get(n);if(w(c)){if(!a)return;if(c=new d,i.set(n,c),!e.setProvider(o,n,r))throw i.delete(n),s&&t.delete(o),new Error("Wrong provider for target.")}return c}}(h);function E(e,t,r){if(O(e,t,r))return!0;var o=F(t);return!A(o)&&E(e,o,r)}function O(e,t,r){var o=C(t,r,!1);return!w(o)&&S(o.OrdinaryHasOwnMetadata(e,t,r))}function v(e,t,r){if(O(e,t,r))return _(e,t,r);var o=F(t);return A(o)?void 0:v(e,o,r)}function _(e,t,r){var o=C(t,r,!1);if(!w(o))return o.OrdinaryGetOwnMetadata(e,t,r)}function m(e,t,r,o){C(r,o,!0).OrdinaryDefineOwnMetadata(e,t,r,o)}function b(e,t){var r=M(e,t),o=F(e);if(null===o)return r;var n=b(o,t);if(n.length<=0)return r;if(r.length<=0)return n;for(var a=new f,i=[],s=0,c=r;s<c.length;s++){var l=c[s];a.has(l)||(a.add(l),i.push(l))}for(var u=0,d=n;u<d.length;u++)l=d[u],a.has(l)||(a.add(l),i.push(l));return i}function M(e,t){var r=C(e,t,!1);return r?r.OrdinaryOwnMetadataKeys(e,t):[]}function R(e){if(null===e)return 1;switch(typeof e){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return null===e?1:6;default:return 6}}function w(e){return void 0===e}function A(e){return null===e}function P(e){return"object"==typeof e?null!==e:"function"==typeof e}function T(e,t){switch(R(e)){case 0:case 1:case 2:case 3:case 4:case 5:return e}var r=3===t?"string":5===t?"number":"default",o=I(e,n);if(void 0!==o){var a=o.call(e,r);if(P(a))throw new TypeError;return a}return function(e,t){if("string"===t){var r=e.toString;if(L(r)&&!P(n=r.call(e)))return n;if(L(o=e.valueOf)&&!P(n=o.call(e)))return n}else{var o;if(L(o=e.valueOf)&&!P(n=o.call(e)))return n;var n,a=e.toString;if(L(a)&&!P(n=a.call(e)))return n}throw new TypeError}(e,"default"===r?"number":r)}function S(e){return!!e}function D(e){var t=T(e,3);return"symbol"==typeof t?t:function(e){return""+e}(t)}function j(e){return Array.isArray?Array.isArray(e):e instanceof Object?e instanceof Array:"[object Array]"===Object.prototype.toString.call(e)}function L(e){return"function"==typeof e}function V(e){return"function"==typeof e}function K(e,t){return e===t||e!=e&&t!=t}function I(e,t){var r=e[t];if(null!=r){if(!L(r))throw new TypeError;return r}}function N(e){var t=I(e,a);if(!L(t))throw new TypeError;var r=t.call(e);if(!P(r))throw new TypeError;return r}function x(e){return e.value}function k(e){var t=e.next();return!t.done&&t}function U(e){var t=e.return;t&&t.call(e)}function F(e){var t=Object.getPrototypeOf(e);if("function"!=typeof e||e===u)return t;if(t!==u)return t;var r=e.prototype,o=r&&Object.getPrototypeOf(r);if(null==o||o===Object.prototype)return t;var n=o.constructor;return"function"!=typeof n||n===e?t:n}function C(e,t,r){var o=h.getProvider(e,t);if(!w(o))return o;if(r){if(h.setProvider(e,t,g))return g;throw new Error("Illegal state.")}}function B(e){return e.__=void 0,delete e.__,e}e("decorate",(function(e,t,r,o){if(w(r)){if(!j(e))throw new TypeError;if(!V(t))throw new TypeError;return function(e,t){for(var r=e.length-1;r>=0;--r){var o=(0,e[r])(t);if(!w(o)&&!A(o)){if(!V(o))throw new TypeError;t=o}}return t}(e,t)}if(!j(e))throw new TypeError;if(!P(t))throw new TypeError;if(!P(o)&&!w(o)&&!A(o))throw new TypeError;return A(o)&&(o=void 0),function(e,t,r,o){for(var n=e.length-1;n>=0;--n){var a=(0,e[n])(t,r,o);if(!w(a)&&!A(a)){if(!P(a))throw new TypeError;o=a}}return o}(e,t,r=D(r),o)})),e("metadata",(function(e,t){return function(r,o){if(!P(r))throw new TypeError;if(!w(o)&&!function(e){switch(R(e)){case 3:case 4:return!0;default:return!1}}(o))throw new TypeError;m(e,t,r,o)}})),e("defineMetadata",(function(e,t,r,o){if(!P(r))throw new TypeError;return w(o)||(o=D(o)),m(e,t,r,o)})),e("hasMetadata",(function(e,t,r){if(!P(t))throw new TypeError;return w(r)||(r=D(r)),E(e,t,r)})),e("hasOwnMetadata",(function(e,t,r){if(!P(t))throw new TypeError;return w(r)||(r=D(r)),O(e,t,r)})),e("getMetadata",(function(e,t,r){if(!P(t))throw new TypeError;return w(r)||(r=D(r)),v(e,t,r)})),e("getOwnMetadata",(function(e,t,r){if(!P(t))throw new TypeError;return w(r)||(r=D(r)),_(e,t,r)})),e("getMetadataKeys",(function(e,t){if(!P(e))throw new TypeError;return w(t)||(t=D(t)),b(e,t)})),e("getOwnMetadataKeys",(function(e,t){if(!P(e))throw new TypeError;return w(t)||(t=D(t)),M(e,t)})),e("deleteMetadata",(function(e,t,r){if(!P(t))throw new TypeError;if(w(r)||(r=D(r)),!P(t))throw new TypeError;w(r)||(r=D(r));var o=C(t,r,!1);return!w(o)&&o.OrdinaryDeleteMetadata(e,t,r)}))}(n,o),void 0===o.Reflect&&(o.Reflect=e)}()}(o||(o={}))}},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var a=t[o]={exports:{}};return e[o].call(a.exports,a,a.exports,r),a.exports}r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r(7729);
2
+ var e={5580:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.id=function(){return(0,o.apply)((0,n.required)(),(0,a.readonly)(),(0,n.propMetadata)(s.Repository.key(i.DBKeys.ID),{}))};const n=r(5659),o=r(5317),a=r(965),i=r(2402),s=r(5666)},2912:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(5580),t),o(r(861),t)},861:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.findPrimaryKey=s,t.findModelId=function(e,t=!1){const r=s(e).id,n=e[r];if(!n&&!t)throw new i.NotFoundError((0,a.sf)("No value for the Id is defined under the property {0}",r));return n};const n=r(2402),o=r(8311),a=r(5659),i=r(879);function s(e){const t=(0,o.getAllPropertyDecoratorsRecursive)(e,void 0,n.DBKeys.REFLECT+n.DBKeys.ID),r=Object.entries(t).reduce(((e,[t,r])=>{const n=r.filter((e=>e.key!==a.ModelKeys.TYPE));return n&&n.length&&(e[t]=e[t]||[],e[t].push(...n)),e}),{});if(!r||!Object.keys(r).length)throw new i.InternalError("Could not find ID decorated Property");if(Object.keys(r).length>1)throw new i.InternalError((0,a.sf)(Object.keys(r).join(", ")));const s=Object.keys(r)[0];if(!s)throw new i.InternalError("Could not find ID decorated Property");return{id:s,props:r[s][0].props}}},7729:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(2912),t),o(r(1206),t),o(r(3847),t),o(r(5804),t),o(r(5666),t),o(r(965),t)},5996:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},2564:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},885:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},1206:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(5996),t),o(r(2564),t),o(r(885),t)},2402:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_TIMESTAMP_FORMAT=t.DefaultSeparator=t.DBKeys=void 0;const n=r(5659);t.DBKeys={REFLECT:`${n.ModelKeys.REFLECT}persistence.`,REPOSITORY:"repository",CLASS:"_class",ID:"id",INDEX:"index",UNIQUE:"unique",SERIALIZE:"serialize",READONLY:"readonly",TIMESTAMP:"timestamp",HASH:"hash",COMPOSED:"composed",ORIGINAL:"__originalObj"},t.DefaultSeparator="_",t.DEFAULT_TIMESTAMP_FORMAT="dd/MM/yyyy HH:mm:ss:S"},5893:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.hashOnCreateUpdate=u,t.hash=l,t.composedFromCreateUpdate=f,t.composedFromKeys=function(e,t=n.DefaultSeparator,r=!1,o="",a=""){return d(e,r,t,"keys",o,a)},t.composed=function(e,t=n.DefaultSeparator,r=!1,o="",a=""){return d(e,r,t,"values",o,a)};const n=r(2402),o=r(5317),a=r(5659),i=r(6208),s=r(879),c=r(3932);function u(e,t,r,n){if(!r[t])return;const o=a.Hashing.hash(r[t]);n&&r[t]===o||(r[t]=o)}function l(){return(0,o.apply)((0,i.onCreateUpdate)(u),(0,a.propMetadata)(c.Repository.key(n.DBKeys.HASH),{}))}function f(e,t,r){try{const{args:n,type:o,prefix:i,suffix:c,separator:u}=e,l=n.map((e=>{if(!(e in r))throw new s.InternalError((0,a.sf)("Property {0} not found to compose from",e));if("keys"===o)return e;if(void 0===r[e])throw new s.InternalError((0,a.sf)("Property {0} does not contain a value to compose from",e));return r[e].toString()}));i&&l.unshift(i),c&&l.push(c),r[t]=l.join(u)}catch(e){throw new s.InternalError(`Failed to compose value: ${e}`)}}function d(e,t=!1,r=n.DefaultSeparator,s="values",u="",d=""){const p={args:e,hashResult:t,separator:r,type:s,prefix:u,suffix:d},y=[(0,i.onCreateUpdate)(f,p),(0,a.propMetadata)(c.Repository.key(n.DBKeys.COMPOSED),p)];return t&&y.push(l()),(0,o.apply)(...y)}},3847:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(192),t),o(r(2402),t),o(r(5893),t),o(r(9985),t)},9985:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const n=r(5659),o=r(192);n.Model.prototype.hasErrors=function(e,...t){!e||e instanceof n.Model||(t.unshift(e),e=void 0);const r=(0,n.validate)(this,...t);return r||!e?r:(0,o.validateCompare)(e,this,...t)}},192:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateCompare=function(e,t,...r){const s=[];for(const e in t)Object.prototype.hasOwnProperty.call(t,e)&&-1===r.indexOf(e)&&s.push((0,o.getPropertyDecorators)(a.UpdateValidationKeys.REFLECT,t,e));let c;for(const r of s){const{prop:o,decorators:a}=r;if(a.shift(),!a||!a.length)continue;let i;for(const s of a){const a=n.Validation.get(s.key);if(!a){console.error(`Could not find Matching validator for ${s.key} for property ${String(r.prop)}`);continue}const c=a.updateHasErrors(t[o.toString()],e[o.toString()],...Object.values(s.props));c&&(i=i||{},i[s.key]=c)}i&&(c=c||{},c[r.prop.toString()]=i)}for(const r of Object.keys(t).filter((e=>!c||!c[e]))){let a;const s=(0,o.getPropertyDecorators)(n.ValidationKeys.REFLECT,t,r).decorators,u=(0,o.getPropertyDecorators)(n.ValidationKeys.REFLECT,t,r).decorators.filter((e=>-1!==[n.ModelKeys.TYPE,n.ValidationKeys.TYPE].indexOf(e.key)));if(!u||!u.length)continue;const l=u.pop(),f=l.props.name?[l.props.name]:Array.isArray(l.props.customTypes)?l.props.customTypes:[l.props.customTypes],d=Object.values(n.ReservedModels).map((e=>e.toLowerCase()));for(const o of f){if(-1===d.indexOf(o.toLowerCase()))switch(o){case Array.name:case Set.name:if(s.length&&s.find((e=>e.key===n.ValidationKeys.LIST))){let n,s;switch(o){case Array.name:n=t[r],s=e[r];break;case Set.name:n=t[r].values(),s=e[r].values();break;default:throw new Error(`Invalid attribute type ${o}`)}a=n.map((e=>{const t=(0,i.findModelId)(e,!0);if(!t)return"Failed to find model id";const r=s.find((e=>t===(0,i.findModelId)(e,!0)));return r?e.hasErrors(r):void 0})).filter((e=>!!e)),a?.length||(a=void 0)}break;default:try{t[r]&&e[r]&&(a=t[r].hasErrors(e[r]))}catch(e){console.warn((0,n.sf)("Model should be validatable but its not"))}}a&&(c=c||{},c[r]=a)}}return c?new n.ModelErrorDefinition(c):void 0};const n=r(5659),o=r(5317),a=r(965),i=r(2912)},9668:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Operations=void 0;const n=r(5659),o=r(4143),a=r(7625);class i{constructor(){}static getHandlerName(e){return e.name?e.name:(console.warn("Handler name not defined. A name will be generated, but this is not desirable. please avoid using anonymous functions"),n.Hashing.hash(e.toString()))}static key(e){return a.OperationKeys.REFLECT+e}static get(e,t,r){return i.registry.get(e,t,r)}static getOpRegistry(){return i.registry||(i.registry=new o.OperationsRegistry),i.registry}static register(e,t,r,n){i.getOpRegistry().register(e,t,r,n)}}t.Operations=i},4143:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OperationsRegistry=void 0;const n=r(9668);t.OperationsRegistry=class{constructor(){this.cache={}}get(e,t,r,n){let o;n=n||[];try{o="string"==typeof e?e:e.constructor.name,n.unshift(...Object.values(this.cache[o][t][r]||[]))}catch(t){if("string"==typeof e||e===Object.prototype||Object.getPrototypeOf(e)===Object.prototype)return n}let a=Object.getPrototypeOf(e);return a.constructor.name===o&&(a=Object.getPrototypeOf(a)),this.get(a,t,r,n)}register(e,t,r,o){const a=r.constructor.name,i=n.Operations.getHandlerName(e);this.cache[a]||(this.cache[a]={}),this.cache[a][o]||(this.cache[a][o]={}),this.cache[a][o][t]||(this.cache[a][o][t]={}),this.cache[a][o][t][i]||(this.cache[a][o][t][i]=e)}}},7625:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.DBOperations=t.OperationKeys=void 0,function(e){e.REFLECT="decaf.model.db.operations.",e.CREATE="create",e.READ="read",e.UPDATE="update",e.DELETE="delete",e.ON="on.",e.AFTER="after."}(r||(t.OperationKeys=r={})),t.DBOperations={CREATE:[r.CREATE],READ:[r.READ],UPDATE:[r.UPDATE],DELETE:[r.DELETE],CREATE_UPDATE:[r.CREATE,r.UPDATE],READ_CREATE:[r.READ,r.CREATE],ALL:[r.CREATE,r.READ,r.UPDATE,r.DELETE]}},6208:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.onCreateUpdate=function(e,t){return s(n.DBOperations.CREATE_UPDATE,e,t)},t.onUpdate=function(e,t){return s(n.DBOperations.UPDATE,e,t)},t.onCreate=function(e,t){return s(n.DBOperations.CREATE,e,t)},t.onRead=function(e,t){return s(n.DBOperations.READ,e,t)},t.onDelete=function(e,t){return s(n.DBOperations.DELETE,e,t)},t.on=s,t.afterCreateUpdate=function(e,t){return c(n.DBOperations.CREATE_UPDATE,e,t)},t.afterUpdate=function(e,t){return c(n.DBOperations.UPDATE,e,t)},t.afterCreate=function(e,t){return c(n.DBOperations.CREATE,e,t)},t.afterRead=function(e,t){return c(n.DBOperations.READ,e,t)},t.afterDelete=function(e,t){return c(n.DBOperations.DELETE,e,t)},t.after=c,t.operation=u;const n=r(7625),o=r(9668),a=r(5317),i=r(5659);function s(e=n.DBOperations.ALL,t,r){return u(n.OperationKeys.ON,e,t,r)}function c(e=n.DBOperations.ALL,t,r){return u(n.OperationKeys.AFTER,e,t,r)}function u(e,t=n.DBOperations.ALL,r,s){return(n,c)=>{const u=n.constructor.name,l=t.reduce(((t,a)=>{const l=e+a;let f=Reflect.getMetadata(o.Operations.key(l),n,c);f||(f={operation:a,handlers:{}});const d=o.Operations.getHandlerName(r);return f.handlers[u]&&f.handlers[u][c]&&d in f.handlers[u][c]||(f.handlers[u]=f.handlers[u]||{},f.handlers[u][c]=f.handlers[u][c]||{},f.handlers[u][c][d]={data:s},t.push(function(e,t){return(r,n)=>{o.Operations.register(t,e,r,n)}}(l,r),(0,i.propMetadata)(o.Operations.key(l),f))),t}),[]);return(0,a.apply)(...l)(n,c)}}},5804:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(7625),t),o(r(6208),t),o(r(9668),t),o(r(4143),t),o(r(5981),t)},5981:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},8269:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BaseRepository=void 0;const n=r(5659),o=r(8311),a=r(7625),i=r(879),s=r(6124),c=r(3420),u=r(861);t.BaseRepository=class{get class(){if(!this._class)throw new i.InternalError("No class definition found for this repository");return this._class}get cache(){return this._cache||(this._cache=new s.DataCache),this._cache}constructor(e){e&&(this._class=e);const t=this;[this.create,this.read,this.update,this.delete].forEach((e=>{const r=e.name;(0,c.wrapMethod)(t,t[r+"Prefix"],e,t[r+"Suffix"])}))}async create(e,...t){throw new Error("Child classes must implement this.")}async createAll(e,...t){return Promise.all(e.map((e=>this.create(e,...t))))}async createPrefix(e,...t){return e=new this.class(e),await(0,o.enforceDBDecorators)(this,e,a.OperationKeys.CREATE,a.OperationKeys.ON),[e,...t]}async createSuffix(e){return await(0,o.enforceDBDecorators)(this,e,a.OperationKeys.CREATE,a.OperationKeys.AFTER),e}async createAllPrefix(e,...t){return await Promise.all(e.map((async e=>(e=new this.class(e),await(0,o.enforceDBDecorators)(this,e,a.OperationKeys.CREATE,a.OperationKeys.ON),e)))),[e,...t]}async createAllSuffix(e){return await Promise.all(e.map((e=>(0,o.enforceDBDecorators)(this,e,a.OperationKeys.CREATE,a.OperationKeys.AFTER)))),e}async read(e,...t){throw new Error("Child classes must implement this")}async readAll(e,...t){return await Promise.all(e.map((e=>this.read(e,...t))))}async readSuffix(e){return await(0,o.enforceDBDecorators)(this,e,a.OperationKeys.READ,a.OperationKeys.AFTER),e}async readPrefix(e,...t){const r=new this.class;return r[(0,u.findPrimaryKey)(r).id]=e,await(0,o.enforceDBDecorators)(this,r,a.OperationKeys.READ,a.OperationKeys.ON),[e,...t]}async readAllPrefix(e,...t){const r=new this.class,n=(0,u.findPrimaryKey)(r).id;return await Promise.all(e.map((async e=>{const t=new this.class;return t[n]=e,(0,o.enforceDBDecorators)(this,t,a.OperationKeys.READ,a.OperationKeys.ON)}))),[e,...t]}async readAllSuffix(e){return await Promise.all(e.map((e=>(0,o.enforceDBDecorators)(this,e,a.OperationKeys.READ,a.OperationKeys.AFTER)))),e}async update(e,...t){throw new Error("Child classes must implement this")}async updateAll(e,...t){return Promise.all(e.map((e=>this.update(e,...t))))}async updateSuffix(e){return await(0,o.enforceDBDecorators)(this,e,a.OperationKeys.UPDATE,a.OperationKeys.AFTER),e}async updatePrefix(e,...t){const r=(0,u.findModelId)(e),n=await this.read(r);return await(0,o.enforceDBDecorators)(this,e,a.OperationKeys.UPDATE,a.OperationKeys.ON,n),[e,...t]}async updateAllPrefix(e,...t){return await Promise.all(e.map((e=>(e=new this.class(e),(0,o.enforceDBDecorators)(this,e,a.OperationKeys.UPDATE,a.OperationKeys.ON),e)))),[e,...t]}async updateAllSuffix(e){return await Promise.all(e.map((e=>(0,o.enforceDBDecorators)(this,e,a.OperationKeys.UPDATE,a.OperationKeys.AFTER)))),e}async delete(e,...t){throw new Error("Child classes must implement this")}async deleteAll(e,...t){return Promise.all(e.map((e=>this.delete(e,...t))))}async deleteSuffix(e){return await(0,o.enforceDBDecorators)(this,e,a.OperationKeys.DELETE,a.OperationKeys.AFTER),e}async deletePrefix(e,...t){const r=await this.read(e,...t);return await(0,o.enforceDBDecorators)(this,r,a.OperationKeys.DELETE,a.OperationKeys.ON),[e,...t]}async deleteAllPrefix(e,...t){const r=await this.readAll(e,...t);return await Promise.all(r.map((async e=>(0,o.enforceDBDecorators)(this,e,a.OperationKeys.DELETE,a.OperationKeys.ON)))),[e,...t]}async deleteAllSuffix(e){return await Promise.all(e.map((e=>(0,o.enforceDBDecorators)(this,e,a.OperationKeys.DELETE,a.OperationKeys.AFTER)))),e}merge(e,t){const r=e=>Object.entries(e).reduce(((e,[t,r])=>(void 0!==r&&(e[t]=r),e)),{});return new this.class(Object.assign({},r(e),r(t)))}toString(){return(0,n.sf)("[{0}] - Repository for {1}",this.constructor.name,this.class.name)}}},6124:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DataCache=void 0;const n=r(879);t.DataCache=class{constructor(){this.cache={}}async get(e){if(!(e in this.cache))throw new n.NotFoundError(`Key ${e} not in dataStore`);return this.cache[e]}async push(e,t){if(e in this.cache)throw new n.ConflictError(`Key ${e} already in dataStore`);this.cache[e]=t}async put(e,t){this.cache[e]=t}async pop(e){const t=this.get(e);return delete this.cache[e],t}async purge(e){e?await this.pop(e):this.cache={}}}},3932:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Repository=void 0;const n=r(8311),o=r(7625),a=r(879),i=r(8269),s=r(861),c=r(2402);class u extends i.BaseRepository{constructor(e){super(e)}async create(e){throw new Error("Child classes must implement this.")}async createPrefix(e,...t){e=new this.class(e),await(0,n.enforceDBDecorators)(this,e,o.OperationKeys.CREATE,o.OperationKeys.ON);const r=e.hasErrors();if(r)throw new a.ValidationError(r.toString());return[e,...t]}async createAllPrefix(e,...t){await Promise.all(e.map((async e=>(e=new this.class(e),await(0,n.enforceDBDecorators)(this,e,o.OperationKeys.CREATE,o.OperationKeys.ON),e))));const r=e.map((e=>e.hasErrors())).reduce(((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e)),void 0);if(r)throw new a.ValidationError(r);return[e,...t]}async delete(e){throw new Error("Child classes must implement this.")}async read(e){throw new Error("Child classes must implement this.")}async update(e){throw new Error("Child classes must implement this.")}async updatePrefix(e,...t){const r=(0,s.findModelId)(e),i=await this.read(r);e=this.merge(i,e),await(0,n.enforceDBDecorators)(this,e,o.OperationKeys.UPDATE,o.OperationKeys.ON,i);const c=e.hasErrors(i);if(c)throw new a.ValidationError(c.toString());return[e,...t]}async updateAllPrefix(e,...t){const r=e.map((e=>(0,s.findModelId)(e))),i=await this.readAll(r);e=e.map(((e,t)=>this.merge(i[t],e))),await Promise.all(e.map(((e,t)=>(0,n.enforceDBDecorators)(this,e,o.OperationKeys.UPDATE,o.OperationKeys.ON,i[t]))));const c=e.map(((e,t)=>e.hasErrors(i[t],e))).reduce(((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e)),void 0);if(c)throw new a.ValidationError(c);return[e,...t]}static key(e){return c.DBKeys.REFLECT+e}}t.Repository=u},879:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ConflictError=t.NotFoundError=t.SerializationError=t.InternalError=t.ValidationError=t.BaseError=void 0;class r extends Error{constructor(e,t){if(t instanceof r)return t;super(`[${e}] ${t instanceof Error?t.message:t}`),t instanceof Error&&(this.stack=t.stack)}}t.BaseError=r;class n extends r{constructor(e){super(n.name,e)}}t.ValidationError=n;class o extends r{constructor(e){super(o.name,e)}}t.InternalError=o;class a extends r{constructor(e){super(a.name,e)}}t.SerializationError=a;class i extends r{constructor(e){super(i.name,e)}}t.NotFoundError=i;class s extends r{constructor(e){super(s.name,e)}}t.ConflictError=s},5666:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(8269),t),o(r(6124),t),o(r(879),t),o(r(3932),t),o(r(8311),t),o(r(3420),t)},8311:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getAllPropertyDecoratorsRecursive=t.getHandlerArgs=void 0,t.enforceDBDecorators=async function(e,r,a,u,l){const f=c(r,a,u);if(f)for(const c in f){const d=f[c];for(const f of d){const{key:d}=f,p=n.Operations.get(r,c,u+d);if(!p||!p.length)throw new i.InternalError(`Could not find registered handler for the operation ${u+d} under property ${c}`);const y=(0,t.getHandlerArgs)(f,c,r);if(!y||Object.values(y).length!==p.length)throw new i.InternalError((0,s.sf)("Args and handlers length do not match"));let h,g;for(let t=0;t<p.length;t++){h=p[t],g=Object.values(y)[t];const n=[g.data,c,r];if(a===o.OperationKeys.UPDATE){if(!l)throw new i.InternalError("Missing old model for update operation");n.push(l)}await h.apply(e,n)}}}},t.getDbDecorators=c;const n=r(9668),o=r(7625),a=r(5317),i=r(879),s=r(5659);function c(e,t,r){const n=(0,a.getAllPropertyDecorators)(e,o.OperationKeys.REFLECT+(r||""));if(n)return Object.keys(n).reduce(((e,r)=>{const o=n[r].filter((e=>e.key===t));return o&&o.length&&(e||(e={}),e[r]=o),e}),void 0)}t.getHandlerArgs=function(e,r,n,o){const a=n.constructor.name;if(!a)throw new i.InternalError("Could not determine model class");o=o||{},e.props.handlers[a]&&e.props.handlers[a][r]&&(o={...e.props.handlers[a][r],...o});let s=Object.getPrototypeOf(n);return s===Object.prototype?o:(s.constructor.name===a&&(s=Object.getPrototypeOf(s)),(0,t.getHandlerArgs)(e,r,s,o))},t.getAllPropertyDecoratorsRecursive=function(e,r,...n){const i=r||{},c=(0,a.getAllPropertyDecorators)(e,...n);if(c&&function(e){Object.entries(e).forEach((([e,t])=>{i[e]=i[e]||[],((e,...t)=>{t.forEach((t=>{let r;if(!(r=i[e].find((e=>e.key===t.key)))||r.props.operation!==t.props.operation)return void i[e].push(t);if(t.key===s.ModelKeys.TYPE)return;const{handlers:n,operation:a}=t.props;if(!a||!a.match(new RegExp(`^(:?${o.OperationKeys.ON}|${o.OperationKeys.AFTER})(:?${o.OperationKeys.CREATE}|${o.OperationKeys.READ}|${o.OperationKeys.UPDATE}|${o.OperationKeys.DELETE})$`)))return void i[e].push(t);const c=r.props.handlers;Object.entries(n).forEach((([e,t])=>{e in c?Object.entries(t).forEach((([t,r])=>{t in c[e]?Object.entries(r).forEach((([r,n])=>{r in c[e][t]?console.warn((0,s.sf)("Skipping handler registration for {0} under prop {0} because handler is the same",e,t)):c[e][t][r]=n})):c[e][t]=r})):c[e]=t}))}))})(e,...t)}))}(c),Object.getPrototypeOf(e)===Object.prototype)return i;const u=Object.getPrototypeOf(e);return u?(0,t.getAllPropertyDecoratorsRecursive)(u,i,...n):i}},3420:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.prefixMethod=function(e,t,r,n){const o=async function(...e){const n=await Promise.resolve(r.call(this,...e));return Promise.resolve(t.apply(this,n))}.bind(e),a=n||t.name;Object.defineProperty(o,"name",{enumerable:!0,configurable:!0,writable:!1,value:a}),e[a]=o},t.suffixMethod=function(e,t,r,n){const o=async function(...e){const n=await Promise.resolve(t.call(this,...e));return r.call(this,...n)}.bind(e),a=n||t.name;Object.defineProperty(o,"name",{enumerable:!0,configurable:!0,writable:!1,value:a}),e[a]=o},t.wrapMethod=function(e,t,r,n,o){const a=async function(...o){let a=t.call(e,...o);a instanceof Promise&&(a=await a);let i=await r.call(e,...a);return i instanceof Promise&&(i=await i),i=n.call(this,i),i instanceof Promise&&(i=await i),i}.bind(e),i=o||r.name;Object.defineProperty(a,"name",{enumerable:!0,configurable:!0,writable:!1,value:i}),e[i]=a}},2628:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UpdateValidationKeys=t.DEFAULT_ERROR_MESSAGES=void 0;const n=r(2402);t.DEFAULT_ERROR_MESSAGES={ID:{INVALID:"This Id is invalid",REQUIRED:"The Id is mandatory"},READONLY:{INVALID:"This cannot be updated"},TIMESTAMP:{REQUIRED:"Timestamp is Mandatory",DATE:"The Timestamp must the a valid date",INVALID:"This value must always increase"}},t.UpdateValidationKeys={REFLECT:"db.update.validation.",TIMESTAMP:n.DBKeys.TIMESTAMP,READONLY:n.DBKeys.READONLY}},3475:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.readonly=function(e=a.DEFAULT_ERROR_MESSAGES.READONLY.INVALID){return(0,n.propMetadata)(n.Validation.updateKey(o.DBKeys.READONLY),{message:e})},t.timestampHandler=f,t.timestamp=function(e=i.DBOperations.CREATE_UPDATE,t=o.DEFAULT_TIMESTAMP_FORMAT){const r=[(0,n.date)(t,a.DEFAULT_ERROR_MESSAGES.TIMESTAMP.DATE),(0,n.required)(a.DEFAULT_ERROR_MESSAGES.TIMESTAMP.REQUIRED),(0,s.on)(e,f)];return-1!==e.indexOf(i.OperationKeys.UPDATE)&&r.push((0,n.propMetadata)(n.Validation.updateKey(o.DBKeys.TIMESTAMP),{message:a.DEFAULT_ERROR_MESSAGES.TIMESTAMP.INVALID})),(0,u.apply)(...r)},t.serializeOnCreateUpdate=d,t.serializeAfterAll=p,t.serialize=function(){return(0,u.apply)((0,s.onCreateUpdate)(d),(0,s.after)(i.DBOperations.ALL,p),(0,n.type)([String.name,Object.name]),(0,u.metadata)(l.Repository.key(o.DBKeys.SERIALIZE),{}))};const n=r(5659),o=r(2402),a=r(2628),i=r(7625),s=r(6208),c=r(879),u=r(5317),l=r(5666);function f(e,t,r){r[t]=new Date}async function d(e,t,r,o){if(r[t])try{r[t]=JSON.stringify(r[t])}catch(e){throw new c.SerializationError((0,n.sf)("Failed to serialize {0} property on {1} model: {2}",t,r.constructor.name,e.message))}}async function p(e,t,r){if(r[t]&&"string"==typeof r[t])try{r[t]=JSON.parse(r[t])}catch(e){throw new c.SerializationError((0,n.sf)("Failed to deserialize {0} property on {1} model: {2}",t,r.constructor.name,e.message))}}},965:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(973),t),o(r(2628),t),o(r(3475),t),o(r(5634),t)},5634:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const n=r(5659),o=r(2628);n.Validation.updateKey=function(e){return o.UpdateValidationKeys.REFLECT+e}},4837:function(e,t,r){var n=this&&this.__decorate||function(e,t,r,n){var o,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.ReadOnlyValidator=void 0;const a=r(5659),i=r(2628),s=r(5317);let c=class extends a.Validator{constructor(){super(i.DEFAULT_ERROR_MESSAGES.READONLY.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,r){if(void 0!==e)return(0,s.isEqual)(e,t)?void 0:this.getMessage(r||this.message)}};t.ReadOnlyValidator=c,t.ReadOnlyValidator=c=n([(0,a.validator)(i.UpdateValidationKeys.READONLY),o("design:paramtypes",[])],c)},3927:function(e,t,r){var n=this&&this.__decorate||function(e,t,r,n){var o,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.TimestampValidator=void 0;const a=r(5659),i=r(2628);let s=class extends a.Validator{constructor(){super(i.DEFAULT_ERROR_MESSAGES.TIMESTAMP.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,r){if(void 0!==e){r=r||this.getMessage(r||this.message);try{e=new Date(e),t=new Date(t)}catch(e){return r}return e<=t?r:void 0}}};t.TimestampValidator=s,t.TimestampValidator=s=n([(0,a.validator)(i.UpdateValidationKeys.TIMESTAMP),o("design:paramtypes",[])],s)},372:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UpdateValidator=void 0;const n=r(5659);class o extends n.Validator{constructor(e=n.DEFAULT_ERROR_MESSAGES.DEFAULT,...t){super(e,...t)}}t.UpdateValidator=o},973:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(4837),t),o(r(3927),t),o(r(372),t)},5659:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.VERSION=void 0,o(r(9389),t),o(r(1365),t),o(r(4545),t),t.VERSION="1.3.7"},1094:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Model=void 0;const n=r(4817),o=r(7098),a=r(5317),i=r(2118),s=r(793),c=r(6090),u=r(5450),l=r(3552),f=r(6775),d=r(574);let p,y;class h{constructor(e){}hasErrors(...e){return(0,i.validate)(this,...e)}equals(e,...t){return(0,a.isEqual)(this,e,...t)}serialize(){return h.serialize(this)}toString(){return this.constructor.name+": "+JSON.stringify(this,void 0,2)}hash(){return h.hash(this)}static deserialize(e){const t=Reflect.getMetadata(this.key(u.ModelKeys.SERIALIZATION),this.constructor);return t&&t.serializer?n.Serialization.deserialize(e,t.serializer,...t.args||[]):n.Serialization.deserialize(e)}static fromObject(e,t){t||(t={});for(const r of h.getAttributes(e))e[r]=t[r]||void 0;return e}static fromModel(e,t){let r,n;t||(t={});const o=h.getAttributes(e);for(const i of o){if(e[i]=t[i]||void 0,"object"!=typeof e[i])continue;const o=(0,c.isPropertyModel)(e,i);if(o){try{e[i]=h.build(e[i],"string"==typeof o?o:void 0)}catch(e){console.log(e)}continue}const s=(0,a.getPropertyDecorators)(l.ValidationKeys.REFLECT,e,i).decorators;if(r=s.filter((e=>-1!==[u.ModelKeys.TYPE,l.ValidationKeys.TYPE].indexOf(e.key))),!r||!r.length)throw new Error((0,f.sf)("failed to find decorators for property {0}",i));n=r.pop();const p=n.props.name?[n.props.name]:Array.isArray(n.props.customTypes)?n.props.customTypes:[n.props.customTypes],y=Object.values(d.ReservedModels).map((e=>e.toLowerCase()));p.forEach((t=>{if(-1===y.indexOf(t.toLowerCase()))try{switch(t){case"Array":case"Set":if(s.length){const r=s.find((e=>e.key===l.ValidationKeys.LIST));if(r){const n=r.props.class.find((e=>!d.jsTypes.includes(e.toLowerCase())));if("Array"===t&&(e[i]=e[i].map((e=>["object","function"].includes(typeof e)&&n?h.build(e,n):e))),"Set"===t){const t=new Set;for(const r of e[i])["object","function"].includes(typeof r)&&n?t.add(h.build(r,n)):t.add(r);e[i]=t}}}break;default:e[i]&&(e[i]=h.build(e[i],t))}}catch(e){console.log(e)}}))}return e}static setBuilder(e){p=e}static getBuilder(){return p}static getRegistry(){return y||(y=new o.ModelRegistryManager),y}static setRegistry(e){y=e}static register(e,t){return h.getRegistry().register(e,t)}static get(e){return h.getRegistry().get(e)}static build(e={},t){return h.getRegistry().build(e,t)}static getMetadata(e){const t=Reflect.getMetadata(this.key(u.ModelKeys.MODEL),e.constructor);if(!t)throw new Error("could not find metadata for provided "+e.constructor.name);return t}static getAttributes(e){const t=[];let r=e instanceof h?Object.getPrototypeOf(e):e.prototype;for(;null!=r;){const e=r[u.ModelKeys.ATTRIBUTE];e&&t.push(...e),r=Object.getPrototypeOf(r)}return t}static equals(e,t,...r){return(0,a.isEqual)(e,t,...r)}static hasErrors(e,...t){return(0,i.validate)(e,...t)}static serialize(e){const t=Reflect.getMetadata(this.key(u.ModelKeys.SERIALIZATION),e.constructor);return t&&t.serializer?n.Serialization.serialize(this,t.serializer,...t.args||[]):n.Serialization.serialize(e)}static hash(e){const t=Reflect.getMetadata(this.key(u.ModelKeys.HASHING),e.constructor);return t&&t.algorithm?s.Hashing.hash(e,t.algorithm,...t.args||[]):s.Hashing.hash(e)}static key(e){return u.ModelKeys.REFLECT+e}}t.Model=h},6479:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ModelErrorDefinition=void 0,t.ModelErrorDefinition=class{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 n=Object.keys(e[r]).reduce(((t,n)=>(t?t+=`\n${e[r][n]}`:t=e[r][n],t)),void 0);return n&&(n=`${r} - ${n}`,t?t+=`\n${n}`:t=n),t}),"")}}},7098:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ModelRegistryManager=void 0,t.bulkModelRegister=function(...e){e.forEach((e=>{const t=e.constructor?e.constructor:e;n.Model.register(t,e.name)}))};const n=r(1094),o=r(6775),a=r(6090);t.ModelRegistryManager=class{constructor(e=a.isModel){this.cache={},this.testFunction=e}register(e,t){if("function"!=typeof e)throw new Error("Model registering failed. Missing Class name or constructor");t=t||e.name,this.cache[t]=e}get(e){try{return this.cache[e]}catch(e){return}}build(e={},t){if(!t&&!this.testFunction(e))throw new Error("Provided obj is not a Model object");const r=t||n.Model.getMetadata(e);if(!(r in this.cache))throw new Error((0,o.sf)("Provided class {0} is not a registered Model object",r));return new this.cache[r](e)}}},574:(e,t)=>{var r,n;Object.defineProperty(t,"__esModule",{value:!0}),t.jsTypes=t.ReservedModels=t.Primitives=void 0,function(e){e.STRING="string",e.NUMBER="number",e.BOOLEAN="boolean",e.BIGINT="bigint"}(r||(t.Primitives=r={})),function(e){e.STRING="string",e.OBJECT="object",e.NUMBER="number",e.BOOLEAN="boolean",e.BIGINT="bigint",e.DATE="date"}(n||(t.ReservedModels=n={})),t.jsTypes=["string","array","number","boolean","symbol","function","object","undefined","null","bigint"]},2364:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.construct=function(e,...t){const r=(...t)=>new e(...t);return r.prototype=e.prototype,r(...t)},t.findLastProtoBeforeObject=function(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 new Error("Could not find proper prototype")},t.bindModelPrototype=function(e){if(e instanceof n.Model)return;function t(e,t){Object.setPrototypeOf(e,t)}const r=Object.getPrototypeOf(e);if(r===Object.prototype)return t(e,n.Model.prototype);for(;r!==Object.prototype;){const e=Object.getPrototypeOf(r);if(e===Object.prototype||Object.getPrototypeOf(e)===Object.prototype)return t(r,n.Model.prototype)}throw new Error("Could not find proper prototype to bind")};const n=r(1094)},4333:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.model=function(e){return t=>{const r=function(...r){const s=(0,n.construct)(t,...r);(0,n.bindModelPrototype)(s);const c=a.Model.getBuilder();return c&&c(s,r.length?r[0]:void 0),(0,i.metadata)(a.Model.key(o.ModelKeys.MODEL),t.name)(s.constructor),e&&e(s,...r),s};return r.prototype=t.prototype,Object.defineProperty(r,"name",{writable:!1,enumerable:!0,configurable:!1,value:t.prototype.constructor.name}),(0,i.metadata)(a.Model.key(o.ModelKeys.MODEL),t.name)(t),a.Model.register(r,t.name),r}},t.hashedBy=function(e,...t){return(0,i.metadata)(a.Model.key(o.ModelKeys.HASHING),{algorithm:e,args:t})},t.serializedBy=function(e,...t){return(0,i.metadata)(a.Model.key(o.ModelKeys.SERIALIZATION),{serializer:e,args:t})};const n=r(2364),o=r(5450),a=r(1094),i=r(5317)},4545:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(574),t),o(r(2364),t),o(r(4333),t),o(r(1094),t),o(r(6479),t),o(r(7098),t),o(r(9737),t),o(r(6090),t),o(r(2118),t)},9737:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},6090:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isPropertyModel=function(e,t){if(a(e[t]))return!0;const r=Reflect.getMetadata(n.ModelKeys.TYPE,e,t);return o.Model.get(r.name)?r.name:void 0},t.isModel=a;const n=r(5450),o=r(1094);function a(e){try{return e instanceof o.Model||!!o.Model.getMetadata(e)}catch(e){return!1}}},2118:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validate=function(e,...t){const r=[];for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&-1===t.indexOf(n)&&r.push((0,o.getPropertyDecorators)(u.ValidationKeys.REFLECT,e,n));let f;for(const t of r){const{prop:r,decorators:n}=t;if(!n||!n.length)continue;const o=n[0];let i;n.find((e=>e.key===u.ValidationKeys.TYPE||!!e.props.types?.find((e=>e===o.props.name))))&&n.shift();for(const t of n){const n=c.Validation.get(t.key);if(!n)throw new Error(`Missing validator for ${t.key}`);const o=n.hasErrors(e[r.toString()],...t.key===a.ModelKeys.TYPE?[t.props]:Object.values(t.props));o&&(i=i||{},i[t.key]=o)}i&&(f=f||{},f[t.prop.toString()]=i)}for(const t of Object.keys(e).filter((e=>!f||!f[e]))){let r;const n=(0,o.getPropertyDecorators)(u.ValidationKeys.REFLECT,e,t).decorators,c=(0,o.getPropertyDecorators)(u.ValidationKeys.REFLECT,e,t).decorators.filter((e=>-1!==[a.ModelKeys.TYPE,u.ValidationKeys.TYPE].indexOf(e.key)));if(!c||!c.length)continue;const d=c.pop(),p=d.props.name?[d.props.name]:Array.isArray(d.props.customTypes)?d.props.customTypes:[d.props.customTypes],y=Object.values(s.ReservedModels).map((e=>e.toLowerCase()));for(const o of p){if(-1===y.indexOf(o.toLowerCase())){const a=Array.isArray(e[t])?u.ValidationKeys.LIST:u.ValidationKeys.TYPE,s=n.find((e=>e.key===a))||{};let c=[];if(s&&s.props){const r=Array.isArray(e[t])?s.props.class:s.props.customTypes;r&&(c=Array.isArray(r)?r.map((e=>`${e}`.toLowerCase())):[r.toLowerCase()])}const f=(e,t)=>{if("object"==typeof t||"function"==typeof t)return(0,l.isModel)(t)?t.hasErrors():c.includes(typeof t)?void 0:"Value has no validatable type"};switch(o){case Array.name:case Set.name:n.length&&n.find((e=>e.key===u.ValidationKeys.LIST))&&(r=(o===Array.name?e[t]:e[t].values()).map((e=>f(t,e))).filter((e=>!!e)),r?.length||(r=void 0));break;default:try{e[t]&&(r=f(t,e[t]))}catch(e){console.warn((0,i.sf)("Model should be validatable but its not: "+e))}}}r&&(f=f||{},f[t]=r)}}return f?new n.ModelErrorDefinition(f):void 0};const n=r(6479),o=r(5317),a=r(5450),i=r(6775),s=r(574),c=r(3930),u=r(3552),l=r(6090)},5450:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ModelKeys=void 0,function(e){e.REFLECT="decaf.model.",e.TYPE="design:type",e.PARAMS="design:paramtypes",e.RETURN="design:returntype",e.MODEL="model",e.ANCHOR="__model",e.CONSTRUCTION="constructed-by",e.ATTRIBUTE="__attributes",e.HASHING="hashing",e.SERIALIZATION="serialization"}(r||(t.ModelKeys=r={}))},6422:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.dateFromFormat=a,t.bindDateToString=i,t.isValidDate=s,t.twoDigitPad=c,t.formatDate=u,t.parseDate=function(e,t){let r;if(t){if(t instanceof Date)try{r=a(u(t,e),e)}catch(r){throw new Error((0,o.sf)("Could not convert date {0} to format: {1}",t.toString(),e))}else if("string"==typeof t)r=a(t,e);else if("number"==typeof t)r=a(u(new Date(t),e),e);else{if(!s(t))throw new Error(`Invalid value provided ${t}`);try{r=a(u(new Date(t),e),e)}catch(r){throw new Error((0,o.sf)("Could not convert date {0} to format: {1}",t,e))}}return i(r,e)}},r(2366);const n=r(3552),o=r(6775);function a(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 o=new RegExp(r,"g").exec(e);if(!o||!o.groups)return new Date(e);const a=function(e){if(!e)return 0;const t=parseInt(e);return isNaN(t)?0:t},i=a(o.groups.year),s=a(o.groups.day),c=o.groups.ampm;let u=a(o.groups.hour);c&&(u="PM"===c?u+12:u);const l=a(o.groups.minutes),f=a(o.groups.seconds),d=a(o.groups.milis),p=o.groups.monthname,y=o.groups.monthnamesmall;let h=o.groups.month;if(p)h=n.MONTH_NAMES.indexOf(p);else if(y){const t=n.MONTH_NAMES.find((e=>e.toLowerCase().startsWith(y.toLowerCase())));if(!t)return new Date(e);h=n.MONTH_NAMES.indexOf(t)}else h=a(`${h}`);return new Date(i,h-1,s,u,l,f,d)}function i(e,t){if(!e)return;const r=()=>u(e,t);return Object.defineProperty(e,"toISOString",{enumerable:!1,configurable:!1,value:r}),Object.defineProperty(e,"toString",{enumerable:!1,configurable:!1,value:r}),e}function s(e){return e&&"[object Date]"===Object.prototype.toString.call(e)&&!isNaN(e)}function c(e){return e<10?"0"+e:e.toString()}function u(e,t="yyyy/MM/dd"){const r=e.getDate(),o=e.getMonth(),a=e.getFullYear(),i=e.getHours(),s=e.getMinutes(),u=e.getSeconds(),l=e.getMilliseconds(),f=i%12,d=c(f),p=c(i),y=c(s),h=c(u),g=i<12?"AM":"PM",E=n.DAYS_OF_WEEK_NAMES[e.getDay()],v=E.substr(0,3),O=c(r),_=o+1,b=c(_),m=n.MONTH_NAMES[o],M=m.substr(0,3),w=a+"",R=w.substr(2,2);return(t=t.replace("hh",d).replace("h",f.toString()).replace("HH",p).replace("H",i.toString()).replace("mm",y).replace("m",s.toString()).replace("ss",h).replace("s",u.toString()).replace("S",l.toString()).replace("dd",O).replace("d",r.toString()).replace("EEEE",E).replace("EEE",v).replace("yyyy",w).replace("yy",R).replace("aaa",g)).indexOf("MMM")>-1?t.replace("MMMM",m).replace("MMM",M):t.replace("MM",b).replace("M",_.toString())}},1073:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.prop=a,t.propMetadata=function(e,t){return(0,n.apply)(a(),(0,n.metadata)(e,t))};const n=r(5317),o=r(5450);function a(){return(e,t)=>{let r;r=Object.prototype.hasOwnProperty.call(e,o.ModelKeys.ATTRIBUTE)?e[o.ModelKeys.ATTRIBUTE]:e[o.ModelKeys.ATTRIBUTE]=[],r.includes(t)||r.push(t)}}},793:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Hashing=t.DefaultHashingMethod=void 0,t.hashCode=o,t.hashSerialization=function(e){return o(n.Serialization.serialize(e))},t.hashObj=a;const n=r(4817);function o(e){e=String(e);let t=0;for(let r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r),t|=0;return t.toString()}function a(e){const t=function(e,t){const r=n(t);return"string"==typeof r?n((e||"")+n(t)):0|(e=((e=e||0)<<5)-e+r)},r=o,n=function(e){return 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)},a=Object.values(e).reduce(t,0);return("number"==typeof a?Math.abs(a):a).toString()}t.DefaultHashingMethod="default";class i{static{this.current=t.DefaultHashingMethod}static{this.cache={default:a}}constructor(){}static get(e){if(e in this.cache)return this.cache[e];throw new Error(`No hashing method registered under ${e}`)}static register(e,t,r=!1){if(e in this.cache)throw new 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)}}t.Hashing=i},9389:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(5450),t),o(r(6422),t),o(r(1073),t),o(r(793),t),o(r(3406),t),o(r(4817),t),o(r(6775),t)},3406:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},4817:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Serialization=t.DefaultSerializationMethod=t.JSONSerializer=void 0;const n=r(1094),o=r(5450);class a{preSerialize(e){const t=Object.assign({},e),r=n.Model.getMetadata(e);return t[o.ModelKeys.ANCHOR]=r||e.constructor.name,t}deserialize(e){const t=JSON.parse(e),r=t[o.ModelKeys.ANCHOR];if(!r)throw new Error("Could not find class reference in serialized model");return n.Model.build(t,r)}serialize(e){return JSON.stringify(this.preSerialize(e))}}t.JSONSerializer=a,t.DefaultSerializationMethod="json";class i{static{this.current=t.DefaultSerializationMethod}static{this.cache={json:new a}}constructor(){}static get(e){if(e in this.cache)return this.cache[e];throw new Error(`No serialization method registered under ${e}`)}static register(e,t,r=!1){if(e in this.cache)throw new 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)}}t.Serialization=i},6775:(e,t)=>{function r(e,...t){return e.replace(/{(\d+)}/g,(function(e,r){return void 0!==t[r]?t[r].toString():"undefined"}))}Object.defineProperty(t,"__esModule",{value:!0}),t.sf=void 0,t.stringFormat=r,t.sf=r},3930:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Validation=void 0;const n=r(8732),o=r(3552);class a{static{this.actingValidatorRegistry=void 0}constructor(){}static setRegistry(e,t){t&&a.actingValidatorRegistry&&a.actingValidatorRegistry.getKeys().forEach((r=>{const n=e.get(r);n&&e.register(t(n))})),a.actingValidatorRegistry=e}static getRegistry(){return a.actingValidatorRegistry||(a.actingValidatorRegistry=new n.ValidatorRegistry),a.actingValidatorRegistry}static get(e){return a.getRegistry().get(e)}static register(...e){return a.getRegistry().register(...e)}static key(e){return o.ValidationKeys.REFLECT+e}}t.Validation=a},5917:function(e,t,r){var n=this&&this.__decorate||function(e,t,r,n){var o,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.DateValidator=void 0;const a=r(9089),i=r(3552),s=r(1995);let c=class extends a.Validator{constructor(e=i.DEFAULT_ERROR_MESSAGES.DATE){super(e,Number.name,Date.name,String.name)}hasErrors(e,t,r){if(void 0!==e)return"string"==typeof e&&(e=new Date(e)),isNaN(e.getDate())?this.getMessage(r||this.message):void 0}};t.DateValidator=c,t.DateValidator=c=n([(0,s.validator)(i.ValidationKeys.DATE),o("design:paramtypes",[String])],c)},2347:function(e,t,r){var n=this&&this.__decorate||function(e,t,r,n){var o,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.EmailValidator=void 0;const a=r(3552),i=r(4001),s=r(1995);let c=class extends i.PatternValidator{constructor(e=a.DEFAULT_ERROR_MESSAGES.EMAIL){super(e)}hasErrors(e,t,r){return super.hasErrors(e,t||a.DEFAULT_PATTERNS.EMAIL,r)}};t.EmailValidator=c,t.EmailValidator=c=n([(0,s.validator)(a.ValidationKeys.EMAIL),o("design:paramtypes",[String])],c)},3209:function(e,t,r){var n=this&&this.__decorate||function(e,t,r,n){var o,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.ListValidator=void 0;const a=r(9089),i=r(3552),s=r(1995);let c=class extends a.Validator{constructor(e=i.DEFAULT_ERROR_MESSAGES.LIST){super(e,Array.name,Set.name)}hasErrors(e,t,r){if(!e||(Array.isArray(e)?!e.length:!e.size))return;t=Array.isArray(t)?t:[t];let n,o=!0;for(let r=0;r<(Array.isArray(e)?e.length:e.size);r++)switch(n=e[r],typeof n){case"object":case"function":o=t.includes(n.constructor?.name);break;default:o=t.some((e=>typeof n===e.toLowerCase()))}return o?void 0:this.getMessage(r||this.message,t)}};t.ListValidator=c,t.ListValidator=c=n([(0,s.validator)(i.ValidationKeys.LIST),o("design:paramtypes",[String])],c)},4937:function(e,t,r){var n=this&&this.__decorate||function(e,t,r,n){var o,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.MaxLengthValidator=void 0;const a=r(9089),i=r(3552),s=r(1995);let c=class extends a.Validator{constructor(e=i.DEFAULT_ERROR_MESSAGES.MAX_LENGTH){super(e,String.name,Array.name)}hasErrors(e,t,r){if(void 0!==e)return e.length>t?this.getMessage(r||this.message,t):void 0}};t.MaxLengthValidator=c,t.MaxLengthValidator=c=n([(0,s.validator)(i.ValidationKeys.MAX_LENGTH),o("design:paramtypes",[String])],c)},5817:function(e,t,r){var n=this&&this.__decorate||function(e,t,r,n){var o,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.MaxValidator=void 0;const a=r(9089),i=r(3552),s=r(1995);let c=class extends a.Validator{constructor(e=i.DEFAULT_ERROR_MESSAGES.MAX){super(e,"number","Date","string")}hasErrors(e,t,r){if(void 0!==e){if(e instanceof Date&&!(t instanceof Date)&&(t=new Date(t),isNaN(t.getDate())))throw new Error("Invalid Max param defined");return e>t?this.getMessage(r||this.message,t):void 0}}};t.MaxValidator=c,t.MaxValidator=c=n([(0,s.validator)(i.ValidationKeys.MAX),o("design:paramtypes",[String])],c)},1567:function(e,t,r){var n=this&&this.__decorate||function(e,t,r,n){var o,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.MinLengthValidator=void 0;const a=r(9089),i=r(3552),s=r(1995);let c=class extends a.Validator{constructor(e=i.DEFAULT_ERROR_MESSAGES.MIN_LENGTH){super(e,String.name,Array.name)}hasErrors(e,t,r){if(void 0!==e)return e.length<t?this.getMessage(r||this.message,t):void 0}};t.MinLengthValidator=c,t.MinLengthValidator=c=n([(0,s.validator)(i.ValidationKeys.MIN_LENGTH),o("design:paramtypes",[String])],c)},7351:function(e,t,r){var n=this&&this.__decorate||function(e,t,r,n){var o,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.MinValidator=void 0;const a=r(9089),i=r(3552),s=r(1995);let c=class extends a.Validator{constructor(e=i.DEFAULT_ERROR_MESSAGES.MIN){super(e,"number","Date","string")}hasErrors(e,t,r){if(void 0!==e){if(e instanceof Date&&!(t instanceof Date)&&(t=new Date(t),isNaN(t.getDate())))throw new Error("Invalid Min param defined");return e<t?this.getMessage(r||this.message,t):void 0}}};t.MinValidator=c,t.MinValidator=c=n([(0,s.validator)(i.ValidationKeys.MIN),o("design:paramtypes",[String])],c)},100:function(e,t,r){var n=this&&this.__decorate||function(e,t,r,n){var o,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.PasswordValidator=void 0;const a=r(4001),i=r(3552),s=r(1995);let c=class extends a.PatternValidator{constructor(e=i.DEFAULT_ERROR_MESSAGES.PASSWORD){super(e)}hasErrors(e,t,r){return super.hasErrors(e,t||i.DEFAULT_ERROR_MESSAGES.PASSWORD,r||this.message)}};t.PasswordValidator=c,t.PasswordValidator=c=n([(0,s.validator)(i.ValidationKeys.PASSWORD),o("design:paramtypes",[Object])],c)},4001:function(e,t,r){var n=this&&this.__decorate||function(e,t,r,n){var o,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.PatternValidator=t.regexpParser=void 0;const a=r(9089),i=r(3552),s=r(1995);t.regexpParser=new RegExp("^/(.+)/([gimus]*)$");let c=class extends a.Validator{constructor(e=i.DEFAULT_ERROR_MESSAGES.PATTERN){super(e,"string")}getPattern(e){if(!t.regexpParser.test(e))return new RegExp(e);const r=e.match(t.regexpParser);return new RegExp(r[1],r[2])}hasErrors(e,t,r){if(e){if(!t)throw new Error("Missing Pattern");return(t="string"==typeof t?this.getPattern(t):t).lastIndex=0,t.test(e)?void 0:this.getMessage(r||this.message)}}};t.PatternValidator=c,t.PatternValidator=c=n([(0,s.validator)(i.ValidationKeys.PATTERN),o("design:paramtypes",[String])],c)},2344:function(e,t,r){var n=this&&this.__decorate||function(e,t,r,n){var o,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.RequiredValidator=void 0;const a=r(9089),i=r(3552),s=r(1995);let c=class extends a.Validator{constructor(e=i.DEFAULT_ERROR_MESSAGES.REQUIRED){super(e)}hasErrors(e,t){switch(typeof e){case"boolean":case"number":return void 0===e?this.getMessage(t||this.message):void 0;default:return e?void 0:this.getMessage(t||this.message)}}};t.RequiredValidator=c,t.RequiredValidator=c=n([(0,s.validator)(i.ValidationKeys.REQUIRED),o("design:paramtypes",[String])],c)},7195:function(e,t,r){var n=this&&this.__decorate||function(e,t,r,n){var o,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.StepValidator=void 0;const a=r(9089),i=r(3552),s=r(1995);let c=class extends a.Validator{constructor(e=i.DEFAULT_ERROR_MESSAGES.STEP){super(e,"number","string")}hasErrors(e,t,r){if(void 0!==e)return Number(e)%Number(t)!=0?this.getMessage(r||this.message,t):void 0}};t.StepValidator=c,t.StepValidator=c=n([(0,s.validator)(i.ValidationKeys.STEP),o("design:paramtypes",[String])],c)},137:function(e,t,r){var n=this&&this.__decorate||function(e,t,r,n){var o,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.TypeValidator=void 0;const a=r(9089),i=r(3552),s=r(1995),c=r(3930),u=r(5317),l=r(5450);let f=class extends a.Validator{constructor(e=i.DEFAULT_ERROR_MESSAGES.TYPE){super(e)}hasErrors(e,t,r){if(void 0!==e)return(0,u.evaluateDesignTypes)(e,t)?void 0:this.getMessage(r||this.message,"string"==typeof t?t:Array.isArray(t)?t.join(", "):t.name,typeof e)}};t.TypeValidator=f,t.TypeValidator=f=n([(0,s.validator)(i.ValidationKeys.TYPE),o("design:paramtypes",[String])],f),c.Validation.register({validator:f,validationKey:l.ModelKeys.TYPE,save:!1})},3690:function(e,t,r){var n=this&&this.__decorate||function(e,t,r,n){var o,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.URLValidator=void 0;const a=r(3552),i=r(4001),s=r(1995);let c=class extends i.PatternValidator{constructor(e=a.DEFAULT_ERROR_MESSAGES.URL){super(e)}hasErrors(e,t,r){return super.hasErrors(e,t||a.DEFAULT_PATTERNS.URL,r)}};t.URLValidator=c,t.URLValidator=c=n([(0,s.validator)(a.ValidationKeys.URL),o("design:paramtypes",[String])],c)},9089:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Validator=void 0;const n=r(3552),o=r(6775),a=r(5317);t.Validator=class{constructor(e=n.DEFAULT_ERROR_MESSAGES.DEFAULT,...t){this.message=e,t.length&&(this.acceptedTypes=t),this.acceptedTypes&&(this.hasErrors=this.checkTypeAndHasErrors(this.hasErrors.bind(this)))}getMessage(e,...t){return(0,o.sf)(e,...t)}checkTypeAndHasErrors(e){return function(t,...r){return void 0!==t&&this.acceptedTypes?(0,a.checkTypes)(t,this.acceptedTypes)?e(t,...r):this.getMessage(n.DEFAULT_ERROR_MESSAGES.TYPE,this.acceptedTypes.join(", "),typeof t):e(t,...r)}.bind(this)}}},8732:(e,t)=>{function r(e){return e.constructor&&e.hasErrors}Object.defineProperty(t,"__esModule",{value:!0}),t.ValidatorRegistry=void 0,t.isValidator=r,t.ValidatorRegistry=class{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(r(t))return t;const n=new(t.default||t);return this.cache[e]=n,n}register(...e){e.forEach((e=>{if(r(e)){if(e.validationKey in this.cache)return;this.cache[e.validationKey]=e}else{const{validationKey:t,validator:r,save:n}=e;if(t in this.cache)return;if(this.cache[t]=r,!n)return;const o={};o[t.toUpperCase()]=t,this.customKeyCache=Object.assign({},this.customKeyCache,o)}}))}}},3552:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_PATTERNS=t.DEFAULT_ERROR_MESSAGES=t.DAYS_OF_WEEK_NAMES=t.MONTH_NAMES=t.ValidationKeys=void 0;const n=r(5450);t.ValidationKeys={REFLECT:`${n.ModelKeys.REFLECT}validation.`,VALIDATOR:"validator",REQUIRED:"required",MIN:"min",MAX:"max",STEP:"step",MIN_LENGTH:"minlength",MAX_LENGTH:"maxlength",PATTERN:"pattern",EMAIL:"email",URL:"url",DATE:"date",TYPE:"type",PASSWORD:"password",LIST:"list"},t.MONTH_NAMES=["January","February","March","April","May","June","July","August","September","October","November","December"],t.DAYS_OF_WEEK_NAMES=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],t.DEFAULT_ERROR_MESSAGES={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}"},t.DEFAULT_PATTERNS={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}}},1995:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validator=function(...e){return(0,a.apply)((t=>(e.forEach((e=>{n.Validation.register({validator:t,validationKey:e,save:!0})})),t)),(0,a.metadata)(n.Validation.key(o.ValidationKeys.VALIDATOR),e))};const n=r(3930),o=r(3552),a=r(5317)},9751:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.Validators=void 0;const a=r(5917),i=r(137),s=r(100),c=r(7195),u=r(3690),l=r(4001),f=r(7351),d=r(1567),p=r(5817),y=r(4937),h=r(2344),g=r(2347),E=r(3209);o(r(3552),t),o(r(5917),t),o(r(1995),t),o(r(2347),t),o(r(3209),t),o(r(4937),t),o(r(5817),t),o(r(1567),t),o(r(7351),t),o(r(100),t),o(r(4001),t),o(r(2344),t),o(r(7195),t),o(r(6148),t),o(r(137),t),o(r(3690),t),o(r(9089),t),o(r(8732),t),t.Validators={DateValidator:a.DateValidator,EmailValidator:g.EmailValidator,ListValidator:E.ListValidator,MaxLengthValidator:y.MaxLengthValidator,MaxValidator:p.MaxValidator,MinLengthValidator:d.MinLengthValidator,MinValidator:f.MinValidator,PasswordValidator:s.PasswordValidator,PatternValidator:l.PatternValidator,RequiredValidator:h.RequiredValidator,StepValidator:c.StepValidator,TypeValidator:i.TypeValidator,URLValidator:u.URLValidator}},6148:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},1513:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.required=function(e=n.DEFAULT_ERROR_MESSAGES.REQUIRED){return(0,i.propMetadata)(s.Validation.key(n.ValidationKeys.REQUIRED),{message:e})},t.min=function(e,t=n.DEFAULT_ERROR_MESSAGES.MIN){return(0,i.propMetadata)(s.Validation.key(n.ValidationKeys.MIN),{value:e,message:t,types:[Number.name,Date.name]})},t.max=function(e,t=n.DEFAULT_ERROR_MESSAGES.MAX){return(0,i.propMetadata)(s.Validation.key(n.ValidationKeys.MAX),{value:e,message:t,types:[Number.name,Date.name]})},t.step=function(e,t=n.DEFAULT_ERROR_MESSAGES.STEP){return(0,i.propMetadata)(s.Validation.key(n.ValidationKeys.STEP),{value:e,message:t,types:[Number.name]})},t.minlength=function(e,t=n.DEFAULT_ERROR_MESSAGES.MIN_LENGTH){return(0,i.propMetadata)(s.Validation.key(n.ValidationKeys.MIN_LENGTH),{value:e,message:t,types:[String.name,Array.name,Set.name]})},t.maxlength=function(e,t=n.DEFAULT_ERROR_MESSAGES.MAX_LENGTH){return(0,i.propMetadata)(s.Validation.key(n.ValidationKeys.MAX_LENGTH),{value:e,message:t,types:[String.name,Array.name,Set.name]})},t.pattern=function(e,t=n.DEFAULT_ERROR_MESSAGES.PATTERN){return(0,i.propMetadata)(s.Validation.key(n.ValidationKeys.PATTERN),{value:"string"==typeof e?e:e.toString(),message:t,types:[String.name]})},t.email=function(e=n.DEFAULT_ERROR_MESSAGES.EMAIL){return(0,i.propMetadata)(s.Validation.key(n.ValidationKeys.EMAIL),{pattern:n.DEFAULT_PATTERNS.EMAIL,message:e,types:[String.name]})},t.url=function(e=n.DEFAULT_ERROR_MESSAGES.URL){return(0,i.propMetadata)(s.Validation.key(n.ValidationKeys.URL),{pattern:n.DEFAULT_PATTERNS.URL,message:e,types:[String.name]})},t.type=function(e,t=n.DEFAULT_ERROR_MESSAGES.TYPE){return(0,i.propMetadata)(s.Validation.key(n.ValidationKeys.TYPE),{customTypes:e,message:t})},t.date=function(e="dd/MM/yyyy",t=n.DEFAULT_ERROR_MESSAGES.DATE){return(r,c)=>{(0,i.propMetadata)(s.Validation.key(n.ValidationKeys.DATE),{format:e,message:t,types:[Date.name]})(r,c);const u=new WeakMap;Object.defineProperty(r,c,{configurable:!1,set(t){const r=Object.getOwnPropertyDescriptor(this,c);r&&!r.configurable||Object.defineProperty(this,c,{enumerable:!0,configurable:!1,get:()=>u.get(this),set:t=>{let r;try{r=(0,a.parseDate)(e,t),u.set(this,r)}catch(e){console.error((0,o.sf)("Failed to parse date: {0}",e.message||e))}}}),this[c]=t},get(){console.log("here")}})}},t.password=function(e=n.DEFAULT_PATTERNS.PASSWORD.CHAR8_ONE_OF_EACH,t=n.DEFAULT_ERROR_MESSAGES.PASSWORD){return(0,i.propMetadata)(s.Validation.key(n.ValidationKeys.PASSWORD),{pattern:e,message:t,types:[String.name]})},t.list=c,t.set=function(e,t=n.DEFAULT_ERROR_MESSAGES.LIST){return c(e,"Set",t)},r(2366);const n=r(3552),o=r(6775),a=r(6422),i=r(1073),s=r(3930);function c(e,t="Array",r=n.DEFAULT_ERROR_MESSAGES.LIST){return(0,i.propMetadata)(s.Validation.key(n.ValidationKeys.LIST),{class:Array.isArray(e)?e.map((e=>e.name)):[e.name],type:t,message:r})}},1365:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(9751),t),o(r(1513),t),o(r(3042),t),o(r(3930),t)},3042:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},2366:(e,t,r)=>{var n;!function(e){!function(t){var n="object"==typeof globalThis?globalThis:"object"==typeof r.g?r.g:"object"==typeof self?self:"object"==typeof this?this:function(){try{return Function("return this;")()}catch(e){}}()||function(){try{return(0,eval)("(function() { return this; })()")}catch(e){}}(),o=a(e);function a(e,t){return function(r,n){Object.defineProperty(e,r,{configurable:!0,writable:!0,value:n}),t&&t(r,n)}}void 0!==n.Reflect&&(o=a(n.Reflect,o)),function(e,t){var r=Object.prototype.hasOwnProperty,n="function"==typeof Symbol,o=n&&void 0!==Symbol.toPrimitive?Symbol.toPrimitive:"@@toPrimitive",a=n&&void 0!==Symbol.iterator?Symbol.iterator:"@@iterator",i="function"==typeof Object.create,s={__proto__:[]}instanceof Array,c=!i&&!s,u={create:i?function(){return B(Object.create(null))}:s?function(){return B({__proto__:null})}:function(){return B({})},has:c?function(e,t){return r.call(e,t)}:function(e,t){return t in e},get:c?function(e,t){return r.call(e,t)?e[t]:void 0}:function(e,t){return e[t]}},l=Object.getPrototypeOf(Function),f="function"==typeof Map&&"function"==typeof Map.prototype.entries?Map:function(){var e={},t=[],r=function(){function e(e,t,r){this._index=0,this._keys=e,this._values=t,this._selector=r}return e.prototype["@@iterator"]=function(){return this},e.prototype[a]=function(){return this},e.prototype.next=function(){var e=this._index;if(e>=0&&e<this._keys.length){var r=this._selector(this._keys[e],this._values[e]);return e+1>=this._keys.length?(this._index=-1,this._keys=t,this._values=t):this._index++,{value:r,done:!1}}return{value:void 0,done:!0}},e.prototype.throw=function(e){throw this._index>=0&&(this._index=-1,this._keys=t,this._values=t),e},e.prototype.return=function(e){return this._index>=0&&(this._index=-1,this._keys=t,this._values=t),{value:e,done:!0}},e}();return function(){function t(){this._keys=[],this._values=[],this._cacheKey=e,this._cacheIndex=-2}return Object.defineProperty(t.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),t.prototype.has=function(e){return this._find(e,!1)>=0},t.prototype.get=function(e){var t=this._find(e,!1);return t>=0?this._values[t]:void 0},t.prototype.set=function(e,t){var r=this._find(e,!0);return this._values[r]=t,this},t.prototype.delete=function(t){var r=this._find(t,!1);if(r>=0){for(var n=this._keys.length,o=r+1;o<n;o++)this._keys[o-1]=this._keys[o],this._values[o-1]=this._values[o];return this._keys.length--,this._values.length--,K(t,this._cacheKey)&&(this._cacheKey=e,this._cacheIndex=-2),!0}return!1},t.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=e,this._cacheIndex=-2},t.prototype.keys=function(){return new r(this._keys,this._values,n)},t.prototype.values=function(){return new r(this._keys,this._values,o)},t.prototype.entries=function(){return new r(this._keys,this._values,i)},t.prototype["@@iterator"]=function(){return this.entries()},t.prototype[a]=function(){return this.entries()},t.prototype._find=function(e,t){if(!K(this._cacheKey,e)){this._cacheIndex=-1;for(var r=0;r<this._keys.length;r++)if(K(this._keys[r],e)){this._cacheIndex=r;break}}return this._cacheIndex<0&&t&&(this._cacheIndex=this._keys.length,this._keys.push(e),this._values.push(void 0)),this._cacheIndex},t}();function n(e,t){return e}function o(e,t){return t}function i(e,t){return[e,t]}}(),d="function"==typeof Set&&"function"==typeof Set.prototype.entries?Set:function(){function e(){this._map=new f}return Object.defineProperty(e.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),e.prototype.has=function(e){return this._map.has(e)},e.prototype.add=function(e){return this._map.set(e,e),this},e.prototype.delete=function(e){return this._map.delete(e)},e.prototype.clear=function(){this._map.clear()},e.prototype.keys=function(){return this._map.keys()},e.prototype.values=function(){return this._map.keys()},e.prototype.entries=function(){return this._map.entries()},e.prototype["@@iterator"]=function(){return this.keys()},e.prototype[a]=function(){return this.keys()},e}(),p="function"==typeof WeakMap?WeakMap:function(){var e=16,t=u.create(),n=o();return function(){function e(){this._key=o()}return e.prototype.has=function(e){var t=a(e,!1);return void 0!==t&&u.has(t,this._key)},e.prototype.get=function(e){var t=a(e,!1);return void 0!==t?u.get(t,this._key):void 0},e.prototype.set=function(e,t){return a(e,!0)[this._key]=t,this},e.prototype.delete=function(e){var t=a(e,!1);return void 0!==t&&delete t[this._key]},e.prototype.clear=function(){this._key=o()},e}();function o(){var e;do{e="@@WeakMap@@"+s()}while(u.has(t,e));return t[e]=!0,e}function a(e,t){if(!r.call(e,n)){if(!t)return;Object.defineProperty(e,n,{value:u.create()})}return e[n]}function i(e,t){for(var r=0;r<t;++r)e[r]=255*Math.random()|0;return e}function s(){var t=function(e){if("function"==typeof Uint8Array){var t=new Uint8Array(e);return"undefined"!=typeof crypto?crypto.getRandomValues(t):"undefined"!=typeof msCrypto?msCrypto.getRandomValues(t):i(t,e),t}return i(new Array(e),e)}(e);t[6]=79&t[6]|64,t[8]=191&t[8]|128;for(var r="",n=0;n<e;++n){var o=t[n];4!==n&&6!==n&&8!==n||(r+="-"),o<16&&(r+="0"),r+=o.toString(16).toLowerCase()}return r}}(),y=n?Symbol.for("@reflect-metadata:registry"):void 0,h=function(){var e;return!R(y)&&A(t.Reflect)&&Object.isExtensible(t.Reflect)&&(e=t.Reflect[y]),R(e)&&(e=function(){var e,r,n,o;R(y)||void 0===t.Reflect||y in t.Reflect||"function"!=typeof t.Reflect.defineMetadata||(e=function(e){var t=e.defineMetadata,r=e.hasOwnMetadata,n=e.getOwnMetadata,o=e.getOwnMetadataKeys,a=e.deleteMetadata,i=new p;return{isProviderFor:function(e,t){var r=i.get(e);return!(R(r)||!r.has(t))||!!o(e,t).length&&(R(r)&&(r=new d,i.set(e,r)),r.add(t),!0)},OrdinaryDefineOwnMetadata:t,OrdinaryHasOwnMetadata:r,OrdinaryGetOwnMetadata:n,OrdinaryOwnMetadataKeys:o,OrdinaryDeleteMetadata:a}}(t.Reflect));var a=new p,i={registerProvider:s,getProvider:u,setProvider:h};return i;function s(t){if(!Object.isExtensible(i))throw new Error("Cannot add provider to a frozen registry.");switch(!0){case e===t:break;case R(r):r=t;break;case r===t:break;case R(n):n=t;break;case n===t:break;default:void 0===o&&(o=new d),o.add(t)}}function c(t,a){if(!R(r)){if(r.isProviderFor(t,a))return r;if(!R(n)){if(n.isProviderFor(t,a))return r;if(!R(o))for(var i=I(o);;){var s=N(i);if(!s)return;var c=x(s);if(c.isProviderFor(t,a))return F(i),c}}}if(!R(e)&&e.isProviderFor(t,a))return e}function u(e,t){var r,n=a.get(e);return R(n)||(r=n.get(t)),R(r)?(R(r=c(e,t))||(R(n)&&(n=new f,a.set(e,n)),n.set(t,r)),r):r}function l(e){if(R(e))throw new TypeError;return r===e||n===e||!R(o)&&o.has(e)}function h(e,t,r){if(!l(r))throw new Error("Metadata provider not registered.");var n=u(e,t);if(n!==r){if(!R(n))return!1;var o=a.get(e);R(o)&&(o=new f,a.set(e,o)),o.set(t,r)}return!0}}()),!R(y)&&A(t.Reflect)&&Object.isExtensible(t.Reflect)&&Object.defineProperty(t.Reflect,y,{enumerable:!1,configurable:!1,writable:!1,value:e}),e}(),g=function(e){var t=new p,r={isProviderFor:function(e,r){var n=t.get(e);return!R(n)&&n.has(r)},OrdinaryDefineOwnMetadata:function(e,t,r,o){n(r,o,!0).set(e,t)},OrdinaryHasOwnMetadata:function(e,t,r){var o=n(t,r,!1);return!R(o)&&S(o.has(e))},OrdinaryGetOwnMetadata:function(e,t,r){var o=n(t,r,!1);if(!R(o))return o.get(e)},OrdinaryOwnMetadataKeys:function(e,t){var r=[],o=n(e,t,!1);if(R(o))return r;for(var a=I(o.keys()),i=0;;){var s=N(a);if(!s)return r.length=i,r;var c=x(s);try{r[i]=c}catch(e){try{F(a)}finally{throw e}}i++}},OrdinaryDeleteMetadata:function(e,r,o){var a=n(r,o,!1);if(R(a))return!1;if(!a.delete(e))return!1;if(0===a.size){var i=t.get(r);R(i)||(i.delete(o),0===i.size&&t.delete(i))}return!0}};return h.registerProvider(r),r;function n(n,o,a){var i=t.get(n),s=!1;if(R(i)){if(!a)return;i=new f,t.set(n,i),s=!0}var c=i.get(o);if(R(c)){if(!a)return;if(c=new f,i.set(o,c),!e.setProvider(n,o,r))throw i.delete(o),s&&t.delete(n),new Error("Wrong provider for target.")}return c}}(h);function E(e,t,r){if(v(e,t,r))return!0;var n=U(t);return!P(n)&&E(e,n,r)}function v(e,t,r){var n=C(t,r,!1);return!R(n)&&S(n.OrdinaryHasOwnMetadata(e,t,r))}function O(e,t,r){if(v(e,t,r))return _(e,t,r);var n=U(t);return P(n)?void 0:O(e,n,r)}function _(e,t,r){var n=C(t,r,!1);if(!R(n))return n.OrdinaryGetOwnMetadata(e,t,r)}function b(e,t,r,n){C(r,n,!0).OrdinaryDefineOwnMetadata(e,t,r,n)}function m(e,t){var r=M(e,t),n=U(e);if(null===n)return r;var o=m(n,t);if(o.length<=0)return r;if(r.length<=0)return o;for(var a=new d,i=[],s=0,c=r;s<c.length;s++){var u=c[s];a.has(u)||(a.add(u),i.push(u))}for(var l=0,f=o;l<f.length;l++)u=f[l],a.has(u)||(a.add(u),i.push(u));return i}function M(e,t){var r=C(e,t,!1);return r?r.OrdinaryOwnMetadataKeys(e,t):[]}function w(e){if(null===e)return 1;switch(typeof e){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return null===e?1:6;default:return 6}}function R(e){return void 0===e}function P(e){return null===e}function A(e){return"object"==typeof e?null!==e:"function"==typeof e}function T(e,t){switch(w(e)){case 0:case 1:case 2:case 3:case 4:case 5:return e}var r=3===t?"string":5===t?"number":"default",n=k(e,o);if(void 0!==n){var a=n.call(e,r);if(A(a))throw new TypeError;return a}return function(e,t){if("string"===t){var r=e.toString;if(L(r)&&!A(o=r.call(e)))return o;if(L(n=e.valueOf)&&!A(o=n.call(e)))return o}else{var n;if(L(n=e.valueOf)&&!A(o=n.call(e)))return o;var o,a=e.toString;if(L(a)&&!A(o=a.call(e)))return o}throw new TypeError}(e,"default"===r?"number":r)}function S(e){return!!e}function j(e){var t=T(e,3);return"symbol"==typeof t?t:function(e){return""+e}(t)}function D(e){return Array.isArray?Array.isArray(e):e instanceof Object?e instanceof Array:"[object Array]"===Object.prototype.toString.call(e)}function L(e){return"function"==typeof e}function V(e){return"function"==typeof e}function K(e,t){return e===t||e!=e&&t!=t}function k(e,t){var r=e[t];if(null!=r){if(!L(r))throw new TypeError;return r}}function I(e){var t=k(e,a);if(!L(t))throw new TypeError;var r=t.call(e);if(!A(r))throw new TypeError;return r}function x(e){return e.value}function N(e){var t=e.next();return!t.done&&t}function F(e){var t=e.return;t&&t.call(e)}function U(e){var t=Object.getPrototypeOf(e);if("function"!=typeof e||e===l)return t;if(t!==l)return t;var r=e.prototype,n=r&&Object.getPrototypeOf(r);if(null==n||n===Object.prototype)return t;var o=n.constructor;return"function"!=typeof o||o===e?t:o}function C(e,t,r){var n=h.getProvider(e,t);if(!R(n))return n;if(r){if(h.setProvider(e,t,g))return g;throw new Error("Illegal state.")}}function B(e){return e.__=void 0,delete e.__,e}e("decorate",(function(e,t,r,n){if(R(r)){if(!D(e))throw new TypeError;if(!V(t))throw new TypeError;return function(e,t){for(var r=e.length-1;r>=0;--r){var n=(0,e[r])(t);if(!R(n)&&!P(n)){if(!V(n))throw new TypeError;t=n}}return t}(e,t)}if(!D(e))throw new TypeError;if(!A(t))throw new TypeError;if(!A(n)&&!R(n)&&!P(n))throw new TypeError;return P(n)&&(n=void 0),function(e,t,r,n){for(var o=e.length-1;o>=0;--o){var a=(0,e[o])(t,r,n);if(!R(a)&&!P(a)){if(!A(a))throw new TypeError;n=a}}return n}(e,t,r=j(r),n)})),e("metadata",(function(e,t){return function(r,n){if(!A(r))throw new TypeError;if(!R(n)&&!function(e){switch(w(e)){case 3:case 4:return!0;default:return!1}}(n))throw new TypeError;b(e,t,r,n)}})),e("defineMetadata",(function(e,t,r,n){if(!A(r))throw new TypeError;return R(n)||(n=j(n)),b(e,t,r,n)})),e("hasMetadata",(function(e,t,r){if(!A(t))throw new TypeError;return R(r)||(r=j(r)),E(e,t,r)})),e("hasOwnMetadata",(function(e,t,r){if(!A(t))throw new TypeError;return R(r)||(r=j(r)),v(e,t,r)})),e("getMetadata",(function(e,t,r){if(!A(t))throw new TypeError;return R(r)||(r=j(r)),O(e,t,r)})),e("getOwnMetadata",(function(e,t,r){if(!A(t))throw new TypeError;return R(r)||(r=j(r)),_(e,t,r)})),e("getMetadataKeys",(function(e,t){if(!A(e))throw new TypeError;return R(t)||(t=j(t)),m(e,t)})),e("getOwnMetadataKeys",(function(e,t){if(!A(e))throw new TypeError;return R(t)||(t=j(t)),M(e,t)})),e("deleteMetadata",(function(e,t,r){if(!A(t))throw new TypeError;if(R(r)||(r=j(r)),!A(t))throw new TypeError;R(r)||(r=j(r));var n=C(t,r,!1);return!R(n)&&n.OrdinaryDeleteMetadata(e,t,r)}))}(o,n),void 0===n.Reflect&&(n.Reflect=e)}()}(n||(n={}))},7282:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ReflectionKeys=void 0,function(e){e.TYPE="design:type"}(r||(t.ReflectionKeys=r={}))},2681:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.metadata=function(e,t){return(r,n,o)=>{o?Reflect.defineMetadata(e,t,o.value):n?Reflect.defineMetadata(e,t,r,n):Reflect.defineMetadata(e,t,r)}},t.apply=function(...e){return(t,r,n)=>{for(const o of e)t instanceof Function&&!n?o(t):o(t,r,n)}},r(6896)},47:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isEqual=function e(t,r,...n){if(t===r)return!0;if(t instanceof Date&&r instanceof Date)return t.getTime()===r.getTime();if(!t||!r||"object"!=typeof t&&"object"!=typeof r)return t===r;if(null==t||null==r)return!1;if(typeof t!=typeof r)return!1;if(t.prototype!==r.prototype)return!1;const o=Object.keys(t).filter((e=>-1===n.indexOf(e)));return o.length===Object.keys(r).filter((e=>-1===n.indexOf(e))).length&&o.every((o=>-1!==n.indexOf(o)||e(t[o],r[o],...n)))}},5317:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.VERSION=void 0,o(r(7282),t),o(r(2681),t),o(r(47),t),o(r(4114),t),o(r(5134),t),t.VERSION="0.3.1"},4114:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},5134:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getPropertyDecorators=a,t.getTypeFromDecorator=function(e,t){const r=a(n.ReflectionKeys.TYPE,e,t,!1);if(!r||!r.decorators)return;const o=r.decorators.shift(),i=o.props?o.props.name:void 0;return"Function"!==i?i:void 0},t.getAllPropertyDecorators=function(e,...t){if(t&&t.length)return Object.getOwnPropertyNames(e).reduce(((r,n)=>(t.forEach(((t,o)=>{const i=a(t,e,n,0!==o);r||(r={}),function(e,t,r){r&&r.length&&(e[t]||(e[t]=[]),e[t].push(...r))}(r,n,i.decorators)})),r)),void 0)},t.getAllProperties=function(e,t=!0,r="Object"){const n=[];let o=e;const a=function(){if(!t)return;const e=Object.getPrototypeOf(o);return e&&e.constructor.name!==r?(o=e,o):void 0};do{Object.getOwnPropertyNames(o).forEach((function(e){-1===n.indexOf(e)&&n.push(e)}))}while(a());return n},t.getClassDecorators=function(e,t){return Reflect.getOwnMetadataKeys(t.constructor).filter((t=>t.toString().startsWith(e))).reduce(((r,n)=>{const o={key:n.substring(e.length),props:Reflect.getMetadata(n,t.constructor)};return r.concat(o)}),[])},t.checkType=i,t.checkTypes=s,t.evaluateDesignTypes=function(e,t){switch(typeof t){case"string":return i(e,t);case"object":return!Array.isArray(t)||s(e,t);case"function":return!t.name||"Object"===t.name||i(e,t.name);default:return!0}},r(6896);const n=r(7282),o=r(47);function a(e,t,r,i=!1,s=!0,c){const u=function(e,t,r,o=!1,a){const i=Reflect.getMetadataKeys(t,r).filter((t=>o?t.toString().startsWith(e):t===n.ReflectionKeys.TYPE||t.toString().startsWith(e))).reduce(((o,a)=>{const i={key:a!==n.ReflectionKeys.TYPE?a.substring(e.length):a,props:Reflect.getMetadata(a,t,r)};return o.concat(i)}),a||[]);return{prop:r.toString(),decorators:i}}(e,t,r,i,c);return s&&Object.getPrototypeOf(t)!==Object.prototype?a(e,Object.getPrototypeOf(t.constructor),r,!0,s,u.decorators):{prop:u.prop,decorators:function(e){const r={};return e.filter((e=>e.key in r?((0,o.isEqual)(e.props,r[e.key])||console.log(`Found a similar decorator for the ${e.key} propertyof a ${t.constructor.name} model but with different attributes.The original one will be kept`),!1):(r[e.key.toString()]=e.props,!0)))}(u.decorators)}}function i(e,t){return typeof e===t||e.constructor&&e.constructor.name.toLowerCase()===t.toLowerCase()}function s(e,t){return!t.every((t=>!i(e,t)))}},6896:(e,t,r)=>{var n;!function(e){!function(t){var n="object"==typeof globalThis?globalThis:"object"==typeof r.g?r.g:"object"==typeof self?self:"object"==typeof this?this:function(){try{return Function("return this;")()}catch(e){}}()||function(){try{return(0,eval)("(function() { return this; })()")}catch(e){}}(),o=a(e);function a(e,t){return function(r,n){Object.defineProperty(e,r,{configurable:!0,writable:!0,value:n}),t&&t(r,n)}}void 0!==n.Reflect&&(o=a(n.Reflect,o)),function(e,t){var r=Object.prototype.hasOwnProperty,n="function"==typeof Symbol,o=n&&void 0!==Symbol.toPrimitive?Symbol.toPrimitive:"@@toPrimitive",a=n&&void 0!==Symbol.iterator?Symbol.iterator:"@@iterator",i="function"==typeof Object.create,s={__proto__:[]}instanceof Array,c=!i&&!s,u={create:i?function(){return B(Object.create(null))}:s?function(){return B({__proto__:null})}:function(){return B({})},has:c?function(e,t){return r.call(e,t)}:function(e,t){return t in e},get:c?function(e,t){return r.call(e,t)?e[t]:void 0}:function(e,t){return e[t]}},l=Object.getPrototypeOf(Function),f="function"==typeof Map&&"function"==typeof Map.prototype.entries?Map:function(){var e={},t=[],r=function(){function e(e,t,r){this._index=0,this._keys=e,this._values=t,this._selector=r}return e.prototype["@@iterator"]=function(){return this},e.prototype[a]=function(){return this},e.prototype.next=function(){var e=this._index;if(e>=0&&e<this._keys.length){var r=this._selector(this._keys[e],this._values[e]);return e+1>=this._keys.length?(this._index=-1,this._keys=t,this._values=t):this._index++,{value:r,done:!1}}return{value:void 0,done:!0}},e.prototype.throw=function(e){throw this._index>=0&&(this._index=-1,this._keys=t,this._values=t),e},e.prototype.return=function(e){return this._index>=0&&(this._index=-1,this._keys=t,this._values=t),{value:e,done:!0}},e}();return function(){function t(){this._keys=[],this._values=[],this._cacheKey=e,this._cacheIndex=-2}return Object.defineProperty(t.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),t.prototype.has=function(e){return this._find(e,!1)>=0},t.prototype.get=function(e){var t=this._find(e,!1);return t>=0?this._values[t]:void 0},t.prototype.set=function(e,t){var r=this._find(e,!0);return this._values[r]=t,this},t.prototype.delete=function(t){var r=this._find(t,!1);if(r>=0){for(var n=this._keys.length,o=r+1;o<n;o++)this._keys[o-1]=this._keys[o],this._values[o-1]=this._values[o];return this._keys.length--,this._values.length--,K(t,this._cacheKey)&&(this._cacheKey=e,this._cacheIndex=-2),!0}return!1},t.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=e,this._cacheIndex=-2},t.prototype.keys=function(){return new r(this._keys,this._values,n)},t.prototype.values=function(){return new r(this._keys,this._values,o)},t.prototype.entries=function(){return new r(this._keys,this._values,i)},t.prototype["@@iterator"]=function(){return this.entries()},t.prototype[a]=function(){return this.entries()},t.prototype._find=function(e,t){if(!K(this._cacheKey,e)){this._cacheIndex=-1;for(var r=0;r<this._keys.length;r++)if(K(this._keys[r],e)){this._cacheIndex=r;break}}return this._cacheIndex<0&&t&&(this._cacheIndex=this._keys.length,this._keys.push(e),this._values.push(void 0)),this._cacheIndex},t}();function n(e,t){return e}function o(e,t){return t}function i(e,t){return[e,t]}}(),d="function"==typeof Set&&"function"==typeof Set.prototype.entries?Set:function(){function e(){this._map=new f}return Object.defineProperty(e.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),e.prototype.has=function(e){return this._map.has(e)},e.prototype.add=function(e){return this._map.set(e,e),this},e.prototype.delete=function(e){return this._map.delete(e)},e.prototype.clear=function(){this._map.clear()},e.prototype.keys=function(){return this._map.keys()},e.prototype.values=function(){return this._map.keys()},e.prototype.entries=function(){return this._map.entries()},e.prototype["@@iterator"]=function(){return this.keys()},e.prototype[a]=function(){return this.keys()},e}(),p="function"==typeof WeakMap?WeakMap:function(){var e=16,t=u.create(),n=o();return function(){function e(){this._key=o()}return e.prototype.has=function(e){var t=a(e,!1);return void 0!==t&&u.has(t,this._key)},e.prototype.get=function(e){var t=a(e,!1);return void 0!==t?u.get(t,this._key):void 0},e.prototype.set=function(e,t){return a(e,!0)[this._key]=t,this},e.prototype.delete=function(e){var t=a(e,!1);return void 0!==t&&delete t[this._key]},e.prototype.clear=function(){this._key=o()},e}();function o(){var e;do{e="@@WeakMap@@"+s()}while(u.has(t,e));return t[e]=!0,e}function a(e,t){if(!r.call(e,n)){if(!t)return;Object.defineProperty(e,n,{value:u.create()})}return e[n]}function i(e,t){for(var r=0;r<t;++r)e[r]=255*Math.random()|0;return e}function s(){var t=function(e){if("function"==typeof Uint8Array){var t=new Uint8Array(e);return"undefined"!=typeof crypto?crypto.getRandomValues(t):"undefined"!=typeof msCrypto?msCrypto.getRandomValues(t):i(t,e),t}return i(new Array(e),e)}(e);t[6]=79&t[6]|64,t[8]=191&t[8]|128;for(var r="",n=0;n<e;++n){var o=t[n];4!==n&&6!==n&&8!==n||(r+="-"),o<16&&(r+="0"),r+=o.toString(16).toLowerCase()}return r}}(),y=n?Symbol.for("@reflect-metadata:registry"):void 0,h=function(){var e;return!R(y)&&A(t.Reflect)&&Object.isExtensible(t.Reflect)&&(e=t.Reflect[y]),R(e)&&(e=function(){var e,r,n,o;R(y)||void 0===t.Reflect||y in t.Reflect||"function"!=typeof t.Reflect.defineMetadata||(e=function(e){var t=e.defineMetadata,r=e.hasOwnMetadata,n=e.getOwnMetadata,o=e.getOwnMetadataKeys,a=e.deleteMetadata,i=new p;return{isProviderFor:function(e,t){var r=i.get(e);return!(R(r)||!r.has(t))||!!o(e,t).length&&(R(r)&&(r=new d,i.set(e,r)),r.add(t),!0)},OrdinaryDefineOwnMetadata:t,OrdinaryHasOwnMetadata:r,OrdinaryGetOwnMetadata:n,OrdinaryOwnMetadataKeys:o,OrdinaryDeleteMetadata:a}}(t.Reflect));var a=new p,i={registerProvider:s,getProvider:u,setProvider:h};return i;function s(t){if(!Object.isExtensible(i))throw new Error("Cannot add provider to a frozen registry.");switch(!0){case e===t:break;case R(r):r=t;break;case r===t:break;case R(n):n=t;break;case n===t:break;default:void 0===o&&(o=new d),o.add(t)}}function c(t,a){if(!R(r)){if(r.isProviderFor(t,a))return r;if(!R(n)){if(n.isProviderFor(t,a))return r;if(!R(o))for(var i=I(o);;){var s=N(i);if(!s)return;var c=x(s);if(c.isProviderFor(t,a))return F(i),c}}}if(!R(e)&&e.isProviderFor(t,a))return e}function u(e,t){var r,n=a.get(e);return R(n)||(r=n.get(t)),R(r)?(R(r=c(e,t))||(R(n)&&(n=new f,a.set(e,n)),n.set(t,r)),r):r}function l(e){if(R(e))throw new TypeError;return r===e||n===e||!R(o)&&o.has(e)}function h(e,t,r){if(!l(r))throw new Error("Metadata provider not registered.");var n=u(e,t);if(n!==r){if(!R(n))return!1;var o=a.get(e);R(o)&&(o=new f,a.set(e,o)),o.set(t,r)}return!0}}()),!R(y)&&A(t.Reflect)&&Object.isExtensible(t.Reflect)&&Object.defineProperty(t.Reflect,y,{enumerable:!1,configurable:!1,writable:!1,value:e}),e}(),g=function(e){var t=new p,r={isProviderFor:function(e,r){var n=t.get(e);return!R(n)&&n.has(r)},OrdinaryDefineOwnMetadata:function(e,t,r,o){n(r,o,!0).set(e,t)},OrdinaryHasOwnMetadata:function(e,t,r){var o=n(t,r,!1);return!R(o)&&S(o.has(e))},OrdinaryGetOwnMetadata:function(e,t,r){var o=n(t,r,!1);if(!R(o))return o.get(e)},OrdinaryOwnMetadataKeys:function(e,t){var r=[],o=n(e,t,!1);if(R(o))return r;for(var a=I(o.keys()),i=0;;){var s=N(a);if(!s)return r.length=i,r;var c=x(s);try{r[i]=c}catch(e){try{F(a)}finally{throw e}}i++}},OrdinaryDeleteMetadata:function(e,r,o){var a=n(r,o,!1);if(R(a))return!1;if(!a.delete(e))return!1;if(0===a.size){var i=t.get(r);R(i)||(i.delete(o),0===i.size&&t.delete(i))}return!0}};return h.registerProvider(r),r;function n(n,o,a){var i=t.get(n),s=!1;if(R(i)){if(!a)return;i=new f,t.set(n,i),s=!0}var c=i.get(o);if(R(c)){if(!a)return;if(c=new f,i.set(o,c),!e.setProvider(n,o,r))throw i.delete(o),s&&t.delete(n),new Error("Wrong provider for target.")}return c}}(h);function E(e,t,r){if(v(e,t,r))return!0;var n=U(t);return!P(n)&&E(e,n,r)}function v(e,t,r){var n=C(t,r,!1);return!R(n)&&S(n.OrdinaryHasOwnMetadata(e,t,r))}function O(e,t,r){if(v(e,t,r))return _(e,t,r);var n=U(t);return P(n)?void 0:O(e,n,r)}function _(e,t,r){var n=C(t,r,!1);if(!R(n))return n.OrdinaryGetOwnMetadata(e,t,r)}function b(e,t,r,n){C(r,n,!0).OrdinaryDefineOwnMetadata(e,t,r,n)}function m(e,t){var r=M(e,t),n=U(e);if(null===n)return r;var o=m(n,t);if(o.length<=0)return r;if(r.length<=0)return o;for(var a=new d,i=[],s=0,c=r;s<c.length;s++){var u=c[s];a.has(u)||(a.add(u),i.push(u))}for(var l=0,f=o;l<f.length;l++)u=f[l],a.has(u)||(a.add(u),i.push(u));return i}function M(e,t){var r=C(e,t,!1);return r?r.OrdinaryOwnMetadataKeys(e,t):[]}function w(e){if(null===e)return 1;switch(typeof e){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return null===e?1:6;default:return 6}}function R(e){return void 0===e}function P(e){return null===e}function A(e){return"object"==typeof e?null!==e:"function"==typeof e}function T(e,t){switch(w(e)){case 0:case 1:case 2:case 3:case 4:case 5:return e}var r=3===t?"string":5===t?"number":"default",n=k(e,o);if(void 0!==n){var a=n.call(e,r);if(A(a))throw new TypeError;return a}return function(e,t){if("string"===t){var r=e.toString;if(L(r)&&!A(o=r.call(e)))return o;if(L(n=e.valueOf)&&!A(o=n.call(e)))return o}else{var n;if(L(n=e.valueOf)&&!A(o=n.call(e)))return o;var o,a=e.toString;if(L(a)&&!A(o=a.call(e)))return o}throw new TypeError}(e,"default"===r?"number":r)}function S(e){return!!e}function j(e){var t=T(e,3);return"symbol"==typeof t?t:function(e){return""+e}(t)}function D(e){return Array.isArray?Array.isArray(e):e instanceof Object?e instanceof Array:"[object Array]"===Object.prototype.toString.call(e)}function L(e){return"function"==typeof e}function V(e){return"function"==typeof e}function K(e,t){return e===t||e!=e&&t!=t}function k(e,t){var r=e[t];if(null!=r){if(!L(r))throw new TypeError;return r}}function I(e){var t=k(e,a);if(!L(t))throw new TypeError;var r=t.call(e);if(!A(r))throw new TypeError;return r}function x(e){return e.value}function N(e){var t=e.next();return!t.done&&t}function F(e){var t=e.return;t&&t.call(e)}function U(e){var t=Object.getPrototypeOf(e);if("function"!=typeof e||e===l)return t;if(t!==l)return t;var r=e.prototype,n=r&&Object.getPrototypeOf(r);if(null==n||n===Object.prototype)return t;var o=n.constructor;return"function"!=typeof o||o===e?t:o}function C(e,t,r){var n=h.getProvider(e,t);if(!R(n))return n;if(r){if(h.setProvider(e,t,g))return g;throw new Error("Illegal state.")}}function B(e){return e.__=void 0,delete e.__,e}e("decorate",(function(e,t,r,n){if(R(r)){if(!D(e))throw new TypeError;if(!V(t))throw new TypeError;return function(e,t){for(var r=e.length-1;r>=0;--r){var n=(0,e[r])(t);if(!R(n)&&!P(n)){if(!V(n))throw new TypeError;t=n}}return t}(e,t)}if(!D(e))throw new TypeError;if(!A(t))throw new TypeError;if(!A(n)&&!R(n)&&!P(n))throw new TypeError;return P(n)&&(n=void 0),function(e,t,r,n){for(var o=e.length-1;o>=0;--o){var a=(0,e[o])(t,r,n);if(!R(a)&&!P(a)){if(!A(a))throw new TypeError;n=a}}return n}(e,t,r=j(r),n)})),e("metadata",(function(e,t){return function(r,n){if(!A(r))throw new TypeError;if(!R(n)&&!function(e){switch(w(e)){case 3:case 4:return!0;default:return!1}}(n))throw new TypeError;b(e,t,r,n)}})),e("defineMetadata",(function(e,t,r,n){if(!A(r))throw new TypeError;return R(n)||(n=j(n)),b(e,t,r,n)})),e("hasMetadata",(function(e,t,r){if(!A(t))throw new TypeError;return R(r)||(r=j(r)),E(e,t,r)})),e("hasOwnMetadata",(function(e,t,r){if(!A(t))throw new TypeError;return R(r)||(r=j(r)),v(e,t,r)})),e("getMetadata",(function(e,t,r){if(!A(t))throw new TypeError;return R(r)||(r=j(r)),O(e,t,r)})),e("getOwnMetadata",(function(e,t,r){if(!A(t))throw new TypeError;return R(r)||(r=j(r)),_(e,t,r)})),e("getMetadataKeys",(function(e,t){if(!A(e))throw new TypeError;return R(t)||(t=j(t)),m(e,t)})),e("getOwnMetadataKeys",(function(e,t){if(!A(e))throw new TypeError;return R(t)||(t=j(t)),M(e,t)})),e("deleteMetadata",(function(e,t,r){if(!A(t))throw new TypeError;if(R(r)||(r=j(r)),!A(t))throw new TypeError;R(r)||(r=j(r));var n=C(t,r,!1);return!R(n)&&n.OrdinaryDeleteMetadata(e,t,r)}))}(o,n),void 0===n.Reflect&&(n.Reflect=e)}()}(n||(n={}))}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,r),a.exports}r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r(7729);
@@ -1,10 +1,12 @@
1
1
  import { propMetadata, required } from "@decaf-ts/decorator-validation";
2
2
  import { apply } from "@decaf-ts/reflection";
3
- import { readonly } from "../validation/decorators";
3
+ import { readonly } from "../validation";
4
4
  import { DBKeys } from "../model/constants";
5
5
  import { Repository } from "../repository";
6
+ // // eslint-disable-next-line @typescript-eslint/no-unused-vars
7
+ // import * as Validation from "../validation/validation";
6
8
  export function id() {
7
9
  return apply(required(), readonly(), propMetadata(Repository.key(DBKeys.ID), {}));
8
10
  }
9
11
 
10
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pZGVudGl0eS9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxNQUFNLFVBQVUsRUFBRTtJQUNoQixPQUFPLEtBQUssQ0FDVixRQUFRLEVBQUUsRUFDVixRQUFRLEVBQUUsRUFDVixZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQzVDLENBQUM7QUFDSixDQUFDIiwiZmlsZSI6ImlkZW50aXR5L2RlY29yYXRvcnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcm9wTWV0YWRhdGEsIHJlcXVpcmVkIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgYXBwbHkgfSBmcm9tIFwiQGRlY2FmLXRzL3JlZmxlY3Rpb25cIjtcbmltcG9ydCB7IHJlYWRvbmx5IH0gZnJvbSBcIi4uL3ZhbGlkYXRpb24vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgREJLZXlzIH0gZnJvbSBcIi4uL21vZGVsL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgUmVwb3NpdG9yeSB9IGZyb20gXCIuLi9yZXBvc2l0b3J5XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBpZCgpIHtcbiAgcmV0dXJuIGFwcGx5KFxuICAgIHJlcXVpcmVkKCksXG4gICAgcmVhZG9ubHkoKSxcbiAgICBwcm9wTWV0YWRhdGEoUmVwb3NpdG9yeS5rZXkoREJLZXlzLklEKSwge30pXG4gICk7XG59XG4iXX0=
12
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pZGVudGl0eS9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsZ0VBQWdFO0FBQ2hFLDBEQUEwRDtBQUUxRCxNQUFNLFVBQVUsRUFBRTtJQUNoQixPQUFPLEtBQUssQ0FDVixRQUFRLEVBQUUsRUFDVixRQUFRLEVBQUUsRUFDVixZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQzVDLENBQUM7QUFDSixDQUFDIiwiZmlsZSI6ImlkZW50aXR5L2RlY29yYXRvcnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcm9wTWV0YWRhdGEsIHJlcXVpcmVkIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgYXBwbHkgfSBmcm9tIFwiQGRlY2FmLXRzL3JlZmxlY3Rpb25cIjtcbmltcG9ydCB7IHJlYWRvbmx5IH0gZnJvbSBcIi4uL3ZhbGlkYXRpb25cIjtcbmltcG9ydCB7IERCS2V5cyB9IGZyb20gXCIuLi9tb2RlbC9jb25zdGFudHNcIjtcbmltcG9ydCB7IFJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vcmVwb3NpdG9yeVwiO1xuLy8gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuLy8gaW1wb3J0ICogYXMgVmFsaWRhdGlvbiBmcm9tIFwiLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBpZCgpIHtcbiAgcmV0dXJuIGFwcGx5KFxuICAgIHJlcXVpcmVkKCksXG4gICAgcmVhZG9ubHkoKSxcbiAgICBwcm9wTWV0YWRhdGEoUmVwb3NpdG9yeS5rZXkoREJLZXlzLklEKSwge30pXG4gICk7XG59XG4iXX0=
@@ -1,3 +1,4 @@
1
+ import { Model } from "@decaf-ts/decorator-validation";
1
2
  /**
2
3
  * @summary Returns the primary key attribute for a {@link Model}
3
4
  * @description searches in all the properties in the object for an {@link id} decorated property
@@ -34,7 +34,7 @@ export function findPrimaryKey(model) {
34
34
  throw new InternalError("Could not find ID decorated Property");
35
35
  return {
36
36
  id: idProp,
37
- props: idDecorators[idProp][0].props.options,
37
+ props: idDecorators[idProp][0].props,
38
38
  };
39
39
  }
40
40
  /**
@@ -60,4 +60,4 @@ export function findModelId(model, returnEmpty = false) {
60
60
  return modelId;
61
61
  }
62
62
 
63
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pZGVudGl0eS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUMsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXBFOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQWtCLEtBQVE7SUFDdEQsTUFBTSxVQUFVLEdBQUcsaUNBQWlDLENBQ2xELEtBQUssRUFDTCxTQUFTLEVBQ1QsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsRUFBRSxDQUMzQixDQUFDO0lBQ0YsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFvQixDQUFDLENBQUMsTUFBTSxDQUM5RCxDQUFDLEtBQW1DLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtRQUNwRCxNQUFNLFFBQVEsR0FBSSxJQUEwQixDQUFDLE1BQU0sQ0FDakQsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssU0FBUyxDQUFDLElBQUksQ0FDaEMsQ0FBQztRQUNGLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxFQUNELEVBQUUsQ0FDSCxDQUFDO0lBRUYsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTTtRQUNwRCxNQUFNLElBQUksYUFBYSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFDbEUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxhQUFhLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRSxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLElBQUksQ0FBQyxNQUFNO1FBQUUsTUFBTSxJQUFJLGFBQWEsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0lBQzdFLE9BQU87UUFDTCxFQUFFLEVBQUUsTUFBTTtRQUNWLEtBQUssRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU87S0FDN0MsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBWSxFQUFFLFdBQVcsR0FBRyxLQUFLO0lBQzNELE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDeEMsTUFBTSxPQUFPLEdBQUksS0FBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxXQUFXO1FBQzFCLE1BQU0sSUFBSSxhQUFhLENBQ3JCLEVBQUUsQ0FBQyx1REFBdUQsRUFBRSxNQUFNLENBQUMsQ0FDcEUsQ0FBQztJQUNKLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJmaWxlIjoiaWRlbnRpdHkvdXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEQktleXMgfSBmcm9tIFwiLi4vbW9kZWwvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBnZXRBbGxQcm9wZXJ0eURlY29yYXRvcnNSZWN1cnNpdmUgfSBmcm9tIFwiLi4vcmVwb3NpdG9yeS91dGlsc1wiO1xuaW1wb3J0IHsgTW9kZWxLZXlzLCBzZiB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IsIE5vdEZvdW5kRXJyb3IgfSBmcm9tIFwiLi4vcmVwb3NpdG9yeS9lcnJvcnNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBSZXR1cm5zIHRoZSBwcmltYXJ5IGtleSBhdHRyaWJ1dGUgZm9yIGEge0BsaW5rIE1vZGVsfVxuICogQGRlc2NyaXB0aW9uIHNlYXJjaGVzIGluIGFsbCB0aGUgcHJvcGVydGllcyBpbiB0aGUgb2JqZWN0IGZvciBhbiB7QGxpbmsgaWR9IGRlY29yYXRlZCBwcm9wZXJ0eVxuICpcbiAqIEBwYXJhbSB7TW9kZWx9IG1vZGVsXG4gKlxuICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gaWYgbm8gcHJvcGVydHkgb3IgbW9yZSB0aGFuIG9uZSBwcm9wZXJ0aWVzIGFyZSB7QGxpbmsgaWR9IGRlY29yYXRlZFxuICogb3Igbm8gdmFsdWUgaXMgc2V0IGluIHRoYXQgcHJvcGVydHlcbiAqXG4gKiBAZnVuY3Rpb24gZmluZFByaW1hcnlLZXlcbiAqXG4gKiBAY2F0ZWdvcnkgbWFuYWdlcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRQcmltYXJ5S2V5PFQgZXh0ZW5kcyBNb2RlbD4obW9kZWw6IFQpIHtcbiAgY29uc3QgZGVjb3JhdG9ycyA9IGdldEFsbFByb3BlcnR5RGVjb3JhdG9yc1JlY3Vyc2l2ZShcbiAgICBtb2RlbCxcbiAgICB1bmRlZmluZWQsXG4gICAgREJLZXlzLlJFRkxFQ1QgKyBEQktleXMuSURcbiAgKTtcbiAgY29uc3QgaWREZWNvcmF0b3JzID0gT2JqZWN0LmVudHJpZXMoZGVjb3JhdG9ycyBhcyBvYmplY3QpLnJlZHVjZShcbiAgICAoYWNjdW06IHsgW2luZGV4ZXI6IHN0cmluZ106IGFueVtdIH0sIFtwcm9wLCBkZWNzXSkgPT4ge1xuICAgICAgY29uc3QgZmlsdGVyZWQgPSAoZGVjcyBhcyB7IGtleTogc3RyaW5nIH1bXSkuZmlsdGVyKFxuICAgICAgICAoZCkgPT4gZC5rZXkgIT09IE1vZGVsS2V5cy5UWVBFXG4gICAgICApO1xuICAgICAgaWYgKGZpbHRlcmVkICYmIGZpbHRlcmVkLmxlbmd0aCkge1xuICAgICAgICBhY2N1bVtwcm9wXSA9IGFjY3VtW3Byb3BdIHx8IFtdO1xuICAgICAgICBhY2N1bVtwcm9wXS5wdXNoKC4uLmZpbHRlcmVkKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2N1bTtcbiAgICB9LFxuICAgIHt9XG4gICk7XG5cbiAgaWYgKCFpZERlY29yYXRvcnMgfHwgIU9iamVjdC5rZXlzKGlkRGVjb3JhdG9ycykubGVuZ3RoKVxuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiQ291bGQgbm90IGZpbmQgSUQgZGVjb3JhdGVkIFByb3BlcnR5XCIpO1xuICBpZiAoT2JqZWN0LmtleXMoaWREZWNvcmF0b3JzKS5sZW5ndGggPiAxKVxuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKHNmKE9iamVjdC5rZXlzKGlkRGVjb3JhdG9ycykuam9pbihcIiwgXCIpKSk7XG4gIGNvbnN0IGlkUHJvcCA9IE9iamVjdC5rZXlzKGlkRGVjb3JhdG9ycylbMF07XG4gIGlmICghaWRQcm9wKSB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIkNvdWxkIG5vdCBmaW5kIElEIGRlY29yYXRlZCBQcm9wZXJ0eVwiKTtcbiAgcmV0dXJuIHtcbiAgICBpZDogaWRQcm9wLFxuICAgIHByb3BzOiBpZERlY29yYXRvcnNbaWRQcm9wXVswXS5wcm9wcy5vcHRpb25zLFxuICB9O1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IFJldHVybnMgdGhlIHByaW1hcnkga2V5IHZhbHVlIGZvciBhIHtAbGluayBNb2RlbH1cbiAqIEBkZXNjcmlwdGlvbiBzZWFyY2hlcyBpbiBhbGwgdGhlIHByb3BlcnRpZXMgaW4gdGhlIG9iamVjdCBmb3IgYW4ge0BsaW5rIHBrfSBkZWNvcmF0ZWQgcHJvcGVydHlcbiAqXG4gKiBAcGFyYW0ge01vZGVsfSBtb2RlbFxuICogQHBhcmFtIHtib29sZWFufSBbcmV0dXJuRW1wdHldXG4gKiBAcmV0dXJuIHtzdHJpbmd9IHByaW1hcnkga2V5XG4gKlxuICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gaWYgbm8gcHJvcGVydHkgb3IgbW9yZSB0aGFuIG9uZSBwcm9wZXJ0aWVzIGFyZSB7QGxpbmsgcGt9IGRlY29yYXRlZFxuICogQHRocm93cyB7Tm90Rm91bmRFcnJvcn0gcmV0dXJuRW1wdHkgaXMgZmFsc2UgYW5kIG5vIHZhbHVlIGlzIHNldCBvbiB0aGUge0BsaW5rIHBrfSBkZWNvcmF0ZWQgcHJvcGVydHlcbiAqXG4gKiBAZnVuY3Rpb24gZmluZE1vZGVsSURcbiAqXG4gKiBAY2F0ZWdvcnkgbWFuYWdlcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRNb2RlbElkKG1vZGVsOiBNb2RlbCwgcmV0dXJuRW1wdHkgPSBmYWxzZSkge1xuICBjb25zdCBpZFByb3AgPSBmaW5kUHJpbWFyeUtleShtb2RlbCkuaWQ7XG4gIGNvbnN0IG1vZGVsSWQgPSAobW9kZWwgYXMgYW55KVtpZFByb3BdO1xuICBpZiAoIW1vZGVsSWQgJiYgIXJldHVybkVtcHR5KVxuICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKFxuICAgICAgc2YoXCJObyB2YWx1ZSBmb3IgdGhlIElkIGlzIGRlZmluZWQgdW5kZXIgdGhlIHByb3BlcnR5IHswfVwiLCBpZFByb3ApXG4gICAgKTtcbiAgcmV0dXJuIG1vZGVsSWQ7XG59XG4iXX0=
63
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pZGVudGl0eS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUMsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFTLFNBQVMsRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXBFOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQWtCLEtBQVE7SUFDdEQsTUFBTSxVQUFVLEdBQUcsaUNBQWlDLENBQ2xELEtBQUssRUFDTCxTQUFTLEVBQ1QsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsRUFBRSxDQUMzQixDQUFDO0lBQ0YsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFvQixDQUFDLENBQUMsTUFBTSxDQUM5RCxDQUFDLEtBQW1DLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtRQUNwRCxNQUFNLFFBQVEsR0FBSSxJQUEwQixDQUFDLE1BQU0sQ0FDakQsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssU0FBUyxDQUFDLElBQUksQ0FDaEMsQ0FBQztRQUNGLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxFQUNELEVBQUUsQ0FDSCxDQUFDO0lBRUYsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTTtRQUNwRCxNQUFNLElBQUksYUFBYSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFDbEUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxhQUFhLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRSxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLElBQUksQ0FBQyxNQUFNO1FBQUUsTUFBTSxJQUFJLGFBQWEsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0lBQzdFLE9BQU87UUFDTCxFQUFFLEVBQUUsTUFBTTtRQUNWLEtBQUssRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztLQUNyQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUFZLEVBQUUsV0FBVyxHQUFHLEtBQUs7SUFDM0QsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN4QyxNQUFNLE9BQU8sR0FBSSxLQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLFdBQVc7UUFDMUIsTUFBTSxJQUFJLGFBQWEsQ0FDckIsRUFBRSxDQUFDLHVEQUF1RCxFQUFFLE1BQU0sQ0FBQyxDQUNwRSxDQUFDO0lBQ0osT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsImZpbGUiOiJpZGVudGl0eS91dGlscy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERCS2V5cyB9IGZyb20gXCIuLi9tb2RlbC9jb25zdGFudHNcIjtcbmltcG9ydCB7IGdldEFsbFByb3BlcnR5RGVjb3JhdG9yc1JlY3Vyc2l2ZSB9IGZyb20gXCIuLi9yZXBvc2l0b3J5L3V0aWxzXCI7XG5pbXBvcnQgeyBNb2RlbCwgTW9kZWxLZXlzLCBzZiB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IsIE5vdEZvdW5kRXJyb3IgfSBmcm9tIFwiLi4vcmVwb3NpdG9yeS9lcnJvcnNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBSZXR1cm5zIHRoZSBwcmltYXJ5IGtleSBhdHRyaWJ1dGUgZm9yIGEge0BsaW5rIE1vZGVsfVxuICogQGRlc2NyaXB0aW9uIHNlYXJjaGVzIGluIGFsbCB0aGUgcHJvcGVydGllcyBpbiB0aGUgb2JqZWN0IGZvciBhbiB7QGxpbmsgaWR9IGRlY29yYXRlZCBwcm9wZXJ0eVxuICpcbiAqIEBwYXJhbSB7TW9kZWx9IG1vZGVsXG4gKlxuICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gaWYgbm8gcHJvcGVydHkgb3IgbW9yZSB0aGFuIG9uZSBwcm9wZXJ0aWVzIGFyZSB7QGxpbmsgaWR9IGRlY29yYXRlZFxuICogb3Igbm8gdmFsdWUgaXMgc2V0IGluIHRoYXQgcHJvcGVydHlcbiAqXG4gKiBAZnVuY3Rpb24gZmluZFByaW1hcnlLZXlcbiAqXG4gKiBAY2F0ZWdvcnkgbWFuYWdlcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRQcmltYXJ5S2V5PFQgZXh0ZW5kcyBNb2RlbD4obW9kZWw6IFQpIHtcbiAgY29uc3QgZGVjb3JhdG9ycyA9IGdldEFsbFByb3BlcnR5RGVjb3JhdG9yc1JlY3Vyc2l2ZShcbiAgICBtb2RlbCxcbiAgICB1bmRlZmluZWQsXG4gICAgREJLZXlzLlJFRkxFQ1QgKyBEQktleXMuSURcbiAgKTtcbiAgY29uc3QgaWREZWNvcmF0b3JzID0gT2JqZWN0LmVudHJpZXMoZGVjb3JhdG9ycyBhcyBvYmplY3QpLnJlZHVjZShcbiAgICAoYWNjdW06IHsgW2luZGV4ZXI6IHN0cmluZ106IGFueVtdIH0sIFtwcm9wLCBkZWNzXSkgPT4ge1xuICAgICAgY29uc3QgZmlsdGVyZWQgPSAoZGVjcyBhcyB7IGtleTogc3RyaW5nIH1bXSkuZmlsdGVyKFxuICAgICAgICAoZCkgPT4gZC5rZXkgIT09IE1vZGVsS2V5cy5UWVBFXG4gICAgICApO1xuICAgICAgaWYgKGZpbHRlcmVkICYmIGZpbHRlcmVkLmxlbmd0aCkge1xuICAgICAgICBhY2N1bVtwcm9wXSA9IGFjY3VtW3Byb3BdIHx8IFtdO1xuICAgICAgICBhY2N1bVtwcm9wXS5wdXNoKC4uLmZpbHRlcmVkKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2N1bTtcbiAgICB9LFxuICAgIHt9XG4gICk7XG5cbiAgaWYgKCFpZERlY29yYXRvcnMgfHwgIU9iamVjdC5rZXlzKGlkRGVjb3JhdG9ycykubGVuZ3RoKVxuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiQ291bGQgbm90IGZpbmQgSUQgZGVjb3JhdGVkIFByb3BlcnR5XCIpO1xuICBpZiAoT2JqZWN0LmtleXMoaWREZWNvcmF0b3JzKS5sZW5ndGggPiAxKVxuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKHNmKE9iamVjdC5rZXlzKGlkRGVjb3JhdG9ycykuam9pbihcIiwgXCIpKSk7XG4gIGNvbnN0IGlkUHJvcCA9IE9iamVjdC5rZXlzKGlkRGVjb3JhdG9ycylbMF07XG4gIGlmICghaWRQcm9wKSB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIkNvdWxkIG5vdCBmaW5kIElEIGRlY29yYXRlZCBQcm9wZXJ0eVwiKTtcbiAgcmV0dXJuIHtcbiAgICBpZDogaWRQcm9wLFxuICAgIHByb3BzOiBpZERlY29yYXRvcnNbaWRQcm9wXVswXS5wcm9wcyxcbiAgfTtcbn1cblxuLyoqXG4gKiBAc3VtbWFyeSBSZXR1cm5zIHRoZSBwcmltYXJ5IGtleSB2YWx1ZSBmb3IgYSB7QGxpbmsgTW9kZWx9XG4gKiBAZGVzY3JpcHRpb24gc2VhcmNoZXMgaW4gYWxsIHRoZSBwcm9wZXJ0aWVzIGluIHRoZSBvYmplY3QgZm9yIGFuIHtAbGluayBwa30gZGVjb3JhdGVkIHByb3BlcnR5XG4gKlxuICogQHBhcmFtIHtNb2RlbH0gbW9kZWxcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3JldHVybkVtcHR5XVxuICogQHJldHVybiB7c3RyaW5nfSBwcmltYXJ5IGtleVxuICpcbiAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IGlmIG5vIHByb3BlcnR5IG9yIG1vcmUgdGhhbiBvbmUgcHJvcGVydGllcyBhcmUge0BsaW5rIHBrfSBkZWNvcmF0ZWRcbiAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IHJldHVybkVtcHR5IGlzIGZhbHNlIGFuZCBubyB2YWx1ZSBpcyBzZXQgb24gdGhlIHtAbGluayBwa30gZGVjb3JhdGVkIHByb3BlcnR5XG4gKlxuICogQGZ1bmN0aW9uIGZpbmRNb2RlbElEXG4gKlxuICogQGNhdGVnb3J5IG1hbmFnZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kTW9kZWxJZChtb2RlbDogTW9kZWwsIHJldHVybkVtcHR5ID0gZmFsc2UpIHtcbiAgY29uc3QgaWRQcm9wID0gZmluZFByaW1hcnlLZXkobW9kZWwpLmlkO1xuICBjb25zdCBtb2RlbElkID0gKG1vZGVsIGFzIGFueSlbaWRQcm9wXTtcbiAgaWYgKCFtb2RlbElkICYmICFyZXR1cm5FbXB0eSlcbiAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihcbiAgICAgIHNmKFwiTm8gdmFsdWUgZm9yIHRoZSBJZCBpcyBkZWZpbmVkIHVuZGVyIHRoZSBwcm9wZXJ0eSB7MH1cIiwgaWRQcm9wKVxuICAgICk7XG4gIHJldHVybiBtb2RlbElkO1xufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { DataCache } from "../repository/DataCache";
2
- import { Constructor } from "@decaf-ts/decorator-validation";
2
+ import { Constructor, Model } from "@decaf-ts/decorator-validation";
3
3
  import { BulkCrudOperator } from "./BulkCrudOperator";
4
4
  /**
5
5
  * @summary Interface holding basic CRUD APIs
@@ -1,3 +1,3 @@
1
1
  export {};
2
2
 
3
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbnRlcmZhY2VzL0lSZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJmaWxlIjoiaW50ZXJmYWNlcy9JUmVwb3NpdG9yeS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFDYWNoZSB9IGZyb20gXCIuLi9yZXBvc2l0b3J5L0RhdGFDYWNoZVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBCdWxrQ3J1ZE9wZXJhdG9yIH0gZnJvbSBcIi4vQnVsa0NydWRPcGVyYXRvclwiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IEludGVyZmFjZSBob2xkaW5nIGJhc2ljIENSVUQgQVBJc1xuICogQHR5cGVkZWYgVCBleHRlbmRzIHtAbGluayBNb2RlbH1cbiAqIEBpbnRlcmZhY2UgSVJlcG9zaXRvcnlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUmVwb3NpdG9yeTxNIGV4dGVuZHMgTW9kZWw+IGV4dGVuZHMgQnVsa0NydWRPcGVyYXRvcjxNPiB7XG4gIHJlYWRvbmx5IGNhY2hlOiBEYXRhQ2FjaGU7XG4gIHJlYWRvbmx5IGNsYXNzOiBDb25zdHJ1Y3RvcjxNPjtcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbnRlcmZhY2VzL0lSZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJmaWxlIjoiaW50ZXJmYWNlcy9JUmVwb3NpdG9yeS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFDYWNoZSB9IGZyb20gXCIuLi9yZXBvc2l0b3J5L0RhdGFDYWNoZVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IsIE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgQnVsa0NydWRPcGVyYXRvciB9IGZyb20gXCIuL0J1bGtDcnVkT3BlcmF0b3JcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBJbnRlcmZhY2UgaG9sZGluZyBiYXNpYyBDUlVEIEFQSXNcbiAqIEB0eXBlZGVmIFQgZXh0ZW5kcyB7QGxpbmsgTW9kZWx9XG4gKiBAaW50ZXJmYWNlIElSZXBvc2l0b3J5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVJlcG9zaXRvcnk8TSBleHRlbmRzIE1vZGVsPiBleHRlbmRzIEJ1bGtDcnVkT3BlcmF0b3I8TT4ge1xuICByZWFkb25seSBjYWNoZTogRGF0YUNhY2hlO1xuICByZWFkb25seSBjbGFzczogQ29uc3RydWN0b3I8TT47XG59XG4iXX0=
@@ -1,3 +1,4 @@
1
+ import { Model } from "@decaf-ts/decorator-validation";
1
2
  import { IRepository } from "../interfaces/IRepository";
2
3
  /**
3
4
  *