@decaf-ts/db-decorators 0.7.5 → 0.7.6

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/README.md CHANGED
@@ -3,6 +3,7 @@
3
3
 
4
4
  The db-decorators library provides a comprehensive set of TypeScript decorators and utilities for database operations. It implements the repository pattern with support for model definition, validation, identity management, and operation hooks. The library enables developers to define database models with decorators, perform CRUD operations with validation, and customize behavior during database operations through operation hooks.
5
5
 
6
+ > Release docs refreshed on 2025-11-26. See [workdocs/reports/RELEASE_NOTES.md](./workdocs/reports/RELEASE_NOTES.md) for ticket summaries.
6
7
 
7
8
  ![Licence](https://img.shields.io/github/license/decaf-ts/db-decorators.svg?style=plastic)
8
9
  ![GitHub language count](https://img.shields.io/github/languages/count/decaf-ts/db-decorators?style=plastic)
@@ -626,6 +627,9 @@ console.log("Empty ID:", emptyId);
626
627
  - builder;
627
628
  - etc;
628
629
 
630
+ ## Release Documentation Hooks
631
+ Stay aligned with the automated release pipeline by reviewing [Release Notes](./workdocs/reports/RELEASE_NOTES.md) and [Dependencies](./workdocs/reports/DEPENDENCIES.md) after trying these recipes (updated on 2025-11-26).
632
+
629
633
 
630
634
  ### Related
631
635
 
@@ -1,2 +1,2 @@
1
- var e,t;e=this,t=function(e,t,r,a,o,s){"use strict";const n={REFLECT:r.ModelKeys.MODEL+".persistence.",REPOSITORY:"repository",CLASS:"_class",ID:"id",INDEX:"index",UNIQUE:"unique",SERIALIZE:"serialize",READONLY:"readonly",TIMESTAMP:"timestamp",TRANSIENT:"transient",HASH:"hash",COMPOSED:"composed",VERSION:"version",ORIGINAL:"__originalObj"},i="_",c="dd/MM/yyyy HH:mm:ss:S",l={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"}},d={REFLECT:"db.update.validation.",TIMESTAMP:n.TIMESTAMP,READONLY:n.READONLY};e.ReadOnlyValidator=class extends r.Validator{constructor(){super(l.READONLY.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,a){if(void 0!==e)return r.isEqual(e,t)?void 0:this.getMessage(a||this.message)}},e.ReadOnlyValidator=a.__decorate([r.validator(d.READONLY),a.__metadata("design:paramtypes",[])],e.ReadOnlyValidator),e.TimestampValidator=class extends r.Validator{constructor(){super(l.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?void 0:r}}},e.TimestampValidator=a.__decorate([r.validator(d.TIMESTAMP),a.__metadata("design:paramtypes",[])],e.TimestampValidator);class p extends r.Validator{constructor(e=r.DEFAULT_ERROR_MESSAGES.DEFAULT,...t){super(e,...t)}}var u,y,f;r.Validation.updateKey=e=>d.REFLECT+e,e.OperationKeys=void 0,(u=e.OperationKeys||(e.OperationKeys={})).REFLECT="decaf.model.db.operations.",u.CREATE="create",u.READ="read",u.UPDATE="update",u.DELETE="delete",u.ON="on.",u.AFTER="after.",u.BLOCK="block",e.ModelOperations=void 0,(y=e.ModelOperations||(e.ModelOperations={})).OPERATIONS="operations",y.RELATIONS="relations",e.BulkCrudOperationKeys=void 0,(f=e.BulkCrudOperationKeys||(e.BulkCrudOperationKeys={})).CREATE_ALL="createAll",f.READ_ALL="readAll",f.UPDATE_ALL="updateAll",f.DELETE_ALL="deleteAll";const h={CREATE:[e.OperationKeys.CREATE],READ:[e.OperationKeys.READ],UPDATE:[e.OperationKeys.UPDATE],DELETE:[e.OperationKeys.DELETE],CREATE_UPDATE:[e.OperationKeys.CREATE,e.OperationKeys.UPDATE],READ_CREATE:[e.OperationKeys.READ,e.OperationKeys.CREATE],ALL:[e.OperationKeys.CREATE,e.OperationKeys.READ,e.OperationKeys.UPDATE,e.OperationKeys.DELETE]};class E{constructor(){this.cache={}}get(e,t,r,a){let o;a=a||[];try{o="string"==typeof e?e:e.constructor.name,a.unshift(...Object.values(this.cache[o][t][r]||[]))}catch(t){if("string"==typeof e||e===Object.prototype||Object.getPrototypeOf(e)===Object.prototype)return a}let s=Object.getPrototypeOf(e);return s.constructor.name===o&&(s=Object.getPrototypeOf(s)),this.get(s,t,r,a)}register(e,t,r,a){const o=r.constructor.name,s=g.getHandlerName(e);this.cache[o]||(this.cache[o]={}),this.cache[o][a]||(this.cache[o][a]={}),this.cache[o][a][t]||(this.cache[o][a][t]={}),this.cache[o][a][t][s]||(this.cache[o][a][t][s]=e)}}class g{constructor(){}static getHandlerName(e){return e.name?e.name:r.Hashing.hash(e.toString())}static key(t){return e.OperationKeys.REFLECT+t}static get(e,t,r){return g.registry.get(e,t,r)}static getOpRegistry(){return g.registry||(g.registry=new E),g.registry}static register(e,t,r,a){g.getOpRegistry().register(e,t,r,a)}}class O extends Error{constructor(e,t,r){if(t instanceof O)return t;super(`[${e}] ${t instanceof Error?t.message:t}`),this.code=r,t instanceof Error&&(this.stack=t.stack)}}class m extends O{constructor(e,t=m.name,r=400){super(t,e,r)}}class A extends m{constructor(e){super(e,A.name,422)}}class T extends O{constructor(e,t=T.name,r=500){super(t,e,r)}}class w extends T{constructor(e){super(e,w.name,500)}}class P extends m{constructor(e){super(e,P.name,404)}}class M extends m{constructor(e){super(e,M.name,409)}}const D={priority:50},R=(e,t,r,a)=>{const o=r.constructor.name;if(!o)throw new T("Could not determine model class");a=a||{},e.props.handlers[o]&&e.props.handlers[o][t]&&(a={...e.props.handlers[o][t],...a});let s=Object.getPrototypeOf(r);return s===Object.prototype?a:(s.constructor.name===o&&(s=Object.getPrototypeOf(s)),R(e,t,s,a))};function K(e,t,r){const a=[];for(const o in t){const s=t[o];for(const t of s){const{key:s}=t,n=g.get(e,o,r+s);if(!n||!n.length)throw new T(`Could not find registered handler for the operation ${r+s} under property ${o}`);const i=R(t,o,e);if(!i||Object.values(i).length!==n.length)throw new T("Args and handlers length do not match");for(let e=0;e<n.length;e++){const t=i[n[e].name].data;a.push({handler:n[e],data:[t],prop:[o]})}}}return a}function b(e){const t=e.reduce((e,t)=>{if(!t||!t.data||!t.prop)throw new T("Missing decorator properties or data");if(!t.data[0].group)return e.set(Symbol(),t),e;const r=t.data[0].group;if(e.has(r)){const a=e.get(r);e.set(r,{handler:a.handler,data:[...a.data,...t.data],prop:[...a.prop,...t.prop]})}else e.set(r,{...t});return e},new Map),r=Array.from(t.values());return r.forEach(e=>{const t=e.data.map((t,r)=>({data:t,prop:e.prop[r]}));t.sort((e,t)=>(e.data.groupPriority??50)-(t.data.groupPriority??50)),e.data=t.map(e=>e.data),e.prop=t.map(e=>e.prop)}),r}function x(e){return e.sort((e,t)=>(e.data[0].priority??50)-(t.data[0].priority??50)),e}function v(e,t,r){return I(h.CREATE_UPDATE,e,t,r)}function S(e,t,r){return I(h.UPDATE,e,t,r)}function L(e,t,r){return I(h.CREATE,e,t,r)}function I(t=h.ALL,r,a,o){return C(e.OperationKeys.ON,t,r,a,o)}function N(t=h.ALL,r,a,o){return C(e.OperationKeys.AFTER,t,r,a,o)}function C(r,a=h.ALL,o,s,n=D){return(i,c)=>{const l=i.constructor.name,d=a.reduce((a,d)=>{const p=r+d;let u=t.Metadata.readOperation(i.constructor,c,p);u||(u={operation:d,handlers:{}});const y=g.getHandlerName(o);let f=n;if(s){if(Object.keys(s).filter(e=>e in n).length>0)throw new T("Unable to merge groupSort into dataToAdd due to overlaping keys");f={...n,...s}}return u.handlers[l]&&u.handlers[l][c]&&y in u.handlers[l][c]||(u.handlers[l]=u.handlers[l]||{},u.handlers[l][c]=u.handlers[l][c]||{},u.handlers[l][c][y]={data:f},a.push(((e,t)=>(r,a)=>{g.register(t,e,r,a)})(p,o),t.propMetadata(t.Metadata.key(e.ModelOperations.OPERATIONS,c,p),u))),a},[]);return t.apply(...d)(i,c)}}function k(e,r){return(...a)=>t.metadata(e,{args:a,handler:r})}function U(e=l.READONLY.INVALID){const a=n.READONLY,o={message:e,description:"defines the attribute as readOnly",async:!1};return t.Decoration.for(a).define({decorator:r.innerValidationDecorator,args:[U,a,o]}).apply()}async function j(e,t,r,a){a[r]=e.timestamp}async function V(e,t,r,a){if(a[r])try{a[r]=JSON.stringify(a[r])}catch(e){throw new w(`Failed to serialize ${r.toString()} property of model ${a.constructor.name}: e`)}}async function F(e,t,r,a){if(a[r]&&"string"==typeof a[r])try{a[r]=JSON.parse(a[r])}catch(e){throw new w(`Failed to deserialize ${r.toString()} property of model ${a.constructor.name}: ${e}`)}}function _(e,r){const a=[];for(const o in e){if(!Object.prototype.hasOwnProperty.call(e,o)||r.includes(o))continue;const s=t.Metadata.validationFor(e.constructor,o)||{};a.push({prop:o,decorators:s})}return a}function $(e,t,a,o,s){const n=r.Validation.get(o.key);if(!n)throw Error("Missing validator for "+o.key);if(!n.updateHasErrors)return r.toConditionalPromise(void 0,s);if(!s&&o.async)return r.toConditionalPromise(void 0,s);const i=Object.values(o)||{},c=n.updateHasErrors(e[a],t[a],...i);return r.toConditionalPromise(c,s)}function H(e,t,a,o,s){const n={};for(const i in o){const c={...o[i],key:i};if(!s&&c.async)continue;let l=$(e,t,a,c,s);if(c.key===r.ValidationKeys.LIST&&(!l||s)){const o=e[a],n=t[a],i=o instanceof Set?[...o]:o,d=n instanceof Set?[...n]:n;if(i?.length){const e=[c.class||c.clazz||c.customTypes].flat().map(e=>((e=(e="function"!=typeof e||e.name?e:e()).name?e.name:e)+"").toLowerCase()),t=i.map(t=>{const a=r.Model.pk(t,!0);if(!a)return"Failed to find model id";const o=d.find(e=>a===r.Model.pk(e,!0));return r.Model.isModel(t)?t.hasErrors(o):e.includes(typeof t)?void 0:"Value has no validatable type"});if(s)l=Promise.all(t).then(e=>e.every(e=>!e)?void 0:e);else{const e=t.every(e=>!e);l=t.length>0&&!e?t:void 0}}}l&&(n[c.key]=l)}if(!s)return Object.keys(n).length>0?n:void 0;const i=Object.keys(n),c=Object.values(n);return Promise.all(c).then(e=>{const t={};for(let r=0;r<e.length;r++){const a=e[r];void 0!==a&&(t[i[r]]=a)}return Object.keys(t).length>0?t:void 0})}function Y(e,a,o,...s){const n=_(a,s),i={},c={};for(const{prop:s,decorators:l}of n){const n=s+"",d=a[s],{designTypes:p,designType:u}=t.Metadata.getPropDesignTypes(a.constructor,s);if(!p)continue;if(p.some(e=>[Array.name,Set.name].includes(e))){if(!l||!Object.keys(l).includes(r.ValidationKeys.LIST)){i[n]={[r.ValidationKeys.TYPE]:`Array or Set property '${n}' requires a @list decorator`};continue}if(d&&!(Array.isArray(d)||d instanceof Set)){i[n]={[r.ValidationKeys.TYPE]:`Property '${s+""}' must be either an Array or a Set`};continue}}const y=H(a,e,n,l,o)||{},f=r.Model.isPropertyModel(a,n);if(null!=d&&f){const t=d,a=(Array.isArray(u)?u:[u]).map(e=>("function"!=typeof e||e.name||(e=e()),r.Model.get(e.name||e))).find(e=>!!e);a&&t instanceof a?c[n]=t.hasErrors(e[s]):(y[r.ValidationKeys.TYPE]=a?"Value must be an instance of "+a.name:`Unable to verify type consistency, missing model registry for ${p.toString()} on prop ${n}`,delete y[r.ModelKeys.TYPE])}(Object.keys(y).length>0||o)&&(i[n]=y),o||Object.entries(c[n]||{}).forEach(([e,t])=>{void 0!==t&&(i[`${n}.${e}`]=t)})}if(!o)return Object.keys(i).length>0?new r.ModelErrorDefinition(i):void 0;const l=i,d=Object.keys(l),p=Object.values(l);return Promise.allSettled(p).then(async e=>{const t={};for(const[e,r]of Object.entries(c)){const a=await r;a&&Object.entries(a).forEach(([r,a])=>{void 0!==a&&(t[[e,r].join(".")]=a)})}for(let r=0;r<e.length;r++){const a=d[r],o=e[r];"fulfilled"===o.status&&void 0!==o.value?t[a]=o.value:"rejected"===o.status&&(t[a]=o.reason instanceof Error?o.reason.message:(o.reason||"Validation failed")+"")}return Object.keys(t).length>0?new r.ModelErrorDefinition(t):void 0})}function B(e,t,a,o,s){if(void 0===o[a])return;const n=r.Hashing.hash(o[a]);s&&o[a]===n||(o[a]=n)}function q(){return t.apply(v(B),t.propMetadata(n.HASH,{}))}function z(e,t,r,a){try{const{args:e,type:o,prefix:s,suffix:n,separator:i}=t,c=e.map(t=>{if(!(t in a))throw new T(`Property ${t} not found to compose from`);if("keys"===o)return t;if(void 0===a[t])throw new T(`Property ${e} does not contain a value to compose from`);return a[t].toString()});s&&c.unshift(s),n&&c.push(n),a[r]=c.join(i)}catch(e){throw new T("Failed to compose value: "+e)}}function G(e,r=!1,a=i,o="values",s="",c="",l={priority:55}){const d={args:e,hashResult:r,separator:a,type:o,prefix:s,suffix:c},p=[v(z,d,l),t.propMetadata(n.COMPOSED,d)];return r&&p.push(q()),t.apply(...p)}function Q(t){return(r,a,o,s)=>{try{switch(t){case e.OperationKeys.CREATE:s[o]=1;break;case e.OperationKeys.UPDATE:s[o]++;break;default:throw new T("Invalid operation: "+t)}}catch(e){throw new T("Failed to update version: "+e)}}}function J(e){return e.reduce((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e),void 0)}async function W(t,r,a,o,s,n){const i=Z(a,o,s);if(!i)return;const c=x(b(K(a,i,s)));for(const i of c){const c=[r,i.data.length>1?i.data:i.data[0],i.prop.length>1?i.prop:i.prop[0],a];if(o===e.OperationKeys.UPDATE&&s===e.OperationKeys.ON){if(!n)throw new T("Missing old model for update operation");c.push(n)}try{await i.handler.apply(t,c)}catch(e){const t=`Failed to execute handler ${i.handler.name} for ${i.prop} on ${a.constructor.name} due to error: ${e}`;if(r.get("breakOnHandlerError"))throw new T(t)}}}function Z(r,a,o){const s=o?.replace(/[.]$/,""),n=t.Metadata.get(r.constructor,e.ModelOperations.OPERATIONS);if(n)return Object.keys(n).reduce((e,t)=>{const r=s?n[t][s]||{}:n[t],o=Object.keys(r).filter(e=>e===a),i=[];for(const e of o)i.push({key:e,props:r[e]});return i&&i.length&&(e||(e={}),e[t]=i),e},void 0)}r.Model.prototype.isTransient=function(){return t.Metadata.isTransient(this)},r.Model.prototype.hasErrors=function(e,...t){!e||e instanceof r.Model||(t.unshift(e),e=void 0);const a=this.isAsync(),o=r.validate(this,a,...t);return a?Promise.resolve(o).then(r=>r||!e?r:Y(e,this,a,...t)):o||!e?o:Y(e,this,a,...t)},r.Model.prototype.segregate=function(){return r.Model.segregate(this)},r.Model.segregate=e=>{if(!t.Metadata.isTransient(e))return{model:e};const a=t.Metadata.validatableProperties(e.constructor),o=t.Metadata.get(e.constructor,n.TRANSIENT),s={model:{},transient:{}};for(const t of a)if(Object.keys(o).includes(t)){s.transient=s.transient||{};try{s.transient[t]=e[t]}catch(e){throw new w(`Failed to serialize transient property ${t}: ${e}`)}}else s.model=s.model||{},s.model[t]=e[t];return s.model=r.Model.build(s.model,e.constructor.name),s},r.Model.pk=((e,a=!1)=>{if(!e)throw Error("No model was provided");const o=e instanceof r.Model?e.constructor:e,s=t.Metadata.get(o,n.ID);if(!s)throw Error("No Id property defined for model "+(o?.name||"Unknown Model"));const i=Object.keys(s)[0];if(!a)return i;if(e instanceof r.Model)return e[i];throw Error("Cannot get the value of the pk from the constructor")}).bind(r.Model),r.Model.pkProps=(e=>t.Metadata.get(e,t.Metadata.key(n.ID,r.Model.pk(e)))).bind(r.Model),r.Model.isTransient=(e=>t.Metadata.isTransient(e)).bind(r.Model),r.Model.merge=((e,t,r)=>{const a=e=>Object.entries(e).reduce((e,[t,r])=>(void 0!==r&&(e[t]=r),e),{});return new(r=r||e.constructor)(Object.assign({},a(e),a(t)))}).bind(r.Model),t.Metadata.saveOperation=((r,a,o,s)=>{a&&t.Metadata.set(r,t.Metadata.key(e.ModelOperations.OPERATIONS,a,o),s)}).bind(t.Metadata),t.Metadata.readOperation=((r,a,o)=>{if(a&&o)return t.Metadata.get(r,t.Metadata.key(e.ModelOperations.OPERATIONS,a,o))}).bind(t.Metadata),t.Metadata.isTransient=(e=>!!t.Metadata.get("function"!=typeof e?e.constructor:e,n.TRANSIENT)).bind(t.Metadata);const X={parentContext:void 0,childContexts:[],ignoredValidationProperties:[],callArgs:[],writeOperation:!1,affectedTables:[],operation:void 0,breakOnHandlerError:!0,rebuildWithTransient:!0,ignoreValidation:!1,ignoreHandlers:!0},ee=e=>(new te).accumulate(Object.assign({},e,{timestamp:new Date,logger:e.logger||s.Logging.get()}));class te{constructor(){this.cache=new o.ObjectAccumulator,Object.defineProperty(this,"cache",{value:new o.ObjectAccumulator,writable:!1,enumerable:!1,configurable:!0})}static{this.factory=ee}accumulate(e){return Object.defineProperty(this,"cache",{value:this.cache.accumulate(e),writable:!1,enumerable:!1,configurable:!0}),this}get logger(){return this.cache.logger}get timestamp(){return this.cache.timestamp}get(e){try{return this.cache.get(e)}catch(t){const r=this.cache.parentContext;if(r)return r.get(e);throw t}}static childFrom(e,t){return te.factory(Object.assign({},e.cache,t||{}))}static async from(e,t,r,...a){return te.factory(Object.assign({},X,t,{operation:e,model:r,logger:t.logger||s.Logging.get()}))}static async args(e,t,r,a,o){const s=r.pop();async function n(){return a?a.context(e,o||{},t,...r):te.from(e,o||{},t,...r)}let i;return s?s instanceof te?(i=s,r.push(s)):(r.push(s),i=await n(),r.push(i)):(i=await n(),r.push(i)),{context:i,args:r}}}function re(e,t,r,a,o){const s=o||r.name;e[s]=new Proxy(e[s],{apply:async(e,r,o)=>{let s=t.call(r,...o);s instanceof Promise&&(s=await s);const n=s[s.length-1];if(!(n instanceof te))throw new T("Missing a context");let i=e.call(r,...s);return i instanceof Promise&&(i=await i),i=a.call(r,i,n),i instanceof Promise&&(i=await i),i}})}class ae{get class(){if(!this._class)throw new T("No class definition found for this repository");return this._class}get pk(){return r.Model.pk(this.class)}get pkProps(){return r.Model.pkProps(this.class)}constructor(e){e&&(this._class=e);const t=this;[this.create,this.read,this.update,this.delete].forEach(e=>{const r=e.name;re(t,t[r+"Prefix"],e,t[r+"Suffix"])})}async createAll(e,...t){return Promise.all(e.map(e=>this.create(e,...t)))}async createPrefix(t,...r){const a=await te.args(e.OperationKeys.CREATE,this.class,r);return t=new this.class(t),await W(this,a.context,t,e.OperationKeys.CREATE,e.OperationKeys.ON),[t,...a.args]}async createSuffix(t,r){return await W(this,r,t,e.OperationKeys.CREATE,e.OperationKeys.AFTER),t}async createAllPrefix(t,...r){const a=await te.args(e.OperationKeys.CREATE,this.class,r);return await Promise.all(t.map(async t=>(t=new this.class(t),await W(this,a.context,t,e.OperationKeys.CREATE,e.OperationKeys.ON),t))),[t,...a.args]}async createAllSuffix(t,r){return await Promise.all(t.map(t=>W(this,r,t,e.OperationKeys.CREATE,e.OperationKeys.AFTER))),t}async readAll(e,...t){return await Promise.all(e.map(e=>this.read(e,...t)))}async readSuffix(t,r){return await W(this,r,t,e.OperationKeys.READ,e.OperationKeys.AFTER),t}async readPrefix(t,...r){const a=await te.args(e.OperationKeys.READ,this.class,r),o=new this.class;return o[this.pk]=t,await W(this,a.context,o,e.OperationKeys.READ,e.OperationKeys.ON),[t,...a.args]}async readAllPrefix(t,...r){const a=await te.args(e.OperationKeys.READ,this.class,r);return await Promise.all(t.map(async t=>{const r=new this.class;return r[this.pk]=t,W(this,a.context,r,e.OperationKeys.READ,e.OperationKeys.ON)})),[t,...a.args]}async readAllSuffix(t,r){return await Promise.all(t.map(t=>W(this,r,t,e.OperationKeys.READ,e.OperationKeys.AFTER))),t}async updateAll(e,...t){return Promise.all(e.map(e=>this.update(e,...t)))}async updateSuffix(t,r){return await W(this,r,t,e.OperationKeys.UPDATE,e.OperationKeys.AFTER),t}async updatePrefix(t,...r){const a=await te.args(e.OperationKeys.UPDATE,this.class,r),o=t[this.pk];if(!o)throw new T("No value for the Id is defined under the property "+this.pk);const s=await this.read(o);return await W(this,a.context,t,e.OperationKeys.UPDATE,e.OperationKeys.ON,s),[t,...a.args]}async updateAllPrefix(t,...r){const a=await te.args(e.OperationKeys.UPDATE,this.class,r);return await Promise.all(t.map(t=>(t=new this.class(t),W(this,a.context,t,e.OperationKeys.UPDATE,e.OperationKeys.ON),t))),[t,...a.args]}async updateAllSuffix(t,r){return await Promise.all(t.map(t=>W(this,r,t,e.OperationKeys.UPDATE,e.OperationKeys.AFTER))),t}async deleteAll(e,...t){return Promise.all(e.map(e=>this.delete(e,...t)))}async deleteSuffix(t,r){return await W(this,r,t,e.OperationKeys.DELETE,e.OperationKeys.AFTER),t}async deletePrefix(t,...r){const a=await te.args(e.OperationKeys.DELETE,this.class,r),o=await this.read(t,...a.args);return await W(this,a.context,o,e.OperationKeys.DELETE,e.OperationKeys.ON),[t,...a.args]}async deleteAllPrefix(t,...r){const a=await te.args(e.OperationKeys.DELETE,this.class,r),o=await this.readAll(t,...a.args);return await Promise.all(o.map(async t=>W(this,a.context,t,e.OperationKeys.DELETE,e.OperationKeys.ON))),[t,...a.args]}async deleteAllSuffix(t,r){return await Promise.all(t.map(t=>W(this,r,t,e.OperationKeys.DELETE,e.OperationKeys.AFTER))),t}toString(){return this.class.name+" Repository"}}const oe="##VERSION##",se="##PACKAGE##";t.Metadata.registerLibrary(se,oe),e.BadRequestError=m,e.BaseError=O,e.BaseRepository=ae,e.BlockOperations=t=>k(e.OperationKeys.REFLECT+e.OperationKeys.BLOCK,(e,t)=>e.includes(t))(t),e.ConflictError=M,e.Context=te,e.DBKeys=n,e.DBOperations=h,e.DEFAULT_ERROR_MESSAGES=l,e.DEFAULT_TIMESTAMP_FORMAT=c,e.DefaultContextFactory=ee,e.DefaultRepositoryFlags=X,e.DefaultSeparator=i,e.InternalError=T,e.NotFoundError=P,e.Operations=g,e.OperationsRegistry=E,e.PACKAGE_NAME=se,e.Repository=class extends ae{constructor(e){super(e)}async createPrefix(t,...r){const a=await te.args(e.OperationKeys.CREATE,this.class,r);if(t=new this.class(t),!1!==a.context.get("ignoreHandlers")&&await W(this,a.context,t,e.OperationKeys.CREATE,e.OperationKeys.ON),!a.context.get("ignoreValidation")){const e=await Promise.resolve(t.hasErrors());if(e)throw new A(e.toString())}return[t,...a.args]}async createAllPrefix(t,...r){const a=await te.args(e.OperationKeys.CREATE,this.class,r),o=!1!==a.context.get("ignoreHandlers"),s=!a.context.get("ignoreValidation");if(t=await Promise.all(t.map(async t=>{const r=new this.class(t);return o&&await W(this,a.context,r,e.OperationKeys.CREATE,e.OperationKeys.ON),r})),s){const e=J(await Promise.all(t.map(e=>Promise.resolve(e.hasErrors()))));if(e)throw new A(e)}return[t,...a.args]}async updatePrefix(t,...a){const o=await te.args(e.OperationKeys.UPDATE,this.class,a),s=!1!==o.context.get("ignoreHandlers"),n=!o.context.get("ignoreValidation"),i=t[this.pk];if(!i)throw new T("No value for the Id is defined under the property "+this.pk);const c=await this.read(i);if(t=r.Model.merge(c,t,this.class),s&&await W(this,o.context,t,e.OperationKeys.UPDATE,e.OperationKeys.ON,c),n){const e=await Promise.resolve(t.hasErrors(c));if(e)throw new A(e.toString())}return[t,...o.args]}async updateAllPrefix(t,...a){const o=await te.args(e.OperationKeys.UPDATE,this.class,a),s=!1!==o.context.get("ignoreHandlers"),n=!o.context.get("ignoreValidation"),i=t.map(e=>{const t=e[this.pk];if(void 0===t)throw new T("No value for the Id is defined under the property "+this.pk);return t}),c=await this.readAll(i,...o.args);if(t=t.map((e,t)=>r.Model.merge(c[t],e,this.class)),s&&await Promise.all(t.map((t,r)=>W(this,o.context,t,e.OperationKeys.UPDATE,e.OperationKeys.ON,c[r]))),n){const e=J(await Promise.all(t.map((e,t)=>Promise.resolve(e.hasErrors(c[t])))));if(e)throw new A(e)}return[t,...o.args]}async readPrefix(e,...t){return super.readPrefix(e,...t)}async readAllPrefix(e,...t){return super.readAllPrefix(e,...t)}async deleteAllPrefix(e,...t){return super.deleteAllPrefix(e,...t)}},e.SerializationError=w,e.UpdateValidationKeys=d,e.UpdateValidator=p,e.VERSION=oe,e.ValidationError=A,e.after=N,e.afterAny=(e,t,r)=>N(h.ALL,e,t,r),e.afterCreate=(e,t,r)=>N(h.CREATE,e,t,r),e.afterCreateUpdate=(e,t,r)=>N(h.CREATE_UPDATE,e,t,r),e.afterDelete=(e,t,r)=>N(h.DELETE,e,t,r),e.afterRead=(e,t,r)=>N(h.READ,e,t,r),e.afterUpdate=(e,t,r)=>N(h.UPDATE,e,t,r),e.composed=(e,t=i,r=!1,a="",o="",s={priority:55})=>G(e,r,t,"values",a,o,s),e.composedFromCreateUpdate=z,e.composedFromKeys=(e,t=i,r=!1,a="",o="",s={priority:55})=>G(e,r,t,"keys",a,o,s),e.enforceDBDecorators=W,e.getDbDecorators=Z,e.getHandlerArgs=R,e.getHandlersDecorators=K,e.getValidatableUpdateProps=_,e.groupDecorators=b,e.hash=q,e.hashOnCreateUpdate=B,e.id=()=>t.apply(r.required(),U(),(e,r)=>t.propMetadata(t.Metadata.key(n.ID,r),{})(e,r)),e.on=I,e.onAny=(e,t,r)=>I(h.ALL,e,t,r),e.onCreate=L,e.onCreateUpdate=v,e.onDelete=(e,t,r)=>I(h.DELETE,e,t,r),e.onRead=(e,t,r)=>I(h.READ,e,t,r),e.onUpdate=S,e.operation=C,e.prefixMethod=(e,t,r,a)=>{const o=a||t.name;e[o]=new Proxy(e[o],{apply:async(e,t,a)=>{let o=r.call(t,...a);return o instanceof Promise&&(o=await o),o=e.call(t,...o),o instanceof Promise&&(o=await o),o}})},e.readonly=U,e.reduceErrorsToPrint=J,e.serialize=()=>t.apply(v(V),N(h.ALL,F),r.type([String,Object]),t.metadata(n.SERIALIZE,{})),e.serializeAfterAll=F,e.serializeOnCreateUpdate=V,e.sortDecorators=x,e.storeHandlerMetadata=k,e.suffixMethod=(e,t,r,a)=>{const o=a||t.name;e[o]=new Proxy(e[o],{apply:async(e,t,a)=>{let o=e.call(t,...a);return o instanceof Promise&&(o=await o),o=r.call(t,...o),o instanceof Promise&&(o=await o),o}})},e.timestamp=(a=h.CREATE_UPDATE,o=c)=>{const s=r.Validation.updateKey(n.TIMESTAMP);return t.Decoration.for(s).define({decorator:(a,o)=>{const i=[r.date(o,l.TIMESTAMP.DATE),r.required(l.TIMESTAMP.REQUIRED),t.propMetadata(r.Validation.key(n.TIMESTAMP),{operation:a,format:o}),I(a,j)];return-1!==a.indexOf(e.OperationKeys.UPDATE)?i.push(t.propMetadata(s,{message:l.TIMESTAMP.INVALID})):i.push(U()),t.apply(...i)},args:[a,o]}).apply()},e.timestampHandler=j,e.transient=()=>t.Decoration.for(n.TRANSIENT).define((e,r)=>{t.propMetadata(n.TRANSIENT,!0)(e.constructor),t.propMetadata(t.Metadata.key(n.TRANSIENT,r),{})(e,r)}).apply(),e.validateCompare=Y,e.validateDecorator=$,e.validateDecorators=H,e.version=()=>{const a=n.VERSION;return t.Decoration.for(a).define(r.type(Number),L(Q(e.OperationKeys.CREATE)),S(Q(e.OperationKeys.UPDATE)),t.propMetadata(a,!0)).apply()},e.versionCreateUpdate=Q,e.wrapMethodWithContext=re},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("@decaf-ts/decorator-validation"),require("tslib"),require("typed-object-accumulator"),require("@decaf-ts/logging")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/decorator-validation","tslib","typed-object-accumulator","@decaf-ts/logging"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["db-decorators"]={},e.decafTsDecoration,e.decafTsDecoratorValidation,e.tslib,e.typedObjectAccumulator,e.decafTsLogging);
1
+ var e,t;e=this,t=function(e,t,r,a,o,s){"use strict";const n={REFLECT:r.ModelKeys.MODEL+".persistence.",REPOSITORY:"repository",CLASS:"_class",ID:"id",INDEX:"index",UNIQUE:"unique",SERIALIZE:"serialize",READONLY:"readonly",TIMESTAMP:"timestamp",TRANSIENT:"transient",HASH:"hash",COMPOSED:"composed",VERSION:"version",ORIGINAL:"__originalObj"},i="_",c="dd/MM/yyyy HH:mm:ss:S",l={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"}},d={REFLECT:"db.update.validation.",TIMESTAMP:n.TIMESTAMP,READONLY:n.READONLY};e.ReadOnlyValidator=class extends r.Validator{constructor(){super(l.READONLY.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,a){if(void 0!==e)return r.isEqual(e,t)?void 0:this.getMessage(a||this.message)}},e.ReadOnlyValidator=a.__decorate([r.validator(d.READONLY),a.__metadata("design:paramtypes",[])],e.ReadOnlyValidator),e.TimestampValidator=class extends r.Validator{constructor(){super(l.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?void 0:r}}},e.TimestampValidator=a.__decorate([r.validator(d.TIMESTAMP),a.__metadata("design:paramtypes",[])],e.TimestampValidator);class p extends r.Validator{constructor(e=r.DEFAULT_ERROR_MESSAGES.DEFAULT,...t){super(e,...t)}}var u,y,f;r.Validation.updateKey=e=>d.REFLECT+e,e.OperationKeys=void 0,(u=e.OperationKeys||(e.OperationKeys={})).REFLECT="decaf.model.db.operations.",u.CREATE="create",u.READ="read",u.UPDATE="update",u.DELETE="delete",u.ON="on.",u.AFTER="after.",u.BLOCK="block",e.ModelOperations=void 0,(y=e.ModelOperations||(e.ModelOperations={})).OPERATIONS="operations",y.RELATIONS="relations",e.BulkCrudOperationKeys=void 0,(f=e.BulkCrudOperationKeys||(e.BulkCrudOperationKeys={})).CREATE_ALL="createAll",f.READ_ALL="readAll",f.UPDATE_ALL="updateAll",f.DELETE_ALL="deleteAll";const h={CREATE:[e.OperationKeys.CREATE],READ:[e.OperationKeys.READ],UPDATE:[e.OperationKeys.UPDATE],DELETE:[e.OperationKeys.DELETE],CREATE_UPDATE:[e.OperationKeys.CREATE,e.OperationKeys.UPDATE],READ_CREATE:[e.OperationKeys.READ,e.OperationKeys.CREATE],ALL:[e.OperationKeys.CREATE,e.OperationKeys.READ,e.OperationKeys.UPDATE,e.OperationKeys.DELETE]};class E{constructor(){this.cache={}}get(e,t,r,a){let o;a=a||[];try{o="string"==typeof e?e:e.constructor.name,a.unshift(...Object.values(this.cache[o][t][r]||[]))}catch(t){if("string"==typeof e||e===Object.prototype||Object.getPrototypeOf(e)===Object.prototype)return a}let s=Object.getPrototypeOf(e);return s.constructor.name===o&&(s=Object.getPrototypeOf(s)),this.get(s,t,r,a)}register(e,t,r,a){const o=r.constructor.name,s=g.getHandlerName(e);this.cache[o]||(this.cache[o]={}),this.cache[o][a]||(this.cache[o][a]={}),this.cache[o][a][t]||(this.cache[o][a][t]={}),this.cache[o][a][t][s]||(this.cache[o][a][t][s]=e)}}class g{constructor(){}static getHandlerName(e){return e.name?e.name:r.Hashing.hash(e.toString())}static key(t){return e.OperationKeys.REFLECT+t}static get(e,t,r){return g.registry.get(e,t,r)}static getOpRegistry(){return g.registry||(g.registry=new E),g.registry}static register(e,t,r,a){g.getOpRegistry().register(e,t,r,a)}}class O extends Error{constructor(e,t,r){if(t instanceof O)return t;super(`[${e}] ${t instanceof Error?t.message:t}`),this.code=r,t instanceof Error&&(this.stack=t.stack)}}class m extends O{constructor(e,t=m.name,r=400){super(t,e,r)}}class A extends m{constructor(e){super(e,A.name,422)}}class T extends O{constructor(e,t=T.name,r=500){super(t,e,r)}}class w extends T{constructor(e){super(e,w.name,500)}}class P extends m{constructor(e){super(e,P.name,404)}}class M extends m{constructor(e){super(e,M.name,409)}}const D={priority:50},R=(e,t,r,a)=>{const o=r.constructor.name;if(!o)throw new T("Could not determine model class");a=a||{},e.props.handlers[o]&&e.props.handlers[o][t]&&(a={...e.props.handlers[o][t],...a});let s=Object.getPrototypeOf(r);return s===Object.prototype?a:(s.constructor.name===o&&(s=Object.getPrototypeOf(s)),R(e,t,s,a))};function K(e,t,r){const a=[];for(const o in t){const s=t[o];for(const t of s){const{key:s}=t,n=g.get(e,o,r+s);if(!n||!n.length)throw new T(`Could not find registered handler for the operation ${r+s} under property ${o}`);const i=R(t,o,e);if(!i||Object.values(i).length!==n.length)throw new T("Args and handlers length do not match");for(let e=0;e<n.length;e++){const t=i[n[e].name].data;a.push({handler:n[e],data:[t],prop:[o]})}}}return a}function b(e){const t=e.reduce((e,t)=>{if(!t||!t.data||!t.prop)throw new T("Missing decorator properties or data");if(!t.data[0].group)return e.set(Symbol(),t),e;const r=t.data[0].group;if(e.has(r)){const a=e.get(r);e.set(r,{handler:a.handler,data:[...a.data,...t.data],prop:[...a.prop,...t.prop]})}else e.set(r,{...t});return e},new Map),r=Array.from(t.values());return r.forEach(e=>{const t=e.data.map((t,r)=>({data:t,prop:e.prop[r]}));t.sort((e,t)=>(e.data.groupPriority??50)-(t.data.groupPriority??50)),e.data=t.map(e=>e.data),e.prop=t.map(e=>e.prop)}),r}function x(e){return e.sort((e,t)=>(e.data[0].priority??50)-(t.data[0].priority??50)),e}function v(e,t,r){return I(h.CREATE_UPDATE,e,t,r)}function S(e,t,r){return I(h.UPDATE,e,t,r)}function L(e,t,r){return I(h.CREATE,e,t,r)}function I(t=h.ALL,r,a,o){return C(e.OperationKeys.ON,t,r,a,o)}function N(t=h.ALL,r,a,o){return C(e.OperationKeys.AFTER,t,r,a,o)}function C(r,a=h.ALL,o,s,n=D){return(i,c)=>{const l=i.constructor.name,d=a.reduce((a,d)=>{const p=r+d;let u=t.Metadata.readOperation(i.constructor,c,p);u||(u={operation:d,handlers:{}});const y=g.getHandlerName(o);let f=n;if(s){if(Object.keys(s).filter(e=>e in n).length>0)throw new T("Unable to merge groupSort into dataToAdd due to overlaping keys");f={...n,...s}}return u.handlers[l]&&u.handlers[l][c]&&y in u.handlers[l][c]||(u.handlers[l]=u.handlers[l]||{},u.handlers[l][c]=u.handlers[l][c]||{},u.handlers[l][c][y]={data:f},a.push(((e,t)=>(r,a)=>{g.register(t,e,r,a)})(p,o),t.propMetadata(t.Metadata.key(e.ModelOperations.OPERATIONS,c,p),u))),a},[]);return t.apply(...d)(i,c)}}function k(e,r){return(...a)=>t.metadata(e,{args:a,handler:r})}function U(e=l.READONLY.INVALID){const a=n.READONLY,o={message:e,description:"defines the attribute as readOnly",async:!1};return t.Decoration.for(a).define({decorator:r.innerValidationDecorator,args:[U,a,o]}).apply()}async function j(e,t,r,a){a[r]=e.timestamp}async function V(e,t,r,a){if(a[r])try{a[r]=JSON.stringify(a[r])}catch(e){throw new w(`Failed to serialize ${r.toString()} property of model ${a.constructor.name}: e`)}}async function F(e,t,r,a){if(a[r]&&"string"==typeof a[r])try{a[r]=JSON.parse(a[r])}catch(e){throw new w(`Failed to deserialize ${r.toString()} property of model ${a.constructor.name}: ${e}`)}}function _(e,r){const a=[];for(const o in e){if(!Object.prototype.hasOwnProperty.call(e,o)||r.includes(o))continue;const s=t.Metadata.validationFor(e.constructor,o)||{};a.push({prop:o,decorators:s})}return a}function $(e,t,a,o,s){const n=r.Validation.get(o.key);if(!n)throw Error("Missing validator for "+o.key);if(!n.updateHasErrors)return r.toConditionalPromise(void 0,s);if(!s&&o.async)return r.toConditionalPromise(void 0,s);const i=Object.values(o)||{},c=n.updateHasErrors(e[a],t[a],...i);return r.toConditionalPromise(c,s)}function H(e,t,a,o,s){const n={};for(const i in o){const c={...o[i],key:i};if(!s&&c.async)continue;let l=$(e,t,a,c,s);if(c.key===r.ValidationKeys.LIST&&(!l||s)){const o=e[a],n=t[a],i=o instanceof Set?[...o]:o,d=n instanceof Set?[...n]:n;if(i?.length){const e=[c.class||c.clazz||c.customTypes].flat().map(e=>((e=(e="function"!=typeof e||e.name?e:e()).name?e.name:e)+"").toLowerCase()),t=i.map(t=>{const a=r.Model.pk(t,!0);if(!a)return"Failed to find model id";const o=d.find(e=>a===r.Model.pk(e,!0));return r.Model.isModel(t)?t.hasErrors(o):e.includes(typeof t)?void 0:"Value has no validatable type"});if(s)l=Promise.all(t).then(e=>e.every(e=>!e)?void 0:e);else{const e=t.every(e=>!e);l=t.length>0&&!e?t:void 0}}}l&&(n[c.key]=l)}if(!s)return Object.keys(n).length>0?n:void 0;const i=Object.keys(n),c=Object.values(n);return Promise.all(c).then(e=>{const t={};for(let r=0;r<e.length;r++){const a=e[r];void 0!==a&&(t[i[r]]=a)}return Object.keys(t).length>0?t:void 0})}function Y(e,a,o,...s){const n=_(a,s),i={},c={};for(const{prop:s,decorators:l}of n){const n=s+"",d=a[s],{designTypes:p,designType:u}=t.Metadata.getPropDesignTypes(a.constructor,s);if(!p)continue;if(p.some(e=>[Array.name,Set.name].includes(e))){if(!l||!Object.keys(l).includes(r.ValidationKeys.LIST)){i[n]={[r.ValidationKeys.TYPE]:`Array or Set property '${n}' requires a @list decorator`};continue}if(d&&!(Array.isArray(d)||d instanceof Set)){i[n]={[r.ValidationKeys.TYPE]:`Property '${s+""}' must be either an Array or a Set`};continue}}const y=H(a,e,n,l,o)||{},f=r.Model.isPropertyModel(a,n);if(null!=d&&f){const t=d,a=(Array.isArray(u)?u:[u]).map(e=>("function"!=typeof e||e.name||(e=e()),r.Model.get(e.name||e))).find(e=>!!e);a&&t instanceof a?c[n]=t.hasErrors(e[s]):(y[r.ValidationKeys.TYPE]=a?"Value must be an instance of "+a.name:`Unable to verify type consistency, missing model registry for ${p.toString()} on prop ${n}`,delete y[r.ModelKeys.TYPE])}(Object.keys(y).length>0||o)&&(i[n]=y),o||Object.entries(c[n]||{}).forEach(([e,t])=>{void 0!==t&&(i[`${n}.${e}`]=t)})}if(!o)return Object.keys(i).length>0?new r.ModelErrorDefinition(i):void 0;const l=i,d=Object.keys(l),p=Object.values(l);return Promise.allSettled(p).then(async e=>{const t={};for(const[e,r]of Object.entries(c)){const a=await r;a&&Object.entries(a).forEach(([r,a])=>{void 0!==a&&(t[[e,r].join(".")]=a)})}for(let r=0;r<e.length;r++){const a=d[r],o=e[r];"fulfilled"===o.status&&void 0!==o.value?t[a]=o.value:"rejected"===o.status&&(t[a]=o.reason instanceof Error?o.reason.message:(o.reason||"Validation failed")+"")}return Object.keys(t).length>0?new r.ModelErrorDefinition(t):void 0})}function B(e,t,a,o,s){if(void 0===o[a])return;const n=r.Hashing.hash(o[a]);s&&o[a]===n||(o[a]=n)}function q(){return t.apply(v(B),t.propMetadata(n.HASH,{}))}function z(e,t,r,a){try{const{args:e,type:o,prefix:s,suffix:n,separator:i}=t,c=e.map(t=>{if(!(t in a))throw new T(`Property ${t} not found to compose from`);if("keys"===o)return t;if(void 0===a[t])throw new T(`Property ${e} does not contain a value to compose from`);return a[t].toString()});s&&c.unshift(s),n&&c.push(n),a[r]=c.join(i)}catch(e){throw new T("Failed to compose value: "+e)}}function G(e,r=!1,a=i,o="values",s="",c="",l={priority:55}){return(i,d)=>{const p={args:e,hashResult:r,separator:a,type:o,prefix:s,suffix:c},u=[v(z,p,l),t.propMetadata(t.Metadata.key(n.COMPOSED,d),p)];return r&&u.push(q()),t.apply(...u)(i,d)}}function Q(t){return(r,a,o,s)=>{try{switch(t){case e.OperationKeys.CREATE:s[o]=1;break;case e.OperationKeys.UPDATE:s[o]++;break;default:throw new T("Invalid operation: "+t)}}catch(e){throw new T("Failed to update version: "+e)}}}function J(e){return e.reduce((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e),void 0)}async function W(t,r,a,o,s,n){const i=Z(a,o,s);if(!i)return;const c=x(b(K(a,i,s)));for(const i of c){const c=[r,i.data.length>1?i.data:i.data[0],i.prop.length>1?i.prop:i.prop[0],a];if(o===e.OperationKeys.UPDATE&&s===e.OperationKeys.ON){if(!n)throw new T("Missing old model for update operation");c.push(n)}try{await i.handler.apply(t,c)}catch(e){const t=`Failed to execute handler ${i.handler.name} for ${i.prop} on ${a.constructor.name} due to error: ${e}`;if(r.get("breakOnHandlerError"))throw new T(t)}}}function Z(r,a,o){const s=o?.replace(/[.]$/,""),n=t.Metadata.get(r.constructor,e.ModelOperations.OPERATIONS);if(n)return Object.keys(n).reduce((e,t)=>{const r=s?n[t][s]||{}:n[t],o=Object.keys(r).filter(e=>e===a),i=[];for(const e of o)i.push({key:e,props:r[e]});return i&&i.length&&(e||(e={}),e[t]=i),e},void 0)}r.Model.prototype.isTransient=function(){return t.Metadata.isTransient(this)},r.Model.prototype.hasErrors=function(e,...t){!e||e instanceof r.Model||(t.unshift(e),e=void 0);const a=this.isAsync(),o=r.validate(this,a,...t);return a?Promise.resolve(o).then(r=>r||!e?r:Y(e,this,a,...t)):o||!e?o:Y(e,this,a,...t)},r.Model.prototype.segregate=function(){return r.Model.segregate(this)},r.Model.segregate=e=>{if(!t.Metadata.isTransient(e))return{model:e};const a=t.Metadata.validatableProperties(e.constructor),o=t.Metadata.get(e.constructor,n.TRANSIENT),s={model:{},transient:{}};for(const t of a)if(Object.keys(o).includes(t)){s.transient=s.transient||{};try{s.transient[t]=e[t]}catch(e){throw new w(`Failed to serialize transient property ${t}: ${e}`)}}else s.model=s.model||{},s.model[t]=e[t];return s.model=r.Model.build(s.model,e.constructor.name),s},r.Model.pk=((e,a=!1)=>{if(!e)throw Error("No model was provided");const o=e instanceof r.Model?e.constructor:e,s=t.Metadata.get(o,n.ID);if(!s)throw Error("No Id property defined for model "+(o?.name||"Unknown Model"));const i=Object.keys(s)[0];if(!a)return i;if(e instanceof r.Model)return e[i];throw Error("Cannot get the value of the pk from the constructor")}).bind(r.Model),r.Model.pkProps=(e=>t.Metadata.get(e,t.Metadata.key(n.ID,r.Model.pk(e)))).bind(r.Model),r.Model.isTransient=(e=>t.Metadata.isTransient(e)).bind(r.Model),r.Model.merge=((e,t,r)=>{const a=e=>Object.entries(e).reduce((e,[t,r])=>(void 0!==r&&(e[t]=r),e),{});return new(r=r||e.constructor)(Object.assign({},a(e),a(t)))}).bind(r.Model),t.Metadata.saveOperation=((r,a,o,s)=>{a&&t.Metadata.set(r,t.Metadata.key(e.ModelOperations.OPERATIONS,a,o),s)}).bind(t.Metadata),t.Metadata.readOperation=((r,a,o)=>{if(a&&o)return t.Metadata.get(r,t.Metadata.key(e.ModelOperations.OPERATIONS,a,o))}).bind(t.Metadata),t.Metadata.isTransient=(e=>!!t.Metadata.get("function"!=typeof e?e.constructor:e,n.TRANSIENT)).bind(t.Metadata);const X={parentContext:void 0,childContexts:[],ignoredValidationProperties:[],callArgs:[],writeOperation:!1,affectedTables:[],operation:void 0,breakOnHandlerError:!0,rebuildWithTransient:!0,ignoreValidation:!1,ignoreHandlers:!0},ee=e=>(new te).accumulate(Object.assign({},e,{timestamp:new Date,logger:e.logger||s.Logging.get()}));class te{constructor(){this.cache=new o.ObjectAccumulator,Object.defineProperty(this,"cache",{value:new o.ObjectAccumulator,writable:!1,enumerable:!1,configurable:!0})}static{this.factory=ee}accumulate(e){return Object.defineProperty(this,"cache",{value:this.cache.accumulate(e),writable:!1,enumerable:!1,configurable:!0}),this}get logger(){return this.cache.logger}get timestamp(){return this.cache.timestamp}get(e){try{return this.cache.get(e)}catch(t){const r=this.cache.parentContext;if(r)return r.get(e);throw t}}static childFrom(e,t){return te.factory(Object.assign({},e.cache,t||{}))}static async from(e,t,r,...a){return te.factory(Object.assign({},X,t,{operation:e,model:r,logger:t.logger||s.Logging.get()}))}static async args(e,t,r,a,o){const s=r.pop();async function n(){return a?a.context(e,o||{},t,...r):te.from(e,o||{},t,...r)}let i;return s?s instanceof te?(i=s,r.push(s)):(r.push(s),i=await n(),r.push(i)):(i=await n(),r.push(i)),{context:i,args:r}}}function re(e,t,r,a,o){const s=o||r.name;e[s]=new Proxy(e[s],{apply:async(e,r,o)=>{let s=t.call(r,...o);s instanceof Promise&&(s=await s);const n=s[s.length-1];if(!(n instanceof te))throw new T("Missing a context");let i=e.call(r,...s);return i instanceof Promise&&(i=await i),i=a.call(r,i,n),i instanceof Promise&&(i=await i),i}})}class ae{get class(){if(!this._class)throw new T("No class definition found for this repository");return this._class}get pk(){return r.Model.pk(this.class)}get pkProps(){return r.Model.pkProps(this.class)}constructor(e){e&&(this._class=e);const t=this;[this.create,this.read,this.update,this.delete].forEach(e=>{const r=e.name;re(t,t[r+"Prefix"],e,t[r+"Suffix"])})}async createAll(e,...t){return Promise.all(e.map(e=>this.create(e,...t)))}async createPrefix(t,...r){const a=await te.args(e.OperationKeys.CREATE,this.class,r);return t=new this.class(t),await W(this,a.context,t,e.OperationKeys.CREATE,e.OperationKeys.ON),[t,...a.args]}async createSuffix(t,r){return await W(this,r,t,e.OperationKeys.CREATE,e.OperationKeys.AFTER),t}async createAllPrefix(t,...r){const a=await te.args(e.OperationKeys.CREATE,this.class,r);return await Promise.all(t.map(async t=>(t=new this.class(t),await W(this,a.context,t,e.OperationKeys.CREATE,e.OperationKeys.ON),t))),[t,...a.args]}async createAllSuffix(t,r){return await Promise.all(t.map(t=>W(this,r,t,e.OperationKeys.CREATE,e.OperationKeys.AFTER))),t}async readAll(e,...t){return await Promise.all(e.map(e=>this.read(e,...t)))}async readSuffix(t,r){return await W(this,r,t,e.OperationKeys.READ,e.OperationKeys.AFTER),t}async readPrefix(t,...r){const a=await te.args(e.OperationKeys.READ,this.class,r),o=new this.class;return o[this.pk]=t,await W(this,a.context,o,e.OperationKeys.READ,e.OperationKeys.ON),[t,...a.args]}async readAllPrefix(t,...r){const a=await te.args(e.OperationKeys.READ,this.class,r);return await Promise.all(t.map(async t=>{const r=new this.class;return r[this.pk]=t,W(this,a.context,r,e.OperationKeys.READ,e.OperationKeys.ON)})),[t,...a.args]}async readAllSuffix(t,r){return await Promise.all(t.map(t=>W(this,r,t,e.OperationKeys.READ,e.OperationKeys.AFTER))),t}async updateAll(e,...t){return Promise.all(e.map(e=>this.update(e,...t)))}async updateSuffix(t,r){return await W(this,r,t,e.OperationKeys.UPDATE,e.OperationKeys.AFTER),t}async updatePrefix(t,...r){const a=await te.args(e.OperationKeys.UPDATE,this.class,r),o=t[this.pk];if(!o)throw new T("No value for the Id is defined under the property "+this.pk);const s=await this.read(o);return await W(this,a.context,t,e.OperationKeys.UPDATE,e.OperationKeys.ON,s),[t,...a.args]}async updateAllPrefix(t,...r){const a=await te.args(e.OperationKeys.UPDATE,this.class,r);return await Promise.all(t.map(t=>(t=new this.class(t),W(this,a.context,t,e.OperationKeys.UPDATE,e.OperationKeys.ON),t))),[t,...a.args]}async updateAllSuffix(t,r){return await Promise.all(t.map(t=>W(this,r,t,e.OperationKeys.UPDATE,e.OperationKeys.AFTER))),t}async deleteAll(e,...t){return Promise.all(e.map(e=>this.delete(e,...t)))}async deleteSuffix(t,r){return await W(this,r,t,e.OperationKeys.DELETE,e.OperationKeys.AFTER),t}async deletePrefix(t,...r){const a=await te.args(e.OperationKeys.DELETE,this.class,r),o=await this.read(t,...a.args);return await W(this,a.context,o,e.OperationKeys.DELETE,e.OperationKeys.ON),[t,...a.args]}async deleteAllPrefix(t,...r){const a=await te.args(e.OperationKeys.DELETE,this.class,r),o=await this.readAll(t,...a.args);return await Promise.all(o.map(async t=>W(this,a.context,t,e.OperationKeys.DELETE,e.OperationKeys.ON))),[t,...a.args]}async deleteAllSuffix(t,r){return await Promise.all(t.map(t=>W(this,r,t,e.OperationKeys.DELETE,e.OperationKeys.AFTER))),t}toString(){return this.class.name+" Repository"}}const oe="##VERSION##",se="##PACKAGE##";t.Metadata.registerLibrary(se,oe),e.BadRequestError=m,e.BaseError=O,e.BaseRepository=ae,e.BlockOperations=t=>k(e.OperationKeys.REFLECT+e.OperationKeys.BLOCK,(e,t)=>e.includes(t))(t),e.ConflictError=M,e.Context=te,e.DBKeys=n,e.DBOperations=h,e.DEFAULT_ERROR_MESSAGES=l,e.DEFAULT_TIMESTAMP_FORMAT=c,e.DefaultContextFactory=ee,e.DefaultRepositoryFlags=X,e.DefaultSeparator=i,e.InternalError=T,e.NotFoundError=P,e.Operations=g,e.OperationsRegistry=E,e.PACKAGE_NAME=se,e.Repository=class extends ae{constructor(e){super(e)}async createPrefix(t,...r){const a=await te.args(e.OperationKeys.CREATE,this.class,r);if(t=new this.class(t),!1!==a.context.get("ignoreHandlers")&&await W(this,a.context,t,e.OperationKeys.CREATE,e.OperationKeys.ON),!a.context.get("ignoreValidation")){const e=await Promise.resolve(t.hasErrors());if(e)throw new A(e.toString())}return[t,...a.args]}async createAllPrefix(t,...r){const a=await te.args(e.OperationKeys.CREATE,this.class,r),o=!1!==a.context.get("ignoreHandlers"),s=!a.context.get("ignoreValidation");if(t=await Promise.all(t.map(async t=>{const r=new this.class(t);return o&&await W(this,a.context,r,e.OperationKeys.CREATE,e.OperationKeys.ON),r})),s){const e=J(await Promise.all(t.map(e=>Promise.resolve(e.hasErrors()))));if(e)throw new A(e)}return[t,...a.args]}async updatePrefix(t,...a){const o=await te.args(e.OperationKeys.UPDATE,this.class,a),s=!1!==o.context.get("ignoreHandlers"),n=!o.context.get("ignoreValidation"),i=t[this.pk];if(!i)throw new T("No value for the Id is defined under the property "+this.pk);const c=await this.read(i);if(t=r.Model.merge(c,t,this.class),s&&await W(this,o.context,t,e.OperationKeys.UPDATE,e.OperationKeys.ON,c),n){const e=await Promise.resolve(t.hasErrors(c));if(e)throw new A(e.toString())}return[t,...o.args]}async updateAllPrefix(t,...a){const o=await te.args(e.OperationKeys.UPDATE,this.class,a),s=!1!==o.context.get("ignoreHandlers"),n=!o.context.get("ignoreValidation"),i=t.map(e=>{const t=e[this.pk];if(void 0===t)throw new T("No value for the Id is defined under the property "+this.pk);return t}),c=await this.readAll(i,...o.args);if(t=t.map((e,t)=>r.Model.merge(c[t],e,this.class)),s&&await Promise.all(t.map((t,r)=>W(this,o.context,t,e.OperationKeys.UPDATE,e.OperationKeys.ON,c[r]))),n){const e=J(await Promise.all(t.map((e,t)=>Promise.resolve(e.hasErrors(c[t])))));if(e)throw new A(e)}return[t,...o.args]}async readPrefix(e,...t){return super.readPrefix(e,...t)}async readAllPrefix(e,...t){return super.readAllPrefix(e,...t)}async deleteAllPrefix(e,...t){return super.deleteAllPrefix(e,...t)}},e.SerializationError=w,e.UpdateValidationKeys=d,e.UpdateValidator=p,e.VERSION=oe,e.ValidationError=A,e.after=N,e.afterAny=(e,t,r)=>N(h.ALL,e,t,r),e.afterCreate=(e,t,r)=>N(h.CREATE,e,t,r),e.afterCreateUpdate=(e,t,r)=>N(h.CREATE_UPDATE,e,t,r),e.afterDelete=(e,t,r)=>N(h.DELETE,e,t,r),e.afterRead=(e,t,r)=>N(h.READ,e,t,r),e.afterUpdate=(e,t,r)=>N(h.UPDATE,e,t,r),e.composed=(e,t=i,r=!1,a="",o="",s={priority:55})=>G(e,r,t,"values",a,o,s),e.composedFromCreateUpdate=z,e.composedFromKeys=(e,t=i,r=!1,a="",o="",s={priority:55})=>G(e,r,t,"keys",a,o,s),e.enforceDBDecorators=W,e.getDbDecorators=Z,e.getHandlerArgs=R,e.getHandlersDecorators=K,e.getValidatableUpdateProps=_,e.groupDecorators=b,e.hash=q,e.hashOnCreateUpdate=B,e.id=()=>t.apply(r.required(),U(),(e,r)=>t.propMetadata(t.Metadata.key(n.ID,r),{})(e,r)),e.on=I,e.onAny=(e,t,r)=>I(h.ALL,e,t,r),e.onCreate=L,e.onCreateUpdate=v,e.onDelete=(e,t,r)=>I(h.DELETE,e,t,r),e.onRead=(e,t,r)=>I(h.READ,e,t,r),e.onUpdate=S,e.operation=C,e.prefixMethod=(e,t,r,a)=>{const o=a||t.name;e[o]=new Proxy(e[o],{apply:async(e,t,a)=>{let o=r.call(t,...a);return o instanceof Promise&&(o=await o),o=e.call(t,...o),o instanceof Promise&&(o=await o),o}})},e.readonly=U,e.reduceErrorsToPrint=J,e.serialize=()=>t.apply(v(V),N(h.ALL,F),r.type([String,Object]),t.metadata(n.SERIALIZE,{})),e.serializeAfterAll=F,e.serializeOnCreateUpdate=V,e.sortDecorators=x,e.storeHandlerMetadata=k,e.suffixMethod=(e,t,r,a)=>{const o=a||t.name;e[o]=new Proxy(e[o],{apply:async(e,t,a)=>{let o=e.call(t,...a);return o instanceof Promise&&(o=await o),o=r.call(t,...o),o instanceof Promise&&(o=await o),o}})},e.timestamp=(a=h.CREATE_UPDATE,o=c)=>{const s=r.Validation.updateKey(n.TIMESTAMP);return t.Decoration.for(s).define({decorator:(a,o)=>{const i=[r.date(o,l.TIMESTAMP.DATE),r.required(l.TIMESTAMP.REQUIRED),t.propMetadata(r.Validation.key(n.TIMESTAMP),{operation:a,format:o}),I(a,j)];return-1!==a.indexOf(e.OperationKeys.UPDATE)?i.push(t.propMetadata(s,{message:l.TIMESTAMP.INVALID})):i.push(U()),t.apply(...i)},args:[a,o]}).apply()},e.timestampHandler=j,e.transient=()=>t.Decoration.for(n.TRANSIENT).define((e,r)=>{t.propMetadata(n.TRANSIENT,!0)(e.constructor),t.propMetadata(t.Metadata.key(n.TRANSIENT,r),{})(e,r)}).apply(),e.validateCompare=Y,e.validateDecorator=$,e.validateDecorators=H,e.version=()=>{const a=n.VERSION;return t.Decoration.for(a).define(r.type(Number),L(Q(e.OperationKeys.CREATE)),S(Q(e.OperationKeys.UPDATE)),t.propMetadata(a,!0)).apply()},e.versionCreateUpdate=Q,e.wrapMethodWithContext=re},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("@decaf-ts/decorator-validation"),require("tslib"),require("typed-object-accumulator"),require("@decaf-ts/logging")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/decorator-validation","tslib","typed-object-accumulator","@decaf-ts/logging"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["db-decorators"]={},e.decafTsDecoration,e.decafTsDecoratorValidation,e.tslib,e.typedObjectAccumulator,e.decafTsLogging);
2
2
  //# sourceMappingURL=db-decorators.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"db-decorators.cjs","sources":["../src/model/constants.ts","../src/validation/constants.ts","../src/validation/validators/ReadOnlyValidator.ts","../src/validation/validators/TimestampValidator.ts","../src/validation/validators/UpdateValidator.ts","../src/operations/constants.ts","../src/validation/validation.ts","../src/operations/OperationsRegistry.ts","../src/operations/Operations.ts","../src/repository/errors.ts","../src/operations/decorators.ts","../src/validation/decorators.ts","../src/model/validation.ts","../src/model/decorators.ts","../src/repository/utils.ts","../src/overrides/overrides.ts","../src/repository/constants.ts","../src/repository/Context.ts","../src/repository/wrappers.ts","../src/repository/BaseRepository.ts","../src/index.ts","../src/repository/Repository.ts","../src/identity/decorators.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DBKeys","REFLECT","ModelKeys","MODEL","REPOSITORY","CLASS","ID","INDEX","UNIQUE","SERIALIZE","READONLY","TIMESTAMP","TRANSIENT","HASH","COMPOSED","VERSION","ORIGINAL","DefaultSeparator","DEFAULT_TIMESTAMP_FORMAT","DEFAULT_ERROR_MESSAGES","INVALID","REQUIRED","DATE","UpdateValidationKeys","ReadOnlyValidator","Validator","constructor","super","hasErrors","value","args","updateHasErrors","oldValue","message","undefined","isEqual","this","getMessage","exports","__decorate","validator","TimestampValidator","Date","e","UpdateValidator","DecoratorMessages","DEFAULT","acceptedTypes","OperationKeys","ModelOperations","BulkCrudOperationKeys","Validation","updateKey","key","DBOperations","CREATE","READ","UPDATE","DELETE","CREATE_UPDATE","READ_CREATE","ALL","OperationsRegistry","cache","get","target","propKey","operation","accum","name","unshift","Object","values","prototype","getPrototypeOf","proto","register","handler","handlerName","Operations","getHandlerName","Hashing","hash","toString","str","targetName","registry","getOpRegistry","BaseError","Error","msg","code","stack","BadRequestError","ValidationError","InternalError","SerializationError","NotFoundError","ConflictError","DefaultGroupSort","priority","getHandlerArgs","dec","prop","m","props","handlers","getHandlersDecorators","model","decorators","prefix","decs","length","handlerArgs","i","data","push","groupDecorators","grouped","reduce","acc","group","set","Symbol","groupKey","has","existing","Map","groups","Array","from","forEach","combined","map","d","sort","a","b","groupPriority","c","sortDecorators","onCreateUpdate","groupsort","on","onUpdate","onCreate","op","ON","after","AFTER","baseOp","dataToAdd","propertyKey","compoundKey","Metadata","readOperation","handlerKey","mergeData","keys","filter","handle","propMetadata","OPERATIONS","apply","storeHandlerMetadata","params","metadata","readonly","meta","description","async","Decoration","for","define","decorator","innerValidationDecorator","timestampHandler","context","timestamp","serializeOnCreateUpdate","JSON","stringify","serializeAfterAll","parse","getValidatableUpdateProps","propsToIgnore","decoratedProperties","hasOwnProperty","call","includes","validationFor","validateDecorator","newModel","oldModel","toConditionalPromise","decoratorProps","maybeError","validateDecorators","result","decoratorKey","validationErrors","ValidationKeys","LIST","newPropValue","oldPropValue","newValues","Set","oldValues","allowedTypes","class","clazz","customTypes","flat","t","String","toLowerCase","errs","childValue","id","Model","pk","oldListModel","find","el","isModel","Promise","all","then","every","r","allEmpty","promises","resolvedValues","res","val","validateCompare","ValidatableUpdateProps","nestedErrors","propValue","designTypes","designType","getPropDesignTypes","some","TYPE","isArray","propErrors","isConstr","isPropertyModel","instance","Constr","entries","error","ModelErrorDefinition","merged","allSettled","results","parentProp","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","join","status","reason","hashOnCreateUpdate","composedFromCreateUpdate","type","suffix","separator","composed","arg","composedFrom","hashResult","versionCreateUpdate","reduceErrorsToPrint","errors","enforceDBDecorators","repo","getDbDecorators","sortedDecorators","extraPrefix","replace","obj","isTransient","decoratorValidation","previousVersion","exclusions","isAsync","validate","resolve","resolvedErrs","segregate","validatableProperties","transientProps","transient","build","keyValue","constr","idProp","bind","pkProps","merge","extract","assign","decoration","saveOperation","DefaultRepositoryFlags","parentContext","childContexts","ignoredValidationProperties","callArgs","writeOperation","affectedTables","breakOnHandlerError","rebuildWithTransient","ignoreValidation","ignoreHandlers","DefaultContextFactory","Context","accumulate","logger","Logging","ObjectAccumulator","defineProperty","writable","enumerable","configurable","factory","parent","childFrom","overrides","contextual","last","pop","getContext","wrapMethodWithContext","before","method","methodName","Proxy","thisArg","argArray","transformedArgs","BaseRepository","_class","self","create","read","update","delete","createAll","models","createPrefix","contextArgs","createSuffix","createAllPrefix","createAllSuffix","readAll","readSuffix","readPrefix","readAllPrefix","k","readAllSuffix","updateAll","updateSuffix","updatePrefix","updateAllPrefix","updateAllSuffix","deleteAll","deleteSuffix","deletePrefix","deleteAllPrefix","deleteAllSuffix","PACKAGE_NAME","registerLibrary","operations","BLOCK","shouldRunHandlers","shouldValidate","ids","oldModels","required","afterName","beforeName","format","date","indexOf","attribute","Number"],"mappings":"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"}
1
+ {"version":3,"file":"db-decorators.cjs","sources":["../src/model/constants.ts","../src/validation/constants.ts","../src/validation/validators/ReadOnlyValidator.ts","../src/validation/validators/TimestampValidator.ts","../src/validation/validators/UpdateValidator.ts","../src/operations/constants.ts","../src/validation/validation.ts","../src/operations/OperationsRegistry.ts","../src/operations/Operations.ts","../src/repository/errors.ts","../src/operations/decorators.ts","../src/validation/decorators.ts","../src/model/validation.ts","../src/model/decorators.ts","../src/repository/utils.ts","../src/overrides/overrides.ts","../src/repository/constants.ts","../src/repository/Context.ts","../src/repository/wrappers.ts","../src/repository/BaseRepository.ts","../src/index.ts","../src/repository/Repository.ts","../src/identity/decorators.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DBKeys","REFLECT","ModelKeys","MODEL","REPOSITORY","CLASS","ID","INDEX","UNIQUE","SERIALIZE","READONLY","TIMESTAMP","TRANSIENT","HASH","COMPOSED","VERSION","ORIGINAL","DefaultSeparator","DEFAULT_TIMESTAMP_FORMAT","DEFAULT_ERROR_MESSAGES","INVALID","REQUIRED","DATE","UpdateValidationKeys","ReadOnlyValidator","Validator","constructor","super","hasErrors","value","args","updateHasErrors","oldValue","message","undefined","isEqual","this","getMessage","exports","__decorate","validator","TimestampValidator","Date","e","UpdateValidator","DecoratorMessages","DEFAULT","acceptedTypes","OperationKeys","ModelOperations","BulkCrudOperationKeys","Validation","updateKey","key","DBOperations","CREATE","READ","UPDATE","DELETE","CREATE_UPDATE","READ_CREATE","ALL","OperationsRegistry","cache","get","target","propKey","operation","accum","name","unshift","Object","values","prototype","getPrototypeOf","proto","register","handler","handlerName","Operations","getHandlerName","Hashing","hash","toString","str","targetName","registry","getOpRegistry","BaseError","Error","msg","code","stack","BadRequestError","ValidationError","InternalError","SerializationError","NotFoundError","ConflictError","DefaultGroupSort","priority","getHandlerArgs","dec","prop","m","props","handlers","getHandlersDecorators","model","decorators","prefix","decs","length","handlerArgs","i","data","push","groupDecorators","grouped","reduce","acc","group","set","Symbol","groupKey","has","existing","Map","groups","Array","from","forEach","combined","map","d","sort","a","b","groupPriority","c","sortDecorators","onCreateUpdate","groupsort","on","onUpdate","onCreate","op","ON","after","AFTER","baseOp","dataToAdd","propertyKey","compoundKey","Metadata","readOperation","handlerKey","mergeData","keys","filter","handle","propMetadata","OPERATIONS","apply","storeHandlerMetadata","params","metadata","readonly","meta","description","async","Decoration","for","define","decorator","innerValidationDecorator","timestampHandler","context","timestamp","serializeOnCreateUpdate","JSON","stringify","serializeAfterAll","parse","getValidatableUpdateProps","propsToIgnore","decoratedProperties","hasOwnProperty","call","includes","validationFor","validateDecorator","newModel","oldModel","toConditionalPromise","decoratorProps","maybeError","validateDecorators","result","decoratorKey","validationErrors","ValidationKeys","LIST","newPropValue","oldPropValue","newValues","Set","oldValues","allowedTypes","class","clazz","customTypes","flat","t","String","toLowerCase","errs","childValue","id","Model","pk","oldListModel","find","el","isModel","Promise","all","then","every","r","allEmpty","promises","resolvedValues","res","val","validateCompare","ValidatableUpdateProps","nestedErrors","propValue","designTypes","designType","getPropDesignTypes","some","TYPE","isArray","propErrors","isConstr","isPropertyModel","instance","Constr","entries","error","ModelErrorDefinition","merged","allSettled","results","parentProp","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","join","status","reason","hashOnCreateUpdate","composedFromCreateUpdate","type","suffix","separator","composed","arg","composedFrom","hashResult","property","versionCreateUpdate","reduceErrorsToPrint","errors","enforceDBDecorators","repo","getDbDecorators","sortedDecorators","extraPrefix","replace","obj","isTransient","decoratorValidation","previousVersion","exclusions","isAsync","validate","resolve","resolvedErrs","segregate","validatableProperties","transientProps","transient","build","keyValue","constr","idProp","bind","pkProps","merge","extract","assign","decoration","saveOperation","DefaultRepositoryFlags","parentContext","childContexts","ignoredValidationProperties","callArgs","writeOperation","affectedTables","breakOnHandlerError","rebuildWithTransient","ignoreValidation","ignoreHandlers","DefaultContextFactory","Context","accumulate","logger","Logging","ObjectAccumulator","defineProperty","writable","enumerable","configurable","factory","parent","childFrom","overrides","contextual","last","pop","getContext","wrapMethodWithContext","before","method","methodName","Proxy","thisArg","argArray","transformedArgs","BaseRepository","_class","self","create","read","update","delete","createAll","models","createPrefix","contextArgs","createSuffix","createAllPrefix","createAllSuffix","readAll","readSuffix","readPrefix","readAllPrefix","k","readAllSuffix","updateAll","updateSuffix","updatePrefix","updateAllPrefix","updateAllSuffix","deleteAll","deleteSuffix","deletePrefix","deleteAllPrefix","deleteAllSuffix","PACKAGE_NAME","registerLibrary","operations","BLOCK","shouldRunHandlers","shouldValidate","ids","oldModels","required","afterName","beforeName","format","date","indexOf","attribute","Number"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{Metadata as t,propMetadata as e,apply as r,metadata as n,Decoration as s}from"@decaf-ts/decoration";import{ModelKeys as a,validator as o,Validator as i,isEqual as c,DEFAULT_ERROR_MESSAGES as l,Validation as u,Hashing as d,innerValidationDecorator as f,type as p,date as h,required as E,toConditionalPromise as g,ValidationKeys as y,Model as m,ModelErrorDefinition as A,validate as T}from"@decaf-ts/decorator-validation";import{__decorate as w,__metadata as P}from"tslib";import{ObjectAccumulator as O}from"typed-object-accumulator";import{Logging as R}from"@decaf-ts/logging";const D={REFLECT:a.MODEL+".persistence.",REPOSITORY:"repository",CLASS:"_class",ID:"id",INDEX:"index",UNIQUE:"unique",SERIALIZE:"serialize",READONLY:"readonly",TIMESTAMP:"timestamp",TRANSIENT:"transient",HASH:"hash",COMPOSED:"composed",VERSION:"version",ORIGINAL:"__originalObj"},x="_",b="dd/MM/yyyy HH:mm:ss:S",S={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"}},L={REFLECT:"db.update.validation.",TIMESTAMP:D.TIMESTAMP,READONLY:D.READONLY};let v=class extends i{constructor(){super(S.READONLY.INVALID)}hasErrors(t,...e){}updateHasErrors(t,e,r){if(void 0!==t)return c(t,e)?void 0:this.getMessage(r||this.message)}};v=w([o(L.READONLY),P("design:paramtypes",[])],v);let I=class extends i{constructor(){super(S.TIMESTAMP.INVALID)}hasErrors(t,...e){}updateHasErrors(t,e,r){if(void 0!==t){r=r||this.getMessage(r||this.message);try{t=new Date(t),e=new Date(e)}catch(t){return r}return t>e?void 0:r}}};I=w([o(L.TIMESTAMP),P("design:paramtypes",[])],I);class N extends i{constructor(t=l.DEFAULT,...e){super(t,...e)}}var k,C,j;u.updateKey=t=>L.REFLECT+t,(t=>{t.REFLECT="decaf.model.db.operations.",t.CREATE="create",t.READ="read",t.UPDATE="update",t.DELETE="delete",t.ON="on.",t.AFTER="after.",t.BLOCK="block"})(k||(k={})),(t=>{t.OPERATIONS="operations",t.RELATIONS="relations"})(C||(C={})),(t=>{t.CREATE_ALL="createAll",t.READ_ALL="readAll",t.UPDATE_ALL="updateAll",t.DELETE_ALL="deleteAll"})(j||(j={}));const M={CREATE:[k.CREATE],READ:[k.READ],UPDATE:[k.UPDATE],DELETE:[k.DELETE],CREATE_UPDATE:[k.CREATE,k.UPDATE],READ_CREATE:[k.READ,k.CREATE],ALL:[k.CREATE,k.READ,k.UPDATE,k.DELETE]};class U{constructor(){this.cache={}}get(t,e,r,n){let s;n=n||[];try{s="string"==typeof t?t:t.constructor.name,n.unshift(...Object.values(this.cache[s][e][r]||[]))}catch(e){if("string"==typeof t||t===Object.prototype||Object.getPrototypeOf(t)===Object.prototype)return n}let a=Object.getPrototypeOf(t);return a.constructor.name===s&&(a=Object.getPrototypeOf(a)),this.get(a,e,r,n)}register(t,e,r,n){const s=r.constructor.name,a=$.getHandlerName(t);this.cache[s]||(this.cache[s]={}),this.cache[s][n]||(this.cache[s][n]={}),this.cache[s][n][e]||(this.cache[s][n][e]={}),this.cache[s][n][e][a]||(this.cache[s][n][e][a]=t)}}class ${constructor(){}static getHandlerName(t){return t.name?t.name:d.hash(t.toString())}static key(t){return k.REFLECT+t}static get(t,e,r){return $.registry.get(t,e,r)}static getOpRegistry(){return $.registry||($.registry=new U),$.registry}static register(t,e,r,n){$.getOpRegistry().register(t,e,r,n)}}class F extends Error{constructor(t,e,r){if(e instanceof F)return e;super(`[${t}] ${e instanceof Error?e.message:e}`),this.code=r,e instanceof Error&&(this.stack=e.stack)}}class H extends F{constructor(t,e=H.name,r=400){super(e,t,r)}}class V extends H{constructor(t){super(t,V.name,422)}}class _ extends F{constructor(t,e=_.name,r=500){super(e,t,r)}}class Y extends _{constructor(t){super(t,Y.name,500)}}class z extends H{constructor(t){super(t,z.name,404)}}class K extends H{constructor(t){super(t,K.name,409)}}const Q={priority:50},G=(t,e,r,n)=>{const s=r.constructor.name;if(!s)throw new _("Could not determine model class");n=n||{},t.props.handlers[s]&&t.props.handlers[s][e]&&(n={...t.props.handlers[s][e],...n});let a=Object.getPrototypeOf(r);return a===Object.prototype?n:(a.constructor.name===s&&(a=Object.getPrototypeOf(a)),G(t,e,a,n))};function q(t,e,r){const n=[];for(const s in e){const a=e[s];for(const e of a){const{key:a}=e,o=$.get(t,s,r+a);if(!o||!o.length)throw new _(`Could not find registered handler for the operation ${r+a} under property ${s}`);const i=G(e,s,t);if(!i||Object.values(i).length!==o.length)throw new _("Args and handlers length do not match");for(let t=0;t<o.length;t++){const e=i[o[t].name].data;n.push({handler:o[t],data:[e],prop:[s]})}}}return n}function B(t){const e=t.reduce((t,e)=>{if(!e||!e.data||!e.prop)throw new _("Missing decorator properties or data");if(!e.data[0].group)return t.set(Symbol(),e),t;const r=e.data[0].group;if(t.has(r)){const n=t.get(r);t.set(r,{handler:n.handler,data:[...n.data,...e.data],prop:[...n.prop,...e.prop]})}else t.set(r,{...e});return t},new Map),r=Array.from(e.values());return r.forEach(t=>{const e=t.data.map((e,r)=>({data:e,prop:t.prop[r]}));e.sort((t,e)=>(t.data.groupPriority??50)-(e.data.groupPriority??50)),t.data=e.map(t=>t.data),t.prop=e.map(t=>t.prop)}),r}function J(t){return t.sort((t,e)=>(t.data[0].priority??50)-(e.data[0].priority??50)),t}function Z(t,e,r){return nt(M.CREATE_UPDATE,t,e,r)}function W(t,e,r){return nt(M.UPDATE,t,e,r)}function X(t,e,r){return nt(M.CREATE,t,e,r)}function tt(t,e,r){return nt(M.READ,t,e,r)}function et(t,e,r){return nt(M.DELETE,t,e,r)}function rt(t,e,r){return nt(M.ALL,t,e,r)}function nt(t=M.ALL,e,r,n){return dt(k.ON,t,e,r,n)}function st(t,e,r){return ut(M.CREATE_UPDATE,t,e,r)}function at(t,e,r){return ut(M.UPDATE,t,e,r)}function ot(t,e,r){return ut(M.CREATE,t,e,r)}function it(t,e,r){return ut(M.READ,t,e,r)}function ct(t,e,r){return ut(M.DELETE,t,e,r)}function lt(t,e,r){return ut(M.ALL,t,e,r)}function ut(t=M.ALL,e,r,n){return dt(k.AFTER,t,e,r,n)}function dt(n,s=M.ALL,a,o,i=Q){return(c,l)=>{const u=c.constructor.name,d=s.reduce((r,s)=>{const d=n+s;let f=t.readOperation(c.constructor,l,d);f||(f={operation:s,handlers:{}});const p=$.getHandlerName(a);let h=i;if(o){if(Object.keys(o).filter(t=>t in i).length>0)throw new _("Unable to merge groupSort into dataToAdd due to overlaping keys");h={...i,...o}}return f.handlers[u]&&f.handlers[u][l]&&p in f.handlers[u][l]||(f.handlers[u]=f.handlers[u]||{},f.handlers[u][l]=f.handlers[u][l]||{},f.handlers[u][l][p]={data:h},r.push(((t,e)=>(r,n)=>{$.register(e,t,r,n)})(d,a),e(t.key(C.OPERATIONS,l,d),f))),r},[]);return r(...d)(c,l)}}function ft(t,e){return(...r)=>n(t,{args:r,handler:e})}const pt=t=>ft(k.REFLECT+k.BLOCK,(t,e)=>t.includes(e))(t);function ht(t=S.READONLY.INVALID){const e=D.READONLY,r={message:t,description:"defines the attribute as readOnly",async:!1};return s.for(e).define({decorator:f,args:[ht,e,r]}).apply()}async function Et(t,e,r,n){n[r]=t.timestamp}function gt(t=M.CREATE_UPDATE,n=b){const a=u.updateKey(D.TIMESTAMP);return s.for(a).define({decorator:(t,n)=>{const s=[h(n,S.TIMESTAMP.DATE),E(S.TIMESTAMP.REQUIRED),e(u.key(D.TIMESTAMP),{operation:t,format:n}),nt(t,Et)];return-1!==t.indexOf(k.UPDATE)?s.push(e(a,{message:S.TIMESTAMP.INVALID})):s.push(ht()),r(...s)},args:[t,n]}).apply()}async function yt(t,e,r,n){if(n[r])try{n[r]=JSON.stringify(n[r])}catch(t){throw new Y(`Failed to serialize ${r.toString()} property of model ${n.constructor.name}: e`)}}async function mt(t,e,r,n){if(n[r]&&"string"==typeof n[r])try{n[r]=JSON.parse(n[r])}catch(t){throw new Y(`Failed to deserialize ${r.toString()} property of model ${n.constructor.name}: ${t}`)}}function At(){return r(Z(yt),ut(M.ALL,mt),p([String,Object]),n(D.SERIALIZE,{}))}function Tt(){return r(E(),ht(),(r,n)=>e(t.key(D.ID,n),{})(r,n))}function wt(e,r){const n=[];for(const s in e){if(!Object.prototype.hasOwnProperty.call(e,s)||r.includes(s))continue;const a=t.validationFor(e.constructor,s)||{};n.push({prop:s,decorators:a})}return n}function Pt(t,e,r,n,s){const a=u.get(n.key);if(!a)throw Error("Missing validator for "+n.key);if(!a.updateHasErrors)return g(void 0,s);if(!s&&n.async)return g(void 0,s);const o=Object.values(n)||{},i=a.updateHasErrors(t[r],e[r],...o);return g(i,s)}function Ot(t,e,r,n,s){const a={};for(const o in n){const i={...n[o],key:o};if(!s&&i.async)continue;let c=Pt(t,e,r,i,s);if(i.key===y.LIST&&(!c||s)){const n=t[r],a=e[r],o=n instanceof Set?[...n]:n,l=a instanceof Set?[...a]:a;if(o?.length){const t=[i.class||i.clazz||i.customTypes].flat().map(t=>((t=(t="function"!=typeof t||t.name?t:t()).name?t.name:t)+"").toLowerCase()),e=o.map(e=>{const r=m.pk(e,!0);if(!r)return"Failed to find model id";const n=l.find(t=>r===m.pk(t,!0));return m.isModel(e)?e.hasErrors(n):t.includes(typeof e)?void 0:"Value has no validatable type"});if(s)c=Promise.all(e).then(t=>t.every(t=>!t)?void 0:t);else{const t=e.every(t=>!t);c=e.length>0&&!t?e:void 0}}}c&&(a[i.key]=c)}if(!s)return Object.keys(a).length>0?a:void 0;const o=Object.keys(a),i=Object.values(a);return Promise.all(i).then(t=>{const e={};for(let r=0;r<t.length;r++){const n=t[r];void 0!==n&&(e[o[r]]=n)}return Object.keys(e).length>0?e:void 0})}function Rt(e,r,n,...s){const o=wt(r,s),i={},c={};for(const{prop:s,decorators:l}of o){const o=s+"",u=r[s],{designTypes:d,designType:f}=t.getPropDesignTypes(r.constructor,s);if(!d)continue;if(d.some(t=>[Array.name,Set.name].includes(t))){if(!l||!Object.keys(l).includes(y.LIST)){i[o]={[y.TYPE]:`Array or Set property '${o}' requires a @list decorator`};continue}if(u&&!(Array.isArray(u)||u instanceof Set)){i[o]={[y.TYPE]:`Property '${s+""}' must be either an Array or a Set`};continue}}const p=Ot(r,e,o,l,n)||{},h=m.isPropertyModel(r,o);if(null!=u&&h){const t=u,r=(Array.isArray(f)?f:[f]).map(t=>("function"!=typeof t||t.name||(t=t()),m.get(t.name||t))).find(t=>!!t);r&&t instanceof r?c[o]=t.hasErrors(e[s]):(p[y.TYPE]=r?"Value must be an instance of "+r.name:`Unable to verify type consistency, missing model registry for ${d.toString()} on prop ${o}`,delete p[a.TYPE])}(Object.keys(p).length>0||n)&&(i[o]=p),n||Object.entries(c[o]||{}).forEach(([t,e])=>{void 0!==e&&(i[`${o}.${t}`]=e)})}if(!n)return Object.keys(i).length>0?new A(i):void 0;const l=i,u=Object.keys(l),d=Object.values(l);return Promise.allSettled(d).then(async t=>{const e={};for(const[t,r]of Object.entries(c)){const n=await r;n&&Object.entries(n).forEach(([r,n])=>{void 0!==n&&(e[[t,r].join(".")]=n)})}for(let r=0;r<t.length;r++){const n=u[r],s=t[r];"fulfilled"===s.status&&void 0!==s.value?e[n]=s.value:"rejected"===s.status&&(e[n]=s.reason instanceof Error?s.reason.message:(s.reason||"Validation failed")+"")}return Object.keys(e).length>0?new A(e):void 0})}function Dt(t,e,r,n,s){if(void 0===n[r])return;const a=d.hash(n[r]);s&&n[r]===a||(n[r]=a)}function xt(){return r(Z(Dt),e(D.HASH,{}))}function bt(t,e,r,n){try{const{args:t,type:s,prefix:a,suffix:o,separator:i}=e,c=t.map(e=>{if(!(e in n))throw new _(`Property ${e} not found to compose from`);if("keys"===s)return e;if(void 0===n[e])throw new _(`Property ${t} does not contain a value to compose from`);return n[e].toString()});a&&c.unshift(a),o&&c.push(o),n[r]=c.join(i)}catch(t){throw new _("Failed to compose value: "+t)}}function St(t,n=!1,s=x,a="values",o="",i="",c={priority:55}){const l={args:t,hashResult:n,separator:s,type:a,prefix:o,suffix:i},u=[Z(bt,l,c),e(D.COMPOSED,l)];return n&&u.push(xt()),r(...u)}function Lt(t,e=x,r=!1,n="",s="",a={priority:55}){return St(t,r,e,"keys",n,s,a)}function vt(t,e=x,r=!1,n="",s="",a={priority:55}){return St(t,r,e,"values",n,s,a)}function It(t){return(e,r,n,s)=>{try{switch(t){case k.CREATE:s[n]=1;break;case k.UPDATE:s[n]++;break;default:throw new _("Invalid operation: "+t)}}catch(t){throw new _("Failed to update version: "+t)}}}function Nt(){const t=D.VERSION;return s.for(t).define(p(Number),X(It(k.CREATE)),W(It(k.UPDATE)),e(t,!0)).apply()}function kt(){return s.for(D.TRANSIENT).define((r,n)=>{e(D.TRANSIENT,!0)(r.constructor),e(t.key(D.TRANSIENT,n),{})(r,n)}).apply()}function Ct(t){return t.reduce((t,e,r)=>(e&&(t="string"==typeof t?t+`\n - ${r}: ${e.toString()}`:` - ${r}: ${e.toString()}`),t),void 0)}async function jt(t,e,r,n,s,a){const o=Mt(r,n,s);if(!o)return;const i=J(B(q(r,o,s)));for(const o of i){const i=[e,o.data.length>1?o.data:o.data[0],o.prop.length>1?o.prop:o.prop[0],r];if(n===k.UPDATE&&s===k.ON){if(!a)throw new _("Missing old model for update operation");i.push(a)}try{await o.handler.apply(t,i)}catch(t){const n=`Failed to execute handler ${o.handler.name} for ${o.prop} on ${r.constructor.name} due to error: ${t}`;if(e.get("breakOnHandlerError"))throw new _(n)}}}function Mt(e,r,n){const s=n?.replace(/[.]$/,""),a=t.get(e.constructor,C.OPERATIONS);if(a)return Object.keys(a).reduce((t,e)=>{const n=s?a[e][s]||{}:a[e],o=Object.keys(n).filter(t=>t===r),i=[];for(const t of o)i.push({key:t,props:n[t]});return i&&i.length&&(t||(t={}),t[e]=i),t},void 0)}m.prototype.isTransient=function(){return t.isTransient(this)},m.prototype.hasErrors=function(t,...e){!t||t instanceof m||(e.unshift(t),t=void 0);const r=this.isAsync(),n=T(this,r,...e);return r?Promise.resolve(n).then(n=>n||!t?n:Rt(t,this,r,...e)):n||!t?n:Rt(t,this,r,...e)},m.prototype.segregate=function(){return m.segregate(this)},m.segregate=e=>{if(!t.isTransient(e))return{model:e};const r=t.validatableProperties(e.constructor),n=t.get(e.constructor,D.TRANSIENT),s={model:{},transient:{}};for(const t of r)if(Object.keys(n).includes(t)){s.transient=s.transient||{};try{s.transient[t]=e[t]}catch(e){throw new Y(`Failed to serialize transient property ${t}: ${e}`)}}else s.model=s.model||{},s.model[t]=e[t];return s.model=m.build(s.model,e.constructor.name),s},m.pk=((e,r=!1)=>{if(!e)throw Error("No model was provided");const n=e instanceof m?e.constructor:e,s=t.get(n,D.ID);if(!s)throw Error("No Id property defined for model "+(n?.name||"Unknown Model"));const a=Object.keys(s)[0];if(!r)return a;if(e instanceof m)return e[a];throw Error("Cannot get the value of the pk from the constructor")}).bind(m),m.pkProps=(e=>t.get(e,t.key(D.ID,m.pk(e)))).bind(m),m.isTransient=(e=>t.isTransient(e)).bind(m),m.merge=((t,e,r)=>{const n=t=>Object.entries(t).reduce((t,[e,r])=>(void 0!==r&&(t[e]=r),t),{});return new(r=r||t.constructor)(Object.assign({},n(t),n(e)))}).bind(m),t.saveOperation=((e,r,n,s)=>{r&&t.set(e,t.key(C.OPERATIONS,r,n),s)}).bind(t),t.readOperation=((e,r,n)=>{if(r&&n)return t.get(e,t.key(C.OPERATIONS,r,n))}).bind(t),t.isTransient=(e=>!!t.get("function"!=typeof e?e.constructor:e,D.TRANSIENT)).bind(t);const Ut={parentContext:void 0,childContexts:[],ignoredValidationProperties:[],callArgs:[],writeOperation:!1,affectedTables:[],operation:void 0,breakOnHandlerError:!0,rebuildWithTransient:!0,ignoreValidation:!1,ignoreHandlers:!0},$t=t=>(new Ft).accumulate(Object.assign({},t,{timestamp:new Date,logger:t.logger||R.get()}));class Ft{constructor(){this.cache=new O,Object.defineProperty(this,"cache",{value:new O,writable:!1,enumerable:!1,configurable:!0})}static{this.factory=$t}accumulate(t){return Object.defineProperty(this,"cache",{value:this.cache.accumulate(t),writable:!1,enumerable:!1,configurable:!0}),this}get logger(){return this.cache.logger}get timestamp(){return this.cache.timestamp}get(t){try{return this.cache.get(t)}catch(e){const r=this.cache.parentContext;if(r)return r.get(t);throw e}}static childFrom(t,e){return Ft.factory(Object.assign({},t.cache,e||{}))}static async from(t,e,r,...n){return Ft.factory(Object.assign({},Ut,e,{operation:t,model:r,logger:e.logger||R.get()}))}static async args(t,e,r,n,s){const a=r.pop();async function o(){return n?n.context(t,s||{},e,...r):Ft.from(t,s||{},e,...r)}let i;return a?a instanceof Ft?(i=a,r.push(a)):(r.push(a),i=await o(),r.push(i)):(i=await o(),r.push(i)),{context:i,args:r}}}function Ht(t,e,r,n){const s=n||e.name;t[s]=new Proxy(t[s],{apply:async(t,e,n)=>{let s=r.call(e,...n);return s instanceof Promise&&(s=await s),s=t.call(e,...s),s instanceof Promise&&(s=await s),s}})}function Vt(t,e,r,n){const s=n||e.name;t[s]=new Proxy(t[s],{apply:async(t,e,n)=>{let s=t.call(e,...n);return s instanceof Promise&&(s=await s),s=r.call(e,...s),s instanceof Promise&&(s=await s),s}})}function _t(t,e,r,n,s){const a=s||r.name;t[a]=new Proxy(t[a],{apply:async(t,r,s)=>{let a=e.call(r,...s);a instanceof Promise&&(a=await a);const o=a[a.length-1];if(!(o instanceof Ft))throw new _("Missing a context");let i=t.call(r,...a);return i instanceof Promise&&(i=await i),i=n.call(r,i,o),i instanceof Promise&&(i=await i),i}})}class Yt{get class(){if(!this._class)throw new _("No class definition found for this repository");return this._class}get pk(){return m.pk(this.class)}get pkProps(){return m.pkProps(this.class)}constructor(t){t&&(this._class=t);const e=this;[this.create,this.read,this.update,this.delete].forEach(t=>{const r=t.name;_t(e,e[r+"Prefix"],t,e[r+"Suffix"])})}async createAll(t,...e){return Promise.all(t.map(t=>this.create(t,...e)))}async createPrefix(t,...e){const r=await Ft.args(k.CREATE,this.class,e);return t=new this.class(t),await jt(this,r.context,t,k.CREATE,k.ON),[t,...r.args]}async createSuffix(t,e){return await jt(this,e,t,k.CREATE,k.AFTER),t}async createAllPrefix(t,...e){const r=await Ft.args(k.CREATE,this.class,e);return await Promise.all(t.map(async t=>(t=new this.class(t),await jt(this,r.context,t,k.CREATE,k.ON),t))),[t,...r.args]}async createAllSuffix(t,e){return await Promise.all(t.map(t=>jt(this,e,t,k.CREATE,k.AFTER))),t}async readAll(t,...e){return await Promise.all(t.map(t=>this.read(t,...e)))}async readSuffix(t,e){return await jt(this,e,t,k.READ,k.AFTER),t}async readPrefix(t,...e){const r=await Ft.args(k.READ,this.class,e),n=new this.class;return n[this.pk]=t,await jt(this,r.context,n,k.READ,k.ON),[t,...r.args]}async readAllPrefix(t,...e){const r=await Ft.args(k.READ,this.class,e);return await Promise.all(t.map(async t=>{const e=new this.class;return e[this.pk]=t,jt(this,r.context,e,k.READ,k.ON)})),[t,...r.args]}async readAllSuffix(t,e){return await Promise.all(t.map(t=>jt(this,e,t,k.READ,k.AFTER))),t}async updateAll(t,...e){return Promise.all(t.map(t=>this.update(t,...e)))}async updateSuffix(t,e){return await jt(this,e,t,k.UPDATE,k.AFTER),t}async updatePrefix(t,...e){const r=await Ft.args(k.UPDATE,this.class,e),n=t[this.pk];if(!n)throw new _("No value for the Id is defined under the property "+this.pk);const s=await this.read(n);return await jt(this,r.context,t,k.UPDATE,k.ON,s),[t,...r.args]}async updateAllPrefix(t,...e){const r=await Ft.args(k.UPDATE,this.class,e);return await Promise.all(t.map(t=>(t=new this.class(t),jt(this,r.context,t,k.UPDATE,k.ON),t))),[t,...r.args]}async updateAllSuffix(t,e){return await Promise.all(t.map(t=>jt(this,e,t,k.UPDATE,k.AFTER))),t}async deleteAll(t,...e){return Promise.all(t.map(t=>this.delete(t,...e)))}async deleteSuffix(t,e){return await jt(this,e,t,k.DELETE,k.AFTER),t}async deletePrefix(t,...e){const r=await Ft.args(k.DELETE,this.class,e),n=await this.read(t,...r.args);return await jt(this,r.context,n,k.DELETE,k.ON),[t,...r.args]}async deleteAllPrefix(t,...e){const r=await Ft.args(k.DELETE,this.class,e),n=await this.readAll(t,...r.args);return await Promise.all(n.map(async t=>jt(this,r.context,t,k.DELETE,k.ON))),[t,...r.args]}async deleteAllSuffix(t,e){return await Promise.all(t.map(t=>jt(this,e,t,k.DELETE,k.AFTER))),t}toString(){return this.class.name+" Repository"}}class zt extends Yt{constructor(t){super(t)}async createPrefix(t,...e){const r=await Ft.args(k.CREATE,this.class,e);if(t=new this.class(t),!1!==r.context.get("ignoreHandlers")&&await jt(this,r.context,t,k.CREATE,k.ON),!r.context.get("ignoreValidation")){const e=await Promise.resolve(t.hasErrors());if(e)throw new V(e.toString())}return[t,...r.args]}async createAllPrefix(t,...e){const r=await Ft.args(k.CREATE,this.class,e),n=!1!==r.context.get("ignoreHandlers"),s=!r.context.get("ignoreValidation");if(t=await Promise.all(t.map(async t=>{const e=new this.class(t);return n&&await jt(this,r.context,e,k.CREATE,k.ON),e})),s){const e=Ct(await Promise.all(t.map(t=>Promise.resolve(t.hasErrors()))));if(e)throw new V(e)}return[t,...r.args]}async updatePrefix(t,...e){const r=await Ft.args(k.UPDATE,this.class,e),n=!1!==r.context.get("ignoreHandlers"),s=!r.context.get("ignoreValidation"),a=t[this.pk];if(!a)throw new _("No value for the Id is defined under the property "+this.pk);const o=await this.read(a);if(t=m.merge(o,t,this.class),n&&await jt(this,r.context,t,k.UPDATE,k.ON,o),s){const e=await Promise.resolve(t.hasErrors(o));if(e)throw new V(e.toString())}return[t,...r.args]}async updateAllPrefix(t,...e){const r=await Ft.args(k.UPDATE,this.class,e),n=!1!==r.context.get("ignoreHandlers"),s=!r.context.get("ignoreValidation"),a=t.map(t=>{const e=t[this.pk];if(void 0===e)throw new _("No value for the Id is defined under the property "+this.pk);return e}),o=await this.readAll(a,...r.args);if(t=t.map((t,e)=>m.merge(o[e],t,this.class)),n&&await Promise.all(t.map((t,e)=>jt(this,r.context,t,k.UPDATE,k.ON,o[e]))),s){const e=Ct(await Promise.all(t.map((t,e)=>Promise.resolve(t.hasErrors(o[e])))));if(e)throw new V(e)}return[t,...r.args]}async readPrefix(t,...e){return super.readPrefix(t,...e)}async readAllPrefix(t,...e){return super.readAllPrefix(t,...e)}async deleteAllPrefix(t,...e){return super.deleteAllPrefix(t,...e)}}const Kt="##VERSION##",Qt="##PACKAGE##";t.registerLibrary(Qt,Kt);export{H as BadRequestError,F as BaseError,Yt as BaseRepository,pt as BlockOperations,j as BulkCrudOperationKeys,K as ConflictError,Ft as Context,D as DBKeys,M as DBOperations,S as DEFAULT_ERROR_MESSAGES,b as DEFAULT_TIMESTAMP_FORMAT,$t as DefaultContextFactory,Ut as DefaultRepositoryFlags,x as DefaultSeparator,_ as InternalError,C as ModelOperations,z as NotFoundError,k as OperationKeys,$ as Operations,U as OperationsRegistry,Qt as PACKAGE_NAME,v as ReadOnlyValidator,zt as Repository,Y as SerializationError,I as TimestampValidator,L as UpdateValidationKeys,N as UpdateValidator,Kt as VERSION,V as ValidationError,ut as after,lt as afterAny,ot as afterCreate,st as afterCreateUpdate,ct as afterDelete,it as afterRead,at as afterUpdate,vt as composed,bt as composedFromCreateUpdate,Lt as composedFromKeys,jt as enforceDBDecorators,Mt as getDbDecorators,G as getHandlerArgs,q as getHandlersDecorators,wt as getValidatableUpdateProps,B as groupDecorators,xt as hash,Dt as hashOnCreateUpdate,Tt as id,nt as on,rt as onAny,X as onCreate,Z as onCreateUpdate,et as onDelete,tt as onRead,W as onUpdate,dt as operation,Ht as prefixMethod,ht as readonly,Ct as reduceErrorsToPrint,At as serialize,mt as serializeAfterAll,yt as serializeOnCreateUpdate,J as sortDecorators,ft as storeHandlerMetadata,Vt as suffixMethod,gt as timestamp,Et as timestampHandler,kt as transient,Rt as validateCompare,Pt as validateDecorator,Ot as validateDecorators,Nt as version,It as versionCreateUpdate,_t as wrapMethodWithContext};
1
+ import{Metadata as t,propMetadata as e,apply as r,metadata as n,Decoration as s}from"@decaf-ts/decoration";import{ModelKeys as a,validator as o,Validator as i,isEqual as c,DEFAULT_ERROR_MESSAGES as l,Validation as u,Hashing as d,innerValidationDecorator as f,type as p,date as h,required as E,toConditionalPromise as g,ValidationKeys as y,Model as m,ModelErrorDefinition as A,validate as T}from"@decaf-ts/decorator-validation";import{__decorate as w,__metadata as P}from"tslib";import{ObjectAccumulator as O}from"typed-object-accumulator";import{Logging as R}from"@decaf-ts/logging";const D={REFLECT:a.MODEL+".persistence.",REPOSITORY:"repository",CLASS:"_class",ID:"id",INDEX:"index",UNIQUE:"unique",SERIALIZE:"serialize",READONLY:"readonly",TIMESTAMP:"timestamp",TRANSIENT:"transient",HASH:"hash",COMPOSED:"composed",VERSION:"version",ORIGINAL:"__originalObj"},x="_",b="dd/MM/yyyy HH:mm:ss:S",S={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"}},L={REFLECT:"db.update.validation.",TIMESTAMP:D.TIMESTAMP,READONLY:D.READONLY};let v=class extends i{constructor(){super(S.READONLY.INVALID)}hasErrors(t,...e){}updateHasErrors(t,e,r){if(void 0!==t)return c(t,e)?void 0:this.getMessage(r||this.message)}};v=w([o(L.READONLY),P("design:paramtypes",[])],v);let I=class extends i{constructor(){super(S.TIMESTAMP.INVALID)}hasErrors(t,...e){}updateHasErrors(t,e,r){if(void 0!==t){r=r||this.getMessage(r||this.message);try{t=new Date(t),e=new Date(e)}catch(t){return r}return t>e?void 0:r}}};I=w([o(L.TIMESTAMP),P("design:paramtypes",[])],I);class N extends i{constructor(t=l.DEFAULT,...e){super(t,...e)}}var k,C,j;u.updateKey=t=>L.REFLECT+t,(t=>{t.REFLECT="decaf.model.db.operations.",t.CREATE="create",t.READ="read",t.UPDATE="update",t.DELETE="delete",t.ON="on.",t.AFTER="after.",t.BLOCK="block"})(k||(k={})),(t=>{t.OPERATIONS="operations",t.RELATIONS="relations"})(C||(C={})),(t=>{t.CREATE_ALL="createAll",t.READ_ALL="readAll",t.UPDATE_ALL="updateAll",t.DELETE_ALL="deleteAll"})(j||(j={}));const M={CREATE:[k.CREATE],READ:[k.READ],UPDATE:[k.UPDATE],DELETE:[k.DELETE],CREATE_UPDATE:[k.CREATE,k.UPDATE],READ_CREATE:[k.READ,k.CREATE],ALL:[k.CREATE,k.READ,k.UPDATE,k.DELETE]};class U{constructor(){this.cache={}}get(t,e,r,n){let s;n=n||[];try{s="string"==typeof t?t:t.constructor.name,n.unshift(...Object.values(this.cache[s][e][r]||[]))}catch(e){if("string"==typeof t||t===Object.prototype||Object.getPrototypeOf(t)===Object.prototype)return n}let a=Object.getPrototypeOf(t);return a.constructor.name===s&&(a=Object.getPrototypeOf(a)),this.get(a,e,r,n)}register(t,e,r,n){const s=r.constructor.name,a=$.getHandlerName(t);this.cache[s]||(this.cache[s]={}),this.cache[s][n]||(this.cache[s][n]={}),this.cache[s][n][e]||(this.cache[s][n][e]={}),this.cache[s][n][e][a]||(this.cache[s][n][e][a]=t)}}class ${constructor(){}static getHandlerName(t){return t.name?t.name:d.hash(t.toString())}static key(t){return k.REFLECT+t}static get(t,e,r){return $.registry.get(t,e,r)}static getOpRegistry(){return $.registry||($.registry=new U),$.registry}static register(t,e,r,n){$.getOpRegistry().register(t,e,r,n)}}class F extends Error{constructor(t,e,r){if(e instanceof F)return e;super(`[${t}] ${e instanceof Error?e.message:e}`),this.code=r,e instanceof Error&&(this.stack=e.stack)}}class H extends F{constructor(t,e=H.name,r=400){super(e,t,r)}}class V extends H{constructor(t){super(t,V.name,422)}}class _ extends F{constructor(t,e=_.name,r=500){super(e,t,r)}}class Y extends _{constructor(t){super(t,Y.name,500)}}class z extends H{constructor(t){super(t,z.name,404)}}class K extends H{constructor(t){super(t,K.name,409)}}const Q={priority:50},G=(t,e,r,n)=>{const s=r.constructor.name;if(!s)throw new _("Could not determine model class");n=n||{},t.props.handlers[s]&&t.props.handlers[s][e]&&(n={...t.props.handlers[s][e],...n});let a=Object.getPrototypeOf(r);return a===Object.prototype?n:(a.constructor.name===s&&(a=Object.getPrototypeOf(a)),G(t,e,a,n))};function q(t,e,r){const n=[];for(const s in e){const a=e[s];for(const e of a){const{key:a}=e,o=$.get(t,s,r+a);if(!o||!o.length)throw new _(`Could not find registered handler for the operation ${r+a} under property ${s}`);const i=G(e,s,t);if(!i||Object.values(i).length!==o.length)throw new _("Args and handlers length do not match");for(let t=0;t<o.length;t++){const e=i[o[t].name].data;n.push({handler:o[t],data:[e],prop:[s]})}}}return n}function B(t){const e=t.reduce((t,e)=>{if(!e||!e.data||!e.prop)throw new _("Missing decorator properties or data");if(!e.data[0].group)return t.set(Symbol(),e),t;const r=e.data[0].group;if(t.has(r)){const n=t.get(r);t.set(r,{handler:n.handler,data:[...n.data,...e.data],prop:[...n.prop,...e.prop]})}else t.set(r,{...e});return t},new Map),r=Array.from(e.values());return r.forEach(t=>{const e=t.data.map((e,r)=>({data:e,prop:t.prop[r]}));e.sort((t,e)=>(t.data.groupPriority??50)-(e.data.groupPriority??50)),t.data=e.map(t=>t.data),t.prop=e.map(t=>t.prop)}),r}function J(t){return t.sort((t,e)=>(t.data[0].priority??50)-(e.data[0].priority??50)),t}function Z(t,e,r){return nt(M.CREATE_UPDATE,t,e,r)}function W(t,e,r){return nt(M.UPDATE,t,e,r)}function X(t,e,r){return nt(M.CREATE,t,e,r)}function tt(t,e,r){return nt(M.READ,t,e,r)}function et(t,e,r){return nt(M.DELETE,t,e,r)}function rt(t,e,r){return nt(M.ALL,t,e,r)}function nt(t=M.ALL,e,r,n){return dt(k.ON,t,e,r,n)}function st(t,e,r){return ut(M.CREATE_UPDATE,t,e,r)}function at(t,e,r){return ut(M.UPDATE,t,e,r)}function ot(t,e,r){return ut(M.CREATE,t,e,r)}function it(t,e,r){return ut(M.READ,t,e,r)}function ct(t,e,r){return ut(M.DELETE,t,e,r)}function lt(t,e,r){return ut(M.ALL,t,e,r)}function ut(t=M.ALL,e,r,n){return dt(k.AFTER,t,e,r,n)}function dt(n,s=M.ALL,a,o,i=Q){return(c,l)=>{const u=c.constructor.name,d=s.reduce((r,s)=>{const d=n+s;let f=t.readOperation(c.constructor,l,d);f||(f={operation:s,handlers:{}});const p=$.getHandlerName(a);let h=i;if(o){if(Object.keys(o).filter(t=>t in i).length>0)throw new _("Unable to merge groupSort into dataToAdd due to overlaping keys");h={...i,...o}}return f.handlers[u]&&f.handlers[u][l]&&p in f.handlers[u][l]||(f.handlers[u]=f.handlers[u]||{},f.handlers[u][l]=f.handlers[u][l]||{},f.handlers[u][l][p]={data:h},r.push(((t,e)=>(r,n)=>{$.register(e,t,r,n)})(d,a),e(t.key(C.OPERATIONS,l,d),f))),r},[]);return r(...d)(c,l)}}function ft(t,e){return(...r)=>n(t,{args:r,handler:e})}const pt=t=>ft(k.REFLECT+k.BLOCK,(t,e)=>t.includes(e))(t);function ht(t=S.READONLY.INVALID){const e=D.READONLY,r={message:t,description:"defines the attribute as readOnly",async:!1};return s.for(e).define({decorator:f,args:[ht,e,r]}).apply()}async function Et(t,e,r,n){n[r]=t.timestamp}function gt(t=M.CREATE_UPDATE,n=b){const a=u.updateKey(D.TIMESTAMP);return s.for(a).define({decorator:(t,n)=>{const s=[h(n,S.TIMESTAMP.DATE),E(S.TIMESTAMP.REQUIRED),e(u.key(D.TIMESTAMP),{operation:t,format:n}),nt(t,Et)];return-1!==t.indexOf(k.UPDATE)?s.push(e(a,{message:S.TIMESTAMP.INVALID})):s.push(ht()),r(...s)},args:[t,n]}).apply()}async function yt(t,e,r,n){if(n[r])try{n[r]=JSON.stringify(n[r])}catch(t){throw new Y(`Failed to serialize ${r.toString()} property of model ${n.constructor.name}: e`)}}async function mt(t,e,r,n){if(n[r]&&"string"==typeof n[r])try{n[r]=JSON.parse(n[r])}catch(t){throw new Y(`Failed to deserialize ${r.toString()} property of model ${n.constructor.name}: ${t}`)}}function At(){return r(Z(yt),ut(M.ALL,mt),p([String,Object]),n(D.SERIALIZE,{}))}function Tt(){return r(E(),ht(),(r,n)=>e(t.key(D.ID,n),{})(r,n))}function wt(e,r){const n=[];for(const s in e){if(!Object.prototype.hasOwnProperty.call(e,s)||r.includes(s))continue;const a=t.validationFor(e.constructor,s)||{};n.push({prop:s,decorators:a})}return n}function Pt(t,e,r,n,s){const a=u.get(n.key);if(!a)throw Error("Missing validator for "+n.key);if(!a.updateHasErrors)return g(void 0,s);if(!s&&n.async)return g(void 0,s);const o=Object.values(n)||{},i=a.updateHasErrors(t[r],e[r],...o);return g(i,s)}function Ot(t,e,r,n,s){const a={};for(const o in n){const i={...n[o],key:o};if(!s&&i.async)continue;let c=Pt(t,e,r,i,s);if(i.key===y.LIST&&(!c||s)){const n=t[r],a=e[r],o=n instanceof Set?[...n]:n,l=a instanceof Set?[...a]:a;if(o?.length){const t=[i.class||i.clazz||i.customTypes].flat().map(t=>((t=(t="function"!=typeof t||t.name?t:t()).name?t.name:t)+"").toLowerCase()),e=o.map(e=>{const r=m.pk(e,!0);if(!r)return"Failed to find model id";const n=l.find(t=>r===m.pk(t,!0));return m.isModel(e)?e.hasErrors(n):t.includes(typeof e)?void 0:"Value has no validatable type"});if(s)c=Promise.all(e).then(t=>t.every(t=>!t)?void 0:t);else{const t=e.every(t=>!t);c=e.length>0&&!t?e:void 0}}}c&&(a[i.key]=c)}if(!s)return Object.keys(a).length>0?a:void 0;const o=Object.keys(a),i=Object.values(a);return Promise.all(i).then(t=>{const e={};for(let r=0;r<t.length;r++){const n=t[r];void 0!==n&&(e[o[r]]=n)}return Object.keys(e).length>0?e:void 0})}function Rt(e,r,n,...s){const o=wt(r,s),i={},c={};for(const{prop:s,decorators:l}of o){const o=s+"",u=r[s],{designTypes:d,designType:f}=t.getPropDesignTypes(r.constructor,s);if(!d)continue;if(d.some(t=>[Array.name,Set.name].includes(t))){if(!l||!Object.keys(l).includes(y.LIST)){i[o]={[y.TYPE]:`Array or Set property '${o}' requires a @list decorator`};continue}if(u&&!(Array.isArray(u)||u instanceof Set)){i[o]={[y.TYPE]:`Property '${s+""}' must be either an Array or a Set`};continue}}const p=Ot(r,e,o,l,n)||{},h=m.isPropertyModel(r,o);if(null!=u&&h){const t=u,r=(Array.isArray(f)?f:[f]).map(t=>("function"!=typeof t||t.name||(t=t()),m.get(t.name||t))).find(t=>!!t);r&&t instanceof r?c[o]=t.hasErrors(e[s]):(p[y.TYPE]=r?"Value must be an instance of "+r.name:`Unable to verify type consistency, missing model registry for ${d.toString()} on prop ${o}`,delete p[a.TYPE])}(Object.keys(p).length>0||n)&&(i[o]=p),n||Object.entries(c[o]||{}).forEach(([t,e])=>{void 0!==e&&(i[`${o}.${t}`]=e)})}if(!n)return Object.keys(i).length>0?new A(i):void 0;const l=i,u=Object.keys(l),d=Object.values(l);return Promise.allSettled(d).then(async t=>{const e={};for(const[t,r]of Object.entries(c)){const n=await r;n&&Object.entries(n).forEach(([r,n])=>{void 0!==n&&(e[[t,r].join(".")]=n)})}for(let r=0;r<t.length;r++){const n=u[r],s=t[r];"fulfilled"===s.status&&void 0!==s.value?e[n]=s.value:"rejected"===s.status&&(e[n]=s.reason instanceof Error?s.reason.message:(s.reason||"Validation failed")+"")}return Object.keys(e).length>0?new A(e):void 0})}function Dt(t,e,r,n,s){if(void 0===n[r])return;const a=d.hash(n[r]);s&&n[r]===a||(n[r]=a)}function xt(){return r(Z(Dt),e(D.HASH,{}))}function bt(t,e,r,n){try{const{args:t,type:s,prefix:a,suffix:o,separator:i}=e,c=t.map(e=>{if(!(e in n))throw new _(`Property ${e} not found to compose from`);if("keys"===s)return e;if(void 0===n[e])throw new _(`Property ${t} does not contain a value to compose from`);return n[e].toString()});a&&c.unshift(a),o&&c.push(o),n[r]=c.join(i)}catch(t){throw new _("Failed to compose value: "+t)}}function St(n,s=!1,a=x,o="values",i="",c="",l={priority:55}){return(u,d)=>{const f={args:n,hashResult:s,separator:a,type:o,prefix:i,suffix:c},p=[Z(bt,f,l),e(t.key(D.COMPOSED,d),f)];return s&&p.push(xt()),r(...p)(u,d)}}function Lt(t,e=x,r=!1,n="",s="",a={priority:55}){return St(t,r,e,"keys",n,s,a)}function vt(t,e=x,r=!1,n="",s="",a={priority:55}){return St(t,r,e,"values",n,s,a)}function It(t){return(e,r,n,s)=>{try{switch(t){case k.CREATE:s[n]=1;break;case k.UPDATE:s[n]++;break;default:throw new _("Invalid operation: "+t)}}catch(t){throw new _("Failed to update version: "+t)}}}function Nt(){const t=D.VERSION;return s.for(t).define(p(Number),X(It(k.CREATE)),W(It(k.UPDATE)),e(t,!0)).apply()}function kt(){return s.for(D.TRANSIENT).define((r,n)=>{e(D.TRANSIENT,!0)(r.constructor),e(t.key(D.TRANSIENT,n),{})(r,n)}).apply()}function Ct(t){return t.reduce((t,e,r)=>(e&&(t="string"==typeof t?t+`\n - ${r}: ${e.toString()}`:` - ${r}: ${e.toString()}`),t),void 0)}async function jt(t,e,r,n,s,a){const o=Mt(r,n,s);if(!o)return;const i=J(B(q(r,o,s)));for(const o of i){const i=[e,o.data.length>1?o.data:o.data[0],o.prop.length>1?o.prop:o.prop[0],r];if(n===k.UPDATE&&s===k.ON){if(!a)throw new _("Missing old model for update operation");i.push(a)}try{await o.handler.apply(t,i)}catch(t){const n=`Failed to execute handler ${o.handler.name} for ${o.prop} on ${r.constructor.name} due to error: ${t}`;if(e.get("breakOnHandlerError"))throw new _(n)}}}function Mt(e,r,n){const s=n?.replace(/[.]$/,""),a=t.get(e.constructor,C.OPERATIONS);if(a)return Object.keys(a).reduce((t,e)=>{const n=s?a[e][s]||{}:a[e],o=Object.keys(n).filter(t=>t===r),i=[];for(const t of o)i.push({key:t,props:n[t]});return i&&i.length&&(t||(t={}),t[e]=i),t},void 0)}m.prototype.isTransient=function(){return t.isTransient(this)},m.prototype.hasErrors=function(t,...e){!t||t instanceof m||(e.unshift(t),t=void 0);const r=this.isAsync(),n=T(this,r,...e);return r?Promise.resolve(n).then(n=>n||!t?n:Rt(t,this,r,...e)):n||!t?n:Rt(t,this,r,...e)},m.prototype.segregate=function(){return m.segregate(this)},m.segregate=e=>{if(!t.isTransient(e))return{model:e};const r=t.validatableProperties(e.constructor),n=t.get(e.constructor,D.TRANSIENT),s={model:{},transient:{}};for(const t of r)if(Object.keys(n).includes(t)){s.transient=s.transient||{};try{s.transient[t]=e[t]}catch(e){throw new Y(`Failed to serialize transient property ${t}: ${e}`)}}else s.model=s.model||{},s.model[t]=e[t];return s.model=m.build(s.model,e.constructor.name),s},m.pk=((e,r=!1)=>{if(!e)throw Error("No model was provided");const n=e instanceof m?e.constructor:e,s=t.get(n,D.ID);if(!s)throw Error("No Id property defined for model "+(n?.name||"Unknown Model"));const a=Object.keys(s)[0];if(!r)return a;if(e instanceof m)return e[a];throw Error("Cannot get the value of the pk from the constructor")}).bind(m),m.pkProps=(e=>t.get(e,t.key(D.ID,m.pk(e)))).bind(m),m.isTransient=(e=>t.isTransient(e)).bind(m),m.merge=((t,e,r)=>{const n=t=>Object.entries(t).reduce((t,[e,r])=>(void 0!==r&&(t[e]=r),t),{});return new(r=r||t.constructor)(Object.assign({},n(t),n(e)))}).bind(m),t.saveOperation=((e,r,n,s)=>{r&&t.set(e,t.key(C.OPERATIONS,r,n),s)}).bind(t),t.readOperation=((e,r,n)=>{if(r&&n)return t.get(e,t.key(C.OPERATIONS,r,n))}).bind(t),t.isTransient=(e=>!!t.get("function"!=typeof e?e.constructor:e,D.TRANSIENT)).bind(t);const Ut={parentContext:void 0,childContexts:[],ignoredValidationProperties:[],callArgs:[],writeOperation:!1,affectedTables:[],operation:void 0,breakOnHandlerError:!0,rebuildWithTransient:!0,ignoreValidation:!1,ignoreHandlers:!0},$t=t=>(new Ft).accumulate(Object.assign({},t,{timestamp:new Date,logger:t.logger||R.get()}));class Ft{constructor(){this.cache=new O,Object.defineProperty(this,"cache",{value:new O,writable:!1,enumerable:!1,configurable:!0})}static{this.factory=$t}accumulate(t){return Object.defineProperty(this,"cache",{value:this.cache.accumulate(t),writable:!1,enumerable:!1,configurable:!0}),this}get logger(){return this.cache.logger}get timestamp(){return this.cache.timestamp}get(t){try{return this.cache.get(t)}catch(e){const r=this.cache.parentContext;if(r)return r.get(t);throw e}}static childFrom(t,e){return Ft.factory(Object.assign({},t.cache,e||{}))}static async from(t,e,r,...n){return Ft.factory(Object.assign({},Ut,e,{operation:t,model:r,logger:e.logger||R.get()}))}static async args(t,e,r,n,s){const a=r.pop();async function o(){return n?n.context(t,s||{},e,...r):Ft.from(t,s||{},e,...r)}let i;return a?a instanceof Ft?(i=a,r.push(a)):(r.push(a),i=await o(),r.push(i)):(i=await o(),r.push(i)),{context:i,args:r}}}function Ht(t,e,r,n){const s=n||e.name;t[s]=new Proxy(t[s],{apply:async(t,e,n)=>{let s=r.call(e,...n);return s instanceof Promise&&(s=await s),s=t.call(e,...s),s instanceof Promise&&(s=await s),s}})}function Vt(t,e,r,n){const s=n||e.name;t[s]=new Proxy(t[s],{apply:async(t,e,n)=>{let s=t.call(e,...n);return s instanceof Promise&&(s=await s),s=r.call(e,...s),s instanceof Promise&&(s=await s),s}})}function _t(t,e,r,n,s){const a=s||r.name;t[a]=new Proxy(t[a],{apply:async(t,r,s)=>{let a=e.call(r,...s);a instanceof Promise&&(a=await a);const o=a[a.length-1];if(!(o instanceof Ft))throw new _("Missing a context");let i=t.call(r,...a);return i instanceof Promise&&(i=await i),i=n.call(r,i,o),i instanceof Promise&&(i=await i),i}})}class Yt{get class(){if(!this._class)throw new _("No class definition found for this repository");return this._class}get pk(){return m.pk(this.class)}get pkProps(){return m.pkProps(this.class)}constructor(t){t&&(this._class=t);const e=this;[this.create,this.read,this.update,this.delete].forEach(t=>{const r=t.name;_t(e,e[r+"Prefix"],t,e[r+"Suffix"])})}async createAll(t,...e){return Promise.all(t.map(t=>this.create(t,...e)))}async createPrefix(t,...e){const r=await Ft.args(k.CREATE,this.class,e);return t=new this.class(t),await jt(this,r.context,t,k.CREATE,k.ON),[t,...r.args]}async createSuffix(t,e){return await jt(this,e,t,k.CREATE,k.AFTER),t}async createAllPrefix(t,...e){const r=await Ft.args(k.CREATE,this.class,e);return await Promise.all(t.map(async t=>(t=new this.class(t),await jt(this,r.context,t,k.CREATE,k.ON),t))),[t,...r.args]}async createAllSuffix(t,e){return await Promise.all(t.map(t=>jt(this,e,t,k.CREATE,k.AFTER))),t}async readAll(t,...e){return await Promise.all(t.map(t=>this.read(t,...e)))}async readSuffix(t,e){return await jt(this,e,t,k.READ,k.AFTER),t}async readPrefix(t,...e){const r=await Ft.args(k.READ,this.class,e),n=new this.class;return n[this.pk]=t,await jt(this,r.context,n,k.READ,k.ON),[t,...r.args]}async readAllPrefix(t,...e){const r=await Ft.args(k.READ,this.class,e);return await Promise.all(t.map(async t=>{const e=new this.class;return e[this.pk]=t,jt(this,r.context,e,k.READ,k.ON)})),[t,...r.args]}async readAllSuffix(t,e){return await Promise.all(t.map(t=>jt(this,e,t,k.READ,k.AFTER))),t}async updateAll(t,...e){return Promise.all(t.map(t=>this.update(t,...e)))}async updateSuffix(t,e){return await jt(this,e,t,k.UPDATE,k.AFTER),t}async updatePrefix(t,...e){const r=await Ft.args(k.UPDATE,this.class,e),n=t[this.pk];if(!n)throw new _("No value for the Id is defined under the property "+this.pk);const s=await this.read(n);return await jt(this,r.context,t,k.UPDATE,k.ON,s),[t,...r.args]}async updateAllPrefix(t,...e){const r=await Ft.args(k.UPDATE,this.class,e);return await Promise.all(t.map(t=>(t=new this.class(t),jt(this,r.context,t,k.UPDATE,k.ON),t))),[t,...r.args]}async updateAllSuffix(t,e){return await Promise.all(t.map(t=>jt(this,e,t,k.UPDATE,k.AFTER))),t}async deleteAll(t,...e){return Promise.all(t.map(t=>this.delete(t,...e)))}async deleteSuffix(t,e){return await jt(this,e,t,k.DELETE,k.AFTER),t}async deletePrefix(t,...e){const r=await Ft.args(k.DELETE,this.class,e),n=await this.read(t,...r.args);return await jt(this,r.context,n,k.DELETE,k.ON),[t,...r.args]}async deleteAllPrefix(t,...e){const r=await Ft.args(k.DELETE,this.class,e),n=await this.readAll(t,...r.args);return await Promise.all(n.map(async t=>jt(this,r.context,t,k.DELETE,k.ON))),[t,...r.args]}async deleteAllSuffix(t,e){return await Promise.all(t.map(t=>jt(this,e,t,k.DELETE,k.AFTER))),t}toString(){return this.class.name+" Repository"}}class zt extends Yt{constructor(t){super(t)}async createPrefix(t,...e){const r=await Ft.args(k.CREATE,this.class,e);if(t=new this.class(t),!1!==r.context.get("ignoreHandlers")&&await jt(this,r.context,t,k.CREATE,k.ON),!r.context.get("ignoreValidation")){const e=await Promise.resolve(t.hasErrors());if(e)throw new V(e.toString())}return[t,...r.args]}async createAllPrefix(t,...e){const r=await Ft.args(k.CREATE,this.class,e),n=!1!==r.context.get("ignoreHandlers"),s=!r.context.get("ignoreValidation");if(t=await Promise.all(t.map(async t=>{const e=new this.class(t);return n&&await jt(this,r.context,e,k.CREATE,k.ON),e})),s){const e=Ct(await Promise.all(t.map(t=>Promise.resolve(t.hasErrors()))));if(e)throw new V(e)}return[t,...r.args]}async updatePrefix(t,...e){const r=await Ft.args(k.UPDATE,this.class,e),n=!1!==r.context.get("ignoreHandlers"),s=!r.context.get("ignoreValidation"),a=t[this.pk];if(!a)throw new _("No value for the Id is defined under the property "+this.pk);const o=await this.read(a);if(t=m.merge(o,t,this.class),n&&await jt(this,r.context,t,k.UPDATE,k.ON,o),s){const e=await Promise.resolve(t.hasErrors(o));if(e)throw new V(e.toString())}return[t,...r.args]}async updateAllPrefix(t,...e){const r=await Ft.args(k.UPDATE,this.class,e),n=!1!==r.context.get("ignoreHandlers"),s=!r.context.get("ignoreValidation"),a=t.map(t=>{const e=t[this.pk];if(void 0===e)throw new _("No value for the Id is defined under the property "+this.pk);return e}),o=await this.readAll(a,...r.args);if(t=t.map((t,e)=>m.merge(o[e],t,this.class)),n&&await Promise.all(t.map((t,e)=>jt(this,r.context,t,k.UPDATE,k.ON,o[e]))),s){const e=Ct(await Promise.all(t.map((t,e)=>Promise.resolve(t.hasErrors(o[e])))));if(e)throw new V(e)}return[t,...r.args]}async readPrefix(t,...e){return super.readPrefix(t,...e)}async readAllPrefix(t,...e){return super.readAllPrefix(t,...e)}async deleteAllPrefix(t,...e){return super.deleteAllPrefix(t,...e)}}const Kt="##VERSION##",Qt="##PACKAGE##";t.registerLibrary(Qt,Kt);export{H as BadRequestError,F as BaseError,Yt as BaseRepository,pt as BlockOperations,j as BulkCrudOperationKeys,K as ConflictError,Ft as Context,D as DBKeys,M as DBOperations,S as DEFAULT_ERROR_MESSAGES,b as DEFAULT_TIMESTAMP_FORMAT,$t as DefaultContextFactory,Ut as DefaultRepositoryFlags,x as DefaultSeparator,_ as InternalError,C as ModelOperations,z as NotFoundError,k as OperationKeys,$ as Operations,U as OperationsRegistry,Qt as PACKAGE_NAME,v as ReadOnlyValidator,zt as Repository,Y as SerializationError,I as TimestampValidator,L as UpdateValidationKeys,N as UpdateValidator,Kt as VERSION,V as ValidationError,ut as after,lt as afterAny,ot as afterCreate,st as afterCreateUpdate,ct as afterDelete,it as afterRead,at as afterUpdate,vt as composed,bt as composedFromCreateUpdate,Lt as composedFromKeys,jt as enforceDBDecorators,Mt as getDbDecorators,G as getHandlerArgs,q as getHandlersDecorators,wt as getValidatableUpdateProps,B as groupDecorators,xt as hash,Dt as hashOnCreateUpdate,Tt as id,nt as on,rt as onAny,X as onCreate,Z as onCreateUpdate,et as onDelete,tt as onRead,W as onUpdate,dt as operation,Ht as prefixMethod,ht as readonly,Ct as reduceErrorsToPrint,At as serialize,mt as serializeAfterAll,yt as serializeOnCreateUpdate,J as sortDecorators,ft as storeHandlerMetadata,Vt as suffixMethod,gt as timestamp,Et as timestampHandler,kt as transient,Rt as validateCompare,Pt as validateDecorator,Ot as validateDecorators,Nt as version,It as versionCreateUpdate,_t as wrapMethodWithContext};
2
2
  //# sourceMappingURL=db-decorators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"db-decorators.js","sources":["../src/model/constants.ts","../src/validation/constants.ts","../src/validation/validators/ReadOnlyValidator.ts","../src/validation/validators/TimestampValidator.ts","../src/validation/validators/UpdateValidator.ts","../src/operations/constants.ts","../src/validation/validation.ts","../src/operations/OperationsRegistry.ts","../src/operations/Operations.ts","../src/repository/errors.ts","../src/operations/decorators.ts","../src/validation/decorators.ts","../src/identity/decorators.ts","../src/model/validation.ts","../src/model/decorators.ts","../src/repository/utils.ts","../src/overrides/overrides.ts","../src/repository/constants.ts","../src/repository/Context.ts","../src/repository/wrappers.ts","../src/repository/BaseRepository.ts","../src/repository/Repository.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DBKeys","REFLECT","ModelKeys","MODEL","REPOSITORY","CLASS","ID","INDEX","UNIQUE","SERIALIZE","READONLY","TIMESTAMP","TRANSIENT","HASH","COMPOSED","VERSION","ORIGINAL","DefaultSeparator","DEFAULT_TIMESTAMP_FORMAT","DEFAULT_ERROR_MESSAGES","INVALID","REQUIRED","DATE","UpdateValidationKeys","ReadOnlyValidator","Validator","constructor","super","hasErrors","value","args","updateHasErrors","oldValue","message","undefined","isEqual","this","getMessage","__decorate","validator","TimestampValidator","Date","e","UpdateValidator","DecoratorMessages","DEFAULT","acceptedTypes","OperationKeys","ModelOperations","BulkCrudOperationKeys","Validation","updateKey","key","DBOperations","CREATE","READ","UPDATE","DELETE","CREATE_UPDATE","READ_CREATE","ALL","OperationsRegistry","cache","get","target","propKey","operation","accum","name","unshift","Object","values","prototype","getPrototypeOf","proto","register","handler","handlerName","Operations","getHandlerName","Hashing","hash","toString","str","targetName","registry","getOpRegistry","BaseError","Error","msg","code","stack","BadRequestError","ValidationError","InternalError","SerializationError","NotFoundError","ConflictError","DefaultGroupSort","priority","getHandlerArgs","dec","prop","m","props","handlers","getHandlersDecorators","model","decorators","prefix","decs","length","handlerArgs","i","data","push","groupDecorators","grouped","reduce","acc","group","set","Symbol","groupKey","has","existing","Map","groups","Array","from","forEach","combined","map","d","sort","a","b","groupPriority","c","sortDecorators","onCreateUpdate","groupsort","on","onUpdate","onCreate","onRead","onDelete","onAny","op","ON","afterCreateUpdate","after","afterUpdate","afterCreate","afterRead","afterDelete","afterAny","AFTER","baseOp","dataToAdd","propertyKey","compoundKey","Metadata","readOperation","handlerKey","mergeData","keys","filter","handle","propMetadata","OPERATIONS","apply","storeHandlerMetadata","params","metadata","BlockOperations","operations","BLOCK","includes","readonly","meta","description","async","Decoration","for","define","decorator","innerValidationDecorator","timestampHandler","context","timestamp","format","date","required","indexOf","serializeOnCreateUpdate","JSON","stringify","serializeAfterAll","parse","serialize","type","String","id","getValidatableUpdateProps","propsToIgnore","decoratedProperties","hasOwnProperty","call","validationFor","validateDecorator","newModel","oldModel","toConditionalPromise","decoratorProps","maybeError","validateDecorators","result","decoratorKey","validationErrors","ValidationKeys","LIST","newPropValue","oldPropValue","newValues","Set","oldValues","allowedTypes","class","clazz","customTypes","flat","t","toLowerCase","errs","childValue","Model","pk","oldListModel","find","el","isModel","Promise","all","then","every","r","allEmpty","promises","resolvedValues","res","val","validateCompare","ValidatableUpdateProps","nestedErrors","propValue","designTypes","designType","getPropDesignTypes","some","TYPE","isArray","propErrors","isConstr","isPropertyModel","instance","Constr","entries","error","ModelErrorDefinition","merged","allSettled","results","parentProp","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","join","status","reason","hashOnCreateUpdate","composedFromCreateUpdate","suffix","separator","composed","arg","composedFrom","hashResult","composedFromKeys","versionCreateUpdate","version","Number","transient","attribute","reduceErrorsToPrint","errors","enforceDBDecorators","repo","getDbDecorators","sortedDecorators","extraPrefix","replace","obj","isTransient","previousVersion","exclusions","isAsync","validate","resolve","resolvedErrs","segregate","validatableProperties","transientProps","build","keyValue","constr","idProp","bind","pkProps","merge","extract","assign","saveOperation","DefaultRepositoryFlags","parentContext","childContexts","ignoredValidationProperties","callArgs","writeOperation","affectedTables","breakOnHandlerError","rebuildWithTransient","ignoreValidation","ignoreHandlers","DefaultContextFactory","Context","accumulate","logger","Logging","ObjectAccumulator","defineProperty","writable","enumerable","configurable","factory","parent","childFrom","overrides","contextual","last","pop","getContext","prefixMethod","afterName","Proxy","thisArg","argArray","suffixMethod","before","beforeName","wrapMethodWithContext","method","methodName","transformedArgs","BaseRepository","_class","self","create","read","update","delete","createAll","models","createPrefix","contextArgs","createSuffix","createAllPrefix","createAllSuffix","readAll","readSuffix","readPrefix","readAllPrefix","k","readAllSuffix","updateAll","updateSuffix","updatePrefix","updateAllPrefix","updateAllSuffix","deleteAll","deleteSuffix","deletePrefix","deleteAllPrefix","deleteAllSuffix","Repository","shouldRunHandlers","shouldValidate","ids","oldModels","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
1
+ {"version":3,"file":"db-decorators.js","sources":["../src/model/constants.ts","../src/validation/constants.ts","../src/validation/validators/ReadOnlyValidator.ts","../src/validation/validators/TimestampValidator.ts","../src/validation/validators/UpdateValidator.ts","../src/operations/constants.ts","../src/validation/validation.ts","../src/operations/OperationsRegistry.ts","../src/operations/Operations.ts","../src/repository/errors.ts","../src/operations/decorators.ts","../src/validation/decorators.ts","../src/identity/decorators.ts","../src/model/validation.ts","../src/model/decorators.ts","../src/repository/utils.ts","../src/overrides/overrides.ts","../src/repository/constants.ts","../src/repository/Context.ts","../src/repository/wrappers.ts","../src/repository/BaseRepository.ts","../src/repository/Repository.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DBKeys","REFLECT","ModelKeys","MODEL","REPOSITORY","CLASS","ID","INDEX","UNIQUE","SERIALIZE","READONLY","TIMESTAMP","TRANSIENT","HASH","COMPOSED","VERSION","ORIGINAL","DefaultSeparator","DEFAULT_TIMESTAMP_FORMAT","DEFAULT_ERROR_MESSAGES","INVALID","REQUIRED","DATE","UpdateValidationKeys","ReadOnlyValidator","Validator","constructor","super","hasErrors","value","args","updateHasErrors","oldValue","message","undefined","isEqual","this","getMessage","__decorate","validator","TimestampValidator","Date","e","UpdateValidator","DecoratorMessages","DEFAULT","acceptedTypes","OperationKeys","ModelOperations","BulkCrudOperationKeys","Validation","updateKey","key","DBOperations","CREATE","READ","UPDATE","DELETE","CREATE_UPDATE","READ_CREATE","ALL","OperationsRegistry","cache","get","target","propKey","operation","accum","name","unshift","Object","values","prototype","getPrototypeOf","proto","register","handler","handlerName","Operations","getHandlerName","Hashing","hash","toString","str","targetName","registry","getOpRegistry","BaseError","Error","msg","code","stack","BadRequestError","ValidationError","InternalError","SerializationError","NotFoundError","ConflictError","DefaultGroupSort","priority","getHandlerArgs","dec","prop","m","props","handlers","getHandlersDecorators","model","decorators","prefix","decs","length","handlerArgs","i","data","push","groupDecorators","grouped","reduce","acc","group","set","Symbol","groupKey","has","existing","Map","groups","Array","from","forEach","combined","map","d","sort","a","b","groupPriority","c","sortDecorators","onCreateUpdate","groupsort","on","onUpdate","onCreate","onRead","onDelete","onAny","op","ON","afterCreateUpdate","after","afterUpdate","afterCreate","afterRead","afterDelete","afterAny","AFTER","baseOp","dataToAdd","propertyKey","compoundKey","Metadata","readOperation","handlerKey","mergeData","keys","filter","handle","propMetadata","OPERATIONS","apply","storeHandlerMetadata","params","metadata","BlockOperations","operations","BLOCK","includes","readonly","meta","description","async","Decoration","for","define","decorator","innerValidationDecorator","timestampHandler","context","timestamp","format","date","required","indexOf","serializeOnCreateUpdate","JSON","stringify","serializeAfterAll","parse","serialize","type","String","id","getValidatableUpdateProps","propsToIgnore","decoratedProperties","hasOwnProperty","call","validationFor","validateDecorator","newModel","oldModel","toConditionalPromise","decoratorProps","maybeError","validateDecorators","result","decoratorKey","validationErrors","ValidationKeys","LIST","newPropValue","oldPropValue","newValues","Set","oldValues","allowedTypes","class","clazz","customTypes","flat","t","toLowerCase","errs","childValue","Model","pk","oldListModel","find","el","isModel","Promise","all","then","every","r","allEmpty","promises","resolvedValues","res","val","validateCompare","ValidatableUpdateProps","nestedErrors","propValue","designTypes","designType","getPropDesignTypes","some","TYPE","isArray","propErrors","isConstr","isPropertyModel","instance","Constr","entries","error","ModelErrorDefinition","merged","allSettled","results","parentProp","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","join","status","reason","hashOnCreateUpdate","composedFromCreateUpdate","suffix","separator","composed","arg","composedFrom","hashResult","property","composedFromKeys","versionCreateUpdate","version","Number","transient","attribute","reduceErrorsToPrint","errors","enforceDBDecorators","repo","getDbDecorators","sortedDecorators","extraPrefix","replace","obj","isTransient","previousVersion","exclusions","isAsync","validate","resolve","resolvedErrs","segregate","validatableProperties","transientProps","build","keyValue","constr","idProp","bind","pkProps","merge","extract","assign","saveOperation","DefaultRepositoryFlags","parentContext","childContexts","ignoredValidationProperties","callArgs","writeOperation","affectedTables","breakOnHandlerError","rebuildWithTransient","ignoreValidation","ignoreHandlers","DefaultContextFactory","Context","accumulate","logger","Logging","ObjectAccumulator","defineProperty","writable","enumerable","configurable","factory","parent","childFrom","overrides","contextual","last","pop","getContext","prefixMethod","afterName","Proxy","thisArg","argArray","suffixMethod","before","beforeName","wrapMethodWithContext","method","methodName","transformedArgs","BaseRepository","_class","self","create","read","update","delete","createAll","models","createPrefix","contextArgs","createSuffix","createAllPrefix","createAllSuffix","readAll","readSuffix","readPrefix","readAllPrefix","k","readAllSuffix","updateAll","updateSuffix","updatePrefix","updateAllPrefix","updateAllSuffix","deleteAll","deleteSuffix","deletePrefix","deleteAllPrefix","deleteAllSuffix","Repository","shouldRunHandlers","shouldValidate","ids","oldModels","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
@@ -16,5 +16,5 @@ export * from "./validation";
16
16
  * @const VERSION
17
17
  * @memberOf module:db-decorators
18
18
  */
19
- export declare const VERSION = "0.7.4";
19
+ export declare const VERSION = "0.7.5";
20
20
  export declare const PACKAGE_NAME = "@decaf-ts/db-decorators";
package/lib/esm/index.js CHANGED
@@ -17,7 +17,7 @@ export * from "./validation/index.js";
17
17
  * @const VERSION
18
18
  * @memberOf module:db-decorators
19
19
  */
20
- export const VERSION = "0.7.4";
20
+ export const VERSION = "0.7.5";
21
21
  export const PACKAGE_NAME = "@decaf-ts/db-decorators";
22
22
  Metadata.registerLibrary(PACKAGE_NAME, VERSION);
23
23
  //# sourceMappingURL=index.js.map
@@ -78,7 +78,7 @@ export declare function composedFromCreateUpdate<M extends Model, R extends IRep
78
78
  * @function composedFromKeys
79
79
  * @category PropertyDecorators
80
80
  */
81
- export declare function composedFromKeys(args: string[], separator?: string, hash?: boolean, prefix?: string, suffix?: string, groupsort?: GroupSort): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
81
+ export declare function composedFromKeys(args: string[], separator?: string, hash?: boolean, prefix?: string, suffix?: string, groupsort?: GroupSort): (target: object, property?: any) => void;
82
82
  /**
83
83
  * @description Creates a decorator that composes a property value from property values
84
84
  * @summary Decorator that generates a property value by joining the values of other properties
@@ -92,7 +92,7 @@ export declare function composedFromKeys(args: string[], separator?: string, has
92
92
  * @function composed
93
93
  * @category PropertyDecorators
94
94
  */
95
- export declare function composed(args: string[], separator?: string, hash?: boolean, prefix?: string, suffix?: string, groupsort?: GroupSort): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
95
+ export declare function composed(args: string[], separator?: string, hash?: boolean, prefix?: string, suffix?: string, groupsort?: GroupSort): (target: object, property?: any) => void;
96
96
  /**
97
97
  * @description Creates a function that updates a version property during operations
98
98
  * @summary Factory function that generates a callback for incrementing version numbers
@@ -92,21 +92,23 @@ export function composedFromCreateUpdate(context, data, key, model) {
92
92
  * @category PropertyDecorators
93
93
  */
94
94
  function composedFrom(args, hashResult = false, separator = DefaultSeparator, type = "values", prefix = "", suffix = "", groupsort = { priority: 55 }) {
95
- const data = {
96
- args: args,
97
- hashResult: hashResult,
98
- separator: separator,
99
- type: type,
100
- prefix: prefix,
101
- suffix: suffix,
95
+ return function composeFrom(target, property) {
96
+ const data = {
97
+ args: args,
98
+ hashResult: hashResult,
99
+ separator: separator,
100
+ type: type,
101
+ prefix: prefix,
102
+ suffix: suffix,
103
+ };
104
+ const decorators = [
105
+ onCreateUpdate(composedFromCreateUpdate, data, groupsort),
106
+ propMetadata(Metadata.key(DBKeys.COMPOSED, property), data),
107
+ ];
108
+ if (hashResult)
109
+ decorators.push(hash());
110
+ return apply(...decorators)(target, property);
102
111
  };
103
- const decorators = [
104
- onCreateUpdate(composedFromCreateUpdate, data, groupsort),
105
- propMetadata(DBKeys.COMPOSED, data),
106
- ];
107
- if (hashResult)
108
- decorators.push(hash());
109
- return apply(...decorators);
110
112
  }
111
113
  /**
112
114
  * @description Creates a decorator that composes a property value from property keys
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/model/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/model/decorators.ts"],"names":[],"mappings":"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"}
package/lib/index.cjs CHANGED
@@ -34,7 +34,7 @@ __exportStar(require("./validation/index.cjs"), exports);
34
34
  * @const VERSION
35
35
  * @memberOf module:db-decorators
36
36
  */
37
- exports.VERSION = "0.7.4";
37
+ exports.VERSION = "0.7.5";
38
38
  exports.PACKAGE_NAME = "@decaf-ts/db-decorators";
39
39
  decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
40
40
  //# sourceMappingURL=index.js.map
package/lib/index.d.ts CHANGED
@@ -16,5 +16,5 @@ export * from "./validation";
16
16
  * @const VERSION
17
17
  * @memberOf module:db-decorators
18
18
  */
19
- export declare const VERSION = "0.7.4";
19
+ export declare const VERSION = "0.7.5";
20
20
  export declare const PACKAGE_NAME = "@decaf-ts/db-decorators";
@@ -102,21 +102,23 @@ function composedFromCreateUpdate(context, data, key, model) {
102
102
  * @category PropertyDecorators
103
103
  */
104
104
  function composedFrom(args, hashResult = false, separator = constants_1.DefaultSeparator, type = "values", prefix = "", suffix = "", groupsort = { priority: 55 }) {
105
- const data = {
106
- args: args,
107
- hashResult: hashResult,
108
- separator: separator,
109
- type: type,
110
- prefix: prefix,
111
- suffix: suffix,
105
+ return function composeFrom(target, property) {
106
+ const data = {
107
+ args: args,
108
+ hashResult: hashResult,
109
+ separator: separator,
110
+ type: type,
111
+ prefix: prefix,
112
+ suffix: suffix,
113
+ };
114
+ const decorators = [
115
+ (0, decorators_1.onCreateUpdate)(composedFromCreateUpdate, data, groupsort),
116
+ (0, decoration_1.propMetadata)(decoration_1.Metadata.key(constants_1.DBKeys.COMPOSED, property), data),
117
+ ];
118
+ if (hashResult)
119
+ decorators.push(hash());
120
+ return (0, decoration_1.apply)(...decorators)(target, property);
112
121
  };
113
- const decorators = [
114
- (0, decorators_1.onCreateUpdate)(composedFromCreateUpdate, data, groupsort),
115
- (0, decoration_1.propMetadata)(constants_1.DBKeys.COMPOSED, data),
116
- ];
117
- if (hashResult)
118
- decorators.push(hash());
119
- return (0, decoration_1.apply)(...decorators);
120
122
  }
121
123
  /**
122
124
  * @description Creates a decorator that composes a property value from property keys
@@ -78,7 +78,7 @@ export declare function composedFromCreateUpdate<M extends Model, R extends IRep
78
78
  * @function composedFromKeys
79
79
  * @category PropertyDecorators
80
80
  */
81
- export declare function composedFromKeys(args: string[], separator?: string, hash?: boolean, prefix?: string, suffix?: string, groupsort?: GroupSort): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
81
+ export declare function composedFromKeys(args: string[], separator?: string, hash?: boolean, prefix?: string, suffix?: string, groupsort?: GroupSort): (target: object, property?: any) => void;
82
82
  /**
83
83
  * @description Creates a decorator that composes a property value from property values
84
84
  * @summary Decorator that generates a property value by joining the values of other properties
@@ -92,7 +92,7 @@ export declare function composedFromKeys(args: string[], separator?: string, has
92
92
  * @function composed
93
93
  * @category PropertyDecorators
94
94
  */
95
- export declare function composed(args: string[], separator?: string, hash?: boolean, prefix?: string, suffix?: string, groupsort?: GroupSort): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
95
+ export declare function composed(args: string[], separator?: string, hash?: boolean, prefix?: string, suffix?: string, groupsort?: GroupSort): (target: object, property?: any) => void;
96
96
  /**
97
97
  * @description Creates a function that updates a version property during operations
98
98
  * @summary Factory function that generates a callback for incrementing version numbers
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/model/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/model/decorators.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/db-decorators",
3
- "version": "0.7.5",
3
+ "version": "0.7.6",
4
4
  "description": "Agnostic database decorators and repository",
5
5
  "type": "module",
6
6
  "exports": {