@decaf-ts/db-decorators 0.8.21 → 0.8.22

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.
@@ -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 P extends A{constructor(e){super(e,P.name,404)}}class D extends A{constructor(e){super(e,D.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 I(h.CREATE_UPDATE,e,t,r)}function N(e,t,r){return I(h.UPDATE,e,t,r)}function x(e,t,r){return I(h.CREATE,e,t,r)}function I(t=h.ALL,r,a,o){return k(e.OperationKeys.ON,t,r,a,o)}function C(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 j(e){return(r,a)=>t.propMetadata(t.Metadata.key(s.GENERATED,a),e||!0)(r,a)}function V(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(V),t.propMetadata(s.HASH,{}))}function H(e,t,a,o){try{const{args:e,type:n,prefix:s,suffix:i,separator:c,filterEmpty:l,hashResult:d}=t,p=e.map((t=>{if(!(t in o))throw new M(`Property ${t} not found to compose from`);if("keys"===n)return t;if(void 0===o[t]){if(l){if(!Array.isArray(l))return;if(l.includes(t))return}throw new M(`Property ${e} does not contain a value to compose from`)}return o[t].toString()})).filter((e=>!l||!!e));s&&p.unshift(s),i&&p.push(i);const u=p.map((e=>"object"==typeof e&&"[object Object]"===e.toString()?JSON.stringify(e):e)).join(c);o[a]=d?r.Hashing.hash(u):u}catch(e){throw new M("Failed to compose value: "+e)}}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=[j(s.COMPOSED),L(H,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 _(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 z(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:[z,a,o]}).apply()}async function B(e,t,a,o){r.Model.shouldGenerate(o,a,e)&&(o[a]=e.timestamp)}async function G(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 Y(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 Q(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 J(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=Q(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 W(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=J(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 Z(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 X(t,r,a,o,n,s){const i=ee(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){const t=`Failed to execute handler ${n.handler.name} for ${n.prop} on ${a.constructor.name}`;if(e instanceof m?Object.defineProperty(e,"message",{value:t+" "+e.message}):e=new M(t+" "+e.message),r.get("breakOnHandlerError"))throw e;r.logger.for(X).error(t)}}}function ee(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:W(e,this,a,...t))):o||!e?o:W(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},r.Model.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(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])=>(void 0!==r&&(e[t]=r),e)),{});return new(r=r||e.constructor)(Object.assign({},a(e),a(t)))}).bind(r.Model),t.Metadata.saveOperation=((r,a,o,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 te={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},re=e=>(new ae).accumulate(Object.assign({},e,{timestamp:new Date,logger:e.logger||n.Logging.get()}));class ae{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=re}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 ae.factory(Object.assign({},e.cache,t||{}))}static async from(e,t,r,...a){return ae.factory(Object.assign({},te,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):ae.from(e,o||{},t,...r)}let i;return n?n instanceof ae?(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 oe(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 ae))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 ne(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 ae))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 se="##VERSION##",ie="##PACKAGE##";t.Metadata.registerLibrary(ie,se),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=ae,e.DBKeys=s,e.DBOperations=h,e.DEFAULT_ERROR_MESSAGES=l,e.DEFAULT_TIMESTAMP_FORMAT=c,e.DefaultContextFactory=re,e.DefaultRepositoryFlags=te,e.DefaultSeparator=i,e.InternalError=M,e.NotFoundError=P,e.Operations=E,e.OperationsRegistry=g,e.PACKAGE_NAME=ie,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;oe(t,t[r+"Prefix"],e,t[r+"Suffix"])})),ne(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 ae.args(e.OperationKeys.CREATE,this.class,r);if(t=new this.class(t),a.context.get("ignoreHandlers")||await X(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 X(this,r,t,e.OperationKeys.CREATE,e.OperationKeys.AFTER),t}async createAllPrefix(t,...r){const a=await ae.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 X(this,a.context,r,e.OperationKeys.CREATE,e.OperationKeys.ON),r}))),!n){const e=Z(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=>X(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 X(this,r,t,e.OperationKeys.READ,e.OperationKeys.AFTER),t}async readPrefix(t,...r){const a=await ae.args(e.OperationKeys.READ,this.class,r),o=new this.class;return o[this.pk]=t,await X(this,a.context,o,e.OperationKeys.READ,e.OperationKeys.ON),[t,...a.args]}async readAllPrefix(t,...r){const a=await ae.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,X(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=>X(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 X(this,a,t,e.OperationKeys.UPDATE,e.OperationKeys.AFTER,r),t}async updatePrefix(t,...a){const o=await ae.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 X(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 ae.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)=>X(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=Z(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)=>X(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 X(this,r,t,e.OperationKeys.DELETE,e.OperationKeys.AFTER),t}async deletePrefix(t,...r){const a=await ae.args(e.OperationKeys.DELETE,this.class,r),o=await this.read(t,...a.args);return await X(this,a.context,o,e.OperationKeys.DELETE,e.OperationKeys.ON),[t,...a.args]}async deleteAllPrefix(t,...r){const a=await ae.args(e.OperationKeys.DELETE,this.class,r),o=await this.readAll(t,...a.args);return await Promise.all(o.map((async t=>X(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=>X(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=se,e.ValidationError=T,e.after=C,e.afterAny=(e,t,r)=>C(h.ALL,e,t,r),e.afterCreate=(e,t,r)=>C(h.CREATE,e,t,r),e.afterCreateUpdate=(e,t,r)=>C(h.CREATE_UPDATE,e,t,r),e.afterDelete=(e,t,r)=>C(h.DELETE,e,t,r),e.afterRead=(e,t,r)=>C(h.READ,e,t,r),e.afterUpdate=(e,t,r)=>C(h.UPDATE,e,t,r),e.composed=(e,t=i,r=!1,a=!1,o="",n="",s={priority:55})=>$(e,a,t,r,"values",o,n,s),e.composedFromCreateUpdate=H,e.composedFromKeys=(e,t=i,r=!1,a=!1,o="",n="",s={priority:55})=>$(e,a,t,r,"keys",o,n,s),e.enforceDBDecorators=X,e.generated=j,e.getDbDecorators=ee,e.getHandlerArgs=v,e.getHandlersDecorators=b,e.getValidatableUpdateProps=q,e.groupDecorators=S,e.hash=F,e.hashOnCreateUpdate=V,e.id=()=>t.apply(r.required(),z(),((e,r)=>t.propMetadata(t.Metadata.key(s.ID,r),{})(e,r))),e.on=I,e.onAny=(e,t,r)=>I(h.ALL,e,t,r),e.onCreate=x,e.onCreateUpdate=L,e.onDelete=(e,t,r)=>I(h.DELETE,e,t,r),e.onRead=(e,t,r)=>I(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=z,e.reduceErrorsToPrint=Z,e.serialize=e=>t.apply(L(G,{serializer:e}),C(h.ALL,Y,{serializer:e}),r.type([String,Object]),t.metadata(s.SERIALIZE,{serializer:e})),e.serializeAfterAll=Y,e.serializeOnCreateUpdate=G,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=[j(s.TIMESTAMP),r.date(o,l.TIMESTAMP.DATE),r.required(l.TIMESTAMP.REQUIRED),t.propMetadata(r.Validation.key(s.TIMESTAMP),{operation:a,format:o}),I(a,B)];return-1!==a.indexOf(e.OperationKeys.UPDATE)?n.push(t.propMetadata(i,{message:l.TIMESTAMP.INVALID})):n.push(z()),t.apply(...n)},args:[a,o]}).apply()},e.timestampHandler=B,e.transient=()=>t.Decoration.for(s.TRANSIENT).define(((e,r)=>{t.metadata(s.TRANSIENT,!0)(e.constructor),t.propMetadata(t.Metadata.key(s.TRANSIENT,r),{})(e,r)})).apply(),e.validateCompare=W,e.validateDecorator=Q,e.validateDecorators=J,e.version=()=>{const a=s.VERSION;return t.Decoration.for(a).define(j(s.VERSION),r.type(Number),x(_(e.OperationKeys.CREATE)),N(_(e.OperationKeys.UPDATE)),t.propMetadata(a,!0)).apply()},e.versionCreateUpdate=_,e.wrapMethodWithContext=oe,e.wrapMethodWithContextForUpdate=ne},"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 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 I(h.CREATE_UPDATE,e,t,r)}function N(e,t,r){return I(h.UPDATE,e,t,r)}function x(e,t,r){return I(h.CREATE,e,t,r)}function I(t=h.ALL,r,a,o){return k(e.OperationKeys.ON,t,r,a,o)}function C(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 j(e){return(r,a)=>t.propMetadata(t.Metadata.key(s.GENERATED,a),e||!0)(r,a)}function V(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(V),t.propMetadata(s.HASH,{}))}function H(e,t,a,o){try{const{args:e,type:n,prefix:s,suffix:i,separator:c,filterEmpty:l,hashResult:d}=t,p=e.map((t=>{if(!(t in o))throw new M(`Property ${t} not found to compose from`);if("keys"===n)return t;if(void 0===o[t]){if(l){if(!Array.isArray(l))return;if(l.includes(t))return}throw new M(`Property ${e} does not contain a value to compose from`)}return o[t].toString()})).filter((e=>!l||!!e));s&&p.unshift(s),i&&p.push(i);const u=p.map((e=>"object"==typeof e&&"[object Object]"===e.toString()?JSON.stringify(e):e)).join(c);o[a]=d?r.Hashing.hash(u):u}catch(e){throw new M("Failed to compose value: "+e)}}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=[j(s.COMPOSED),L(H,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 _(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 z(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:[z,a,o]}).apply()}async function B(e,t,a,o){r.Model.shouldGenerate(o,a,e)&&(o[a]=e.timestamp)}async function G(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 Y(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 Q(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 J(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=Q(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 W(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=J(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 Z(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 X(t,r,a,o,n,s){const i=ee(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){const o=`Failed to execute handler ${n.handler.name} for ${n.prop} on ${a.constructor.name}`;let s=e;if(e instanceof m||(s=t.adapter.parseError(e)),s instanceof m?Object.defineProperty(e,"message",{value:o+" "+s.message}):s=new M(o+" "+s.message),r.get("breakOnHandlerError"))throw s;r.logger.for(X).error(o)}}}function ee(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:W(e,this,a,...t))):o||!e?o:W(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},r.Model.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(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])=>(void 0!==r&&(e[t]=r),e)),{});return new(r=r||e.constructor)(Object.assign({},a(e),a(t)))}).bind(r.Model),t.Metadata.saveOperation=((r,a,o,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 te={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},re=e=>(new ae).accumulate(Object.assign({},e,{timestamp:new Date,logger:e.logger||n.Logging.get()}));class ae{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=re}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 ae.factory(Object.assign({},e.cache,t||{}))}static async from(e,t,r,...a){return ae.factory(Object.assign({},te,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):ae.from(e,o||{},t,...r)}let i;return n?n instanceof ae?(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 oe(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 ae))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 ne(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 ae))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 se="##VERSION##",ie="##PACKAGE##";t.Metadata.registerLibrary(ie,se),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=ae,e.DBKeys=s,e.DBOperations=h,e.DEFAULT_ERROR_MESSAGES=l,e.DEFAULT_TIMESTAMP_FORMAT=c,e.DefaultContextFactory=re,e.DefaultRepositoryFlags=te,e.DefaultSeparator=i,e.InternalError=M,e.NotFoundError=P,e.Operations=E,e.OperationsRegistry=g,e.PACKAGE_NAME=ie,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;oe(t,t[r+"Prefix"],e,t[r+"Suffix"])})),ne(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 ae.args(e.OperationKeys.CREATE,this.class,r);if(t=new this.class(t),a.context.get("ignoreHandlers")||await X(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 X(this,r,t,e.OperationKeys.CREATE,e.OperationKeys.AFTER),t}async createAllPrefix(t,...r){const a=await ae.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 X(this,a.context,r,e.OperationKeys.CREATE,e.OperationKeys.ON),r}))),!n){const e=Z(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=>X(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 X(this,r,t,e.OperationKeys.READ,e.OperationKeys.AFTER),t}async readPrefix(t,...r){const a=await ae.args(e.OperationKeys.READ,this.class,r),o=new this.class;return o[this.pk]=t,await X(this,a.context,o,e.OperationKeys.READ,e.OperationKeys.ON),[t,...a.args]}async readAllPrefix(t,...r){const a=await ae.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,X(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=>X(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 X(this,a,t,e.OperationKeys.UPDATE,e.OperationKeys.AFTER,r),t}async updatePrefix(t,...a){const o=await ae.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 X(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 ae.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)=>X(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=Z(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)=>X(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 X(this,r,t,e.OperationKeys.DELETE,e.OperationKeys.AFTER),t}async deletePrefix(t,...r){const a=await ae.args(e.OperationKeys.DELETE,this.class,r),o=await this.read(t,...a.args);return await X(this,a.context,o,e.OperationKeys.DELETE,e.OperationKeys.ON),[t,...a.args]}async deleteAllPrefix(t,...r){const a=await ae.args(e.OperationKeys.DELETE,this.class,r),o=await this.readAll(t,...a.args);return await Promise.all(o.map((async t=>X(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=>X(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=se,e.ValidationError=T,e.after=C,e.afterAny=(e,t,r)=>C(h.ALL,e,t,r),e.afterCreate=(e,t,r)=>C(h.CREATE,e,t,r),e.afterCreateUpdate=(e,t,r)=>C(h.CREATE_UPDATE,e,t,r),e.afterDelete=(e,t,r)=>C(h.DELETE,e,t,r),e.afterRead=(e,t,r)=>C(h.READ,e,t,r),e.afterUpdate=(e,t,r)=>C(h.UPDATE,e,t,r),e.composed=(e,t=i,r=!1,a=!1,o="",n="",s={priority:55})=>$(e,a,t,r,"values",o,n,s),e.composedFromCreateUpdate=H,e.composedFromKeys=(e,t=i,r=!1,a=!1,o="",n="",s={priority:55})=>$(e,a,t,r,"keys",o,n,s),e.enforceDBDecorators=X,e.generated=j,e.getDbDecorators=ee,e.getHandlerArgs=v,e.getHandlersDecorators=b,e.getValidatableUpdateProps=q,e.groupDecorators=S,e.hash=F,e.hashOnCreateUpdate=V,e.id=()=>t.apply(r.required(),z(),((e,r)=>t.propMetadata(t.Metadata.key(s.ID,r),{})(e,r))),e.on=I,e.onAny=(e,t,r)=>I(h.ALL,e,t,r),e.onCreate=x,e.onCreateUpdate=L,e.onDelete=(e,t,r)=>I(h.DELETE,e,t,r),e.onRead=(e,t,r)=>I(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=z,e.reduceErrorsToPrint=Z,e.serialize=e=>t.apply(L(G,{serializer:e}),C(h.ALL,Y,{serializer:e}),r.type([String,Object]),t.metadata(s.SERIALIZE,{serializer:e})),e.serializeAfterAll=Y,e.serializeOnCreateUpdate=G,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=[j(s.TIMESTAMP),r.date(o,l.TIMESTAMP.DATE),r.required(l.TIMESTAMP.REQUIRED),t.propMetadata(r.Validation.key(s.TIMESTAMP),{operation:a,format:o}),I(a,B)];return-1!==a.indexOf(e.OperationKeys.UPDATE)?n.push(t.propMetadata(i,{message:l.TIMESTAMP.INVALID})):n.push(z()),t.apply(...n)},args:[a,o]}).apply()},e.timestampHandler=B,e.transient=()=>t.Decoration.for(s.TRANSIENT).define(((e,r)=>{t.metadata(s.TRANSIENT,!0)(e.constructor),t.propMetadata(t.Metadata.key(s.TRANSIENT,r),{})(e,r)})).apply(),e.validateCompare=W,e.validateDecorator=Q,e.validateDecorators=J,e.version=()=>{const a=s.VERSION;return t.Decoration.for(a).define(j(s.VERSION),r.type(Number),x(_(e.OperationKeys.CREATE)),N(_(e.OperationKeys.UPDATE)),t.propMetadata(a,!0)).apply()},e.versionCreateUpdate=_,e.wrapMethodWithContext=oe,e.wrapMethodWithContextForUpdate=ne},"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","exports","__decorate","validator","TimestampValidator","Date","e","UpdateValidator","DecoratorMessages","DEFAULT","acceptedTypes","OperationKeys","ModelOperations","BulkCrudOperationKeys","Validation","updateKey","key","DBOperations","CREATE","READ","UPDATE","DELETE","CREATE_UPDATE","READ_CREATE","ALL","OperationsRegistry","cache","get","target","propKey","operation","accum","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","composedFromCreateUpdate","suffix","separator","filterEmpty","hashResult","composed","arg","isArray","includes","JSON","stringify","join","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","defineProperty","logger","extraPrefix","replace","obj","isTransient","decoratorValidation","previousVersion","exclusions","isAsync","validate","resolve","resolvedErrs","segregate","validatableProperties","transientProps","transient","build","keyValue","constr","idProp","bind","pkProps","merge","extract","assign","saveOperation","decoration","ctx","DefaultRepositoryFlags","parentContext","childContexts","ignoredValidationProperties","callArgs","writeOperation","affectedTables","breakOnHandlerError","rebuildWithTransient","ignoreValidation","ignoreHandlers","ignoreDevSafeGuards","mergeForUpdate","applyUpdateValidation","allowGenerationOverride","DefaultContextFactory","Context","accumulate","Logging","ObjectAccumulator","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","exports","__decorate","validator","TimestampValidator","Date","e","UpdateValidator","DecoratorMessages","DEFAULT","acceptedTypes","OperationKeys","ModelOperations","BulkCrudOperationKeys","Validation","updateKey","key","DBOperations","CREATE","READ","UPDATE","DELETE","CREATE_UPDATE","READ_CREATE","ALL","OperationsRegistry","cache","get","target","propKey","operation","accum","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","composedFromCreateUpdate","suffix","separator","filterEmpty","hashResult","composed","arg","isArray","includes","JSON","stringify","join","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","adapter","parseError","defineProperty","logger","extraPrefix","replace","obj","isTransient","decoratorValidation","previousVersion","exclusions","isAsync","validate","resolve","resolvedErrs","segregate","validatableProperties","transientProps","transient","build","keyValue","constr","idProp","bind","pkProps","merge","extract","assign","saveOperation","decoration","ctx","DefaultRepositoryFlags","parentContext","childContexts","ignoredValidationProperties","callArgs","writeOperation","affectedTables","breakOnHandlerError","rebuildWithTransient","ignoreValidation","ignoreHandlers","ignoreDevSafeGuards","mergeForUpdate","applyUpdateValidation","allowGenerationOverride","DefaultContextFactory","Context","accumulate","Logging","ObjectAccumulator","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 o,validator as a,Validator as i,isEqual as c,DEFAULT_ERROR_MESSAGES as l,Validation as u,Hashing as d,Model as f,type as p,innerValidationDecorator as h,date as E,required as g,toConditionalPromise as y,ValidationKeys as m,getChildNestedPropsToIgnore as A,ModelErrorDefinition 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: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"},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([a(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([a(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),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 ${constructor(){}static getHandlerName(e){return F.getHandlerName(e)}static key(e){return C.REFLECT+e}static get(e,t,r){return $.registry.get(e,t,r)}static getOpRegistry(){return $.registry||($.registry=new F),$.registry}static register(e,t,r,n){$.getOpRegistry().register(e,t,r,n)}}class H extends Error{constructor(e,t,r){if(t instanceof H)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 H{constructor(e,t=V.name,r=999){super(t,e,r)}}class _ extends H{constructor(e,t=_.name,r=400){super(t,e,r)}}class z extends _{constructor(e){super(e,z.name,422)}}class G extends H{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=$.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=$.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=$.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)=>{$.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,r,n){try{const{args:e,type:s,prefix:o,suffix:a,separator:i,filterEmpty:c,hashResult:l}=t,u=e.map((t=>{if(!(t in n))throw new G(`Property ${t} not found to compose from`);if("keys"===s)return t;if(void 0===n[t]){if(c){if(!Array.isArray(c))return;if(c.includes(t))return}throw new G(`Property ${e} does not contain a value to compose from`)}return n[t].toString()})).filter((e=>!c||!!e));o&&u.unshift(o),a&&u.push(a);const f=u.map((e=>"object"==typeof e&&"[object Object]"===e.toString()?JSON.stringify(e):e)).join(i);n[r]=l?d.hash(f):f}catch(e){throw new G("Failed to compose value: "+e)}}function we(s,o=!1,a=S,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(Te,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=S,r=!1,n=!1,s="",o="",a={priority:55}){return we(e,n,t,r,"keys",s,o,a)}function Oe(e,t=S,r=!1,n=!1,s="",o="",a={priority:55}){return we(e,n,t,r,"values",s,o,a)}function Re(e){return(t,r,n,s,o)=>{if(f.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 ve(){const t=D.VERSION;return e.for(t).define(ye(D.VERSION),p(Number),te(Re(C.CREATE)),ee(Re(C.UPDATE)),r(t,!0)).apply()}function De(){return e.for(D.TRANSIENT).define(((e,n)=>{s(D.TRANSIENT,!0)(e.constructor),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 be(e,t,r,n){f.shouldGenerate(n,r,e)&&(n[r]=e.timestamp)}function Le(t=U.CREATE_UPDATE,s=b){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,be)];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 Ne(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 Ie(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(Ne,{serializer:e}),fe(U.ALL,Ie,{serializer:e}),p([String,Object]),s(D.SERIALIZE,{serializer:e}))}function ke(){return n(g(),Se(),((e,n)=>r(t.key(D.ID,n),{})(e,n)))}function Ce(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 Me(e,t,r,n,s){const o=u.get(n.key);if(!o)throw Error("Missing validator for "+n.key);if(!o.updateHasErrors)return y(void 0,s);if(!s&&n.async)return y(void 0,s);const a=Object.values(n)||{},i=o.updateHasErrors(e[r],t[r],...a);return y(i,s)}function je(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=Me(e,t,r,i,s);if(i.key===m.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(f.isModel(t)){const e=f.pk(t,!0);if(!e)return"Failed to find model id";const r=l.find((t=>e===f.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 Ue(e,r,n,...s){const a=Ce(r,s),i={},c={};for(const{prop:l,decorators:u}of a){const a=l+"",d=r[l],{designTypes:p}=t.getPropDesignTypes(r.constructor,l);if(!p)continue;if(p.some((e=>[Array.name,Set.name].includes(e)))){if(!u||!Object.keys(u).includes(m.LIST)){i[a]={[m.TYPE]:`Array or Set property '${a}' requires a @list decorator`};continue}if(d&&!(Array.isArray(d)||d instanceof Set)){i[a]={[m.TYPE]:`Property '${l+""}' must be either an Array or a Set`};continue}}const h=je(r,e,a,u,n)||{},E=f.isPropertyModel(r,a);if(null!=d&&E){const t=d,r=p.map((e=>f.get(e.name||e))).find((e=>!!e)),n=p.map((e=>"function"==typeof e?e.name?e.name.toLowerCase():e()?.name.toLowerCase():e.toLowerCase()));if(r&&d instanceof r){const r=A(a,...s);c[a]=t.hasErrors(e[l],...r)}else n.includes(typeof d)||(h[m.TYPE]=r?"Value must be an instance of "+r.name:`Unable to verify type consistency, missing model registry for ${p.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 T(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 T(t):void 0}))}function Fe(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=He(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){const n=`Failed to execute handler ${s.handler.name} for ${s.prop} on ${r.constructor.name}`;if(e instanceof H?Object.defineProperty(e,"message",{value:n+" "+e.message}):e=new G(n+" "+e.message),t.get("breakOnHandlerError"))throw e;t.logger.for($e).error(n)}}}function He(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)}f.prototype.isTransient=function(){return t.isTransient(this)},f.prototype.hasErrors=function(e,...t){!e||e instanceof f||(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:Ue(e,this,r,...t))):n||!e?n:Ue(e,this,r,...t)},f.prototype.segregate=function(){return f.segregate(this)},f.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=f.build(s.model,e.constructor.name),s},f.pk=((e,r=!1)=>{if(!e)throw Error("No model was provided");const n=e instanceof f?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 f)return e[o];throw Error("Cannot get the value of the pk from the constructor")}).bind(f),f.pkProps=(e=>t.get(e,t.key(D.ID,f.pk(e)))).bind(f),f.isTransient=(e=>!!t.get("function"!=typeof e?e.constructor:e,D.TRANSIENT)).bind(f),f.composed=((e,r)=>{const n=e instanceof f?e.constructor:e;return r?t.get(n,t.key(D.COMPOSED,r)):!!t.get(n,D.COMPOSED)}).bind(f),f.merge=((e,t,r)=>{const n=e=>Object.entries(e).reduce(((e,[t,r])=>(void 0!==r&&(e[t]=r),e)),{});return new(r=r||e.constructor)(Object.assign({},n(e),n(t)))}).bind(f),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),f.generated=((e,r)=>!!t.get("function"!=typeof e?e.constructor:e,t.key(D.GENERATED,r))).bind(f),f.shouldGenerate=((e,t,r)=>!r.get("allowGenerationOverride")||void 0===e[t]).bind(f);const Ve={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},_e=e=>(new ze).accumulate(Object.assign({},e,{timestamp:new Date,logger:e.logger||v.get()}));class ze{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=_e}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 ze.factory(Object.assign({},e.cache,t||{}))}static async from(e,t,r,...n){return ze.factory(Object.assign({},Ve,t,{operation:e,model:r,logger:t.logger||v.get()}))}static async args(e,t,r,n,s){const o=r.pop();async function a(){return n?n.context(e,s||{},t,...r):ze.from(e,s||{},t,...r)}let i;return o?o instanceof ze?(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 Ge(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 Ye(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 Ke(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 ze))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 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.pop(),i=o[o.length-1];if(!(i instanceof ze))throw new G("Missing a context");if(i.get("applyUpdateValidation")&&!i.get("ignoreDevSafeGuards")&&!(a instanceof f)&&(!Array.isArray(a)||!a.every((e=>e instanceof f))))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 Qe{get class(){if(!this._class)throw new G("No class definition found for this repository");return this._class}get pk(){return f.pk(this.class)}get pkProps(){return f.pkProps(this.class)}constructor(e){e&&(this._class=e);const t=this;[this.create,this.read,this.delete].forEach((e=>{const r=e.name;Ke(t,t[r+"Prefix"],e,t[r+"Suffix"])})),Be(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 ze.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 ze.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=Fe(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 ze.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 ze.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 ze.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=f.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 ze.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)=>f.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=Fe(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 ze.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 ze.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 Je="##VERSION##",qe="##PACKAGE##";t.registerLibrary(qe,Je);export{_ as BadRequestError,H as BaseError,ge as BlockOperationIf,Ee as BlockOperations,V as BreakError,j as BulkCrudOperationKeys,B as ConflictError,ze as Context,D as DBKeys,U as DBOperations,L as DEFAULT_ERROR_MESSAGES,b as DEFAULT_TIMESTAMP_FORMAT,_e as DefaultContextFactory,Ve as DefaultRepositoryFlags,S as DefaultSeparator,G as InternalError,M as ModelOperations,K as NotFoundError,C as OperationKeys,$ as Operations,F as OperationsRegistry,qe as PACKAGE_NAME,I as ReadOnlyValidator,Qe as Repository,Y as SerializationError,x as TimestampValidator,N as UpdateValidationKeys,k as UpdateValidator,Je 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,Oe as composed,Te as composedFromCreateUpdate,Pe as composedFromKeys,$e as enforceDBDecorators,ye as generated,He as getDbDecorators,J as getHandlerArgs,q as getHandlersDecorators,Ce as getValidatableUpdateProps,Z as groupDecorators,Ae as hash,me as hashOnCreateUpdate,ke 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,Ge as prefixMethod,Se as readonly,Fe as reduceErrorsToPrint,xe as serialize,Ie as serializeAfterAll,Ne as serializeOnCreateUpdate,W as sortDecorators,he as storeHandlerMetadata,Ye as suffixMethod,Le as timestamp,be as timestampHandler,De as transient,Ue as validateCompare,Me as validateDecorator,je as validateDecorators,ve as version,Re as versionCreateUpdate,Ke as wrapMethodWithContext,Be 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,Model as f,type as p,innerValidationDecorator as h,date as E,required as g,toConditionalPromise as y,ValidationKeys as m,getChildNestedPropsToIgnore as A,ModelErrorDefinition 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: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"},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([a(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([a(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),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 ${constructor(){}static getHandlerName(e){return F.getHandlerName(e)}static key(e){return C.REFLECT+e}static get(e,t,r){return $.registry.get(e,t,r)}static getOpRegistry(){return $.registry||($.registry=new F),$.registry}static register(e,t,r,n){$.getOpRegistry().register(e,t,r,n)}}class H extends Error{constructor(e,t,r){if(t instanceof H)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 H{constructor(e,t=V.name,r=999){super(t,e,r)}}class _ extends H{constructor(e,t=_.name,r=400){super(t,e,r)}}class z extends _{constructor(e){super(e,z.name,422)}}class G extends H{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=$.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=$.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=$.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)=>{$.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,r,n){try{const{args:e,type:s,prefix:o,suffix:a,separator:i,filterEmpty:c,hashResult:l}=t,u=e.map((t=>{if(!(t in n))throw new G(`Property ${t} not found to compose from`);if("keys"===s)return t;if(void 0===n[t]){if(c){if(!Array.isArray(c))return;if(c.includes(t))return}throw new G(`Property ${e} does not contain a value to compose from`)}return n[t].toString()})).filter((e=>!c||!!e));o&&u.unshift(o),a&&u.push(a);const f=u.map((e=>"object"==typeof e&&"[object Object]"===e.toString()?JSON.stringify(e):e)).join(i);n[r]=l?d.hash(f):f}catch(e){throw new G("Failed to compose value: "+e)}}function we(s,o=!1,a=S,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(Te,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=S,r=!1,n=!1,s="",o="",a={priority:55}){return we(e,n,t,r,"keys",s,o,a)}function Oe(e,t=S,r=!1,n=!1,s="",o="",a={priority:55}){return we(e,n,t,r,"values",s,o,a)}function Re(e){return(t,r,n,s,o)=>{if(f.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 ve(){const t=D.VERSION;return e.for(t).define(ye(D.VERSION),p(Number),te(Re(C.CREATE)),ee(Re(C.UPDATE)),r(t,!0)).apply()}function De(){return e.for(D.TRANSIENT).define(((e,n)=>{s(D.TRANSIENT,!0)(e.constructor),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 be(e,t,r,n){f.shouldGenerate(n,r,e)&&(n[r]=e.timestamp)}function Le(t=U.CREATE_UPDATE,s=b){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,be)];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 Ne(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 Ie(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(Ne,{serializer:e}),fe(U.ALL,Ie,{serializer:e}),p([String,Object]),s(D.SERIALIZE,{serializer:e}))}function ke(){return n(g(),Se(),((e,n)=>r(t.key(D.ID,n),{})(e,n)))}function Ce(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 Me(e,t,r,n,s){const o=u.get(n.key);if(!o)throw Error("Missing validator for "+n.key);if(!o.updateHasErrors)return y(void 0,s);if(!s&&n.async)return y(void 0,s);const a=Object.values(n)||{},i=o.updateHasErrors(e[r],t[r],...a);return y(i,s)}function je(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=Me(e,t,r,i,s);if(i.key===m.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(f.isModel(t)){const e=f.pk(t,!0);if(!e)return"Failed to find model id";const r=l.find((t=>e===f.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 Ue(e,r,n,...s){const a=Ce(r,s),i={},c={};for(const{prop:l,decorators:u}of a){const a=l+"",d=r[l],{designTypes:p}=t.getPropDesignTypes(r.constructor,l);if(!p)continue;if(p.some((e=>[Array.name,Set.name].includes(e)))){if(!u||!Object.keys(u).includes(m.LIST)){i[a]={[m.TYPE]:`Array or Set property '${a}' requires a @list decorator`};continue}if(d&&!(Array.isArray(d)||d instanceof Set)){i[a]={[m.TYPE]:`Property '${l+""}' must be either an Array or a Set`};continue}}const h=je(r,e,a,u,n)||{},E=f.isPropertyModel(r,a);if(null!=d&&E){const t=d,r=p.map((e=>f.get(e.name||e))).find((e=>!!e)),n=p.map((e=>"function"==typeof e?e.name?e.name.toLowerCase():e()?.name.toLowerCase():e.toLowerCase()));if(r&&d instanceof r){const r=A(a,...s);c[a]=t.hasErrors(e[l],...r)}else n.includes(typeof d)||(h[m.TYPE]=r?"Value must be an instance of "+r.name:`Unable to verify type consistency, missing model registry for ${p.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 T(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 T(t):void 0}))}function Fe(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=He(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(n){const o=`Failed to execute handler ${s.handler.name} for ${s.prop} on ${r.constructor.name}`;let a=n;if(n instanceof H||(a=e.adapter.parseError(n)),a instanceof H?Object.defineProperty(n,"message",{value:o+" "+a.message}):a=new G(o+" "+a.message),t.get("breakOnHandlerError"))throw a;t.logger.for($e).error(o)}}}function He(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)}f.prototype.isTransient=function(){return t.isTransient(this)},f.prototype.hasErrors=function(e,...t){!e||e instanceof f||(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:Ue(e,this,r,...t))):n||!e?n:Ue(e,this,r,...t)},f.prototype.segregate=function(){return f.segregate(this)},f.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=f.build(s.model,e.constructor.name),s},f.pk=((e,r=!1)=>{if(!e)throw Error("No model was provided");const n=e instanceof f?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 f)return e[o];throw Error("Cannot get the value of the pk from the constructor")}).bind(f),f.pkProps=(e=>t.get(e,t.key(D.ID,f.pk(e)))).bind(f),f.isTransient=(e=>!!t.get("function"!=typeof e?e.constructor:e,D.TRANSIENT)).bind(f),f.composed=((e,r)=>{const n=e instanceof f?e.constructor:e;return r?t.get(n,t.key(D.COMPOSED,r)):!!t.get(n,D.COMPOSED)}).bind(f),f.merge=((e,t,r)=>{const n=e=>Object.entries(e).reduce(((e,[t,r])=>(void 0!==r&&(e[t]=r),e)),{});return new(r=r||e.constructor)(Object.assign({},n(e),n(t)))}).bind(f),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),f.generated=((e,r)=>!!t.get("function"!=typeof e?e.constructor:e,t.key(D.GENERATED,r))).bind(f),f.shouldGenerate=((e,t,r)=>!r.get("allowGenerationOverride")||void 0===e[t]).bind(f);const Ve={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},_e=e=>(new ze).accumulate(Object.assign({},e,{timestamp:new Date,logger:e.logger||v.get()}));class ze{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=_e}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 ze.factory(Object.assign({},e.cache,t||{}))}static async from(e,t,r,...n){return ze.factory(Object.assign({},Ve,t,{operation:e,model:r,logger:t.logger||v.get()}))}static async args(e,t,r,n,s){const o=r.pop();async function a(){return n?n.context(e,s||{},t,...r):ze.from(e,s||{},t,...r)}let i;return o?o instanceof ze?(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 Ge(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 Ye(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 Ke(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 ze))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 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.pop(),i=o[o.length-1];if(!(i instanceof ze))throw new G("Missing a context");if(i.get("applyUpdateValidation")&&!i.get("ignoreDevSafeGuards")&&!(a instanceof f)&&(!Array.isArray(a)||!a.every((e=>e instanceof f))))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 Qe{get class(){if(!this._class)throw new G("No class definition found for this repository");return this._class}get pk(){return f.pk(this.class)}get pkProps(){return f.pkProps(this.class)}constructor(e){e&&(this._class=e);const t=this;[this.create,this.read,this.delete].forEach((e=>{const r=e.name;Ke(t,t[r+"Prefix"],e,t[r+"Suffix"])})),Be(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 ze.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 ze.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=Fe(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 ze.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 ze.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 ze.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=f.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 ze.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)=>f.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=Fe(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 ze.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 ze.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 Je="##VERSION##",qe="##PACKAGE##";t.registerLibrary(qe,Je);export{_ as BadRequestError,H as BaseError,ge as BlockOperationIf,Ee as BlockOperations,V as BreakError,j as BulkCrudOperationKeys,B as ConflictError,ze as Context,D as DBKeys,U as DBOperations,L as DEFAULT_ERROR_MESSAGES,b as DEFAULT_TIMESTAMP_FORMAT,_e as DefaultContextFactory,Ve as DefaultRepositoryFlags,S as DefaultSeparator,G as InternalError,M as ModelOperations,K as NotFoundError,C as OperationKeys,$ as Operations,F as OperationsRegistry,qe as PACKAGE_NAME,I as ReadOnlyValidator,Qe as Repository,Y as SerializationError,x as TimestampValidator,N as UpdateValidationKeys,k as UpdateValidator,Je 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,Oe as composed,Te as composedFromCreateUpdate,Pe as composedFromKeys,$e as enforceDBDecorators,ye as generated,He as getDbDecorators,J as getHandlerArgs,q as getHandlersDecorators,Ce as getValidatableUpdateProps,Z as groupDecorators,Ae as hash,me as hashOnCreateUpdate,ke 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,Ge as prefixMethod,Se as readonly,Fe as reduceErrorsToPrint,xe as serialize,Ie as serializeAfterAll,Ne as serializeOnCreateUpdate,W as sortDecorators,he as storeHandlerMetadata,Ye as suffixMethod,Le as timestamp,be as timestampHandler,De as transient,Ue as validateCompare,Me as validateDecorator,je as validateDecorators,ve as version,Re as versionCreateUpdate,Ke as wrapMethodWithContext,Be 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","composedFromCreateUpdate","suffix","separator","filterEmpty","hashResult","composed","arg","isArray","JSON","stringify","join","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","defineProperty","logger","extraPrefix","replace","obj","isTransient","previousVersion","exclusions","isAsync","validate","resolve","resolvedErrs","segregate","validatableProperties","transientProps","build","keyValue","constr","idProp","bind","pkProps","merge","extract","assign","saveOperation","ctx","DefaultRepositoryFlags","parentContext","childContexts","ignoredValidationProperties","callArgs","writeOperation","affectedTables","breakOnHandlerError","rebuildWithTransient","ignoreValidation","ignoreHandlers","ignoreDevSafeGuards","mergeForUpdate","applyUpdateValidation","allowGenerationOverride","DefaultContextFactory","Context","accumulate","Logging","ObjectAccumulator","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","composedFromCreateUpdate","suffix","separator","filterEmpty","hashResult","composed","arg","isArray","JSON","stringify","join","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","adapter","parseError","defineProperty","logger","extraPrefix","replace","obj","isTransient","previousVersion","exclusions","isAsync","validate","resolve","resolvedErrs","segregate","validatableProperties","transientProps","build","keyValue","constr","idProp","bind","pkProps","merge","extract","assign","saveOperation","ctx","DefaultRepositoryFlags","parentContext","childContexts","ignoredValidationProperties","callArgs","writeOperation","affectedTables","breakOnHandlerError","rebuildWithTransient","ignoreValidation","ignoreHandlers","ignoreDevSafeGuards","mergeForUpdate","applyUpdateValidation","allowGenerationOverride","DefaultContextFactory","Context","accumulate","Logging","ObjectAccumulator","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.20";
14
+ export declare const VERSION = "0.8.21";
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.20";
20
+ export const VERSION = "0.8.21";
21
21
  export const PACKAGE_NAME = "@decaf-ts/db-decorators";
22
22
  Metadata.registerLibrary(PACKAGE_NAME, VERSION);
23
23
  //# sourceMappingURL=index.js.map
@@ -49,15 +49,19 @@ export async function enforceDBDecorators(repo, context, model, operation, prefi
49
49
  }
50
50
  catch (e) {
51
51
  const msg = `Failed to execute handler ${dec.handler.name} for ${dec.prop} on ${model.constructor.name}`;
52
- if (e instanceof BaseError) {
53
- Object.defineProperty(e, "message", { value: msg + " " + e.message });
52
+ let error = e;
53
+ if (!(e instanceof BaseError))
54
+ error = repo.adapter.parseError(e);
55
+ if (error instanceof BaseError) {
56
+ Object.defineProperty(e, "message", {
57
+ value: msg + " " + error.message,
58
+ });
54
59
  }
55
60
  else {
56
- // eslint-disable-next-line no-ex-assign
57
- e = new InternalError(msg + " " + e.message);
61
+ error = new InternalError(msg + " " + error.message);
58
62
  }
59
63
  if (context.get("breakOnHandlerError"))
60
- throw e;
64
+ throw error;
61
65
  context.logger.for(enforceDBDecorators).error(msg);
62
66
  }
63
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/repository/utils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,aAAa,GACd,qCAAgC;AACjC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,oBAAiB;AAGpD,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,cAAc,GACf,sCAAiC;AAElC,OAAO,EAAe,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAQ7D,MAAM,UAAU,mBAAmB,CACjC,MAA4C;IAE5C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAyB,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QACvD,IAAI,CAAC;YACH,KAAK;gBACH,OAAO,KAAK,KAAK,QAAQ;oBACvB,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACtC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,SAAS,CAAC,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAKvC,IAAO,EACP,OAA+B,EAC/B,KAAQ,EACR,SAAiB,EACjB,MAAc,EACd,QAAY;IAEZ,MAAM,UAAU,GACd,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAE5C,IAAI,CAAC,UAAU;QAAE,OAAO;IAExB,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAC3E,MAAM,iBAAiB,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAC7D,MAAM,gBAAgB,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAE3D,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACnC,MAAM,IAAI,GAAU;YAClB,OAAO;YACP,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5C,KAAK;SACN,CAAC;QAEF,IACE,CAAC,aAAa,CAAC,MAAM,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC,QAAQ,CAC/D,SAAgB,CACjB,EACD,CAAC;YACD,IAAI,CAAC,QAAQ;gBACX,MAAM,IAAI,aAAa,CAAC,wCAAwC,CAAC,CAAC;YACpE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,CAAC;YACH,MAAO,GAAG,CAAC,OAA2C,CAAC,KAAK,CAC1D,IAAI,EACJ,IAAkD,CACnD,CAAC;QACJ,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,6BAA6B,GAAG,CAAC,OAAO,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACzG,IAAI,CAAC,YAAY,SAAS,EAAE,CAAC;gBAC3B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACxE,CAAC;iBAAM,CAAC;gBACN,wCAAwC;gBACxC,CAAC,GAAG,IAAI,aAAa,CAAC,GAAG,GAAG,GAAG,GAAI,CAAS,CAAC,OAAO,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;gBAAE,MAAM,CAAC,CAAC;YAChD,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAQ,EACR,SAAiB,EACjB,WAAoB;IAEpB,MAAM,MAAM,GAAG,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEhD,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAC7B,KAAK,CAAC,WAA6B,EACnC,eAAe,CAAC,UAAU,CAC3B,CAAC;IAEF,IAAI,CAAC,UAAU;QAAE,OAAO;IACxB,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CACnC,CAAC,KAAsD,EAAE,SAAS,EAAE,EAAE;QACpE,MAAM,GAAG,GAAG,MAAM;YAChB,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;YACrC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,GAAG;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAE1D,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK;gBAAE,KAAK,GAAG,EAAE,CAAC;YACvB,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EACD,SAAS,CACV,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/repository/utils.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.20";
37
+ exports.VERSION = "0.8.21";
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.20";
14
+ export declare const VERSION = "0.8.21";
15
15
  export declare const PACKAGE_NAME = "@decaf-ts/db-decorators";
@@ -54,15 +54,19 @@ async function enforceDBDecorators(repo, context, model, operation, prefix, oldM
54
54
  }
55
55
  catch (e) {
56
56
  const msg = `Failed to execute handler ${dec.handler.name} for ${dec.prop} on ${model.constructor.name}`;
57
- if (e instanceof errors_1.BaseError) {
58
- Object.defineProperty(e, "message", { value: msg + " " + e.message });
57
+ let error = e;
58
+ if (!(e instanceof errors_1.BaseError))
59
+ error = repo.adapter.parseError(e);
60
+ if (error instanceof errors_1.BaseError) {
61
+ Object.defineProperty(e, "message", {
62
+ value: msg + " " + error.message,
63
+ });
59
64
  }
60
65
  else {
61
- // eslint-disable-next-line no-ex-assign
62
- e = new errors_1.InternalError(msg + " " + e.message);
66
+ error = new errors_1.InternalError(msg + " " + error.message);
63
67
  }
64
68
  if (context.get("breakOnHandlerError"))
65
- throw e;
69
+ throw error;
66
70
  context.logger.for(enforceDBDecorators).error(msg);
67
71
  }
68
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/repository/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/repository/utils.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.21",
3
+ "version": "0.8.22",
4
4
  "description": "Agnostic database decorators and repository",
5
5
  "type": "module",
6
6
  "exports": {