@decaf-ts/db-decorators 0.8.26 → 0.8.28

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
@@ -36,7 +36,7 @@ The db-decorators library provides a comprehensive set of TypeScript decorators
36
36
 
37
37
  Documentation available [here](https://decaf-ts.github.io/db-decorators/)
38
38
 
39
- Minimal size: 8.1 KB kb gzipped
39
+ Minimal size: 8.2 KB kb gzipped
40
40
 
41
41
 
42
42
 
@@ -1,2 +1,2 @@
1
- var e,t;e=this,t=function(e,t,r,a,o,n){"use strict";const s={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",GENERATED:"generated",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:s.TIMESTAMP,READONLY:s.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,f,y;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,(f=e.ModelOperations||(e.ModelOperations={})).OPERATIONS="operations",f.RELATIONS="relations",e.BulkCrudOperationKeys=void 0,(y=e.BulkCrudOperationKeys||(e.BulkCrudOperationKeys={})).CREATE_ALL="createAll",y.READ_ALL="readAll",y.UPDATE_ALL="updateAll",y.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 g{constructor(){this.cache={}}get(e,t,r,a){a=a||[];const o=this.resolveOwner(e),n=this.resolveTargetName(e,o);if(n){const e=this.selectHandlers(n,t,r,o);e?.length&&a.unshift(...e)}else if("string"==typeof e||e===Object.prototype||Object.getPrototypeOf(e)===Object.prototype)return a;let s=Object.getPrototypeOf(e);return s?(s.constructor&&s.constructor.name===n&&(s=Object.getPrototypeOf(s)),s?this.get(s,t,r,a):a):a}register(e,t,r,a){const o=r.constructor.name,n=g.getHandlerName(e),s=this.resolveFlavour(r.constructor);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]={}),this.cache[o][a][t][s][n]||(this.cache[o][a][t][s][n]=e)}resolveOwner(e){if(e&&"string"!=typeof e)return"function"==typeof e?e:e.constructor}resolveTargetName(e,t){return"string"==typeof e?e:t?.name}resolveFlavour(e){if(!e)return t.Decoration.defaultFlavour;try{return t.Metadata.flavourOf(e)}catch{return t.Decoration.defaultFlavour}}selectHandlers(e,r,a,o){const n=this.cache[e]?.[r]?.[a];if(!n)return;const s=n[this.resolveFlavour(o)]||n[t.Decoration.defaultFlavour]||this.firstBucket(n);if(!s)return;const i=Object.values(s);return i.length?i:void 0}firstBucket(e){for(const t of Object.values(e))if(t&&Object.keys(t).length)return t}static getHandlerName(e){return e.name?e.name:r.Hashing.hash(e.toString())}}class E{constructor(){}static getHandlerName(e){return g.getHandlerName(e)}static key(t){return e.OperationKeys.REFLECT+t}static get(e,t,r){return E.registry.get(e,t,r)}static getOpRegistry(){return E.registry||(E.registry=new g),E.registry}static register(e,t,r,a){E.getOpRegistry().register(e,t,r,a)}}class m extends Error{constructor(e,t,r){if(t instanceof m)return t;super(`[${e}][${r}] ${t instanceof Error?t.message:t}`),this.code=r,t instanceof Error&&(this.stack=t.stack)}get message(){return`[${this.name}] ${this.code} | ${super.message.replaceAll(/\[.*?Error\]\[\d+\]\s/g,"")}`}toString(){return this.message}}class O extends m{constructor(e,t=O.name,r=999){super(t,e,r)}}class A extends m{constructor(e,t=A.name,r=400){super(t,e,r)}}class T extends A{constructor(e){super(e,T.name,422)}}class M extends m{constructor(e,t=M.name,r=500){super(t,e,r)}}class w extends M{constructor(e){super(e,w.name,500)}}class D extends A{constructor(e){super(e,D.name,404)}}class P extends A{constructor(e){super(e,P.name,409)}}const R={priority:50},v=(e,t,r,a)=>{const o=r.constructor.name;if(!o)throw new M("Could not determine model class");a=a||{},e.props.handlers[o]&&e.props.handlers[o][t]&&(a={...e.props.handlers[o][t],...a});let n=Object.getPrototypeOf(r);return n===Object.prototype?a:(n.constructor.name===o&&(n=Object.getPrototypeOf(n)),v(e,t,n,a))};function b(e,t,r){const a=[];for(const o in t){const n=t[o];for(const t of n){const{key:n}=t,s=E.get(e,o,r+n);if(!s||!s.length)throw new M(`Could not find registered handler for the operation ${r+n} under property ${o}`);const i=v(t,o,e);if(!i)throw new M("Missing handler arguments for decorators");for(const e of s){const t=E.getHandlerName(e),r=i[t];if(!r)throw new M("Missing handler arguments for handler "+t);const n=r.data;a.push({handler:e,data:[n],prop:[o]})}}}return a}function S(e){const t=e.reduce((e,t)=>{if(!t||!t.data||!t.prop)throw new M("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 K(e){return e.sort((e,t)=>(e.data[0].priority??50)-(t.data[0].priority??50)),e}function L(e,t,r){return C(h.CREATE_UPDATE,e,t,r)}function N(e,t,r){return C(h.UPDATE,e,t,r)}function x(e,t,r){return C(h.CREATE,e,t,r)}function C(t=h.ALL,r,a,o){return k(e.OperationKeys.ON,t,r,a,o)}function I(t=h.ALL,r,a,o){return k(e.OperationKeys.AFTER,t,r,a,o)}function k(r,a=h.ALL,o,n,s=R){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 f=E.getHandlerName(o);let y=s;if(n){if(Object.keys(n).filter(e=>e in s).length>0)throw new M("Unable to merge groupSort into dataToAdd due to overlaping keys");y={...s,...n}}return u.handlers[l]&&u.handlers[l][c]&&f in u.handlers[l][c]||(u.handlers[l]=u.handlers[l]||{},u.handlers[l][c]=u.handlers[l][c]||{},u.handlers[l][c][f]={data:y},a.push(((e,t)=>(r,a)=>{E.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 U(e,r){return(...a)=>t.metadata(e,{args:a,handler:r})}function V(e){return(r,a)=>t.propMetadata(t.Metadata.key(s.GENERATED,a),e||!0)(r,a)}function j(e,t,a,o,n){if(void 0===o[a])return;const s=r.Hashing.hash(o[a]);n&&o[a]===s||(o[a]=s)}function F(){return t.apply(L(j),t.propMetadata(s.HASH,{}))}function H(e,t){const{args:a,type:o,prefix:n,suffix:s,separator:i,filterEmpty:c,hashResult:l}=t;try{const t=a.map(t=>{if("keys"===o)return t;if(void 0===e[t]){if(c){if(!Array.isArray(c))return;if(c.includes(t))return}throw new M(`Property ${a} does not contain a value to compose from`)}return e[t].toString()}).filter(e=>!c||!!e);n&&t.unshift(n),s&&t.push(s);const d=t.map(e=>"object"==typeof e&&"[object Object]"===e.toString()?JSON.stringify(e):e).join(i);return l?r.Hashing.hash(d):d}catch(e){throw new M("Failed to compose value: "+e)}}function $(e,t,r,a){a[r]=H(a,t)}function _(e,r=!1,a=i,o=!1,n="values",c="",l="",d={priority:55}){return t.Decoration.for(s.COMPOSED).define({decorator:(e,r,a,n,i,c,l)=>(d,p)=>{const u={args:e,hashResult:r,separator:a,type:n,prefix:i,suffix:c,filterEmpty:o},f=[V(s.COMPOSED),L($,u,l),t.propMetadata(t.Metadata.key(s.COMPOSED,p),u)];return r&&f.push(F()),t.apply(...f)(d,p)},args:[e,r,a,n,c,l,d]}).apply()}function z(t){return(a,o,n,s,i)=>{if(r.Model.shouldGenerate(s,n,a))try{switch(t){case e.OperationKeys.CREATE:s[n]=1;break;case e.OperationKeys.UPDATE:if(a.get("applyUpdateValidation")&&i&&s[n]!==i[n])throw new T(`Version mismatch: ${s[n]} !== ${i[n]}`);s[n]++;break;default:throw new M("Invalid operation: "+t)}}catch(e){throw new M("Failed to update version: "+e)}}}function B(e=l.READONLY.INVALID){const a=s.READONLY,o={message:e,description:"defines the attribute as readOnly",async:!1};return t.Decoration.for(a).define({decorator:r.innerValidationDecorator,args:[B,a,o]}).apply()}async function G(e,t,a,o){r.Model.shouldGenerate(o,a,e)&&(o[a]=e.timestamp)}async function Y(e,t,r,a){if(a[r])try{a[r]=t.serializer?(new t.serializer).serialize(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 q(e,t,r,a){if(a[r]&&"string"==typeof a[r])try{a[r]=t.serializer?(new t.serializer).deserialize(a[r]):JSON.parse(a[r])}catch(e){throw new w(`Failed to deserialize ${r.toString()} property of model ${a.constructor.name}: ${e}`)}}function Q(e,r){const a=[];for(const o in e){if(!Object.prototype.hasOwnProperty.call(e,o)||r.includes(o))continue;const n=t.Metadata.validationFor(e.constructor,o)||{};a.push({prop:o,decorators:n})}return a}function J(e,t,a,o,n){const s=r.Validation.get(o.key);if(!s)throw Error("Missing validator for "+o.key);if(!s.updateHasErrors)return r.toConditionalPromise(void 0,n);if(!n&&o.async)return r.toConditionalPromise(void 0,n);const i=Object.values(o)||{},c=s.updateHasErrors(e[a],t[a],...i);return r.toConditionalPromise(c,n)}function W(e,t,a,o,n){const s={};for(const i in o){const c={...o[i],key:i};if(!n&&c.async)continue;let l=J(e,t,a,c,n);if(c.key===r.ValidationKeys.LIST&&(!l||n)){const o=e[a],s=t[a],i=o instanceof Set?[...o]:o,d=s instanceof Set?[...s]:s;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=>{if(r.Model.isModel(t)){const e=r.Model.pk(t,!0);if(!e)return"Failed to find model id";const a=d.find(t=>e===r.Model.pk(t,!0));return t.hasErrors(a)}return e.includes(typeof t)?void 0:"Value has no validatable type"});if(n)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&&(s[c.key]=l)}if(!n)return Object.keys(s).length>0?s:void 0;const i=Object.keys(s),c=Object.values(s);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 Z(e,a,o,...n){const s=Q(a,n),i={},c={};for(const{prop:l,decorators:d}of s){const s=l+"",p=a[l],{designTypes:u}=t.Metadata.getPropDesignTypes(a.constructor,l);if(!u)continue;if(u.some(e=>[Array.name,Set.name].includes(e))){if(!d||!Object.keys(d).includes(r.ValidationKeys.LIST)){i[s]={[r.ValidationKeys.TYPE]:`Array or Set property '${s}' requires a @list decorator`};continue}if(p&&!(Array.isArray(p)||p instanceof Set)){i[s]={[r.ValidationKeys.TYPE]:`Property '${l+""}' must be either an Array or a Set`};continue}}const f=W(a,e,s,d,o)||{},y=r.Model.isPropertyModel(a,s);if(null!=p&&y){const t=p,a=u.map(e=>r.Model.get(e.name||e)).find(e=>!!e),o=u.map(e=>"function"==typeof e?e.name?e.name.toLowerCase():e()?.name.toLowerCase():e.toLowerCase());if(a&&p instanceof a){const a=r.getChildNestedPropsToIgnore(s,...n);c[s]=t.hasErrors(e[l],...a)}else o.includes(typeof p)||(f[r.ValidationKeys.TYPE]=a?"Value must be an instance of "+a.name:`Unable to verify type consistency, missing model registry for ${u.toString()} on prop ${s}`,delete f[r.ModelKeys.TYPE])}(Object.keys(f).length>0||o)&&(i[s]=f),o||Object.entries(c[s]||{}).forEach(([e,t])=>{void 0!==t&&(i[`${s}.${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 X(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 ee(t,r,a,o,n,s){const i=te(a,o,n);if(!i)return;const c=K(S(b(a,i,n)));for(const n of c){const i=[r,n.data.length>1?n.data:n.data[0],n.prop.length>1?n.prop:n.prop[0],a];if([e.OperationKeys.UPDATE,e.BulkCrudOperationKeys.UPDATE_ALL].includes(o)){if(!s)throw new M("Missing old model for update operation");i.push(s)}try{await n.handler.apply(t,i)}catch(e){if(r.logger.for(ee).error(`Failed to execute handler ${n.handler.name} for ${n.prop} on ${a.constructor.name}`),r.get("breakOnHandlerError"))throw e}}}function te(r,a,o){const n=o?.replace(/[.]$/,""),s=t.Metadata.get(r.constructor,e.ModelOperations.OPERATIONS);if(s)return Object.keys(s).reduce((e,t)=>{const r=n?s[t][n]||{}:s[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:Z(e,this,a,...t)):o||!e?o:Z(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,s.TRANSIENT),n={model:{},transient:{}};for(const t of a)if(Object.keys(o).includes(t)){n.transient=n.transient||{};try{n.transient[t]=e[t]}catch(e){throw new w(`Failed to serialize transient property ${t}: ${e}`)}}else n.model=n.model||{},n.model[t]=e[t];return n.model=r.Model.build(n.model,e.constructor.name),n},t.Metadata.pk=((e,a=!1)=>{if(!e)throw Error("No model was provided");const o=e instanceof r.Model?e.constructor:e,n=t.Metadata.get(o,s.ID);if(!n)throw Error("No Id property defined for model "+(o?.name||"Unknown Model"));const i=Object.keys(n)[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(t.Metadata),r.Model.pk=((e,r=!1)=>t.Metadata.pk(e,r)).bind(r.Model),r.Model.pkProps=(e=>t.Metadata.get(e,t.Metadata.key(s.ID,r.Model.pk(e)))).bind(r.Model),r.Model.isTransient=(e=>!!t.Metadata.get("function"!=typeof e?e.constructor:e,s.TRANSIENT)).bind(r.Model),r.Model.composed=((e,a)=>{const o=e instanceof r.Model?e.constructor:e;return a?t.Metadata.get(o,t.Metadata.key(s.COMPOSED,a)):!!t.Metadata.get(o,s.COMPOSED)}).bind(r.Model),r.Model.merge=((e,t,r)=>{const a=e=>Object.entries(e).reduce((e,[t,r])=>(null!=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,n)=>{a&&t.Metadata.set(r,t.Metadata.key(e.ModelOperations.OPERATIONS,a,o),n)}).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,s.TRANSIENT)).bind(t.Metadata),r.Model.generated=((e,r)=>!!t.Metadata.get("function"!=typeof e?e.constructor:e,t.Metadata.key(s.GENERATED,r))).bind(r.Model),r.Model.shouldGenerate=((e,t,r)=>!r.get("allowGenerationOverride")||void 0===e[t]).bind(r.Model);const re={parentContext:void 0,childContexts:[],ignoredValidationProperties:[],callArgs:[],writeOperation:!1,affectedTables:[],operation:void 0,breakOnHandlerError:!0,rebuildWithTransient:!0,ignoreValidation:!1,ignoreHandlers:!1,ignoreDevSafeGuards:!1,mergeForUpdate:!0,applyUpdateValidation:!0,allowGenerationOverride:!1},ae=e=>(new oe).accumulate(Object.assign({},e,{timestamp:new Date,logger:e.logger||n.Logging.get()}));class oe{constructor(e){this.cache=new o.ObjectAccumulator,Object.defineProperty(this,"cache",{value:e?e.cache:new o.ObjectAccumulator,writable:!1,enumerable:!1,configurable:!0})}static{this.factory=ae}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 oe.factory(Object.assign({},e.cache,t||{}))}static async from(e,t,r,...a){return oe.factory(Object.assign({},re,t,{operation:e,model:r,logger:t.logger||n.Logging.get()}))}static async args(e,t,r,a,o){const n=r.pop();async function s(){return a?a.context(e,o||{},t,...r):oe.from(e,o||{},t,...r)}let i;return n?n instanceof oe?(i=n,r.push(n)):(r.push(n),i=await s(),r.push(i)):(i=await s(),r.push(i)),{context:i,args:r}}}function ne(e,t,r,a,o){const n=o||r.name;e[n]=new Proxy(e[n],{apply:async(e,r,o)=>{let n=t.call(r,...o);n instanceof Promise&&(n=await n);const s=n[n.length-1];if(!(s instanceof oe))throw new M("Missing a context");let i=e.call(r,...n);return i instanceof Promise&&(i=await i),i=a.call(r,i,s),i instanceof Promise&&(i=await i),i}})}function se(e,t,a,o,n){const s=n||a.name;e[s]=new Proxy(e[s],{apply:async(e,a,n)=>{let s=t.call(a,...n);s instanceof Promise&&(s=await s);const i=s.pop(),c=s[s.length-1];if(!(c instanceof oe))throw new M("Missing a context");if(c.get("applyUpdateValidation")&&!c.get("ignoreDevSafeGuards")&&!(i instanceof r.Model)&&(!Array.isArray(i)||!i.every(e=>e instanceof r.Model)))throw new M("No previous versions os models found");let l=e.call(a,...s);return l instanceof Promise&&(l=await l),l=o.call(a,l,i,c),l instanceof Promise&&(l=await l),l}})}const ie="##VERSION##",ce="##PACKAGE##";t.Metadata.registerLibrary(ce,ie),e.BadRequestError=A,e.BaseError=m,e.BlockOperationIf=t=>U(e.OperationKeys.REFLECT+e.OperationKeys.BLOCK,t)(),e.BlockOperations=t=>U(e.OperationKeys.REFLECT+e.OperationKeys.BLOCK,(e,t)=>e.includes(t))(t),e.BreakError=O,e.ConflictError=P,e.Context=oe,e.DBKeys=s,e.DBOperations=h,e.DEFAULT_ERROR_MESSAGES=l,e.DEFAULT_TIMESTAMP_FORMAT=c,e.DefaultContextFactory=ae,e.DefaultRepositoryFlags=re,e.DefaultSeparator=i,e.InternalError=M,e.NotFoundError=D,e.Operations=E,e.OperationsRegistry=g,e.PACKAGE_NAME=ce,e.Repository=class{get class(){if(!this._class)throw new M("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.delete].forEach(e=>{const r=e.name;ne(t,t[r+"Prefix"],e,t[r+"Suffix"])}),se(t,t[this.update.name+"Prefix"],this.update,t[this.update.name+"Suffix"])}async createAll(e,...t){return Promise.all(e.map(e=>this.create(e,...t)))}async createPrefix(t,...r){const a=await oe.args(e.OperationKeys.CREATE,this.class,r);if(t=new this.class(t),a.context.get("ignoreHandlers")||await ee(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 T(e.toString())}return[t,...a.args]}async createSuffix(t,r){return r.get("ignoreHandlers")||await ee(this,r,t,e.OperationKeys.CREATE,e.OperationKeys.AFTER),t}async createAllPrefix(t,...r){const a=await oe.args(e.OperationKeys.CREATE,this.class,r),o=a.context.get("ignoreHandlers"),n=a.context.get("ignoreValidation");if(t=await Promise.all(t.map(async t=>{const r=new this.class(t);return o||await ee(this,a.context,r,e.OperationKeys.CREATE,e.OperationKeys.ON),r})),!n){const e=X(await Promise.all(t.map(e=>Promise.resolve(e.hasErrors()))));if(e)throw new T(e)}return[t,...a.args]}async createAllSuffix(t,r){return r.get("ignoreHandlers")||await Promise.all(t.map(t=>ee(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 r.get("ignoreHandlers")||await ee(this,r,t,e.OperationKeys.READ,e.OperationKeys.AFTER),t}async readPrefix(t,...r){const a=await oe.args(e.OperationKeys.READ,this.class,r),o=new this.class;return o[this.pk]=t,await ee(this,a.context,o,e.OperationKeys.READ,e.OperationKeys.ON),[t,...a.args]}async readAllPrefix(t,...r){const a=await oe.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,ee(this,a.context,r,e.OperationKeys.READ,e.OperationKeys.ON)})),[t,...a.args]}async readAllSuffix(t,r){return r.get("ignoreHandlers")||await Promise.all(t.map(t=>ee(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,a){return a.get("ignoreHandlers")||await ee(this,a,t,e.OperationKeys.UPDATE,e.OperationKeys.AFTER,r),t}async updatePrefix(t,...a){const o=await oe.args(e.OperationKeys.UPDATE,this.class,a),n=o.context,s=o.context.get("ignoreHandlers"),i=o.context.get("ignoreValidation"),c=t[this.pk];if(!c)throw new M("No value for the Id is defined under the property "+this.pk);let l;if(n.get("applyUpdateValidation")&&(l=await this.read(c),n.get("mergeForUpdate")&&(t=r.Model.merge(l,t,this.class))),s||await ee(this,o.context,t,e.OperationKeys.UPDATE,e.OperationKeys.ON,l),!i){const e=await Promise.resolve(t.hasErrors(l));if(e)throw new T(e.toString())}return[t,...o.args,l]}async updateAllPrefix(t,...a){const o=await oe.args(e.OperationKeys.UPDATE,this.class,a),n=o.context,s=n.get("ignoreHandlers"),i=n.get("ignoreValidation"),c=t.map(e=>{const t=e[this.pk];if(void 0===t)throw new M("No value for the Id is defined under the property "+this.pk);return t});let l;if(n.get("applyUpdateValidation")&&(l=await this.readAll(c,n),n.get("mergeForUpdate")&&(t=t.map((e,t)=>r.Model.merge(l[t],e,this.class)))),s||await Promise.all(t.map((t,r)=>ee(this,o.context,t,e.OperationKeys.UPDATE,e.OperationKeys.ON,l?l[r]:void 0))),!i){let e;e=n.get("applyUpdateValidation")?await Promise.all(t.map((e,t)=>Promise.resolve(e.hasErrors(l[t])))):await Promise.resolve(t.map(e=>e.hasErrors()));const r=X(e);if(r)throw new T(r)}return[t,...o.args,l]}async updateAllSuffix(t,r,a){if(a.get("applyUpdateValidation")&&!a.get("ignoreDevSafeGuards")&&!r)throw new M("No previous versions of models provided");return a.get("ignoreHandlers")||await Promise.all(t.map((t,o)=>ee(this,a,t,e.OperationKeys.UPDATE,e.OperationKeys.AFTER,r?r[o]:void 0))),t}async deleteAll(e,...t){return Promise.all(e.map(e=>this.delete(e,...t)))}async deleteSuffix(t,r){return r.get("ignoreHandlers")||await ee(this,r,t,e.OperationKeys.DELETE,e.OperationKeys.AFTER),t}async deletePrefix(t,...r){const a=await oe.args(e.OperationKeys.DELETE,this.class,r),o=await this.read(t,...a.args);return await ee(this,a.context,o,e.OperationKeys.DELETE,e.OperationKeys.ON),[t,...a.args]}async deleteAllPrefix(t,...r){const a=await oe.args(e.OperationKeys.DELETE,this.class,r),o=await this.readAll(t,...a.args);return await Promise.all(o.map(async t=>ee(this,a.context,t,e.OperationKeys.DELETE,e.OperationKeys.ON))),[t,...a.args]}async deleteAllSuffix(t,r){return r.get("ignoreHandlers")||await Promise.all(t.map(t=>ee(this,r,t,e.OperationKeys.DELETE,e.OperationKeys.AFTER))),t}toString(){return this.class.name+" Repository"}},e.SerializationError=w,e.UpdateValidationKeys=d,e.UpdateValidator=p,e.VERSION=ie,e.ValidationError=T,e.after=I,e.afterAny=(e,t,r)=>I(h.ALL,e,t,r),e.afterCreate=(e,t,r)=>I(h.CREATE,e,t,r),e.afterCreateUpdate=(e,t,r)=>I(h.CREATE_UPDATE,e,t,r),e.afterDelete=(e,t,r)=>I(h.DELETE,e,t,r),e.afterRead=(e,t,r)=>I(h.READ,e,t,r),e.afterUpdate=(e,t,r)=>I(h.UPDATE,e,t,r),e.composeAttributeValue=H,e.composed=(e,t=i,r=!1,a=!1,o="",n="",s={priority:55})=>_(e,a,t,r,"values",o,n,s),e.composedFromCreateUpdate=$,e.composedFromKeys=(e,t=i,r=!1,a=!1,o="",n="",s={priority:55})=>_(e,a,t,r,"keys",o,n,s),e.enforceDBDecorators=ee,e.generated=V,e.getDbDecorators=te,e.getHandlerArgs=v,e.getHandlersDecorators=b,e.getValidatableUpdateProps=Q,e.groupDecorators=S,e.hash=F,e.hashOnCreateUpdate=j,e.id=()=>t.apply(r.required(),B(),(e,r)=>t.propMetadata(t.Metadata.key(s.ID,r),{})(e,r)),e.on=C,e.onAny=(e,t,r)=>C(h.ALL,e,t,r),e.onCreate=x,e.onCreateUpdate=L,e.onDelete=(e,t,r)=>C(h.DELETE,e,t,r),e.onRead=(e,t,r)=>C(h.READ,e,t,r),e.onUpdate=N,e.operation=k,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=B,e.reduceErrorsToPrint=X,e.serialize=e=>t.apply(L(Y,{serializer:e}),I(h.ALL,q,{serializer:e}),r.type([String,Object]),t.metadata(s.SERIALIZE,{serializer:e})),e.serializeAfterAll=q,e.serializeOnCreateUpdate=Y,e.sortDecorators=K,e.storeHandlerMetadata=U,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 n=s.TIMESTAMP,i=r.Validation.updateKey(s.TIMESTAMP);return t.Decoration.for(n).define({decorator:(a,o)=>{const n=[V(s.TIMESTAMP),r.date(o,l.TIMESTAMP.DATE),r.required(l.TIMESTAMP.REQUIRED),t.propMetadata(r.Validation.key(s.TIMESTAMP),{operation:a,format:o}),C(a,G)];return-1!==a.indexOf(e.OperationKeys.UPDATE)?n.push(t.propMetadata(i,{message:l.TIMESTAMP.INVALID})):n.push(B()),t.apply(...n)},args:[a,o]}).apply()},e.timestampHandler=G,e.transient=()=>t.Decoration.for(s.TRANSIENT).define((e,r)=>{t.propMetadata(t.Metadata.key(s.TRANSIENT,r),{})(e,r)}).apply(),e.validateCompare=Z,e.validateDecorator=J,e.validateDecorators=W,e.version=()=>{const a=s.VERSION;return t.Decoration.for(a).define(V(s.VERSION),r.type(Number),x(z(e.OperationKeys.CREATE)),N(z(e.OperationKeys.UPDATE)),t.propMetadata(a,!0)).apply()},e.versionCreateUpdate=z,e.wrapMethodWithContext=ne,e.wrapMethodWithContextForUpdate=se},"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,n){"use strict";const s={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",GENERATED:"generated",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:s.TIMESTAMP,READONLY:s.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,f,y;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,(f=e.ModelOperations||(e.ModelOperations={})).OPERATIONS="operations",f.RELATIONS="relations",e.BulkCrudOperationKeys=void 0,(y=e.BulkCrudOperationKeys||(e.BulkCrudOperationKeys={})).CREATE_ALL="createAll",y.READ_ALL="readAll",y.UPDATE_ALL="updateAll",y.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 g{constructor(){this.cache={}}get(e,t,r,a){a=a||[];const o=this.resolveOwner(e),n=this.resolveTargetName(e,o);if(n){const e=this.selectHandlers(n,t,r,o);e?.length&&a.unshift(...e)}else if("string"==typeof e||e===Object.prototype||Object.getPrototypeOf(e)===Object.prototype)return a;let s=Object.getPrototypeOf(e);return s?(s.constructor&&s.constructor.name===n&&(s=Object.getPrototypeOf(s)),s?this.get(s,t,r,a):a):a}register(e,t,r,a){const o=r.constructor.name,n=g.getHandlerName(e),s=this.resolveFlavour(r.constructor);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]={}),this.cache[o][a][t][s][n]||(this.cache[o][a][t][s][n]=e)}resolveOwner(e){if(e&&"string"!=typeof e)return"function"==typeof e?e:e.constructor}resolveTargetName(e,t){return"string"==typeof e?e:t?.name}resolveFlavour(e){if(!e)return t.Decoration.defaultFlavour;try{return t.Metadata.flavourOf(e)}catch{return t.Decoration.defaultFlavour}}selectHandlers(e,r,a,o){const n=this.cache[e]?.[r]?.[a];if(!n)return;const s=n[this.resolveFlavour(o)]||n[t.Decoration.defaultFlavour]||this.firstBucket(n);if(!s)return;const i=Object.values(s);return i.length?i:void 0}firstBucket(e){for(const t of Object.values(e))if(t&&Object.keys(t).length)return t}static getHandlerName(e){return e.name?e.name:r.Hashing.hash(e.toString())}}class E{constructor(){}static getHandlerName(e){return g.getHandlerName(e)}static key(t){return e.OperationKeys.REFLECT+t}static get(e,t,r){return E.registry.get(e,t,r)}static getOpRegistry(){return E.registry||(E.registry=new g),E.registry}static register(e,t,r,a){E.getOpRegistry().register(e,t,r,a)}}class m extends Error{constructor(e,t,r){if(t instanceof m)return t;super(`[${e}][${r}] ${t instanceof Error?t.message:t}`),this.code=r,t instanceof Error&&(this.stack=t.stack)}get message(){return`[${this.name}] ${this.code} | ${super.message.replaceAll(/\[.*?Error\]\[\d+\]\s/g,"")}`}toString(){return this.message}}class O extends m{constructor(e,t=O.name,r=999){super(t,e,r)}}class A extends m{constructor(e,t=A.name,r=400){super(t,e,r)}}class T extends A{constructor(e){super(e,T.name,422)}}class M extends m{constructor(e,t=M.name,r=500){super(t,e,r)}}class w extends M{constructor(e){super(e,w.name,500)}}class P extends A{constructor(e){super(e,P.name,404)}}class D extends A{constructor(e){super(e,D.name,409)}}const v={priority:50},R=(e,t,r,a)=>{const o=r.constructor.name;if(!o)throw new M("Could not determine model class");a=a||{},e.props.handlers[o]&&e.props.handlers[o][t]&&(a={...e.props.handlers[o][t],...a});let n=Object.getPrototypeOf(r);return n===Object.prototype?a:(n.constructor.name===o&&(n=Object.getPrototypeOf(n)),R(e,t,n,a))};function b(e,t,r){const a=[];for(const o in t){const n=t[o];for(const t of n){const{key:n}=t,s=E.get(e,o,r+n);if(!s||!s.length)throw new M(`Could not find registered handler for the operation ${r+n} under property ${o}`);const i=R(t,o,e);if(!i)throw new M("Missing handler arguments for decorators");for(const e of s){const t=E.getHandlerName(e),r=i[t];if(!r)throw new M("Missing handler arguments for handler "+t);const n=r.data;a.push({handler:e,data:[n],prop:[o]})}}}return a}function S(e){const t=e.reduce((e,t)=>{if(!t||!t.data||!t.prop)throw new M("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 K(e){return e.sort((e,t)=>(e.data[0].priority??50)-(t.data[0].priority??50)),e}function L(e,t,r){return x(h.CREATE_UPDATE,e,t,r)}function N(e,t,r){return x(h.UPDATE,e,t,r)}function I(e,t,r){return x(h.CREATE,e,t,r)}function x(t=h.ALL,r,a,o){return C(e.OperationKeys.ON,t,r,a,o)}function k(t=h.ALL,r,a,o){return C(e.OperationKeys.AFTER,t,r,a,o)}function C(r,a=h.ALL,o,n,s=v){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 f=E.getHandlerName(o);let y=s;if(n){if(Object.keys(n).filter(e=>e in s).length>0)throw new M("Unable to merge groupSort into dataToAdd due to overlaping keys");y={...s,...n}}return u.handlers[l]&&u.handlers[l][c]&&f in u.handlers[l][c]||(u.handlers[l]=u.handlers[l]||{},u.handlers[l][c]=u.handlers[l][c]||{},u.handlers[l][c][f]={data:y},a.push(((e,t)=>(r,a)=>{E.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 U(e,r){return(...a)=>t.metadata(e,{args:a,handler:r})}function V(e){return(r,a)=>t.propMetadata(t.Metadata.key(s.GENERATED,a),e||!0)(r,a)}function j(e,t,a,o,n){if(void 0===o[a])return;const s=r.Hashing.hash(o[a]);n&&o[a]===s||(o[a]=s)}function F(){return t.apply(L(j),t.propMetadata(s.HASH,{}))}function H(e,t){const{args:a,type:o,prefix:n,suffix:s,separator:i,filterEmpty:c,hashResult:l}=t;try{const t=a.map(t=>{if("keys"===o)return t;if(void 0===e[t]){if(c){if(!Array.isArray(c))return;if(c.includes(t))return}throw new M(`Property ${a} does not contain a value to compose from`)}return e[t].toString()}).filter(e=>!c||!!e);n&&t.unshift(n),s&&t.push(s);const d=t.map(e=>"object"==typeof e&&"[object Object]"===e.toString()?JSON.stringify(e):e).join(i);return l?r.Hashing.hash(d):d}catch(e){throw new M("Failed to compose value: "+e)}}function $(e,t,r,a){a[r]=H(a,t)}function _(e,r=!1,a=i,o=!1,n="values",c="",l="",d={priority:55}){return t.Decoration.for(s.COMPOSED).define({decorator:(e,r,a,n,i,c,l)=>(d,p)=>{const u={args:e,hashResult:r,separator:a,type:n,prefix:i,suffix:c,filterEmpty:o},f=[V(s.COMPOSED),L($,u,l),t.propMetadata(t.Metadata.key(s.COMPOSED,p),u)];return r&&f.push(F()),t.apply(...f)(d,p)},args:[e,r,a,n,c,l,d]}).apply()}function z(t){return(a,o,n,s,i)=>{if(r.Model.shouldGenerate(s,n,a))try{switch(t){case e.OperationKeys.CREATE:s[n]=1;break;case e.OperationKeys.UPDATE:if(a.get("applyUpdateValidation")&&i&&s[n]!==i[n])throw new T(`Version mismatch: ${s[n]} !== ${i[n]}`);s[n]++;break;default:throw new M("Invalid operation: "+t)}}catch(e){throw new M("Failed to update version: "+e)}}}function B(e=l.READONLY.INVALID){const a=s.READONLY,o={message:e,description:"defines the attribute as readOnly",async:!1};return t.Decoration.for(a).define({decorator:r.innerValidationDecorator,args:[B,a,o]}).apply()}async function G(e,t,a,o){r.Model.shouldGenerate(o,a,e)&&(o[a]=e.timestamp)}async function Y(e,t,r,a){if(a[r])try{a[r]=t.serializer?(new t.serializer).serialize(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 q(e,t,r,a){if(a[r]&&"string"==typeof a[r])try{a[r]=t.serializer?(new t.serializer).deserialize(a[r]):JSON.parse(a[r])}catch(e){throw new w(`Failed to deserialize ${r.toString()} property of model ${a.constructor.name}: ${e}`)}}function Q(e,r){const a=[];for(const o in e){if(!Object.prototype.hasOwnProperty.call(e,o)||r.includes(o))continue;const n=t.Metadata.validationFor(e.constructor,o)||{};a.push({prop:o,decorators:n})}return a}function J(e,t,a,o,n){const s=r.Validation.get(o.key);if(!s)throw Error("Missing validator for "+o.key);if(!s.updateHasErrors)return r.toConditionalPromise(void 0,n);if(!n&&o.async)return r.toConditionalPromise(void 0,n);const i=Object.values(o)||{},c=s.updateHasErrors(e[a],t[a],...i);return r.toConditionalPromise(c,n)}function W(e,t,a,o,n){const s={};for(const i in o){const c={...o[i],key:i};if(!n&&c.async)continue;let l=J(e,t,a,c,n);if(c.key===r.ValidationKeys.LIST&&(!l||n)){const o=e[a],s=t[a],i=o instanceof Set?[...o]:o,d=s instanceof Set?[...s]:s;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=>{if(r.Model.isModel(t)){const e=r.Model.pk(t,!0);if(!e)return"Failed to find model id";const a=d.find(t=>e===r.Model.pk(t,!0));return t.hasErrors(a)}return e.includes(typeof t)?void 0:"Value has no validatable type"});if(n)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&&(s[c.key]=l)}if(!n)return Object.keys(s).length>0?s:void 0;const i=Object.keys(s),c=Object.values(s);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 Z(e,a,o,...n){const s=Q(a,n),i={},c={};for(const{prop:l,decorators:d}of s){const s=l+"",p=a[l],{designTypes:u}=t.Metadata.getPropDesignTypes(a.constructor,l);if(!u)continue;if(u.some(e=>[Array.name,Set.name].includes(e))){if(!d||!Object.keys(d).includes(r.ValidationKeys.LIST)){i[s]={[r.ValidationKeys.TYPE]:`Array or Set property '${s}' requires a @list decorator`};continue}if(p&&!(Array.isArray(p)||p instanceof Set)){i[s]={[r.ValidationKeys.TYPE]:`Property '${l+""}' must be either an Array or a Set`};continue}}const f=W(a,e,s,d,o)||{},y=r.Model.isPropertyModel(a,s);if(null!=p&&y){const t=p,a=u.map(e=>r.Model.get(e.name||e)).find(e=>!!e),o=u.map(e=>"function"==typeof e?e.name?e.name.toLowerCase():e()?.name.toLowerCase():e.toLowerCase());if(a&&p instanceof a){const a=r.getChildNestedPropsToIgnore(s,...n);c[s]=t.hasErrors(e[l],...a)}else o.includes(typeof p)||(f[r.ValidationKeys.TYPE]=a?"Value must be an instance of "+a.name:`Unable to verify type consistency, missing model registry for ${u.toString()} on prop ${s}`,delete f[r.ModelKeys.TYPE])}(Object.keys(f).length>0||o)&&(i[s]=f),o||Object.entries(c[s]||{}).forEach(([e,t])=>{void 0!==t&&(i[`${s}.${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 X(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 ee(t,r,a,o,n,s){const i=te(a,o,n);if(!i)return;const c=K(S(b(a,i,n)));for(const n of c){const i=[r,n.data.length>1?n.data:n.data[0],n.prop.length>1?n.prop:n.prop[0],a];if([e.OperationKeys.UPDATE,e.BulkCrudOperationKeys.UPDATE_ALL].includes(o)){if(!s)throw new M("Missing old model for update operation");i.push(s)}try{await n.handler.apply(t,i)}catch(e){if(r.logger.for(ee).error(`Failed to execute handler ${n.handler.name} for ${n.prop} on ${a.constructor.name}`),r.get("breakOnHandlerError"))throw e}}}function te(r,a,o){const n=o?.replace(/[.]$/,""),s=t.Metadata.get(r.constructor,e.ModelOperations.OPERATIONS);if(s)return Object.keys(s).reduce((e,t)=>{const r=n?s[t][n]||{}:s[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:Z(e,this,a,...t)):o||!e?o:Z(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,s.TRANSIENT),n={model:{},transient:{}};for(const t of a)if(Object.keys(o).includes(t)){n.transient=n.transient||{};try{n.transient[t]=e[t]}catch(e){throw new w(`Failed to serialize transient property ${t}: ${e}`)}}else n.model=n.model||{},n.model[t]=e[t];return n.model=r.Model.build(n.model,e.constructor.name),n},t.Metadata.pk=((e,a=!1)=>{if(!e)throw Error("No model was provided");const o=e instanceof r.Model?e.constructor:e,n=t.Metadata.get(o,s.ID);if(!n)throw Error("No Id property defined for model "+(o?.name||"Unknown Model"));const i=Object.keys(n)[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(t.Metadata),r.Model.pk=((e,r=!1)=>t.Metadata.pk(e,r)).bind(r.Model),r.Model.pkProps=(e=>t.Metadata.get(e,t.Metadata.key(s.ID,r.Model.pk(e)))).bind(r.Model),r.Model.isTransient=(e=>!!t.Metadata.get("function"!=typeof e?e.constructor:e,s.TRANSIENT)).bind(r.Model),r.Model.composed=((e,a)=>{const o=e instanceof r.Model?e.constructor:e;return a?t.Metadata.get(o,t.Metadata.key(s.COMPOSED,a)):!!t.Metadata.get(o,s.COMPOSED)}).bind(r.Model),r.Model.merge=((e,t,r)=>{const a=e=>Object.entries(e).reduce((e,[t,r])=>(null!=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,n)=>{a&&t.Metadata.set(r,t.Metadata.key(e.ModelOperations.OPERATIONS,a,o),n)}).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,s.TRANSIENT)).bind(t.Metadata),r.Model.generated=((e,r)=>!!t.Metadata.get("function"!=typeof e?e.constructor:e,t.Metadata.key(s.GENERATED,r))).bind(r.Model),r.Model.shouldGenerate=((e,t,r)=>!r.get("allowGenerationOverride")||void 0===e[t]).bind(r.Model),r.Model.versionProp=(e=>{const r=t.Metadata.get(e.constructor);if(!r||!r[s.VERSION])throw new M("No version found for "+e.constructor.name);return Object.keys(r)[0]}).bind(r.Model),r.Model.versionOf=(e=>{const t=e[r.Model.versionProp(e)];if("number"!=typeof t||1>t)throw new M("Invalid version number: "+t);return t}).bind(r.Model);const re={parentContext:void 0,childContexts:[],ignoredValidationProperties:[],callArgs:[],writeOperation:!1,affectedTables:[],operation:void 0,breakOnHandlerError:!0,rebuildWithTransient:!0,ignoreValidation:!1,ignoreHandlers:!1,ignoreDevSafeGuards:!1,mergeForUpdate:!0,applyUpdateValidation:!0,allowGenerationOverride:!1},ae=e=>(new oe).accumulate(Object.assign({},e,{timestamp:new Date,logger:e.logger||n.Logging.get()}));class oe{constructor(e){this.cache=new o.ObjectAccumulator,Object.defineProperty(this,"cache",{value:e?e.cache:new o.ObjectAccumulator,writable:!1,enumerable:!1,configurable:!0})}static{this.factory=ae}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 oe.factory(Object.assign({},e.cache,t||{}))}static async from(e,t,r,...a){return oe.factory(Object.assign({},re,t,{operation:e,model:r,logger:t.logger||n.Logging.get()}))}static async args(e,t,r,a,o){const n=r.pop();async function s(){return a?a.context(e,o||{},t,...r):oe.from(e,o||{},t,...r)}let i;return n?n instanceof oe?(i=n,r.push(n)):(r.push(n),i=await s(),r.push(i)):(i=await s(),r.push(i)),{context:i,args:r}}}function ne(e,t,r,a,o){const n=o||r.name;e[n]=new Proxy(e[n],{apply:async(e,r,o)=>{let n=t.call(r,...o);n instanceof Promise&&(n=await n);const s=n[n.length-1];if(!(s instanceof oe))throw new M("Missing a context");let i=e.call(r,...n);return i instanceof Promise&&(i=await i),i=a.call(r,i,s),i instanceof Promise&&(i=await i),i}})}function se(e,t,a,o,n){const s=n||a.name;e[s]=new Proxy(e[s],{apply:async(e,a,n)=>{let s=t.call(a,...n);s instanceof Promise&&(s=await s);const i=s.pop(),c=s[s.length-1];if(!(c instanceof oe))throw new M("Missing a context");if(c.get("applyUpdateValidation")&&!c.get("ignoreDevSafeGuards")&&!(i instanceof r.Model)&&(!Array.isArray(i)||!i.every(e=>e instanceof r.Model)))throw new M("No previous versions os models found");let l=e.call(a,...s);return l instanceof Promise&&(l=await l),l=o.call(a,l,i,c),l instanceof Promise&&(l=await l),l}})}const ie="##VERSION##",ce="##PACKAGE##";t.Metadata.registerLibrary(ce,ie),e.BadRequestError=A,e.BaseError=m,e.BlockOperationIf=t=>U(e.OperationKeys.REFLECT+e.OperationKeys.BLOCK,t)(),e.BlockOperations=t=>U(e.OperationKeys.REFLECT+e.OperationKeys.BLOCK,(e,t)=>e.includes(t))(t),e.BreakError=O,e.ConflictError=D,e.Context=oe,e.DBKeys=s,e.DBOperations=h,e.DEFAULT_ERROR_MESSAGES=l,e.DEFAULT_TIMESTAMP_FORMAT=c,e.DefaultContextFactory=ae,e.DefaultRepositoryFlags=re,e.DefaultSeparator=i,e.InternalError=M,e.NotFoundError=P,e.Operations=E,e.OperationsRegistry=g,e.PACKAGE_NAME=ce,e.Repository=class{get class(){if(!this._class)throw new M("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.delete].forEach(e=>{const r=e.name;ne(t,t[r+"Prefix"],e,t[r+"Suffix"])}),se(t,t[this.update.name+"Prefix"],this.update,t[this.update.name+"Suffix"])}async createAll(e,...t){return Promise.all(e.map(e=>this.create(e,...t)))}async createPrefix(t,...r){const a=await oe.args(e.OperationKeys.CREATE,this.class,r);if(t=new this.class(t),a.context.get("ignoreHandlers")||await ee(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 T(e.toString())}return[t,...a.args]}async createSuffix(t,r){return r.get("ignoreHandlers")||await ee(this,r,t,e.OperationKeys.CREATE,e.OperationKeys.AFTER),t}async createAllPrefix(t,...r){const a=await oe.args(e.OperationKeys.CREATE,this.class,r),o=a.context.get("ignoreHandlers"),n=a.context.get("ignoreValidation");if(t=await Promise.all(t.map(async t=>{const r=new this.class(t);return o||await ee(this,a.context,r,e.OperationKeys.CREATE,e.OperationKeys.ON),r})),!n){const e=X(await Promise.all(t.map(e=>Promise.resolve(e.hasErrors()))));if(e)throw new T(e)}return[t,...a.args]}async createAllSuffix(t,r){return r.get("ignoreHandlers")||await Promise.all(t.map(t=>ee(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 r.get("ignoreHandlers")||await ee(this,r,t,e.OperationKeys.READ,e.OperationKeys.AFTER),t}async readPrefix(t,...r){const a=await oe.args(e.OperationKeys.READ,this.class,r),o=new this.class;return o[this.pk]=t,await ee(this,a.context,o,e.OperationKeys.READ,e.OperationKeys.ON),[t,...a.args]}async readAllPrefix(t,...r){const a=await oe.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,ee(this,a.context,r,e.OperationKeys.READ,e.OperationKeys.ON)})),[t,...a.args]}async readAllSuffix(t,r){return r.get("ignoreHandlers")||await Promise.all(t.map(t=>ee(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,a){return a.get("ignoreHandlers")||await ee(this,a,t,e.OperationKeys.UPDATE,e.OperationKeys.AFTER,r),t}async updatePrefix(t,...a){const o=await oe.args(e.OperationKeys.UPDATE,this.class,a),n=o.context,s=o.context.get("ignoreHandlers"),i=o.context.get("ignoreValidation"),c=t[this.pk];if(!c)throw new M("No value for the Id is defined under the property "+this.pk);let l;if(n.get("applyUpdateValidation")&&(l=await this.read(c),n.get("mergeForUpdate")&&(t=r.Model.merge(l,t,this.class))),s||await ee(this,o.context,t,e.OperationKeys.UPDATE,e.OperationKeys.ON,l),!i){const e=await Promise.resolve(t.hasErrors(l));if(e)throw new T(e.toString())}return[t,...o.args,l]}async updateAllPrefix(t,...a){const o=await oe.args(e.OperationKeys.UPDATE,this.class,a),n=o.context,s=n.get("ignoreHandlers"),i=n.get("ignoreValidation"),c=t.map(e=>{const t=e[this.pk];if(void 0===t)throw new M("No value for the Id is defined under the property "+this.pk);return t});let l;if(n.get("applyUpdateValidation")&&(l=await this.readAll(c,n),n.get("mergeForUpdate")&&(t=t.map((e,t)=>r.Model.merge(l[t],e,this.class)))),s||await Promise.all(t.map((t,r)=>ee(this,o.context,t,e.OperationKeys.UPDATE,e.OperationKeys.ON,l?l[r]:void 0))),!i){let e;e=n.get("applyUpdateValidation")?await Promise.all(t.map((e,t)=>Promise.resolve(e.hasErrors(l[t])))):await Promise.resolve(t.map(e=>e.hasErrors()));const r=X(e);if(r)throw new T(r)}return[t,...o.args,l]}async updateAllSuffix(t,r,a){if(a.get("applyUpdateValidation")&&!a.get("ignoreDevSafeGuards")&&!r)throw new M("No previous versions of models provided");return a.get("ignoreHandlers")||await Promise.all(t.map((t,o)=>ee(this,a,t,e.OperationKeys.UPDATE,e.OperationKeys.AFTER,r?r[o]:void 0))),t}async deleteAll(e,...t){return Promise.all(e.map(e=>this.delete(e,...t)))}async deleteSuffix(t,r){return r.get("ignoreHandlers")||await ee(this,r,t,e.OperationKeys.DELETE,e.OperationKeys.AFTER),t}async deletePrefix(t,...r){const a=await oe.args(e.OperationKeys.DELETE,this.class,r),o=await this.read(t,...a.args);return await ee(this,a.context,o,e.OperationKeys.DELETE,e.OperationKeys.ON),[t,...a.args]}async deleteAllPrefix(t,...r){const a=await oe.args(e.OperationKeys.DELETE,this.class,r),o=await this.readAll(t,...a.args);return await Promise.all(o.map(async t=>ee(this,a.context,t,e.OperationKeys.DELETE,e.OperationKeys.ON))),[t,...a.args]}async deleteAllSuffix(t,r){return r.get("ignoreHandlers")||await Promise.all(t.map(t=>ee(this,r,t,e.OperationKeys.DELETE,e.OperationKeys.AFTER))),t}toString(){return this.class.name+" Repository"}},e.SerializationError=w,e.UpdateValidationKeys=d,e.UpdateValidator=p,e.VERSION=ie,e.ValidationError=T,e.after=k,e.afterAny=(e,t,r)=>k(h.ALL,e,t,r),e.afterCreate=(e,t,r)=>k(h.CREATE,e,t,r),e.afterCreateUpdate=(e,t,r)=>k(h.CREATE_UPDATE,e,t,r),e.afterDelete=(e,t,r)=>k(h.DELETE,e,t,r),e.afterRead=(e,t,r)=>k(h.READ,e,t,r),e.afterUpdate=(e,t,r)=>k(h.UPDATE,e,t,r),e.composeAttributeValue=H,e.composed=(e,t=i,r=!1,a=!1,o="",n="",s={priority:55})=>_(e,a,t,r,"values",o,n,s),e.composedFromCreateUpdate=$,e.composedFromKeys=(e,t=i,r=!1,a=!1,o="",n="",s={priority:55})=>_(e,a,t,r,"keys",o,n,s),e.enforceDBDecorators=ee,e.generated=V,e.getDbDecorators=te,e.getHandlerArgs=R,e.getHandlersDecorators=b,e.getValidatableUpdateProps=Q,e.groupDecorators=S,e.hash=F,e.hashOnCreateUpdate=j,e.id=()=>t.apply(r.required(),B(),(e,r)=>t.propMetadata(t.Metadata.key(s.ID,r),{})(e,r)),e.on=x,e.onAny=(e,t,r)=>x(h.ALL,e,t,r),e.onCreate=I,e.onCreateUpdate=L,e.onDelete=(e,t,r)=>x(h.DELETE,e,t,r),e.onRead=(e,t,r)=>x(h.READ,e,t,r),e.onUpdate=N,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=B,e.reduceErrorsToPrint=X,e.serialize=e=>t.apply(L(Y,{serializer:e}),k(h.ALL,q,{serializer:e}),r.type([String,Object]),t.metadata(s.SERIALIZE,{serializer:e})),e.serializeAfterAll=q,e.serializeOnCreateUpdate=Y,e.sortDecorators=K,e.storeHandlerMetadata=U,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 n=s.TIMESTAMP,i=r.Validation.updateKey(s.TIMESTAMP);return t.Decoration.for(n).define({decorator:(a,o)=>{const n=[V(s.TIMESTAMP),r.date(o,l.TIMESTAMP.DATE),r.required(l.TIMESTAMP.REQUIRED),t.propMetadata(r.Validation.key(s.TIMESTAMP),{operation:a,format:o}),x(a,G)];return-1!==a.indexOf(e.OperationKeys.UPDATE)?n.push(t.propMetadata(i,{message:l.TIMESTAMP.INVALID})):n.push(B()),t.apply(...n)},args:[a,o]}).apply()},e.timestampHandler=G,e.transient=()=>t.Decoration.for(s.TRANSIENT).define((e,r)=>{t.propMetadata(t.Metadata.key(s.TRANSIENT,r),{})(e,r)}).apply(),e.validateCompare=Z,e.validateDecorator=J,e.validateDecorators=W,e.version=()=>{const a=s.VERSION;return(o,n)=>t.Decoration.for(a).define(t.propMetadata(t.Metadata.key(a,n),!0),V(s.VERSION),r.type(Number),I(z(e.OperationKeys.CREATE)),N(z(e.OperationKeys.UPDATE))).apply()(o,n)},e.versionCreateUpdate=z,e.wrapMethodWithContext=ne,e.wrapMethodWithContextForUpdate=se},"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/model/decorators.ts","../src/validation/decorators.ts","../src/model/validation.ts","../src/repository/utils.ts","../src/overrides/overrides.ts","../src/repository/constants.ts","../src/repository/Context.ts","../src/repository/wrappers.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],"names":["DBKeys","REFLECT","ModelKeys","MODEL","REPOSITORY","CLASS","ID","INDEX","UNIQUE","SERIALIZE","READONLY","TIMESTAMP","TRANSIENT","HASH","COMPOSED","GENERATED","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","owner","resolveOwner","name","resolveTargetName","handlers","selectHandlers","length","unshift","Object","prototype","getPrototypeOf","proto","register","handler","handlerName","getHandlerName","flavour","resolveFlavour","Decoration","defaultFlavour","Metadata","flavourOf","byOperation","bucket","firstBucket","values","keys","Hashing","hash","toString","Operations","str","targetName","registry","getOpRegistry","BaseError","Error","msg","code","stack","replaceAll","BreakError","BadRequestError","ValidationError","InternalError","SerializationError","NotFoundError","ConflictError","DefaultGroupSort","priority","getHandlerArgs","dec","prop","m","props","getHandlersDecorators","model","decorators","prefix","decs","handlerArgs","argsEntry","data","push","groupDecorators","grouped","reduce","acc","group","set","Symbol","groupKey","has","existing","Map","groups","Array","from","forEach","combined","map","d","i","sort","a","b","groupPriority","c","sortDecorators","onCreateUpdate","groupsort","on","onUpdate","onCreate","op","ON","after","AFTER","baseOp","dataToAdd","propertyKey","compoundKey","readOperation","handlerKey","mergeData","filter","handle","propMetadata","OPERATIONS","apply","storeHandlerMetadata","params","metadata","generated","type","hashOnCreateUpdate","context","oldModel","composeAttributeValue","suffix","separator","filterEmpty","hashResult","composed","arg","isArray","includes","JSON","stringify","join","composedFromCreateUpdate","composedFrom","for","define","decorator","property","versionCreateUpdate","Model","shouldGenerate","readonly","meta","description","async","innerValidationDecorator","timestampHandler","timestamp","serializeOnCreateUpdate","serializer","serialize","serializeAfterAll","deserialize","parse","getValidatableUpdateProps","propsToIgnore","decoratedProperties","hasOwnProperty","call","validationFor","validateDecorator","newModel","toConditionalPromise","decoratorProps","maybeError","validateDecorators","result","decoratorKey","validationErrors","ValidationKeys","LIST","newPropValue","oldPropValue","newValues","Set","oldValues","allowedTypes","class","clazz","customTypes","flat","t","String","toLowerCase","errs","childValue","isModel","id","pk","oldListModel","find","el","Promise","all","then","every","r","allEmpty","promises","resolvedValues","res","val","validateCompare","ValidatableUpdateProps","nestedErrors","propValue","designTypes","getPropDesignTypes","some","TYPE","propErrors","isConstr","isPropertyModel","instance","Constr","designTypeNames","nestedPropsToIgnore","getChildNestedPropsToIgnore","entries","error","ModelErrorDefinition","merged","allSettled","results","parentProp","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","status","reason","reduceErrorsToPrint","errors","enforceDBDecorators","repo","getDbDecorators","sortedDecorators","UPDATE_ALL","logger","extraPrefix","replace","obj","isTransient","previousVersion","exclusions","isAsync","validate","resolve","resolvedErrs","segregate","validatableProperties","transientProps","transient","build","keyValue","constr","idProp","bind","pkProps","merge","extractData","assign","saveOperation","ctx","DefaultRepositoryFlags","parentContext","childContexts","ignoredValidationProperties","callArgs","writeOperation","affectedTables","breakOnHandlerError","rebuildWithTransient","ignoreValidation","ignoreHandlers","ignoreDevSafeGuards","mergeForUpdate","applyUpdateValidation","allowGenerationOverride","DefaultContextFactory","Context","accumulate","Logging","ObjectAccumulator","defineProperty","writable","enumerable","configurable","factory","parent","childFrom","overrides","contextual","last","pop","getContext","wrapMethodWithContext","before","method","methodName","Proxy","thisArg","argArray","transformedArgs","wrapMethodWithContextForUpdate","o","PACKAGE_NAME","registerLibrary","BLOCK","operations","_class","self","create","read","delete","update","createAll","models","createPrefix","contextArgs","createSuffix","createAllPrefix","ignoreValidate","createAllSuffix","readAll","readSuffix","readPrefix","readAllPrefix","k","readAllSuffix","updateAll","updateSuffix","updatePrefix","updateAllPrefix","ids","oldModels","modelsValidation","updateAllSuffix","deleteAll","deleteSuffix","deletePrefix","deleteAllPrefix","deleteAllSuffix","required","afterName","beforeName","format","decorationKey","updateValidationKey","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/model/decorators.ts","../src/validation/decorators.ts","../src/model/validation.ts","../src/repository/utils.ts","../src/overrides/overrides.ts","../src/repository/constants.ts","../src/repository/Context.ts","../src/repository/wrappers.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],"names":["DBKeys","REFLECT","ModelKeys","MODEL","REPOSITORY","CLASS","ID","INDEX","UNIQUE","SERIALIZE","READONLY","TIMESTAMP","TRANSIENT","HASH","COMPOSED","GENERATED","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","owner","resolveOwner","name","resolveTargetName","handlers","selectHandlers","length","unshift","Object","prototype","getPrototypeOf","proto","register","handler","handlerName","getHandlerName","flavour","resolveFlavour","Decoration","defaultFlavour","Metadata","flavourOf","byOperation","bucket","firstBucket","values","keys","Hashing","hash","toString","Operations","str","targetName","registry","getOpRegistry","BaseError","Error","msg","code","stack","replaceAll","BreakError","BadRequestError","ValidationError","InternalError","SerializationError","NotFoundError","ConflictError","DefaultGroupSort","priority","getHandlerArgs","dec","prop","m","props","getHandlersDecorators","model","decorators","prefix","decs","handlerArgs","argsEntry","data","push","groupDecorators","grouped","reduce","acc","group","set","Symbol","groupKey","has","existing","Map","groups","Array","from","forEach","combined","map","d","i","sort","a","b","groupPriority","c","sortDecorators","onCreateUpdate","groupsort","on","onUpdate","onCreate","op","ON","after","AFTER","baseOp","dataToAdd","propertyKey","compoundKey","readOperation","handlerKey","mergeData","filter","handle","propMetadata","OPERATIONS","apply","storeHandlerMetadata","params","metadata","generated","type","hashOnCreateUpdate","context","oldModel","composeAttributeValue","suffix","separator","filterEmpty","hashResult","composed","arg","isArray","includes","JSON","stringify","join","composedFromCreateUpdate","composedFrom","for","define","decorator","property","versionCreateUpdate","Model","shouldGenerate","readonly","meta","description","async","innerValidationDecorator","timestampHandler","timestamp","serializeOnCreateUpdate","serializer","serialize","serializeAfterAll","deserialize","parse","getValidatableUpdateProps","propsToIgnore","decoratedProperties","hasOwnProperty","call","validationFor","validateDecorator","newModel","toConditionalPromise","decoratorProps","maybeError","validateDecorators","result","decoratorKey","validationErrors","ValidationKeys","LIST","newPropValue","oldPropValue","newValues","Set","oldValues","allowedTypes","class","clazz","customTypes","flat","t","String","toLowerCase","errs","childValue","isModel","id","pk","oldListModel","find","el","Promise","all","then","every","r","allEmpty","promises","resolvedValues","res","val","validateCompare","ValidatableUpdateProps","nestedErrors","propValue","designTypes","getPropDesignTypes","some","TYPE","propErrors","isConstr","isPropertyModel","instance","Constr","designTypeNames","nestedPropsToIgnore","getChildNestedPropsToIgnore","entries","error","ModelErrorDefinition","merged","allSettled","results","parentProp","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","status","reason","reduceErrorsToPrint","errors","enforceDBDecorators","repo","getDbDecorators","sortedDecorators","UPDATE_ALL","logger","extraPrefix","replace","obj","isTransient","previousVersion","exclusions","isAsync","validate","resolve","resolvedErrs","segregate","validatableProperties","transientProps","transient","build","keyValue","constr","idProp","bind","pkProps","merge","extractData","assign","saveOperation","ctx","versionProp","versionOf","version","DefaultRepositoryFlags","parentContext","childContexts","ignoredValidationProperties","callArgs","writeOperation","affectedTables","breakOnHandlerError","rebuildWithTransient","ignoreValidation","ignoreHandlers","ignoreDevSafeGuards","mergeForUpdate","applyUpdateValidation","allowGenerationOverride","DefaultContextFactory","Context","accumulate","Logging","ObjectAccumulator","defineProperty","writable","enumerable","configurable","factory","parent","childFrom","overrides","contextual","last","pop","getContext","wrapMethodWithContext","before","method","methodName","Proxy","thisArg","argArray","transformedArgs","wrapMethodWithContextForUpdate","o","PACKAGE_NAME","registerLibrary","BLOCK","operations","_class","self","create","read","delete","update","createAll","models","createPrefix","contextArgs","createSuffix","createAllPrefix","ignoreValidate","createAllSuffix","readAll","readSuffix","readPrefix","readAllPrefix","k","readAllSuffix","updateAll","updateSuffix","updatePrefix","updateAllPrefix","ids","oldModels","modelsValidation","updateAllSuffix","deleteAll","deleteSuffix","deletePrefix","deleteAllPrefix","deleteAllSuffix","required","afterName","beforeName","format","decorationKey","updateValidationKey","date","indexOf","attribute","Number"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{Decoration as e,Metadata as t,propMetadata as r,apply as n,metadata 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,type as f,Model as p,innerValidationDecorator as h,date as E,required as g,ValidationKeys as y,getChildNestedPropsToIgnore as m,ModelErrorDefinition as A,toConditionalPromise as T,validate as w}from"@decaf-ts/decorator-validation";import{__decorate as P,__metadata as O}from"tslib";import{ObjectAccumulator as R}from"typed-object-accumulator";import{Logging as v}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",GENERATED:"generated",VERSION:"version",ORIGINAL:"__originalObj"},S="_",b="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"}},N={REFLECT:"db.update.validation.",TIMESTAMP:D.TIMESTAMP,READONLY:D.READONLY};let I=class extends i{constructor(){super(L.READONLY.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,r){if(void 0!==e)return c(e,t)?void 0:this.getMessage(r||this.message)}};I=P([o(N.READONLY),O("design:paramtypes",[])],I);let x=class extends i{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}}};x=P([o(N.TIMESTAMP),O("design:paramtypes",[])],x);class k extends i{constructor(e=l.DEFAULT,...t){super(e,...t)}}var C,M,j;u.updateKey=e=>N.REFLECT+e,(e=>{e.REFLECT="decaf.model.db.operations.",e.CREATE="create",e.READ="read",e.UPDATE="update",e.DELETE="delete",e.ON="on.",e.AFTER="after.",e.BLOCK="block"})(C||(C={})),(e=>{e.OPERATIONS="operations",e.RELATIONS="relations"})(M||(M={})),(e=>{e.CREATE_ALL="createAll",e.READ_ALL="readAll",e.UPDATE_ALL="updateAll",e.DELETE_ALL="deleteAll"})(j||(j={}));const U={CREATE:[C.CREATE],READ:[C.READ],UPDATE:[C.UPDATE],DELETE:[C.DELETE],CREATE_UPDATE:[C.CREATE,C.UPDATE],READ_CREATE:[C.READ,C.CREATE],ALL:[C.CREATE,C.READ,C.UPDATE,C.DELETE]};class F{constructor(){this.cache={}}get(e,t,r,n){n=n||[];const s=this.resolveOwner(e),a=this.resolveTargetName(e,s);if(a){const e=this.selectHandlers(a,t,r,s);e?.length&&n.unshift(...e)}else if("string"==typeof e||e===Object.prototype||Object.getPrototypeOf(e)===Object.prototype)return n;let o=Object.getPrototypeOf(e);return o?(o.constructor&&o.constructor.name===a&&(o=Object.getPrototypeOf(o)),o?this.get(o,t,r,n):n):n}register(e,t,r,n){const s=r.constructor.name,a=F.getHandlerName(e),o=this.resolveFlavour(r.constructor);this.cache[s]||(this.cache[s]={}),this.cache[s][n]||(this.cache[s][n]={}),this.cache[s][n][t]||(this.cache[s][n][t]={}),this.cache[s][n][t][o]||(this.cache[s][n][t][o]={}),this.cache[s][n][t][o][a]||(this.cache[s][n][t][o][a]=e)}resolveOwner(e){if(e&&"string"!=typeof e)return"function"==typeof e?e:e.constructor}resolveTargetName(e,t){return"string"==typeof e?e:t?.name}resolveFlavour(r){if(!r)return e.defaultFlavour;try{return t.flavourOf(r)}catch{return e.defaultFlavour}}selectHandlers(t,r,n,s){const a=this.cache[t]?.[r]?.[n];if(!a)return;const o=a[this.resolveFlavour(s)]||a[e.defaultFlavour]||this.firstBucket(a);if(!o)return;const i=Object.values(o);return i.length?i:void 0}firstBucket(e){for(const t of Object.values(e))if(t&&Object.keys(t).length)return t}static getHandlerName(e){return e.name?e.name:d.hash(e.toString())}}class H{constructor(){}static getHandlerName(e){return F.getHandlerName(e)}static key(e){return C.REFLECT+e}static get(e,t,r){return H.registry.get(e,t,r)}static getOpRegistry(){return H.registry||(H.registry=new F),H.registry}static register(e,t,r,n){H.getOpRegistry().register(e,t,r,n)}}class $ extends Error{constructor(e,t,r){if(t instanceof $)return t;super(`[${e}][${r}] ${t instanceof Error?t.message:t}`),this.code=r,t instanceof Error&&(this.stack=t.stack)}get message(){return`[${this.name}] ${this.code} | ${super.message.replaceAll(/\[.*?Error\]\[\d+\]\s/g,"")}`}toString(){return this.message}}class V extends ${constructor(e,t=V.name,r=999){super(t,e,r)}}class _ extends ${constructor(e,t=_.name,r=400){super(t,e,r)}}class z extends _{constructor(e){super(e,z.name,422)}}class G extends ${constructor(e,t=G.name,r=500){super(t,e,r)}}class Y extends G{constructor(e){super(e,Y.name,500)}}class K extends _{constructor(e){super(e,K.name,404)}}class B extends _{constructor(e){super(e,B.name,409)}}const Q={priority:50},J=(e,t,r,n)=>{const s=r.constructor.name;if(!s)throw new G("Could not determine model class");n=n||{},e.props.handlers[s]&&e.props.handlers[s][t]&&(n={...e.props.handlers[s][t],...n});let a=Object.getPrototypeOf(r);return a===Object.prototype?n:(a.constructor.name===s&&(a=Object.getPrototypeOf(a)),J(e,t,a,n))};function q(e,t,r){const n=[];for(const s in t){const a=t[s];for(const t of a){const{key:a}=t,o=H.get(e,s,r+a);if(!o||!o.length)throw new G(`Could not find registered handler for the operation ${r+a} under property ${s}`);const i=J(t,s,e);if(!i)throw new G("Missing handler arguments for decorators");for(const e of o){const t=H.getHandlerName(e),r=i[t];if(!r)throw new G("Missing handler arguments for handler "+t);const a=r.data;n.push({handler:e,data:[a],prop:[s]})}}}return n}function Z(e){const t=e.reduce((e,t)=>{if(!t||!t.data||!t.prop)throw new G("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 n=e.get(r);e.set(r,{handler:n.handler,data:[...n.data,...t.data],prop:[...n.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 W(e){return e.sort((e,t)=>(e.data[0].priority??50)-(t.data[0].priority??50)),e}function X(e,t,r){return ae(U.CREATE_UPDATE,e,t,r)}function ee(e,t,r){return ae(U.UPDATE,e,t,r)}function te(e,t,r){return ae(U.CREATE,e,t,r)}function re(e,t,r){return ae(U.READ,e,t,r)}function ne(e,t,r){return ae(U.DELETE,e,t,r)}function se(e,t,r){return ae(U.ALL,e,t,r)}function ae(e=U.ALL,t,r,n){return pe(C.ON,e,t,r,n)}function oe(e,t,r){return fe(U.CREATE_UPDATE,e,t,r)}function ie(e,t,r){return fe(U.UPDATE,e,t,r)}function ce(e,t,r){return fe(U.CREATE,e,t,r)}function le(e,t,r){return fe(U.READ,e,t,r)}function ue(e,t,r){return fe(U.DELETE,e,t,r)}function de(e,t,r){return fe(U.ALL,e,t,r)}function fe(e=U.ALL,t,r,n){return pe(C.AFTER,e,t,r,n)}function pe(e,s=U.ALL,a,o,i=Q){return(c,l)=>{const u=c.constructor.name,d=s.reduce((n,s)=>{const d=e+s;let f=t.readOperation(c.constructor,l,d);f||(f={operation:s,handlers:{}});const p=H.getHandlerName(a);let h=i;if(o){if(Object.keys(o).filter(e=>e in i).length>0)throw new G("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},n.push(((e,t)=>(r,n)=>{H.register(t,e,r,n)})(d,a),r(t.key(M.OPERATIONS,l,d),f))),n},[]);return n(...d)(c,l)}}function he(e,t){return(...r)=>s(e,{args:r,handler:t})}const Ee=e=>he(C.REFLECT+C.BLOCK,(e,t)=>e.includes(t))(e),ge=e=>he(C.REFLECT+C.BLOCK,e)();function ye(e){return(n,s)=>r(t.key(D.GENERATED,s),e||!0)(n,s)}function me(e,t,r,n,s){if(void 0===n[r])return;const a=d.hash(n[r]);s&&n[r]===a||(n[r]=a)}function Ae(){return n(X(me),r(D.HASH,{}))}function Te(e,t){const{args:r,type:n,prefix:s,suffix:a,separator:o,filterEmpty:i,hashResult:c}=t;try{const t=r.map(t=>{if("keys"===n)return t;if(void 0===e[t]){if(i){if(!Array.isArray(i))return;if(i.includes(t))return}throw new G(`Property ${r} does not contain a value to compose from`)}return e[t].toString()}).filter(e=>!i||!!e);s&&t.unshift(s),a&&t.push(a);const l=t.map(e=>"object"==typeof e&&"[object Object]"===e.toString()?JSON.stringify(e):e).join(o);return c?d.hash(l):l}catch(e){throw new G("Failed to compose value: "+e)}}function we(e,t,r,n){n[r]=Te(n,t)}function Pe(s,a=!1,o=S,i=!1,c="values",l="",u="",d={priority:55}){return e.for(D.COMPOSED).define({decorator:(e,s,a,o,c,l,u)=>(d,f)=>{const p={args:e,hashResult:s,separator:a,type:o,prefix:c,suffix:l,filterEmpty:i},h=[ye(D.COMPOSED),X(we,p,u),r(t.key(D.COMPOSED,f),p)];return s&&h.push(Ae()),n(...h)(d,f)},args:[s,a,o,c,l,u,d]}).apply()}function Oe(e,t=S,r=!1,n=!1,s="",a="",o={priority:55}){return Pe(e,n,t,r,"keys",s,a,o)}function Re(e,t=S,r=!1,n=!1,s="",a="",o={priority:55}){return Pe(e,n,t,r,"values",s,a,o)}function ve(e){return(t,r,n,s,a)=>{if(p.shouldGenerate(s,n,t))try{switch(e){case C.CREATE:s[n]=1;break;case C.UPDATE:if(t.get("applyUpdateValidation")&&a&&s[n]!==a[n])throw new z(`Version mismatch: ${s[n]} !== ${a[n]}`);s[n]++;break;default:throw new G("Invalid operation: "+e)}}catch(e){throw new G("Failed to update version: "+e)}}}function De(){const t=D.VERSION;return e.for(t).define(ye(D.VERSION),f(Number),te(ve(C.CREATE)),ee(ve(C.UPDATE)),r(t,!0)).apply()}function Se(){return e.for(D.TRANSIENT).define((e,n)=>{r(t.key(D.TRANSIENT,n),{})(e,n)}).apply()}function be(t=L.READONLY.INVALID){const r=D.READONLY,n={message:t,description:"defines the attribute as readOnly",async:!1};return e.for(r).define({decorator:h,args:[be,r,n]}).apply()}async function Le(e,t,r,n){p.shouldGenerate(n,r,e)&&(n[r]=e.timestamp)}function Ne(t=U.CREATE_UPDATE,s=b){const a=D.TIMESTAMP,o=u.updateKey(D.TIMESTAMP);return e.for(a).define({decorator:(e,t)=>{const s=[ye(D.TIMESTAMP),E(t,L.TIMESTAMP.DATE),g(L.TIMESTAMP.REQUIRED),r(u.key(D.TIMESTAMP),{operation:e,format:t}),ae(e,Le)];return-1!==e.indexOf(C.UPDATE)?s.push(r(o,{message:L.TIMESTAMP.INVALID})):s.push(be()),n(...s)},args:[t,s]}).apply()}async function Ie(e,t,r,n){if(n[r])try{n[r]=t.serializer?(new t.serializer).serialize(n[r]):JSON.stringify(n[r])}catch(e){throw new Y(`Failed to serialize ${r.toString()} property of model ${n.constructor.name}: ${e}`)}}async function xe(e,t,r,n){if(n[r]&&"string"==typeof n[r])try{n[r]=t.serializer?(new t.serializer).deserialize(n[r]):JSON.parse(n[r])}catch(e){throw new Y(`Failed to deserialize ${r.toString()} property of model ${n.constructor.name}: ${e}`)}}function ke(e){return n(X(Ie,{serializer:e}),fe(U.ALL,xe,{serializer:e}),f([String,Object]),s(D.SERIALIZE,{serializer:e}))}function Ce(){return n(g(),be(),(e,n)=>r(t.key(D.ID,n),{})(e,n))}function Me(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 je(e,t,r,n,s){const a=u.get(n.key);if(!a)throw Error("Missing validator for "+n.key);if(!a.updateHasErrors)return T(void 0,s);if(!s&&n.async)return T(void 0,s);const o=Object.values(n)||{},i=a.updateHasErrors(e[r],t[r],...o);return T(i,s)}function Ue(e,t,r,n,s){const a={};for(const o in n){const i={...n[o],key:o};if(!s&&i.async)continue;let c=je(e,t,r,i,s);if(i.key===y.LIST&&(!c||s)){const n=e[r],a=t[r],o=n instanceof Set?[...n]:n,l=a instanceof Set?[...a]:a;if(o?.length){const e=[i.class||i.clazz||i.customTypes].flat().map(e=>((e=(e="function"!=typeof e||e.name?e:e()).name?e.name:e)+"").toLowerCase()),t=o.map(t=>{if(p.isModel(t)){const e=p.pk(t,!0);if(!e)return"Failed to find model id";const r=l.find(t=>e===p.pk(t,!0));return t.hasErrors(r)}return e.includes(typeof t)?void 0:"Value has no validatable type"});if(s)c=Promise.all(t).then(e=>e.every(e=>!e)?void 0:e);else{const e=t.every(e=>!e);c=t.length>0&&!e?t: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(e=>{const t={};for(let r=0;r<e.length;r++){const n=e[r];void 0!==n&&(t[o[r]]=n)}return Object.keys(t).length>0?t:void 0})}function Fe(e,r,n,...s){const o=Me(r,s),i={},c={};for(const{prop:l,decorators:u}of o){const o=l+"",d=r[l],{designTypes:f}=t.getPropDesignTypes(r.constructor,l);if(!f)continue;if(f.some(e=>[Array.name,Set.name].includes(e))){if(!u||!Object.keys(u).includes(y.LIST)){i[o]={[y.TYPE]:`Array or Set property '${o}' requires a @list decorator`};continue}if(d&&!(Array.isArray(d)||d instanceof Set)){i[o]={[y.TYPE]:`Property '${l+""}' must be either an Array or a Set`};continue}}const h=Ue(r,e,o,u,n)||{},E=p.isPropertyModel(r,o);if(null!=d&&E){const t=d,r=f.map(e=>p.get(e.name||e)).find(e=>!!e),n=f.map(e=>"function"==typeof e?e.name?e.name.toLowerCase():e()?.name.toLowerCase():e.toLowerCase());if(r&&d instanceof r){const r=m(o,...s);c[o]=t.hasErrors(e[l],...r)}else n.includes(typeof d)||(h[y.TYPE]=r?"Value must be an instance of "+r.name:`Unable to verify type consistency, missing model registry for ${f.toString()} on prop ${o}`,delete h[a.TYPE])}(Object.keys(h).length>0||n)&&(i[o]=h),n||Object.entries(c[o]||{}).forEach(([e,t])=>{void 0!==t&&(i[`${o}.${e}`]=t)})}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 e=>{const t={};for(const[e,r]of Object.entries(c)){const n=await r;n&&Object.entries(n).forEach(([r,n])=>{void 0!==n&&(t[[e,r].join(".")]=n)})}for(let r=0;r<e.length;r++){const n=u[r],s=e[r];"fulfilled"===s.status&&void 0!==s.value?t[n]=s.value:"rejected"===s.status&&(t[n]=s.reason instanceof Error?s.reason.message:(s.reason||"Validation failed")+"")}return Object.keys(t).length>0?new A(t):void 0})}function He(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 $e(e,t,r,n,s,a){const o=Ve(r,n,s);if(!o)return;const i=W(Z(q(r,o,s)));for(const s of i){const o=[t,s.data.length>1?s.data:s.data[0],s.prop.length>1?s.prop:s.prop[0],r];if([C.UPDATE,j.UPDATE_ALL].includes(n)){if(!a)throw new G("Missing old model for update operation");o.push(a)}try{await s.handler.apply(e,o)}catch(e){if(t.logger.for($e).error(`Failed to execute handler ${s.handler.name} for ${s.prop} on ${r.constructor.name}`),t.get("breakOnHandlerError"))throw e}}}function Ve(e,r,n){const s=n?.replace(/[.]$/,""),a=t.get(e.constructor,M.OPERATIONS);if(a)return Object.keys(a).reduce((e,t)=>{const n=s?a[t][s]||{}:a[t],o=Object.keys(n).filter(e=>e===r),i=[];for(const e of o)i.push({key:e,props:n[e]});return i&&i.length&&(e||(e={}),e[t]=i),e},void 0)}p.prototype.isTransient=function(){return t.isTransient(this)},p.prototype.hasErrors=function(e,...t){!e||e instanceof p||(t.unshift(e),e=void 0);const r=this.isAsync(),n=w(this,r,...t);return r?Promise.resolve(n).then(n=>n||!e?n:Fe(e,this,r,...t)):n||!e?n:Fe(e,this,r,...t)},p.prototype.segregate=function(){return p.segregate(this)},p.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=p.build(s.model,e.constructor.name),s},t.pk=((e,r=!1)=>{if(!e)throw Error("No model was provided");const n=e instanceof p?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 p)return e[a];throw Error("Cannot get the value of the pk from the constructor")}).bind(t),p.pk=((e,r=!1)=>t.pk(e,r)).bind(p),p.pkProps=(e=>t.get(e,t.key(D.ID,p.pk(e)))).bind(p),p.isTransient=(e=>!!t.get("function"!=typeof e?e.constructor:e,D.TRANSIENT)).bind(p),p.composed=((e,r)=>{const n=e instanceof p?e.constructor:e;return r?t.get(n,t.key(D.COMPOSED,r)):!!t.get(n,D.COMPOSED)}).bind(p),p.merge=((e,t,r)=>{const n=e=>Object.entries(e).reduce((e,[t,r])=>(null!=r&&(e[t]=r),e),{});return new(r=r||e.constructor)(Object.assign({},n(e),n(t)))}).bind(p),t.saveOperation=((e,r,n,s)=>{r&&t.set(e,t.key(M.OPERATIONS,r,n),s)}).bind(t),t.readOperation=((e,r,n)=>{if(r&&n)return t.get(e,t.key(M.OPERATIONS,r,n))}).bind(t),t.isTransient=(e=>!!t.get("function"!=typeof e?e.constructor:e,D.TRANSIENT)).bind(t),p.generated=((e,r)=>!!t.get("function"!=typeof e?e.constructor:e,t.key(D.GENERATED,r))).bind(p),p.shouldGenerate=((e,t,r)=>!r.get("allowGenerationOverride")||void 0===e[t]).bind(p);const _e={parentContext:void 0,childContexts:[],ignoredValidationProperties:[],callArgs:[],writeOperation:!1,affectedTables:[],operation:void 0,breakOnHandlerError:!0,rebuildWithTransient:!0,ignoreValidation:!1,ignoreHandlers:!1,ignoreDevSafeGuards:!1,mergeForUpdate:!0,applyUpdateValidation:!0,allowGenerationOverride:!1},ze=e=>(new Ge).accumulate(Object.assign({},e,{timestamp:new Date,logger:e.logger||v.get()}));class Ge{constructor(e){this.cache=new R,Object.defineProperty(this,"cache",{value:e?e.cache:new R,writable:!1,enumerable:!1,configurable:!0})}static{this.factory=ze}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 Ge.factory(Object.assign({},e.cache,t||{}))}static async from(e,t,r,...n){return Ge.factory(Object.assign({},_e,t,{operation:e,model:r,logger:t.logger||v.get()}))}static async args(e,t,r,n,s){const a=r.pop();async function o(){return n?n.context(e,s||{},t,...r):Ge.from(e,s||{},t,...r)}let i;return a?a instanceof Ge?(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 Ye(e,t,r,n){const s=n||t.name;e[s]=new Proxy(e[s],{apply:async(e,t,n)=>{let s=r.call(t,...n);return s instanceof Promise&&(s=await s),s=e.call(t,...s),s instanceof Promise&&(s=await s),s}})}function Ke(e,t,r,n){const s=n||t.name;e[s]=new Proxy(e[s],{apply:async(e,t,n)=>{let s=e.call(t,...n);return s instanceof Promise&&(s=await s),s=r.call(t,...s),s instanceof Promise&&(s=await s),s}})}function Be(e,t,r,n,s){const a=s||r.name;e[a]=new Proxy(e[a],{apply:async(e,r,s)=>{let a=t.call(r,...s);a instanceof Promise&&(a=await a);const o=a[a.length-1];if(!(o instanceof Ge))throw new G("Missing a context");let i=e.call(r,...a);return i instanceof Promise&&(i=await i),i=n.call(r,i,o),i instanceof Promise&&(i=await i),i}})}function Qe(e,t,r,n,s){const a=s||r.name;e[a]=new Proxy(e[a],{apply:async(e,r,s)=>{let a=t.call(r,...s);a instanceof Promise&&(a=await a);const o=a.pop(),i=a[a.length-1];if(!(i instanceof Ge))throw new G("Missing a context");if(i.get("applyUpdateValidation")&&!i.get("ignoreDevSafeGuards")&&!(o instanceof p)&&(!Array.isArray(o)||!o.every(e=>e instanceof p)))throw new G("No previous versions os models found");let c=e.call(r,...a);return c instanceof Promise&&(c=await c),c=n.call(r,c,o,i),c instanceof Promise&&(c=await c),c}})}class Je{get class(){if(!this._class)throw new G("No class definition found for this repository");return this._class}get pk(){return p.pk(this.class)}get pkProps(){return p.pkProps(this.class)}constructor(e){e&&(this._class=e);const t=this;[this.create,this.read,this.delete].forEach(e=>{const r=e.name;Be(t,t[r+"Prefix"],e,t[r+"Suffix"])}),Qe(t,t[this.update.name+"Prefix"],this.update,t[this.update.name+"Suffix"])}async createAll(e,...t){return Promise.all(e.map(e=>this.create(e,...t)))}async createPrefix(e,...t){const r=await Ge.args(C.CREATE,this.class,t);if(e=new this.class(e),r.context.get("ignoreHandlers")||await $e(this,r.context,e,C.CREATE,C.ON),!r.context.get("ignoreValidation")){const t=await Promise.resolve(e.hasErrors());if(t)throw new z(t.toString())}return[e,...r.args]}async createSuffix(e,t){return t.get("ignoreHandlers")||await $e(this,t,e,C.CREATE,C.AFTER),e}async createAllPrefix(e,...t){const r=await Ge.args(C.CREATE,this.class,t),n=r.context.get("ignoreHandlers"),s=r.context.get("ignoreValidation");if(e=await Promise.all(e.map(async e=>{const t=new this.class(e);return n||await $e(this,r.context,t,C.CREATE,C.ON),t})),!s){const t=He(await Promise.all(e.map(e=>Promise.resolve(e.hasErrors()))));if(t)throw new z(t)}return[e,...r.args]}async createAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>$e(this,t,e,C.CREATE,C.AFTER))),e}async readAll(e,...t){return await Promise.all(e.map(e=>this.read(e,...t)))}async readSuffix(e,t){return t.get("ignoreHandlers")||await $e(this,t,e,C.READ,C.AFTER),e}async readPrefix(e,...t){const r=await Ge.args(C.READ,this.class,t),n=new this.class;return n[this.pk]=e,await $e(this,r.context,n,C.READ,C.ON),[e,...r.args]}async readAllPrefix(e,...t){const r=await Ge.args(C.READ,this.class,t);return await Promise.all(e.map(async e=>{const t=new this.class;return t[this.pk]=e,$e(this,r.context,t,C.READ,C.ON)})),[e,...r.args]}async readAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>$e(this,t,e,C.READ,C.AFTER))),e}async updateAll(e,...t){return Promise.all(e.map(e=>this.update(e,...t)))}async updateSuffix(e,t,r){return r.get("ignoreHandlers")||await $e(this,r,e,C.UPDATE,C.AFTER,t),e}async updatePrefix(e,...t){const r=await Ge.args(C.UPDATE,this.class,t),n=r.context,s=r.context.get("ignoreHandlers"),a=r.context.get("ignoreValidation"),o=e[this.pk];if(!o)throw new G("No value for the Id is defined under the property "+this.pk);let i;if(n.get("applyUpdateValidation")&&(i=await this.read(o),n.get("mergeForUpdate")&&(e=p.merge(i,e,this.class))),s||await $e(this,r.context,e,C.UPDATE,C.ON,i),!a){const t=await Promise.resolve(e.hasErrors(i));if(t)throw new z(t.toString())}return[e,...r.args,i]}async updateAllPrefix(e,...t){const r=await Ge.args(C.UPDATE,this.class,t),n=r.context,s=n.get("ignoreHandlers"),a=n.get("ignoreValidation"),o=e.map(e=>{const t=e[this.pk];if(void 0===t)throw new G("No value for the Id is defined under the property "+this.pk);return t});let i;if(n.get("applyUpdateValidation")&&(i=await this.readAll(o,n),n.get("mergeForUpdate")&&(e=e.map((e,t)=>p.merge(i[t],e,this.class)))),s||await Promise.all(e.map((e,t)=>$e(this,r.context,e,C.UPDATE,C.ON,i?i[t]:void 0))),!a){let t;t=n.get("applyUpdateValidation")?await Promise.all(e.map((e,t)=>Promise.resolve(e.hasErrors(i[t])))):await Promise.resolve(e.map(e=>e.hasErrors()));const r=He(t);if(r)throw new z(r)}return[e,...r.args,i]}async updateAllSuffix(e,t,r){if(r.get("applyUpdateValidation")&&!r.get("ignoreDevSafeGuards")&&!t)throw new G("No previous versions of models provided");return r.get("ignoreHandlers")||await Promise.all(e.map((e,n)=>$e(this,r,e,C.UPDATE,C.AFTER,t?t[n]:void 0))),e}async deleteAll(e,...t){return Promise.all(e.map(e=>this.delete(e,...t)))}async deleteSuffix(e,t){return t.get("ignoreHandlers")||await $e(this,t,e,C.DELETE,C.AFTER),e}async deletePrefix(e,...t){const r=await Ge.args(C.DELETE,this.class,t),n=await this.read(e,...r.args);return await $e(this,r.context,n,C.DELETE,C.ON),[e,...r.args]}async deleteAllPrefix(e,...t){const r=await Ge.args(C.DELETE,this.class,t),n=await this.readAll(e,...r.args);return await Promise.all(n.map(async e=>$e(this,r.context,e,C.DELETE,C.ON))),[e,...r.args]}async deleteAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>$e(this,t,e,C.DELETE,C.AFTER))),e}toString(){return this.class.name+" Repository"}}const qe="##VERSION##",Ze="##PACKAGE##";t.registerLibrary(Ze,qe);export{_ as BadRequestError,$ as BaseError,ge as BlockOperationIf,Ee as BlockOperations,V as BreakError,j as BulkCrudOperationKeys,B as ConflictError,Ge as Context,D as DBKeys,U as DBOperations,L as DEFAULT_ERROR_MESSAGES,b as DEFAULT_TIMESTAMP_FORMAT,ze as DefaultContextFactory,_e as DefaultRepositoryFlags,S as DefaultSeparator,G as InternalError,M as ModelOperations,K as NotFoundError,C as OperationKeys,H as Operations,F as OperationsRegistry,Ze as PACKAGE_NAME,I as ReadOnlyValidator,Je as Repository,Y as SerializationError,x as TimestampValidator,N as UpdateValidationKeys,k as UpdateValidator,qe as VERSION,z as ValidationError,fe as after,de as afterAny,ce as afterCreate,oe as afterCreateUpdate,ue as afterDelete,le as afterRead,ie as afterUpdate,Te as composeAttributeValue,Re as composed,we as composedFromCreateUpdate,Oe as composedFromKeys,$e as enforceDBDecorators,ye as generated,Ve as getDbDecorators,J as getHandlerArgs,q as getHandlersDecorators,Me as getValidatableUpdateProps,Z as groupDecorators,Ae as hash,me as hashOnCreateUpdate,Ce as id,ae as on,se as onAny,te as onCreate,X as onCreateUpdate,ne as onDelete,re as onRead,ee as onUpdate,pe as operation,Ye as prefixMethod,be as readonly,He as reduceErrorsToPrint,ke as serialize,xe as serializeAfterAll,Ie as serializeOnCreateUpdate,W as sortDecorators,he as storeHandlerMetadata,Ke as suffixMethod,Ne as timestamp,Le as timestampHandler,Se as transient,Fe as validateCompare,je as validateDecorator,Ue as validateDecorators,De as version,ve as versionCreateUpdate,Be as wrapMethodWithContext,Qe as wrapMethodWithContextForUpdate};
1
+ import{Decoration as e,Metadata as t,propMetadata as r,apply as n,metadata as s}from"@decaf-ts/decoration";import{ModelKeys as o,validator as a,Validator as i,isEqual as c,DEFAULT_ERROR_MESSAGES as l,Validation as u,Hashing as d,type as f,Model as p,innerValidationDecorator as h,date as E,required as g,ValidationKeys as y,getChildNestedPropsToIgnore as m,ModelErrorDefinition as A,toConditionalPromise as T,validate as w}from"@decaf-ts/decorator-validation";import{__decorate as O,__metadata as P}from"tslib";import{ObjectAccumulator as v}from"typed-object-accumulator";import{Logging as R}from"@decaf-ts/logging";const D={REFLECT:o.MODEL+".persistence.",REPOSITORY:"repository",CLASS:"_class",ID:"id",INDEX:"index",UNIQUE:"unique",SERIALIZE:"serialize",READONLY:"readonly",TIMESTAMP:"timestamp",TRANSIENT:"transient",HASH:"hash",COMPOSED:"composed",GENERATED:"generated",VERSION:"version",ORIGINAL:"__originalObj"},b="_",S="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"}},N={REFLECT:"db.update.validation.",TIMESTAMP:D.TIMESTAMP,READONLY:D.READONLY};let I=class extends i{constructor(){super(L.READONLY.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,r){if(void 0!==e)return c(e,t)?void 0:this.getMessage(r||this.message)}};I=O([a(N.READONLY),P("design:paramtypes",[])],I);let k=class extends i{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}}};k=O([a(N.TIMESTAMP),P("design:paramtypes",[])],k);class x extends i{constructor(e=l.DEFAULT,...t){super(e,...t)}}var C,M,j;u.updateKey=e=>N.REFLECT+e,(e=>{e.REFLECT="decaf.model.db.operations.",e.CREATE="create",e.READ="read",e.UPDATE="update",e.DELETE="delete",e.ON="on.",e.AFTER="after.",e.BLOCK="block"})(C||(C={})),(e=>{e.OPERATIONS="operations",e.RELATIONS="relations"})(M||(M={})),(e=>{e.CREATE_ALL="createAll",e.READ_ALL="readAll",e.UPDATE_ALL="updateAll",e.DELETE_ALL="deleteAll"})(j||(j={}));const U={CREATE:[C.CREATE],READ:[C.READ],UPDATE:[C.UPDATE],DELETE:[C.DELETE],CREATE_UPDATE:[C.CREATE,C.UPDATE],READ_CREATE:[C.READ,C.CREATE],ALL:[C.CREATE,C.READ,C.UPDATE,C.DELETE]};class F{constructor(){this.cache={}}get(e,t,r,n){n=n||[];const s=this.resolveOwner(e),o=this.resolveTargetName(e,s);if(o){const e=this.selectHandlers(o,t,r,s);e?.length&&n.unshift(...e)}else if("string"==typeof e||e===Object.prototype||Object.getPrototypeOf(e)===Object.prototype)return n;let a=Object.getPrototypeOf(e);return a?(a.constructor&&a.constructor.name===o&&(a=Object.getPrototypeOf(a)),a?this.get(a,t,r,n):n):n}register(e,t,r,n){const s=r.constructor.name,o=F.getHandlerName(e),a=this.resolveFlavour(r.constructor);this.cache[s]||(this.cache[s]={}),this.cache[s][n]||(this.cache[s][n]={}),this.cache[s][n][t]||(this.cache[s][n][t]={}),this.cache[s][n][t][a]||(this.cache[s][n][t][a]={}),this.cache[s][n][t][a][o]||(this.cache[s][n][t][a][o]=e)}resolveOwner(e){if(e&&"string"!=typeof e)return"function"==typeof e?e:e.constructor}resolveTargetName(e,t){return"string"==typeof e?e:t?.name}resolveFlavour(r){if(!r)return e.defaultFlavour;try{return t.flavourOf(r)}catch{return e.defaultFlavour}}selectHandlers(t,r,n,s){const o=this.cache[t]?.[r]?.[n];if(!o)return;const a=o[this.resolveFlavour(s)]||o[e.defaultFlavour]||this.firstBucket(o);if(!a)return;const i=Object.values(a);return i.length?i:void 0}firstBucket(e){for(const t of Object.values(e))if(t&&Object.keys(t).length)return t}static getHandlerName(e){return e.name?e.name:d.hash(e.toString())}}class H{constructor(){}static getHandlerName(e){return F.getHandlerName(e)}static key(e){return C.REFLECT+e}static get(e,t,r){return H.registry.get(e,t,r)}static getOpRegistry(){return H.registry||(H.registry=new F),H.registry}static register(e,t,r,n){H.getOpRegistry().register(e,t,r,n)}}class $ extends Error{constructor(e,t,r){if(t instanceof $)return t;super(`[${e}][${r}] ${t instanceof Error?t.message:t}`),this.code=r,t instanceof Error&&(this.stack=t.stack)}get message(){return`[${this.name}] ${this.code} | ${super.message.replaceAll(/\[.*?Error\]\[\d+\]\s/g,"")}`}toString(){return this.message}}class V extends ${constructor(e,t=V.name,r=999){super(t,e,r)}}class _ extends ${constructor(e,t=_.name,r=400){super(t,e,r)}}class z extends _{constructor(e){super(e,z.name,422)}}class G extends ${constructor(e,t=G.name,r=500){super(t,e,r)}}class Y extends G{constructor(e){super(e,Y.name,500)}}class K extends _{constructor(e){super(e,K.name,404)}}class B extends _{constructor(e){super(e,B.name,409)}}const Q={priority:50},J=(e,t,r,n)=>{const s=r.constructor.name;if(!s)throw new G("Could not determine model class");n=n||{},e.props.handlers[s]&&e.props.handlers[s][t]&&(n={...e.props.handlers[s][t],...n});let o=Object.getPrototypeOf(r);return o===Object.prototype?n:(o.constructor.name===s&&(o=Object.getPrototypeOf(o)),J(e,t,o,n))};function q(e,t,r){const n=[];for(const s in t){const o=t[s];for(const t of o){const{key:o}=t,a=H.get(e,s,r+o);if(!a||!a.length)throw new G(`Could not find registered handler for the operation ${r+o} under property ${s}`);const i=J(t,s,e);if(!i)throw new G("Missing handler arguments for decorators");for(const e of a){const t=H.getHandlerName(e),r=i[t];if(!r)throw new G("Missing handler arguments for handler "+t);const o=r.data;n.push({handler:e,data:[o],prop:[s]})}}}return n}function Z(e){const t=e.reduce((e,t)=>{if(!t||!t.data||!t.prop)throw new G("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 n=e.get(r);e.set(r,{handler:n.handler,data:[...n.data,...t.data],prop:[...n.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 W(e){return e.sort((e,t)=>(e.data[0].priority??50)-(t.data[0].priority??50)),e}function X(e,t,r){return oe(U.CREATE_UPDATE,e,t,r)}function ee(e,t,r){return oe(U.UPDATE,e,t,r)}function te(e,t,r){return oe(U.CREATE,e,t,r)}function re(e,t,r){return oe(U.READ,e,t,r)}function ne(e,t,r){return oe(U.DELETE,e,t,r)}function se(e,t,r){return oe(U.ALL,e,t,r)}function oe(e=U.ALL,t,r,n){return pe(C.ON,e,t,r,n)}function ae(e,t,r){return fe(U.CREATE_UPDATE,e,t,r)}function ie(e,t,r){return fe(U.UPDATE,e,t,r)}function ce(e,t,r){return fe(U.CREATE,e,t,r)}function le(e,t,r){return fe(U.READ,e,t,r)}function ue(e,t,r){return fe(U.DELETE,e,t,r)}function de(e,t,r){return fe(U.ALL,e,t,r)}function fe(e=U.ALL,t,r,n){return pe(C.AFTER,e,t,r,n)}function pe(e,s=U.ALL,o,a,i=Q){return(c,l)=>{const u=c.constructor.name,d=s.reduce((n,s)=>{const d=e+s;let f=t.readOperation(c.constructor,l,d);f||(f={operation:s,handlers:{}});const p=H.getHandlerName(o);let h=i;if(a){if(Object.keys(a).filter(e=>e in i).length>0)throw new G("Unable to merge groupSort into dataToAdd due to overlaping keys");h={...i,...a}}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},n.push(((e,t)=>(r,n)=>{H.register(t,e,r,n)})(d,o),r(t.key(M.OPERATIONS,l,d),f))),n},[]);return n(...d)(c,l)}}function he(e,t){return(...r)=>s(e,{args:r,handler:t})}const Ee=e=>he(C.REFLECT+C.BLOCK,(e,t)=>e.includes(t))(e),ge=e=>he(C.REFLECT+C.BLOCK,e)();function ye(e){return(n,s)=>r(t.key(D.GENERATED,s),e||!0)(n,s)}function me(e,t,r,n,s){if(void 0===n[r])return;const o=d.hash(n[r]);s&&n[r]===o||(n[r]=o)}function Ae(){return n(X(me),r(D.HASH,{}))}function Te(e,t){const{args:r,type:n,prefix:s,suffix:o,separator:a,filterEmpty:i,hashResult:c}=t;try{const t=r.map(t=>{if("keys"===n)return t;if(void 0===e[t]){if(i){if(!Array.isArray(i))return;if(i.includes(t))return}throw new G(`Property ${r} does not contain a value to compose from`)}return e[t].toString()}).filter(e=>!i||!!e);s&&t.unshift(s),o&&t.push(o);const l=t.map(e=>"object"==typeof e&&"[object Object]"===e.toString()?JSON.stringify(e):e).join(a);return c?d.hash(l):l}catch(e){throw new G("Failed to compose value: "+e)}}function we(e,t,r,n){n[r]=Te(n,t)}function Oe(s,o=!1,a=b,i=!1,c="values",l="",u="",d={priority:55}){return e.for(D.COMPOSED).define({decorator:(e,s,o,a,c,l,u)=>(d,f)=>{const p={args:e,hashResult:s,separator:o,type:a,prefix:c,suffix:l,filterEmpty:i},h=[ye(D.COMPOSED),X(we,p,u),r(t.key(D.COMPOSED,f),p)];return s&&h.push(Ae()),n(...h)(d,f)},args:[s,o,a,c,l,u,d]}).apply()}function Pe(e,t=b,r=!1,n=!1,s="",o="",a={priority:55}){return Oe(e,n,t,r,"keys",s,o,a)}function ve(e,t=b,r=!1,n=!1,s="",o="",a={priority:55}){return Oe(e,n,t,r,"values",s,o,a)}function Re(e){return(t,r,n,s,o)=>{if(p.shouldGenerate(s,n,t))try{switch(e){case C.CREATE:s[n]=1;break;case C.UPDATE:if(t.get("applyUpdateValidation")&&o&&s[n]!==o[n])throw new z(`Version mismatch: ${s[n]} !== ${o[n]}`);s[n]++;break;default:throw new G("Invalid operation: "+e)}}catch(e){throw new G("Failed to update version: "+e)}}}function De(){const n=D.VERSION;return(s,o)=>e.for(n).define(r(t.key(n,o),!0),ye(D.VERSION),f(Number),te(Re(C.CREATE)),ee(Re(C.UPDATE))).apply()(s,o)}function be(){return e.for(D.TRANSIENT).define((e,n)=>{r(t.key(D.TRANSIENT,n),{})(e,n)}).apply()}function Se(t=L.READONLY.INVALID){const r=D.READONLY,n={message:t,description:"defines the attribute as readOnly",async:!1};return e.for(r).define({decorator:h,args:[Se,r,n]}).apply()}async function Le(e,t,r,n){p.shouldGenerate(n,r,e)&&(n[r]=e.timestamp)}function Ne(t=U.CREATE_UPDATE,s=S){const o=D.TIMESTAMP,a=u.updateKey(D.TIMESTAMP);return e.for(o).define({decorator:(e,t)=>{const s=[ye(D.TIMESTAMP),E(t,L.TIMESTAMP.DATE),g(L.TIMESTAMP.REQUIRED),r(u.key(D.TIMESTAMP),{operation:e,format:t}),oe(e,Le)];return-1!==e.indexOf(C.UPDATE)?s.push(r(a,{message:L.TIMESTAMP.INVALID})):s.push(Se()),n(...s)},args:[t,s]}).apply()}async function Ie(e,t,r,n){if(n[r])try{n[r]=t.serializer?(new t.serializer).serialize(n[r]):JSON.stringify(n[r])}catch(e){throw new Y(`Failed to serialize ${r.toString()} property of model ${n.constructor.name}: ${e}`)}}async function ke(e,t,r,n){if(n[r]&&"string"==typeof n[r])try{n[r]=t.serializer?(new t.serializer).deserialize(n[r]):JSON.parse(n[r])}catch(e){throw new Y(`Failed to deserialize ${r.toString()} property of model ${n.constructor.name}: ${e}`)}}function xe(e){return n(X(Ie,{serializer:e}),fe(U.ALL,ke,{serializer:e}),f([String,Object]),s(D.SERIALIZE,{serializer:e}))}function Ce(){return n(g(),Se(),(e,n)=>r(t.key(D.ID,n),{})(e,n))}function Me(e,r){const n=[];for(const s in e){if(!Object.prototype.hasOwnProperty.call(e,s)||r.includes(s))continue;const o=t.validationFor(e.constructor,s)||{};n.push({prop:s,decorators:o})}return n}function je(e,t,r,n,s){const o=u.get(n.key);if(!o)throw Error("Missing validator for "+n.key);if(!o.updateHasErrors)return T(void 0,s);if(!s&&n.async)return T(void 0,s);const a=Object.values(n)||{},i=o.updateHasErrors(e[r],t[r],...a);return T(i,s)}function Ue(e,t,r,n,s){const o={};for(const a in n){const i={...n[a],key:a};if(!s&&i.async)continue;let c=je(e,t,r,i,s);if(i.key===y.LIST&&(!c||s)){const n=e[r],o=t[r],a=n instanceof Set?[...n]:n,l=o instanceof Set?[...o]:o;if(a?.length){const e=[i.class||i.clazz||i.customTypes].flat().map(e=>((e=(e="function"!=typeof e||e.name?e:e()).name?e.name:e)+"").toLowerCase()),t=a.map(t=>{if(p.isModel(t)){const e=p.pk(t,!0);if(!e)return"Failed to find model id";const r=l.find(t=>e===p.pk(t,!0));return t.hasErrors(r)}return e.includes(typeof t)?void 0:"Value has no validatable type"});if(s)c=Promise.all(t).then(e=>e.every(e=>!e)?void 0:e);else{const e=t.every(e=>!e);c=t.length>0&&!e?t:void 0}}}c&&(o[i.key]=c)}if(!s)return Object.keys(o).length>0?o:void 0;const a=Object.keys(o),i=Object.values(o);return Promise.all(i).then(e=>{const t={};for(let r=0;r<e.length;r++){const n=e[r];void 0!==n&&(t[a[r]]=n)}return Object.keys(t).length>0?t:void 0})}function Fe(e,r,n,...s){const a=Me(r,s),i={},c={};for(const{prop:l,decorators:u}of a){const a=l+"",d=r[l],{designTypes:f}=t.getPropDesignTypes(r.constructor,l);if(!f)continue;if(f.some(e=>[Array.name,Set.name].includes(e))){if(!u||!Object.keys(u).includes(y.LIST)){i[a]={[y.TYPE]:`Array or Set property '${a}' requires a @list decorator`};continue}if(d&&!(Array.isArray(d)||d instanceof Set)){i[a]={[y.TYPE]:`Property '${l+""}' must be either an Array or a Set`};continue}}const h=Ue(r,e,a,u,n)||{},E=p.isPropertyModel(r,a);if(null!=d&&E){const t=d,r=f.map(e=>p.get(e.name||e)).find(e=>!!e),n=f.map(e=>"function"==typeof e?e.name?e.name.toLowerCase():e()?.name.toLowerCase():e.toLowerCase());if(r&&d instanceof r){const r=m(a,...s);c[a]=t.hasErrors(e[l],...r)}else n.includes(typeof d)||(h[y.TYPE]=r?"Value must be an instance of "+r.name:`Unable to verify type consistency, missing model registry for ${f.toString()} on prop ${a}`,delete h[o.TYPE])}(Object.keys(h).length>0||n)&&(i[a]=h),n||Object.entries(c[a]||{}).forEach(([e,t])=>{void 0!==t&&(i[`${a}.${e}`]=t)})}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 e=>{const t={};for(const[e,r]of Object.entries(c)){const n=await r;n&&Object.entries(n).forEach(([r,n])=>{void 0!==n&&(t[[e,r].join(".")]=n)})}for(let r=0;r<e.length;r++){const n=u[r],s=e[r];"fulfilled"===s.status&&void 0!==s.value?t[n]=s.value:"rejected"===s.status&&(t[n]=s.reason instanceof Error?s.reason.message:(s.reason||"Validation failed")+"")}return Object.keys(t).length>0?new A(t):void 0})}function He(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 $e(e,t,r,n,s,o){const a=Ve(r,n,s);if(!a)return;const i=W(Z(q(r,a,s)));for(const s of i){const a=[t,s.data.length>1?s.data:s.data[0],s.prop.length>1?s.prop:s.prop[0],r];if([C.UPDATE,j.UPDATE_ALL].includes(n)){if(!o)throw new G("Missing old model for update operation");a.push(o)}try{await s.handler.apply(e,a)}catch(e){if(t.logger.for($e).error(`Failed to execute handler ${s.handler.name} for ${s.prop} on ${r.constructor.name}`),t.get("breakOnHandlerError"))throw e}}}function Ve(e,r,n){const s=n?.replace(/[.]$/,""),o=t.get(e.constructor,M.OPERATIONS);if(o)return Object.keys(o).reduce((e,t)=>{const n=s?o[t][s]||{}:o[t],a=Object.keys(n).filter(e=>e===r),i=[];for(const e of a)i.push({key:e,props:n[e]});return i&&i.length&&(e||(e={}),e[t]=i),e},void 0)}p.prototype.isTransient=function(){return t.isTransient(this)},p.prototype.hasErrors=function(e,...t){!e||e instanceof p||(t.unshift(e),e=void 0);const r=this.isAsync(),n=w(this,r,...t);return r?Promise.resolve(n).then(n=>n||!e?n:Fe(e,this,r,...t)):n||!e?n:Fe(e,this,r,...t)},p.prototype.segregate=function(){return p.segregate(this)},p.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=p.build(s.model,e.constructor.name),s},t.pk=((e,r=!1)=>{if(!e)throw Error("No model was provided");const n=e instanceof p?e.constructor:e,s=t.get(n,D.ID);if(!s)throw Error("No Id property defined for model "+(n?.name||"Unknown Model"));const o=Object.keys(s)[0];if(!r)return o;if(e instanceof p)return e[o];throw Error("Cannot get the value of the pk from the constructor")}).bind(t),p.pk=((e,r=!1)=>t.pk(e,r)).bind(p),p.pkProps=(e=>t.get(e,t.key(D.ID,p.pk(e)))).bind(p),p.isTransient=(e=>!!t.get("function"!=typeof e?e.constructor:e,D.TRANSIENT)).bind(p),p.composed=((e,r)=>{const n=e instanceof p?e.constructor:e;return r?t.get(n,t.key(D.COMPOSED,r)):!!t.get(n,D.COMPOSED)}).bind(p),p.merge=((e,t,r)=>{const n=e=>Object.entries(e).reduce((e,[t,r])=>(null!=r&&(e[t]=r),e),{});return new(r=r||e.constructor)(Object.assign({},n(e),n(t)))}).bind(p),t.saveOperation=((e,r,n,s)=>{r&&t.set(e,t.key(M.OPERATIONS,r,n),s)}).bind(t),t.readOperation=((e,r,n)=>{if(r&&n)return t.get(e,t.key(M.OPERATIONS,r,n))}).bind(t),t.isTransient=(e=>!!t.get("function"!=typeof e?e.constructor:e,D.TRANSIENT)).bind(t),p.generated=((e,r)=>!!t.get("function"!=typeof e?e.constructor:e,t.key(D.GENERATED,r))).bind(p),p.shouldGenerate=((e,t,r)=>!r.get("allowGenerationOverride")||void 0===e[t]).bind(p),p.versionProp=(e=>{const r=t.get(e.constructor);if(!r||!r[D.VERSION])throw new G("No version found for "+e.constructor.name);return Object.keys(r)[0]}).bind(p),p.versionOf=(e=>{const t=e[p.versionProp(e)];if("number"!=typeof t||1>t)throw new G("Invalid version number: "+t);return t}).bind(p);const _e={parentContext:void 0,childContexts:[],ignoredValidationProperties:[],callArgs:[],writeOperation:!1,affectedTables:[],operation:void 0,breakOnHandlerError:!0,rebuildWithTransient:!0,ignoreValidation:!1,ignoreHandlers:!1,ignoreDevSafeGuards:!1,mergeForUpdate:!0,applyUpdateValidation:!0,allowGenerationOverride:!1},ze=e=>(new Ge).accumulate(Object.assign({},e,{timestamp:new Date,logger:e.logger||R.get()}));class Ge{constructor(e){this.cache=new v,Object.defineProperty(this,"cache",{value:e?e.cache:new v,writable:!1,enumerable:!1,configurable:!0})}static{this.factory=ze}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 Ge.factory(Object.assign({},e.cache,t||{}))}static async from(e,t,r,...n){return Ge.factory(Object.assign({},_e,t,{operation:e,model:r,logger:t.logger||R.get()}))}static async args(e,t,r,n,s){const o=r.pop();async function a(){return n?n.context(e,s||{},t,...r):Ge.from(e,s||{},t,...r)}let i;return o?o instanceof Ge?(i=o,r.push(o)):(r.push(o),i=await a(),r.push(i)):(i=await a(),r.push(i)),{context:i,args:r}}}function Ye(e,t,r,n){const s=n||t.name;e[s]=new Proxy(e[s],{apply:async(e,t,n)=>{let s=r.call(t,...n);return s instanceof Promise&&(s=await s),s=e.call(t,...s),s instanceof Promise&&(s=await s),s}})}function Ke(e,t,r,n){const s=n||t.name;e[s]=new Proxy(e[s],{apply:async(e,t,n)=>{let s=e.call(t,...n);return s instanceof Promise&&(s=await s),s=r.call(t,...s),s instanceof Promise&&(s=await s),s}})}function Be(e,t,r,n,s){const o=s||r.name;e[o]=new Proxy(e[o],{apply:async(e,r,s)=>{let o=t.call(r,...s);o instanceof Promise&&(o=await o);const a=o[o.length-1];if(!(a instanceof Ge))throw new G("Missing a context");let i=e.call(r,...o);return i instanceof Promise&&(i=await i),i=n.call(r,i,a),i instanceof Promise&&(i=await i),i}})}function Qe(e,t,r,n,s){const o=s||r.name;e[o]=new Proxy(e[o],{apply:async(e,r,s)=>{let o=t.call(r,...s);o instanceof Promise&&(o=await o);const a=o.pop(),i=o[o.length-1];if(!(i instanceof Ge))throw new G("Missing a context");if(i.get("applyUpdateValidation")&&!i.get("ignoreDevSafeGuards")&&!(a instanceof p)&&(!Array.isArray(a)||!a.every(e=>e instanceof p)))throw new G("No previous versions os models found");let c=e.call(r,...o);return c instanceof Promise&&(c=await c),c=n.call(r,c,a,i),c instanceof Promise&&(c=await c),c}})}class Je{get class(){if(!this._class)throw new G("No class definition found for this repository");return this._class}get pk(){return p.pk(this.class)}get pkProps(){return p.pkProps(this.class)}constructor(e){e&&(this._class=e);const t=this;[this.create,this.read,this.delete].forEach(e=>{const r=e.name;Be(t,t[r+"Prefix"],e,t[r+"Suffix"])}),Qe(t,t[this.update.name+"Prefix"],this.update,t[this.update.name+"Suffix"])}async createAll(e,...t){return Promise.all(e.map(e=>this.create(e,...t)))}async createPrefix(e,...t){const r=await Ge.args(C.CREATE,this.class,t);if(e=new this.class(e),r.context.get("ignoreHandlers")||await $e(this,r.context,e,C.CREATE,C.ON),!r.context.get("ignoreValidation")){const t=await Promise.resolve(e.hasErrors());if(t)throw new z(t.toString())}return[e,...r.args]}async createSuffix(e,t){return t.get("ignoreHandlers")||await $e(this,t,e,C.CREATE,C.AFTER),e}async createAllPrefix(e,...t){const r=await Ge.args(C.CREATE,this.class,t),n=r.context.get("ignoreHandlers"),s=r.context.get("ignoreValidation");if(e=await Promise.all(e.map(async e=>{const t=new this.class(e);return n||await $e(this,r.context,t,C.CREATE,C.ON),t})),!s){const t=He(await Promise.all(e.map(e=>Promise.resolve(e.hasErrors()))));if(t)throw new z(t)}return[e,...r.args]}async createAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>$e(this,t,e,C.CREATE,C.AFTER))),e}async readAll(e,...t){return await Promise.all(e.map(e=>this.read(e,...t)))}async readSuffix(e,t){return t.get("ignoreHandlers")||await $e(this,t,e,C.READ,C.AFTER),e}async readPrefix(e,...t){const r=await Ge.args(C.READ,this.class,t),n=new this.class;return n[this.pk]=e,await $e(this,r.context,n,C.READ,C.ON),[e,...r.args]}async readAllPrefix(e,...t){const r=await Ge.args(C.READ,this.class,t);return await Promise.all(e.map(async e=>{const t=new this.class;return t[this.pk]=e,$e(this,r.context,t,C.READ,C.ON)})),[e,...r.args]}async readAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>$e(this,t,e,C.READ,C.AFTER))),e}async updateAll(e,...t){return Promise.all(e.map(e=>this.update(e,...t)))}async updateSuffix(e,t,r){return r.get("ignoreHandlers")||await $e(this,r,e,C.UPDATE,C.AFTER,t),e}async updatePrefix(e,...t){const r=await Ge.args(C.UPDATE,this.class,t),n=r.context,s=r.context.get("ignoreHandlers"),o=r.context.get("ignoreValidation"),a=e[this.pk];if(!a)throw new G("No value for the Id is defined under the property "+this.pk);let i;if(n.get("applyUpdateValidation")&&(i=await this.read(a),n.get("mergeForUpdate")&&(e=p.merge(i,e,this.class))),s||await $e(this,r.context,e,C.UPDATE,C.ON,i),!o){const t=await Promise.resolve(e.hasErrors(i));if(t)throw new z(t.toString())}return[e,...r.args,i]}async updateAllPrefix(e,...t){const r=await Ge.args(C.UPDATE,this.class,t),n=r.context,s=n.get("ignoreHandlers"),o=n.get("ignoreValidation"),a=e.map(e=>{const t=e[this.pk];if(void 0===t)throw new G("No value for the Id is defined under the property "+this.pk);return t});let i;if(n.get("applyUpdateValidation")&&(i=await this.readAll(a,n),n.get("mergeForUpdate")&&(e=e.map((e,t)=>p.merge(i[t],e,this.class)))),s||await Promise.all(e.map((e,t)=>$e(this,r.context,e,C.UPDATE,C.ON,i?i[t]:void 0))),!o){let t;t=n.get("applyUpdateValidation")?await Promise.all(e.map((e,t)=>Promise.resolve(e.hasErrors(i[t])))):await Promise.resolve(e.map(e=>e.hasErrors()));const r=He(t);if(r)throw new z(r)}return[e,...r.args,i]}async updateAllSuffix(e,t,r){if(r.get("applyUpdateValidation")&&!r.get("ignoreDevSafeGuards")&&!t)throw new G("No previous versions of models provided");return r.get("ignoreHandlers")||await Promise.all(e.map((e,n)=>$e(this,r,e,C.UPDATE,C.AFTER,t?t[n]:void 0))),e}async deleteAll(e,...t){return Promise.all(e.map(e=>this.delete(e,...t)))}async deleteSuffix(e,t){return t.get("ignoreHandlers")||await $e(this,t,e,C.DELETE,C.AFTER),e}async deletePrefix(e,...t){const r=await Ge.args(C.DELETE,this.class,t),n=await this.read(e,...r.args);return await $e(this,r.context,n,C.DELETE,C.ON),[e,...r.args]}async deleteAllPrefix(e,...t){const r=await Ge.args(C.DELETE,this.class,t),n=await this.readAll(e,...r.args);return await Promise.all(n.map(async e=>$e(this,r.context,e,C.DELETE,C.ON))),[e,...r.args]}async deleteAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>$e(this,t,e,C.DELETE,C.AFTER))),e}toString(){return this.class.name+" Repository"}}const qe="##VERSION##",Ze="##PACKAGE##";t.registerLibrary(Ze,qe);export{_ as BadRequestError,$ as BaseError,ge as BlockOperationIf,Ee as BlockOperations,V as BreakError,j as BulkCrudOperationKeys,B as ConflictError,Ge as Context,D as DBKeys,U as DBOperations,L as DEFAULT_ERROR_MESSAGES,S as DEFAULT_TIMESTAMP_FORMAT,ze as DefaultContextFactory,_e as DefaultRepositoryFlags,b as DefaultSeparator,G as InternalError,M as ModelOperations,K as NotFoundError,C as OperationKeys,H as Operations,F as OperationsRegistry,Ze as PACKAGE_NAME,I as ReadOnlyValidator,Je as Repository,Y as SerializationError,k as TimestampValidator,N as UpdateValidationKeys,x as UpdateValidator,qe as VERSION,z as ValidationError,fe as after,de as afterAny,ce as afterCreate,ae as afterCreateUpdate,ue as afterDelete,le as afterRead,ie as afterUpdate,Te as composeAttributeValue,ve as composed,we as composedFromCreateUpdate,Pe as composedFromKeys,$e as enforceDBDecorators,ye as generated,Ve as getDbDecorators,J as getHandlerArgs,q as getHandlersDecorators,Me as getValidatableUpdateProps,Z as groupDecorators,Ae as hash,me as hashOnCreateUpdate,Ce as id,oe as on,se as onAny,te as onCreate,X as onCreateUpdate,ne as onDelete,re as onRead,ee as onUpdate,pe as operation,Ye as prefixMethod,Se as readonly,He as reduceErrorsToPrint,xe as serialize,ke as serializeAfterAll,Ie as serializeOnCreateUpdate,W as sortDecorators,he as storeHandlerMetadata,Ke as suffixMethod,Ne as timestamp,Le as timestampHandler,be as transient,Fe as validateCompare,je as validateDecorator,Ue as validateDecorators,De as version,Re as versionCreateUpdate,Be as wrapMethodWithContext,Qe as wrapMethodWithContextForUpdate};
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/model/decorators.ts","../src/validation/decorators.ts","../src/identity/decorators.ts","../src/model/validation.ts","../src/repository/utils.ts","../src/overrides/overrides.ts","../src/repository/constants.ts","../src/repository/Context.ts","../src/repository/wrappers.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],"names":["DBKeys","REFLECT","ModelKeys","MODEL","REPOSITORY","CLASS","ID","INDEX","UNIQUE","SERIALIZE","READONLY","TIMESTAMP","TRANSIENT","HASH","COMPOSED","GENERATED","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","owner","resolveOwner","name","resolveTargetName","handlers","selectHandlers","length","unshift","Object","prototype","getPrototypeOf","proto","register","handler","handlerName","getHandlerName","flavour","resolveFlavour","Decoration","defaultFlavour","Metadata","flavourOf","byOperation","bucket","firstBucket","values","keys","Hashing","hash","toString","Operations","str","targetName","registry","getOpRegistry","BaseError","Error","msg","code","stack","replaceAll","BreakError","BadRequestError","ValidationError","InternalError","SerializationError","NotFoundError","ConflictError","DefaultGroupSort","priority","getHandlerArgs","dec","prop","m","props","getHandlersDecorators","model","decorators","prefix","decs","handlerArgs","argsEntry","data","push","groupDecorators","grouped","reduce","acc","group","set","Symbol","groupKey","has","existing","Map","groups","Array","from","forEach","combined","map","d","i","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","readOperation","handlerKey","mergeData","filter","handle","propMetadata","OPERATIONS","apply","storeHandlerMetadata","params","metadata","BlockOperations","operations","BLOCK","includes","BlockOperationIf","generated","type","hashOnCreateUpdate","context","oldModel","composeAttributeValue","suffix","separator","filterEmpty","hashResult","composed","arg","isArray","JSON","stringify","join","composedFromCreateUpdate","composedFrom","for","define","decorator","property","composedFromKeys","versionCreateUpdate","Model","shouldGenerate","version","Number","transient","attribute","readonly","meta","description","async","innerValidationDecorator","timestampHandler","timestamp","format","decorationKey","updateValidationKey","date","required","indexOf","serializeOnCreateUpdate","serializer","serialize","serializeAfterAll","deserialize","parse","String","id","getValidatableUpdateProps","propsToIgnore","decoratedProperties","hasOwnProperty","call","validationFor","validateDecorator","newModel","toConditionalPromise","decoratorProps","maybeError","validateDecorators","result","decoratorKey","validationErrors","ValidationKeys","LIST","newPropValue","oldPropValue","newValues","Set","oldValues","allowedTypes","class","clazz","customTypes","flat","t","toLowerCase","errs","childValue","isModel","pk","oldListModel","find","el","Promise","all","then","every","r","allEmpty","promises","resolvedValues","res","val","validateCompare","ValidatableUpdateProps","nestedErrors","propValue","designTypes","getPropDesignTypes","some","TYPE","propErrors","isConstr","isPropertyModel","instance","Constr","designTypeNames","nestedPropsToIgnore","getChildNestedPropsToIgnore","entries","error","ModelErrorDefinition","merged","allSettled","results","parentProp","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","status","reason","reduceErrorsToPrint","errors","enforceDBDecorators","repo","getDbDecorators","sortedDecorators","UPDATE_ALL","logger","extraPrefix","replace","obj","isTransient","previousVersion","exclusions","isAsync","validate","resolve","resolvedErrs","segregate","validatableProperties","transientProps","build","keyValue","constr","idProp","bind","pkProps","merge","extractData","assign","saveOperation","ctx","DefaultRepositoryFlags","parentContext","childContexts","ignoredValidationProperties","callArgs","writeOperation","affectedTables","breakOnHandlerError","rebuildWithTransient","ignoreValidation","ignoreHandlers","ignoreDevSafeGuards","mergeForUpdate","applyUpdateValidation","allowGenerationOverride","DefaultContextFactory","Context","accumulate","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","wrapMethodWithContextForUpdate","o","Repository","_class","self","create","read","delete","update","createAll","models","createPrefix","contextArgs","createSuffix","createAllPrefix","ignoreValidate","createAllSuffix","readAll","readSuffix","readPrefix","readAllPrefix","k","readAllSuffix","updateAll","updateSuffix","updatePrefix","updateAllPrefix","ids","oldModels","modelsValidation","updateAllSuffix","deleteAll","deleteSuffix","deletePrefix","deleteAllPrefix","deleteAllSuffix","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/model/decorators.ts","../src/validation/decorators.ts","../src/identity/decorators.ts","../src/model/validation.ts","../src/repository/utils.ts","../src/overrides/overrides.ts","../src/repository/constants.ts","../src/repository/Context.ts","../src/repository/wrappers.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],"names":["DBKeys","REFLECT","ModelKeys","MODEL","REPOSITORY","CLASS","ID","INDEX","UNIQUE","SERIALIZE","READONLY","TIMESTAMP","TRANSIENT","HASH","COMPOSED","GENERATED","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","owner","resolveOwner","name","resolveTargetName","handlers","selectHandlers","length","unshift","Object","prototype","getPrototypeOf","proto","register","handler","handlerName","getHandlerName","flavour","resolveFlavour","Decoration","defaultFlavour","Metadata","flavourOf","byOperation","bucket","firstBucket","values","keys","Hashing","hash","toString","Operations","str","targetName","registry","getOpRegistry","BaseError","Error","msg","code","stack","replaceAll","BreakError","BadRequestError","ValidationError","InternalError","SerializationError","NotFoundError","ConflictError","DefaultGroupSort","priority","getHandlerArgs","dec","prop","m","props","getHandlersDecorators","model","decorators","prefix","decs","handlerArgs","argsEntry","data","push","groupDecorators","grouped","reduce","acc","group","set","Symbol","groupKey","has","existing","Map","groups","Array","from","forEach","combined","map","d","i","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","readOperation","handlerKey","mergeData","filter","handle","propMetadata","OPERATIONS","apply","storeHandlerMetadata","params","metadata","BlockOperations","operations","BLOCK","includes","BlockOperationIf","generated","type","hashOnCreateUpdate","context","oldModel","composeAttributeValue","suffix","separator","filterEmpty","hashResult","composed","arg","isArray","JSON","stringify","join","composedFromCreateUpdate","composedFrom","for","define","decorator","property","composedFromKeys","versionCreateUpdate","Model","shouldGenerate","version","Number","transient","attribute","readonly","meta","description","async","innerValidationDecorator","timestampHandler","timestamp","format","decorationKey","updateValidationKey","date","required","indexOf","serializeOnCreateUpdate","serializer","serialize","serializeAfterAll","deserialize","parse","String","id","getValidatableUpdateProps","propsToIgnore","decoratedProperties","hasOwnProperty","call","validationFor","validateDecorator","newModel","toConditionalPromise","decoratorProps","maybeError","validateDecorators","result","decoratorKey","validationErrors","ValidationKeys","LIST","newPropValue","oldPropValue","newValues","Set","oldValues","allowedTypes","class","clazz","customTypes","flat","t","toLowerCase","errs","childValue","isModel","pk","oldListModel","find","el","Promise","all","then","every","r","allEmpty","promises","resolvedValues","res","val","validateCompare","ValidatableUpdateProps","nestedErrors","propValue","designTypes","getPropDesignTypes","some","TYPE","propErrors","isConstr","isPropertyModel","instance","Constr","designTypeNames","nestedPropsToIgnore","getChildNestedPropsToIgnore","entries","error","ModelErrorDefinition","merged","allSettled","results","parentProp","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","status","reason","reduceErrorsToPrint","errors","enforceDBDecorators","repo","getDbDecorators","sortedDecorators","UPDATE_ALL","logger","extraPrefix","replace","obj","isTransient","previousVersion","exclusions","isAsync","validate","resolve","resolvedErrs","segregate","validatableProperties","transientProps","build","keyValue","constr","idProp","bind","pkProps","merge","extractData","assign","saveOperation","ctx","versionProp","versionOf","DefaultRepositoryFlags","parentContext","childContexts","ignoredValidationProperties","callArgs","writeOperation","affectedTables","breakOnHandlerError","rebuildWithTransient","ignoreValidation","ignoreHandlers","ignoreDevSafeGuards","mergeForUpdate","applyUpdateValidation","allowGenerationOverride","DefaultContextFactory","Context","accumulate","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","wrapMethodWithContextForUpdate","o","Repository","_class","self","create","read","delete","update","createAll","models","createPrefix","contextArgs","createSuffix","createAllPrefix","ignoreValidate","createAllSuffix","readAll","readSuffix","readPrefix","readAllPrefix","k","readAllSuffix","updateAll","updateSuffix","updatePrefix","updateAllPrefix","ids","oldModels","modelsValidation","updateAllSuffix","deleteAll","deleteSuffix","deletePrefix","deleteAllPrefix","deleteAllSuffix","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
@@ -11,5 +11,5 @@ export * from "./validation";
11
11
  * @const VERSION
12
12
  * @memberOf module:db-decorators
13
13
  */
14
- export declare const VERSION = "0.8.25";
14
+ export declare const VERSION = "0.8.27";
15
15
  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.8.25";
20
+ export const VERSION = "0.8.27";
21
21
  export const PACKAGE_NAME = "@decaf-ts/db-decorators";
22
22
  Metadata.registerLibrary(PACKAGE_NAME, VERSION);
23
23
  //# sourceMappingURL=index.js.map
@@ -134,7 +134,7 @@ export declare function versionCreateUpdate(operation: CrudOperations): <M exten
134
134
  * @function version
135
135
  * @category PropertyDecorators
136
136
  */
137
- export declare function version(): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
137
+ export declare function version(): (target: any, propertyKey?: any) => any;
138
138
  /**
139
139
  * @description Creates a decorator that marks a property as transient
140
140
  * @summary Decorator that indicates a property should not be persisted to the database
@@ -238,9 +238,11 @@ export function versionCreateUpdate(operation) {
238
238
  */
239
239
  export function version() {
240
240
  const key = DBKeys.VERSION;
241
- return Decoration.for(key)
242
- .define(generated(DBKeys.VERSION), type(Number), onCreate(versionCreateUpdate(OperationKeys.CREATE)), onUpdate(versionCreateUpdate(OperationKeys.UPDATE)), propMetadata(key, true))
243
- .apply();
241
+ return function version(target, propertyKey) {
242
+ return Decoration.for(key)
243
+ .define(propMetadata(Metadata.key(key, propertyKey), true), generated(DBKeys.VERSION), type(Number), onCreate(versionCreateUpdate(OperationKeys.CREATE)), onUpdate(versionCreateUpdate(OperationKeys.UPDATE)))
244
+ .apply()(target, propertyKey);
245
+ };
244
246
  }
245
247
  /**
246
248
  * @description Creates a decorator that marks a property as transient
@@ -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":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,uBAAoB;AACvD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,sCAAiC;AAE9E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,kCAA6B;AACtE,OAAO,EAA6B,aAAa,EAAE,iCAAsB;AACzE,OAAO,EACL,UAAU,EACV,YAAY,EACZ,KAAK,EACL,QAAQ,GACT,MAAM,sBAAsB,CAAC;AAG9B,MAAM,UAAU,SAAS,CAAC,IAAa;IACrC,OAAO,SAAS,SAAS,CAAC,MAAc,EAAE,IAAU;QAClD,OAAO,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,CACrE,MAAM,EACN,IAAI,CACL,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,kBAAkB,CAMhC,OAA+B,EAC/B,IAAO,EACP,GAAY,EACZ,KAAQ,EACR,QAAY;IAEZ,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,WAAW;QAAE,OAAO;IAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAE,KAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,IAAI,QAAQ,IAAK,KAAa,CAAC,GAAG,CAAC,KAAK,IAAI;QAAE,OAAO;IACrD,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AACpB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,IAAI;IAClB,OAAO,KAAK,CACV,cAAc,CAAC,kBAAkB,CAAC,EAClC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAC9B,CAAC;AACJ,CAAC;AAwBD,MAAM,UAAU,qBAAqB,CACnC,KAAQ,EACR,QAA8B;IAE9B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,GACtE,QAAQ,CAAC;IACX,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI;aAClB,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE;YACnB,IAAI,IAAI,KAAK,MAAM;gBAAE,OAAO,GAAG,CAAC;YAChC,IAAI,OAAQ,KAAa,CAAC,GAAG,CAAC,KAAK,WAAW,EAAE,CAAC;gBAC/C,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;wBAAE,OAAO,SAAS,CAAC;oBAClD,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;wBAAE,OAAO,SAAS,CAAC;gBAClD,CAAC;gBACD,MAAM,IAAI,aAAa,CACrB,YAAY,IAAI,2CAA2C,CAC5D,CAAC;YACJ,CAAC;YACD,OAAS,KAAa,CAAC,GAAG,CAAS,CAAC,QAAQ,EAAE,CAAC;QACjD,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAE7C,IAAI,MAAM;YAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,MAAM;YAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAElC,MAAM,GAAG,GAAW,QAAQ;aACzB,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;YACd,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,iBAAiB;gBAChE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gBACnB,CAAC,CAAC,CAAC,CAAC;QACR,CAAC,CAAC;aACD,IAAI,CAAC,SAAS,CAAC,CAAC;QACnB,OAAO,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9C,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,MAAM,IAAI,aAAa,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,wBAAwB,CAI7B,OAA+B,EAAE,IAAO,EAAE,GAAY,EAAE,KAAQ;IACxE,KAAa,CAAC,GAAG,CAAC,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,YAAY,CACnB,IAAc,EACd,aAAsB,KAAK,EAC3B,YAAoB,gBAAgB,EACpC,cAAkC,KAAK,EACvC,OAA0B,QAAQ,EAClC,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,EAAE,EACX,YAAuB,EAAE,QAAQ,EAAE,EAAE,EAAE;IAEvC,SAAS,YAAY,CACnB,IAAc,EACd,UAAmB,EACnB,SAAiB,EACjB,IAAuB,EACvB,MAAc,EACd,MAAc,EACd,SAAoB;QAEpB,OAAO,SAAS,WAAW,CAAC,MAAc,EAAE,QAAc;YACxD,MAAM,IAAI,GAAyB;gBACjC,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE,UAAU;gBACtB,SAAS,EAAE,SAAS;gBACpB,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,WAAW;aACzB,CAAC;YAEF,MAAM,UAAU,GAAG;gBACjB,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC1B,cAAc,CAAC,wBAAwB,EAAE,IAAI,EAAE,SAAS,CAAC;gBACzD,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC;aAC5D,CAAC;YACF,IAAI,UAAU;gBAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACxC,OAAO,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAChD,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;SACnC,MAAM,CAAC;QACN,SAAS,EAAE,YAAY;QACvB,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;KACrE,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAc,EACd,YAAoB,gBAAgB,EACpC,cAAkC,KAAK,EACvC,OAAgB,KAAK,EACrB,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,EAAE,EACX,YAAuB,EAAE,QAAQ,EAAE,EAAE,EAAE;IAEvC,OAAO,YAAY,CACjB,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,WAAW,EACX,MAAM,EACN,MAAM,EACN,MAAM,EACN,SAAS,CACV,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,QAAQ,CACtB,IAAc,EACd,YAAoB,gBAAgB,EACpC,cAAkC,KAAK,EACvC,OAAgB,KAAK,EACrB,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,EAAE,EACX,YAAuB,EAAE,QAAQ,EAAE,EAAE,EAAE;IAEvC,OAAO,YAAY,CACjB,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,WAAW,EACX,QAAQ,EACR,MAAM,EACN,MAAM,EACN,SAAS,CACV,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAyB;IAC3D,OAAO,SAAS,mBAAmB,CAMjC,OAA+B,EAC/B,IAAO,EACP,GAAY,EACZ,KAAQ,EACR,QAAY;QAEZ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC;YAAE,OAAO;QACvD,IAAI,CAAC;YACH,QAAQ,SAAS,EAAE,CAAC;gBAClB,KAAK,aAAa,CAAC,MAAM;oBACtB,KAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACxB,MAAM;gBACR,KAAK,aAAa,CAAC,MAAM;oBACvB,IACE,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;wBACpC,QAAQ;wBACR,KAAK,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,GAAG,CAAC;wBAE5B,MAAM,IAAI,eAAe,CACvB,qBAAqB,KAAK,CAAC,GAAG,CAAC,QAAQ,QAAQ,CAAC,GAAG,CAAC,EAAE,CACvD,CAAC;oBACH,KAAa,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtB,MAAM;gBACR;oBACE,MAAM,IAAI,aAAa,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,IAAI,aAAa,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,OAAO;IACrB,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;IAC3B,OAAO,SAAS,OAAO,CAAC,MAAW,EAAE,WAAiB;QACpD,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;aACvB,MAAM,CACL,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,EAClD,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EACzB,IAAI,CAAC,MAAM,CAAC,EACZ,QAAQ,CAAC,mBAAmB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EACnD,QAAQ,CAAC,mBAAmB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CACpD;aACA,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;SACpC,MAAM,CAAC,SAAS,SAAS,CAAC,KAAU,EAAE,SAAc;QACnD,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CACzD,KAAK,EACL,SAAS,CACV,CAAC;IACJ,CAAC,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC"}
@@ -78,5 +78,7 @@ declare module "@decaf-ts/decorator-validation" {
78
78
  function composed<M extends Model<boolean>>(model: Constructor<M> | M, prop?: keyof M): boolean | ComposedFromMetadata | undefined;
79
79
  function generated<M extends Model>(model: M | Constructor<M>, prop: keyof M): boolean | string;
80
80
  function shouldGenerate<M extends Model>(model: M, prop: keyof M, ctx: Context<any>): boolean;
81
+ function versionProp<M extends Model<boolean>>(model: M): keyof M;
82
+ function versionOf<M extends Model<boolean>>(model: M): number;
81
83
  }
82
84
  }
@@ -3,7 +3,7 @@ import { validateCompare } from "./../model/validation.js";
3
3
  import { Metadata } from "@decaf-ts/decoration";
4
4
  import { DBKeys } from "./../model/constants.js";
5
5
  import { ModelOperations } from "./../operations/constants.js";
6
- import { SerializationError } from "./../repository/errors.js";
6
+ import { InternalError, SerializationError } from "./../repository/errors.js";
7
7
  Model.prototype.isTransient = function () {
8
8
  return Metadata.isTransient(this);
9
9
  };
@@ -138,4 +138,16 @@ Model.shouldGenerate = function shouldGenerate(model, prop, ctx) {
138
138
  return false;
139
139
  return true;
140
140
  }.bind(Model);
141
+ Model.versionProp = function versionProp(model) {
142
+ const meta = Metadata.get(model.constructor);
143
+ if (!meta || !meta[DBKeys.VERSION])
144
+ throw new InternalError(`No version found for ${model.constructor.name}`);
145
+ return Object.keys(meta)[0];
146
+ }.bind(Model);
147
+ Model.versionOf = function versionOf(model) {
148
+ const version = model[Model.versionProp(model)];
149
+ if (typeof version !== "number" || version < 1)
150
+ throw new InternalError(`Invalid version number: ${version}`);
151
+ return version;
152
+ }.bind(Model);
141
153
  //# sourceMappingURL=overrides.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../../src/overrides/overrides.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAEL,QAAQ,GACT,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,iCAA4B;AACtD,OAAO,EAAe,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,gCAA2B;AAC5C,OAAO,EAAE,eAAe,EAAE,qCAAgC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,kCAA6B;AAI1D,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG;IAC5B,OAAO,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,UAE1B,eAAyB,EACzB,GAAG,UAAiB;IAEpB,IAAI,eAAe,IAAI,CAAC,CAAC,eAAe,YAAY,KAAK,CAAC,EAAE,CAAC;QAC3D,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACpC,eAAe,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC;IAElD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;YACjD,IAAI,YAAY,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrC,OAAO,YAAY,CAAC;YACtB,CAAC;YACD,OAAO,eAAe,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC;QACtE,CAAC,CAAQ,CAAC;IACZ,CAAC;IAED,IAAI,IAAI,IAAI,CAAC,eAAe;QAAE,OAAO,IAAW,CAAC;IAEjD,2FAA2F;IAC3F,OAAO,eAAe,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS;IAG5C,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC;AAED,KAAa,CAAC,SAAS,GAAG,SAAS,SAAS,CAC3C,KAAQ;IAER,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC1D,MAAM,mBAAmB,GAAG,QAAQ,CAAC,qBAAqB,CACxD,KAAK,CAAC,WAAkB,CACzB,CAAC;IAEF,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CACjC,KAAK,CAAC,WAAkB,EACxB,MAAM,CAAC,SAAS,CACjB,CAAC;IAEF,MAAM,MAAM,GAAG;QACb,KAAK,EAAE,EAAyB;QAChC,SAAS,EAAE,EAAyB;KACrC,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAc,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,kBAAkB,CAC1B,0CAA0C,GAAG,KAAK,CAAC,EAAE,CACtD,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAI,KAA6B,CAAC,GAAG,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACjE,OAAO,MAA+D,CAAC;AACzE,CAAC,CAAC;AAED,QAAgB,CAAC,EAAE,GAAG,SAAS,EAAE,CAChC,KAAyB,EACzB,QAAQ,GAAG,KAAK;IAEhB,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;IAClE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAqB,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,oCAAoC,MAAM,EAAE,IAAI,IAAI,eAAe,EAAE,CACtE,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAY,CAAC;IAC9C,IAAI,CAAC,QAAQ;QAAE,OAAO,GAAG,CAAC;IAC1B,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC,GAAc,CAAC,CAAC;IACzD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;AACzE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAEhB,KAAa,CAAC,EAAE,GAAG,SAAS,EAAE,CAC7B,KAAyB,EACzB,QAAQ,GAAG,KAAK;IAEhB,OAAO,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEb,KAAa,CAAC,OAAO,GAAG,SAAS,OAAO,CACvC,KAAqB;IAErB,OAAO,QAAQ,CAAC,GAAG,CACjB,KAAK,EACL,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAW,CAAC,CACnD,CAAC;AACJ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEb,KAAa,CAAC,WAAW,GAAG,SAAS,WAAW,CAC/C,KAAyB;IAEzB,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CACnB,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAE,KAAK,CAAC,WAAmB,CAAC,CAAC,CAAC,KAAK,EAChE,MAAM,CAAC,SAAS,CACjB,CAAC;AACJ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEb,KAAa,CAAC,QAAQ,GAAG,SAAS,QAAQ,CACzC,KAAyB,EACzB,IAAc;IAEd,MAAM,MAAM,GACV,KAAK,YAAY,KAAK,CAAC,CAAC,CAAE,KAAK,CAAC,WAA8B,CAAC,CAAC,CAAC,KAAK,CAAC;IACzE,IAAI,IAAI;QACN,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAc,CAAC,CAAC,CAAC;IAC7E,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEd;;;;;;;;GAQG;AACF,KAAa,CAAC,KAAK,GAAG,SAAS,KAAK,CACnC,QAAW,EACX,QAAW,EACX,WAA4B;IAE5B,WAAW,GAAG,WAAW,IAAK,QAAQ,CAAC,WAA8B,CAAC;IACtE,MAAM,WAAW,GAAG,CAAC,KAAQ,EAAE,EAAE,CAC/B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAA0B,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;QACtE,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI;YAAE,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACjE,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;IAET,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7E,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEb,QAAgB,CAAC,aAAa,GAAG,SAAS,aAAa,CACtD,KAAqB,EACrB,WAAmB,EACnB,SAAiB,EACjB,QAAa;IAEb,IAAI,CAAC,WAAW;QAAE,OAAO;IACzB,QAAQ,CAAC,GAAG,CACV,KAAK,EACL,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,EAChE,QAAQ,CACT,CAAC;AACJ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAEhB,QAAgB,CAAC,aAAa,GAAG,SAAS,aAAa,CACtD,KAAqB,EACrB,WAAoB,EACpB,SAAkB;IAElB,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS;QAAE,OAAO;IACvC,OAAO,QAAQ,CAAC,GAAG,CACjB,KAAK,EACL,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CACjE,CAAC;AACJ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAEhB,QAAgB,CAAC,WAAW,GAAG,SAAS,WAAW,CAClD,KAAyB;IAEzB,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CACnB,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAE,KAAK,CAAC,WAAmB,CAAC,CAAC,CAAC,KAAK,EAChE,MAAM,CAAC,SAAS,CACjB,CAAC;AACJ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAEhB,KAAa,CAAC,SAAS,GAAG,SAAS,SAAS,CAC3C,KAAyB,EACzB,IAAa;IAEb,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CACnB,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAE,KAAK,CAAC,WAAmB,CAAC,CAAC,CAAC,KAAK,EAChE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,IAAc,CAAC,CAC/C,CAAC;AACJ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEb,KAAa,CAAC,cAAc,GAAG,SAAS,cAAc,CACrD,KAAQ,EACR,IAAa,EACb,GAAiB;IAEjB,IAAI,GAAG,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,WAAW;QAC1E,OAAO,KAAK,CAAC;IACf,OAAO,IAAI,CAAC;AACd,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../../src/overrides/overrides.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.8.25";
37
+ exports.VERSION = "0.8.27";
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
@@ -11,5 +11,5 @@ export * from "./validation";
11
11
  * @const VERSION
12
12
  * @memberOf module:db-decorators
13
13
  */
14
- export declare const VERSION = "0.8.25";
14
+ export declare const VERSION = "0.8.27";
15
15
  export declare const PACKAGE_NAME = "@decaf-ts/db-decorators";
@@ -250,9 +250,11 @@ function versionCreateUpdate(operation) {
250
250
  */
251
251
  function version() {
252
252
  const key = constants_1.DBKeys.VERSION;
253
- return decoration_1.Decoration.for(key)
254
- .define(generated(constants_1.DBKeys.VERSION), (0, decorator_validation_1.type)(Number), (0, decorators_1.onCreate)(versionCreateUpdate(operations_1.OperationKeys.CREATE)), (0, decorators_1.onUpdate)(versionCreateUpdate(operations_1.OperationKeys.UPDATE)), (0, decoration_1.propMetadata)(key, true))
255
- .apply();
253
+ return function version(target, propertyKey) {
254
+ return decoration_1.Decoration.for(key)
255
+ .define((0, decoration_1.propMetadata)(decoration_1.Metadata.key(key, propertyKey), true), generated(constants_1.DBKeys.VERSION), (0, decorator_validation_1.type)(Number), (0, decorators_1.onCreate)(versionCreateUpdate(operations_1.OperationKeys.CREATE)), (0, decorators_1.onUpdate)(versionCreateUpdate(operations_1.OperationKeys.UPDATE)))
256
+ .apply()(target, propertyKey);
257
+ };
256
258
  }
257
259
  /**
258
260
  * @description Creates a decorator that marks a property as transient
@@ -134,7 +134,7 @@ export declare function versionCreateUpdate(operation: CrudOperations): <M exten
134
134
  * @function version
135
135
  * @category PropertyDecorators
136
136
  */
137
- export declare function version(): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
137
+ export declare function version(): (target: any, propertyKey?: any) => any;
138
138
  /**
139
139
  * @description Creates a decorator that marks a property as transient
140
140
  * @summary Decorator that indicates a property should not be persisted to the database
@@ -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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"}
@@ -78,5 +78,7 @@ declare module "@decaf-ts/decorator-validation" {
78
78
  function composed<M extends Model<boolean>>(model: Constructor<M> | M, prop?: keyof M): boolean | ComposedFromMetadata | undefined;
79
79
  function generated<M extends Model>(model: M | Constructor<M>, prop: keyof M): boolean | string;
80
80
  function shouldGenerate<M extends Model>(model: M, prop: keyof M, ctx: Context<any>): boolean;
81
+ function versionProp<M extends Model<boolean>>(model: M): keyof M;
82
+ function versionOf<M extends Model<boolean>>(model: M): number;
81
83
  }
82
84
  }
@@ -140,4 +140,16 @@ decorator_validation_1.Model.shouldGenerate = function shouldGenerate(model, pro
140
140
  return false;
141
141
  return true;
142
142
  }.bind(decorator_validation_1.Model);
143
+ decorator_validation_1.Model.versionProp = function versionProp(model) {
144
+ const meta = decoration_1.Metadata.get(model.constructor);
145
+ if (!meta || !meta[constants_1.DBKeys.VERSION])
146
+ throw new errors_1.InternalError(`No version found for ${model.constructor.name}`);
147
+ return Object.keys(meta)[0];
148
+ }.bind(decorator_validation_1.Model);
149
+ decorator_validation_1.Model.versionOf = function versionOf(model) {
150
+ const version = model[decorator_validation_1.Model.versionProp(model)];
151
+ if (typeof version !== "number" || version < 1)
152
+ throw new errors_1.InternalError(`Invalid version number: ${version}`);
153
+ return version;
154
+ }.bind(decorator_validation_1.Model);
143
155
  //# sourceMappingURL=overrides.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../src/overrides/overrides.ts"],"names":[],"mappings":";;AAAA,yEAIwC;AACxC,0DAAsD;AACtD,qDAA6D;AAC7D,wDAA4C;AAC5C,6DAA0D;AAC1D,uDAA0D;AAI1D,4BAAK,CAAC,SAAS,CAAC,WAAW,GAAG;IAC5B,OAAO,qBAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,4BAAK,CAAC,SAAS,CAAC,SAAS,GAAG,UAE1B,eAAyB,EACzB,GAAG,UAAiB;IAEpB,IAAI,eAAe,IAAI,CAAC,CAAC,eAAe,YAAY,4BAAK,CAAC,EAAE,CAAC;QAC3D,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACpC,eAAe,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAA,+BAAQ,EAAC,IAAI,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC;IAElD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;YACjD,IAAI,YAAY,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrC,OAAO,YAAY,CAAC;YACtB,CAAC;YACD,OAAO,IAAA,4BAAe,EAAC,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC;QACtE,CAAC,CAAQ,CAAC;IACZ,CAAC;IAED,IAAI,IAAI,IAAI,CAAC,eAAe;QAAE,OAAO,IAAW,CAAC;IAEjD,2FAA2F;IAC3F,OAAO,IAAA,4BAAe,EAAC,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF,4BAAK,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS;IAG5C,OAAO,4BAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC;AAED,4BAAa,CAAC,SAAS,GAAG,SAAS,SAAS,CAC3C,KAAQ;IAER,IAAI,CAAC,qBAAQ,CAAC,WAAW,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC1D,MAAM,mBAAmB,GAAG,qBAAQ,CAAC,qBAAqB,CACxD,KAAK,CAAC,WAAkB,CACzB,CAAC;IAEF,MAAM,cAAc,GAAG,qBAAQ,CAAC,GAAG,CACjC,KAAK,CAAC,WAAkB,EACxB,kBAAM,CAAC,SAAS,CACjB,CAAC;IAEF,MAAM,MAAM,GAAG;QACb,KAAK,EAAE,EAAyB;QAChC,SAAS,EAAE,EAAyB;KACrC,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAc,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,2BAAkB,CAC1B,0CAA0C,GAAG,KAAK,CAAC,EAAE,CACtD,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAI,KAA6B,CAAC,GAAG,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,GAAG,4BAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACjE,OAAO,MAA+D,CAAC;AACzE,CAAC,CAAC;AAED,qBAAgB,CAAC,EAAE,GAAG,SAAS,EAAE,CAChC,KAAyB,EACzB,QAAQ,GAAG,KAAK;IAEhB,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,KAAK,YAAY,4BAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;IAClE,MAAM,MAAM,GAAG,qBAAQ,CAAC,GAAG,CAAC,MAAqB,EAAE,kBAAM,CAAC,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,oCAAoC,MAAM,EAAE,IAAI,IAAI,eAAe,EAAE,CACtE,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAY,CAAC;IAC9C,IAAI,CAAC,QAAQ;QAAE,OAAO,GAAG,CAAC;IAC1B,IAAI,KAAK,YAAY,4BAAK;QAAE,OAAO,KAAK,CAAC,GAAc,CAAC,CAAC;IACzD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;AACzE,CAAC,CAAC,IAAI,CAAC,qBAAQ,CAAC,CAAC;AAEhB,4BAAa,CAAC,EAAE,GAAG,SAAS,EAAE,CAC7B,KAAyB,EACzB,QAAQ,GAAG,KAAK;IAEhB,OAAO,qBAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC,CAAC,IAAI,CAAC,4BAAK,CAAC,CAAC;AAEb,4BAAa,CAAC,OAAO,GAAG,SAAS,OAAO,CACvC,KAAqB;IAErB,OAAO,qBAAQ,CAAC,GAAG,CACjB,KAAK,EACL,qBAAQ,CAAC,GAAG,CAAC,kBAAM,CAAC,EAAE,EAAE,4BAAK,CAAC,EAAE,CAAC,KAAK,CAAW,CAAC,CACnD,CAAC;AACJ,CAAC,CAAC,IAAI,CAAC,4BAAK,CAAC,CAAC;AAEb,4BAAa,CAAC,WAAW,GAAG,SAAS,WAAW,CAC/C,KAAyB;IAEzB,OAAO,CAAC,CAAC,qBAAQ,CAAC,GAAG,CACnB,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAE,KAAK,CAAC,WAAmB,CAAC,CAAC,CAAC,KAAK,EAChE,kBAAM,CAAC,SAAS,CACjB,CAAC;AACJ,CAAC,CAAC,IAAI,CAAC,4BAAK,CAAC,CAAC;AAEb,4BAAa,CAAC,QAAQ,GAAG,SAAS,QAAQ,CACzC,KAAyB,EACzB,IAAc;IAEd,MAAM,MAAM,GACV,KAAK,YAAY,4BAAK,CAAC,CAAC,CAAE,KAAK,CAAC,WAA8B,CAAC,CAAC,CAAC,KAAK,CAAC;IACzE,IAAI,IAAI;QACN,OAAO,qBAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,qBAAQ,CAAC,GAAG,CAAC,kBAAM,CAAC,QAAQ,EAAE,IAAc,CAAC,CAAC,CAAC;IAC7E,OAAO,CAAC,CAAC,qBAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAM,CAAC,QAAQ,CAAC,CAAC;AACjD,CAAC,CAAC,IAAI,CAAC,4BAAK,CAAC,CAAC;AAEd;;;;;;;;GAQG;AACF,4BAAa,CAAC,KAAK,GAAG,SAAS,KAAK,CACnC,QAAW,EACX,QAAW,EACX,WAA4B;IAE5B,WAAW,GAAG,WAAW,IAAK,QAAQ,CAAC,WAA8B,CAAC;IACtE,MAAM,WAAW,GAAG,CAAC,KAAQ,EAAE,EAAE,CAC/B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAA0B,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;QACtE,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI;YAAE,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACjE,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;IAET,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7E,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC,IAAI,CAAC,4BAAK,CAAC,CAAC;AAEb,qBAAgB,CAAC,aAAa,GAAG,SAAS,aAAa,CACtD,KAAqB,EACrB,WAAmB,EACnB,SAAiB,EACjB,QAAa;IAEb,IAAI,CAAC,WAAW;QAAE,OAAO;IACzB,qBAAQ,CAAC,GAAG,CACV,KAAK,EACL,qBAAQ,CAAC,GAAG,CAAC,2BAAe,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,EAChE,QAAQ,CACT,CAAC;AACJ,CAAC,CAAC,IAAI,CAAC,qBAAQ,CAAC,CAAC;AAEhB,qBAAgB,CAAC,aAAa,GAAG,SAAS,aAAa,CACtD,KAAqB,EACrB,WAAoB,EACpB,SAAkB;IAElB,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS;QAAE,OAAO;IACvC,OAAO,qBAAQ,CAAC,GAAG,CACjB,KAAK,EACL,qBAAQ,CAAC,GAAG,CAAC,2BAAe,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CACjE,CAAC;AACJ,CAAC,CAAC,IAAI,CAAC,qBAAQ,CAAC,CAAC;AAEhB,qBAAgB,CAAC,WAAW,GAAG,SAAS,WAAW,CAClD,KAAyB;IAEzB,OAAO,CAAC,CAAC,qBAAQ,CAAC,GAAG,CACnB,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAE,KAAK,CAAC,WAAmB,CAAC,CAAC,CAAC,KAAK,EAChE,kBAAM,CAAC,SAAS,CACjB,CAAC;AACJ,CAAC,CAAC,IAAI,CAAC,qBAAQ,CAAC,CAAC;AAEhB,4BAAa,CAAC,SAAS,GAAG,SAAS,SAAS,CAC3C,KAAyB,EACzB,IAAa;IAEb,OAAO,CAAC,CAAC,qBAAQ,CAAC,GAAG,CACnB,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAE,KAAK,CAAC,WAAmB,CAAC,CAAC,CAAC,KAAK,EAChE,qBAAQ,CAAC,GAAG,CAAC,kBAAM,CAAC,SAAS,EAAE,IAAc,CAAC,CAC/C,CAAC;AACJ,CAAC,CAAC,IAAI,CAAC,4BAAK,CAAC,CAAC;AAEb,4BAAa,CAAC,cAAc,GAAG,SAAS,cAAc,CACrD,KAAQ,EACR,IAAa,EACb,GAAiB;IAEjB,IAAI,GAAG,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,WAAW;QAC1E,OAAO,KAAK,CAAC;IACf,OAAO,IAAI,CAAC;AACd,CAAC,CAAC,IAAI,CAAC,4BAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../src/overrides/overrides.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.8.26",
3
+ "version": "0.8.28",
4
4
  "description": "Agnostic database decorators and repository",
5
5
  "type": "module",
6
6
  "exports": {
@@ -19,11 +19,11 @@
19
19
  "build": "npx build-scripts --dev",
20
20
  "build:prod": "npx build-scripts --prod",
21
21
  "test": "jest --runInBand --coverage --detectOpenHandles",
22
- "test:unit": "jest --testPathPattern=\"/tests/unit\" --passWithNoTests --detectOpenHandles",
23
- "test:integration": "jest --testPathPattern=\"/tests/(integration)\" --passWithNoTests --detectOpenHandles",
24
- "test:all": "jest --testPathPattern=\"/tests\" --passWithNoTests --detectOpenHandles",
22
+ "test:unit": "jest --testPathPatterns=\"/tests/unit\" --passWithNoTests --detectOpenHandles",
23
+ "test:integration": "jest --testPathPatterns=\"/tests/(integration)\" --passWithNoTests --detectOpenHandles",
24
+ "test:all": "jest --testPathPatterns=\"/tests\" --passWithNoTests --detectOpenHandles",
25
25
  "test:circular": "dpdm -T --no-warning --no-tree ./src/index.ts",
26
- "coverage": "rimraf ./workdocs/reports/data/*.json && npm run test:all -- --coverage --config=./workdocs/reports/jest.coverage.config.ts",
26
+ "coverage": "rimraf ./workdocs/reports/data/*.json && npm run test:all -- --coverage --config=./workdocs/reports/jest.coverage.config.cjs",
27
27
  "lint": "eslint .",
28
28
  "lint-fix": "eslint --fix .",
29
29
  "prepare-pr": "npm run lint-fix && npm run build:prod && npm run coverage && npm run docs",
@@ -76,12 +76,17 @@
76
76
  },
77
77
  "homepage": "https://github.com/decaf-ts/db-decorators#readme",
78
78
  "devDependencies": {
79
- "@decaf-ts/utils": "latest"
79
+ "@decaf-ts/utils": "latest",
80
+ "@types/jest": "^30.0.0"
80
81
  },
81
82
  "dependencies": {
82
83
  "@decaf-ts/decoration": "latest",
83
84
  "@decaf-ts/decorator-validation": "latest",
84
85
  "@decaf-ts/injectable-decorators": "latest",
85
86
  "@decaf-ts/logging": "latest"
87
+ },
88
+ "overrides": {
89
+ "minimatch": "^10.2.2",
90
+ "test-exclude": "7.0.1"
86
91
  }
87
92
  }