@decaf-ts/core 0.3.23 → 0.3.25
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/dist/core.bundle.min.js +1 -1
- package/dist/esm/core.bundle.min.esm.js +1 -1
- package/lib/esm/identity/decorators.d.ts +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +2 -2
- package/lib/esm/model/decorators.d.ts +9 -9
- package/lib/esm/model/decorators.js +4 -1
- package/lib/esm/persistence/Adapter.d.ts +4 -2
- package/lib/esm/persistence/Adapter.js +28 -2
- package/lib/esm/persistence/decorators.d.ts +1 -1
- package/lib/esm/persistence/errors.d.ts +3 -0
- package/lib/esm/persistence/errors.js +6 -1
- package/lib/esm/repository/Context.d.ts +1 -1
- package/lib/esm/repository/Context.js +1 -1
- package/lib/esm/repository/Repository.js +9 -7
- package/lib/esm/validators/decorators.d.ts +1 -1
- package/lib/identity/decorators.d.ts +1 -1
- package/lib/index.cjs +2 -2
- package/lib/index.d.ts +1 -1
- package/lib/model/decorators.cjs +4 -1
- package/lib/model/decorators.d.ts +9 -9
- package/lib/persistence/Adapter.cjs +28 -2
- package/lib/persistence/Adapter.d.ts +4 -2
- package/lib/persistence/decorators.d.ts +1 -1
- package/lib/persistence/errors.cjs +8 -2
- package/lib/persistence/errors.d.ts +3 -0
- package/lib/repository/Context.cjs +1 -1
- package/lib/repository/Context.d.ts +1 -1
- package/lib/repository/Repository.cjs +8 -6
- package/lib/validators/decorators.d.ts +1 -1
- package/package.json +7 -2
@@ -1,2 +1,2 @@
|
|
1
1
|
/*! For license information please see core.bundle.min.esm.js.LICENSE.txt */
|
2
|
-
var e={5580:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.pkOnCreate=d,t.pk=function(e=o.DefaultSequenceOptions){return e=Object.assign({},o.DefaultSequenceOptions,e),(0,i.apply)((0,c.index)([u.OrderDirection.ASC,u.OrderDirection.DSC]),(0,n.required)(),(0,a.readonly)(),(0,n.propMetadata)(s.Repository.key(a.DBKeys.ID),e),(0,a.onCreate)(d,e))};const n=r(2302),o=r(643),a=r(5922),i=r(32),s=r(3932),c=r(5893),l=r(861),u=r(5666);async function d(e,t,r,n){if(!t.type||n[r])return;let o;t.name||(t.name=(0,l.sequenceNameForModel)(n,"pk"));try{o=await this.adapter.Sequence(t)}catch(e){throw new a.InternalError(`Failed to instantiate Sequence ${t.name}: ${e}`)}var i,s,c;i=n,s=r,c=await o.next(),Object.defineProperty(i,s,{enumerable:!0,writable:!1,configurable:!0,value:c})}},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.getTableName=i,t.sequenceNameForModel=function(e,...t){return[i(e),...t].join("_")};const n=r(2302),o=r(6946),a=r(6176);function i(e){return Reflect.getMetadata(o.Adapter.key(a.PersistenceKeys.TABLE),e instanceof n.Model?e.constructor:e)||(e instanceof n.Model?e.constructor.name:e.name)}},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}),t.VERSION=void 0;const a=r(5666),i=r(465);o(r(2912),t),o(r(1206),t),o(r(3847),t),o(r(4017),t),o(r(6746),t),o(r(5666),t),o(r(6193),t),i.Injectables.setRegistry(new a.InjectablesRegistry),t.VERSION="0.3.22"},5261:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},1385:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},1461:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},9314:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},4274:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},9437:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},643:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BigIntSequence=t.NumericSequence=t.DefaultSequenceOptions=void 0,t.DefaultSequenceOptions={type:"Number",startWith:0,incrementBy:1,cycle:!1},t.NumericSequence={type:"Number",startWith:0,incrementBy:1,cycle:!1},t.BigIntSequence={type:"BigInt",startWith:0,incrementBy:1,cycle:!1}},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(5261),t),o(r(1385),t),o(r(1461),t),o(r(9314),t),o(r(4274),t),o(r(9437),t),o(r(643),t)},9669: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.BaseModel=void 0;const a=r(5922),i=r(2302);class s extends i.Model{constructor(e){super(e)}}t.BaseModel=s,n([(0,a.timestamp)(a.DBOperations.CREATE),o("design:type",Date)],s.prototype,"createdOn",void 0),n([(0,a.timestamp)(),o("design:type",Date)],s.prototype,"updatedOn",void 0)},980: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.User=void 0;const a=r(2302),i=r(5580);let s=class extends a.Model{constructor(e){super(e)}};t.User=s,n([(0,i.pk)(),o("design:type",String)],s.prototype,"id",void 0),n([(0,a.list)([String]),o("design:type",Array)],s.prototype,"roles",void 0),n([(0,a.list)([String]),o("design:type",Array)],s.prototype,"affiliations",void 0),t.User=s=n([(0,a.model)(),o("design:paramtypes",[Object])],s)},7038:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createOrUpdate=c,t.oneToOneOnCreate=async function(e,t,r,i){const s=i[r];if(!s)return;if("object"!=typeof s){const t=p(i,r),n=await t.read(s);return await d(e,i,r,s,n),void(i[r]=s)}const c=n.Model.get(t.class);if(!c)throw new a.InternalError(`Could not find model ${t.class}`);const l=o.Repository.forModel(c),u=await l.create(s),f=(0,a.findPrimaryKey)(u).id;await d(e,i,r,u[f],u),i[r]=u[f]},t.oneToOneOnUpdate=async function(e,t,r,n){const o=n[r];if(!o)return;if(t.cascade.update!==s.Cascade.CASCADE)return;if("object"!=typeof o){const t=p(n,r),a=await t.read(o);return await d(e,n,r,o,a),void(n[r]=o)}const i=await c(n[r],e),l=(0,a.findPrimaryKey)(i).id;await d(e,n,r,i[l],i),n[r]=i[l]},t.oneToOneOnDelete=async function(e,t,r,o){const a=o[r];if(!a)return;if(t.cascade.update!==s.Cascade.CASCADE)return;const i=p(o,r);let c;c=a instanceof n.Model?await i.delete(o[r][i.pk],e):await i.delete(o[r],e),await d(e,o,r,c[i.pk],c)},t.oneToManyOnCreate=l,t.oneToManyOnUpdate=async function(e,t,r,n){const{cascade:o}=t;if(o.update===s.Cascade.CASCADE)return l.call(this,e,t,r,n)},t.oneToManyOnDelete=async function(e,t,r,n){if(t.cascade.delete!==s.Cascade.CASCADE)return;const i=n[r];if(!i||!i.length)return;const c=typeof i[0];if(!i.every((e=>typeof e===c)))throw new a.InternalError(`Invalid operation. All elements of property ${r} must match the same type.`);const l="object"===c,u=l?o.Repository.forModel(i[0]):p(n,r),f=new Set([...l?i.map((e=>e[u.pk])):i]);for(const t of f.values()){const o=await u.delete(t,e);await d(e,n,r,t,o)}n[r]=[...f]},t.getPopulateKey=u,t.cacheModelForPopulate=d,t.populate=async function(e,t,r,n){if(!t.populate)return;const o=n[r],i=Array.isArray(o);if(void 0===o||i&&0===o.length)return;const s=await async function(e,t,r,n){let o,i;const s=[];for(const c of n){o=u(t.constructor.name,r,c);try{i=await e.get(o)}catch(e){const n=p(t,r);if(!n)throw new a.InternalError("Could not find repo");i=await n.read(c)}s.push(i)}return s}(e,n,r,i?o:[o]);n[r]=i?s:s[0]},t.repositoryFromTypeMetadata=p;const n=r(2302),o=r(3932),a=r(5922),i=r(6176),s=r(2859);async function c(e,t,r){if(!r){const t=n.Model.get(e.constructor.name);if(!t)throw new a.InternalError(`Could not find model ${e.constructor.name}`);r=o.Repository.forModel(t)}if(void 0===e[r.pk])return r.create(e,t);try{return r.update(e,t)}catch(n){if(!(n instanceof a.NotFoundError))throw n;return r.create(e,t)}}async function l(e,t,r,n){const o=n[r];if(!o||!o.length)return;const i=typeof o[0];if(!o.every((e=>typeof e===i)))throw new a.InternalError(`Invalid operation. All elements of property ${r} must match the same type.`);const s=new Set([...o]);if("object"!==i){const t=p(n,r);for(const o of s){const a=await t.read(o);await d(e,n,r,o,a)}return void(n[r]=[...s])}const l=(0,a.findPrimaryKey)(o[0]).id,u=new Set;for(const t of o){const o=await c(t,e);await d(e,n,r,o[l],o),u.add(o[l])}n[r]=[...u]}function u(e,t,r){return[i.PersistenceKeys.POPULATE,e,t,r].join(".")}async function d(e,t,r,n,o){const a=u(t.constructor.name,r,n);return e.put(a,o)}const f=["array","string","number","boolean","symbol","function","object","undefined","null","bigint"];function p(e,t){const r=Reflect.getMetadata(n.Validation.key(Array.isArray(e[t])?n.ValidationKeys.LIST:n.ValidationKeys.TYPE),e,t),i=Array.isArray(e[t])?r.class:r.customTypes;if(!r||!i)throw new a.InternalError(`Failed to find types decorators for property ${t}`);const s=(Array.isArray(i)?[...i]:[i]).find((e=>!f.includes(`${e}`.toLowerCase())));if(!s)throw new a.InternalError(`Property key ${t} does not have a valid constructor type`);const c=n.Model.get(s);if(!c)throw new a.InternalError(`No registered model found for ${s}`);return o.Repository.forModel(c)}},5893:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.table=function(e){return(0,o.metadata)(c.Adapter.key(a.PersistenceKeys.TABLE),e)},t.column=function(e){return(0,s.propMetadata)(c.Adapter.key(a.PersistenceKeys.COLUMN),e)},t.index=function(e,t){return(0,s.propMetadata)(l.Repository.key(`${a.PersistenceKeys.INDEX}${t&&t.length?`.${t.join(".")}`:""}`),{directions:e,compositions:t})},t.uniqueOnCreateUpdate=f,t.unique=function(){return(0,o.apply)((0,n.onCreateUpdate)(f),(0,s.propMetadata)(l.Repository.key(a.PersistenceKeys.UNIQUE),{}))},t.createdByOnCreateUpdate=p,t.createdBy=function(){return(0,o.apply)((0,n.onCreate)(p),(0,s.propMetadata)(l.Repository.key(a.PersistenceKeys.CREATED_BY),{}))},t.updatedBy=function(){return(0,o.apply)((0,n.onCreateUpdate)(p),(0,s.propMetadata)(l.Repository.key(a.PersistenceKeys.CREATED_BY),{}))},t.oneToOne=function(e,t=i.DefaultCascade,r=!0){s.Model.register(e);const c={class:e.name,cascade:t,populate:r};return(0,o.apply)((0,s.prop)(a.PersistenceKeys.RELATIONS),(0,s.type)([e.name,String.name,Number.name,BigInt.name]),(0,n.onCreate)(d.oneToOneOnCreate,c),(0,n.onUpdate)(d.oneToOneOnUpdate,c),(0,n.onDelete)(d.oneToOneOnDelete,c),(0,n.afterAny)(d.populate,c),(0,s.propMetadata)(l.Repository.key(a.PersistenceKeys.ONE_TO_ONE),c))},t.oneToMany=function(e,t=i.DefaultCascade,r=!0){s.Model.register(e);const c={class:e.name,cascade:t,populate:r};return(0,o.apply)((0,s.prop)(a.PersistenceKeys.RELATIONS),(0,s.list)([e,String,Number,BigInt]),(0,n.onCreate)(d.oneToManyOnCreate,c),(0,n.onUpdate)(d.oneToManyOnUpdate,c),(0,n.onDelete)(d.oneToManyOnDelete,c),(0,n.afterAny)(d.populate,c),(0,s.propMetadata)(l.Repository.key(a.PersistenceKeys.ONE_TO_MANY),c))},t.manyToOne=function(e,t=i.DefaultCascade,r=!0){s.Model.register(e);const n={class:e.name,cascade:t,populate:r};return(0,o.apply)((0,s.prop)(a.PersistenceKeys.RELATIONS),(0,s.type)([e.name,String.name,Number.name,BigInt.name]),(0,s.propMetadata)(l.Repository.key(a.PersistenceKeys.MANY_TO_ONE),n))};const n=r(5922),o=r(32),a=r(6176),i=r(2859),s=r(2302),c=r(6946),l=r(3932),u=r(2063),d=r(7038);async function f(e,t,r,o){if(o[r]&&(await this.select().where(u.Condition.attribute(r).eq(o[r])).execute()).length)throw new n.ConflictError(`model already exists with property ${r} equal to ${JSON.stringify(o[r],void 0,2)}`)}async function p(e,t,r,n){const o=e.user;n[r]=o.id}},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(9669),t),o(r(5893),t),o(r(9282),t),o(r(980),t)},9282:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},6946:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Adapter=void 0;const n=r(5922),o=r(2302),a=r(6176),i=r(2258),s=r(3932);class c{static{this._cache={}}get native(){return this._native}constructor(e,t){if(this.flavour=t,this._observers=[],this.flavour in c._cache)throw new n.InternalError(`Persistence adapter flavour ${this.flavour} already registered`);this._native=e,c._cache[this.flavour]=this}Query(){return new i.Query(this)}isReserved(e){return!e}prepare(e,t){const r=Object.entries(e).reduce(((t,[r,o])=>{const a=s.Repository.column(e,r);if(this.isReserved(a))throw new n.InternalError(`Property name ${a} is reserved`);return t[a]=o,t}),{});return e[a.PersistenceKeys.METADATA]&&Object.defineProperty(r,a.PersistenceKeys.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:e[a.PersistenceKeys.METADATA]}),{record:r,id:e[t]}}revert(e,t,r,n){const i={};i[r]=n;const c="string"==typeof t?o.Model.build(i,t):new t(i),l=e[a.PersistenceKeys.METADATA],u=Object.keys(c).reduce(((t,n)=>(n===r||(t[n]=e[s.Repository.column(t,n)]),t)),c);return l&&Object.defineProperty(u,a.PersistenceKeys.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:l}),u}async createAll(e,t,r,...o){if(t.length!==r.length)throw new n.InternalError("Ids and models must have the same length");return Promise.all(t.map(((t,n)=>this.create(e,t,r[n],...o))))}async readAll(e,t,...r){return Promise.all(t.map((t=>this.read(e,t,...r))))}async updateAll(e,t,r,...o){if(t.length!==r.length)throw new n.InternalError("Ids and models must have the same length");return Promise.all(t.map(((t,n)=>this.update(e,t,r[n],...o))))}async deleteAll(e,t,...r){return Promise.all(t.map((t=>this.delete(e,t,...r))))}observe(e){if(-1!==this._observers.indexOf(e))throw new n.InternalError("Observer already registered");this._observers.push(e)}unObserve(e){const t=this._observers.indexOf(e);if(-1===t)throw new n.InternalError("Failed to find Observer");this._observers.splice(t,1)}async updateObservers(...e){(await Promise.allSettled(this._observers.map((t=>t.refresh(...e))))).forEach(((e,t)=>{"rejected"===e.status&&console.warn(`Failed to update observable ${this._observers[t]}: ${e.reason}`)}))}static get current(){return this._current}static get(e){if(e in this._cache)return this._cache[e];throw new n.InternalError(`No Adapter registered under ${e}.`)}static setCurrent(e){const t=this.get(e);if(!t)throw new n.NotFoundError(`No persistence flavour ${e} registered`);this._current=t}static key(e){return s.Repository.key(e)}static models(e){try{const t=o.Model.getRegistry().cache;return Object.values(t).map((t=>{let r=Reflect.getMetadata(c.key(a.PersistenceKeys.ADAPTER),t);if(r&&r===e)return t;if(!r){if(!Reflect.getMetadata(s.Repository.key(n.DBKeys.REPOSITORY),t))return;const e=s.Repository.forModel(t);return r=Reflect.getMetadata(c.key(a.PersistenceKeys.ADAPTER),e),r}})).filter((e=>!!e))}catch(e){throw new n.InternalError(e)}}}t.Adapter=c},2224:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Sequence=void 0;const n=r(861);t.Sequence=class{constructor(e){this.options=e}static pk(e){return(0,n.sequenceNameForModel)(e,"pk")}}},6176:(e,t)=>{var r,n;Object.defineProperty(t,"__esModule",{value:!0}),t.Roles=t.PersistenceKeys=void 0,function(e){e.INDEX="index",e.UNIQUE="unique",e.ADAPTER="adapter",e.INJECTABLE="decaf_{0}_adapter_for_{1}",e.TABLE="table",e.COLUMN="column",e.METADATA="__metadata",e.RELATIONS="__relations",e.CLAUSE_SEQUENCE="clause-sequence",e.CREATED_BY="ownership.created-by",e.UPDATED_BY="ownership.updated-by",e.ONE_TO_ONE="relations.one-to-one",e.ONE_TO_MANY="relations.one-to-many",e.MANY_TO_ONE="relations.many-to-one",e.POPULATE="populate"}(r||(t.PersistenceKeys=r={})),function(e){e.ADMIN="admin",e.WRITER="writer",e.READER="reader"}(n||(t.Roles=n={}))},263:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.uses=function(e){return(0,n.apply)((0,n.metadata)(a.Adapter.key(o.PersistenceKeys.ADAPTER),e))};const n=r(32),o=r(6176),a=r(6946)},5962:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ConnectionError=void 0;const n=r(5922);class o extends n.BaseError{constructor(e){super(o.name,e)}}t.ConnectionError=o},4017: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(6946),t),o(r(6176),t),o(r(263),t),o(r(5962),t),o(r(2224),t)},7345: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.Clause=void 0;const a=r(2302),i=r(743),s=(r(2755),r(7335));class c extends a.Model{constructor(e){if(super(),this.priority=e?.priority,this.statement=e?.statement,!this.statement||!this.priority)throw new i.QueryError("Missing statement or priority. Should be impossible");this.statement.addClause(this)}get adapter(){return this.statement.getAdapter()}get Clauses(){return this.statement.getAdapter().Clauses}getPriority(){return this.priority}async execute(){return this.statement.execute()}async paginate(e){return this.statement.paginate(e)}toString(){return this.constructor.name}}t.Clause=c,n([(0,a.required)(),o("design:type",Number)],c.prototype,"priority",void 0),n([(0,a.required)(),(0,a.type)("object"),o("design:type",s.Statement)],c.prototype,"statement",void 0)},2503:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ClauseFactory=void 0,t.ClauseFactory=class{constructor(e){this.adapter=e}}},2063: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.Condition=void 0;const a=r(2302),i=r(2755),s=r(743);class c extends a.Model{constructor(e,t,r){super(),this.attr1=void 0,this.operator=void 0,this.comparison=void 0,this.attr1=e,this.operator=t,this.comparison=r}and(e){return c.and(this,e)}or(e){return c.or(this,e)}not(e){return new c(this,i.Operator.NOT,e)}hasErrors(...e){const t=super.hasErrors(...e);if(t)return t;if("string"==typeof this.attr1){if(this.comparison instanceof c)return{comparison:{condition:"Both sides of the comparison must be of the same type"}};if(-1===Object.values(i.Operator).indexOf(this.operator))return{operator:{condition:(0,a.sf)("Invalid operator {0}",this.operator)}}}if(this.attr1 instanceof c){if(!(this.comparison instanceof c)&&this.operator!==i.Operator.NOT)return{comparison:{condition:(0,a.sf)("Invalid operator {0}",this.operator)}};if(-1===Object.values(i.GroupOperator).indexOf(this.operator)&&this.operator!==i.Operator.NOT)return{operator:{condition:(0,a.sf)("Invalid operator {0}",this.operator)}}}}static and(e,t){return c.group(e,i.GroupOperator.AND,t)}static or(e,t){return c.group(e,i.GroupOperator.OR,t)}static group(e,t,r){return new c(e,t,r)}static attribute(e){return(new c.Builder).attribute(e)}static{this.Builder=class{constructor(){this.attr1=void 0,this.operator=void 0,this.comparison=void 0}attribute(e){return this.attr1=e,this}eq(e){return this.setOp(i.Operator.EQUAL,e)}dif(e){return this.setOp(i.Operator.DIFFERENT,e)}gt(e){return this.setOp(i.Operator.BIGGER,e)}lt(e){return this.setOp(i.Operator.SMALLER,e)}gte(e){return this.setOp(i.Operator.BIGGER_EQ,e)}lte(e){return this.setOp(i.Operator.SMALLER_EQ,e)}in(e){return this.setOp(i.Operator.IN,e)}regexp(e){return this.setOp(i.Operator.REGEXP,new RegExp(e).source)}setOp(e,t){return this.operator=e,this.comparison=t,this.build()}build(){try{return new c(this.attr1,this.operator,this.comparison)}catch(e){throw new s.QueryError(e)}}}}static get builder(){return new c.Builder}}t.Condition=c,n([(0,a.required)(),o("design:type",Object)],c.prototype,"attr1",void 0),n([(0,a.required)(),o("design:type",String)],c.prototype,"operator",void 0),n([(0,a.required)(),o("design:type",Object)],c.prototype,"comparison",void 0)},8233:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Paginator=void 0;const n=r(743);t.Paginator=class{get current(){return this._currentPage}get total(){return this._totalPages}get count(){return this._recordCount}get statement(){return this._statement||(this._statement=this.prepare(this._rawStatement)),this._statement}get adapter(){return this.stat.getAdapter()}constructor(e,t,r){this.stat=e,this.size=t,this._rawStatement=r}async next(){return this.page(this.current+1)}async previous(){return this.page(this.current-1)}validatePage(e){if(e<1||!Number.isInteger(e))throw new n.PagingError("page number cannot be under 1 and must be an integer");if(e>this._totalPages)throw new n.PagingError("page number cannot be under 1 and must be an integer")}}},2258:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Query=void 0;const n=r(2755);t.Query=class{constructor(e){this.adapter=e}select(e=n.Const.FULL_RECORD){return this.adapter.Clauses.select(e)}min(e){return this.select().min(e)}max(e){return this.select().max(e)}distinct(e){return this.select().distinct(e)}count(e){return this.select().count(e)}insert(){return this.adapter.Clauses.insert()}}},7335: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.Statement=void 0;const a=r(2302),i=r(2755),s=r(743),c=r(6193),l=r(4017),u=r(5922);class d extends a.Model{constructor(e){super(),this.clauses=void 0,this.target=void 0,this.fullRecord=!1,this.type=void 0,this.adapter=e}build(){if(!this.clauses)throw new s.QueryError((0,a.sf)("Failed to build Statement:\n{0}","No Clauses"));this.clauses.sort(((e,t)=>e.getPriority()-t.getPriority()));const e=this.hasErrors();if(e)throw new s.QueryError((0,a.sf)("Poorly built statement: {0}",e.toString()));let t;try{const e=function(t,r={}){const n=t.shift();if(!n)return r;const o=n.build(r);return e(t,o)};t=e(new Array(...this.clauses))}catch(e){throw new s.QueryError(e)}return t}async execute(){try{const e=this.build();return this.raw(e)}catch(e){throw new u.InternalError(e)}}async raw(e,...t){const r=await this.adapter.raw(e,!0,...t);if(!this.fullRecord)return r;if(!this.target)throw new u.InternalError("No target defined in statement. should never happen");const n=(0,u.findPrimaryKey)(new this.target).id,o=function(e){const t=e[n];return this.adapter.revert(e,this.target,n,t)}.bind(this);return Array.isArray(r)?r.map(o):o(r)}hasErrors(...e){const t=super.hasErrors(...e);if(t)return t;for(const e in this.clauses){const t=this.clauses[e].hasErrors();if(t)return t}}addClause(e){this.clauses||(this.clauses=[]);const t=e.getPriority(),r=this.clauses.map(((e,t)=>({index:t,clause:e}))).find((e=>e.clause.getPriority()===t));r&&(this.clauses[r.index]=e),this.clauses.push(e)}getAdapter(){return this.adapter}setTarget(e){if(this.target)throw new s.QueryError((0,a.sf)("Output class already defined to {0}",this.target.name));this.target=e}getTarget(){if(!this.target)throw new u.InternalError("No target defined for statement");return this.target}setFullRecord(){this.fullRecord=!0}setMode(e){this.type=e}}t.Statement=d,n([(0,a.required)(),(0,a.minlength)(i.MandatoryPriorities.length),(0,c.clauseSequence)(),o("design:type",Array)],d.prototype,"clauses",void 0),n([(0,a.required)(),(0,a.type)(["object"]),o("design:type",l.Adapter)],d.prototype,"adapter",void 0),n([(0,a.required)(),o("design:type",Object)],d.prototype,"target",void 0),n([(0,a.required)(),o("design:type",String)],d.prototype,"type",void 0)},8066:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FromClause=void 0;const n=r(2755),o=r(5150),a=r(743),i=r(2302);class s extends o.SelectorBasedClause{constructor(e){if(super(Object.assign({},e,{priority:n.Priority.FROM})),this.selector="string"==typeof this.selector?i.Model.get(this.selector):this.selector,!this.selector)throw new a.QueryError((0,i.stringFormat)("Could not find selector model: {0}"));this.statement.setTarget(this.selector)}where(e){return this.Clauses.where(this.statement,e)}orderBy(...e){return this.Clauses.orderBy(this.statement,e)}groupBy(e){return this.Clauses.groupBy(this.statement,e)}limit(e){return this.Clauses.limit(this.statement,e)}offset(e){return this.Clauses.offset(this.statement,e)}}t.FromClause=s},1344:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.GroupByClause=void 0;const n=r(2755),o=r(5150);class a extends o.SelectorBasedClause{constructor(e){super(Object.assign({},e,{priority:n.Priority.GROUP_BY}))}}t.GroupByClause=a},2455: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.InsertClause=void 0;const a=r(2755),i=r(7345),s=r(2302);class c extends i.Clause{constructor(e){super(Object.assign({},e,{priority:a.Priority.SELECT})),this.table=void 0}into(e){return this.table=e.name,this.statement.setTarget(e),this}values(...e){return this.Clauses.values(this.statement,e)}where(e){return this.Clauses.where(this.statement,e)}}t.InsertClause=c,n([(0,s.required)(),o("design:type",String)],c.prototype,"table",void 0)},3069:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LimitClause=void 0;const n=r(5150),o=r(2755);class a extends n.SelectorBasedClause{constructor(e){super(Object.assign({},e,{priority:o.Priority.GROUP_BY}))}offset(e){return this.Clauses.offset(this.statement,e)}}t.LimitClause=a},1897:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OffsetClause=void 0;const n=r(5150),o=r(2755);class a extends n.SelectorBasedClause{constructor(e){super(Object.assign({},e,{priority:o.Priority.GROUP_BY}))}}t.OffsetClause=a},4223:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OrderByClause=void 0;const n=r(5150),o=r(2755);class a extends n.SelectorBasedClause{constructor(e){super(Object.assign({},e,{priority:o.Priority.ORDER_BY}))}groupBy(e){return this.Clauses.groupBy(this.statement,e)}limit(e){return this.Clauses.limit(this.statement,e)}offset(e){return this.Clauses.offset(this.statement,e)}}t.OrderByClause=a},9806:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelectClause=void 0;const n=r(5150),o=r(2755);class a extends n.SelectorBasedClause{constructor(e){super(Object.assign({},e,{priority:o.Priority.SELECT})),this.isDistinct=!1,this.isCount=!1,this.isMax=!1,this.isMin=!1,this.selector===o.Const.FULL_RECORD&&this.statement.setFullRecord(),this.statement.setMode(o.StatementType.QUERY)}distinct(e){return this.isDistinct=!0,this.selector=e,this}count(e){return this.selector=e,this}min(e){return this.selector=e,this}max(e){return this.selector=e,this}from(e){return this.Clauses.from(this.statement,e)}}t.SelectClause=a},5150: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.SelectorBasedClause=void 0;const a=r(7345),i=r(2302);class s extends a.Clause{constructor(e){super(e),this.selector=void 0,this.selector=e.selector}toString(){return this.constructor.name+`[${this.selector}]`}}t.SelectorBasedClause=s,n([(0,i.required)(),o("design:type",Object)],s.prototype,"selector",void 0)},6076: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.ValuesClause=void 0;const a=r(7345),i=r(2755),s=r(2302);class c extends a.Clause{constructor(e){super(Object.assign({},e,{priority:i.Priority.FROM})),this.models=void 0,this.models=e?.models}}t.ValuesClause=c,n([(0,s.required)(),(0,s.type)(Array.name),o("design:type",Array)],c.prototype,"models",void 0)},117: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.WhereClause=void 0;const a=r(7345),i=r(2063),s=r(2302),c=r(2755);class l extends a.Clause{constructor(e){super(Object.assign({},e,{priority:c.Priority.WHERE})),this.condition=void 0,this.condition=e?.condition}orderBy(...e){return this.Clauses.orderBy(this.statement,e)}groupBy(e){return this.Clauses.groupBy(this.statement,e)}limit(e){return this.Clauses.limit(this.statement,e)}offset(e){return this.Clauses.offset(this.statement,e)}hasErrors(...e){return super.hasErrors(...e)||this.condition.hasErrors()}}t.WhereClause=l,n([(0,s.required)(),(0,s.type)("Condition"),o("design:type",i.Condition)],l.prototype,"condition",void 0)},47: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(8066),t),o(r(1344),t),o(r(2455),t),o(r(3069),t),o(r(1897),t),o(r(4223),t),o(r(9806),t),o(r(5150),t),o(r(6076),t),o(r(117),t)},2755:(e,t)=>{var r,n,o,a,i;Object.defineProperty(t,"__esModule",{value:!0}),t.StatementType=t.MandatoryPriorities=t.Priority=t.Const=t.GroupOperator=t.Operator=void 0,function(e){e.EQUAL="EQUAL",e.DIFFERENT="DIFFERENT",e.BIGGER="BIGGER",e.BIGGER_EQ="BIGGER_EQ",e.SMALLER="SMALLER",e.SMALLER_EQ="SMALLER_EQ",e.NOT="NOT",e.IN="IN",e.REGEXP="REGEXP"}(r||(t.Operator=r={})),function(e){e.AND="AND",e.OR="OR"}(n||(t.GroupOperator=n={})),function(e){e.NULL="NULL",e.FULL_RECORD="*"}(o||(t.Const=o={})),function(e){e[e.FROM=1]="FROM",e[e.JOIN=1.1]="JOIN",e[e.WHERE=2]="WHERE",e[e.GROUP_BY=3]="GROUP_BY",e[e.HAVING=4]="HAVING",e[e.SELECT=5]="SELECT",e[e.ORDER_BY=6]="ORDER_BY",e[e.LIMIT=7]="LIMIT",e[e.OFFSET=7.1]="OFFSET"}(a||(t.Priority=a={})),t.MandatoryPriorities=[a.FROM,a.SELECT],function(e){e.QUERY="query",e.TRANSACTION="transaction"}(i||(t.StatementType=i={}))},743:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PagingError=t.QueryError=void 0;const n=r(5922);class o extends n.BaseError{constructor(e){super(o.name,e)}}t.QueryError=o;class a extends n.BaseError{constructor(e){super(a.name,e)}}t.PagingError=a},6746: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(47),t),o(r(7345),t),o(r(2503),t),o(r(2063),t),o(r(2755),t),o(r(743),t),o(r(4388),t),o(r(8233),t),o(r(2258),t),o(r(2764),t),o(r(7335),t),o(r(4731),t)},4388:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},2764:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},4731:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},4605:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Context=void 0;const n=r(5922);class o extends n.Context{constructor(e,t,r){super(e,t,r)}get timestamp(){return this._timestamp||(this._timestamp=new Date),this._timestamp}}t.Context=o},3932:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Repository=void 0;const n=r(5922),o=r(6946),a=r(2302),i=r(6176),s=r(2258),c=r(2859),l=r(32),u=r(2224),d=r(861),f=r(263),p=r(4605);class y extends n.Repository{static{this._cache={}}get adapter(){if(!this._adapter)throw new n.InternalError("No adapter found for this repository. did you use the @uses decorator or pass it in the constructor?");return this._adapter}get tableName(){return this._tableName||(this._tableName=y.table(this.class)),this._tableName}constructor(e,t){if(super(t),this.observers=[],e&&(this._adapter=e),t&&(y.register(t,this),e)){const r=Reflect.getMetadata(o.Adapter.key(i.PersistenceKeys.ADAPTER),t);if(r&&r!==e.flavour)throw new n.InternalError("Incompatible flavours");(0,f.uses)(e.flavour)(t)}[this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach((e=>{const t=e.name;(0,n.wrapMethodWithContext)(this,this[t+"Prefix"],e,this[t+"Suffix"])}))}async createPrefix(e,...t){const r=await p.Context.args(n.OperationKeys.CREATE,this.class,t,this.adapter);e=new this.class(e),await(0,n.enforceDBDecorators)(this,r.context,e,n.OperationKeys.CREATE,n.OperationKeys.ON);const o=e.hasErrors();if(o)throw new n.ValidationError(o.toString());return[e,...r.args]}async create(e,...t){let{record:r,id:n}=this.adapter.prepare(e,this.pk);return r=await this.adapter.create(this.tableName,n,r,...t),this.adapter.revert(r,this.class,this.pk,n)}async createAll(e,...t){if(!e.length)return e;const r=e.map((e=>this.adapter.prepare(e,this.pk))),n=r.map((e=>e.id));let o=r.map((e=>e.record));return o=await this.adapter.createAll(this.tableName,n,o,...t),o.map(((e,t)=>this.adapter.revert(e,this.class,this.pk,n[t])))}async createAllPrefix(e,...t){const r=await p.Context.args(n.OperationKeys.CREATE,this.class,t,this.adapter);if(!e.length)return[e,...r.args];const o=y.getSequenceOptions(e[0]);let a=[];o.type&&(o.name||(o.name=u.Sequence.pk(e[0])),a=await(await this.adapter.Sequence(o)).range(e.length));const i=(e=await Promise.all(e.map((async(e,t)=>((e=new this.class(e))[this.pk]=a[t],await(0,n.enforceDBDecorators)(this,r.context,e,n.OperationKeys.CREATE,n.OperationKeys.ON),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 n.ValidationError(i);return[e,...r.args]}async readPrefix(e,...t){const r=await p.Context.args(n.OperationKeys.READ,this.class,t,this.adapter),o=new this.class;return o[this.pk]=e,await(0,n.enforceDBDecorators)(this,r.context,o,n.OperationKeys.READ,n.OperationKeys.ON),[e,...r.args]}async read(e,...t){const r=await this.adapter.read(this.tableName,e,...t);return this.adapter.revert(r,this.class,this.pk,e)}async readAllPrefix(e,...t){const r=await p.Context.args(n.OperationKeys.READ,this.class,t,this.adapter);return await Promise.all(e.map((async e=>{const t=new this.class;return t[this.pk]=e,(0,n.enforceDBDecorators)(this,r.context,t,n.OperationKeys.READ,n.OperationKeys.ON)}))),[e,...r.args]}async readAll(e,...t){return(await this.adapter.readAll(this.tableName,e,...t)).map(((t,r)=>this.adapter.revert(t,this.class,this.pk,e[r])))}async update(e,...t){let{record:r,id:n}=this.adapter.prepare(e,this.pk);return r=await this.adapter.update(this.tableName,n,r,...t),this.adapter.revert(r,this.class,this.pk,n)}async updatePrefix(e,...t){const r=await p.Context.args(n.OperationKeys.UPDATE,this.class,t,this.adapter),o=e[this.pk];if(!o)throw new n.InternalError(`No value for the Id is defined under the property ${this.pk}`);const a=await this.read(o,...r.args);e=this.merge(a,e),await(0,n.enforceDBDecorators)(this,r.context,e,n.OperationKeys.UPDATE,n.OperationKeys.ON,a);const i=e.hasErrors(a,...y.relations(this.class));if(i)throw new n.ValidationError(i.toString());return y.getMetadata(a)&&(y.getMetadata(e)||y.setMetadata(e,y.getMetadata(a))),[e,...r.args]}async updateAll(e,...t){const r=e.map((e=>this.adapter.prepare(e,this.pk)));return(await this.adapter.updateAll(this.tableName,r.map((e=>e.id)),r.map((e=>e.record)),...t)).map(((e,t)=>this.adapter.revert(e,this.class,this.pk,r[t].id)))}async updateAllPrefix(e,...t){const r=await p.Context.args(n.OperationKeys.UPDATE,this.class,t,this.adapter),o=e.map((e=>{const t=e[this.pk];if(!t)throw new n.InternalError("missing id on update operation");return t})),a=await this.readAll(o,...r.args);e=e.map(((e,t)=>(e=this.merge(a[t],e),y.getMetadata(a[t])&&(y.getMetadata(e)||y.setMetadata(e,y.getMetadata(a[t]))),e))),await Promise.all(e.map(((e,t)=>(0,n.enforceDBDecorators)(this,r.context,e,n.OperationKeys.UPDATE,n.OperationKeys.ON,a[t]))));const i=e.map(((e,t)=>e.hasErrors(a[t],e))).reduce(((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e)),void 0);if(i)throw new n.ValidationError(i);return e.forEach(((e,t)=>{y.getMetadata(a[t])&&(y.getMetadata(e)||y.setMetadata(e,y.getMetadata(a[t])))})),[e,...r.args]}async deletePrefix(e,...t){const r=await p.Context.args(n.OperationKeys.DELETE,this.class,t,this.adapter),o=await this.read(e,...r.args);return await(0,n.enforceDBDecorators)(this,r.context,o,n.OperationKeys.DELETE,n.OperationKeys.ON),[e,...r.args]}async delete(e,...t){const r=await this.adapter.delete(this.tableName,e,...t);return this.adapter.revert(r,this.class,this.pk,e)}async deleteAllPrefix(e,...t){const r=await p.Context.args(n.OperationKeys.DELETE,this.class,t,this.adapter),o=await this.readAll(e,...r.args);return await Promise.all(o.map((async e=>(0,n.enforceDBDecorators)(this,r.context,e,n.OperationKeys.DELETE,n.OperationKeys.ON)))),[e,...r.args]}async deleteAll(e,...t){return(await this.adapter.deleteAll(this.tableName,e,...t)).map(((t,r)=>this.adapter.revert(t,this.class,this.pk,e[r])))}select(e){return new s.Query(this.adapter).select(e).from(this.class)}async query(e,t,r=c.OrderDirection.ASC,n,o){const a=[t,r],i=this.select().where(e).orderBy(a);return n&&i.limit(n),o&&i.offset(o),i.execute()}observe(e){if(-1!==this.observers.indexOf(e))throw new n.InternalError("Observer already registered");this.observers.push(e)}unObserve(e){const t=this.observers.indexOf(e);if(-1===t)throw new n.InternalError("Failed to find Observer");this.observers.splice(t,1)}async updateObservers(...e){(await Promise.allSettled(this.observers.map((t=>t.refresh(...e))))).forEach(((e,t)=>{"rejected"===e.status&&console.warn(`Failed to update observable ${this.observers[t]}: ${e.reason}`)}))}static forModel(e,t){let r;try{r=this.get(e)}catch(e){r=y}if(r instanceof y)return r;const a=Reflect.getMetadata(o.Adapter.key(i.PersistenceKeys.ADAPTER),e)||Reflect.getMetadata(o.Adapter.key(i.PersistenceKeys.ADAPTER),r)||t,s=a?o.Adapter.get(a):void 0;if(!s)throw new n.InternalError(`No registered persistence adapter found flavour ${a}`);return new r(s,e)}static get(e){const t=this.table(e);if(t in this._cache)return this._cache[t];throw new n.InternalError(`Could not find repository registered under ${t}`)}static register(e,t){const r=this.table(e);if(r in this._cache)throw new n.InternalError(`${r} already registered as a repository`);this._cache[r]=t}static setMetadata(e,t){Object.defineProperty(e,i.PersistenceKeys.METADATA,{enumerable:!1,configurable:!0,writable:!1,value:t})}static getMetadata(e){const t=Object.getOwnPropertyDescriptor(e,i.PersistenceKeys.METADATA);return t?t.value:void 0}static removeMetadata(e){Object.getOwnPropertyDescriptor(e,i.PersistenceKeys.METADATA)&&delete e[i.PersistenceKeys.METADATA]}static getSequenceOptions(e){const t=(0,n.findPrimaryKey)(e).id,r=Reflect.getMetadata(y.key(n.DBKeys.ID),e,t);if(!r)throw new n.InternalError("No sequence options defined for model. did you use the @pk decorator?");return r}static indexes(e){const t=(0,l.getAllPropertyDecorators)(e instanceof a.Model?e:new e,n.DBKeys.REFLECT);return Object.entries(t||{}).reduce(((e,[t,r])=>{const n=r.filter((e=>e.key.startsWith(i.PersistenceKeys.INDEX)));if(n&&n.length)for(const r of n){const{key:n,props:o}=r;e[t]=e[t]||{},e[t][n]=o}return e}),{})}static relations(e){const t=[];let r=e instanceof a.Model?Object.getPrototypeOf(e):e.prototype;for(;null!=r;){const e=r[i.PersistenceKeys.RELATIONS];e&&t.push(...e),r=Object.getPrototypeOf(r)}return t}static table(e){return(0,d.getTableName)(e)}static column(e,t){return Reflect.getMetadata(o.Adapter.key(i.PersistenceKeys.COLUMN),e,t)||t}}t.Repository=y},2859:(e,t)=>{var r,n;Object.defineProperty(t,"__esModule",{value:!0}),t.DefaultCascade=t.Cascade=t.OrderDirection=void 0,function(e){e.ASC="asc",e.DSC="desc"}(r||(t.OrderDirection=r={})),function(e){e.CASCADE="cascade",e.NONE="none"}(n||(t.Cascade=n={})),t.DefaultCascade={update:n.CASCADE,delete:n.NONE}},2846:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.repository=function(e,t){return(r,s)=>s?(0,n.inject)(t||e.name)(r,s):((0,a.metadata)(i.Repository.key(o.DBKeys.REPOSITORY),t||r.name)(e),i.Repository.register(e,r),(0,n.injectable)(t||r.name,!0,(t=>{Object.defineProperty(t,o.DBKeys.CLASS,{enumerable:!1,configurable:!1,writable:!1,value:e})}))(r))};const n=r(465),o=r(5922),a=r(32),i=r(3932)},879:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ObserverError=void 0;const n=r(5922);class o extends n.BaseError{constructor(e){super(o.name,e)}}t.ObserverError=o},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(2859),t),o(r(4605),t),o(r(2846),t),o(r(879),t),o(r(9380),t),o(r(3932),t),o(r(8323),t),o(r(8311),t)},9380:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InjectablesRegistry=void 0;const n=r(465),o=r(3932),a=r(2302),i=r(8311),s=r(6176),c=r(6946);class l extends n.InjectableRegistryImp{constructor(){super()}get(e){let t=super.get(e);if(!t)try{const r=a.Model.get(e);if(r&&(t=o.Repository.forModel(r)),t){if(t instanceof o.Repository)return t;const e=Reflect.getMetadata(c.Adapter.key(s.PersistenceKeys.ADAPTER),t.constructor)||Reflect.getMetadata(c.Adapter.key(s.PersistenceKeys.ADAPTER),r);n.Injectables.register(t,(0,i.generateInjectableNameForRepository)(r,e))}}catch(e){return}return t}}t.InjectablesRegistry=l},8323:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},8311:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.generateInjectableNameForRepository=function(e,t){if(!t){const r=a.Adapter.key(i.PersistenceKeys.ADAPTER);if(!(t=Reflect.getMetadata(r,e instanceof s.Model?e.constructor:e)))throw new n.InternalError(`Could not retrieve flavour from model ${e instanceof s.Model?e.constructor.name:e.name}`)}return(0,o.sf)(i.PersistenceKeys.INJECTABLE,t,c.Repository.table(e))};const n=r(5922),o=r(2302),a=r(6946),i=r(6176),s=r(2302),c=r(3932)},4427: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.ClauseSequenceValidator=void 0;const a=r(2302),i=r(32),s=r(7345),c=r(2755),l=r(743),u=r(6176);let d=class extends a.Validator{constructor(e=a.DEFAULT_ERROR_MESSAGES[u.PersistenceKeys.CLAUSE_SEQUENCE]){super(e)}validateSequence(e,t){return c.MandatoryPriorities.every((t=>!!e.find((e=>e.getPriority()===t))))?void 0:this.getMessage((0,a.sf)(t||this.message,"Missing required Clause Priorities"))}hasErrors(e,t){try{if(!(e&&Array.isArray(e)&&e.length&&e.every((e=>e instanceof s.Clause))))return this.getMessage((0,a.sf)(t||this.message,"No or invalid Clauses found"));const r=e,n=r.reduce(((e,t)=>{const r=t.hasErrors();return r&&(e?e+=(0,a.sf)("\nClause {0}: {1}",t.constructor.name,r.toString()):e=(0,a.sf)("Clause {0}: {1}",t.constructor.name,r.toString())),e}),void 0);if(n)return this.getMessage((0,a.sf)(t||this.message,n.toString()));if(!0!==(()=>{const e=r.map((e=>e.getPriority()));if(new Set(e).size!==e.length)return"Not all clauses have unique priorities";const t=e.sort(((e,t)=>t-e));return!!(0,i.isEqual)(e,t)||"Clauses are not properly sorted"})())return this.getMessage((0,a.sf)(t||this.message,"Invalid prioritization"));if(this.validateSequence(r,t))return this.getMessage((0,a.sf)(t||this.message,"Invalid sequence"))}catch(t){throw new l.QueryError((0,a.sf)("Failed to verify clause sequence {0}: {1}",e,t))}}};t.ClauseSequenceValidator=d,t.ClauseSequenceValidator=d=n([(0,a.validator)(u.PersistenceKeys.CLAUSE_SEQUENCE),o("design:paramtypes",[String])],d)},1047:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.clauseSequence=function(e){return(0,n.propMetadata)(n.Validation.key(n.ValidationKeys.REQUIRED),{message:e||n.DEFAULT_ERROR_MESSAGES[o.PersistenceKeys.CLAUSE_SEQUENCE]})};const n=r(2302),o=r(4017);Object.defineProperty(n.DEFAULT_ERROR_MESSAGES,o.PersistenceKeys.CLAUSE_SEQUENCE,{value:"Invalid clause sequence: {0}"}),Object.defineProperty(n.ValidationKeys,"CLAUSE_SEQUENCE",{value:o.PersistenceKeys.CLAUSE_SEQUENCE})},6193: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(1047),t),o(r(4427),t)},9501:(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(3162),i=r(4367),s=r(9191)},5537: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(9501),t),o(r(3802),t)},3802:(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(4367),o=r(592),a=r(2302),i=r(3036);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}}},5922: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(5537),t),o(r(8403),t),o(r(2828),t),o(r(7781),t),o(r(9191),t),o(r(3162),t)},3949:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},200:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},1101:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},7674:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},8403: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(3949),t),o(r(200),t),o(r(1101),t),o(r(7674),t)},4367:(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",ORIGINAL:"__originalObj"},t.DefaultSeparator="_",t.DEFAULT_TIMESTAMP_FORMAT="dd/MM/yyyy HH:mm:ss:S"},3793:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.hashOnCreateUpdate=l,t.hash=u,t.composedFromCreateUpdate=d,t.composedFromKeys=function(e,t=n.DefaultSeparator,r=!1,o="",a=""){return f(e,r,t,"keys",o,a)},t.composed=function(e,t=n.DefaultSeparator,r=!1,o="",a=""){return f(e,r,t,"values",o,a)};const n=r(4367),o=r(32),a=r(2302),i=r(6441),s=r(3036),c=r(9553);function l(e,t,r,n){if(!r[t])return;const o=a.Hashing.hash(r[t]);n&&r[t]===o||(r[t]=o)}function u(){return(0,o.apply)((0,i.onCreateUpdate)(l),(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 f(e,t=!1,r=n.DefaultSeparator,s="values",l="",f=""){const p={args:e,hashResult:t,separator:r,type:s,prefix:l,suffix:f},y=[(0,i.onCreateUpdate)(d,p),(0,a.propMetadata)(c.Repository.key(n.DBKeys.COMPOSED),p)];return t&&y.push(u()),(0,o.apply)(...y)}},2828: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(6569),t),o(r(4367),t),o(r(3793),t),o(r(9607),t)},9607:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const n=r(2302),o=r(6569);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)}},6569:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateCompare=function(e,t,...r){const s=[];for(const e in t)Object.prototype.hasOwnProperty.call(t,e)&&-1===r.indexOf(e)&&s.push((0,o.getPropertyDecorators)(a.UpdateValidationKeys.REFLECT,t,e));let c;for(const r of s){const{prop:o,decorators:a}=r;if(a.shift(),!a||!a.length)continue;let i;for(const s of a){const a=n.Validation.get(s.key);if(!a){console.error(`Could not find Matching validator for ${s.key} for property ${String(r.prop)}`);continue}const c=a.updateHasErrors(t[o.toString()],e[o.toString()],...Object.values(s.props));c&&(i=i||{},i[s.key]=c)}i&&(c=c||{},c[r.prop.toString()]=i)}for(const a of Object.keys(t).filter((e=>!(r.includes(e)||c&&c[e])))){let r;const s=(0,o.getPropertyDecorators)(n.ValidationKeys.REFLECT,t,a).decorators,l=(0,o.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(),d=u.props.name?[u.props.name]:Array.isArray(u.props.customTypes)?u.props.customTypes:[u.props.customTypes],f=Object.values(n.ReservedModels).map((e=>e.toLowerCase()));for(const o of d){if(-1===f.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(3162),i=r(5537)},9121:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Operations=void 0;const n=r(2302),o=r(4300),a=r(6050);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},4300:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OperationsRegistry=void 0;const n=r(9121);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)}}},6050:(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]}},6441:(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(6050),o=r(9121),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 d=Reflect.getMetadata(o.Operations.key(u),n,c);d||(d={operation:a,handlers:{}});const f=o.Operations.getHandlerName(r);return d.handlers[l]&&d.handlers[l][c]&&f in d.handlers[l][c]||(d.handlers[l]=d.handlers[l]||{},d.handlers[l][c]=d.handlers[l][c]||{},d.handlers[l][c][f]={data:s},t.push(function(e,t){return(r,n)=>{o.Operations.register(t,e,r,n)}}(u,r),(0,i.propMetadata)(o.Operations.key(u),d))),t}),[]);return(0,a.apply)(...u)(n,c)}}},7781: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(6050),t),o(r(6441),t),o(r(9121),t),o(r(4300),t),o(r(5970),t)},5970:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},2022:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BaseRepository=void 0;const n=r(2302),o=r(592),a=r(6050),i=r(3036),s=r(749),c=r(3802),l=r(2586);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)}}},2586:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Context=void 0;const n=r(8569),o=r(3036);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},8569:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DataCache=void 0;const n=r(3036);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={}}}},9553:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Repository=void 0;const n=r(592),o=r(6050),a=r(3036),i=r(2022),s=r(4367),c=r(2586);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},3036:(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},9191: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(2022),t),o(r(2586),t),o(r(8569),t),o(r(3036),t),o(r(9553),t),o(r(592),t),o(r(749),t)},592:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getAllPropertyDecoratorsRecursive=t.getHandlerArgs=void 0,t.enforceDBDecorators=async function(e,r,a,l,u,d){const f=c(a,l,u);if(f)for(const c in f){const p=f[c];for(const f of p){const{key:p}=f,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)(f,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,O;for(let t=0;t<y.length;t++){g=y[t],O=Object.values(h)[t];const n=[r,O.data,c,a];if(l===o.OperationKeys.UPDATE&&u===o.OperationKeys.ON){if(!d)throw new i.InternalError("Missing old model for update operation");n.push(d)}await g.apply(e,n)}}}},t.getDbDecorators=c;const n=r(9121),o=r(6050),a=r(32),i=r(3036),s=r(2302);function c(e,t,r){const n=(0,a.getAllPropertyDecorators)(e,o.OperationKeys.REFLECT+(r||""));if(n)return Object.keys(n).reduce(((e,r)=>{const o=n[r].filter((e=>e.key===t));return o&&o.length&&(e||(e={}),e[r]=o),e}),void 0)}t.getHandlerArgs=function(e,r,n,o){const a=n.constructor.name;if(!a)throw new i.InternalError("Could not determine model class");o=o||{},e.props.handlers[a]&&e.props.handlers[a][r]&&(o={...e.props.handlers[a][r],...o});let s=Object.getPrototypeOf(n);return s===Object.prototype?o:(s.constructor.name===a&&(s=Object.getPrototypeOf(s)),(0,t.getHandlerArgs)(e,r,s,o))},t.getAllPropertyDecoratorsRecursive=function(e,r,...n){const i=r||{},c=(0,a.getAllPropertyDecorators)(e,...n);if(c&&function(e){Object.entries(e).forEach((([e,t])=>{i[e]=i[e]||[],((e,...t)=>{t.forEach((t=>{let r;if(!(r=i[e].find((e=>e.key===t.key)))||r.props.operation!==t.props.operation)return void i[e].push(t);if(t.key===s.ModelKeys.TYPE)return;const{handlers:n,operation:a}=t.props;if(!a||!a.match(new RegExp(`^(:?${o.OperationKeys.ON}|${o.OperationKeys.AFTER})(:?${o.OperationKeys.CREATE}|${o.OperationKeys.READ}|${o.OperationKeys.UPDATE}|${o.OperationKeys.DELETE})$`)))return void i[e].push(t);const c=r.props.handlers;Object.entries(n).forEach((([e,t])=>{e in c?Object.entries(t).forEach((([t,r])=>{t in c[e]?Object.entries(r).forEach((([r,n])=>{r in c[e][t]?console.warn((0,s.sf)("Skipping handler registration for {0} under prop {0} because handler is the same",e,t)):c[e][t][r]=n})):c[e][t]=r})):c[e]=t}))}))})(e,...t)}))}(c),Object.getPrototypeOf(e)===Object.prototype)return i;const l=Object.getPrototypeOf(e);return l?(0,t.getAllPropertyDecoratorsRecursive)(l,i,...n):i}},749:(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(2586),o=r(3036)},6753:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UpdateValidationKeys=t.DEFAULT_ERROR_MESSAGES=void 0;const n=r(4367);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}},9252:(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=d,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,d)];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=f,t.serializeAfterAll=p,t.serialize=function(){return(0,l.apply)((0,s.onCreateUpdate)(f),(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(4367),a=r(6753),i=r(6050),s=r(6441),c=r(3036),l=r(32),u=r(9191);async function d(e,t,r,n){n[r]=e.timestamp}async function f(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))}}},3162: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(1362),t),o(r(6753),t),o(r(9252),t),o(r(6723),t)},6723:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const n=r(2302),o=r(6753);n.Validation.updateKey=function(e){return o.UpdateValidationKeys.REFLECT+e}},9174: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(6753),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)},8944: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(6753);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)},4981:(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},1362: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(9174),t),o(r(8944),t),o(r(4981),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.3"},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),d=r(1318),f=r(8539);let p,y;class h{constructor(e){}hasErrors(...e){return(0,i.validate)(this,...e)}equals(e,...t){return(0,a.isEqual)(this,e,...t)}serialize(){return h.serialize(this)}toString(){return this.constructor.name+": "+JSON.stringify(this,void 0,2)}hash(){return h.hash(this)}static deserialize(e){const t=Reflect.getMetadata(this.key(l.ModelKeys.SERIALIZATION),this.constructor);return t&&t.serializer?n.Serialization.deserialize(e,t.serializer,...t.args||[]):n.Serialization.deserialize(e)}static fromObject(e,t){t||(t={});for(const r of h.getAttributes(e))e[r]=t[r]||void 0;return e}static fromModel(e,t){let r,n;t||(t={});const o=h.getAttributes(e);for(const i of o){if(e[i]=t[i]||void 0,"object"!=typeof e[i])continue;const o=(0,c.isPropertyModel)(e,i);if(o){try{e[i]=h.build(e[i],"string"==typeof o?o:void 0)}catch(e){console.log(e)}continue}const s=(0,a.getPropertyDecorators)(u.ValidationKeys.REFLECT,e,i).decorators;if(r=s.filter((e=>-1!==[l.ModelKeys.TYPE,u.ValidationKeys.TYPE].indexOf(e.key))),!r||!r.length)throw new Error((0,d.sf)("failed to find decorators for property {0}",i));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(f.ReservedModels).map((e=>e.toLowerCase()));p.forEach((t=>{if(-1===y.indexOf(t.toLowerCase()))try{switch(t){case"Array":case"Set":if(s.length){const r=s.find((e=>e.key===u.ValidationKeys.LIST));if(r){const n=r.props.class.find((e=>!f.jsTypes.includes(e.toLowerCase())));if("Array"===t&&(e[i]=e[i].map((e=>["object","function"].includes(typeof e)&&n?h.build(e,n):e))),"Set"===t){const t=new Set;for(const r of e[i])["object","function"].includes(typeof r)&&n?t.add(h.build(r,n)):t.add(r);e[i]=t}}}break;default:e[i]&&(e[i]=h.build(e[i],t))}}catch(e){console.log(e)}}))}return e}static setBuilder(e){p=e}static getBuilder(){return p}static getRegistry(){return y||(y=new o.ModelRegistryManager),y}static setRegistry(e){y=e}static register(e,t){return h.getRegistry().register(e,t)}static get(e){return h.getRegistry().get(e)}static build(e={},t){return h.getRegistry().build(e,t)}static getMetadata(e){const t=Reflect.getMetadata(this.key(l.ModelKeys.MODEL),e.constructor);if(!t)throw new Error("could not find metadata for provided "+e.constructor.name);return t}static getAttributes(e){const t=[];let r=e instanceof h?Object.getPrototypeOf(e):e.prototype;for(;null!=r;){const e=r[l.ModelKeys.ATTRIBUTE];e&&t.push(...e),r=Object.getPrototypeOf(r)}return t}static equals(e,t,...r){return(0,a.isEqual)(e,t,...r)}static hasErrors(e,...t){return(0,i.validate)(e,...t)}static serialize(e){const t=Reflect.getMetadata(this.key(l.ModelKeys.SERIALIZATION),e.constructor);return t&&t.serializer?n.Serialization.serialize(this,t.serializer,...t.args||[]):n.Serialization.serialize(e)}static hash(e){const t=Reflect.getMetadata(this.key(l.ModelKeys.HASHING),e.constructor);return t&&t.algorithm?s.Hashing.hash(e,t.algorithm,...t.args||[]):s.Hashing.hash(e)}static key(e){return l.ModelKeys.REFLECT+e}}t.Model=h},3368:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ModelErrorDefinition=void 0,t.ModelErrorDefinition=class{constructor(e){for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&e[t]&&Object.defineProperty(this,t,{enumerable:!0,configurable:!1,value:e[t],writable:!1})}toString(){const e=this;return Object.keys(e).filter((t=>Object.prototype.hasOwnProperty.call(e,t)&&"function"!=typeof e[t])).reduce(((t,r)=>{let 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((0,o.getPropertyDecorators)(l.ValidationKeys.REFLECT,e,n));let d;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&&(d=d||{},d[t.prop.toString()]=i)}for(const t of Object.keys(e).filter((e=>!d||!d[e]))){let r;const n=(0,o.getPropertyDecorators)(l.ValidationKeys.REFLECT,e,t).decorators,c=(0,o.getPropertyDecorators)(l.ValidationKeys.REFLECT,e,t).decorators.filter((e=>-1!==[a.ModelKeys.TYPE,l.ValidationKeys.TYPE].indexOf(e.key)));if(!c||!c.length)continue;const f=c.pop(),p=f.props.name?[f.props.name]:Array.isArray(f.props.customTypes)?f.props.customTypes:[f.props.customTypes],y=Object.values(s.ReservedModels).map((e=>e.toLowerCase()));for(const 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 d=(e,t)=>{if("object"==typeof t||"function"==typeof t)return(0,u.isModel)(t)?t.hasErrors():c.includes(typeof t)?void 0:"Value has no validatable type"};switch(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=>d(t,e))).filter((e=>!!e)),r?.length||(r=void 0));break;default:try{e[t]&&(r=d(t,e[t]))}catch(e){console.warn((0,i.sf)("Model should be validatable but its not: "+e))}}}r&&(d=d||{},d[t]=r)}}return d?new n.ModelErrorDefinition(d):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),d=a(o.groups.seconds),f=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,d,f)}function i(e,t){if(!e)return;const r=()=>l(e,t);return Object.defineProperty(e,"toISOString",{enumerable:!1,configurable:!1,value:r}),Object.defineProperty(e,"toString",{enumerable:!1,configurable:!1,value:r}),e}function s(e){return e&&"[object Date]"===Object.prototype.toString.call(e)&&!isNaN(e)}function c(e){return e<10?"0"+e:e.toString()}function l(e,t="yyyy/MM/dd"){const r=e.getDate(),o=e.getMonth(),a=e.getFullYear(),i=e.getHours(),s=e.getMinutes(),l=e.getSeconds(),u=e.getMilliseconds(),d=i%12,f=c(d),p=c(i),y=c(s),h=c(l),g=i<12?"AM":"PM",O=n.DAYS_OF_WEEK_NAMES[e.getDay()],E=O.substr(0,3),v=c(r),b=o+1,_=c(b),m=n.MONTH_NAMES[o],R=m.substr(0,3),M=a+"",P=M.substr(2,2);return(t=t.replace("hh",f).replace("h",d.toString()).replace("HH",p).replace("H",i.toString()).replace("mm",y).replace("m",s.toString()).replace("ss",h).replace("s",l.toString()).replace("S",u.toString()).replace("dd",v).replace("d",r.toString()).replace("EEEE",O).replace("EEE",E).replace("yyyy",M).replace("yy",P).replace("aaa",g)).indexOf("MMM")>-1?t.replace("MMMM",m).replace("MMM",R):t.replace("MM",_).replace("M",b.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}}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)),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),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),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(32),u=r(7675);let d=class extends a.Validator{constructor(e=i.DEFAULT_ERROR_MESSAGES.TYPE){super(e)}hasErrors(e,t,r){if(void 0!==e)return(0,l.evaluateDesignTypes)(e,t)?void 0:this.getMessage(r||this.message,"string"==typeof t?t:Array.isArray(t)?t.join(", "):t.name,typeof e)}};t.TypeValidator=d,t.TypeValidator=d=n([(0,s.validator)(i.ValidationKeys.TYPE),o("design:paramtypes",[String])],d),c.Validation.register({validator:d,validationKey:u.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?(0,a.checkTypes)(t,this.acceptedTypes)?e(t,...r):this.getMessage(n.DEFAULT_ERROR_MESSAGES.TYPE,this.acceptedTypes.join(", "),typeof t):e(t,...r)}.bind(this)}}},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),d=r(9320),f=r(2396),p=r(9378),y=r(2382),h=r(8089),g=r(5224),O=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:O.ListValidator,MaxLengthValidator:y.MaxLengthValidator,MaxValidator:p.MaxValidator,MinLengthValidator:f.MinLengthValidator,MinValidator:d.MinValidator,PasswordValidator:s.PasswordValidator,PatternValidator:u.PatternValidator,RequiredValidator:h.RequiredValidator,StepValidator:c.StepValidator,TypeValidator:i.TypeValidator,URLValidator:l.URLValidator}},7045:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},9944:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.required=function(e=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})},871:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Injectables=void 0;const n=r(3018);class o{static{this.actingInjectablesRegistry=void 0}constructor(){}static get(e,...t){return o.getRegistry().get(e,...t)}static register(e,...t){return o.getRegistry().register(e,...t)}static build(e,...t){return o.getRegistry().build(e,...t)}static setRegistry(e){o.actingInjectablesRegistry=e}static getRegistry(){return o.actingInjectablesRegistry||(o.actingInjectablesRegistry=new n.InjectableRegistryImp),o.actingInjectablesRegistry}static reset(){this.setRegistry(new n.InjectableRegistryImp)}static selectiveReset(e){const t="string"==typeof e?new RegExp(e):e;o.actingInjectablesRegistry.cache=Object.entries(o.actingInjectablesRegistry.cache).reduce(((e,[r,n])=>(r.match(t)||(e[r]=n),e)),{})}}t.Injectables=o},6030:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InjectablesKeys=void 0,t.InjectablesKeys={REFLECT:"inject.db.",INJECTABLE:"injectable",INJECT:"inject"}},8957:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.inject=t.injectable=void 0;const n=r(6030),o=r(871),a=r(8730),i=e=>n.InjectablesKeys.REFLECT+e;t.injectable=(e=void 0,t=!1,r)=>(a,s)=>{const c=e||a.name,l=function(...e){let s=o.Injectables.get(c,...e);if(!s){if(o.Injectables.register(a,c,!0,t),s=o.Injectables.get(c,...e),!s)return;if(r)try{r(s)}catch(e){console.error(`Failed to call injectable callback for ${c}: ${e}`)}}const l=Object.assign({},{class:c});return Reflect.defineMetadata(i(n.InjectablesKeys.INJECTABLE),l,s.constructor),s};return l.prototype=a.prototype,Object.defineProperty(l,"name",{writable:!1,enumerable:!0,configurable:!1,value:a.prototype.constructor.name}),l},t.inject=(e,t)=>(r,s)=>{const c=new WeakMap,l=e||(0,a.getTypeFromDecorator)(r,s);if(!l)throw new Error("Could not get Type from decorator");Reflect.defineMetadata(i(n.InjectablesKeys.INJECT),{injectable:l},r,s),Object.defineProperty(r,s,{configurable:!0,get(){if(Object.getOwnPropertyDescriptor(r,s).configurable)return Object.defineProperty(this,s,{enumerable:!0,configurable:!1,get(){let e=c.get(this);if(!e){if(e=o.Injectables.get(l),!e)throw new Error(`Could not get Injectable ${l} to inject in ${r.constructor?r.constructor.name:r.name}'s ${s}`);if(t)try{e=t(e,r)}catch(e){console.error(e)}c.set(this,e)}return e}}),this[s]}})}},465: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(6030),t),o(r(8957),t),o(r(871),t),o(r(3018),t),o(r(8730),t),t.VERSION="1.5.0"},3018:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InjectableRegistryImp=void 0,t.InjectableRegistryImp=class{constructor(){this.cache={}}get(e,...t){try{const r=this.cache[e],n={name:e};return(r.singleton||r.instance)&&r.instance||this.build(n,...t)}catch(e){return}}register(e,t=void 0,r=!0,n=!1){const o=e,a=!o.name&&o.constructor;if("function"!=typeof o&&!a)throw new Error("Injectable registering failed. Missing Class name or constructor");const i=t||(a&&a.name&&"Function"!==a.name?a.name:o.name);this.cache[i]&&!n||(this.cache[i]={instance:a?e:void 0,constructor:a?void 0:e,singleton:r})}build(e,...t){const{constructor:r,singleton:n}=this.cache[e.name],o=new r(...t);return this.cache[e.name]={instance:o,constructor:r,singleton:n},o}}},8730:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TypeKey=void 0,t.getTypeFromDecorator=function(e,r){const n=Reflect.getMetadata(t.TypeKey,e,r);return"Function"!==n.name?n.name:void 0},r(8630),t.TypeKey="design:type"},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;if(t instanceof Date&&r instanceof Date)return t.getTime()===r.getTime();if(!t||!r||"object"!=typeof t&&"object"!=typeof r)return t===r;if(null==t||null==r)return!1;if(typeof t!=typeof r)return!1;if(t.prototype!==r.prototype)return!1;const o=Object.keys(t).filter((e=>-1===n.indexOf(e)));return o.length===Object.keys(r).filter((e=>-1===n.indexOf(e))).length&&o.every((o=>-1!==n.indexOf(o)||e(t[o],r[o],...n)))}},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(2199),t),o(r(3115),t),t.VERSION="0.3.3"},2199:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},3115:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getPropertyDecorators=a,t.getTypeFromDecorator=function(e,t){const r=a(n.ReflectionKeys.TYPE,e,t,!1);if(!r||!r.decorators)return;const o=r.decorators.shift(),i=o.props?o.props.name:void 0;return"Function"!==i?i:void 0},t.getAllPropertyDecorators=function(e,...t){if(t&&t.length)return Object.getOwnPropertyNames(e).reduce(((r,n)=>(t.forEach(((t,o)=>{const i=a(t,e,n,0!==o);r||(r={}),function(e,t,r){r&&r.length&&(e[t]||(e[t]=[]),e[t].push(...r))}(r,n,i.decorators)})),r)),void 0)},t.getAllProperties=function(e,t=!0,r="Object"){const n=[];let o=e;const a=function(){if(!t)return;const e=Object.getPrototypeOf(o);return e&&e.constructor.name!==r?(o=e,o):void 0};do{Object.getOwnPropertyNames(o).forEach((function(e){-1===n.indexOf(e)&&n.push(e)}))}while(a());return n},t.getClassDecorators=function(e,t){return Reflect.getOwnMetadataKeys(t.constructor).filter((t=>t.toString().startsWith(e))).reduce(((r,n)=>{const o={key:n.substring(e.length),props:Reflect.getMetadata(n,t.constructor)};return r.concat(o)}),[])},t.checkType=i,t.checkTypes=s,t.evaluateDesignTypes=function(e,t){switch(typeof t){case"string":return i(e,t);case"object":return!Array.isArray(t)||s(e,t);case"function":return!t.name||"Object"===t.name||i(e,t.name);default:return!0}},r(8630);const n=r(1267),o=r(3032);function a(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(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)}}function i(e,t){return typeof e===t||e.constructor&&e.constructor.name.toLowerCase()===t.toLowerCase()}function s(e,t){return!t.every((t=>!i(e,t)))}},8630:(e,t,r)=>{var n;!function(e){!function(){var t="object"==typeof globalThis?globalThis:"object"==typeof r.g?r.g:"object"==typeof self?self:"object"==typeof this?this:function(){try{return Function("return this;")()}catch(e){}}()||function(){try{return(0,eval)("(function() { return this; })()")}catch(e){}}(),n=o(e);function o(e,t){return function(r,n){Object.defineProperty(e,r,{configurable:!0,writable:!0,value:n}),t&&t(r,n)}}void 0!==t.Reflect&&(n=o(t.Reflect,n)),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 F(Object.create(null))}:s?function(){return F({__proto__:null})}:function(){return F({})},has:c?function(e,t){return r.call(e,t)}:function(e,t){return t in e},get:c?function(e,t){return r.call(e,t)?e[t]:void 0}:function(e,t){return e[t]}},u=Object.getPrototypeOf(Function),d="function"==typeof Map&&"function"==typeof Map.prototype.entries?Map:function(){var e={},t=[],r=function(){function e(e,t,r){this._index=0,this._keys=e,this._values=t,this._selector=r}return e.prototype["@@iterator"]=function(){return this},e.prototype[a]=function(){return this},e.prototype.next=function(){var e=this._index;if(e>=0&&e<this._keys.length){var r=this._selector(this._keys[e],this._values[e]);return e+1>=this._keys.length?(this._index=-1,this._keys=t,this._values=t):this._index++,{value:r,done:!1}}return{value:void 0,done:!0}},e.prototype.throw=function(e){throw this._index>=0&&(this._index=-1,this._keys=t,this._values=t),e},e.prototype.return=function(e){return this._index>=0&&(this._index=-1,this._keys=t,this._values=t),{value:e,done:!0}},e}();return function(){function t(){this._keys=[],this._values=[],this._cacheKey=e,this._cacheIndex=-2}return Object.defineProperty(t.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),t.prototype.has=function(e){return this._find(e,!1)>=0},t.prototype.get=function(e){var t=this._find(e,!1);return t>=0?this._values[t]:void 0},t.prototype.set=function(e,t){var r=this._find(e,!0);return this._values[r]=t,this},t.prototype.delete=function(t){var r=this._find(t,!1);if(r>=0){for(var 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]}}(),f="function"==typeof Set&&"function"==typeof Set.prototype.entries?Set:function(){function e(){this._map=new d}return Object.defineProperty(e.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),e.prototype.has=function(e){return this._map.has(e)},e.prototype.add=function(e){return this._map.set(e,e),this},e.prototype.delete=function(e){return this._map.delete(e)},e.prototype.clear=function(){this._map.clear()},e.prototype.keys=function(){return this._map.keys()},e.prototype.values=function(){return this._map.keys()},e.prototype.entries=function(){return this._map.entries()},e.prototype["@@iterator"]=function(){return this.keys()},e.prototype[a]=function(){return this.keys()},e}(),p="function"==typeof WeakMap?WeakMap:function(){var e=l.create(),t=n();return function(){function e(){this._key=n()}return e.prototype.has=function(e){var t=o(e,!1);return void 0!==t&&l.has(t,this._key)},e.prototype.get=function(e){var t=o(e,!1);return void 0!==t?l.get(t,this._key):void 0},e.prototype.set=function(e,t){return o(e,!0)[this._key]=t,this},e.prototype.delete=function(e){var t=o(e,!1);return void 0!==t&&delete t[this._key]},e.prototype.clear=function(){this._key=n()},e}();function n(){var t;do{t="@@WeakMap@@"+i()}while(l.has(e,t));return e[t]=!0,t}function o(e,n){if(!r.call(e,t)){if(!n)return;Object.defineProperty(e,t,{value:l.create()})}return e[t]}function a(e,t){for(var r=0;r<t;++r)e[r]=255*Math.random()|0;return e}function i(){var e=function(e){if("function"==typeof Uint8Array){var t=new Uint8Array(e);return"undefined"!=typeof crypto?crypto.getRandomValues(t):"undefined"!=typeof msCrypto?msCrypto.getRandomValues(t):a(t,e),t}return a(new Array(e),e)}(16);e[6]=79&e[6]|64,e[8]=191&e[8]|128;for(var t="",r=0;r<16;++r){var n=e[r];4!==r&&6!==r&&8!==r||(t+="-"),n<16&&(t+="0"),t+=n.toString(16).toLowerCase()}return t}}(),y=n?Symbol.for("@reflect-metadata:registry"):void 0,h=function(){var e;return!P(y)&&A(t.Reflect)&&Object.isExtensible(t.Reflect)&&(e=t.Reflect[y]),P(e)&&(e=function(){var e,r,n,o;P(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!(P(r)||!r.has(t))||!!o(e,t).length&&(P(r)&&(r=new f,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 P(r):r=t;break;case r===t:break;case P(n):n=t;break;case n===t:break;default:void 0===o&&(o=new f),o.add(t)}}function c(t,a){if(!P(r)){if(r.isProviderFor(t,a))return r;if(!P(n)){if(n.isProviderFor(t,a))return r;if(!P(o))for(var i=N(o);;){var s=V(i);if(!s)return;var c=x(s);if(c.isProviderFor(t,a))return k(i),c}}}if(!P(e)&&e.isProviderFor(t,a))return e}function l(e,t){var r,n=a.get(e);return P(n)||(r=n.get(t)),P(r)?(P(r=c(e,t))||(P(n)&&(n=new d,a.set(e,n)),n.set(t,r)),r):r}function u(e){if(P(e))throw new TypeError;return r===e||n===e||!P(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(!P(n))return!1;var o=a.get(e);P(o)&&(o=new d,a.set(e,o)),o.set(t,r)}return!0}}()),!P(y)&&A(t.Reflect)&&Object.isExtensible(t.Reflect)&&Object.defineProperty(t.Reflect,y,{enumerable:!1,configurable:!1,writable:!1,value:e}),e}(),g=function(e){var t=new p,r={isProviderFor:function(e,r){var n=t.get(e);return!P(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!P(o)&&S(o.has(e))},OrdinaryGetOwnMetadata:function(e,t,r){var o=n(t,r,!1);if(!P(o))return o.get(e)},OrdinaryOwnMetadataKeys:function(e,t){var r=[],o=n(e,t,!1);if(P(o))return r;for(var a=N(o.keys()),i=0;;){var s=V(a);if(!s)return r.length=i,r;var c=x(s);try{r[i]=c}catch(e){try{k(a)}finally{throw e}}i++}},OrdinaryDeleteMetadata:function(e,r,o){var a=n(r,o,!1);if(P(a))return!1;if(!a.delete(e))return!1;if(0===a.size){var i=t.get(r);P(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(P(i)){if(!a)return;i=new d,t.set(n,i),s=!0}var c=i.get(o);if(P(c)){if(!a)return;if(c=new d,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 O(e,t,r){if(E(e,t,r))return!0;var n=U(t);return!w(n)&&O(e,n,r)}function E(e,t,r){var n=B(t,r,!1);return!P(n)&&S(n.OrdinaryHasOwnMetadata(e,t,r))}function v(e,t,r){if(E(e,t,r))return b(e,t,r);var n=U(t);return w(n)?void 0:v(e,n,r)}function b(e,t,r){var n=B(t,r,!1);if(!P(n))return n.OrdinaryGetOwnMetadata(e,t,r)}function _(e,t,r,n){B(r,n,!0).OrdinaryDefineOwnMetadata(e,t,r,n)}function m(e,t){var r=R(e,t),n=U(e);if(null===n)return r;var o=m(n,t);if(o.length<=0)return r;if(r.length<=0)return o;for(var a=new f,i=[],s=0,c=r;s<c.length;s++){var l=c[s];a.has(l)||(a.add(l),i.push(l))}for(var u=0,d=o;u<d.length;u++)l=d[u],a.has(l)||(a.add(l),i.push(l));return i}function R(e,t){var r=B(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 P(e){return void 0===e}function w(e){return null===e}function A(e){return"object"==typeof e?null!==e:"function"==typeof e}function j(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=L(e,o);if(void 0!==n){var a=n.call(e,r);if(A(a))throw new TypeError;return a}return function(e,t){if("string"===t){var r=e.toString;if(C(r)&&!A(o=r.call(e)))return o;if(C(n=e.valueOf)&&!A(o=n.call(e)))return o}else{var n;if(C(n=e.valueOf)&&!A(o=n.call(e)))return o;var o,a=e.toString;if(C(a)&&!A(o=a.call(e)))return o}throw new TypeError}(e,"default"===r?"number":r)}function S(e){return!!e}function T(e){var t=j(e,3);return"symbol"==typeof t?t:function(e){return""+e}(t)}function D(e){return Array.isArray?Array.isArray(e):e instanceof Object?e instanceof Array:"[object Array]"===Object.prototype.toString.call(e)}function C(e){return"function"==typeof e}function I(e){return"function"==typeof e}function K(e,t){return e===t||e!=e&&t!=t}function L(e,t){var r=e[t];if(null!=r){if(!C(r))throw new TypeError;return r}}function N(e){var t=L(e,a);if(!C(t))throw new TypeError;var r=t.call(e);if(!A(r))throw new TypeError;return r}function x(e){return e.value}function V(e){var t=e.next();return!t.done&&t}function k(e){var t=e.return;t&&t.call(e)}function U(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 B(e,t,r){var n=h.getProvider(e,t);if(!P(n))return n;if(r){if(h.setProvider(e,t,g))return g;throw new Error("Illegal state.")}}function F(e){return e.__=void 0,delete e.__,e}e("decorate",(function(e,t,r,n){if(P(r)){if(!D(e))throw new TypeError;if(!I(t))throw new TypeError;return function(e,t){for(var r=e.length-1;r>=0;--r){var n=(0,e[r])(t);if(!P(n)&&!w(n)){if(!I(n))throw new TypeError;t=n}}return t}(e,t)}if(!D(e))throw new TypeError;if(!A(t))throw new TypeError;if(!A(n)&&!P(n)&&!w(n))throw new TypeError;return w(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(!P(a)&&!w(a)){if(!A(a))throw new TypeError;n=a}}return n}(e,t,r=T(r),n)})),e("metadata",(function(e,t){return function(r,n){if(!A(r))throw new TypeError;if(!P(n)&&!function(e){switch(M(e)){case 3:case 4:return!0;default:return!1}}(n))throw new TypeError;_(e,t,r,n)}})),e("defineMetadata",(function(e,t,r,n){if(!A(r))throw new TypeError;return P(n)||(n=T(n)),_(e,t,r,n)})),e("hasMetadata",(function(e,t,r){if(!A(t))throw new TypeError;return P(r)||(r=T(r)),O(e,t,r)})),e("hasOwnMetadata",(function(e,t,r){if(!A(t))throw new TypeError;return P(r)||(r=T(r)),E(e,t,r)})),e("getMetadata",(function(e,t,r){if(!A(t))throw new TypeError;return P(r)||(r=T(r)),v(e,t,r)})),e("getOwnMetadata",(function(e,t,r){if(!A(t))throw new TypeError;return P(r)||(r=T(r)),b(e,t,r)})),e("getMetadataKeys",(function(e,t){if(!A(e))throw new TypeError;return P(t)||(t=T(t)),m(e,t)})),e("getOwnMetadataKeys",(function(e,t){if(!A(e))throw new TypeError;return P(t)||(t=T(t)),R(e,t)})),e("deleteMetadata",(function(e,t,r){if(!A(t))throw new TypeError;if(P(r)||(r=T(r)),!A(t))throw new TypeError;P(r)||(r=T(r));var n=B(t,r,!1);return!P(n)&&n.OrdinaryDeleteMetadata(e,t,r)}))}(n,t),void 0===t.Reflect&&(t.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);
|
2
|
+
var e={5580:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.pkOnCreate=d,t.pk=function(e=o.DefaultSequenceOptions){return e=Object.assign({},o.DefaultSequenceOptions,e),(0,i.apply)((0,c.index)([u.OrderDirection.ASC,u.OrderDirection.DSC]),(0,n.required)(),(0,a.readonly)(),(0,n.propMetadata)(s.Repository.key(a.DBKeys.ID),e),(0,a.onCreate)(d,e))};const n=r(2302),o=r(643),a=r(5922),i=r(32),s=r(3932),c=r(5893),l=r(861),u=r(5666);async function d(e,t,r,n){if(!t.type||n[r])return;let o;t.name||(t.name=(0,l.sequenceNameForModel)(n,"pk"));try{o=await this.adapter.Sequence(t)}catch(e){throw new a.InternalError(`Failed to instantiate Sequence ${t.name}: ${e}`)}var i,s,c;i=n,s=r,c=await o.next(),Object.defineProperty(i,s,{enumerable:!0,writable:!1,configurable:!0,value:c})}},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.getTableName=i,t.sequenceNameForModel=function(e,...t){return[i(e),...t].join("_")};const n=r(2302),o=r(6946),a=r(6176);function i(e){return Reflect.getMetadata(o.Adapter.key(a.PersistenceKeys.TABLE),e instanceof n.Model?e.constructor:e)||(e instanceof n.Model?e.constructor.name:e.name)}},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}),t.VERSION=void 0;const a=r(5666),i=r(465);o(r(2912),t),o(r(1206),t),o(r(3847),t),o(r(4017),t),o(r(6746),t),o(r(5666),t),o(r(6193),t),i.Injectables.setRegistry(new a.InjectablesRegistry),t.VERSION="0.3.24"},5261:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},1385:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},1461:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},9314:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},4274:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},9437:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},643:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BigIntSequence=t.NumericSequence=t.DefaultSequenceOptions=void 0,t.DefaultSequenceOptions={type:"Number",startWith:0,incrementBy:1,cycle:!1},t.NumericSequence={type:"Number",startWith:0,incrementBy:1,cycle:!1},t.BigIntSequence={type:"BigInt",startWith:0,incrementBy:1,cycle:!1}},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(5261),t),o(r(1385),t),o(r(1461),t),o(r(9314),t),o(r(4274),t),o(r(9437),t),o(r(643),t)},9669: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.BaseModel=void 0;const a=r(5922),i=r(2302);class s extends i.Model{constructor(e){super(e)}}t.BaseModel=s,n([(0,a.timestamp)(a.DBOperations.CREATE),o("design:type",Date)],s.prototype,"createdOn",void 0),n([(0,a.timestamp)(),o("design:type",Date)],s.prototype,"updatedOn",void 0)},980: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.User=void 0;const a=r(2302),i=r(5580);let s=class extends a.Model{constructor(e){super(e)}};t.User=s,n([(0,i.pk)(),o("design:type",String)],s.prototype,"id",void 0),n([(0,a.list)([String]),o("design:type",Array)],s.prototype,"roles",void 0),n([(0,a.list)([String]),o("design:type",Array)],s.prototype,"affiliations",void 0),t.User=s=n([(0,a.model)(),o("design:paramtypes",[Object])],s)},7038:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createOrUpdate=c,t.oneToOneOnCreate=async function(e,t,r,i){const s=i[r];if(!s)return;if("object"!=typeof s){const t=p(i,r),n=await t.read(s);return await d(e,i,r,s,n),void(i[r]=s)}const c=n.Model.get(t.class);if(!c)throw new a.InternalError(`Could not find model ${t.class}`);const l=o.Repository.forModel(c),u=await l.create(s),f=(0,a.findPrimaryKey)(u).id;await d(e,i,r,u[f],u),i[r]=u[f]},t.oneToOneOnUpdate=async function(e,t,r,n){const o=n[r];if(!o)return;if(t.cascade.update!==s.Cascade.CASCADE)return;if("object"!=typeof o){const t=p(n,r),a=await t.read(o);return await d(e,n,r,o,a),void(n[r]=o)}const i=await c(n[r],e),l=(0,a.findPrimaryKey)(i).id;await d(e,n,r,i[l],i),n[r]=i[l]},t.oneToOneOnDelete=async function(e,t,r,o){const a=o[r];if(!a)return;if(t.cascade.update!==s.Cascade.CASCADE)return;const i=p(o,r);let c;c=a instanceof n.Model?await i.delete(o[r][i.pk],e):await i.delete(o[r],e),await d(e,o,r,c[i.pk],c)},t.oneToManyOnCreate=l,t.oneToManyOnUpdate=async function(e,t,r,n){const{cascade:o}=t;if(o.update===s.Cascade.CASCADE)return l.call(this,e,t,r,n)},t.oneToManyOnDelete=async function(e,t,r,n){if(t.cascade.delete!==s.Cascade.CASCADE)return;const i=n[r];if(!i||!i.length)return;const c=typeof i[0];if(!i.every((e=>typeof e===c)))throw new a.InternalError(`Invalid operation. All elements of property ${r} must match the same type.`);const l="object"===c,u=l?o.Repository.forModel(i[0]):p(n,r),f=new Set([...l?i.map((e=>e[u.pk])):i]);for(const t of f.values()){const o=await u.delete(t,e);await d(e,n,r,t,o)}n[r]=[...f]},t.getPopulateKey=u,t.cacheModelForPopulate=d,t.populate=async function(e,t,r,n){if(!t.populate)return;const o=n[r],i=Array.isArray(o);if(void 0===o||i&&0===o.length)return;const s=await async function(e,t,r,n){let o,i;const s=[];for(const c of n){o=u(t.constructor.name,r,c);try{i=await e.get(o)}catch(e){const n=p(t,r);if(!n)throw new a.InternalError("Could not find repo");i=await n.read(c)}s.push(i)}return s}(e,n,r,i?o:[o]);n[r]=i?s:s[0]},t.repositoryFromTypeMetadata=p;const n=r(2302),o=r(3932),a=r(5922),i=r(6176),s=r(2859);async function c(e,t,r){if(!r){const t=n.Model.get(e.constructor.name);if(!t)throw new a.InternalError(`Could not find model ${e.constructor.name}`);r=o.Repository.forModel(t)}if(void 0===e[r.pk])return r.create(e,t);try{return r.update(e,t)}catch(n){if(!(n instanceof a.NotFoundError))throw n;return r.create(e,t)}}async function l(e,t,r,n){const o=n[r];if(!o||!o.length)return;const i=typeof o[0];if(!o.every((e=>typeof e===i)))throw new a.InternalError(`Invalid operation. All elements of property ${r} must match the same type.`);const s=new Set([...o]);if("object"!==i){const t=p(n,r);for(const o of s){const a=await t.read(o);await d(e,n,r,o,a)}return void(n[r]=[...s])}const l=(0,a.findPrimaryKey)(o[0]).id,u=new Set;for(const t of o){const o=await c(t,e);await d(e,n,r,o[l],o),u.add(o[l])}n[r]=[...u]}function u(e,t,r){return[i.PersistenceKeys.POPULATE,e,t,r].join(".")}async function d(e,t,r,n,o){const a=u(t.constructor.name,r,n);return e.put(a,o)}const f=["array","string","number","boolean","symbol","function","object","undefined","null","bigint"];function p(e,t){const r=Reflect.getMetadata(n.Validation.key(Array.isArray(e[t])?n.ValidationKeys.LIST:n.ValidationKeys.TYPE),e,t),i=Array.isArray(e[t])?r.class:r.customTypes;if(!r||!i)throw new a.InternalError(`Failed to find types decorators for property ${t}`);const s=(Array.isArray(i)?[...i]:[i]).find((e=>!f.includes(`${e}`.toLowerCase())));if(!s)throw new a.InternalError(`Property key ${t} does not have a valid constructor type`);const c=n.Model.get(s);if(!c)throw new a.InternalError(`No registered model found for ${s}`);return o.Repository.forModel(c)}},5893:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.table=function(e){return(0,o.metadata)(c.Adapter.key(a.PersistenceKeys.TABLE),e)},t.column=function(e){return(0,s.propMetadata)(c.Adapter.key(a.PersistenceKeys.COLUMN),e)},t.index=function(e,t){return(0,s.propMetadata)(l.Repository.key(`${a.PersistenceKeys.INDEX}${t&&t.length?`.${t.join(".")}`:""}`),{directions:e,compositions:t})},t.uniqueOnCreateUpdate=p,t.unique=function(){return(0,o.apply)((0,n.onCreateUpdate)(p),(0,s.propMetadata)(l.Repository.key(a.PersistenceKeys.UNIQUE),{}))},t.createdByOnCreateUpdate=y,t.createdBy=function(){return(0,o.apply)((0,n.onCreate)(y),(0,s.propMetadata)(l.Repository.key(a.PersistenceKeys.CREATED_BY),{}))},t.updatedBy=function(){return(0,o.apply)((0,n.onCreateUpdate)(y),(0,s.propMetadata)(l.Repository.key(a.PersistenceKeys.CREATED_BY),{}))},t.oneToOne=function(e,t=i.DefaultCascade,r=!0){s.Model.register(e);const c={class:e.name,cascade:t,populate:r};return(0,o.apply)((0,s.prop)(a.PersistenceKeys.RELATIONS),(0,s.type)([e.name,String.name,Number.name,BigInt.name]),(0,n.onCreate)(d.oneToOneOnCreate,c),(0,n.onUpdate)(d.oneToOneOnUpdate,c),(0,n.onDelete)(d.oneToOneOnDelete,c),(0,n.afterAny)(d.populate,c),(0,s.propMetadata)(l.Repository.key(a.PersistenceKeys.ONE_TO_ONE),c))},t.oneToMany=function(e,t=i.DefaultCascade,r=!0){s.Model.register(e);const c={class:e.name,cascade:t,populate:r};return(0,o.apply)((0,s.prop)(a.PersistenceKeys.RELATIONS),(0,s.list)([e,String,Number,BigInt]),(0,n.onCreate)(d.oneToManyOnCreate,c),(0,n.onUpdate)(d.oneToManyOnUpdate,c),(0,n.onDelete)(d.oneToManyOnDelete,c),(0,n.afterAny)(d.populate,c),(0,s.propMetadata)(l.Repository.key(a.PersistenceKeys.ONE_TO_MANY),c))},t.manyToOne=function(e,t=i.DefaultCascade,r=!0){s.Model.register(e);const n={class:e.name,cascade:t,populate:r};return(0,o.apply)((0,s.prop)(a.PersistenceKeys.RELATIONS),(0,s.type)([e.name,String.name,Number.name,BigInt.name]),(0,s.propMetadata)(l.Repository.key(a.PersistenceKeys.MANY_TO_ONE),n))};const n=r(5922),o=r(32),a=r(6176),i=r(2859),s=r(2302),c=r(6946),l=r(3932),u=r(2063),d=r(7038),f=r(5962);async function p(e,t,r,o){if(o[r]&&(await this.select().where(u.Condition.attribute(r).eq(o[r])).execute()).length)throw new n.ConflictError(`model already exists with property ${r} equal to ${JSON.stringify(o[r],void 0,2)}`)}async function y(e,t,r,n){const o=e.user;if(!o)throw new f.UnsupportedError("This adapter does not support user identification");n[r]=o.id}},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(9669),t),o(r(5893),t),o(r(9282),t),o(r(980),t)},9282:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},6946:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Adapter=void 0;const n=r(5922),o=r(2302),a=r(6176),i=r(2258),s=r(3932),c=r(4605),l=r(5962);class u{static{this._cache={}}get native(){return this._native}repository(){return s.Repository}constructor(e,t){if(this.flavour=t,this._observers=[],this.flavour in u._cache)throw new n.InternalError(`Persistence adapter flavour ${this.flavour} already registered`);this._native=e,u._cache[this.flavour]=this}Query(){return new i.Query(this)}isReserved(e){return!e}async context(e,t){let r;try{r=await this.user()}catch(e){if(!(e instanceof l.UnsupportedError))throw e}const n=new class extends c.Context{constructor(e,t,r){super(e,t,r)}get user(){if(!r)throw new l.UnsupportedError("Adapter does not support user identification");return r}}(e,t);return n}prepare(e,t){const r=Object.entries(e).reduce(((t,[r,o])=>{const a=s.Repository.column(e,r);if(this.isReserved(a))throw new n.InternalError(`Property name ${a} is reserved`);return t[a]=o,t}),{});return e[a.PersistenceKeys.METADATA]&&Object.defineProperty(r,a.PersistenceKeys.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:e[a.PersistenceKeys.METADATA]}),{record:r,id:e[t]}}revert(e,t,r,n){const i={};i[r]=n;const c="string"==typeof t?o.Model.build(i,t):new t(i),l=e[a.PersistenceKeys.METADATA],u=Object.keys(c).reduce(((t,n)=>(n===r||(t[n]=e[s.Repository.column(t,n)]),t)),c);return l&&Object.defineProperty(u,a.PersistenceKeys.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:l}),u}async createAll(e,t,r,...o){if(t.length!==r.length)throw new n.InternalError("Ids and models must have the same length");return Promise.all(t.map(((t,n)=>this.create(e,t,r[n],...o))))}async readAll(e,t,...r){return Promise.all(t.map((t=>this.read(e,t,...r))))}async updateAll(e,t,r,...o){if(t.length!==r.length)throw new n.InternalError("Ids and models must have the same length");return Promise.all(t.map(((t,n)=>this.update(e,t,r[n],...o))))}async deleteAll(e,t,...r){return Promise.all(t.map((t=>this.delete(e,t,...r))))}observe(e){if(-1!==this._observers.indexOf(e))throw new n.InternalError("Observer already registered");this._observers.push(e)}unObserve(e){const t=this._observers.indexOf(e);if(-1===t)throw new n.InternalError("Failed to find Observer");this._observers.splice(t,1)}async updateObservers(...e){(await Promise.allSettled(this._observers.map((t=>t.refresh(...e))))).forEach(((e,t)=>{"rejected"===e.status&&console.warn(`Failed to update observable ${this._observers[t]}: ${e.reason}`)}))}static get current(){return this._current}static get(e){if(e in this._cache)return this._cache[e];throw new n.InternalError(`No Adapter registered under ${e}.`)}static setCurrent(e){const t=u.get(e);if(!t)throw new n.NotFoundError(`No persistence flavour ${e} registered`);this._current=t}static key(e){return s.Repository.key(e)}static models(e){try{const t=o.Model.getRegistry().cache;return Object.values(t).map((t=>{let r=Reflect.getMetadata(u.key(a.PersistenceKeys.ADAPTER),t);if(r&&r===e)return t;if(!r){if(!Reflect.getMetadata(s.Repository.key(n.DBKeys.REPOSITORY),t))return;const e=s.Repository.forModel(t);return r=Reflect.getMetadata(u.key(a.PersistenceKeys.ADAPTER),e),r}})).filter((e=>!!e))}catch(e){throw new n.InternalError(e)}}}t.Adapter=u},2224:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Sequence=void 0;const n=r(861);t.Sequence=class{constructor(e){this.options=e}static pk(e){return(0,n.sequenceNameForModel)(e,"pk")}}},6176:(e,t)=>{var r,n;Object.defineProperty(t,"__esModule",{value:!0}),t.Roles=t.PersistenceKeys=void 0,function(e){e.INDEX="index",e.UNIQUE="unique",e.ADAPTER="adapter",e.INJECTABLE="decaf_{0}_adapter_for_{1}",e.TABLE="table",e.COLUMN="column",e.METADATA="__metadata",e.RELATIONS="__relations",e.CLAUSE_SEQUENCE="clause-sequence",e.CREATED_BY="ownership.created-by",e.UPDATED_BY="ownership.updated-by",e.ONE_TO_ONE="relations.one-to-one",e.ONE_TO_MANY="relations.one-to-many",e.MANY_TO_ONE="relations.many-to-one",e.POPULATE="populate"}(r||(t.PersistenceKeys=r={})),function(e){e.ADMIN="admin",e.WRITER="writer",e.READER="reader"}(n||(t.Roles=n={}))},263:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.uses=function(e){return(0,n.apply)((0,n.metadata)(a.Adapter.key(o.PersistenceKeys.ADAPTER),e))};const n=r(32),o=r(6176),a=r(6946)},5962:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnsupportedError=t.ConnectionError=void 0;const n=r(5922);class o extends n.BaseError{constructor(e){super(o.name,e)}}t.ConnectionError=o;class a extends n.BaseError{constructor(e){super(a.name,e)}}t.UnsupportedError=a},4017: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(6946),t),o(r(6176),t),o(r(263),t),o(r(5962),t),o(r(2224),t)},7345: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.Clause=void 0;const a=r(2302),i=r(743),s=(r(2755),r(7335));class c extends a.Model{constructor(e){if(super(),this.priority=e?.priority,this.statement=e?.statement,!this.statement||!this.priority)throw new i.QueryError("Missing statement or priority. Should be impossible");this.statement.addClause(this)}get adapter(){return this.statement.getAdapter()}get Clauses(){return this.statement.getAdapter().Clauses}getPriority(){return this.priority}async execute(){return this.statement.execute()}async paginate(e){return this.statement.paginate(e)}toString(){return this.constructor.name}}t.Clause=c,n([(0,a.required)(),o("design:type",Number)],c.prototype,"priority",void 0),n([(0,a.required)(),(0,a.type)("object"),o("design:type",s.Statement)],c.prototype,"statement",void 0)},2503:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ClauseFactory=void 0,t.ClauseFactory=class{constructor(e){this.adapter=e}}},2063: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.Condition=void 0;const a=r(2302),i=r(2755),s=r(743);class c extends a.Model{constructor(e,t,r){super(),this.attr1=void 0,this.operator=void 0,this.comparison=void 0,this.attr1=e,this.operator=t,this.comparison=r}and(e){return c.and(this,e)}or(e){return c.or(this,e)}not(e){return new c(this,i.Operator.NOT,e)}hasErrors(...e){const t=super.hasErrors(...e);if(t)return t;if("string"==typeof this.attr1){if(this.comparison instanceof c)return{comparison:{condition:"Both sides of the comparison must be of the same type"}};if(-1===Object.values(i.Operator).indexOf(this.operator))return{operator:{condition:(0,a.sf)("Invalid operator {0}",this.operator)}}}if(this.attr1 instanceof c){if(!(this.comparison instanceof c)&&this.operator!==i.Operator.NOT)return{comparison:{condition:(0,a.sf)("Invalid operator {0}",this.operator)}};if(-1===Object.values(i.GroupOperator).indexOf(this.operator)&&this.operator!==i.Operator.NOT)return{operator:{condition:(0,a.sf)("Invalid operator {0}",this.operator)}}}}static and(e,t){return c.group(e,i.GroupOperator.AND,t)}static or(e,t){return c.group(e,i.GroupOperator.OR,t)}static group(e,t,r){return new c(e,t,r)}static attribute(e){return(new c.Builder).attribute(e)}static{this.Builder=class{constructor(){this.attr1=void 0,this.operator=void 0,this.comparison=void 0}attribute(e){return this.attr1=e,this}eq(e){return this.setOp(i.Operator.EQUAL,e)}dif(e){return this.setOp(i.Operator.DIFFERENT,e)}gt(e){return this.setOp(i.Operator.BIGGER,e)}lt(e){return this.setOp(i.Operator.SMALLER,e)}gte(e){return this.setOp(i.Operator.BIGGER_EQ,e)}lte(e){return this.setOp(i.Operator.SMALLER_EQ,e)}in(e){return this.setOp(i.Operator.IN,e)}regexp(e){return this.setOp(i.Operator.REGEXP,new RegExp(e).source)}setOp(e,t){return this.operator=e,this.comparison=t,this.build()}build(){try{return new c(this.attr1,this.operator,this.comparison)}catch(e){throw new s.QueryError(e)}}}}static get builder(){return new c.Builder}}t.Condition=c,n([(0,a.required)(),o("design:type",Object)],c.prototype,"attr1",void 0),n([(0,a.required)(),o("design:type",String)],c.prototype,"operator",void 0),n([(0,a.required)(),o("design:type",Object)],c.prototype,"comparison",void 0)},8233:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Paginator=void 0;const n=r(743);t.Paginator=class{get current(){return this._currentPage}get total(){return this._totalPages}get count(){return this._recordCount}get statement(){return this._statement||(this._statement=this.prepare(this._rawStatement)),this._statement}get adapter(){return this.stat.getAdapter()}constructor(e,t,r){this.stat=e,this.size=t,this._rawStatement=r}async next(){return this.page(this.current+1)}async previous(){return this.page(this.current-1)}validatePage(e){if(e<1||!Number.isInteger(e))throw new n.PagingError("page number cannot be under 1 and must be an integer");if(e>this._totalPages)throw new n.PagingError("page number cannot be under 1 and must be an integer")}}},2258:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Query=void 0;const n=r(2755);t.Query=class{constructor(e){this.adapter=e}select(e=n.Const.FULL_RECORD){return this.adapter.Clauses.select(e)}min(e){return this.select().min(e)}max(e){return this.select().max(e)}distinct(e){return this.select().distinct(e)}count(e){return this.select().count(e)}insert(){return this.adapter.Clauses.insert()}}},7335: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.Statement=void 0;const a=r(2302),i=r(2755),s=r(743),c=r(6193),l=r(4017),u=r(5922);class d extends a.Model{constructor(e){super(),this.clauses=void 0,this.target=void 0,this.fullRecord=!1,this.type=void 0,this.adapter=e}build(){if(!this.clauses)throw new s.QueryError((0,a.sf)("Failed to build Statement:\n{0}","No Clauses"));this.clauses.sort(((e,t)=>e.getPriority()-t.getPriority()));const e=this.hasErrors();if(e)throw new s.QueryError((0,a.sf)("Poorly built statement: {0}",e.toString()));let t;try{const e=function(t,r={}){const n=t.shift();if(!n)return r;const o=n.build(r);return e(t,o)};t=e(new Array(...this.clauses))}catch(e){throw new s.QueryError(e)}return t}async execute(){try{const e=this.build();return this.raw(e)}catch(e){throw new u.InternalError(e)}}async raw(e,...t){const r=await this.adapter.raw(e,!0,...t);if(!this.fullRecord)return r;if(!this.target)throw new u.InternalError("No target defined in statement. should never happen");const n=(0,u.findPrimaryKey)(new this.target).id,o=function(e){const t=e[n];return this.adapter.revert(e,this.target,n,t)}.bind(this);return Array.isArray(r)?r.map(o):o(r)}hasErrors(...e){const t=super.hasErrors(...e);if(t)return t;for(const e in this.clauses){const t=this.clauses[e].hasErrors();if(t)return t}}addClause(e){this.clauses||(this.clauses=[]);const t=e.getPriority(),r=this.clauses.map(((e,t)=>({index:t,clause:e}))).find((e=>e.clause.getPriority()===t));r&&(this.clauses[r.index]=e),this.clauses.push(e)}getAdapter(){return this.adapter}setTarget(e){if(this.target)throw new s.QueryError((0,a.sf)("Output class already defined to {0}",this.target.name));this.target=e}getTarget(){if(!this.target)throw new u.InternalError("No target defined for statement");return this.target}setFullRecord(){this.fullRecord=!0}setMode(e){this.type=e}}t.Statement=d,n([(0,a.required)(),(0,a.minlength)(i.MandatoryPriorities.length),(0,c.clauseSequence)(),o("design:type",Array)],d.prototype,"clauses",void 0),n([(0,a.required)(),(0,a.type)(["object"]),o("design:type",l.Adapter)],d.prototype,"adapter",void 0),n([(0,a.required)(),o("design:type",Object)],d.prototype,"target",void 0),n([(0,a.required)(),o("design:type",String)],d.prototype,"type",void 0)},8066:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FromClause=void 0;const n=r(2755),o=r(5150),a=r(743),i=r(2302);class s extends o.SelectorBasedClause{constructor(e){if(super(Object.assign({},e,{priority:n.Priority.FROM})),this.selector="string"==typeof this.selector?i.Model.get(this.selector):this.selector,!this.selector)throw new a.QueryError((0,i.stringFormat)("Could not find selector model: {0}"));this.statement.setTarget(this.selector)}where(e){return this.Clauses.where(this.statement,e)}orderBy(...e){return this.Clauses.orderBy(this.statement,e)}groupBy(e){return this.Clauses.groupBy(this.statement,e)}limit(e){return this.Clauses.limit(this.statement,e)}offset(e){return this.Clauses.offset(this.statement,e)}}t.FromClause=s},1344:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.GroupByClause=void 0;const n=r(2755),o=r(5150);class a extends o.SelectorBasedClause{constructor(e){super(Object.assign({},e,{priority:n.Priority.GROUP_BY}))}}t.GroupByClause=a},2455: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.InsertClause=void 0;const a=r(2755),i=r(7345),s=r(2302);class c extends i.Clause{constructor(e){super(Object.assign({},e,{priority:a.Priority.SELECT})),this.table=void 0}into(e){return this.table=e.name,this.statement.setTarget(e),this}values(...e){return this.Clauses.values(this.statement,e)}where(e){return this.Clauses.where(this.statement,e)}}t.InsertClause=c,n([(0,s.required)(),o("design:type",String)],c.prototype,"table",void 0)},3069:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LimitClause=void 0;const n=r(5150),o=r(2755);class a extends n.SelectorBasedClause{constructor(e){super(Object.assign({},e,{priority:o.Priority.GROUP_BY}))}offset(e){return this.Clauses.offset(this.statement,e)}}t.LimitClause=a},1897:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OffsetClause=void 0;const n=r(5150),o=r(2755);class a extends n.SelectorBasedClause{constructor(e){super(Object.assign({},e,{priority:o.Priority.GROUP_BY}))}}t.OffsetClause=a},4223:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OrderByClause=void 0;const n=r(5150),o=r(2755);class a extends n.SelectorBasedClause{constructor(e){super(Object.assign({},e,{priority:o.Priority.ORDER_BY}))}groupBy(e){return this.Clauses.groupBy(this.statement,e)}limit(e){return this.Clauses.limit(this.statement,e)}offset(e){return this.Clauses.offset(this.statement,e)}}t.OrderByClause=a},9806:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelectClause=void 0;const n=r(5150),o=r(2755);class a extends n.SelectorBasedClause{constructor(e){super(Object.assign({},e,{priority:o.Priority.SELECT})),this.isDistinct=!1,this.isCount=!1,this.isMax=!1,this.isMin=!1,this.selector===o.Const.FULL_RECORD&&this.statement.setFullRecord(),this.statement.setMode(o.StatementType.QUERY)}distinct(e){return this.isDistinct=!0,this.selector=e,this}count(e){return this.selector=e,this}min(e){return this.selector=e,this}max(e){return this.selector=e,this}from(e){return this.Clauses.from(this.statement,e)}}t.SelectClause=a},5150: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.SelectorBasedClause=void 0;const a=r(7345),i=r(2302);class s extends a.Clause{constructor(e){super(e),this.selector=void 0,this.selector=e.selector}toString(){return this.constructor.name+`[${this.selector}]`}}t.SelectorBasedClause=s,n([(0,i.required)(),o("design:type",Object)],s.prototype,"selector",void 0)},6076: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.ValuesClause=void 0;const a=r(7345),i=r(2755),s=r(2302);class c extends a.Clause{constructor(e){super(Object.assign({},e,{priority:i.Priority.FROM})),this.models=void 0,this.models=e?.models}}t.ValuesClause=c,n([(0,s.required)(),(0,s.type)(Array.name),o("design:type",Array)],c.prototype,"models",void 0)},117: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.WhereClause=void 0;const a=r(7345),i=r(2063),s=r(2302),c=r(2755);class l extends a.Clause{constructor(e){super(Object.assign({},e,{priority:c.Priority.WHERE})),this.condition=void 0,this.condition=e?.condition}orderBy(...e){return this.Clauses.orderBy(this.statement,e)}groupBy(e){return this.Clauses.groupBy(this.statement,e)}limit(e){return this.Clauses.limit(this.statement,e)}offset(e){return this.Clauses.offset(this.statement,e)}hasErrors(...e){return super.hasErrors(...e)||this.condition.hasErrors()}}t.WhereClause=l,n([(0,s.required)(),(0,s.type)("Condition"),o("design:type",i.Condition)],l.prototype,"condition",void 0)},47: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(8066),t),o(r(1344),t),o(r(2455),t),o(r(3069),t),o(r(1897),t),o(r(4223),t),o(r(9806),t),o(r(5150),t),o(r(6076),t),o(r(117),t)},2755:(e,t)=>{var r,n,o,a,i;Object.defineProperty(t,"__esModule",{value:!0}),t.StatementType=t.MandatoryPriorities=t.Priority=t.Const=t.GroupOperator=t.Operator=void 0,function(e){e.EQUAL="EQUAL",e.DIFFERENT="DIFFERENT",e.BIGGER="BIGGER",e.BIGGER_EQ="BIGGER_EQ",e.SMALLER="SMALLER",e.SMALLER_EQ="SMALLER_EQ",e.NOT="NOT",e.IN="IN",e.REGEXP="REGEXP"}(r||(t.Operator=r={})),function(e){e.AND="AND",e.OR="OR"}(n||(t.GroupOperator=n={})),function(e){e.NULL="NULL",e.FULL_RECORD="*"}(o||(t.Const=o={})),function(e){e[e.FROM=1]="FROM",e[e.JOIN=1.1]="JOIN",e[e.WHERE=2]="WHERE",e[e.GROUP_BY=3]="GROUP_BY",e[e.HAVING=4]="HAVING",e[e.SELECT=5]="SELECT",e[e.ORDER_BY=6]="ORDER_BY",e[e.LIMIT=7]="LIMIT",e[e.OFFSET=7.1]="OFFSET"}(a||(t.Priority=a={})),t.MandatoryPriorities=[a.FROM,a.SELECT],function(e){e.QUERY="query",e.TRANSACTION="transaction"}(i||(t.StatementType=i={}))},743:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PagingError=t.QueryError=void 0;const n=r(5922);class o extends n.BaseError{constructor(e){super(o.name,e)}}t.QueryError=o;class a extends n.BaseError{constructor(e){super(a.name,e)}}t.PagingError=a},6746: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(47),t),o(r(7345),t),o(r(2503),t),o(r(2063),t),o(r(2755),t),o(r(743),t),o(r(4388),t),o(r(8233),t),o(r(2258),t),o(r(2764),t),o(r(7335),t),o(r(4731),t)},4388:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},2764:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},4731:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},4605:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Context=void 0;const n=r(5922);class o extends n.Context{constructor(e,t,r){super(e,t,r)}get timestamp(){return this._timestamp||(this._timestamp=new Date),this._timestamp}}t.Context=o},3932:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Repository=void 0;const n=r(5922),o=r(6946),a=r(2302),i=r(6176),s=r(2258),c=r(2859),l=r(32),u=r(2224),d=r(861),f=r(263),p=r(4605);class y extends n.Repository{static{this._cache={}}get adapter(){if(!this._adapter)throw new n.InternalError("No adapter found for this repository. did you use the @uses decorator or pass it in the constructor?");return this._adapter}get tableName(){return this._tableName||(this._tableName=y.table(this.class)),this._tableName}constructor(e,t){if(super(t),this.observers=[],e&&(this._adapter=e),t&&(y.register(t,this),e)){const r=Reflect.getMetadata(o.Adapter.key(i.PersistenceKeys.ADAPTER),t);if(r&&r!==e.flavour)throw new n.InternalError("Incompatible flavours");(0,f.uses)(e.flavour)(t)}[this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach((e=>{const t=e.name;(0,n.wrapMethodWithContext)(this,this[t+"Prefix"],e,this[t+"Suffix"])}))}async createPrefix(e,...t){const r=await p.Context.args(n.OperationKeys.CREATE,this.class,t,this.adapter);e=new this.class(e),await(0,n.enforceDBDecorators)(this,r.context,e,n.OperationKeys.CREATE,n.OperationKeys.ON);const o=e.hasErrors();if(o)throw new n.ValidationError(o.toString());return[e,...r.args]}async create(e,...t){let{record:r,id:n}=this.adapter.prepare(e,this.pk);return r=await this.adapter.create(this.tableName,n,r,...t),this.adapter.revert(r,this.class,this.pk,n)}async createAll(e,...t){if(!e.length)return e;const r=e.map((e=>this.adapter.prepare(e,this.pk))),n=r.map((e=>e.id));let o=r.map((e=>e.record));return o=await this.adapter.createAll(this.tableName,n,o,...t),o.map(((e,t)=>this.adapter.revert(e,this.class,this.pk,n[t])))}async createAllPrefix(e,...t){const r=await p.Context.args(n.OperationKeys.CREATE,this.class,t,this.adapter);if(!e.length)return[e,...r.args];const o=y.getSequenceOptions(e[0]);let a=[];o.type&&(o.name||(o.name=u.Sequence.pk(e[0])),a=await(await this.adapter.Sequence(o)).range(e.length));const i=(e=await Promise.all(e.map((async(e,t)=>((e=new this.class(e))[this.pk]=a[t],await(0,n.enforceDBDecorators)(this,r.context,e,n.OperationKeys.CREATE,n.OperationKeys.ON),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 n.ValidationError(i);return[e,...r.args]}async readPrefix(e,...t){const r=await p.Context.args(n.OperationKeys.READ,this.class,t,this.adapter),o=new this.class;return o[this.pk]=e,await(0,n.enforceDBDecorators)(this,r.context,o,n.OperationKeys.READ,n.OperationKeys.ON),[e,...r.args]}async read(e,...t){const r=await this.adapter.read(this.tableName,e,...t);return this.adapter.revert(r,this.class,this.pk,e)}async readAllPrefix(e,...t){const r=await p.Context.args(n.OperationKeys.READ,this.class,t,this.adapter);return await Promise.all(e.map((async e=>{const t=new this.class;return t[this.pk]=e,(0,n.enforceDBDecorators)(this,r.context,t,n.OperationKeys.READ,n.OperationKeys.ON)}))),[e,...r.args]}async readAll(e,...t){return(await this.adapter.readAll(this.tableName,e,...t)).map(((t,r)=>this.adapter.revert(t,this.class,this.pk,e[r])))}async update(e,...t){let{record:r,id:n}=this.adapter.prepare(e,this.pk);return r=await this.adapter.update(this.tableName,n,r,...t),this.adapter.revert(r,this.class,this.pk,n)}async updatePrefix(e,...t){const r=await p.Context.args(n.OperationKeys.UPDATE,this.class,t,this.adapter),o=e[this.pk];if(!o)throw new n.InternalError(`No value for the Id is defined under the property ${this.pk}`);const a=await this.read(o,...r.args);e=this.merge(a,e),await(0,n.enforceDBDecorators)(this,r.context,e,n.OperationKeys.UPDATE,n.OperationKeys.ON,a);const i=e.hasErrors(a,...y.relations(this.class));if(i)throw new n.ValidationError(i.toString());return y.getMetadata(a)&&(y.getMetadata(e)||y.setMetadata(e,y.getMetadata(a))),[e,...r.args]}async updateAll(e,...t){const r=e.map((e=>this.adapter.prepare(e,this.pk)));return(await this.adapter.updateAll(this.tableName,r.map((e=>e.id)),r.map((e=>e.record)),...t)).map(((e,t)=>this.adapter.revert(e,this.class,this.pk,r[t].id)))}async updateAllPrefix(e,...t){const r=await p.Context.args(n.OperationKeys.UPDATE,this.class,t,this.adapter),o=e.map((e=>{const t=e[this.pk];if(!t)throw new n.InternalError("missing id on update operation");return t})),a=await this.readAll(o,...r.args);e=e.map(((e,t)=>(e=this.merge(a[t],e),y.getMetadata(a[t])&&(y.getMetadata(e)||y.setMetadata(e,y.getMetadata(a[t]))),e))),await Promise.all(e.map(((e,t)=>(0,n.enforceDBDecorators)(this,r.context,e,n.OperationKeys.UPDATE,n.OperationKeys.ON,a[t]))));const i=e.map(((e,t)=>e.hasErrors(a[t],e))).reduce(((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e)),void 0);if(i)throw new n.ValidationError(i);return e.forEach(((e,t)=>{y.getMetadata(a[t])&&(y.getMetadata(e)||y.setMetadata(e,y.getMetadata(a[t])))})),[e,...r.args]}async deletePrefix(e,...t){const r=await p.Context.args(n.OperationKeys.DELETE,this.class,t,this.adapter),o=await this.read(e,...r.args);return await(0,n.enforceDBDecorators)(this,r.context,o,n.OperationKeys.DELETE,n.OperationKeys.ON),[e,...r.args]}async delete(e,...t){const r=await this.adapter.delete(this.tableName,e,...t);return this.adapter.revert(r,this.class,this.pk,e)}async deleteAllPrefix(e,...t){const r=await p.Context.args(n.OperationKeys.DELETE,this.class,t,this.adapter),o=await this.readAll(e,...r.args);return await Promise.all(o.map((async e=>(0,n.enforceDBDecorators)(this,r.context,e,n.OperationKeys.DELETE,n.OperationKeys.ON)))),[e,...r.args]}async deleteAll(e,...t){return(await this.adapter.deleteAll(this.tableName,e,...t)).map(((t,r)=>this.adapter.revert(t,this.class,this.pk,e[r])))}select(e){return new s.Query(this.adapter).select(e).from(this.class)}async query(e,t,r=c.OrderDirection.ASC,n,o){const a=[t,r],i=this.select().where(e).orderBy(a);return n&&i.limit(n),o&&i.offset(o),i.execute()}observe(e){if(-1!==this.observers.indexOf(e))throw new n.InternalError("Observer already registered");this.observers.push(e)}unObserve(e){const t=this.observers.indexOf(e);if(-1===t)throw new n.InternalError("Failed to find Observer");this.observers.splice(t,1)}async updateObservers(...e){(await Promise.allSettled(this.observers.map((t=>t.refresh(...e))))).forEach(((e,t)=>{"rejected"===e.status&&console.warn(`Failed to update observable ${this.observers[t]}: ${e.reason}`)}))}static forModel(e,t){let r;try{r=this.get(e)}catch(e){r=void 0}if(r instanceof y)return r;const a=Reflect.getMetadata(o.Adapter.key(i.PersistenceKeys.ADAPTER),e)||r&&Reflect.getMetadata(o.Adapter.key(i.PersistenceKeys.ADAPTER),r)||t,s=a?o.Adapter.get(a):void 0;if(!s)throw new n.InternalError(`No registered persistence adapter found flavour ${a}`);return r=r||s.repository(),new r(s,e)}static get(e){const t=y.table(e);if(t in this._cache)return this._cache[t];throw new n.InternalError(`Could not find repository registered under ${t}`)}static register(e,t){const r=y.table(e);if(r in this._cache)throw new n.InternalError(`${r} already registered as a repository`);this._cache[r]=t}static setMetadata(e,t){Object.defineProperty(e,i.PersistenceKeys.METADATA,{enumerable:!1,configurable:!0,writable:!1,value:t})}static getMetadata(e){const t=Object.getOwnPropertyDescriptor(e,i.PersistenceKeys.METADATA);return t?t.value:void 0}static removeMetadata(e){Object.getOwnPropertyDescriptor(e,i.PersistenceKeys.METADATA)&&delete e[i.PersistenceKeys.METADATA]}static getSequenceOptions(e){const t=(0,n.findPrimaryKey)(e).id,r=Reflect.getMetadata(y.key(n.DBKeys.ID),e,t);if(!r)throw new n.InternalError("No sequence options defined for model. did you use the @pk decorator?");return r}static indexes(e){const t=l.Reflection.getAllPropertyDecorators(e instanceof a.Model?e:new e,n.DBKeys.REFLECT);return Object.entries(t||{}).reduce(((e,[t,r])=>{const n=r.filter((e=>e.key.startsWith(i.PersistenceKeys.INDEX)));if(n&&n.length)for(const r of n){const{key:n,props:o}=r;e[t]=e[t]||{},e[t][n]=o}return e}),{})}static relations(e){const t=[];let r=e instanceof a.Model?Object.getPrototypeOf(e):e.prototype;for(;null!=r;){const e=r[i.PersistenceKeys.RELATIONS];e&&t.push(...e),r=Object.getPrototypeOf(r)}return t}static table(e){return(0,d.getTableName)(e)}static column(e,t){return Reflect.getMetadata(o.Adapter.key(i.PersistenceKeys.COLUMN),e,t)||t}}t.Repository=y},2859:(e,t)=>{var r,n;Object.defineProperty(t,"__esModule",{value:!0}),t.DefaultCascade=t.Cascade=t.OrderDirection=void 0,function(e){e.ASC="asc",e.DSC="desc"}(r||(t.OrderDirection=r={})),function(e){e.CASCADE="cascade",e.NONE="none"}(n||(t.Cascade=n={})),t.DefaultCascade={update:n.CASCADE,delete:n.NONE}},2846:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.repository=function(e,t){return(r,s)=>s?(0,n.inject)(t||e.name)(r,s):((0,a.metadata)(i.Repository.key(o.DBKeys.REPOSITORY),t||r.name)(e),i.Repository.register(e,r),(0,n.injectable)(t||r.name,!0,(t=>{Object.defineProperty(t,o.DBKeys.CLASS,{enumerable:!1,configurable:!1,writable:!1,value:e})}))(r))};const n=r(465),o=r(5922),a=r(32),i=r(3932)},879:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ObserverError=void 0;const n=r(5922);class o extends n.BaseError{constructor(e){super(o.name,e)}}t.ObserverError=o},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(2859),t),o(r(4605),t),o(r(2846),t),o(r(879),t),o(r(9380),t),o(r(3932),t),o(r(8323),t),o(r(8311),t)},9380:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InjectablesRegistry=void 0;const n=r(465),o=r(3932),a=r(2302),i=r(8311),s=r(6176),c=r(6946);class l extends n.InjectableRegistryImp{constructor(){super()}get(e){let t=super.get(e);if(!t)try{const r=a.Model.get(e);if(r&&(t=o.Repository.forModel(r)),t){if(t instanceof o.Repository)return t;const e=Reflect.getMetadata(c.Adapter.key(s.PersistenceKeys.ADAPTER),t.constructor)||Reflect.getMetadata(c.Adapter.key(s.PersistenceKeys.ADAPTER),r);n.Injectables.register(t,(0,i.generateInjectableNameForRepository)(r,e))}}catch(e){return}return t}}t.InjectablesRegistry=l},8323:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},8311:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.generateInjectableNameForRepository=function(e,t){if(!t){const r=a.Adapter.key(i.PersistenceKeys.ADAPTER);if(!(t=Reflect.getMetadata(r,e instanceof s.Model?e.constructor:e)))throw new n.InternalError(`Could not retrieve flavour from model ${e instanceof s.Model?e.constructor.name:e.name}`)}return(0,o.sf)(i.PersistenceKeys.INJECTABLE,t,c.Repository.table(e))};const n=r(5922),o=r(2302),a=r(6946),i=r(6176),s=r(2302),c=r(3932)},4427: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.ClauseSequenceValidator=void 0;const a=r(2302),i=r(32),s=r(7345),c=r(2755),l=r(743),u=r(6176);let d=class extends a.Validator{constructor(e=a.DEFAULT_ERROR_MESSAGES[u.PersistenceKeys.CLAUSE_SEQUENCE]){super(e)}validateSequence(e,t){return c.MandatoryPriorities.every((t=>!!e.find((e=>e.getPriority()===t))))?void 0:this.getMessage((0,a.sf)(t||this.message,"Missing required Clause Priorities"))}hasErrors(e,t){try{if(!(e&&Array.isArray(e)&&e.length&&e.every((e=>e instanceof s.Clause))))return this.getMessage((0,a.sf)(t||this.message,"No or invalid Clauses found"));const r=e,n=r.reduce(((e,t)=>{const r=t.hasErrors();return r&&(e?e+=(0,a.sf)("\nClause {0}: {1}",t.constructor.name,r.toString()):e=(0,a.sf)("Clause {0}: {1}",t.constructor.name,r.toString())),e}),void 0);if(n)return this.getMessage((0,a.sf)(t||this.message,n.toString()));if(!0!==(()=>{const e=r.map((e=>e.getPriority()));if(new Set(e).size!==e.length)return"Not all clauses have unique priorities";const t=e.sort(((e,t)=>t-e));return!!(0,i.isEqual)(e,t)||"Clauses are not properly sorted"})())return this.getMessage((0,a.sf)(t||this.message,"Invalid prioritization"));if(this.validateSequence(r,t))return this.getMessage((0,a.sf)(t||this.message,"Invalid sequence"))}catch(t){throw new l.QueryError((0,a.sf)("Failed to verify clause sequence {0}: {1}",e,t))}}};t.ClauseSequenceValidator=d,t.ClauseSequenceValidator=d=n([(0,a.validator)(u.PersistenceKeys.CLAUSE_SEQUENCE),o("design:paramtypes",[String])],d)},1047:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.clauseSequence=function(e){return(0,n.propMetadata)(n.Validation.key(n.ValidationKeys.REQUIRED),{message:e||n.DEFAULT_ERROR_MESSAGES[o.PersistenceKeys.CLAUSE_SEQUENCE]})};const n=r(2302),o=r(4017);Object.defineProperty(n.DEFAULT_ERROR_MESSAGES,o.PersistenceKeys.CLAUSE_SEQUENCE,{value:"Invalid clause sequence: {0}"}),Object.defineProperty(n.ValidationKeys,"CLAUSE_SEQUENCE",{value:o.PersistenceKeys.CLAUSE_SEQUENCE})},6193: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(1047),t),o(r(4427),t)},9501:(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(3162),i=r(4367),s=r(9191)},5537: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(9501),t),o(r(3802),t)},3802:(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(4367),o=r(592),a=r(2302),i=r(3036);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}}},5922: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(5537),t),o(r(8403),t),o(r(2828),t),o(r(7781),t),o(r(9191),t),o(r(3162),t)},3949:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},200:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},1101:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},7674:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},8403: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(3949),t),o(r(200),t),o(r(1101),t),o(r(7674),t)},4367:(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"},3793:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.hashOnCreateUpdate=u,t.hash=d,t.composedFromCreateUpdate=f,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(4367),o=r(32),a=r(2302),i=r(6441),s=r(3036),c=r(9553),l=r(7781);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 d(){return(0,o.apply)((0,i.onCreateUpdate)(u),(0,a.propMetadata)(c.Repository.key(n.DBKeys.HASH),{}))}function f(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)(f,p),(0,a.propMetadata)(c.Repository.key(n.DBKeys.COMPOSED),p)];return t&&y.push(d()),(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}`)}}}},2828: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(6569),t),o(r(4367),t),o(r(3793),t),o(r(9607),t)},9607:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const n=r(2302),o=r(6569);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)}},6569:(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(),d=u.props.name?[u.props.name]:Array.isArray(u.props.customTypes)?u.props.customTypes:[u.props.customTypes],f=Object.values(n.ReservedModels).map((e=>e.toLowerCase()));for(const o of d){if(-1===f.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(3162),i=r(5537)},9121:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Operations=void 0;const n=r(2302),o=r(4300),a=r(6050);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},4300:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OperationsRegistry=void 0;const n=r(9121);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)}}},6050:(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]}},6441:(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(6050),o=r(9121),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 d=Reflect.getMetadata(o.Operations.key(u),n,c);d||(d={operation:a,handlers:{}});const f=o.Operations.getHandlerName(r);return d.handlers[l]&&d.handlers[l][c]&&f in d.handlers[l][c]||(d.handlers[l]=d.handlers[l]||{},d.handlers[l][c]=d.handlers[l][c]||{},d.handlers[l][c][f]={data:s},t.push(function(e,t){return(r,n)=>{o.Operations.register(t,e,r,n)}}(u,r),(0,i.propMetadata)(o.Operations.key(u),d))),t}),[]);return(0,a.apply)(...u)(n,c)}}},7781: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(6050),t),o(r(6441),t),o(r(9121),t),o(r(4300),t),o(r(5970),t)},5970:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},2022:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BaseRepository=void 0;const n=r(2302),o=r(592),a=r(6050),i=r(3036),s=r(749),c=r(3802),l=r(2586);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)}}},2586:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Context=void 0;const n=r(8569),o=r(3036);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},8569:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DataCache=void 0;const n=r(3036);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={}}}},9553:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Repository=void 0;const n=r(592),o=r(6050),a=r(3036),i=r(2022),s=r(4367),c=r(2586);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},3036:(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},9191: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(2022),t),o(r(2586),t),o(r(8569),t),o(r(3036),t),o(r(9553),t),o(r(592),t),o(r(749),t)},592:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getAllPropertyDecoratorsRecursive=t.getHandlerArgs=void 0,t.enforceDBDecorators=async function(e,r,a,l,u,d){const f=c(a,l,u);if(f)for(const c in f){const p=f[c];for(const f of p){const{key:p}=f,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)(f,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,O;for(let t=0;t<y.length;t++){g=y[t],O=Object.values(h)[t];const n=[r,O.data,c,a];if(l===o.OperationKeys.UPDATE&&u===o.OperationKeys.ON){if(!d)throw new i.InternalError("Missing old model for update operation");n.push(d)}await g.apply(e,n)}}}},t.getDbDecorators=c;const n=r(9121),o=r(6050),a=r(32),i=r(3036),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}},749:(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(2586),o=r(3036)},6753:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UpdateValidationKeys=t.DEFAULT_ERROR_MESSAGES=void 0;const n=r(4367);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}},9252:(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=d,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,d)];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=f,t.serializeAfterAll=p,t.serialize=function(){return(0,l.apply)((0,s.onCreateUpdate)(f),(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(4367),a=r(6753),i=r(6050),s=r(6441),c=r(3036),l=r(32),u=r(9191);async function d(e,t,r,n){n[r]=e.timestamp}async function f(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))}}},3162: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(1362),t),o(r(6753),t),o(r(9252),t),o(r(6723),t)},6723:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const n=r(2302),o=r(6753);n.Validation.updateKey=function(e){return o.UpdateValidationKeys.REFLECT+e}},9174: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(6753),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)},8944: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(6753);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)},4981:(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},1362: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(9174),t),o(r(8944),t),o(r(4981),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.4"},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),d=r(1318),f=r(8539);let p,y;class h{constructor(e){}hasErrors(...e){return(0,i.validate)(this,...e)}equals(e,...t){return(0,a.isEqual)(this,e,...t)}serialize(){return h.serialize(this)}toString(){return this.constructor.name+": "+JSON.stringify(this,void 0,2)}hash(){return h.hash(this)}static deserialize(e){const t=Reflect.getMetadata(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,d.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(f.ReservedModels).map((e=>e.toLowerCase()));p.forEach((t=>{if(-1===y.indexOf(t.toLowerCase()))try{switch(t){case"Array":case"Set":if(s.length){const r=s.find((e=>e.key===u.ValidationKeys.LIST));if(r){const n=r.props.class.find((e=>!f.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 d;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&&(d=d||{},d[t.prop.toString()]=i)}for(const t of Object.keys(e).filter((e=>!d||!d[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 f=c.pop(),p=f.props.name?[f.props.name]:Array.isArray(f.props.customTypes)?f.props.customTypes:[f.props.customTypes],y=Object.values(s.ReservedModels).map((e=>e.toLowerCase()));for(const 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 d=(e,t)=>{if("object"==typeof t||"function"==typeof t)return(0,u.isModel)(t)?t.hasErrors():c.includes(typeof t)?void 0:"Value has no validatable type"};switch(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=>d(t,e))).filter((e=>!!e)),r?.length||(r=void 0));break;default:try{e[t]&&(r=d(t,e[t]))}catch(e){console.warn((0,i.sf)("Model should be validatable but its not: "+e))}}}r&&(d=d||{},d[t]=r)}}return d?new n.ModelErrorDefinition(d):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),d=a(o.groups.seconds),f=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,d,f)}function i(e,t){if(!e)return;const r=()=>l(e,t);return Object.defineProperty(e,"toISOString",{enumerable:!1,configurable:!1,value:r}),Object.defineProperty(e,"toString",{enumerable:!1,configurable:!1,value:r}),e}function s(e){return e&&"[object Date]"===Object.prototype.toString.call(e)&&!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(),d=i%12,f=c(d),p=c(i),y=c(s),h=c(l),g=i<12?"AM":"PM",O=n.DAYS_OF_WEEK_NAMES[e.getDay()],E=O.substr(0,3),b=c(r),v=o+1,_=c(v),m=n.MONTH_NAMES[o],R=m.substr(0,3),M=a+"",w=M.substr(2,2);return(t=t.replace("hh",f).replace("h",d.toString()).replace("HH",p).replace("H",i.toString()).replace("mm",y).replace("m",s.toString()).replace("ss",h).replace("s",l.toString()).replace("S",u.toString()).replace("dd",b).replace("d",r.toString()).replace("EEEE",O).replace("EEE",E).replace("yyyy",M).replace("yy",w).replace("aaa",g)).indexOf("MMM")>-1?t.replace("MMMM",m).replace("MMM",R):t.replace("MM",_).replace("M",v.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 d=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=d,t.TypeValidator=d=n([(0,s.validator)(i.ValidationKeys.TYPE),o("design:paramtypes",[String])],d),c.Validation.register({validator:d,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),d=r(9320),f=r(2396),p=r(9378),y=r(2382),h=r(8089),g=r(5224),O=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:O.ListValidator,MaxLengthValidator:y.MaxLengthValidator,MaxValidator:p.MaxValidator,MinLengthValidator:f.MinLengthValidator,MinValidator:d.MinValidator,PasswordValidator:s.PasswordValidator,PatternValidator:u.PatternValidator,RequiredValidator:h.RequiredValidator,StepValidator:c.StepValidator,TypeValidator:i.TypeValidator,URLValidator:l.URLValidator}},7045:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},9944:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.required=function(e=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})},871:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Injectables=void 0;const n=r(3018);class o{static{this.actingInjectablesRegistry=void 0}constructor(){}static get(e,...t){return o.getRegistry().get(e,...t)}static register(e,...t){return o.getRegistry().register(e,...t)}static build(e,...t){return o.getRegistry().build(e,...t)}static setRegistry(e){o.actingInjectablesRegistry=e}static getRegistry(){return o.actingInjectablesRegistry||(o.actingInjectablesRegistry=new n.InjectableRegistryImp),o.actingInjectablesRegistry}static reset(){o.setRegistry(new n.InjectableRegistryImp)}static selectiveReset(e){const t="string"==typeof e?new RegExp(e):e;o.actingInjectablesRegistry.cache=Object.entries(o.actingInjectablesRegistry.cache).reduce(((e,[r,n])=>(r.match(t)||(e[r]=n),e)),{})}}t.Injectables=o},6030:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InjectablesKeys=void 0,t.InjectablesKeys={REFLECT:"inject.db.",INJECTABLE:"injectable",INJECT:"inject"}},8957:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.inject=t.injectable=void 0;const n=r(6030),o=r(871),a=r(8730),i=e=>n.InjectablesKeys.REFLECT+e;t.injectable=(e=void 0,t=!1,r)=>(a,s)=>{const c=e||a.name,l=function(...e){let s=o.Injectables.get(c,...e);if(!s){if(o.Injectables.register(a,c,!0,t),s=o.Injectables.get(c,...e),!s)return;if(r)try{r(s)}catch(e){console.error(`Failed to call injectable callback for ${c}: ${e}`)}}const l=Object.assign({},{class:c});return Reflect.defineMetadata(i(n.InjectablesKeys.INJECTABLE),l,s.constructor),s};return l.prototype=a.prototype,Object.defineProperty(l,"name",{writable:!1,enumerable:!0,configurable:!1,value:a.prototype.constructor.name}),l},t.inject=(e,t)=>(r,s)=>{const c=new WeakMap,l=e||(0,a.getTypeFromDecorator)(r,s);if(!l)throw new Error("Could not get Type from decorator");Reflect.defineMetadata(i(n.InjectablesKeys.INJECT),{injectable:l},r,s),Object.defineProperty(r,s,{configurable:!0,get(){if(Object.getOwnPropertyDescriptor(r,s).configurable)return Object.defineProperty(this,s,{enumerable:!0,configurable:!1,get(){let e=c.get(this);if(!e){if(e=o.Injectables.get(l),!e)throw new Error(`Could not get Injectable ${l} to inject in ${r.constructor?r.constructor.name:r.name}'s ${s}`);if(t)try{e=t(e,r)}catch(e){console.error(e)}c.set(this,e)}return e}}),this[s]}})}},465: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(6030),t),o(r(8957),t),o(r(871),t),o(r(3018),t),o(r(8730),t),t.VERSION="1.5.1"},3018:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InjectableRegistryImp=void 0,t.InjectableRegistryImp=class{constructor(){this.cache={}}get(e,...t){try{const r=this.cache[e],n={name:e};return(r.singleton||r.instance)&&r.instance||this.build(n,...t)}catch(e){return}}register(e,t=void 0,r=!0,n=!1){const o=e,a=!o.name&&o.constructor;if("function"!=typeof o&&!a)throw new Error("Injectable registering failed. Missing Class name or constructor");const i=t||(a&&a.name&&"Function"!==a.name?a.name:o.name);this.cache[i]&&!n||(this.cache[i]={instance:a?e:void 0,constructor:a?void 0:e,singleton:r})}build(e,...t){const{constructor:r,singleton:n}=this.cache[e.name],o=new r(...t);return this.cache[e.name]={instance:o,constructor:r,singleton:n},o}}},8730:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TypeKey=void 0,t.getTypeFromDecorator=function(e,r){const n=Reflect.getMetadata(t.TypeKey,e,r);return"Function"!==n.name?n.name:void 0},r(8630),t.TypeKey="design:type"},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.7"},2199:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},8630:(e,t,r)=>{var n;!function(e){!function(){var t="object"==typeof globalThis?globalThis:"object"==typeof r.g?r.g:"object"==typeof self?self:"object"==typeof this?this:function(){try{return Function("return this;")()}catch(e){}}()||function(){try{return(0,eval)("(function() { return this; })()")}catch(e){}}(),n=o(e);function o(e,t){return function(r,n){Object.defineProperty(e,r,{configurable:!0,writable:!0,value:n}),t&&t(r,n)}}void 0!==t.Reflect&&(n=o(t.Reflect,n)),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 F(Object.create(null))}:s?function(){return F({__proto__:null})}:function(){return F({})},has:c?function(e,t){return r.call(e,t)}:function(e,t){return t in e},get:c?function(e,t){return r.call(e,t)?e[t]:void 0}:function(e,t){return e[t]}},u=Object.getPrototypeOf(Function),d="function"==typeof Map&&"function"==typeof Map.prototype.entries?Map:function(){var e={},t=[],r=function(){function e(e,t,r){this._index=0,this._keys=e,this._values=t,this._selector=r}return e.prototype["@@iterator"]=function(){return this},e.prototype[a]=function(){return this},e.prototype.next=function(){var e=this._index;if(e>=0&&e<this._keys.length){var r=this._selector(this._keys[e],this._values[e]);return e+1>=this._keys.length?(this._index=-1,this._keys=t,this._values=t):this._index++,{value:r,done:!1}}return{value:void 0,done:!0}},e.prototype.throw=function(e){throw this._index>=0&&(this._index=-1,this._keys=t,this._values=t),e},e.prototype.return=function(e){return this._index>=0&&(this._index=-1,this._keys=t,this._values=t),{value:e,done:!0}},e}();return function(){function t(){this._keys=[],this._values=[],this._cacheKey=e,this._cacheIndex=-2}return Object.defineProperty(t.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),t.prototype.has=function(e){return this._find(e,!1)>=0},t.prototype.get=function(e){var t=this._find(e,!1);return t>=0?this._values[t]:void 0},t.prototype.set=function(e,t){var r=this._find(e,!0);return this._values[r]=t,this},t.prototype.delete=function(t){var r=this._find(t,!1);if(r>=0){for(var 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]}}(),f="function"==typeof Set&&"function"==typeof Set.prototype.entries?Set:function(){function e(){this._map=new d}return Object.defineProperty(e.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),e.prototype.has=function(e){return this._map.has(e)},e.prototype.add=function(e){return this._map.set(e,e),this},e.prototype.delete=function(e){return this._map.delete(e)},e.prototype.clear=function(){this._map.clear()},e.prototype.keys=function(){return this._map.keys()},e.prototype.values=function(){return this._map.keys()},e.prototype.entries=function(){return this._map.entries()},e.prototype["@@iterator"]=function(){return this.keys()},e.prototype[a]=function(){return this.keys()},e}(),p="function"==typeof WeakMap?WeakMap:function(){var e=l.create(),t=n();return function(){function e(){this._key=n()}return e.prototype.has=function(e){var t=o(e,!1);return void 0!==t&&l.has(t,this._key)},e.prototype.get=function(e){var t=o(e,!1);return void 0!==t?l.get(t,this._key):void 0},e.prototype.set=function(e,t){return o(e,!0)[this._key]=t,this},e.prototype.delete=function(e){var t=o(e,!1);return void 0!==t&&delete t[this._key]},e.prototype.clear=function(){this._key=n()},e}();function n(){var t;do{t="@@WeakMap@@"+i()}while(l.has(e,t));return e[t]=!0,t}function o(e,n){if(!r.call(e,t)){if(!n)return;Object.defineProperty(e,t,{value:l.create()})}return e[t]}function a(e,t){for(var r=0;r<t;++r)e[r]=255*Math.random()|0;return e}function i(){var e=function(e){if("function"==typeof Uint8Array){var t=new Uint8Array(e);return"undefined"!=typeof crypto?crypto.getRandomValues(t):"undefined"!=typeof msCrypto?msCrypto.getRandomValues(t):a(t,e),t}return a(new Array(e),e)}(16);e[6]=79&e[6]|64,e[8]=191&e[8]|128;for(var t="",r=0;r<16;++r){var n=e[r];4!==r&&6!==r&&8!==r||(t+="-"),n<16&&(t+="0"),t+=n.toString(16).toLowerCase()}return t}}(),y=n?Symbol.for("@reflect-metadata:registry"):void 0,h=function(){var e;return!w(y)&&A(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 f,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 f),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=L(o);;){var s=V(i);if(!s)return;var c=x(s);if(c.isProviderFor(t,a))return k(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 d,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 d,a.set(e,o)),o.set(t,r)}return!0}}()),!w(y)&&A(t.Reflect)&&Object.isExtensible(t.Reflect)&&Object.defineProperty(t.Reflect,y,{enumerable:!1,configurable:!1,writable:!1,value:e}),e}(),g=function(e){var t=new p,r={isProviderFor:function(e,r){var n=t.get(e);return!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=L(o.keys()),i=0;;){var s=V(a);if(!s)return r.length=i,r;var c=x(s);try{r[i]=c}catch(e){try{k(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 d,t.set(n,i),s=!0}var c=i.get(o);if(w(c)){if(!a)return;if(c=new d,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 O(e,t,r){if(E(e,t,r))return!0;var n=U(t);return!P(n)&&O(e,n,r)}function E(e,t,r){var n=B(t,r,!1);return!w(n)&&S(n.OrdinaryHasOwnMetadata(e,t,r))}function b(e,t,r){if(E(e,t,r))return v(e,t,r);var n=U(t);return P(n)?void 0:b(e,n,r)}function v(e,t,r){var n=B(t,r,!1);if(!w(n))return n.OrdinaryGetOwnMetadata(e,t,r)}function _(e,t,r,n){B(r,n,!0).OrdinaryDefineOwnMetadata(e,t,r,n)}function m(e,t){var r=R(e,t),n=U(e);if(null===n)return r;var o=m(n,t);if(o.length<=0)return r;if(r.length<=0)return o;for(var a=new f,i=[],s=0,c=r;s<c.length;s++){var l=c[s];a.has(l)||(a.add(l),i.push(l))}for(var u=0,d=o;u<d.length;u++)l=d[u],a.has(l)||(a.add(l),i.push(l));return i}function R(e,t){var r=B(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 P(e){return null===e}function A(e){return"object"==typeof e?null!==e:"function"==typeof e}function j(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(A(a))throw new TypeError;return a}return function(e,t){if("string"===t){var r=e.toString;if(C(r)&&!A(o=r.call(e)))return o;if(C(n=e.valueOf)&&!A(o=n.call(e)))return o}else{var n;if(C(n=e.valueOf)&&!A(o=n.call(e)))return o;var o,a=e.toString;if(C(a)&&!A(o=a.call(e)))return o}throw new TypeError}(e,"default"===r?"number":r)}function S(e){return!!e}function T(e){var t=j(e,3);return"symbol"==typeof t?t:function(e){return""+e}(t)}function D(e){return Array.isArray?Array.isArray(e):e instanceof Object?e instanceof Array:"[object Array]"===Object.prototype.toString.call(e)}function C(e){return"function"==typeof e}function I(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(!C(r))throw new TypeError;return r}}function L(e){var t=N(e,a);if(!C(t))throw new TypeError;var r=t.call(e);if(!A(r))throw new TypeError;return r}function x(e){return e.value}function V(e){var t=e.next();return!t.done&&t}function k(e){var t=e.return;t&&t.call(e)}function U(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 B(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 F(e){return e.__=void 0,delete e.__,e}e("decorate",(function(e,t,r,n){if(w(r)){if(!D(e))throw new TypeError;if(!I(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)&&!P(n)){if(!I(n))throw new TypeError;t=n}}return t}(e,t)}if(!D(e))throw new TypeError;if(!A(t))throw new TypeError;if(!A(n)&&!w(n)&&!P(n))throw new TypeError;return P(n)&&(n=void 0),function(e,t,r,n){for(var o=e.length-1;o>=0;--o){var a=(0,e[o])(t,r,n);if(!w(a)&&!P(a)){if(!A(a))throw new TypeError;n=a}}return n}(e,t,r=T(r),n)})),e("metadata",(function(e,t){return function(r,n){if(!A(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;_(e,t,r,n)}})),e("defineMetadata",(function(e,t,r,n){if(!A(r))throw new TypeError;return w(n)||(n=T(n)),_(e,t,r,n)})),e("hasMetadata",(function(e,t,r){if(!A(t))throw new TypeError;return w(r)||(r=T(r)),O(e,t,r)})),e("hasOwnMetadata",(function(e,t,r){if(!A(t))throw new TypeError;return w(r)||(r=T(r)),E(e,t,r)})),e("getMetadata",(function(e,t,r){if(!A(t))throw new TypeError;return w(r)||(r=T(r)),b(e,t,r)})),e("getOwnMetadata",(function(e,t,r){if(!A(t))throw new TypeError;return w(r)||(r=T(r)),v(e,t,r)})),e("getMetadataKeys",(function(e,t){if(!A(e))throw new TypeError;return w(t)||(t=T(t)),m(e,t)})),e("getOwnMetadataKeys",(function(e,t){if(!A(e))throw new TypeError;return w(t)||(t=T(t)),R(e,t)})),e("deleteMetadata",(function(e,t,r){if(!A(t))throw new TypeError;if(w(r)||(r=T(r)),!A(t))throw new TypeError;w(r)||(r=T(r));var n=B(t,r,!1);return!w(n)&&n.OrdinaryDeleteMetadata(e,t,r)}))}(n,t),void 0===t.Reflect&&(t.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);
|