@decaf-ts/db-decorators 0.8.4 → 0.8.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/db-decorators.cjs +1 -1
- package/dist/db-decorators.cjs.map +1 -1
- package/dist/db-decorators.js +1 -1
- package/dist/db-decorators.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/model/validation.js +28 -20
- package/lib/esm/model/validation.js.map +1 -1
- package/lib/esm/overrides/overrides.js +4 -4
- package/lib/esm/overrides/overrides.js.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/model/validation.cjs +27 -19
- package/lib/model/validation.js.map +1 -1
- package/lib/overrides/overrides.cjs +4 -4
- package/lib/overrides/overrides.js.map +1 -1
- package/package.json +1 -1
package/dist/db-decorators.cjs
CHANGED
|
@@ -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 E{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}}class g{constructor(){}static getHandlerName(e){return e.name?e.name:r.Hashing.hash(e.toString())}static key(t){return e.OperationKeys.REFLECT+t}static get(e,t,r){return g.registry.get(e,t,r)}static getOpRegistry(){return g.registry||(g.registry=new E),g.registry}static register(e,t,r,a){g.getOpRegistry().register(e,t,r,a)}}class m extends Error{constructor(e,t,r){if(t instanceof m)return t;super(`[${e}] ${t instanceof Error?t.message:t}`),this.code=r,t instanceof Error&&(this.stack=t.stack)}}class O extends m{constructor(e,t=O.name,r=400){super(t,e,r)}}class A extends O{constructor(e){super(e,A.name,422)}}class T extends m{constructor(e,t=T.name,r=500){super(t,e,r)}}class M extends T{constructor(e){super(e,M.name,500)}}class w extends O{constructor(e){super(e,w.name,404)}}class D extends O{constructor(e){super(e,D.name,409)}}const P={priority:50},R=(e,t,r,a)=>{const o=r.constructor.name;if(!o)throw new T("Could not determine model class");a=a||{},e.props.handlers[o]&&e.props.handlers[o][t]&&(a={...e.props.handlers[o][t],...a});let n=Object.getPrototypeOf(r);return n===Object.prototype?a:(n.constructor.name===o&&(n=Object.getPrototypeOf(n)),R(e,t,n,a))};function v(e,t,r){const a=[];for(const o in t){const n=t[o];for(const t of n){const{key:n}=t,s=g.get(e,o,r+n);if(!s||!s.length)throw new T(`Could not find registered handler for the operation ${r+n} under property ${o}`);const i=R(t,o,e);if(!i)throw new T("Missing handler arguments for decorators");for(const e of s){const t=i[e.name];if(!t)throw new T("Missing handler arguments for handler "+e.name);const r=t.data;a.push({handler:e,data:[r],prop:[o]})}}}return a}function b(e){const t=e.reduce((e,t)=>{if(!t||!t.data||!t.prop)throw new T("Missing decorator properties or data");if(!t.data[0].group)return e.set(Symbol(),t),e;const r=t.data[0].group;if(e.has(r)){const a=e.get(r);e.set(r,{handler:a.handler,data:[...a.data,...t.data],prop:[...a.prop,...t.prop]})}else e.set(r,{...t});return e},new Map),r=Array.from(t.values());return r.forEach(e=>{const t=e.data.map((t,r)=>({data:t,prop:e.prop[r]}));t.sort((e,t)=>(e.data.groupPriority??50)-(t.data.groupPriority??50)),e.data=t.map(e=>e.data),e.prop=t.map(e=>e.prop)}),r}function S(e){return e.sort((e,t)=>(e.data[0].priority??50)-(t.data[0].priority??50)),e}function K(e,t,r){return I(h.CREATE_UPDATE,e,t,r)}function L(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 C(e.OperationKeys.ON,t,r,a,o)}function N(t=h.ALL,r,a,o){return C(e.OperationKeys.AFTER,t,r,a,o)}function C(r,a=h.ALL,o,n,s=P){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=g.getHandlerName(o);let y=s;if(n){if(Object.keys(n).filter(e=>e in s).length>0)throw new T("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)=>{g.register(t,e,r,a)})(p,o),t.propMetadata(t.Metadata.key(e.ModelOperations.OPERATIONS,c,p),u))),a},[]);return t.apply(...d)(i,c)}}function k(e,r){return(...a)=>t.metadata(e,{args:a,handler:r})}function U(e){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 j(){return t.apply(K(V),t.propMetadata(s.HASH,{}))}function F(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 T(`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 T(`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 T("Failed to compose value: "+e)}}function H(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=[U(s.COMPOSED),K(F,u,l),t.propMetadata(t.Metadata.key(s.COMPOSED,p),u)];return r&&f.push(j()),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 A(`Version mismatch: ${s[n]} !== ${i[n]}`);s[n]++;break;default:throw new T("Invalid operation: "+t)}}catch(e){throw new T("Failed to update version: "+e)}}}function $(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:[$,a,o]}).apply()}async function B(e,t,r,a){a[r]=e.timestamp}async function G(e,t,r,a){if(a[r])try{a[r]=JSON.stringify(a[r])}catch(e){throw new M(`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]=JSON.parse(a[r])}catch(e){throw new M(`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 z(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 Q(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=z(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=>{const a=r.Model.pk(t,!0);if(!a)return"Failed to find model id";const o=d.find(e=>a===r.Model.pk(e,!0));return r.Model.isModel(t)?t.hasErrors(o):e.includes(typeof t)?void 0:"Value has no validatable type"});if(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 J(e,a,o,...n){const s=q(a,n),i={},c={};for(const{prop:n,decorators:l}of s){const s=n+"",d=a[n],{designTypes:p,designType:u}=t.Metadata.getPropDesignTypes(a.constructor,n);if(!p)continue;if(p.some(e=>[Array.name,Set.name].includes(e))){if(!l||!Object.keys(l).includes(r.ValidationKeys.LIST)){i[s]={[r.ValidationKeys.TYPE]:`Array or Set property '${s}' requires a @list decorator`};continue}if(d&&!(Array.isArray(d)||d instanceof Set)){i[s]={[r.ValidationKeys.TYPE]:`Property '${n+""}' must be either an Array or a Set`};continue}}const f=Q(a,e,s,l,o)||{},y=r.Model.isPropertyModel(a,s);if(null!=d&&y){const t=d,a=(Array.isArray(u)?u:[u]).map(e=>("function"!=typeof e||e.name||(e=e()),r.Model.get(e.name||e))).find(e=>!!e);a&&t instanceof a?c[s]=t.hasErrors(e[n]):(f[r.ValidationKeys.TYPE]=a?"Value must be an instance of "+a.name:`Unable to verify type consistency, missing model registry for ${p.toString()} on prop ${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 W(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 Z(t,r,a,o,n,s){const i=X(a,o,n);if(!i)return;const c=S(b(v(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 T("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} due to error: ${e}`;if(r.get("breakOnHandlerError"))throw new T(t);r.logger.for(Z).error(t)}}}function X(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:J(e,this,a,...t)):o||!e?o:J(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 M(`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.isTransient(e)).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,a)=>!r.Model.generated(e,t)&&!a.get("allowGenerationOverride")&&void 0!==e[t]).bind(r.Model);const ee={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},te=e=>(new re).accumulate(Object.assign({},e,{timestamp:new Date,logger:e.logger||n.Logging.get()}));class re{constructor(){this.cache=new o.ObjectAccumulator,Object.defineProperty(this,"cache",{value:new o.ObjectAccumulator,writable:!1,enumerable:!1,configurable:!0})}static{this.factory=te}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 re.factory(Object.assign({},e.cache,t||{}))}static async from(e,t,r,...a){return re.factory(Object.assign({},ee,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):re.from(e,o||{},t,...r)}let i;return n?n instanceof re?(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 ae(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 re))throw new T("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 oe(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 re))throw new T("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 T("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 ne="##VERSION##",se="##PACKAGE##";t.Metadata.registerLibrary(se,ne),e.BadRequestError=O,e.BaseError=m,e.BlockOperationIf=t=>k(e.OperationKeys.REFLECT+e.OperationKeys.BLOCK,t)(),e.BlockOperations=t=>k(e.OperationKeys.REFLECT+e.OperationKeys.BLOCK,(e,t)=>e.includes(t))(t),e.ConflictError=D,e.Context=re,e.DBKeys=s,e.DBOperations=h,e.DEFAULT_ERROR_MESSAGES=l,e.DEFAULT_TIMESTAMP_FORMAT=c,e.DefaultContextFactory=te,e.DefaultRepositoryFlags=ee,e.DefaultSeparator=i,e.InternalError=T,e.NotFoundError=w,e.Operations=g,e.OperationsRegistry=E,e.PACKAGE_NAME=se,e.Repository=class{get class(){if(!this._class)throw new T("No class definition found for this repository");return this._class}get pk(){return r.Model.pk(this.class)}get pkProps(){return r.Model.pkProps(this.class)}constructor(e){e&&(this._class=e);const t=this;[this.create,this.read,this.delete].forEach(e=>{const r=e.name;ae(t,t[r+"Prefix"],e,t[r+"Suffix"])}),oe(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 re.args(e.OperationKeys.CREATE,this.class,r);if(t=new this.class(t),a.context.get("ignoreHandlers")||await Z(this,a.context,t,e.OperationKeys.CREATE,e.OperationKeys.ON),!a.context.get("ignoreValidation")){const e=await Promise.resolve(t.hasErrors());if(e)throw new A(e.toString())}return[t,...a.args]}async createSuffix(t,r){return r.get("ignoreHandlers")||await Z(this,r,t,e.OperationKeys.CREATE,e.OperationKeys.AFTER),t}async createAllPrefix(t,...r){const a=await re.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 Z(this,a.context,r,e.OperationKeys.CREATE,e.OperationKeys.ON),r})),!n){const e=W(await Promise.all(t.map(e=>Promise.resolve(e.hasErrors()))));if(e)throw new A(e)}return[t,...a.args]}async createAllSuffix(t,r){return r.get("ignoreHandlers")||await Promise.all(t.map(t=>Z(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 Z(this,r,t,e.OperationKeys.READ,e.OperationKeys.AFTER),t}async readPrefix(t,...r){const a=await re.args(e.OperationKeys.READ,this.class,r),o=new this.class;return o[this.pk]=t,await Z(this,a.context,o,e.OperationKeys.READ,e.OperationKeys.ON),[t,...a.args]}async readAllPrefix(t,...r){const a=await re.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,Z(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=>Z(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 Z(this,a,t,e.OperationKeys.UPDATE,e.OperationKeys.AFTER,r),t}async updatePrefix(t,...a){const o=await re.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 T("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 Z(this,o.context,t,e.OperationKeys.UPDATE,e.OperationKeys.ON,l),!i){const e=await Promise.resolve(t.hasErrors(l));if(e)throw new A(e.toString())}return[t,...o.args,l]}async updateAllPrefix(t,...a){const o=await re.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 T("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)=>Z(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=W(e);if(r)throw new A(r)}return[t,...o.args,l]}async updateAllSuffix(t,r,a){if(a.get("applyUpdateValidation")&&!a.get("ignoreDevSafeGuards")&&!r)throw new T("No previous versions of models provided");return a.get("ignoreHandlers")||await Promise.all(t.map((t,o)=>Z(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 Z(this,r,t,e.OperationKeys.DELETE,e.OperationKeys.AFTER),t}async deletePrefix(t,...r){const a=await re.args(e.OperationKeys.DELETE,this.class,r),o=await this.read(t,...a.args);return await Z(this,a.context,o,e.OperationKeys.DELETE,e.OperationKeys.ON),[t,...a.args]}async deleteAllPrefix(t,...r){const a=await re.args(e.OperationKeys.DELETE,this.class,r),o=await this.readAll(t,...a.args);return await Promise.all(o.map(async t=>Z(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=>Z(this,r,t,e.OperationKeys.DELETE,e.OperationKeys.AFTER))),t}toString(){return this.class.name+" Repository"}},e.SerializationError=M,e.UpdateValidationKeys=d,e.UpdateValidator=p,e.VERSION=ne,e.ValidationError=A,e.after=N,e.afterAny=(e,t,r)=>N(h.ALL,e,t,r),e.afterCreate=(e,t,r)=>N(h.CREATE,e,t,r),e.afterCreateUpdate=(e,t,r)=>N(h.CREATE_UPDATE,e,t,r),e.afterDelete=(e,t,r)=>N(h.DELETE,e,t,r),e.afterRead=(e,t,r)=>N(h.READ,e,t,r),e.afterUpdate=(e,t,r)=>N(h.UPDATE,e,t,r),e.composed=(e,t=i,r=!1,a=!1,o="",n="",s={priority:55})=>H(e,a,t,r,"values",o,n,s),e.composedFromCreateUpdate=F,e.composedFromKeys=(e,t=i,r=!1,a=!1,o="",n="",s={priority:55})=>H(e,a,t,r,"keys",o,n,s),e.enforceDBDecorators=Z,e.generated=U,e.getDbDecorators=X,e.getHandlerArgs=R,e.getHandlersDecorators=v,e.getValidatableUpdateProps=q,e.groupDecorators=b,e.hash=j,e.hashOnCreateUpdate=V,e.id=()=>t.apply(r.required(),$(),(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=K,e.onDelete=(e,t,r)=>I(h.DELETE,e,t,r),e.onRead=(e,t,r)=>I(h.READ,e,t,r),e.onUpdate=L,e.operation=C,e.prefixMethod=(e,t,r,a)=>{const o=a||t.name;e[o]=new Proxy(e[o],{apply:async(e,t,a)=>{let o=r.call(t,...a);return o instanceof Promise&&(o=await o),o=e.call(t,...o),o instanceof Promise&&(o=await o),o}})},e.readonly=$,e.reduceErrorsToPrint=W,e.serialize=()=>t.apply(K(G),N(h.ALL,Y),r.type([String,Object]),t.metadata(s.SERIALIZE,{})),e.serializeAfterAll=Y,e.serializeOnCreateUpdate=G,e.sortDecorators=S,e.storeHandlerMetadata=k,e.suffixMethod=(e,t,r,a)=>{const o=a||t.name;e[o]=new Proxy(e[o],{apply:async(e,t,a)=>{let o=e.call(t,...a);return o instanceof Promise&&(o=await o),o=r.call(t,...o),o instanceof Promise&&(o=await o),o}})},e.timestamp=(a=h.CREATE_UPDATE,o=c)=>{const n=s.TIMESTAMP,i=r.Validation.updateKey(s.TIMESTAMP);return t.Decoration.for(n).define({decorator:(a,o)=>{const n=[U(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($()),t.apply(...n)},args:[a,o]}).apply()},e.timestampHandler=B,e.transient=()=>t.Decoration.for(s.TRANSIENT).define((e,r)=>{t.propMetadata(s.TRANSIENT,!0)(e.constructor),t.propMetadata(t.Metadata.key(s.TRANSIENT,r),{})(e,r)}).apply(),e.validateCompare=J,e.validateDecorator=z,e.validateDecorators=Q,e.version=()=>{const a=s.VERSION;return t.Decoration.for(a).define(U(s.VERSION),r.type(Number),x(_(e.OperationKeys.CREATE)),L(_(e.OperationKeys.UPDATE)),t.propMetadata(a,!0)).apply()},e.versionCreateUpdate=_,e.wrapMethodWithContext=ae,e.wrapMethodWithContextForUpdate=oe},"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 E{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}}class g{constructor(){}static getHandlerName(e){return e.name?e.name:r.Hashing.hash(e.toString())}static key(t){return e.OperationKeys.REFLECT+t}static get(e,t,r){return g.registry.get(e,t,r)}static getOpRegistry(){return g.registry||(g.registry=new E),g.registry}static register(e,t,r,a){g.getOpRegistry().register(e,t,r,a)}}class m extends Error{constructor(e,t,r){if(t instanceof m)return t;super(`[${e}] ${t instanceof Error?t.message:t}`),this.code=r,t instanceof Error&&(this.stack=t.stack)}}class O extends m{constructor(e,t=O.name,r=400){super(t,e,r)}}class A extends O{constructor(e){super(e,A.name,422)}}class T extends m{constructor(e,t=T.name,r=500){super(t,e,r)}}class M extends T{constructor(e){super(e,M.name,500)}}class w extends O{constructor(e){super(e,w.name,404)}}class P extends O{constructor(e){super(e,P.name,409)}}const D={priority:50},R=(e,t,r,a)=>{const o=r.constructor.name;if(!o)throw new T("Could not determine model class");a=a||{},e.props.handlers[o]&&e.props.handlers[o][t]&&(a={...e.props.handlers[o][t],...a});let n=Object.getPrototypeOf(r);return n===Object.prototype?a:(n.constructor.name===o&&(n=Object.getPrototypeOf(n)),R(e,t,n,a))};function v(e,t,r){const a=[];for(const o in t){const n=t[o];for(const t of n){const{key:n}=t,s=g.get(e,o,r+n);if(!s||!s.length)throw new T(`Could not find registered handler for the operation ${r+n} under property ${o}`);const i=R(t,o,e);if(!i)throw new T("Missing handler arguments for decorators");for(const e of s){const t=i[e.name];if(!t)throw new T("Missing handler arguments for handler "+e.name);const r=t.data;a.push({handler:e,data:[r],prop:[o]})}}}return a}function b(e){const t=e.reduce((e,t)=>{if(!t||!t.data||!t.prop)throw new T("Missing decorator properties or data");if(!t.data[0].group)return e.set(Symbol(),t),e;const r=t.data[0].group;if(e.has(r)){const a=e.get(r);e.set(r,{handler:a.handler,data:[...a.data,...t.data],prop:[...a.prop,...t.prop]})}else e.set(r,{...t});return e},new Map),r=Array.from(t.values());return r.forEach(e=>{const t=e.data.map((t,r)=>({data:t,prop:e.prop[r]}));t.sort((e,t)=>(e.data.groupPriority??50)-(t.data.groupPriority??50)),e.data=t.map(e=>e.data),e.prop=t.map(e=>e.prop)}),r}function S(e){return e.sort((e,t)=>(e.data[0].priority??50)-(t.data[0].priority??50)),e}function K(e,t,r){return C(h.CREATE_UPDATE,e,t,r)}function L(e,t,r){return C(h.UPDATE,e,t,r)}function x(e,t,r){return C(h.CREATE,e,t,r)}function C(t=h.ALL,r,a,o){return N(e.OperationKeys.ON,t,r,a,o)}function I(t=h.ALL,r,a,o){return N(e.OperationKeys.AFTER,t,r,a,o)}function N(r,a=h.ALL,o,n,s=D){return(i,c)=>{const l=i.constructor.name,d=a.reduce((a,d)=>{const p=r+d;let u=t.Metadata.readOperation(i.constructor,c,p);u||(u={operation:d,handlers:{}});const f=g.getHandlerName(o);let y=s;if(n){if(Object.keys(n).filter(e=>e in s).length>0)throw new T("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)=>{g.register(t,e,r,a)})(p,o),t.propMetadata(t.Metadata.key(e.ModelOperations.OPERATIONS,c,p),u))),a},[]);return t.apply(...d)(i,c)}}function k(e,r){return(...a)=>t.metadata(e,{args:a,handler:r})}function U(e){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 j(){return t.apply(K(V),t.propMetadata(s.HASH,{}))}function F(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 T(`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 T(`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 T("Failed to compose value: "+e)}}function H(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=[U(s.COMPOSED),K(F,u,l),t.propMetadata(t.Metadata.key(s.COMPOSED,p),u)];return r&&f.push(j()),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 A(`Version mismatch: ${s[n]} !== ${i[n]}`);s[n]++;break;default:throw new T("Invalid operation: "+t)}}catch(e){throw new T("Failed to update version: "+e)}}}function $(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:[$,a,o]}).apply()}async function B(e,t,r,a){a[r]=e.timestamp}async function G(e,t,r,a){if(a[r])try{a[r]=JSON.stringify(a[r])}catch(e){throw new M(`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]=JSON.parse(a[r])}catch(e){throw new M(`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 z(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 Q(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=z(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 J(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=Q(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 W(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 Z(t,r,a,o,n,s){const i=X(a,o,n);if(!i)return;const c=S(b(v(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 T("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} due to error: ${e}`;if(r.get("breakOnHandlerError"))throw new T(t);r.logger.for(Z).error(t)}}}function X(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:J(e,this,a,...t)):o||!e?o:J(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 M(`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.isTransient(e)).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,a)=>!r.Model.generated(e,t)&&!a.get("allowGenerationOverride")&&void 0!==e[t]).bind(r.Model);const ee={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},te=e=>(new re).accumulate(Object.assign({},e,{timestamp:new Date,logger:e.logger||n.Logging.get()}));class re{constructor(){this.cache=new o.ObjectAccumulator,Object.defineProperty(this,"cache",{value:new o.ObjectAccumulator,writable:!1,enumerable:!1,configurable:!0})}static{this.factory=te}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 re.factory(Object.assign({},e.cache,t||{}))}static async from(e,t,r,...a){return re.factory(Object.assign({},ee,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):re.from(e,o||{},t,...r)}let i;return n?n instanceof re?(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 ae(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 re))throw new T("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 oe(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 re))throw new T("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 T("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 ne="##VERSION##",se="##PACKAGE##";t.Metadata.registerLibrary(se,ne),e.BadRequestError=O,e.BaseError=m,e.BlockOperationIf=t=>k(e.OperationKeys.REFLECT+e.OperationKeys.BLOCK,t)(),e.BlockOperations=t=>k(e.OperationKeys.REFLECT+e.OperationKeys.BLOCK,(e,t)=>e.includes(t))(t),e.ConflictError=P,e.Context=re,e.DBKeys=s,e.DBOperations=h,e.DEFAULT_ERROR_MESSAGES=l,e.DEFAULT_TIMESTAMP_FORMAT=c,e.DefaultContextFactory=te,e.DefaultRepositoryFlags=ee,e.DefaultSeparator=i,e.InternalError=T,e.NotFoundError=w,e.Operations=g,e.OperationsRegistry=E,e.PACKAGE_NAME=se,e.Repository=class{get class(){if(!this._class)throw new T("No class definition found for this repository");return this._class}get pk(){return r.Model.pk(this.class)}get pkProps(){return r.Model.pkProps(this.class)}constructor(e){e&&(this._class=e);const t=this;[this.create,this.read,this.delete].forEach(e=>{const r=e.name;ae(t,t[r+"Prefix"],e,t[r+"Suffix"])}),oe(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 re.args(e.OperationKeys.CREATE,this.class,r);if(t=new this.class(t),a.context.get("ignoreHandlers")||await Z(this,a.context,t,e.OperationKeys.CREATE,e.OperationKeys.ON),!a.context.get("ignoreValidation")){const e=await Promise.resolve(t.hasErrors());if(e)throw new A(e.toString())}return[t,...a.args]}async createSuffix(t,r){return r.get("ignoreHandlers")||await Z(this,r,t,e.OperationKeys.CREATE,e.OperationKeys.AFTER),t}async createAllPrefix(t,...r){const a=await re.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 Z(this,a.context,r,e.OperationKeys.CREATE,e.OperationKeys.ON),r})),!n){const e=W(await Promise.all(t.map(e=>Promise.resolve(e.hasErrors()))));if(e)throw new A(e)}return[t,...a.args]}async createAllSuffix(t,r){return r.get("ignoreHandlers")||await Promise.all(t.map(t=>Z(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 Z(this,r,t,e.OperationKeys.READ,e.OperationKeys.AFTER),t}async readPrefix(t,...r){const a=await re.args(e.OperationKeys.READ,this.class,r),o=new this.class;return o[this.pk]=t,await Z(this,a.context,o,e.OperationKeys.READ,e.OperationKeys.ON),[t,...a.args]}async readAllPrefix(t,...r){const a=await re.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,Z(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=>Z(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 Z(this,a,t,e.OperationKeys.UPDATE,e.OperationKeys.AFTER,r),t}async updatePrefix(t,...a){const o=await re.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 T("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 Z(this,o.context,t,e.OperationKeys.UPDATE,e.OperationKeys.ON,l),!i){const e=await Promise.resolve(t.hasErrors(l));if(e)throw new A(e.toString())}return[t,...o.args,l]}async updateAllPrefix(t,...a){const o=await re.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 T("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)=>Z(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=W(e);if(r)throw new A(r)}return[t,...o.args,l]}async updateAllSuffix(t,r,a){if(a.get("applyUpdateValidation")&&!a.get("ignoreDevSafeGuards")&&!r)throw new T("No previous versions of models provided");return a.get("ignoreHandlers")||await Promise.all(t.map((t,o)=>Z(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 Z(this,r,t,e.OperationKeys.DELETE,e.OperationKeys.AFTER),t}async deletePrefix(t,...r){const a=await re.args(e.OperationKeys.DELETE,this.class,r),o=await this.read(t,...a.args);return await Z(this,a.context,o,e.OperationKeys.DELETE,e.OperationKeys.ON),[t,...a.args]}async deleteAllPrefix(t,...r){const a=await re.args(e.OperationKeys.DELETE,this.class,r),o=await this.readAll(t,...a.args);return await Promise.all(o.map(async t=>Z(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=>Z(this,r,t,e.OperationKeys.DELETE,e.OperationKeys.AFTER))),t}toString(){return this.class.name+" Repository"}},e.SerializationError=M,e.UpdateValidationKeys=d,e.UpdateValidator=p,e.VERSION=ne,e.ValidationError=A,e.after=I,e.afterAny=(e,t,r)=>I(h.ALL,e,t,r),e.afterCreate=(e,t,r)=>I(h.CREATE,e,t,r),e.afterCreateUpdate=(e,t,r)=>I(h.CREATE_UPDATE,e,t,r),e.afterDelete=(e,t,r)=>I(h.DELETE,e,t,r),e.afterRead=(e,t,r)=>I(h.READ,e,t,r),e.afterUpdate=(e,t,r)=>I(h.UPDATE,e,t,r),e.composed=(e,t=i,r=!1,a=!1,o="",n="",s={priority:55})=>H(e,a,t,r,"values",o,n,s),e.composedFromCreateUpdate=F,e.composedFromKeys=(e,t=i,r=!1,a=!1,o="",n="",s={priority:55})=>H(e,a,t,r,"keys",o,n,s),e.enforceDBDecorators=Z,e.generated=U,e.getDbDecorators=X,e.getHandlerArgs=R,e.getHandlersDecorators=v,e.getValidatableUpdateProps=q,e.groupDecorators=b,e.hash=j,e.hashOnCreateUpdate=V,e.id=()=>t.apply(r.required(),$(),(e,r)=>t.propMetadata(t.Metadata.key(s.ID,r),{})(e,r)),e.on=C,e.onAny=(e,t,r)=>C(h.ALL,e,t,r),e.onCreate=x,e.onCreateUpdate=K,e.onDelete=(e,t,r)=>C(h.DELETE,e,t,r),e.onRead=(e,t,r)=>C(h.READ,e,t,r),e.onUpdate=L,e.operation=N,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=$,e.reduceErrorsToPrint=W,e.serialize=()=>t.apply(K(G),I(h.ALL,Y),r.type([String,Object]),t.metadata(s.SERIALIZE,{})),e.serializeAfterAll=Y,e.serializeOnCreateUpdate=G,e.sortDecorators=S,e.storeHandlerMetadata=k,e.suffixMethod=(e,t,r,a)=>{const o=a||t.name;e[o]=new Proxy(e[o],{apply:async(e,t,a)=>{let o=e.call(t,...a);return o instanceof Promise&&(o=await o),o=r.call(t,...o),o instanceof Promise&&(o=await o),o}})},e.timestamp=(a=h.CREATE_UPDATE,o=c)=>{const n=s.TIMESTAMP,i=r.Validation.updateKey(s.TIMESTAMP);return t.Decoration.for(n).define({decorator:(a,o)=>{const n=[U(s.TIMESTAMP),r.date(o,l.TIMESTAMP.DATE),r.required(l.TIMESTAMP.REQUIRED),t.propMetadata(r.Validation.key(s.TIMESTAMP),{operation:a,format:o}),C(a,B)];return-1!==a.indexOf(e.OperationKeys.UPDATE)?n.push(t.propMetadata(i,{message:l.TIMESTAMP.INVALID})):n.push($()),t.apply(...n)},args:[a,o]}).apply()},e.timestampHandler=B,e.transient=()=>t.Decoration.for(s.TRANSIENT).define((e,r)=>{t.propMetadata(s.TRANSIENT,!0)(e.constructor),t.propMetadata(t.Metadata.key(s.TRANSIENT,r),{})(e,r)}).apply(),e.validateCompare=J,e.validateDecorator=z,e.validateDecorators=Q,e.version=()=>{const a=s.VERSION;return t.Decoration.for(a).define(U(s.VERSION),r.type(Number),x(_(e.OperationKeys.CREATE)),L(_(e.OperationKeys.UPDATE)),t.propMetadata(a,!0)).apply()},e.versionCreateUpdate=_,e.wrapMethodWithContext=ae,e.wrapMethodWithContextForUpdate=oe},"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","Operations","getHandlerName","flavour","resolveFlavour","Decoration","defaultFlavour","Metadata","flavourOf","byOperation","bucket","firstBucket","values","keys","Hashing","hash","toString","str","targetName","registry","getOpRegistry","BaseError","Error","msg","code","stack","BadRequestError","ValidationError","InternalError","SerializationError","NotFoundError","ConflictError","DefaultGroupSort","priority","getHandlerArgs","dec","prop","m","props","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","serializeAfterAll","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","id","pk","oldListModel","find","el","isModel","Promise","all","then","every","r","allEmpty","promises","resolvedValues","res","val","validateCompare","ValidatableUpdateProps","nestedErrors","propValue","designTypes","designType","getPropDesignTypes","some","TYPE","propErrors","isConstr","isPropertyModel","instance","Constr","entries","error","ModelErrorDefinition","merged","allSettled","results","parentProp","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","status","reason","reduceErrorsToPrint","errors","enforceDBDecorators","repo","getDbDecorators","sortedDecorators","UPDATE_ALL","logger","extraPrefix","replace","obj","isTransient","decoratorValidation","previousVersion","exclusions","isAsync","validate","resolve","resolvedErrs","segregate","validatableProperties","transientProps","transient","build","keyValue","constr","idProp","bind","pkProps","merge","extract","assign","decoration","saveOperation","ctx","DefaultRepositoryFlags","parentContext","childContexts","ignoredValidationProperties","callArgs","writeOperation","affectedTables","breakOnHandlerError","rebuildWithTransient","ignoreValidation","ignoreHandlers","ignoreDevSafeGuards","mergeForUpdate","applyUpdateValidation","allowGenerationOverride","DefaultContextFactory","Context","accumulate","Logging","ObjectAccumulator","defineProperty","writable","enumerable","configurable","factory","parent","childFrom","overrides","contextual","last","pop","getContext","wrapMethodWithContext","before","method","methodName","Proxy","thisArg","argArray","transformedArgs","wrapMethodWithContextForUpdate","o","PACKAGE_NAME","registerLibrary","BLOCK","operations","_class","self","create","read","delete","update","createAll","models","createPrefix","contextArgs","createSuffix","createAllPrefix","ignoreValidate","createAllSuffix","readAll","readSuffix","readPrefix","readAllPrefix","k","readAllSuffix","updateAll","updateSuffix","updatePrefix","updateAllPrefix","ids","oldModels","modelsValidation","updateAllSuffix","deleteAll","deleteSuffix","deletePrefix","deleteAllPrefix","deleteAllSuffix","required","afterName","beforeName","format","decorationKey","updateValidationKey","date","indexOf","attribute","Number"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"db-decorators.cjs","sources":["../src/model/constants.ts","../src/validation/constants.ts","../src/validation/validators/ReadOnlyValidator.ts","../src/validation/validators/TimestampValidator.ts","../src/validation/validators/UpdateValidator.ts","../src/operations/constants.ts","../src/validation/validation.ts","../src/operations/OperationsRegistry.ts","../src/operations/Operations.ts","../src/repository/errors.ts","../src/operations/decorators.ts","../src/model/decorators.ts","../src/validation/decorators.ts","../src/model/validation.ts","../src/repository/utils.ts","../src/overrides/overrides.ts","../src/repository/constants.ts","../src/repository/Context.ts","../src/repository/wrappers.ts","../src/index.ts","../src/repository/Repository.ts","../src/identity/decorators.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DBKeys","REFLECT","ModelKeys","MODEL","REPOSITORY","CLASS","ID","INDEX","UNIQUE","SERIALIZE","READONLY","TIMESTAMP","TRANSIENT","HASH","COMPOSED","GENERATED","VERSION","ORIGINAL","DefaultSeparator","DEFAULT_TIMESTAMP_FORMAT","DEFAULT_ERROR_MESSAGES","INVALID","REQUIRED","DATE","UpdateValidationKeys","ReadOnlyValidator","Validator","constructor","super","hasErrors","value","args","updateHasErrors","oldValue","message","undefined","isEqual","this","getMessage","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","Operations","getHandlerName","flavour","resolveFlavour","Decoration","defaultFlavour","Metadata","flavourOf","byOperation","bucket","firstBucket","values","keys","Hashing","hash","toString","str","targetName","registry","getOpRegistry","BaseError","Error","msg","code","stack","BadRequestError","ValidationError","InternalError","SerializationError","NotFoundError","ConflictError","DefaultGroupSort","priority","getHandlerArgs","dec","prop","m","props","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","serializeAfterAll","parse","getValidatableUpdateProps","propsToIgnore","decoratedProperties","hasOwnProperty","call","validationFor","validateDecorator","newModel","toConditionalPromise","decoratorProps","maybeError","validateDecorators","result","decoratorKey","validationErrors","ValidationKeys","LIST","newPropValue","oldPropValue","newValues","Set","oldValues","allowedTypes","class","clazz","customTypes","flat","t","String","toLowerCase","errs","childValue","isModel","id","pk","oldListModel","find","el","Promise","all","then","every","r","allEmpty","promises","resolvedValues","res","val","validateCompare","ValidatableUpdateProps","nestedErrors","propValue","designTypes","getPropDesignTypes","some","TYPE","propErrors","isConstr","isPropertyModel","instance","Constr","designTypeNames","nestedPropsToIgnore","getChildNestedPropsToIgnore","entries","error","ModelErrorDefinition","merged","allSettled","results","parentProp","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","status","reason","reduceErrorsToPrint","errors","enforceDBDecorators","repo","getDbDecorators","sortedDecorators","UPDATE_ALL","logger","extraPrefix","replace","obj","isTransient","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","defineProperty","writable","enumerable","configurable","factory","parent","childFrom","overrides","contextual","last","pop","getContext","wrapMethodWithContext","before","method","methodName","Proxy","thisArg","argArray","transformedArgs","wrapMethodWithContextForUpdate","o","PACKAGE_NAME","registerLibrary","BLOCK","operations","_class","self","create","read","delete","update","createAll","models","createPrefix","contextArgs","createSuffix","createAllPrefix","ignoreValidate","createAllSuffix","readAll","readSuffix","readPrefix","readAllPrefix","k","readAllSuffix","updateAll","updateSuffix","updatePrefix","updateAllPrefix","ids","oldModels","modelsValidation","updateAllSuffix","deleteAll","deleteSuffix","deletePrefix","deleteAllPrefix","deleteAllSuffix","required","afterName","beforeName","format","decorationKey","updateValidationKey","date","indexOf","attribute","Number"],"mappings":"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"}
|
package/dist/db-decorators.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Decoration as t,Metadata as e,propMetadata as r,apply as n,metadata as o}from"@decaf-ts/decoration";import{ModelKeys as s,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,ModelErrorDefinition as A,validate as T}from"@decaf-ts/decorator-validation";import{__decorate as w,__metadata as P}from"tslib";import{ObjectAccumulator as O}from"typed-object-accumulator";import{Logging as R}from"@decaf-ts/logging";const v={REFLECT:s.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"},D="_",S="dd/MM/yyyy HH:mm:ss:S",b={ID:{INVALID:"This Id is invalid",REQUIRED:"The Id is mandatory"},READONLY:{INVALID:"This cannot be updated"},TIMESTAMP:{REQUIRED:"Timestamp is Mandatory",DATE:"The Timestamp must the a valid date",INVALID:"This value must always increase"}},L={REFLECT:"db.update.validation.",TIMESTAMP:v.TIMESTAMP,READONLY:v.READONLY};let N=class extends i{constructor(){super(b.READONLY.INVALID)}hasErrors(t,...e){}updateHasErrors(t,e,r){if(void 0!==t)return c(t,e)?void 0:this.getMessage(r||this.message)}};N=w([a(L.READONLY),P("design:paramtypes",[])],N);let I=class extends i{constructor(){super(b.TIMESTAMP.INVALID)}hasErrors(t,...e){}updateHasErrors(t,e,r){if(void 0!==t){r=r||this.getMessage(r||this.message);try{t=new Date(t),e=new Date(e)}catch(t){return r}return t>e?void 0:r}}};I=w([a(L.TIMESTAMP),P("design:paramtypes",[])],I);class x extends i{constructor(t=l.DEFAULT,...e){super(t,...e)}}var k,M,j;u.updateKey=t=>L.REFLECT+t,(t=>{t.REFLECT="decaf.model.db.operations.",t.CREATE="create",t.READ="read",t.UPDATE="update",t.DELETE="delete",t.ON="on.",t.AFTER="after.",t.BLOCK="block"})(k||(k={})),(t=>{t.OPERATIONS="operations",t.RELATIONS="relations"})(M||(M={})),(t=>{t.CREATE_ALL="createAll",t.READ_ALL="readAll",t.UPDATE_ALL="updateAll",t.DELETE_ALL="deleteAll"})(j||(j={}));const C={CREATE:[k.CREATE],READ:[k.READ],UPDATE:[k.UPDATE],DELETE:[k.DELETE],CREATE_UPDATE:[k.CREATE,k.UPDATE],READ_CREATE:[k.READ,k.CREATE],ALL:[k.CREATE,k.READ,k.UPDATE,k.DELETE]};class U{constructor(){this.cache={}}get(t,e,r,n){n=n||[];const o=this.resolveOwner(t),s=this.resolveTargetName(t,o);if(s){const t=this.selectHandlers(s,e,r,o);t?.length&&n.unshift(...t)}else if("string"==typeof t||t===Object.prototype||Object.getPrototypeOf(t)===Object.prototype)return n;let a=Object.getPrototypeOf(t);return a?(a.constructor&&a.constructor.name===s&&(a=Object.getPrototypeOf(a)),a?this.get(a,e,r,n):n):n}register(t,e,r,n){const o=r.constructor.name,s=F.getHandlerName(t),a=this.resolveFlavour(r.constructor);this.cache[o]||(this.cache[o]={}),this.cache[o][n]||(this.cache[o][n]={}),this.cache[o][n][e]||(this.cache[o][n][e]={}),this.cache[o][n][e][a]||(this.cache[o][n][e][a]={}),this.cache[o][n][e][a][s]||(this.cache[o][n][e][a][s]=t)}resolveOwner(t){if(t&&"string"!=typeof t)return"function"==typeof t?t:t.constructor}resolveTargetName(t,e){return"string"==typeof t?t:e?.name}resolveFlavour(r){if(!r)return t.defaultFlavour;try{return e.flavourOf(r)}catch{return t.defaultFlavour}}selectHandlers(e,r,n,o){const s=this.cache[e]?.[r]?.[n];if(!s)return;const a=s[this.resolveFlavour(o)]||s[t.defaultFlavour]||this.firstBucket(s);if(!a)return;const i=Object.values(a);return i.length?i:void 0}firstBucket(t){for(const e of Object.values(t))if(e&&Object.keys(e).length)return e}}class F{constructor(){}static getHandlerName(t){return t.name?t.name:d.hash(t.toString())}static key(t){return k.REFLECT+t}static get(t,e,r){return F.registry.get(t,e,r)}static getOpRegistry(){return F.registry||(F.registry=new U),F.registry}static register(t,e,r,n){F.getOpRegistry().register(t,e,r,n)}}class H extends Error{constructor(t,e,r){if(e instanceof H)return e;super(`[${t}] ${e instanceof Error?e.message:e}`),this.code=r,e instanceof Error&&(this.stack=e.stack)}}class $ extends H{constructor(t,e=$.name,r=400){super(e,t,r)}}class V extends ${constructor(t){super(t,V.name,422)}}class _ extends H{constructor(t,e=_.name,r=500){super(e,t,r)}}class G extends _{constructor(t){super(t,G.name,500)}}class Y extends ${constructor(t){super(t,Y.name,404)}}class z extends ${constructor(t){super(t,z.name,409)}}const K={priority:50},B=(t,e,r,n)=>{const o=r.constructor.name;if(!o)throw new _("Could not determine model class");n=n||{},t.props.handlers[o]&&t.props.handlers[o][e]&&(n={...t.props.handlers[o][e],...n});let s=Object.getPrototypeOf(r);return s===Object.prototype?n:(s.constructor.name===o&&(s=Object.getPrototypeOf(s)),B(t,e,s,n))};function Q(t,e,r){const n=[];for(const o in e){const s=e[o];for(const e of s){const{key:s}=e,a=F.get(t,o,r+s);if(!a||!a.length)throw new _(`Could not find registered handler for the operation ${r+s} under property ${o}`);const i=B(e,o,t);if(!i)throw new _("Missing handler arguments for decorators");for(const t of a){const e=i[t.name];if(!e)throw new _("Missing handler arguments for handler "+t.name);const r=e.data;n.push({handler:t,data:[r],prop:[o]})}}}return n}function J(t){const e=t.reduce((t,e)=>{if(!e||!e.data||!e.prop)throw new _("Missing decorator properties or data");if(!e.data[0].group)return t.set(Symbol(),e),t;const r=e.data[0].group;if(t.has(r)){const n=t.get(r);t.set(r,{handler:n.handler,data:[...n.data,...e.data],prop:[...n.prop,...e.prop]})}else t.set(r,{...e});return t},new Map),r=Array.from(e.values());return r.forEach(t=>{const e=t.data.map((e,r)=>({data:e,prop:t.prop[r]}));e.sort((t,e)=>(t.data.groupPriority??50)-(e.data.groupPriority??50)),t.data=e.map(t=>t.data),t.prop=e.map(t=>t.prop)}),r}function q(t){return t.sort((t,e)=>(t.data[0].priority??50)-(e.data[0].priority??50)),t}function Z(t,e,r){return nt(C.CREATE_UPDATE,t,e,r)}function W(t,e,r){return nt(C.UPDATE,t,e,r)}function X(t,e,r){return nt(C.CREATE,t,e,r)}function tt(t,e,r){return nt(C.READ,t,e,r)}function et(t,e,r){return nt(C.DELETE,t,e,r)}function rt(t,e,r){return nt(C.ALL,t,e,r)}function nt(t=C.ALL,e,r,n){return dt(k.ON,t,e,r,n)}function ot(t,e,r){return ut(C.CREATE_UPDATE,t,e,r)}function st(t,e,r){return ut(C.UPDATE,t,e,r)}function at(t,e,r){return ut(C.CREATE,t,e,r)}function it(t,e,r){return ut(C.READ,t,e,r)}function ct(t,e,r){return ut(C.DELETE,t,e,r)}function lt(t,e,r){return ut(C.ALL,t,e,r)}function ut(t=C.ALL,e,r,n){return dt(k.AFTER,t,e,r,n)}function dt(t,o=C.ALL,s,a,i=K){return(c,l)=>{const u=c.constructor.name,d=o.reduce((n,o)=>{const d=t+o;let f=e.readOperation(c.constructor,l,d);f||(f={operation:o,handlers:{}});const p=F.getHandlerName(s);let h=i;if(a){if(Object.keys(a).filter(t=>t in i).length>0)throw new _("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(((t,e)=>(r,n)=>{F.register(e,t,r,n)})(d,s),r(e.key(M.OPERATIONS,l,d),f))),n},[]);return n(...d)(c,l)}}function ft(t,e){return(...r)=>o(t,{args:r,handler:e})}const pt=t=>ft(k.REFLECT+k.BLOCK,(t,e)=>t.includes(e))(t),ht=t=>ft(k.REFLECT+k.BLOCK,t)();function Et(t){return(n,o)=>r(e.key(v.GENERATED,o),t||!0)(n,o)}function gt(t,e,r,n,o){if(void 0===n[r])return;const s=d.hash(n[r]);o&&n[r]===s||(n[r]=s)}function yt(){return n(Z(gt),r(v.HASH,{}))}function mt(t,e,r,n){try{const{args:t,type:o,prefix:s,suffix:a,separator:i,filterEmpty:c,hashResult:l}=e,u=t.map(e=>{if(!(e in n))throw new _(`Property ${e} not found to compose from`);if("keys"===o)return e;if(void 0===n[e]){if(c){if(!Array.isArray(c))return;if(c.includes(e))return}throw new _(`Property ${t} does not contain a value to compose from`)}return n[e].toString()}).filter(t=>!c||!!t);s&&u.unshift(s),a&&u.push(a);const f=u.map(t=>"object"==typeof t&&"[object Object]"===t.toString()?JSON.stringify(t):t).join(i);n[r]=l?d.hash(f):f}catch(t){throw new _("Failed to compose value: "+t)}}function At(o,s=!1,a=D,i=!1,c="values",l="",u="",d={priority:55}){return t.for(v.COMPOSED).define({decorator:(t,o,s,a,c,l,u)=>(d,f)=>{const p={args:t,hashResult:o,separator:s,type:a,prefix:c,suffix:l,filterEmpty:i},h=[Et(v.COMPOSED),Z(mt,p,u),r(e.key(v.COMPOSED,f),p)];return o&&h.push(yt()),n(...h)(d,f)},args:[o,s,a,c,l,u,d]}).apply()}function Tt(t,e=D,r=!1,n=!1,o="",s="",a={priority:55}){return At(t,n,e,r,"keys",o,s,a)}function wt(t,e=D,r=!1,n=!1,o="",s="",a={priority:55}){return At(t,n,e,r,"values",o,s,a)}function Pt(t){return(e,r,n,o,s)=>{if(f.shouldGenerate(o,n,e))try{switch(t){case k.CREATE:o[n]=1;break;case k.UPDATE:if(e.get("applyUpdateValidation")&&s&&o[n]!==s[n])throw new V(`Version mismatch: ${o[n]} !== ${s[n]}`);o[n]++;break;default:throw new _("Invalid operation: "+t)}}catch(t){throw new _("Failed to update version: "+t)}}}function Ot(){const e=v.VERSION;return t.for(e).define(Et(v.VERSION),p(Number),X(Pt(k.CREATE)),W(Pt(k.UPDATE)),r(e,!0)).apply()}function Rt(){return t.for(v.TRANSIENT).define((t,n)=>{r(v.TRANSIENT,!0)(t.constructor),r(e.key(v.TRANSIENT,n),{})(t,n)}).apply()}function vt(e=b.READONLY.INVALID){const r=v.READONLY,n={message:e,description:"defines the attribute as readOnly",async:!1};return t.for(r).define({decorator:h,args:[vt,r,n]}).apply()}async function Dt(t,e,r,n){n[r]=t.timestamp}function St(e=C.CREATE_UPDATE,o=S){const s=v.TIMESTAMP,a=u.updateKey(v.TIMESTAMP);return t.for(s).define({decorator:(t,e)=>{const o=[Et(v.TIMESTAMP),E(e,b.TIMESTAMP.DATE),g(b.TIMESTAMP.REQUIRED),r(u.key(v.TIMESTAMP),{operation:t,format:e}),nt(t,Dt)];return-1!==t.indexOf(k.UPDATE)?o.push(r(a,{message:b.TIMESTAMP.INVALID})):o.push(vt()),n(...o)},args:[e,o]}).apply()}async function bt(t,e,r,n){if(n[r])try{n[r]=JSON.stringify(n[r])}catch(t){throw new G(`Failed to serialize ${r.toString()} property of model ${n.constructor.name}: e`)}}async function Lt(t,e,r,n){if(n[r]&&"string"==typeof n[r])try{n[r]=JSON.parse(n[r])}catch(t){throw new G(`Failed to deserialize ${r.toString()} property of model ${n.constructor.name}: ${t}`)}}function Nt(){return n(Z(bt),ut(C.ALL,Lt),p([String,Object]),o(v.SERIALIZE,{}))}function It(){return n(g(),vt(),(t,n)=>r(e.key(v.ID,n),{})(t,n))}function xt(t,r){const n=[];for(const o in t){if(!Object.prototype.hasOwnProperty.call(t,o)||r.includes(o))continue;const s=e.validationFor(t.constructor,o)||{};n.push({prop:o,decorators:s})}return n}function kt(t,e,r,n,o){const s=u.get(n.key);if(!s)throw Error("Missing validator for "+n.key);if(!s.updateHasErrors)return y(void 0,o);if(!o&&n.async)return y(void 0,o);const a=Object.values(n)||{},i=s.updateHasErrors(t[r],e[r],...a);return y(i,o)}function Mt(t,e,r,n,o){const s={};for(const a in n){const i={...n[a],key:a};if(!o&&i.async)continue;let c=kt(t,e,r,i,o);if(i.key===m.LIST&&(!c||o)){const n=t[r],s=e[r],a=n instanceof Set?[...n]:n,l=s instanceof Set?[...s]:s;if(a?.length){const t=[i.class||i.clazz||i.customTypes].flat().map(t=>((t=(t="function"!=typeof t||t.name?t:t()).name?t.name:t)+"").toLowerCase()),e=a.map(e=>{const r=f.pk(e,!0);if(!r)return"Failed to find model id";const n=l.find(t=>r===f.pk(t,!0));return f.isModel(e)?e.hasErrors(n):t.includes(typeof e)?void 0:"Value has no validatable type"});if(o)c=Promise.all(e).then(t=>t.every(t=>!t)?void 0:t);else{const t=e.every(t=>!t);c=e.length>0&&!t?e:void 0}}}c&&(s[i.key]=c)}if(!o)return Object.keys(s).length>0?s:void 0;const a=Object.keys(s),i=Object.values(s);return Promise.all(i).then(t=>{const e={};for(let r=0;r<t.length;r++){const n=t[r];void 0!==n&&(e[a[r]]=n)}return Object.keys(e).length>0?e:void 0})}function jt(t,r,n,...o){const a=xt(r,o),i={},c={};for(const{prop:o,decorators:l}of a){const a=o+"",u=r[o],{designTypes:d,designType:p}=e.getPropDesignTypes(r.constructor,o);if(!d)continue;if(d.some(t=>[Array.name,Set.name].includes(t))){if(!l||!Object.keys(l).includes(m.LIST)){i[a]={[m.TYPE]:`Array or Set property '${a}' requires a @list decorator`};continue}if(u&&!(Array.isArray(u)||u instanceof Set)){i[a]={[m.TYPE]:`Property '${o+""}' must be either an Array or a Set`};continue}}const h=Mt(r,t,a,l,n)||{},E=f.isPropertyModel(r,a);if(null!=u&&E){const e=u,r=(Array.isArray(p)?p:[p]).map(t=>("function"!=typeof t||t.name||(t=t()),f.get(t.name||t))).find(t=>!!t);r&&e instanceof r?c[a]=e.hasErrors(t[o]):(h[m.TYPE]=r?"Value must be an instance of "+r.name:`Unable to verify type consistency, missing model registry for ${d.toString()} on prop ${a}`,delete h[s.TYPE])}(Object.keys(h).length>0||n)&&(i[a]=h),n||Object.entries(c[a]||{}).forEach(([t,e])=>{void 0!==e&&(i[`${a}.${t}`]=e)})}if(!n)return Object.keys(i).length>0?new A(i):void 0;const l=i,u=Object.keys(l),d=Object.values(l);return Promise.allSettled(d).then(async t=>{const e={};for(const[t,r]of Object.entries(c)){const n=await r;n&&Object.entries(n).forEach(([r,n])=>{void 0!==n&&(e[[t,r].join(".")]=n)})}for(let r=0;r<t.length;r++){const n=u[r],o=t[r];"fulfilled"===o.status&&void 0!==o.value?e[n]=o.value:"rejected"===o.status&&(e[n]=o.reason instanceof Error?o.reason.message:(o.reason||"Validation failed")+"")}return Object.keys(e).length>0?new A(e):void 0})}function Ct(t){return t.reduce((t,e,r)=>(e&&(t="string"==typeof t?t+`\n - ${r}: ${e.toString()}`:` - ${r}: ${e.toString()}`),t),void 0)}async function Ut(t,e,r,n,o,s){const a=Ft(r,n,o);if(!a)return;const i=q(J(Q(r,a,o)));for(const o of i){const a=[e,o.data.length>1?o.data:o.data[0],o.prop.length>1?o.prop:o.prop[0],r];if([k.UPDATE,j.UPDATE_ALL].includes(n)){if(!s)throw new _("Missing old model for update operation");a.push(s)}try{await o.handler.apply(t,a)}catch(t){const n=`Failed to execute handler ${o.handler.name} for ${o.prop} on ${r.constructor.name} due to error: ${t}`;if(e.get("breakOnHandlerError"))throw new _(n);e.logger.for(Ut).error(n)}}}function Ft(t,r,n){const o=n?.replace(/[.]$/,""),s=e.get(t.constructor,M.OPERATIONS);if(s)return Object.keys(s).reduce((t,e)=>{const n=o?s[e][o]||{}:s[e],a=Object.keys(n).filter(t=>t===r),i=[];for(const t of a)i.push({key:t,props:n[t]});return i&&i.length&&(t||(t={}),t[e]=i),t},void 0)}f.prototype.isTransient=function(){return e.isTransient(this)},f.prototype.hasErrors=function(t,...e){!t||t instanceof f||(e.unshift(t),t=void 0);const r=this.isAsync(),n=T(this,r,...e);return r?Promise.resolve(n).then(n=>n||!t?n:jt(t,this,r,...e)):n||!t?n:jt(t,this,r,...e)},f.prototype.segregate=function(){return f.segregate(this)},f.segregate=t=>{if(!e.isTransient(t))return{model:t};const r=e.validatableProperties(t.constructor),n=e.get(t.constructor,v.TRANSIENT),o={model:{},transient:{}};for(const e of r)if(Object.keys(n).includes(e)){o.transient=o.transient||{};try{o.transient[e]=t[e]}catch(t){throw new G(`Failed to serialize transient property ${e}: ${t}`)}}else o.model=o.model||{},o.model[e]=t[e];return o.model=f.build(o.model,t.constructor.name),o},f.pk=((t,r=!1)=>{if(!t)throw Error("No model was provided");const n=t instanceof f?t.constructor:t,o=e.get(n,v.ID);if(!o)throw Error("No Id property defined for model "+(n?.name||"Unknown Model"));const s=Object.keys(o)[0];if(!r)return s;if(t instanceof f)return t[s];throw Error("Cannot get the value of the pk from the constructor")}).bind(f),f.pkProps=(t=>e.get(t,e.key(v.ID,f.pk(t)))).bind(f),f.isTransient=(t=>e.isTransient(t)).bind(f),f.composed=((t,r)=>{const n=t instanceof f?t.constructor:t;return r?e.get(n,e.key(v.COMPOSED,r)):!!e.get(n,v.COMPOSED)}).bind(f),f.merge=((t,e,r)=>{const n=t=>Object.entries(t).reduce((t,[e,r])=>(void 0!==r&&(t[e]=r),t),{});return new(r=r||t.constructor)(Object.assign({},n(t),n(e)))}).bind(f),e.saveOperation=((t,r,n,o)=>{r&&e.set(t,e.key(M.OPERATIONS,r,n),o)}).bind(e),e.readOperation=((t,r,n)=>{if(r&&n)return e.get(t,e.key(M.OPERATIONS,r,n))}).bind(e),e.isTransient=(t=>!!e.get("function"!=typeof t?t.constructor:t,v.TRANSIENT)).bind(e),f.generated=((t,r)=>!!e.get("function"!=typeof t?t.constructor:t,e.key(v.GENERATED,r))).bind(f),f.shouldGenerate=((t,e,r)=>!f.generated(t,e)&&!r.get("allowGenerationOverride")&&void 0!==t[e]).bind(f);const Ht={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},$t=t=>(new Vt).accumulate(Object.assign({},t,{timestamp:new Date,logger:t.logger||R.get()}));class Vt{constructor(){this.cache=new O,Object.defineProperty(this,"cache",{value:new O,writable:!1,enumerable:!1,configurable:!0})}static{this.factory=$t}accumulate(t){return Object.defineProperty(this,"cache",{value:this.cache.accumulate(t),writable:!1,enumerable:!1,configurable:!0}),this}get logger(){return this.cache.logger}get timestamp(){return this.cache.timestamp}get(t){try{return this.cache.get(t)}catch(e){const r=this.cache.parentContext;if(r)return r.get(t);throw e}}static childFrom(t,e){return Vt.factory(Object.assign({},t.cache,e||{}))}static async from(t,e,r,...n){return Vt.factory(Object.assign({},Ht,e,{operation:t,model:r,logger:e.logger||R.get()}))}static async args(t,e,r,n,o){const s=r.pop();async function a(){return n?n.context(t,o||{},e,...r):Vt.from(t,o||{},e,...r)}let i;return s?s instanceof Vt?(i=s,r.push(s)):(r.push(s),i=await a(),r.push(i)):(i=await a(),r.push(i)),{context:i,args:r}}}function _t(t,e,r,n){const o=n||e.name;t[o]=new Proxy(t[o],{apply:async(t,e,n)=>{let o=r.call(e,...n);return o instanceof Promise&&(o=await o),o=t.call(e,...o),o instanceof Promise&&(o=await o),o}})}function Gt(t,e,r,n){const o=n||e.name;t[o]=new Proxy(t[o],{apply:async(t,e,n)=>{let o=t.call(e,...n);return o instanceof Promise&&(o=await o),o=r.call(e,...o),o instanceof Promise&&(o=await o),o}})}function Yt(t,e,r,n,o){const s=o||r.name;t[s]=new Proxy(t[s],{apply:async(t,r,o)=>{let s=e.call(r,...o);s instanceof Promise&&(s=await s);const a=s[s.length-1];if(!(a instanceof Vt))throw new _("Missing a context");let i=t.call(r,...s);return i instanceof Promise&&(i=await i),i=n.call(r,i,a),i instanceof Promise&&(i=await i),i}})}function zt(t,e,r,n,o){const s=o||r.name;t[s]=new Proxy(t[s],{apply:async(t,r,o)=>{let s=e.call(r,...o);s instanceof Promise&&(s=await s);const a=s.pop(),i=s[s.length-1];if(!(i instanceof Vt))throw new _("Missing a context");if(i.get("applyUpdateValidation")&&!i.get("ignoreDevSafeGuards")&&!(a instanceof f)&&(!Array.isArray(a)||!a.every(t=>t instanceof f)))throw new _("No previous versions os models found");let c=t.call(r,...s);return c instanceof Promise&&(c=await c),c=n.call(r,c,a,i),c instanceof Promise&&(c=await c),c}})}class Kt{get class(){if(!this._class)throw new _("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(t){t&&(this._class=t);const e=this;[this.create,this.read,this.delete].forEach(t=>{const r=t.name;Yt(e,e[r+"Prefix"],t,e[r+"Suffix"])}),zt(e,e[this.update.name+"Prefix"],this.update,e[this.update.name+"Suffix"])}async createAll(t,...e){return Promise.all(t.map(t=>this.create(t,...e)))}async createPrefix(t,...e){const r=await Vt.args(k.CREATE,this.class,e);if(t=new this.class(t),r.context.get("ignoreHandlers")||await Ut(this,r.context,t,k.CREATE,k.ON),!r.context.get("ignoreValidation")){const e=await Promise.resolve(t.hasErrors());if(e)throw new V(e.toString())}return[t,...r.args]}async createSuffix(t,e){return e.get("ignoreHandlers")||await Ut(this,e,t,k.CREATE,k.AFTER),t}async createAllPrefix(t,...e){const r=await Vt.args(k.CREATE,this.class,e),n=r.context.get("ignoreHandlers"),o=r.context.get("ignoreValidation");if(t=await Promise.all(t.map(async t=>{const e=new this.class(t);return n||await Ut(this,r.context,e,k.CREATE,k.ON),e})),!o){const e=Ct(await Promise.all(t.map(t=>Promise.resolve(t.hasErrors()))));if(e)throw new V(e)}return[t,...r.args]}async createAllSuffix(t,e){return e.get("ignoreHandlers")||await Promise.all(t.map(t=>Ut(this,e,t,k.CREATE,k.AFTER))),t}async readAll(t,...e){return await Promise.all(t.map(t=>this.read(t,...e)))}async readSuffix(t,e){return e.get("ignoreHandlers")||await Ut(this,e,t,k.READ,k.AFTER),t}async readPrefix(t,...e){const r=await Vt.args(k.READ,this.class,e),n=new this.class;return n[this.pk]=t,await Ut(this,r.context,n,k.READ,k.ON),[t,...r.args]}async readAllPrefix(t,...e){const r=await Vt.args(k.READ,this.class,e);return await Promise.all(t.map(async t=>{const e=new this.class;return e[this.pk]=t,Ut(this,r.context,e,k.READ,k.ON)})),[t,...r.args]}async readAllSuffix(t,e){return e.get("ignoreHandlers")||await Promise.all(t.map(t=>Ut(this,e,t,k.READ,k.AFTER))),t}async updateAll(t,...e){return Promise.all(t.map(t=>this.update(t,...e)))}async updateSuffix(t,e,r){return r.get("ignoreHandlers")||await Ut(this,r,t,k.UPDATE,k.AFTER,e),t}async updatePrefix(t,...e){const r=await Vt.args(k.UPDATE,this.class,e),n=r.context,o=r.context.get("ignoreHandlers"),s=r.context.get("ignoreValidation"),a=t[this.pk];if(!a)throw new _("No value for the Id is defined under the property "+this.pk);let i;if(n.get("applyUpdateValidation")&&(i=await this.read(a),n.get("mergeForUpdate")&&(t=f.merge(i,t,this.class))),o||await Ut(this,r.context,t,k.UPDATE,k.ON,i),!s){const e=await Promise.resolve(t.hasErrors(i));if(e)throw new V(e.toString())}return[t,...r.args,i]}async updateAllPrefix(t,...e){const r=await Vt.args(k.UPDATE,this.class,e),n=r.context,o=n.get("ignoreHandlers"),s=n.get("ignoreValidation"),a=t.map(t=>{const e=t[this.pk];if(void 0===e)throw new _("No value for the Id is defined under the property "+this.pk);return e});let i;if(n.get("applyUpdateValidation")&&(i=await this.readAll(a,n),n.get("mergeForUpdate")&&(t=t.map((t,e)=>f.merge(i[e],t,this.class)))),o||await Promise.all(t.map((t,e)=>Ut(this,r.context,t,k.UPDATE,k.ON,i?i[e]:void 0))),!s){let e;e=n.get("applyUpdateValidation")?await Promise.all(t.map((t,e)=>Promise.resolve(t.hasErrors(i[e])))):await Promise.resolve(t.map(t=>t.hasErrors()));const r=Ct(e);if(r)throw new V(r)}return[t,...r.args,i]}async updateAllSuffix(t,e,r){if(r.get("applyUpdateValidation")&&!r.get("ignoreDevSafeGuards")&&!e)throw new _("No previous versions of models provided");return r.get("ignoreHandlers")||await Promise.all(t.map((t,n)=>Ut(this,r,t,k.UPDATE,k.AFTER,e?e[n]:void 0))),t}async deleteAll(t,...e){return Promise.all(t.map(t=>this.delete(t,...e)))}async deleteSuffix(t,e){return e.get("ignoreHandlers")||await Ut(this,e,t,k.DELETE,k.AFTER),t}async deletePrefix(t,...e){const r=await Vt.args(k.DELETE,this.class,e),n=await this.read(t,...r.args);return await Ut(this,r.context,n,k.DELETE,k.ON),[t,...r.args]}async deleteAllPrefix(t,...e){const r=await Vt.args(k.DELETE,this.class,e),n=await this.readAll(t,...r.args);return await Promise.all(n.map(async t=>Ut(this,r.context,t,k.DELETE,k.ON))),[t,...r.args]}async deleteAllSuffix(t,e){return e.get("ignoreHandlers")||await Promise.all(t.map(t=>Ut(this,e,t,k.DELETE,k.AFTER))),t}toString(){return this.class.name+" Repository"}}const Bt="##VERSION##",Qt="##PACKAGE##";e.registerLibrary(Qt,Bt);export{$ as BadRequestError,H as BaseError,ht as BlockOperationIf,pt as BlockOperations,j as BulkCrudOperationKeys,z as ConflictError,Vt as Context,v as DBKeys,C as DBOperations,b as DEFAULT_ERROR_MESSAGES,S as DEFAULT_TIMESTAMP_FORMAT,$t as DefaultContextFactory,Ht as DefaultRepositoryFlags,D as DefaultSeparator,_ as InternalError,M as ModelOperations,Y as NotFoundError,k as OperationKeys,F as Operations,U as OperationsRegistry,Qt as PACKAGE_NAME,N as ReadOnlyValidator,Kt as Repository,G as SerializationError,I as TimestampValidator,L as UpdateValidationKeys,x as UpdateValidator,Bt as VERSION,V as ValidationError,ut as after,lt as afterAny,at as afterCreate,ot as afterCreateUpdate,ct as afterDelete,it as afterRead,st as afterUpdate,wt as composed,mt as composedFromCreateUpdate,Tt as composedFromKeys,Ut as enforceDBDecorators,Et as generated,Ft as getDbDecorators,B as getHandlerArgs,Q as getHandlersDecorators,xt as getValidatableUpdateProps,J as groupDecorators,yt as hash,gt as hashOnCreateUpdate,It as id,nt as on,rt as onAny,X as onCreate,Z as onCreateUpdate,et as onDelete,tt as onRead,W as onUpdate,dt as operation,_t as prefixMethod,vt as readonly,Ct as reduceErrorsToPrint,Nt as serialize,Lt as serializeAfterAll,bt as serializeOnCreateUpdate,q as sortDecorators,ft as storeHandlerMetadata,Gt as suffixMethod,St as timestamp,Dt as timestampHandler,Rt as transient,jt as validateCompare,kt as validateDecorator,Mt as validateDecorators,Ot as version,Pt as versionCreateUpdate,Yt as wrapMethodWithContext,zt as wrapMethodWithContextForUpdate};
|
|
1
|
+
import{Decoration as t,Metadata as e,propMetadata as r,apply as n,metadata as o}from"@decaf-ts/decoration";import{ModelKeys as s,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:s.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(t,...e){}updateHasErrors(t,e,r){if(void 0!==t)return c(t,e)?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(t,...e){}updateHasErrors(t,e,r){if(void 0!==t){r=r||this.getMessage(r||this.message);try{t=new Date(t),e=new Date(e)}catch(t){return r}return t>e?void 0:r}}};x=P([a(N.TIMESTAMP),O("design:paramtypes",[])],x);class k extends i{constructor(t=l.DEFAULT,...e){super(t,...e)}}var C,M,j;u.updateKey=t=>N.REFLECT+t,(t=>{t.REFLECT="decaf.model.db.operations.",t.CREATE="create",t.READ="read",t.UPDATE="update",t.DELETE="delete",t.ON="on.",t.AFTER="after.",t.BLOCK="block"})(C||(C={})),(t=>{t.OPERATIONS="operations",t.RELATIONS="relations"})(M||(M={})),(t=>{t.CREATE_ALL="createAll",t.READ_ALL="readAll",t.UPDATE_ALL="updateAll",t.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(t,e,r,n){n=n||[];const o=this.resolveOwner(t),s=this.resolveTargetName(t,o);if(s){const t=this.selectHandlers(s,e,r,o);t?.length&&n.unshift(...t)}else if("string"==typeof t||t===Object.prototype||Object.getPrototypeOf(t)===Object.prototype)return n;let a=Object.getPrototypeOf(t);return a?(a.constructor&&a.constructor.name===s&&(a=Object.getPrototypeOf(a)),a?this.get(a,e,r,n):n):n}register(t,e,r,n){const o=r.constructor.name,s=H.getHandlerName(t),a=this.resolveFlavour(r.constructor);this.cache[o]||(this.cache[o]={}),this.cache[o][n]||(this.cache[o][n]={}),this.cache[o][n][e]||(this.cache[o][n][e]={}),this.cache[o][n][e][a]||(this.cache[o][n][e][a]={}),this.cache[o][n][e][a][s]||(this.cache[o][n][e][a][s]=t)}resolveOwner(t){if(t&&"string"!=typeof t)return"function"==typeof t?t:t.constructor}resolveTargetName(t,e){return"string"==typeof t?t:e?.name}resolveFlavour(r){if(!r)return t.defaultFlavour;try{return e.flavourOf(r)}catch{return t.defaultFlavour}}selectHandlers(e,r,n,o){const s=this.cache[e]?.[r]?.[n];if(!s)return;const a=s[this.resolveFlavour(o)]||s[t.defaultFlavour]||this.firstBucket(s);if(!a)return;const i=Object.values(a);return i.length?i:void 0}firstBucket(t){for(const e of Object.values(t))if(e&&Object.keys(e).length)return e}}class H{constructor(){}static getHandlerName(t){return t.name?t.name:d.hash(t.toString())}static key(t){return C.REFLECT+t}static get(t,e,r){return H.registry.get(t,e,r)}static getOpRegistry(){return H.registry||(H.registry=new F),H.registry}static register(t,e,r,n){H.getOpRegistry().register(t,e,r,n)}}class $ extends Error{constructor(t,e,r){if(e instanceof $)return e;super(`[${t}] ${e instanceof Error?e.message:e}`),this.code=r,e instanceof Error&&(this.stack=e.stack)}}class V extends ${constructor(t,e=V.name,r=400){super(e,t,r)}}class _ extends V{constructor(t){super(t,_.name,422)}}class G extends ${constructor(t,e=G.name,r=500){super(e,t,r)}}class Y extends G{constructor(t){super(t,Y.name,500)}}class z extends V{constructor(t){super(t,z.name,404)}}class K extends V{constructor(t){super(t,K.name,409)}}const B={priority:50},Q=(t,e,r,n)=>{const o=r.constructor.name;if(!o)throw new G("Could not determine model class");n=n||{},t.props.handlers[o]&&t.props.handlers[o][e]&&(n={...t.props.handlers[o][e],...n});let s=Object.getPrototypeOf(r);return s===Object.prototype?n:(s.constructor.name===o&&(s=Object.getPrototypeOf(s)),Q(t,e,s,n))};function J(t,e,r){const n=[];for(const o in e){const s=e[o];for(const e of s){const{key:s}=e,a=H.get(t,o,r+s);if(!a||!a.length)throw new G(`Could not find registered handler for the operation ${r+s} under property ${o}`);const i=Q(e,o,t);if(!i)throw new G("Missing handler arguments for decorators");for(const t of a){const e=i[t.name];if(!e)throw new G("Missing handler arguments for handler "+t.name);const r=e.data;n.push({handler:t,data:[r],prop:[o]})}}}return n}function q(t){const e=t.reduce((t,e)=>{if(!e||!e.data||!e.prop)throw new G("Missing decorator properties or data");if(!e.data[0].group)return t.set(Symbol(),e),t;const r=e.data[0].group;if(t.has(r)){const n=t.get(r);t.set(r,{handler:n.handler,data:[...n.data,...e.data],prop:[...n.prop,...e.prop]})}else t.set(r,{...e});return t},new Map),r=Array.from(e.values());return r.forEach(t=>{const e=t.data.map((e,r)=>({data:e,prop:t.prop[r]}));e.sort((t,e)=>(t.data.groupPriority??50)-(e.data.groupPriority??50)),t.data=e.map(t=>t.data),t.prop=e.map(t=>t.prop)}),r}function Z(t){return t.sort((t,e)=>(t.data[0].priority??50)-(e.data[0].priority??50)),t}function W(t,e,r){return ot(U.CREATE_UPDATE,t,e,r)}function X(t,e,r){return ot(U.UPDATE,t,e,r)}function tt(t,e,r){return ot(U.CREATE,t,e,r)}function et(t,e,r){return ot(U.READ,t,e,r)}function rt(t,e,r){return ot(U.DELETE,t,e,r)}function nt(t,e,r){return ot(U.ALL,t,e,r)}function ot(t=U.ALL,e,r,n){return ft(C.ON,t,e,r,n)}function st(t,e,r){return dt(U.CREATE_UPDATE,t,e,r)}function at(t,e,r){return dt(U.UPDATE,t,e,r)}function it(t,e,r){return dt(U.CREATE,t,e,r)}function ct(t,e,r){return dt(U.READ,t,e,r)}function lt(t,e,r){return dt(U.DELETE,t,e,r)}function ut(t,e,r){return dt(U.ALL,t,e,r)}function dt(t=U.ALL,e,r,n){return ft(C.AFTER,t,e,r,n)}function ft(t,o=U.ALL,s,a,i=B){return(c,l)=>{const u=c.constructor.name,d=o.reduce((n,o)=>{const d=t+o;let f=e.readOperation(c.constructor,l,d);f||(f={operation:o,handlers:{}});const p=H.getHandlerName(s);let h=i;if(a){if(Object.keys(a).filter(t=>t 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(((t,e)=>(r,n)=>{H.register(e,t,r,n)})(d,s),r(e.key(M.OPERATIONS,l,d),f))),n},[]);return n(...d)(c,l)}}function pt(t,e){return(...r)=>o(t,{args:r,handler:e})}const ht=t=>pt(C.REFLECT+C.BLOCK,(t,e)=>t.includes(e))(t),Et=t=>pt(C.REFLECT+C.BLOCK,t)();function gt(t){return(n,o)=>r(e.key(D.GENERATED,o),t||!0)(n,o)}function yt(t,e,r,n,o){if(void 0===n[r])return;const s=d.hash(n[r]);o&&n[r]===s||(n[r]=s)}function mt(){return n(W(yt),r(D.HASH,{}))}function At(t,e,r,n){try{const{args:t,type:o,prefix:s,suffix:a,separator:i,filterEmpty:c,hashResult:l}=e,u=t.map(e=>{if(!(e in n))throw new G(`Property ${e} not found to compose from`);if("keys"===o)return e;if(void 0===n[e]){if(c){if(!Array.isArray(c))return;if(c.includes(e))return}throw new G(`Property ${t} does not contain a value to compose from`)}return n[e].toString()}).filter(t=>!c||!!t);s&&u.unshift(s),a&&u.push(a);const f=u.map(t=>"object"==typeof t&&"[object Object]"===t.toString()?JSON.stringify(t):t).join(i);n[r]=l?d.hash(f):f}catch(t){throw new G("Failed to compose value: "+t)}}function Tt(o,s=!1,a=S,i=!1,c="values",l="",u="",d={priority:55}){return t.for(D.COMPOSED).define({decorator:(t,o,s,a,c,l,u)=>(d,f)=>{const p={args:t,hashResult:o,separator:s,type:a,prefix:c,suffix:l,filterEmpty:i},h=[gt(D.COMPOSED),W(At,p,u),r(e.key(D.COMPOSED,f),p)];return o&&h.push(mt()),n(...h)(d,f)},args:[o,s,a,c,l,u,d]}).apply()}function wt(t,e=S,r=!1,n=!1,o="",s="",a={priority:55}){return Tt(t,n,e,r,"keys",o,s,a)}function Pt(t,e=S,r=!1,n=!1,o="",s="",a={priority:55}){return Tt(t,n,e,r,"values",o,s,a)}function Ot(t){return(e,r,n,o,s)=>{if(f.shouldGenerate(o,n,e))try{switch(t){case C.CREATE:o[n]=1;break;case C.UPDATE:if(e.get("applyUpdateValidation")&&s&&o[n]!==s[n])throw new _(`Version mismatch: ${o[n]} !== ${s[n]}`);o[n]++;break;default:throw new G("Invalid operation: "+t)}}catch(t){throw new G("Failed to update version: "+t)}}}function Rt(){const e=D.VERSION;return t.for(e).define(gt(D.VERSION),p(Number),tt(Ot(C.CREATE)),X(Ot(C.UPDATE)),r(e,!0)).apply()}function vt(){return t.for(D.TRANSIENT).define((t,n)=>{r(D.TRANSIENT,!0)(t.constructor),r(e.key(D.TRANSIENT,n),{})(t,n)}).apply()}function Dt(e=L.READONLY.INVALID){const r=D.READONLY,n={message:e,description:"defines the attribute as readOnly",async:!1};return t.for(r).define({decorator:h,args:[Dt,r,n]}).apply()}async function St(t,e,r,n){n[r]=t.timestamp}function bt(e=U.CREATE_UPDATE,o=b){const s=D.TIMESTAMP,a=u.updateKey(D.TIMESTAMP);return t.for(s).define({decorator:(t,e)=>{const o=[gt(D.TIMESTAMP),E(e,L.TIMESTAMP.DATE),g(L.TIMESTAMP.REQUIRED),r(u.key(D.TIMESTAMP),{operation:t,format:e}),ot(t,St)];return-1!==t.indexOf(C.UPDATE)?o.push(r(a,{message:L.TIMESTAMP.INVALID})):o.push(Dt()),n(...o)},args:[e,o]}).apply()}async function Lt(t,e,r,n){if(n[r])try{n[r]=JSON.stringify(n[r])}catch(t){throw new Y(`Failed to serialize ${r.toString()} property of model ${n.constructor.name}: e`)}}async function Nt(t,e,r,n){if(n[r]&&"string"==typeof n[r])try{n[r]=JSON.parse(n[r])}catch(t){throw new Y(`Failed to deserialize ${r.toString()} property of model ${n.constructor.name}: ${t}`)}}function It(){return n(W(Lt),dt(U.ALL,Nt),p([String,Object]),o(D.SERIALIZE,{}))}function xt(){return n(g(),Dt(),(t,n)=>r(e.key(D.ID,n),{})(t,n))}function kt(t,r){const n=[];for(const o in t){if(!Object.prototype.hasOwnProperty.call(t,o)||r.includes(o))continue;const s=e.validationFor(t.constructor,o)||{};n.push({prop:o,decorators:s})}return n}function Ct(t,e,r,n,o){const s=u.get(n.key);if(!s)throw Error("Missing validator for "+n.key);if(!s.updateHasErrors)return y(void 0,o);if(!o&&n.async)return y(void 0,o);const a=Object.values(n)||{},i=s.updateHasErrors(t[r],e[r],...a);return y(i,o)}function Mt(t,e,r,n,o){const s={};for(const a in n){const i={...n[a],key:a};if(!o&&i.async)continue;let c=Ct(t,e,r,i,o);if(i.key===m.LIST&&(!c||o)){const n=t[r],s=e[r],a=n instanceof Set?[...n]:n,l=s instanceof Set?[...s]:s;if(a?.length){const t=[i.class||i.clazz||i.customTypes].flat().map(t=>((t=(t="function"!=typeof t||t.name?t:t()).name?t.name:t)+"").toLowerCase()),e=a.map(e=>{if(f.isModel(e)){const t=f.pk(e,!0);if(!t)return"Failed to find model id";const r=l.find(e=>t===f.pk(e,!0));return e.hasErrors(r)}return t.includes(typeof e)?void 0:"Value has no validatable type"});if(o)c=Promise.all(e).then(t=>t.every(t=>!t)?void 0:t);else{const t=e.every(t=>!t);c=e.length>0&&!t?e:void 0}}}c&&(s[i.key]=c)}if(!o)return Object.keys(s).length>0?s:void 0;const a=Object.keys(s),i=Object.values(s);return Promise.all(i).then(t=>{const e={};for(let r=0;r<t.length;r++){const n=t[r];void 0!==n&&(e[a[r]]=n)}return Object.keys(e).length>0?e:void 0})}function jt(t,r,n,...o){const a=kt(r,o),i={},c={};for(const{prop:l,decorators:u}of a){const a=l+"",d=r[l],{designTypes:p}=e.getPropDesignTypes(r.constructor,l);if(!p)continue;if(p.some(t=>[Array.name,Set.name].includes(t))){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=Mt(r,t,a,u,n)||{},E=f.isPropertyModel(r,a);if(null!=d&&E){const e=d,r=p.map(t=>f.get(t.name||t)).find(t=>!!t),n=p.map(t=>"function"==typeof t?t.name?t.name.toLowerCase():t()?.name.toLowerCase():t.toLowerCase());if(r&&d instanceof r){const r=A(a,...o);c[a]=e.hasErrors(t[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[s.TYPE])}(Object.keys(h).length>0||n)&&(i[a]=h),n||Object.entries(c[a]||{}).forEach(([t,e])=>{void 0!==e&&(i[`${a}.${t}`]=e)})}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 t=>{const e={};for(const[t,r]of Object.entries(c)){const n=await r;n&&Object.entries(n).forEach(([r,n])=>{void 0!==n&&(e[[t,r].join(".")]=n)})}for(let r=0;r<t.length;r++){const n=u[r],o=t[r];"fulfilled"===o.status&&void 0!==o.value?e[n]=o.value:"rejected"===o.status&&(e[n]=o.reason instanceof Error?o.reason.message:(o.reason||"Validation failed")+"")}return Object.keys(e).length>0?new T(e):void 0})}function Ut(t){return t.reduce((t,e,r)=>(e&&(t="string"==typeof t?t+`\n - ${r}: ${e.toString()}`:` - ${r}: ${e.toString()}`),t),void 0)}async function Ft(t,e,r,n,o,s){const a=Ht(r,n,o);if(!a)return;const i=Z(q(J(r,a,o)));for(const o of i){const a=[e,o.data.length>1?o.data:o.data[0],o.prop.length>1?o.prop:o.prop[0],r];if([C.UPDATE,j.UPDATE_ALL].includes(n)){if(!s)throw new G("Missing old model for update operation");a.push(s)}try{await o.handler.apply(t,a)}catch(t){const n=`Failed to execute handler ${o.handler.name} for ${o.prop} on ${r.constructor.name} due to error: ${t}`;if(e.get("breakOnHandlerError"))throw new G(n);e.logger.for(Ft).error(n)}}}function Ht(t,r,n){const o=n?.replace(/[.]$/,""),s=e.get(t.constructor,M.OPERATIONS);if(s)return Object.keys(s).reduce((t,e)=>{const n=o?s[e][o]||{}:s[e],a=Object.keys(n).filter(t=>t===r),i=[];for(const t of a)i.push({key:t,props:n[t]});return i&&i.length&&(t||(t={}),t[e]=i),t},void 0)}f.prototype.isTransient=function(){return e.isTransient(this)},f.prototype.hasErrors=function(t,...e){!t||t instanceof f||(e.unshift(t),t=void 0);const r=this.isAsync(),n=w(this,r,...e);return r?Promise.resolve(n).then(n=>n||!t?n:jt(t,this,r,...e)):n||!t?n:jt(t,this,r,...e)},f.prototype.segregate=function(){return f.segregate(this)},f.segregate=t=>{if(!e.isTransient(t))return{model:t};const r=e.validatableProperties(t.constructor),n=e.get(t.constructor,D.TRANSIENT),o={model:{},transient:{}};for(const e of r)if(Object.keys(n).includes(e)){o.transient=o.transient||{};try{o.transient[e]=t[e]}catch(t){throw new Y(`Failed to serialize transient property ${e}: ${t}`)}}else o.model=o.model||{},o.model[e]=t[e];return o.model=f.build(o.model,t.constructor.name),o},f.pk=((t,r=!1)=>{if(!t)throw Error("No model was provided");const n=t instanceof f?t.constructor:t,o=e.get(n,D.ID);if(!o)throw Error("No Id property defined for model "+(n?.name||"Unknown Model"));const s=Object.keys(o)[0];if(!r)return s;if(t instanceof f)return t[s];throw Error("Cannot get the value of the pk from the constructor")}).bind(f),f.pkProps=(t=>e.get(t,e.key(D.ID,f.pk(t)))).bind(f),f.isTransient=(t=>e.isTransient(t)).bind(f),f.composed=((t,r)=>{const n=t instanceof f?t.constructor:t;return r?e.get(n,e.key(D.COMPOSED,r)):!!e.get(n,D.COMPOSED)}).bind(f),f.merge=((t,e,r)=>{const n=t=>Object.entries(t).reduce((t,[e,r])=>(void 0!==r&&(t[e]=r),t),{});return new(r=r||t.constructor)(Object.assign({},n(t),n(e)))}).bind(f),e.saveOperation=((t,r,n,o)=>{r&&e.set(t,e.key(M.OPERATIONS,r,n),o)}).bind(e),e.readOperation=((t,r,n)=>{if(r&&n)return e.get(t,e.key(M.OPERATIONS,r,n))}).bind(e),e.isTransient=(t=>!!e.get("function"!=typeof t?t.constructor:t,D.TRANSIENT)).bind(e),f.generated=((t,r)=>!!e.get("function"!=typeof t?t.constructor:t,e.key(D.GENERATED,r))).bind(f),f.shouldGenerate=((t,e,r)=>!f.generated(t,e)&&!r.get("allowGenerationOverride")&&void 0!==t[e]).bind(f);const $t={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},Vt=t=>(new _t).accumulate(Object.assign({},t,{timestamp:new Date,logger:t.logger||v.get()}));class _t{constructor(){this.cache=new R,Object.defineProperty(this,"cache",{value:new R,writable:!1,enumerable:!1,configurable:!0})}static{this.factory=Vt}accumulate(t){return Object.defineProperty(this,"cache",{value:this.cache.accumulate(t),writable:!1,enumerable:!1,configurable:!0}),this}get logger(){return this.cache.logger}get timestamp(){return this.cache.timestamp}get(t){try{return this.cache.get(t)}catch(e){const r=this.cache.parentContext;if(r)return r.get(t);throw e}}static childFrom(t,e){return _t.factory(Object.assign({},t.cache,e||{}))}static async from(t,e,r,...n){return _t.factory(Object.assign({},$t,e,{operation:t,model:r,logger:e.logger||v.get()}))}static async args(t,e,r,n,o){const s=r.pop();async function a(){return n?n.context(t,o||{},e,...r):_t.from(t,o||{},e,...r)}let i;return s?s instanceof _t?(i=s,r.push(s)):(r.push(s),i=await a(),r.push(i)):(i=await a(),r.push(i)),{context:i,args:r}}}function Gt(t,e,r,n){const o=n||e.name;t[o]=new Proxy(t[o],{apply:async(t,e,n)=>{let o=r.call(e,...n);return o instanceof Promise&&(o=await o),o=t.call(e,...o),o instanceof Promise&&(o=await o),o}})}function Yt(t,e,r,n){const o=n||e.name;t[o]=new Proxy(t[o],{apply:async(t,e,n)=>{let o=t.call(e,...n);return o instanceof Promise&&(o=await o),o=r.call(e,...o),o instanceof Promise&&(o=await o),o}})}function zt(t,e,r,n,o){const s=o||r.name;t[s]=new Proxy(t[s],{apply:async(t,r,o)=>{let s=e.call(r,...o);s instanceof Promise&&(s=await s);const a=s[s.length-1];if(!(a instanceof _t))throw new G("Missing a context");let i=t.call(r,...s);return i instanceof Promise&&(i=await i),i=n.call(r,i,a),i instanceof Promise&&(i=await i),i}})}function Kt(t,e,r,n,o){const s=o||r.name;t[s]=new Proxy(t[s],{apply:async(t,r,o)=>{let s=e.call(r,...o);s instanceof Promise&&(s=await s);const a=s.pop(),i=s[s.length-1];if(!(i instanceof _t))throw new G("Missing a context");if(i.get("applyUpdateValidation")&&!i.get("ignoreDevSafeGuards")&&!(a instanceof f)&&(!Array.isArray(a)||!a.every(t=>t instanceof f)))throw new G("No previous versions os models found");let c=t.call(r,...s);return c instanceof Promise&&(c=await c),c=n.call(r,c,a,i),c instanceof Promise&&(c=await c),c}})}class Bt{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(t){t&&(this._class=t);const e=this;[this.create,this.read,this.delete].forEach(t=>{const r=t.name;zt(e,e[r+"Prefix"],t,e[r+"Suffix"])}),Kt(e,e[this.update.name+"Prefix"],this.update,e[this.update.name+"Suffix"])}async createAll(t,...e){return Promise.all(t.map(t=>this.create(t,...e)))}async createPrefix(t,...e){const r=await _t.args(C.CREATE,this.class,e);if(t=new this.class(t),r.context.get("ignoreHandlers")||await Ft(this,r.context,t,C.CREATE,C.ON),!r.context.get("ignoreValidation")){const e=await Promise.resolve(t.hasErrors());if(e)throw new _(e.toString())}return[t,...r.args]}async createSuffix(t,e){return e.get("ignoreHandlers")||await Ft(this,e,t,C.CREATE,C.AFTER),t}async createAllPrefix(t,...e){const r=await _t.args(C.CREATE,this.class,e),n=r.context.get("ignoreHandlers"),o=r.context.get("ignoreValidation");if(t=await Promise.all(t.map(async t=>{const e=new this.class(t);return n||await Ft(this,r.context,e,C.CREATE,C.ON),e})),!o){const e=Ut(await Promise.all(t.map(t=>Promise.resolve(t.hasErrors()))));if(e)throw new _(e)}return[t,...r.args]}async createAllSuffix(t,e){return e.get("ignoreHandlers")||await Promise.all(t.map(t=>Ft(this,e,t,C.CREATE,C.AFTER))),t}async readAll(t,...e){return await Promise.all(t.map(t=>this.read(t,...e)))}async readSuffix(t,e){return e.get("ignoreHandlers")||await Ft(this,e,t,C.READ,C.AFTER),t}async readPrefix(t,...e){const r=await _t.args(C.READ,this.class,e),n=new this.class;return n[this.pk]=t,await Ft(this,r.context,n,C.READ,C.ON),[t,...r.args]}async readAllPrefix(t,...e){const r=await _t.args(C.READ,this.class,e);return await Promise.all(t.map(async t=>{const e=new this.class;return e[this.pk]=t,Ft(this,r.context,e,C.READ,C.ON)})),[t,...r.args]}async readAllSuffix(t,e){return e.get("ignoreHandlers")||await Promise.all(t.map(t=>Ft(this,e,t,C.READ,C.AFTER))),t}async updateAll(t,...e){return Promise.all(t.map(t=>this.update(t,...e)))}async updateSuffix(t,e,r){return r.get("ignoreHandlers")||await Ft(this,r,t,C.UPDATE,C.AFTER,e),t}async updatePrefix(t,...e){const r=await _t.args(C.UPDATE,this.class,e),n=r.context,o=r.context.get("ignoreHandlers"),s=r.context.get("ignoreValidation"),a=t[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")&&(t=f.merge(i,t,this.class))),o||await Ft(this,r.context,t,C.UPDATE,C.ON,i),!s){const e=await Promise.resolve(t.hasErrors(i));if(e)throw new _(e.toString())}return[t,...r.args,i]}async updateAllPrefix(t,...e){const r=await _t.args(C.UPDATE,this.class,e),n=r.context,o=n.get("ignoreHandlers"),s=n.get("ignoreValidation"),a=t.map(t=>{const e=t[this.pk];if(void 0===e)throw new G("No value for the Id is defined under the property "+this.pk);return e});let i;if(n.get("applyUpdateValidation")&&(i=await this.readAll(a,n),n.get("mergeForUpdate")&&(t=t.map((t,e)=>f.merge(i[e],t,this.class)))),o||await Promise.all(t.map((t,e)=>Ft(this,r.context,t,C.UPDATE,C.ON,i?i[e]:void 0))),!s){let e;e=n.get("applyUpdateValidation")?await Promise.all(t.map((t,e)=>Promise.resolve(t.hasErrors(i[e])))):await Promise.resolve(t.map(t=>t.hasErrors()));const r=Ut(e);if(r)throw new _(r)}return[t,...r.args,i]}async updateAllSuffix(t,e,r){if(r.get("applyUpdateValidation")&&!r.get("ignoreDevSafeGuards")&&!e)throw new G("No previous versions of models provided");return r.get("ignoreHandlers")||await Promise.all(t.map((t,n)=>Ft(this,r,t,C.UPDATE,C.AFTER,e?e[n]:void 0))),t}async deleteAll(t,...e){return Promise.all(t.map(t=>this.delete(t,...e)))}async deleteSuffix(t,e){return e.get("ignoreHandlers")||await Ft(this,e,t,C.DELETE,C.AFTER),t}async deletePrefix(t,...e){const r=await _t.args(C.DELETE,this.class,e),n=await this.read(t,...r.args);return await Ft(this,r.context,n,C.DELETE,C.ON),[t,...r.args]}async deleteAllPrefix(t,...e){const r=await _t.args(C.DELETE,this.class,e),n=await this.readAll(t,...r.args);return await Promise.all(n.map(async t=>Ft(this,r.context,t,C.DELETE,C.ON))),[t,...r.args]}async deleteAllSuffix(t,e){return e.get("ignoreHandlers")||await Promise.all(t.map(t=>Ft(this,e,t,C.DELETE,C.AFTER))),t}toString(){return this.class.name+" Repository"}}const Qt="##VERSION##",Jt="##PACKAGE##";e.registerLibrary(Jt,Qt);export{V as BadRequestError,$ as BaseError,Et as BlockOperationIf,ht as BlockOperations,j as BulkCrudOperationKeys,K as ConflictError,_t as Context,D as DBKeys,U as DBOperations,L as DEFAULT_ERROR_MESSAGES,b as DEFAULT_TIMESTAMP_FORMAT,Vt as DefaultContextFactory,$t as DefaultRepositoryFlags,S as DefaultSeparator,G as InternalError,M as ModelOperations,z as NotFoundError,C as OperationKeys,H as Operations,F as OperationsRegistry,Jt as PACKAGE_NAME,I as ReadOnlyValidator,Bt as Repository,Y as SerializationError,x as TimestampValidator,N as UpdateValidationKeys,k as UpdateValidator,Qt as VERSION,_ as ValidationError,dt as after,ut as afterAny,it as afterCreate,st as afterCreateUpdate,lt as afterDelete,ct as afterRead,at as afterUpdate,Pt as composed,At as composedFromCreateUpdate,wt as composedFromKeys,Ft as enforceDBDecorators,gt as generated,Ht as getDbDecorators,Q as getHandlerArgs,J as getHandlersDecorators,kt as getValidatableUpdateProps,q as groupDecorators,mt as hash,yt as hashOnCreateUpdate,xt as id,ot as on,nt as onAny,tt as onCreate,W as onCreateUpdate,rt as onDelete,et as onRead,X as onUpdate,ft as operation,Gt as prefixMethod,Dt as readonly,Ut as reduceErrorsToPrint,It as serialize,Nt as serializeAfterAll,Lt as serializeOnCreateUpdate,Z as sortDecorators,pt as storeHandlerMetadata,Yt as suffixMethod,bt as timestamp,St as timestampHandler,vt as transient,jt as validateCompare,Ct as validateDecorator,Mt as validateDecorators,Rt as version,Ot as versionCreateUpdate,zt as wrapMethodWithContext,Kt 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","Operations","getHandlerName","flavour","resolveFlavour","Decoration","defaultFlavour","Metadata","flavourOf","byOperation","bucket","firstBucket","values","keys","Hashing","hash","toString","str","targetName","registry","getOpRegistry","BaseError","Error","msg","code","stack","BadRequestError","ValidationError","InternalError","SerializationError","NotFoundError","ConflictError","DefaultGroupSort","priority","getHandlerArgs","dec","prop","m","props","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","serializeAfterAll","parse","serialize","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","pk","oldListModel","find","el","isModel","Promise","all","then","every","r","allEmpty","promises","resolvedValues","res","val","validateCompare","ValidatableUpdateProps","nestedErrors","propValue","designTypes","designType","getPropDesignTypes","some","TYPE","propErrors","isConstr","isPropertyModel","instance","Constr","entries","error","ModelErrorDefinition","merged","allSettled","results","parentProp","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","status","reason","reduceErrorsToPrint","errors","enforceDBDecorators","repo","getDbDecorators","sortedDecorators","UPDATE_ALL","logger","extraPrefix","replace","obj","isTransient","previousVersion","exclusions","isAsync","validate","resolve","resolvedErrs","segregate","validatableProperties","transientProps","build","keyValue","constr","idProp","bind","pkProps","merge","extract","assign","saveOperation","ctx","DefaultRepositoryFlags","parentContext","childContexts","ignoredValidationProperties","callArgs","writeOperation","affectedTables","breakOnHandlerError","rebuildWithTransient","ignoreValidation","ignoreHandlers","ignoreDevSafeGuards","mergeForUpdate","applyUpdateValidation","allowGenerationOverride","DefaultContextFactory","Context","accumulate","Logging","ObjectAccumulator","defineProperty","writable","enumerable","configurable","factory","parent","childFrom","overrides","contextual","last","pop","getContext","prefixMethod","afterName","Proxy","thisArg","argArray","suffixMethod","before","beforeName","wrapMethodWithContext","method","methodName","transformedArgs","wrapMethodWithContextForUpdate","o","Repository","_class","self","create","read","delete","update","createAll","models","createPrefix","contextArgs","createSuffix","createAllPrefix","ignoreValidate","createAllSuffix","readAll","readSuffix","readPrefix","readAllPrefix","k","readAllSuffix","updateAll","updateSuffix","updatePrefix","updateAllPrefix","ids","oldModels","modelsValidation","updateAllSuffix","deleteAll","deleteSuffix","deletePrefix","deleteAllPrefix","deleteAllSuffix","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"db-decorators.js","sources":["../src/model/constants.ts","../src/validation/constants.ts","../src/validation/validators/ReadOnlyValidator.ts","../src/validation/validators/TimestampValidator.ts","../src/validation/validators/UpdateValidator.ts","../src/operations/constants.ts","../src/validation/validation.ts","../src/operations/OperationsRegistry.ts","../src/operations/Operations.ts","../src/repository/errors.ts","../src/operations/decorators.ts","../src/model/decorators.ts","../src/validation/decorators.ts","../src/identity/decorators.ts","../src/model/validation.ts","../src/repository/utils.ts","../src/overrides/overrides.ts","../src/repository/constants.ts","../src/repository/Context.ts","../src/repository/wrappers.ts","../src/repository/Repository.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DBKeys","REFLECT","ModelKeys","MODEL","REPOSITORY","CLASS","ID","INDEX","UNIQUE","SERIALIZE","READONLY","TIMESTAMP","TRANSIENT","HASH","COMPOSED","GENERATED","VERSION","ORIGINAL","DefaultSeparator","DEFAULT_TIMESTAMP_FORMAT","DEFAULT_ERROR_MESSAGES","INVALID","REQUIRED","DATE","UpdateValidationKeys","ReadOnlyValidator","Validator","constructor","super","hasErrors","value","args","updateHasErrors","oldValue","message","undefined","isEqual","this","getMessage","__decorate","validator","TimestampValidator","Date","e","UpdateValidator","DecoratorMessages","DEFAULT","acceptedTypes","OperationKeys","ModelOperations","BulkCrudOperationKeys","Validation","updateKey","key","DBOperations","CREATE","READ","UPDATE","DELETE","CREATE_UPDATE","READ_CREATE","ALL","OperationsRegistry","cache","get","target","propKey","operation","accum","owner","resolveOwner","name","resolveTargetName","handlers","selectHandlers","length","unshift","Object","prototype","getPrototypeOf","proto","register","handler","handlerName","Operations","getHandlerName","flavour","resolveFlavour","Decoration","defaultFlavour","Metadata","flavourOf","byOperation","bucket","firstBucket","values","keys","Hashing","hash","toString","str","targetName","registry","getOpRegistry","BaseError","Error","msg","code","stack","BadRequestError","ValidationError","InternalError","SerializationError","NotFoundError","ConflictError","DefaultGroupSort","priority","getHandlerArgs","dec","prop","m","props","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","serializeAfterAll","parse","serialize","String","id","getValidatableUpdateProps","propsToIgnore","decoratedProperties","hasOwnProperty","call","validationFor","validateDecorator","newModel","toConditionalPromise","decoratorProps","maybeError","validateDecorators","result","decoratorKey","validationErrors","ValidationKeys","LIST","newPropValue","oldPropValue","newValues","Set","oldValues","allowedTypes","class","clazz","customTypes","flat","t","toLowerCase","errs","childValue","isModel","pk","oldListModel","find","el","Promise","all","then","every","r","allEmpty","promises","resolvedValues","res","val","validateCompare","ValidatableUpdateProps","nestedErrors","propValue","designTypes","getPropDesignTypes","some","TYPE","propErrors","isConstr","isPropertyModel","instance","Constr","designTypeNames","nestedPropsToIgnore","getChildNestedPropsToIgnore","entries","error","ModelErrorDefinition","merged","allSettled","results","parentProp","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","status","reason","reduceErrorsToPrint","errors","enforceDBDecorators","repo","getDbDecorators","sortedDecorators","UPDATE_ALL","logger","extraPrefix","replace","obj","isTransient","previousVersion","exclusions","isAsync","validate","resolve","resolvedErrs","segregate","validatableProperties","transientProps","build","keyValue","constr","idProp","bind","pkProps","merge","extract","assign","saveOperation","ctx","DefaultRepositoryFlags","parentContext","childContexts","ignoredValidationProperties","callArgs","writeOperation","affectedTables","breakOnHandlerError","rebuildWithTransient","ignoreValidation","ignoreHandlers","ignoreDevSafeGuards","mergeForUpdate","applyUpdateValidation","allowGenerationOverride","DefaultContextFactory","Context","accumulate","Logging","ObjectAccumulator","defineProperty","writable","enumerable","configurable","factory","parent","childFrom","overrides","contextual","last","pop","getContext","prefixMethod","afterName","Proxy","thisArg","argArray","suffixMethod","before","beforeName","wrapMethodWithContext","method","methodName","transformedArgs","wrapMethodWithContextForUpdate","o","Repository","_class","self","create","read","delete","update","createAll","models","createPrefix","contextArgs","createSuffix","createAllPrefix","ignoreValidate","createAllSuffix","readAll","readSuffix","readPrefix","readAllPrefix","k","readAllSuffix","updateAll","updateSuffix","updatePrefix","updateAllPrefix","ids","oldModels","modelsValidation","updateAllSuffix","deleteAll","deleteSuffix","deletePrefix","deleteAllPrefix","deleteAllSuffix","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
|
package/lib/esm/index.d.ts
CHANGED
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
|
+
export const VERSION = "0.8.5";
|
|
21
21
|
export const PACKAGE_NAME = "@decaf-ts/db-decorators";
|
|
22
22
|
Metadata.registerLibrary(PACKAGE_NAME, VERSION);
|
|
23
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Model, ModelErrorDefinition, ModelKeys, toConditionalPromise, Validation, ValidationKeys, } from "@decaf-ts/decorator-validation";
|
|
1
|
+
import { Model, ModelErrorDefinition, ModelKeys, toConditionalPromise, Validation, ValidationKeys, getChildNestedPropsToIgnore, } from "@decaf-ts/decorator-validation";
|
|
2
2
|
import { Metadata } from "@decaf-ts/decoration";
|
|
3
3
|
/**
|
|
4
4
|
* @description
|
|
@@ -83,12 +83,12 @@ export function validateDecorators(newModel, oldModel, prop, decorators, async)
|
|
|
83
83
|
return String(t).toLowerCase();
|
|
84
84
|
});
|
|
85
85
|
const errs = newValues.map((childValue) => {
|
|
86
|
-
// find by id so the list elements order doesn't matter
|
|
87
|
-
const id = Model.pk(childValue, true);
|
|
88
|
-
if (!id)
|
|
89
|
-
return "Failed to find model id";
|
|
90
|
-
const oldListModel = oldValues.find((el) => id === Model.pk(el, true));
|
|
91
86
|
if (Model.isModel(childValue)) {
|
|
87
|
+
// find by id so the list elements order doesn't matter
|
|
88
|
+
const id = Model.pk(childValue, true);
|
|
89
|
+
if (!id)
|
|
90
|
+
return "Failed to find model id";
|
|
91
|
+
const oldListModel = oldValues.find((el) => id === Model.pk(el, true));
|
|
92
92
|
return childValue.hasErrors(oldListModel);
|
|
93
93
|
}
|
|
94
94
|
return allowedTypes.includes(typeof childValue)
|
|
@@ -163,7 +163,7 @@ export function validateCompare(oldModel, newModel, async, ...propsToIgnore) {
|
|
|
163
163
|
for (const { prop, decorators } of ValidatableUpdateProps) {
|
|
164
164
|
const propKey = String(prop);
|
|
165
165
|
const propValue = newModel[prop];
|
|
166
|
-
const { designTypes
|
|
166
|
+
const { designTypes } = Metadata.getPropDesignTypes(newModel.constructor, prop);
|
|
167
167
|
if (!designTypes)
|
|
168
168
|
continue;
|
|
169
169
|
// Handle array or Set types and enforce the presence of @list decorator
|
|
@@ -186,27 +186,35 @@ export function validateCompare(oldModel, newModel, async, ...propsToIgnore) {
|
|
|
186
186
|
// TODO: Check validateDecorators method partially working. Complete check pending.
|
|
187
187
|
const propErrors = validateDecorators(newModel, oldModel, propKey, decorators, async) || {};
|
|
188
188
|
// Check for nested model.
|
|
189
|
-
// To prevent unnecessary processing, "propValue" must be defined
|
|
189
|
+
// To prevent unnecessary processing, "propValue" must be defined
|
|
190
190
|
const isConstr = Model.isPropertyModel(newModel, propKey);
|
|
191
191
|
const hasPropValue = propValue !== null && propValue !== undefined;
|
|
192
192
|
if (hasPropValue && isConstr) {
|
|
193
193
|
const instance = propValue;
|
|
194
|
-
const Constr =
|
|
195
|
-
.map((d) =>
|
|
196
|
-
if (typeof d === "function" && !d.name)
|
|
197
|
-
d = d();
|
|
198
|
-
return Model.get(d.name || d);
|
|
199
|
-
})
|
|
194
|
+
const Constr = designTypes
|
|
195
|
+
.map((d) => Model.get(d.name || d))
|
|
200
196
|
.find((d) => !!d);
|
|
197
|
+
const designTypeNames = designTypes.map((d) => {
|
|
198
|
+
if (typeof d === "function")
|
|
199
|
+
return d.name ? d.name.toLowerCase() : d()?.name.toLowerCase();
|
|
200
|
+
return d.toLowerCase();
|
|
201
|
+
});
|
|
201
202
|
// Ensure instance is of the expected model class.
|
|
202
|
-
if (!Constr || !(
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
203
|
+
if (!Constr || !(propValue instanceof Constr)) {
|
|
204
|
+
if (designTypeNames.includes(typeof propValue)) {
|
|
205
|
+
// do nothing
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
// If types don't match throw an error
|
|
209
|
+
propErrors[ValidationKeys.TYPE] = !Constr
|
|
210
|
+
? `Unable to verify type consistency, missing model registry for ${designTypes.toString()} on prop ${propKey}`
|
|
211
|
+
: `Value must be an instance of ${Constr.name}`;
|
|
212
|
+
delete propErrors[ModelKeys.TYPE]; // remove duplicate type error
|
|
213
|
+
}
|
|
207
214
|
}
|
|
208
215
|
else {
|
|
209
|
-
|
|
216
|
+
const nestedPropsToIgnore = getChildNestedPropsToIgnore(propKey, ...propsToIgnore);
|
|
217
|
+
nestedErrors[propKey] = instance.hasErrors(oldModel[prop], ...nestedPropsToIgnore);
|
|
210
218
|
}
|
|
211
219
|
}
|
|
212
220
|
// Add to the result if we have any errors
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/model/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,EAEL,oBAAoB,EAEpB,SAAS,EACT,oBAAoB,EACpB,UAAU,EACV,cAAc,
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/model/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,7 +68,7 @@ Model.segregate = function segregate(model) {
|
|
|
68
68
|
result.model = Model.build(result.model, model.constructor.name);
|
|
69
69
|
return result;
|
|
70
70
|
};
|
|
71
|
-
Model.pk = function (model, keyValue = false) {
|
|
71
|
+
Model.pk = function pk(model, keyValue = false) {
|
|
72
72
|
if (!model)
|
|
73
73
|
throw new Error("No model was provided");
|
|
74
74
|
const constr = model instanceof Model ? model.constructor : model;
|
|
@@ -83,7 +83,7 @@ Model.pk = function (model, keyValue = false) {
|
|
|
83
83
|
return model[key];
|
|
84
84
|
throw new Error("Cannot get the value of the pk from the constructor");
|
|
85
85
|
}.bind(Model);
|
|
86
|
-
Model.pkProps = function (model) {
|
|
86
|
+
Model.pkProps = function pkProps(model) {
|
|
87
87
|
return Metadata.get(model, Metadata.key(DBKeys.ID, Model.pk(model)));
|
|
88
88
|
}.bind(Model);
|
|
89
89
|
Model.isTransient = function isTransient(model) {
|
|
@@ -113,12 +113,12 @@ Model.merge = function merge(oldModel, newModel, constructor) {
|
|
|
113
113
|
}, {});
|
|
114
114
|
return new constructor(Object.assign({}, extract(oldModel), extract(newModel)));
|
|
115
115
|
}.bind(Model);
|
|
116
|
-
Metadata.saveOperation = function (model, propertyKey, operation, metadata) {
|
|
116
|
+
Metadata.saveOperation = function saveOperation(model, propertyKey, operation, metadata) {
|
|
117
117
|
if (!propertyKey)
|
|
118
118
|
return;
|
|
119
119
|
Metadata.set(model, Metadata.key(ModelOperations.OPERATIONS, propertyKey, operation), metadata);
|
|
120
120
|
}.bind(Metadata);
|
|
121
|
-
Metadata.readOperation = function (model, propertyKey, operation) {
|
|
121
|
+
Metadata.readOperation = function readOperation(model, propertyKey, operation) {
|
|
122
122
|
if (!propertyKey || !operation)
|
|
123
123
|
return;
|
|
124
124
|
return Metadata.get(model, Metadata.key(ModelOperations.OPERATIONS, propertyKey, operation));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../../src/overrides/overrides.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../../src/overrides/overrides.ts"],"names":[],"mappings":"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"}
|
package/lib/index.cjs
CHANGED
|
@@ -34,7 +34,7 @@ __exportStar(require("./validation/index.cjs"), exports);
|
|
|
34
34
|
* @const VERSION
|
|
35
35
|
* @memberOf module:db-decorators
|
|
36
36
|
*/
|
|
37
|
-
exports.VERSION = "0.8.
|
|
37
|
+
exports.VERSION = "0.8.5";
|
|
38
38
|
exports.PACKAGE_NAME = "@decaf-ts/db-decorators";
|
|
39
39
|
decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
|
|
40
40
|
//# sourceMappingURL=index.js.map
|
package/lib/index.d.ts
CHANGED
package/lib/model/validation.cjs
CHANGED
|
@@ -89,12 +89,12 @@ function validateDecorators(newModel, oldModel, prop, decorators, async) {
|
|
|
89
89
|
return String(t).toLowerCase();
|
|
90
90
|
});
|
|
91
91
|
const errs = newValues.map((childValue) => {
|
|
92
|
-
// find by id so the list elements order doesn't matter
|
|
93
|
-
const id = decorator_validation_1.Model.pk(childValue, true);
|
|
94
|
-
if (!id)
|
|
95
|
-
return "Failed to find model id";
|
|
96
|
-
const oldListModel = oldValues.find((el) => id === decorator_validation_1.Model.pk(el, true));
|
|
97
92
|
if (decorator_validation_1.Model.isModel(childValue)) {
|
|
93
|
+
// find by id so the list elements order doesn't matter
|
|
94
|
+
const id = decorator_validation_1.Model.pk(childValue, true);
|
|
95
|
+
if (!id)
|
|
96
|
+
return "Failed to find model id";
|
|
97
|
+
const oldListModel = oldValues.find((el) => id === decorator_validation_1.Model.pk(el, true));
|
|
98
98
|
return childValue.hasErrors(oldListModel);
|
|
99
99
|
}
|
|
100
100
|
return allowedTypes.includes(typeof childValue)
|
|
@@ -169,7 +169,7 @@ function validateCompare(oldModel, newModel, async, ...propsToIgnore) {
|
|
|
169
169
|
for (const { prop, decorators } of ValidatableUpdateProps) {
|
|
170
170
|
const propKey = String(prop);
|
|
171
171
|
const propValue = newModel[prop];
|
|
172
|
-
const { designTypes
|
|
172
|
+
const { designTypes } = decoration_1.Metadata.getPropDesignTypes(newModel.constructor, prop);
|
|
173
173
|
if (!designTypes)
|
|
174
174
|
continue;
|
|
175
175
|
// Handle array or Set types and enforce the presence of @list decorator
|
|
@@ -192,27 +192,35 @@ function validateCompare(oldModel, newModel, async, ...propsToIgnore) {
|
|
|
192
192
|
// TODO: Check validateDecorators method partially working. Complete check pending.
|
|
193
193
|
const propErrors = validateDecorators(newModel, oldModel, propKey, decorators, async) || {};
|
|
194
194
|
// Check for nested model.
|
|
195
|
-
// To prevent unnecessary processing, "propValue" must be defined
|
|
195
|
+
// To prevent unnecessary processing, "propValue" must be defined
|
|
196
196
|
const isConstr = decorator_validation_1.Model.isPropertyModel(newModel, propKey);
|
|
197
197
|
const hasPropValue = propValue !== null && propValue !== undefined;
|
|
198
198
|
if (hasPropValue && isConstr) {
|
|
199
199
|
const instance = propValue;
|
|
200
|
-
const Constr =
|
|
201
|
-
.map((d) =>
|
|
202
|
-
if (typeof d === "function" && !d.name)
|
|
203
|
-
d = d();
|
|
204
|
-
return decorator_validation_1.Model.get(d.name || d);
|
|
205
|
-
})
|
|
200
|
+
const Constr = designTypes
|
|
201
|
+
.map((d) => decorator_validation_1.Model.get(d.name || d))
|
|
206
202
|
.find((d) => !!d);
|
|
203
|
+
const designTypeNames = designTypes.map((d) => {
|
|
204
|
+
if (typeof d === "function")
|
|
205
|
+
return d.name ? d.name.toLowerCase() : d()?.name.toLowerCase();
|
|
206
|
+
return d.toLowerCase();
|
|
207
|
+
});
|
|
207
208
|
// Ensure instance is of the expected model class.
|
|
208
|
-
if (!Constr || !(
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
209
|
+
if (!Constr || !(propValue instanceof Constr)) {
|
|
210
|
+
if (designTypeNames.includes(typeof propValue)) {
|
|
211
|
+
// do nothing
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
// If types don't match throw an error
|
|
215
|
+
propErrors[decorator_validation_1.ValidationKeys.TYPE] = !Constr
|
|
216
|
+
? `Unable to verify type consistency, missing model registry for ${designTypes.toString()} on prop ${propKey}`
|
|
217
|
+
: `Value must be an instance of ${Constr.name}`;
|
|
218
|
+
delete propErrors[decorator_validation_1.ModelKeys.TYPE]; // remove duplicate type error
|
|
219
|
+
}
|
|
213
220
|
}
|
|
214
221
|
else {
|
|
215
|
-
|
|
222
|
+
const nestedPropsToIgnore = (0, decorator_validation_1.getChildNestedPropsToIgnore)(propKey, ...propsToIgnore);
|
|
223
|
+
nestedErrors[propKey] = instance.hasErrors(oldModel[prop], ...nestedPropsToIgnore);
|
|
216
224
|
}
|
|
217
225
|
}
|
|
218
226
|
// Add to the result if we have any errors
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/model/validation.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/model/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,7 +70,7 @@ decorator_validation_1.Model.segregate = function segregate(model) {
|
|
|
70
70
|
result.model = decorator_validation_1.Model.build(result.model, model.constructor.name);
|
|
71
71
|
return result;
|
|
72
72
|
};
|
|
73
|
-
decorator_validation_1.Model.pk = function (model, keyValue = false) {
|
|
73
|
+
decorator_validation_1.Model.pk = function pk(model, keyValue = false) {
|
|
74
74
|
if (!model)
|
|
75
75
|
throw new Error("No model was provided");
|
|
76
76
|
const constr = model instanceof decorator_validation_1.Model ? model.constructor : model;
|
|
@@ -85,7 +85,7 @@ decorator_validation_1.Model.pk = function (model, keyValue = false) {
|
|
|
85
85
|
return model[key];
|
|
86
86
|
throw new Error("Cannot get the value of the pk from the constructor");
|
|
87
87
|
}.bind(decorator_validation_1.Model);
|
|
88
|
-
decorator_validation_1.Model.pkProps = function (model) {
|
|
88
|
+
decorator_validation_1.Model.pkProps = function pkProps(model) {
|
|
89
89
|
return decoration_1.Metadata.get(model, decoration_1.Metadata.key(constants_1.DBKeys.ID, decorator_validation_1.Model.pk(model)));
|
|
90
90
|
}.bind(decorator_validation_1.Model);
|
|
91
91
|
decorator_validation_1.Model.isTransient = function isTransient(model) {
|
|
@@ -115,12 +115,12 @@ decorator_validation_1.Model.merge = function merge(oldModel, newModel, construc
|
|
|
115
115
|
}, {});
|
|
116
116
|
return new constructor(Object.assign({}, extract(oldModel), extract(newModel)));
|
|
117
117
|
}.bind(decorator_validation_1.Model);
|
|
118
|
-
decoration_1.Metadata.saveOperation = function (model, propertyKey, operation, metadata) {
|
|
118
|
+
decoration_1.Metadata.saveOperation = function saveOperation(model, propertyKey, operation, metadata) {
|
|
119
119
|
if (!propertyKey)
|
|
120
120
|
return;
|
|
121
121
|
decoration_1.Metadata.set(model, decoration_1.Metadata.key(constants_2.ModelOperations.OPERATIONS, propertyKey, operation), metadata);
|
|
122
122
|
}.bind(decoration_1.Metadata);
|
|
123
|
-
decoration_1.Metadata.readOperation = function (model, propertyKey, operation) {
|
|
123
|
+
decoration_1.Metadata.readOperation = function readOperation(model, propertyKey, operation) {
|
|
124
124
|
if (!propertyKey || !operation)
|
|
125
125
|
return;
|
|
126
126
|
return decoration_1.Metadata.get(model, decoration_1.Metadata.key(constants_2.ModelOperations.OPERATIONS, propertyKey, operation));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../src/overrides/overrides.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../src/overrides/overrides.ts"],"names":[],"mappings":";;AAAA,yEAIwC;AACxC,0DAAsD;AACtD,qDAA6D;AAC7D,wDAA4C;AAC5C,6DAA0D;AAC1D,uDAA0D;AAI1D,4BAAK,CAAC,SAAS,CAAC,WAAW,GAAG;IAC5B,OAAO,qBAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,4BAAK,CAAC,SAAS,CAAC,SAAS,GAAG,UAE1B,eAAyB,EACzB,GAAG,UAAiB;IAEpB,IAAI,eAAe,IAAI,CAAC,CAAC,eAAe,YAAY,4BAAK,CAAC,EAAE,CAAC;QAC3D,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACpC,eAAe,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAA,+BAAQ,EAAC,IAAI,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC;IAElD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;YACjD,IAAI,YAAY,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrC,OAAO,YAAY,CAAC;YACtB,CAAC;YACD,OAAO,IAAA,4BAAe,EAAC,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC;QACtE,CAAC,CAAQ,CAAC;IACZ,CAAC;IAED,IAAI,IAAI,IAAI,CAAC,eAAe;QAAE,OAAO,IAAW,CAAC;IAEjD,2FAA2F;IAC3F,OAAO,IAAA,4BAAe,EAAC,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF,4BAAK,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS;IAG5C,OAAO,4BAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC;AAED,4BAAa,CAAC,SAAS,GAAG,SAAS,SAAS,CAC3C,KAAQ;IAER,IAAI,CAAC,qBAAQ,CAAC,WAAW,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC1D,MAAM,mBAAmB,GAAG,qBAAQ,CAAC,qBAAqB,CACxD,KAAK,CAAC,WAAkB,CACzB,CAAC;IAEF,MAAM,cAAc,GAAG,qBAAQ,CAAC,GAAG,CACjC,KAAK,CAAC,WAAkB,EACxB,kBAAM,CAAC,SAAS,CACjB,CAAC;IAEF,MAAM,MAAM,GAAG;QACb,KAAK,EAAE,EAAyB;QAChC,SAAS,EAAE,EAAyB;KACrC,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAc,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,2BAAkB,CAC1B,0CAA0C,GAAG,KAAK,CAAC,EAAE,CACtD,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAI,KAA6B,CAAC,GAAG,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,GAAG,4BAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACjE,OAAO,MAA+D,CAAC;AACzE,CAAC,CAAC;AAED,4BAAa,CAAC,EAAE,GAAG,SAAS,EAAE,CAC7B,KAAyB,EACzB,QAAQ,GAAG,KAAK;IAEhB,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,KAAK,YAAY,4BAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;IAClE,MAAM,MAAM,GAAG,qBAAQ,CAAC,GAAG,CAAC,MAAqB,EAAE,kBAAM,CAAC,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,oCAAoC,MAAM,EAAE,IAAI,IAAI,eAAe,EAAE,CACtE,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAY,CAAC;IAC9C,IAAI,CAAC,QAAQ;QAAE,OAAO,GAAG,CAAC;IAC1B,IAAI,KAAK,YAAY,4BAAK;QAAE,OAAO,KAAK,CAAC,GAAc,CAAC,CAAC;IACzD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;AACzE,CAAC,CAAC,IAAI,CAAC,4BAAK,CAAC,CAAC;AAEb,4BAAa,CAAC,OAAO,GAAG,SAAS,OAAO,CACvC,KAAqB;IAErB,OAAO,qBAAQ,CAAC,GAAG,CACjB,KAAK,EACL,qBAAQ,CAAC,GAAG,CAAC,kBAAM,CAAC,EAAE,EAAE,4BAAK,CAAC,EAAE,CAAC,KAAK,CAAW,CAAC,CACnD,CAAC;AACJ,CAAC,CAAC,IAAI,CAAC,4BAAK,CAAC,CAAC;AAEb,4BAAa,CAAC,WAAW,GAAG,SAAS,WAAW,CAC/C,KAAyB;IAEzB,OAAO,qBAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC,CAAC,IAAI,CAAC,4BAAK,CAAC,CAAC;AAEb,4BAAa,CAAC,QAAQ,GAAG,SAAS,QAAQ,CACzC,KAAyB,EACzB,IAAc;IAEd,MAAM,MAAM,GACV,KAAK,YAAY,4BAAK,CAAC,CAAC,CAAE,KAAK,CAAC,WAA8B,CAAC,CAAC,CAAC,KAAK,CAAC;IACzE,IAAI,IAAI;QACN,OAAO,qBAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,qBAAQ,CAAC,GAAG,CAAC,kBAAM,CAAC,QAAQ,EAAE,IAAc,CAAC,CAAC,CAAC;IAC7E,OAAO,CAAC,CAAC,qBAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAM,CAAC,QAAQ,CAAC,CAAC;AACjD,CAAC,CAAC,IAAI,CAAC,4BAAK,CAAC,CAAC;AAEd;;;;;;;;GAQG;AACF,4BAAa,CAAC,KAAK,GAAG,SAAS,KAAK,CACnC,QAAW,EACX,QAAW,EACX,WAA4B;IAE5B,WAAW,GAAG,WAAW,IAAK,QAAQ,CAAC,WAA8B,CAAC;IACtE,MAAM,OAAO,GAAG,CAAC,KAAQ,EAAE,EAAE,CAC3B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAA0B,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;QACtE,IAAI,OAAO,GAAG,KAAK,WAAW;YAAE,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACjD,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;IAET,OAAO,IAAI,WAAW,CACpB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CACxD,CAAC;AACJ,CAAC,CAAC,IAAI,CAAC,4BAAK,CAAC,CAAC;AAEb,qBAAgB,CAAC,aAAa,GAAG,SAAS,aAAa,CACtD,KAAqB,EACrB,WAAmB,EACnB,SAAiB,EACjB,QAAa;IAEb,IAAI,CAAC,WAAW;QAAE,OAAO;IACzB,qBAAQ,CAAC,GAAG,CACV,KAAK,EACL,qBAAQ,CAAC,GAAG,CAAC,2BAAe,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,EAChE,QAAQ,CACT,CAAC;AACJ,CAAC,CAAC,IAAI,CAAC,qBAAQ,CAAC,CAAC;AAEhB,qBAAgB,CAAC,aAAa,GAAG,SAAS,aAAa,CACtD,KAAqB,EACrB,WAAoB,EACpB,SAAkB;IAElB,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS;QAAE,OAAO;IACvC,OAAO,qBAAQ,CAAC,GAAG,CACjB,KAAK,EACL,qBAAQ,CAAC,GAAG,CAAC,2BAAe,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CACjE,CAAC;AACJ,CAAC,CAAC,IAAI,CAAC,qBAAQ,CAAC,CAAC;AAEhB,qBAAgB,CAAC,WAAW,GAAG,SAAS,WAAW,CAClD,KAAyB;IAEzB,OAAO,CAAC,CAAC,qBAAQ,CAAC,GAAG,CACnB,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAE,KAAK,CAAC,WAAmB,CAAC,CAAC,CAAC,KAAK,EAChE,kBAAM,CAAC,SAAS,CACjB,CAAC;AACJ,CAAC,CAAC,IAAI,CAAC,qBAAQ,CAAC,CAAC;AAEhB,4BAAa,CAAC,SAAS,GAAG,SAAS,SAAS,CAC3C,KAAyB,EACzB,IAAa;IAEb,OAAO,CAAC,CAAC,qBAAQ,CAAC,GAAG,CACnB,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAE,KAAK,CAAC,WAAmB,CAAC,CAAC,CAAC,KAAK,EAChE,qBAAQ,CAAC,GAAG,CAAC,kBAAM,CAAC,SAAS,EAAE,IAAc,CAAC,CAC/C,CAAC;AACJ,CAAC,CAAC,IAAI,CAAC,4BAAK,CAAC,CAAC;AAEb,4BAAa,CAAC,cAAc,GAAG,SAAS,cAAc,CACrD,KAAQ,EACR,IAAa,EACb,GAAiB;IAEjB,OAAO,CACL,CAAC,4BAAK,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;QAC7B,CAAC,GAAG,CAAC,GAAG,CAAC,yBAAyB,CAAC;QACnC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,WAAW,CACnC,CAAC;AACJ,CAAC,CAAC,IAAI,CAAC,4BAAK,CAAC,CAAC"}
|