@decaf-ts/db-decorators 0.4.31 → 0.4.32
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.
- package/LICENSE.md +0 -0
- package/README.md +0 -0
- package/dist/db-decorators.js +2 -0
- package/dist/{db-decorators.bundle.min.js.LICENSE.txt → db-decorators.js.LICENSE.txt} +0 -0
- package/dist/esm/db-decorators.js +2 -0
- package/dist/esm/{db-decorators.bundle.min.esm.js.LICENSE.txt → db-decorators.js.LICENSE.txt} +0 -0
- package/{lib/esm → dist/types}/identity/decorators.d.ts +0 -0
- package/{lib/esm → dist/types}/identity/index.d.ts +0 -0
- package/{lib/esm → dist/types}/identity/utils.d.ts +0 -0
- package/{lib/esm → dist/types}/index.d.ts +0 -0
- package/{lib/esm → dist/types}/interfaces/BulkCrudOperator.d.ts +0 -0
- package/{lib/esm → dist/types}/interfaces/Contextual.d.ts +0 -0
- package/{lib/esm → dist/types}/interfaces/CrudOperator.d.ts +0 -0
- package/{lib/esm → dist/types}/interfaces/IRepository.d.ts +0 -0
- package/{lib/esm → dist/types}/interfaces/index.d.ts +0 -0
- package/{lib/esm → dist/types}/model/constants.d.ts +0 -0
- package/{lib/esm → dist/types}/model/decorators.d.ts +0 -0
- package/{lib/esm → dist/types}/model/index.d.ts +0 -0
- package/{lib/esm → dist/types}/model/model.d.ts +0 -0
- package/{lib/esm → dist/types}/model/validation.d.ts +0 -0
- package/{lib/esm → dist/types}/operations/Operations.d.ts +0 -0
- package/{lib/esm → dist/types}/operations/OperationsRegistry.d.ts +0 -0
- package/{lib/esm → dist/types}/operations/constants.d.ts +0 -0
- package/{lib/esm → dist/types}/operations/decorators.d.ts +0 -0
- package/{lib/esm → dist/types}/operations/index.d.ts +0 -0
- package/{lib/esm → dist/types}/operations/types.d.ts +0 -0
- package/{lib/esm → dist/types}/repository/BaseRepository.d.ts +0 -0
- package/{lib/esm → dist/types}/repository/Context.d.ts +0 -0
- package/{lib/esm → dist/types}/repository/DataCache.d.ts +0 -0
- package/{lib/esm → dist/types}/repository/Repository.d.ts +0 -0
- package/{lib/esm → dist/types}/repository/errors.d.ts +0 -0
- package/{lib/esm → dist/types}/repository/index.d.ts +0 -0
- package/{lib/esm → dist/types}/repository/utils.d.ts +0 -0
- package/{lib/esm → dist/types}/repository/wrappers.d.ts +0 -0
- package/{lib/esm → dist/types}/validation/constants.d.ts +0 -0
- package/{lib/esm → dist/types}/validation/decorators.d.ts +0 -0
- package/{lib/esm → dist/types}/validation/index.d.ts +0 -0
- package/{lib/esm → dist/types}/validation/validation.d.ts +1 -1
- package/{lib/esm → dist/types}/validation/validators/ReadOnlyValidator.d.ts +0 -0
- package/{lib/esm → dist/types}/validation/validators/TimestampValidator.d.ts +0 -0
- package/{lib/esm → dist/types}/validation/validators/UpdateValidator.d.ts +0 -0
- package/{lib/esm → dist/types}/validation/validators/index.d.ts +0 -0
- package/lib/esm/identity/decorators.js +0 -0
- package/lib/esm/identity/index.js +0 -0
- package/lib/esm/identity/utils.js +0 -0
- package/lib/esm/index.js +0 -0
- package/lib/esm/interfaces/BulkCrudOperator.js +0 -0
- package/lib/esm/interfaces/Contextual.js +0 -0
- package/lib/esm/interfaces/CrudOperator.js +0 -0
- package/lib/esm/interfaces/IRepository.js +0 -0
- package/lib/esm/interfaces/index.js +0 -0
- package/lib/esm/model/constants.js +0 -0
- package/lib/esm/model/decorators.js +0 -0
- package/lib/esm/model/index.js +0 -0
- package/lib/esm/model/model.js +0 -0
- package/lib/esm/model/validation.js +0 -0
- package/lib/esm/operations/Operations.js +0 -0
- package/lib/esm/operations/OperationsRegistry.js +0 -0
- package/lib/esm/operations/constants.js +0 -0
- package/lib/esm/operations/decorators.js +0 -0
- package/lib/esm/operations/index.js +0 -0
- package/lib/esm/operations/types.js +0 -0
- package/lib/esm/repository/BaseRepository.js +0 -0
- package/lib/esm/repository/Context.js +0 -0
- package/lib/esm/repository/DataCache.js +0 -0
- package/lib/esm/repository/Repository.js +0 -0
- package/lib/esm/repository/errors.js +0 -0
- package/lib/esm/repository/index.js +0 -0
- package/lib/esm/repository/utils.js +0 -0
- package/lib/esm/repository/wrappers.js +0 -0
- package/lib/esm/validation/constants.js +0 -0
- package/lib/esm/validation/decorators.js +0 -0
- package/lib/esm/validation/index.js +0 -0
- package/lib/esm/validation/validation.js +1 -1
- package/lib/esm/validation/validators/ReadOnlyValidator.js +0 -0
- package/lib/esm/validation/validators/TimestampValidator.js +0 -0
- package/lib/esm/validation/validators/UpdateValidator.js +0 -0
- package/lib/esm/validation/validators/index.js +0 -0
- package/lib/identity/decorators.cjs +2 -0
- package/lib/identity/index.cjs +2 -0
- package/lib/identity/utils.cjs +2 -0
- package/lib/index.cjs +2 -0
- package/lib/interfaces/BulkCrudOperator.cjs +2 -0
- package/lib/interfaces/Contextual.cjs +2 -0
- package/lib/interfaces/CrudOperator.cjs +2 -0
- package/lib/interfaces/IRepository.cjs +2 -0
- package/lib/interfaces/index.cjs +2 -0
- package/lib/model/constants.cjs +2 -0
- package/lib/model/decorators.cjs +2 -0
- package/lib/model/index.cjs +2 -0
- package/lib/model/model.cjs +2 -0
- package/lib/model/validation.cjs +2 -0
- package/lib/operations/Operations.cjs +2 -0
- package/lib/operations/OperationsRegistry.cjs +2 -0
- package/lib/operations/constants.cjs +2 -0
- package/lib/operations/decorators.cjs +2 -0
- package/lib/operations/index.cjs +2 -0
- package/lib/operations/types.cjs +2 -0
- package/lib/repository/BaseRepository.cjs +2 -0
- package/lib/repository/Context.cjs +2 -0
- package/lib/repository/DataCache.cjs +2 -0
- package/lib/repository/Repository.cjs +2 -0
- package/lib/repository/errors.cjs +2 -0
- package/lib/repository/index.cjs +2 -0
- package/lib/repository/utils.cjs +2 -0
- package/lib/repository/wrappers.cjs +2 -0
- package/lib/validation/constants.cjs +2 -0
- package/lib/validation/decorators.cjs +2 -0
- package/lib/validation/index.cjs +2 -0
- package/lib/validation/validation.cjs +2 -0
- package/lib/validation/validators/ReadOnlyValidator.cjs +2 -0
- package/lib/validation/validators/TimestampValidator.cjs +2 -0
- package/lib/validation/validators/UpdateValidator.cjs +2 -0
- package/lib/validation/validators/index.cjs +2 -0
- package/package.json +27 -16
- package/dist/db-decorators.bundle.min.js +0 -2
- package/dist/esm/db-decorators.bundle.min.esm.js +0 -2
- package/lib/identity/decorators.d.ts +0 -1
- package/lib/identity/index.d.ts +0 -2
- package/lib/identity/utils.d.ts +0 -34
- package/lib/index.d.ts +0 -33
- package/lib/interfaces/BulkCrudOperator.d.ts +0 -7
- package/lib/interfaces/Contextual.d.ts +0 -6
- package/lib/interfaces/CrudOperator.d.ts +0 -42
- package/lib/interfaces/IRepository.d.ts +0 -11
- package/lib/interfaces/index.d.ts +0 -4
- package/lib/model/constants.d.ts +0 -37
- package/lib/model/decorators.d.ts +0 -50
- package/lib/model/index.d.ts +0 -4
- package/lib/model/model.d.ts +0 -112
- package/lib/model/validation.d.ts +0 -14
- package/lib/operations/Operations.d.ts +0 -19
- package/lib/operations/OperationsRegistry.d.ts +0 -34
- package/lib/operations/constants.d.ts +0 -24
- package/lib/operations/decorators.d.ts +0 -193
- package/lib/operations/index.d.ts +0 -5
- package/lib/operations/types.d.ts +0 -29
- package/lib/repository/BaseRepository.d.ts +0 -36
- package/lib/repository/Context.d.ts +0 -17
- package/lib/repository/DataCache.d.ts +0 -9
- package/lib/repository/Repository.d.ts +0 -10
- package/lib/repository/errors.d.ts +0 -69
- package/lib/repository/index.d.ts +0 -7
- package/lib/repository/utils.d.ts +0 -62
- package/lib/repository/wrappers.d.ts +0 -38
- package/lib/validation/constants.d.ts +0 -30
- package/lib/validation/decorators.d.ts +0 -58
- package/lib/validation/index.d.ts +0 -4
- package/lib/validation/validation.d.ts +0 -41
- package/lib/validation/validators/ReadOnlyValidator.d.ts +0 -23
- package/lib/validation/validators/TimestampValidator.d.ts +0 -14
- package/lib/validation/validators/UpdateValidator.d.ts +0 -23
- package/lib/validation/validators/index.d.ts +0 -3
|
@@ -1,2 +0,0 @@
|
|
|
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,o.apply)((0,n.required)(),(0,a.readonly)(),(0,n.propMetadata)(s.Repository.key(i.DBKeys.ID),{}))};const n=r(2302),o=r(32),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.InternalError((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(2302),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})},2395:(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(2395),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(2302);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",VERSION:"version",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=f,t.composedFromCreateUpdate=d,t.composedFromKeys=function(e,t=n.DefaultSeparator,r=!1,o="",a=""){return p(e,r,t,"keys",o,a)},t.composed=function(e,t=n.DefaultSeparator,r=!1,o="",a=""){return p(e,r,t,"values",o,a)},t.versionCreateUpdate=y,t.version=function(){return(0,o.apply)((0,a.type)(Number.name),(0,i.onCreate)(y(l.OperationKeys.CREATE)),(0,i.onUpdate)(y(l.OperationKeys.UPDATE)),(0,a.propMetadata)(c.Repository.key(n.DBKeys.VERSION),!0))};const n=r(2402),o=r(32),a=r(2302),i=r(6208),s=r(879),c=r(3932),l=r(5804);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 f(){return(0,o.apply)((0,i.onCreateUpdate)(u),(0,a.propMetadata)(c.Repository.key(n.DBKeys.HASH),{}))}function d(e,t,r,n){try{const{args:e,type:o,prefix:i,suffix:c,separator:l}=t,u=e.map((e=>{if(!(e in n))throw new s.InternalError((0,a.sf)("Property {0} not found to compose from",e));if("keys"===o)return e;if(void 0===n[e])throw new s.InternalError((0,a.sf)("Property {0} does not contain a value to compose from",e));return n[e].toString()}));i&&u.unshift(i),c&&u.push(c),n[r]=u.join(l)}catch(e){throw new s.InternalError(`Failed to compose value: ${e}`)}}function p(e,t=!1,r=n.DefaultSeparator,s="values",l="",u=""){const p={args:e,hashResult:t,separator:r,type:s,prefix:l,suffix:u},y=[(0,i.onCreateUpdate)(d,p),(0,a.propMetadata)(c.Repository.key(n.DBKeys.COMPOSED),p)];return t&&y.push(f()),(0,o.apply)(...y)}function y(e){return function(t,r,n,o){try{switch(e){case l.OperationKeys.CREATE:o[n]=1;break;case l.OperationKeys.UPDATE:o[n]++;break;default:throw new s.InternalError(`Invalid operation: ${e}`)}}catch(e){throw new s.InternalError(`Failed to update version: ${e}`)}}}},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(2366),t)},2366:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const n=r(2302),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(o.Reflection.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 a of Object.keys(t).filter((e=>!(r.includes(e)||c&&c[e])))){let r;const s=o.Reflection.getPropertyDecorators(n.ValidationKeys.REFLECT,t,a).decorators,l=o.Reflection.getPropertyDecorators(n.ValidationKeys.REFLECT,t,a).decorators.filter((e=>-1!==[n.ModelKeys.TYPE,n.ValidationKeys.TYPE].indexOf(e.key)));if(!l||!l.length)continue;const u=l.pop(),f=u.props.name?[u.props.name]:Array.isArray(u.props.customTypes)?u.props.customTypes:[u.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[a],s=e[a];break;case Set.name:n=t[a].values(),s=e[a].values();break;default:throw new Error(`Invalid attribute type ${o}`)}r=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)),r?.length||(r=void 0)}break;default:try{t[a]&&e[a]&&(r=t[a].hasErrors(e[a]))}catch(e){console.warn((0,n.sf)("Model should be validatable but its not"))}}r&&(c=c||{},c[a]=r)}}return c?new n.ModelErrorDefinition(c):void 0};const n=r(2302),o=r(32),a=r(965),i=r(2912)},9668:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Operations=void 0;const n=r(2302),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.onAny=function(e,t){return s(n.DBOperations.ALL,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.afterAny=function(e,t){return c(n.DBOperations.ALL,e,t)},t.after=c,t.operation=l;const n=r(7625),o=r(9668),a=r(32),i=r(2302);function s(e=n.DBOperations.ALL,t,r){return l(n.OperationKeys.ON,e,t,r)}function c(e=n.DBOperations.ALL,t,r){return l(n.OperationKeys.AFTER,e,t,r)}function l(e,t=n.DBOperations.ALL,r,s){return(n,c)=>{const l=n.constructor.name,u=t.reduce(((t,a)=>{const u=e+a;let f=Reflect.getMetadata(o.Operations.key(u),n,c);f||(f={operation:a,handlers:{}});const d=o.Operations.getHandlerName(r);return f.handlers[l]&&f.handlers[l][c]&&d in f.handlers[l][c]||(f.handlers[l]=f.handlers[l]||{},f.handlers[l][c]=f.handlers[l][c]||{},f.handlers[l][c][d]={data:s},t.push(function(e,t){return(r,n)=>{o.Operations.register(t,e,r,n)}}(u,r),(0,i.propMetadata)(o.Operations.key(u),f))),t}),[]);return(0,a.apply)(...u)(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(2302),o=r(8311),a=r(7625),i=r(879),s=r(3420),c=r(861),l=r(4605);t.BaseRepository=class{get class(){if(!this._class)throw new i.InternalError("No class definition found for this repository");return this._class}get pk(){return this._pk||(this._pk=(0,c.findPrimaryKey)(new this.class).id),this._pk}constructor(e){e&&(this._class=e);const t=this;[this.create,this.read,this.update,this.delete].forEach((e=>{const r=e.name;(0,s.wrapMethodWithContext)(t,t[r+"Prefix"],e,t[r+"Suffix"])}))}async createAll(e,...t){return Promise.all(e.map((e=>this.create(e,...t))))}async createPrefix(e,...t){const r=await l.Context.args(a.OperationKeys.CREATE,this.class,t);return e=new this.class(e),await(0,o.enforceDBDecorators)(this,r.context,e,a.OperationKeys.CREATE,a.OperationKeys.ON),[e,...r.args]}async createSuffix(e,t){return await(0,o.enforceDBDecorators)(this,t,e,a.OperationKeys.CREATE,a.OperationKeys.AFTER),e}async createAllPrefix(e,...t){const r=await l.Context.args(a.OperationKeys.CREATE,this.class,t);return await Promise.all(e.map((async e=>(e=new this.class(e),await(0,o.enforceDBDecorators)(this,r.context,e,a.OperationKeys.CREATE,a.OperationKeys.ON),e)))),[e,...r.args]}async createAllSuffix(e,t){return await Promise.all(e.map((e=>(0,o.enforceDBDecorators)(this,t,e,a.OperationKeys.CREATE,a.OperationKeys.AFTER)))),e}async readAll(e,...t){return await Promise.all(e.map((e=>this.read(e,...t))))}async readSuffix(e,t){return await(0,o.enforceDBDecorators)(this,t,e,a.OperationKeys.READ,a.OperationKeys.AFTER),e}async readPrefix(e,...t){const r=await l.Context.args(a.OperationKeys.READ,this.class,t),n=new this.class;return n[this.pk]=e,await(0,o.enforceDBDecorators)(this,r.context,n,a.OperationKeys.READ,a.OperationKeys.ON),[e,...r.args]}async readAllPrefix(e,...t){const r=await l.Context.args(a.OperationKeys.READ,this.class,t);return await Promise.all(e.map((async e=>{const t=new this.class;return t[this.pk]=e,(0,o.enforceDBDecorators)(this,r.context,t,a.OperationKeys.READ,a.OperationKeys.ON)}))),[e,...r.args]}async readAllSuffix(e,t){return await Promise.all(e.map((e=>(0,o.enforceDBDecorators)(this,t,e,a.OperationKeys.READ,a.OperationKeys.AFTER)))),e}async updateAll(e,...t){return Promise.all(e.map((e=>this.update(e,...t))))}async updateSuffix(e,t){return await(0,o.enforceDBDecorators)(this,t,e,a.OperationKeys.UPDATE,a.OperationKeys.AFTER),e}async updatePrefix(e,...t){const r=await l.Context.args(a.OperationKeys.UPDATE,this.class,t),n=e[this.pk];if(!n)throw new i.InternalError(`No value for the Id is defined under the property ${this.pk}`);const s=await this.read(n);return await(0,o.enforceDBDecorators)(this,r.context,e,a.OperationKeys.UPDATE,a.OperationKeys.ON,s),[e,...r.args]}async updateAllPrefix(e,...t){const r=await l.Context.args(a.OperationKeys.UPDATE,this.class,t);return await Promise.all(e.map((e=>(e=new this.class(e),(0,o.enforceDBDecorators)(this,r.context,e,a.OperationKeys.UPDATE,a.OperationKeys.ON),e)))),[e,...r.args]}async updateAllSuffix(e,t){return await Promise.all(e.map((e=>(0,o.enforceDBDecorators)(this,t,e,a.OperationKeys.UPDATE,a.OperationKeys.AFTER)))),e}async deleteAll(e,...t){return Promise.all(e.map((e=>this.delete(e,...t))))}async deleteSuffix(e,t){return await(0,o.enforceDBDecorators)(this,t,e,a.OperationKeys.DELETE,a.OperationKeys.AFTER),e}async deletePrefix(e,...t){const r=await l.Context.args(a.OperationKeys.DELETE,this.class,t),n=await this.read(e,...r.args);return await(0,o.enforceDBDecorators)(this,r.context,n,a.OperationKeys.DELETE,a.OperationKeys.ON),[e,...r.args]}async deleteAllPrefix(e,...t){const r=await l.Context.args(a.OperationKeys.DELETE,this.class,t),n=await this.readAll(e,...r.args);return await Promise.all(n.map((async e=>(0,o.enforceDBDecorators)(this,r.context,e,a.OperationKeys.DELETE,a.OperationKeys.ON)))),[e,...r.args]}async deleteAllSuffix(e,t){return await Promise.all(e.map((e=>(0,o.enforceDBDecorators)(this,t,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)}}},4605:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Context=void 0;const n=r(6124),o=r(879);class a extends n.DataCache{constructor(e,t,r){super(),this.operation=e,this.model=t,this.parent=r}get timestamp(){return new Date}async get(e){try{return super.get(e)}catch(t){if(this.parent)return this.parent.get(e);throw t}}async pop(e){if(e in this.cache)return super.pop(e);if(!this.parent)throw new o.NotFoundError(`Key ${e} not in dataStore`);return this.parent.pop(e)}child(e,t){return this.constructor(e,t,this)}static async from(e,t,...r){return new a(e,t)}static async args(e,t,r,n){const o=r.pop();async function i(){return n?n.context(e,t,...r):new a(e,t)}let s;return o?o instanceof a?(s=o,r.push(o)):(s=await i(),r.push(o,s)):(s=await i(),r.push(s)),{context:s,args:r}}}t.Context=a},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 filter(e){return"string"==typeof e&&(e=new RegExp(e)),Object.keys(this.cache).filter((t=>!!e.exec(t))).map((e=>this.cache[e]))}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(2402),c=r(4605);class l extends i.BaseRepository{constructor(e){super(e)}async createPrefix(e,...t){const r=await c.Context.args(o.OperationKeys.CREATE,this.class,t);e=new this.class(e),await(0,n.enforceDBDecorators)(this,r.context,e,o.OperationKeys.CREATE,o.OperationKeys.ON);const i=e.hasErrors();if(i)throw new a.ValidationError(i.toString());return[e,...r.args]}async createAllPrefix(e,...t){const r=await c.Context.args(o.OperationKeys.CREATE,this.class,t);await Promise.all(e.map((async e=>(e=new this.class(e),await(0,n.enforceDBDecorators)(this,r.context,e,o.OperationKeys.CREATE,o.OperationKeys.ON),e))));const i=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(i)throw new a.ValidationError(i);return[e,...r.args]}async updatePrefix(e,...t){const r=await c.Context.args(o.OperationKeys.UPDATE,this.class,t),i=e[this.pk];if(!i)throw new a.InternalError(`No value for the Id is defined under the property ${this.pk}`);const s=await this.read(i);e=this.merge(s,e),await(0,n.enforceDBDecorators)(this,r.context,e,o.OperationKeys.UPDATE,o.OperationKeys.ON,s);const l=e.hasErrors(s);if(l)throw new a.ValidationError(l.toString());return[e,...r.args]}async updateAllPrefix(e,...t){const r=await c.Context.args(o.OperationKeys.UPDATE,this.class,t),i=e.map((e=>{const t=e[this.pk];if(!t)throw new a.InternalError(`No value for the Id is defined under the property ${this.pk}`);return t})),s=await this.readAll(i,...r.args);e=e.map(((e,t)=>this.merge(s[t],e))),await Promise.all(e.map(((e,t)=>(0,n.enforceDBDecorators)(this,r.context,e,o.OperationKeys.UPDATE,o.OperationKeys.ON,s[t]))));const l=e.map(((e,t)=>e.hasErrors(s[t],e))).reduce(((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e)),void 0);if(l)throw new a.ValidationError(l);return[e,...r.args]}static key(e){return s.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 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(4605),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,l,u,f){const d=c(a,l,u);if(d)for(const c in d){const p=d[c];for(const d of p){const{key:p}=d,y=n.Operations.get(a,c,u+p);if(!y||!y.length)throw new i.InternalError(`Could not find registered handler for the operation ${u+p} under property ${c}`);const h=(0,t.getHandlerArgs)(d,c,a);if(!h||Object.values(h).length!==y.length)throw new i.InternalError((0,s.sf)("Args and handlers length do not match"));let g,E;for(let t=0;t<y.length;t++){g=y[t],E=Object.values(h)[t];const n=[r,E.data,c,a];if(l===o.OperationKeys.UPDATE&&u===o.OperationKeys.ON){if(!f)throw new i.InternalError("Missing old model for update operation");n.push(f)}await g.apply(e,n)}}}},t.getDbDecorators=c;const n=r(9668),o=r(7625),a=r(32),i=r(879),s=r(2302);function c(e,t,r){const n=a.Reflection.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=a.Reflection.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 l=Object.getPrototypeOf(e);return l?(0,t.getAllPropertyDecoratorsRecursive)(l,i,...n):i}},3420:(e,t,r)=>{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.wrapMethodWithContext=function(e,t,r,a,i){const s=async function(...i){let s=t.call(e,...i);s instanceof Promise&&(s=await s);const c=s[s.length-1];if(!(c instanceof n.Context))throw new o.InternalError("Missing a context");let l=await r.call(e,...s);return l instanceof Promise&&(l=await l),l=a.call(this,l,c),l instanceof Promise&&(l=await l),l}.bind(e),c=i||r.name;Object.defineProperty(s,"name",{enumerable:!0,configurable:!0,writable:!1,value:c}),e[c]=s};const n=r(4605),o=r(879)},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,l.apply)(...r)},t.serializeOnCreateUpdate=d,t.serializeAfterAll=p,t.serialize=function(){return(0,l.apply)((0,s.onCreateUpdate)(d),(0,s.after)(i.DBOperations.ALL,p),(0,n.type)([String.name,Object.name]),(0,l.metadata)(u.Repository.key(o.DBKeys.SERIALIZE),{}))};const n=r(2302),o=r(2402),a=r(2628),i=r(7625),s=r(6208),c=r(879),l=r(32),u=r(5666);async function f(e,t,r,n){n[r]=e.timestamp}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(2302),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(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=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(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=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(2302);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)},2302: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(4072),t),o(r(5030),t),o(r(5643),t),t.VERSION="1.4.17"},3:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Model=void 0;const n=r(4744),o=r(1825),a=r(32),i=r(2709),s=r(2252),c=r(9683),l=r(7675),u=r(5021),f=r(1318),d=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(h.key(l.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=a.Reflection.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,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===u.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(h.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(h.key(l.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(h.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 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}),"")}}},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;n.Model.register(t,e.name)}))};const n=r(3),o=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||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)}}},8539:(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"]},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 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(3)},754:(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(4939),o=r(7675),a=r(3),i=r(32)},5643: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(8539),t),o(r(4939),t),o(r(754),t),o(r(3),t),o(r(3368),t),o(r(1825),t),o(r(1967),t),o(r(9683),t),o(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(n.ModelKeys.TYPE,e,t);return o.Model.get(r.name)?r.name:void 0},t.isModel=a;const n=r(7675),o=r(3);function a(e){try{return e instanceof o.Model||!!o.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 n in e)Object.prototype.hasOwnProperty.call(e,n)&&-1===t.indexOf(n)&&r.push(o.Reflection.getPropertyDecorators(l.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===l.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=o.Reflection.getPropertyDecorators(l.ValidationKeys.REFLECT,e,t).decorators,c=o.Reflection.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 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])?l.ValidationKeys.LIST:l.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,u.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===l.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(3368),o=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,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(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,o.sf)("Could not convert date {0} to format: {1}",t,e))}}return i(r,e)}},r(8630);const n=r(5021),o=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 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 l=a(o.groups.hour);c&&(l="PM"===c?l+12:l);const u=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,l,u,f,d)}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)&&!Number.isNaN(e)}function c(e){return e<10?"0"+e:e.toString()}function l(e,t="yyyy/MM/dd"){const r=e.getDate(),o=e.getMonth(),a=e.getFullYear(),i=e.getHours(),s=e.getMinutes(),l=e.getSeconds(),u=e.getMilliseconds(),f=i%12,d=c(f),p=c(i),y=c(s),h=c(l),g=i<12?"AM":"PM",E=n.DAYS_OF_WEEK_NAMES[e.getDay()],O=E.substr(0,3),v=c(r),_=o+1,b=c(_),m=n.MONTH_NAMES[o],R=m.substr(0,3),M=a+"",w=M.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",l.toString()).replace("S",u.toString()).replace("dd",v).replace("d",r.toString()).replace("EEEE",E).replace("EEE",O).replace("yyyy",M).replace("yy",w).replace("aaa",g)).indexOf("MMM")>-1?t.replace("MMMM",m).replace("MMM",R):t.replace("MM",b).replace("M",_.toString())}},3042:(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(32),o=r(7675);function a(e=o.ModelKeys.ATTRIBUTE){return(t,r)=>{let n;n=Object.prototype.hasOwnProperty.call(t,e)?t[e]:t[e]=[],n.includes(r)||n.push(r)}}},2252:(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(4744);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},4072: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(7675),t),o(r(5243),t),o(r(3042),t),o(r(2252),t),o(r(2417),t),o(r(4744),t),o(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 n=r(3),o=r(7675);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},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 n=r(3201),o=r(5021);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}static keys(){return this.getRegistry().getKeys()}}t.Validation=a},3576: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(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)),Number.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)},5224: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(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=n([(0,s.validator)(a.ValidationKeys.EMAIL),o("design:paramtypes",[String])],c)},2888: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(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 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)},2382: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(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=n([(0,s.validator)(i.ValidationKeys.MAX_LENGTH),o("design:paramtypes",[String])],c)},9378: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(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),Number.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)},2396: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(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=n([(0,s.validator)(i.ValidationKeys.MIN_LENGTH),o("design:paramtypes",[String])],c)},9320: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(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),Number.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)},3317: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(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=n([(0,s.validator)(i.ValidationKeys.PASSWORD),o("design:paramtypes",[Object])],c)},6174: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(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=n([(0,s.validator)(i.ValidationKeys.PATTERN),o("design:paramtypes",[String])],c)},8089: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(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=n([(0,s.validator)(i.ValidationKeys.REQUIRED),o("design:paramtypes",[String])],c)},6942: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(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=n([(0,s.validator)(i.ValidationKeys.STEP),o("design:paramtypes",[String])],c)},4972: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(7036),i=r(5021),s=r(8024),c=r(1375),l=r(7675),u=r(32);let f=class extends a.Validator{constructor(e=i.DEFAULT_ERROR_MESSAGES.TYPE){super(e)}hasErrors(e,t,r){if(void 0!==e)return u.Reflection.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})},8689: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(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=n([(0,s.validator)(a.ValidationKeys.URL),o("design:paramtypes",[String])],c)},7036:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Validator=void 0;const n=r(5021),o=r(1318),a=r(32);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?a.Reflection.checkTypes(t,this.acceptedTypes)?e(t,...r):this.getMessage(n.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 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)}}))}}},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 n=r(7675);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}}},8024:(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(1375),o=r(5021),a=r(32)},70: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(3576),i=r(4972),s=r(3317),c=r(6942),l=r(8689),u=r(6174),f=r(9320),d=r(2396),p=r(9378),y=r(2382),h=r(8089),g=r(5224),E=r(2888);o(r(5021),t),o(r(3576),t),o(r(8024),t),o(r(5224),t),o(r(2888),t),o(r(2382),t),o(r(9378),t),o(r(2396),t),o(r(9320),t),o(r(3317),t),o(r(6174),t),o(r(8089),t),o(r(6942),t),o(r(7045),t),o(r(4972),t),o(r(8689),t),o(r(7036),t),o(r(3201),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: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=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 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,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(8630);const n=r(5021),o=r(1318),a=r(5243),i=r(3042),s=r(1375);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})}},5030: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(70),t),o(r(9944),t),o(r(4213),t),o(r(1375),t)},4213:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},6163:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Reflection=void 0;const n=r(1267),o=r(3032);class a{constructor(){}static checkType(e,t){return typeof e===t.toLowerCase()||void 0!==e&&"object"==typeof e&&e.constructor&&e.constructor.name.toLowerCase()===t.toLowerCase()}static checkTypes(e,t){return!t.every((t=>!this.checkType(e,t)))}static evaluateDesignTypes(e,t){switch(typeof t){case"string":return this.checkType(e,t);case"object":return!Array.isArray(t)||a.checkTypes(e,t);case"function":return!t.name||"Object"===t.name||this.checkType(e,t.name);default:return!0}}static getAllProperties(e,t=!0,r="Object"){const n=new Set;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((e=>n.add(e)))}while(a());return Array.from(n)}static getClassDecorators(e,t){const r=Reflect.getOwnMetadataKeys(t.constructor),n=[];for(const o of r)o.startsWith(e)&&n.push({key:o.slice(e.length),props:Reflect.getMetadata(o,t.constructor)});return n}static getAllPropertyDecorators(e,...t){if(!t||0===t.length)return;const r={},n=Object.getOwnPropertyNames(e);for(const o of n)for(let n=0;n<t.length;n++){const i=a.getPropertyDecorators(t[n],e,o,0!==n);i.decorators.length>0&&(r[o]||(r[o]=[]),r[o].push(...i.decorators))}return Object.keys(r).length>0?r:void 0}static getTypeFromDecorator(e,t){const r=a.getPropertyDecorators(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}static getPropertyDecorators(e,t,r,i=!1,s=!0,c){const l=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.getPropertyDecorators(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,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)))}(l.decorators)}}}t.Reflection=a},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,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(8630)},3032:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isEqual=function e(t,r,...n){if(t===r)return 0!==t||1/t==1/r;if(null==t||null==r)return t===r;if(typeof t!=typeof r)return!1;if(Number.isNaN(t)&&Number.isNaN(r))return!0;if("object"!=typeof t)return t===r;if(t instanceof Date&&r instanceof Date)return!(!isNaN(t.getTime())||!isNaN(r.getTime()))||t.getTime()===r.getTime();if(t instanceof RegExp&&r instanceof RegExp)return t.toString()===r.toString();if(t instanceof Error&&r instanceof Error)return t.name===r.name&&t.message===r.message;if(Array.isArray(t)&&Array.isArray(r)){if(t.length!==r.length)return!1;for(let o=0;o<t.length;o++)if(!e(t[o],r[o],...n))return!1;return!0}if(t instanceof Map&&r instanceof Map){if(t.size!==r.size)return!1;for(const[o,a]of t)if(!r.has(o)||!e(a,r.get(o),...n))return!1;return!0}if(t instanceof Set&&r instanceof Set){if(t.size!==r.size)return!1;for(const e of t)if(!r.has(e))return!1;return!0}if(ArrayBuffer.isView(t)&&ArrayBuffer.isView(r)){if(t.byteLength!==r.byteLength)return!1;if(t.byteOffset!==r.byteOffset)return!1;if(t.buffer.byteLength!==r.buffer.byteLength)return!1;const e=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),n=new Uint8Array(r.buffer,r.byteOffset,r.byteLength);for(let t=0;t<e.length;t++)if(e[t]!==n[t])return!1;return!0}const o=Object.keys(t).filter((e=>!n.includes(e))),a=Object.keys(r).filter((e=>!n.includes(e)));if(o.length!==a.length)return!1;for(const i of o){if(!a.includes(i))return!1;if(!e(t[i],r[i],...n))return!1}const i=Object.getOwnPropertySymbols(t).filter((e=>!n.includes(e.toString()))),s=Object.getOwnPropertySymbols(r).filter((e=>!n.includes(e.toString())));if(i.length!==s.length)return!1;for(const o of i){if(!s.includes(o))return!1;if(!e(t[o],r[o],...n))return!1}return Object.getPrototypeOf(t)===Object.getPrototypeOf(r)}},32: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(1267),t),o(r(5530),t),o(r(3032),t),o(r(6163),t),o(r(2199),t),t.VERSION="0.3.24"},2199:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},8630:(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,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),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=l.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&&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=o()},e}();function o(){var e;do{e="@@WeakMap@@"+s()}while(l.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:l.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!w(y)&&P(t.Reflect)&&Object.isExtensible(t.Reflect)&&(e=t.Reflect[y]),w(e)&&(e=function(){var e,r,n,o;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,n=e.getOwnMetadata,o=e.getOwnMetadataKeys,a=e.deleteMetadata,i=new p;return{isProviderFor:function(e,t){var r=i.get(e);return!(w(r)||!r.has(t))||!!o(e,t).length&&(w(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: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(n):n=t;break;case n===t:break;default:void 0===o&&(o=new d),o.add(t)}}function c(t,a){if(!w(r)){if(r.isProviderFor(t,a))return r;if(!w(n)){if(n.isProviderFor(t,a))return r;if(!w(o))for(var i=x(o);;){var s=k(i);if(!s)return;var c=I(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,n=a.get(e);return w(n)||(r=n.get(t)),w(r)?(w(r=c(e,t))||(w(n)&&(n=new f,a.set(e,n)),n.set(t,r)),r):r}function u(e){if(w(e))throw new TypeError;return r===e||n===e||!w(o)&&o.has(e)}function h(e,t,r){if(!u(r))throw new Error("Metadata provider not registered.");var n=l(e,t);if(n!==r){if(!w(n))return!1;var o=a.get(e);w(o)&&(o=new f,a.set(e,o)),o.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 n=t.get(e);return!w(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!w(o)&&S(o.has(e))},OrdinaryGetOwnMetadata:function(e,t,r){var o=n(t,r,!1);if(!w(o))return o.get(e)},OrdinaryOwnMetadataKeys:function(e,t){var r=[],o=n(e,t,!1);if(w(o))return r;for(var a=x(o.keys()),i=0;;){var s=k(a);if(!s)return r.length=i,r;var c=I(s);try{r[i]=c}catch(e){try{U(a)}finally{throw e}}i++}},OrdinaryDeleteMetadata:function(e,r,o){var a=n(r,o,!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(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(w(i)){if(!a)return;i=new f,t.set(n,i),s=!0}var c=i.get(o);if(w(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(O(e,t,r))return!0;var n=C(t);return!A(n)&&E(e,n,r)}function O(e,t,r){var n=F(t,r,!1);return!w(n)&&S(n.OrdinaryHasOwnMetadata(e,t,r))}function v(e,t,r){if(O(e,t,r))return _(e,t,r);var n=C(t);return A(n)?void 0:v(e,n,r)}function _(e,t,r){var n=F(t,r,!1);if(!w(n))return n.OrdinaryGetOwnMetadata(e,t,r)}function b(e,t,r,n){F(r,n,!0).OrdinaryDefineOwnMetadata(e,t,r,n)}function m(e,t){var r=R(e,t),n=C(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 l=c[s];a.has(l)||(a.add(l),i.push(l))}for(var u=0,f=o;u<f.length;u++)l=f[u],a.has(l)||(a.add(l),i.push(l));return i}function R(e,t){var r=F(e,t,!1);return r?r.OrdinaryOwnMetadataKeys(e,t):[]}function M(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(M(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=N(e,o);if(void 0!==n){var a=n.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(o=r.call(e)))return o;if(L(n=e.valueOf)&&!P(o=n.call(e)))return o}else{var n;if(L(n=e.valueOf)&&!P(o=n.call(e)))return o;var o,a=e.toString;if(L(a)&&!P(o=a.call(e)))return o}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 N(e,t){var r=e[t];if(null!=r){if(!L(r))throw new TypeError;return r}}function x(e){var t=N(e,a);if(!L(t))throw new TypeError;var r=t.call(e);if(!P(r))throw new TypeError;return r}function I(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 C(e){var t=Object.getPrototypeOf(e);if("function"!=typeof e||e===u)return t;if(t!==u)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 F(e,t,r){var n=h.getProvider(e,t);if(!w(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(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 n=(0,e[r])(t);if(!w(n)&&!A(n)){if(!V(n))throw new TypeError;t=n}}return t}(e,t)}if(!j(e))throw new TypeError;if(!P(t))throw new TypeError;if(!P(n)&&!w(n)&&!A(n))throw new TypeError;return A(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(!w(a)&&!A(a)){if(!P(a))throw new TypeError;n=a}}return n}(e,t,r=D(r),n)})),e("metadata",(function(e,t){return function(r,n){if(!P(r))throw new TypeError;if(!w(n)&&!function(e){switch(M(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(!P(r))throw new TypeError;return w(n)||(n=D(n)),b(e,t,r,n)})),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)),m(e,t)})),e("getOwnMetadataKeys",(function(e,t){if(!P(e))throw new TypeError;return w(t)||(t=D(t)),R(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 n=F(t,r,!1);return!w(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 +0,0 @@
|
|
|
1
|
-
export declare function id(): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
|
package/lib/identity/index.d.ts
DELETED
package/lib/identity/utils.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { Model } from "@decaf-ts/decorator-validation";
|
|
2
|
-
/**
|
|
3
|
-
* @summary Returns the primary key attribute for a {@link Model}
|
|
4
|
-
* @description searches in all the properties in the object for an {@link id} decorated property
|
|
5
|
-
*
|
|
6
|
-
* @param {Model} model
|
|
7
|
-
*
|
|
8
|
-
* @throws {InternalError} if no property or more than one properties are {@link id} decorated
|
|
9
|
-
* or no value is set in that property
|
|
10
|
-
*
|
|
11
|
-
* @function findPrimaryKey
|
|
12
|
-
*
|
|
13
|
-
* @category managers
|
|
14
|
-
*/
|
|
15
|
-
export declare function findPrimaryKey<T extends Model>(model: T): {
|
|
16
|
-
id: string;
|
|
17
|
-
props: any;
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* @summary Returns the primary key value for a {@link Model}
|
|
21
|
-
* @description searches in all the properties in the object for an {@link pk} decorated property
|
|
22
|
-
*
|
|
23
|
-
* @param {Model} model
|
|
24
|
-
* @param {boolean} [returnEmpty]
|
|
25
|
-
* @return {string} primary key
|
|
26
|
-
*
|
|
27
|
-
* @throws {InternalError} if no property or more than one properties are {@link pk} decorated
|
|
28
|
-
* @throws {NotFoundError} returnEmpty is false and no value is set on the {@link pk} decorated property
|
|
29
|
-
*
|
|
30
|
-
* @function findModelID
|
|
31
|
-
*
|
|
32
|
-
* @category managers
|
|
33
|
-
*/
|
|
34
|
-
export declare function findModelId(model: Model, returnEmpty?: boolean): any;
|
package/lib/index.d.ts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module db-decorators
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* @namespace Model
|
|
6
|
-
* @memberOf module:db-decorators
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* @namespace Operations
|
|
10
|
-
* @memberOf module:db-decorators
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* @namespace Repository
|
|
14
|
-
* @memberOf module:db-decorators
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
* @namespace Validation
|
|
18
|
-
* @memberOf module:db-decorators
|
|
19
|
-
*/
|
|
20
|
-
/**
|
|
21
|
-
* @namespace Validators
|
|
22
|
-
* @memberOf module:db-decorators.Validation
|
|
23
|
-
*/
|
|
24
|
-
/**
|
|
25
|
-
* @namespace Utils
|
|
26
|
-
* @memberOf module:db-decorators
|
|
27
|
-
*/
|
|
28
|
-
export * from "./identity";
|
|
29
|
-
export * from "./interfaces";
|
|
30
|
-
export * from "./model";
|
|
31
|
-
export * from "./operations";
|
|
32
|
-
export * from "./repository";
|
|
33
|
-
export * from "./validation";
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { CrudOperator } from "./CrudOperator";
|
|
2
|
-
export interface BulkCrudOperator<M> extends CrudOperator<M> {
|
|
3
|
-
createAll(models: M[], ...args: any[]): Promise<M[]>;
|
|
4
|
-
readAll(keys: string[] | number[], ...args: any[]): Promise<M[]>;
|
|
5
|
-
updateAll(models: M[], ...args: any[]): Promise<M[]>;
|
|
6
|
-
deleteAll(keys: string[] | number[], ...args: any[]): Promise<M[]>;
|
|
7
|
-
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { OperationKeys } from "../operations";
|
|
2
|
-
import { Model } from "@decaf-ts/decorator-validation";
|
|
3
|
-
import { Context } from "../repository";
|
|
4
|
-
export interface Contextual<M extends Model> {
|
|
5
|
-
context<C extends Context<M> = Context<M>>(operation: OperationKeys.CREATE | OperationKeys.READ | OperationKeys.UPDATE | OperationKeys.DELETE, ...args: any[]): Promise<C>;
|
|
6
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @summary Crud API
|
|
3
|
-
* @description Exposes a CRUD API
|
|
4
|
-
*
|
|
5
|
-
* @interface CrudOperator
|
|
6
|
-
*
|
|
7
|
-
* @category Managers
|
|
8
|
-
*/
|
|
9
|
-
export interface CrudOperator<M> {
|
|
10
|
-
/**
|
|
11
|
-
* @summary Create a new model
|
|
12
|
-
* @param {T} model
|
|
13
|
-
* @param {any[]} [args]
|
|
14
|
-
*
|
|
15
|
-
* @method
|
|
16
|
-
*/
|
|
17
|
-
create(model: M, ...args: any[]): Promise<M>;
|
|
18
|
-
/**
|
|
19
|
-
* @summary Read a model
|
|
20
|
-
* @param {string} key
|
|
21
|
-
* @param {any[]} [args]
|
|
22
|
-
*
|
|
23
|
-
* @method
|
|
24
|
-
*/
|
|
25
|
-
read(key: string | number, ...args: any[]): Promise<M>;
|
|
26
|
-
/**
|
|
27
|
-
* @summary update a model
|
|
28
|
-
* @param {T} model
|
|
29
|
-
* @param {any[]} [args]
|
|
30
|
-
*
|
|
31
|
-
* @method
|
|
32
|
-
*/
|
|
33
|
-
update(model: M, ...args: any[]): Promise<M>;
|
|
34
|
-
/**
|
|
35
|
-
* @summary delete a model
|
|
36
|
-
* @param {string} key
|
|
37
|
-
* @param {any[]} [args]
|
|
38
|
-
*
|
|
39
|
-
* @method
|
|
40
|
-
*/
|
|
41
|
-
delete(key: string | number, ...args: any[]): Promise<M>;
|
|
42
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Constructor, Model } from "@decaf-ts/decorator-validation";
|
|
2
|
-
import { BulkCrudOperator } from "./BulkCrudOperator";
|
|
3
|
-
/**
|
|
4
|
-
* @summary Interface holding basic CRUD APIs
|
|
5
|
-
* @typedef T extends {@link Model}
|
|
6
|
-
* @interface IRepository
|
|
7
|
-
*/
|
|
8
|
-
export interface IRepository<M extends Model> extends BulkCrudOperator<M> {
|
|
9
|
-
readonly class: Constructor<M>;
|
|
10
|
-
readonly pk: string;
|
|
11
|
-
}
|
package/lib/model/constants.d.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @summary Holds the Model reflection keys
|
|
3
|
-
* @const DBKeys
|
|
4
|
-
*
|
|
5
|
-
* @memberOf module:db-decorators.Model
|
|
6
|
-
*/
|
|
7
|
-
export declare const DBKeys: {
|
|
8
|
-
REFLECT: string;
|
|
9
|
-
REPOSITORY: string;
|
|
10
|
-
CLASS: string;
|
|
11
|
-
ID: string;
|
|
12
|
-
INDEX: string;
|
|
13
|
-
UNIQUE: string;
|
|
14
|
-
SERIALIZE: string;
|
|
15
|
-
READONLY: string;
|
|
16
|
-
TIMESTAMP: string;
|
|
17
|
-
HASH: string;
|
|
18
|
-
COMPOSED: string;
|
|
19
|
-
VERSION: string;
|
|
20
|
-
ORIGINAL: string;
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* @summary The default separator when concatenating indexes
|
|
24
|
-
*
|
|
25
|
-
* @const DefaultIndexSeparator
|
|
26
|
-
*
|
|
27
|
-
* @category Managers
|
|
28
|
-
* @subcategory Constants
|
|
29
|
-
*/
|
|
30
|
-
export declare const DefaultSeparator = "_";
|
|
31
|
-
/**
|
|
32
|
-
* @summary Holds the default timestamp date format
|
|
33
|
-
* @constant DEFAULT_TIMESTAMP_FORMAT
|
|
34
|
-
*
|
|
35
|
-
* @memberOf module:db-decorators.Model
|
|
36
|
-
*/
|
|
37
|
-
export declare const DEFAULT_TIMESTAMP_FORMAT = "dd/MM/yyyy HH:mm:ss:S";
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { Model } from "@decaf-ts/decorator-validation";
|
|
2
|
-
import { IRepository } from "../interfaces/IRepository";
|
|
3
|
-
import { Context } from "../repository/Context";
|
|
4
|
-
import { CrudOperations } from "../operations";
|
|
5
|
-
/**
|
|
6
|
-
*
|
|
7
|
-
* @param {str} str
|
|
8
|
-
* @memberOf db-decorators.model
|
|
9
|
-
*/
|
|
10
|
-
export declare function hashOnCreateUpdate<M extends Model, R extends IRepository<M>, Y = any>(this: R, data: Y, key: string, model: M, oldModel?: M): void;
|
|
11
|
-
export declare function hash(): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
|
|
12
|
-
export type ComposedFromMetadata = {
|
|
13
|
-
args: string[];
|
|
14
|
-
separator: string;
|
|
15
|
-
hashResult: boolean;
|
|
16
|
-
type: "keys" | "values";
|
|
17
|
-
prefix?: string;
|
|
18
|
-
suffix?: string;
|
|
19
|
-
};
|
|
20
|
-
export declare function composedFromCreateUpdate<M extends Model, V extends IRepository<M>>(this: V, context: Context<M>, data: ComposedFromMetadata, key: string, model: M): void;
|
|
21
|
-
export declare function composedFromKeys(args: string[], separator?: string, hash?: boolean, prefix?: string, suffix?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
|
|
22
|
-
export declare function composed(args: string[], separator?: string, hash?: boolean, prefix?: string, suffix?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
|
|
23
|
-
/**
|
|
24
|
-
* Creates a decorator function that updates the version of a model during create or update operations.
|
|
25
|
-
*
|
|
26
|
-
* @param {CrudOperations} operation - The type of operation being performed (CREATE or UPDATE).
|
|
27
|
-
* @returns {function} A function that updates the version of the model based on the operation type.
|
|
28
|
-
*
|
|
29
|
-
* @template M - Type extending Model
|
|
30
|
-
* @template V - Type extending IRepository<M>
|
|
31
|
-
*
|
|
32
|
-
* @this {V} - The repository instance
|
|
33
|
-
* @param {Context<M>} context - The context of the operation
|
|
34
|
-
* @param {unknown} data - Additional data for the operation (not used in this function)
|
|
35
|
-
* @param {string} key - The key of the version property in the model
|
|
36
|
-
* @param {M} model - The model being updated
|
|
37
|
-
* @throws {InternalError} If an invalid operation is provided or if version update fails
|
|
38
|
-
*/
|
|
39
|
-
export declare function versionCreateUpdate(operation: CrudOperations): <M extends Model, V extends IRepository<M>>(this: V, context: Context<M>, data: unknown, key: string, model: M) => void;
|
|
40
|
-
/**
|
|
41
|
-
* @description Creates a decorator for versioning a property in a model.
|
|
42
|
-
* @summary This decorator applies multiple sub-decorators to handle version management during create and update operations.
|
|
43
|
-
*
|
|
44
|
-
* @returns {Function} A composite decorator that:
|
|
45
|
-
* - Sets the type of the property to Number
|
|
46
|
-
* - Applies a version update on create operations
|
|
47
|
-
* - Applies a version update on update operations
|
|
48
|
-
* - Adds metadata indicating this property is used for versioning
|
|
49
|
-
*/
|
|
50
|
-
export declare function version(): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
|
package/lib/model/index.d.ts
DELETED
package/lib/model/model.d.ts
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import { Comparable, Hashable, ModelArg, ModelErrorDefinition, Serializable, Validatable, Constructor, ModelBuilderFunction, BuilderRegistry, ModelConstructor } from "@decaf-ts/decorator-validation";
|
|
2
|
-
declare module "@decaf-ts/decorator-validation" {
|
|
3
|
-
abstract class Model implements Validatable, Serializable, Hashable, Comparable<Model> {
|
|
4
|
-
protected constructor(arg?: ModelArg<Model>);
|
|
5
|
-
hasErrors(...exclusions: any[]): ModelErrorDefinition | undefined;
|
|
6
|
-
hasErrors(previousVersion?: Model | any, ...exclusions: any[]): ModelErrorDefinition | undefined;
|
|
7
|
-
/**
|
|
8
|
-
* @summary Compare object equality recursively
|
|
9
|
-
* @param {any} obj object to compare to
|
|
10
|
-
* @param {string} [exceptions] property names to be excluded from the comparison
|
|
11
|
-
*/
|
|
12
|
-
equals(obj: any, ...exceptions: string[]): boolean;
|
|
13
|
-
/**
|
|
14
|
-
* @summary Returns the serialized model according to the currently defined {@link Serializer}
|
|
15
|
-
*/
|
|
16
|
-
serialize(): string;
|
|
17
|
-
/**
|
|
18
|
-
* @summary Override the implementation for js's 'toString()' which sucks...
|
|
19
|
-
* @override
|
|
20
|
-
*/
|
|
21
|
-
toString(): string;
|
|
22
|
-
/**
|
|
23
|
-
* @summary Defines a default implementation for object hash. Relies on a very basic implementation based on Java's string hash;
|
|
24
|
-
*/
|
|
25
|
-
hash(): string;
|
|
26
|
-
/**
|
|
27
|
-
* @summary Deserializes a Model
|
|
28
|
-
* @param {string} str
|
|
29
|
-
*
|
|
30
|
-
* @param args
|
|
31
|
-
* @throws {Error} If it fails to parse the string, or if it fails to build the model
|
|
32
|
-
*/
|
|
33
|
-
static deserialize(str: string): any;
|
|
34
|
-
/**
|
|
35
|
-
* @summary Repopulates the Object properties with the ones from the new object
|
|
36
|
-
* @description Iterates all common properties of obj (if existing) and self, and copies them onto self
|
|
37
|
-
*
|
|
38
|
-
* @param {T} self
|
|
39
|
-
* @param {T | Record<string, any>} [obj]
|
|
40
|
-
*
|
|
41
|
-
*/
|
|
42
|
-
static fromObject<T extends Model>(self: T, obj?: T | Record<string, any>): T;
|
|
43
|
-
/**
|
|
44
|
-
* @summary Repopulates the instance with the ones from the new Model Object
|
|
45
|
-
* @description Iterates all common properties of obj (if existing) and self, and copies them onto self.
|
|
46
|
-
* Is aware of nested Model Objects and rebuilds them also.
|
|
47
|
-
* When List properties are decorated with {@link list}, they list items will also be rebuilt
|
|
48
|
-
*
|
|
49
|
-
* @param {T} self
|
|
50
|
-
* @param {T | Record<string, any>} [obj]
|
|
51
|
-
*
|
|
52
|
-
*/
|
|
53
|
-
static fromModel<T extends Model>(self: T, obj?: T | Record<string, any>): T;
|
|
54
|
-
/**
|
|
55
|
-
* @summary Sets the Global {@link ModelBuilderFunction}
|
|
56
|
-
* @param {ModelBuilderFunction} [builder]
|
|
57
|
-
*/
|
|
58
|
-
static setBuilder(builder?: ModelBuilderFunction): void;
|
|
59
|
-
/**
|
|
60
|
-
* @summary Retrieves the current global {@link ModelBuilderFunction}
|
|
61
|
-
*/
|
|
62
|
-
static getBuilder(): ModelBuilderFunction | undefined;
|
|
63
|
-
/**
|
|
64
|
-
* Returns the current {@link ModelRegistryManager}
|
|
65
|
-
*
|
|
66
|
-
* @return ModelRegistry, defaults to {@link ModelRegistryManager}
|
|
67
|
-
*/
|
|
68
|
-
private static getRegistry;
|
|
69
|
-
/**
|
|
70
|
-
* Returns the current actingModelRegistry
|
|
71
|
-
*
|
|
72
|
-
* @param {BuilderRegistry} modelRegistry the new implementation of Registry
|
|
73
|
-
*/
|
|
74
|
-
static setRegistry(modelRegistry: BuilderRegistry<any>): void;
|
|
75
|
-
/**
|
|
76
|
-
* @summary register new Models
|
|
77
|
-
* @param {any} constructor
|
|
78
|
-
* @param {string} [name] when not defined, the name of the constructor will be used
|
|
79
|
-
*
|
|
80
|
-
* @see ModelRegistry
|
|
81
|
-
*/
|
|
82
|
-
static register<T extends Model>(constructor: ModelConstructor<T>, name?: string): void;
|
|
83
|
-
/**
|
|
84
|
-
* @summary Gets a registered Model {@link ModelConstructor}
|
|
85
|
-
* @param {string} name
|
|
86
|
-
*
|
|
87
|
-
* @see ModelRegistry
|
|
88
|
-
*/
|
|
89
|
-
static get<T extends Model>(name: string): ModelConstructor<T> | undefined;
|
|
90
|
-
/**
|
|
91
|
-
* @param {Record<string, any>} obj
|
|
92
|
-
* @param {string} [clazz] when provided, it will attempt to find the matching constructor
|
|
93
|
-
*
|
|
94
|
-
* @throws Error If clazz is not found, or obj is not a {@link Model} meaning it has no {@link ModelKeys.ANCHOR} property
|
|
95
|
-
*
|
|
96
|
-
* @see ModelRegistry
|
|
97
|
-
*/
|
|
98
|
-
static build<T extends Model>(obj?: Record<string, any>, clazz?: string): T;
|
|
99
|
-
static getMetadata<V extends Model>(model: V): any;
|
|
100
|
-
static getAttributes<V extends Model>(model: Constructor<V> | V): string[];
|
|
101
|
-
static equals<V extends Model>(obj1: V, obj2: V, ...exceptions: any[]): boolean;
|
|
102
|
-
static hasErrors<V extends Model>(model: V, ...exceptions: any[]): ModelErrorDefinition | undefined;
|
|
103
|
-
static serialize<V extends Model>(model: V): any;
|
|
104
|
-
static hash<V extends Model>(model: V): any;
|
|
105
|
-
/**
|
|
106
|
-
* @summary Builds the key to store as Metadata under Reflections
|
|
107
|
-
* @description concatenates {@link ModelKeys#REFLECT} with the provided key
|
|
108
|
-
* @param {string} str
|
|
109
|
-
*/
|
|
110
|
-
static key(str: string): string;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Model, ModelErrorDefinition } from "@decaf-ts/decorator-validation";
|
|
2
|
-
/**
|
|
3
|
-
* @summary Validates the update of a model
|
|
4
|
-
*
|
|
5
|
-
* @param {T} oldModel
|
|
6
|
-
* @param {T} newModel
|
|
7
|
-
* @param {string[]} [exceptions]
|
|
8
|
-
*
|
|
9
|
-
* @function validateCompare
|
|
10
|
-
* @return {ModelErrorDefinition | undefined}
|
|
11
|
-
*
|
|
12
|
-
* @memberOf module:db-decorators.Model
|
|
13
|
-
*/
|
|
14
|
-
export declare function validateCompare<T extends Model>(oldModel: T, newModel: T, ...exceptions: string[]): ModelErrorDefinition | undefined;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Model } from "@decaf-ts/decorator-validation";
|
|
2
|
-
import { OperationHandler } from "./types";
|
|
3
|
-
import { OperationKeys } from "./constants";
|
|
4
|
-
/**
|
|
5
|
-
* @summary Static class holding common Operation Functionality
|
|
6
|
-
*
|
|
7
|
-
* @class Operations
|
|
8
|
-
*
|
|
9
|
-
* @category Operations
|
|
10
|
-
*/
|
|
11
|
-
export declare class Operations {
|
|
12
|
-
private static registry;
|
|
13
|
-
private constructor();
|
|
14
|
-
static getHandlerName(handler: OperationHandler<any, any, any>): any;
|
|
15
|
-
static key(str: string): string;
|
|
16
|
-
static get(targetName: string | Record<string, any>, propKey: string, operation: string): OperationHandler<Model, import("..").IRepository<Model>, unknown>[] | undefined;
|
|
17
|
-
private static getOpRegistry;
|
|
18
|
-
static register<V extends Model>(handler: OperationHandler<V, any, any>, operation: OperationKeys, target: V, propKey: string | symbol): void;
|
|
19
|
-
}
|