@decaf-ts/db-decorators 0.8.9 → 0.8.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- var e,t;e=this,t=function(e,t,r,a,o,n){"use strict";const s={REFLECT:r.ModelKeys.MODEL+".persistence.",REPOSITORY:"repository",CLASS:"_class",ID:"id",INDEX:"index",UNIQUE:"unique",SERIALIZE:"serialize",READONLY:"readonly",TIMESTAMP:"timestamp",TRANSIENT:"transient",HASH:"hash",COMPOSED:"composed",GENERATED:"generated",VERSION:"version",ORIGINAL:"__originalObj"},i="_",c="dd/MM/yyyy HH:mm:ss:S",l={ID:{INVALID:"This Id is invalid",REQUIRED:"The Id is mandatory"},READONLY:{INVALID:"This cannot be updated"},TIMESTAMP:{REQUIRED:"Timestamp is Mandatory",DATE:"The Timestamp must the a valid date",INVALID:"This value must always increase"}},d={REFLECT:"db.update.validation.",TIMESTAMP:s.TIMESTAMP,READONLY:s.READONLY};e.ReadOnlyValidator=class extends r.Validator{constructor(){super(l.READONLY.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,a){if(void 0!==e)return r.isEqual(e,t)?void 0:this.getMessage(a||this.message)}},e.ReadOnlyValidator=a.__decorate([r.validator(d.READONLY),a.__metadata("design:paramtypes",[])],e.ReadOnlyValidator),e.TimestampValidator=class extends r.Validator{constructor(){super(l.TIMESTAMP.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,r){if(void 0!==e){r=r||this.getMessage(r||this.message);try{e=new Date(e),t=new Date(t)}catch(e){return r}return e>t?void 0:r}}},e.TimestampValidator=a.__decorate([r.validator(d.TIMESTAMP),a.__metadata("design:paramtypes",[])],e.TimestampValidator);class p extends r.Validator{constructor(e=r.DEFAULT_ERROR_MESSAGES.DEFAULT,...t){super(e,...t)}}var u,f,y;r.Validation.updateKey=e=>d.REFLECT+e,e.OperationKeys=void 0,(u=e.OperationKeys||(e.OperationKeys={})).REFLECT="decaf.model.db.operations.",u.CREATE="create",u.READ="read",u.UPDATE="update",u.DELETE="delete",u.ON="on.",u.AFTER="after.",u.BLOCK="block",e.ModelOperations=void 0,(f=e.ModelOperations||(e.ModelOperations={})).OPERATIONS="operations",f.RELATIONS="relations",e.BulkCrudOperationKeys=void 0,(y=e.BulkCrudOperationKeys||(e.BulkCrudOperationKeys={})).CREATE_ALL="createAll",y.READ_ALL="readAll",y.UPDATE_ALL="updateAll",y.DELETE_ALL="deleteAll";const h={CREATE:[e.OperationKeys.CREATE],READ:[e.OperationKeys.READ],UPDATE:[e.OperationKeys.UPDATE],DELETE:[e.OperationKeys.DELETE],CREATE_UPDATE:[e.OperationKeys.CREATE,e.OperationKeys.UPDATE],READ_CREATE:[e.OperationKeys.READ,e.OperationKeys.CREATE],ALL:[e.OperationKeys.CREATE,e.OperationKeys.READ,e.OperationKeys.UPDATE,e.OperationKeys.DELETE]};class 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)}toString(){return`[${this.name}][${this.code}] ${this.message.replace(/\[.*?Error\]]\s/g,"")}`}}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(e){this.cache=new o.ObjectAccumulator,Object.defineProperty(this,"cache",{value:e?e.cache:new o.ObjectAccumulator,writable:!1,enumerable:!1,configurable:!0})}static{this.factory=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);
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}][${r}] ${t instanceof Error?t.message:t}`),this.code=r,t instanceof Error&&(this.stack=t.stack)}toString(){return`[${this.name}] ${this.code} | ${this.message.replaceAll(/\[.*?Error\]\[\d+\]\s/g,"")}`}}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(e){this.cache=new o.ObjectAccumulator,Object.defineProperty(this,"cache",{value:e?e.cache:new o.ObjectAccumulator,writable:!1,enumerable:!1,configurable:!0})}static{this.factory=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","replace","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","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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"}
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","replaceAll","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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"}
@@ -1,2 +1,2 @@
1
- import{Decoration as e,Metadata as t,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(e,...t){}updateHasErrors(e,t,r){if(void 0!==e)return c(e,t)?void 0:this.getMessage(r||this.message)}};I=P([a(N.READONLY),O("design:paramtypes",[])],I);let x=class extends i{constructor(){super(L.TIMESTAMP.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,r){if(void 0!==e){r=r||this.getMessage(r||this.message);try{e=new Date(e),t=new Date(t)}catch(e){return r}return e>t?void 0:r}}};x=P([a(N.TIMESTAMP),O("design:paramtypes",[])],x);class k extends i{constructor(e=l.DEFAULT,...t){super(e,...t)}}var C,M,j;u.updateKey=e=>N.REFLECT+e,(e=>{e.REFLECT="decaf.model.db.operations.",e.CREATE="create",e.READ="read",e.UPDATE="update",e.DELETE="delete",e.ON="on.",e.AFTER="after.",e.BLOCK="block"})(C||(C={})),(e=>{e.OPERATIONS="operations",e.RELATIONS="relations"})(M||(M={})),(e=>{e.CREATE_ALL="createAll",e.READ_ALL="readAll",e.UPDATE_ALL="updateAll",e.DELETE_ALL="deleteAll"})(j||(j={}));const U={CREATE:[C.CREATE],READ:[C.READ],UPDATE:[C.UPDATE],DELETE:[C.DELETE],CREATE_UPDATE:[C.CREATE,C.UPDATE],READ_CREATE:[C.READ,C.CREATE],ALL:[C.CREATE,C.READ,C.UPDATE,C.DELETE]};class F{constructor(){this.cache={}}get(e,t,r,n){n=n||[];const o=this.resolveOwner(e),s=this.resolveTargetName(e,o);if(s){const e=this.selectHandlers(s,t,r,o);e?.length&&n.unshift(...e)}else if("string"==typeof e||e===Object.prototype||Object.getPrototypeOf(e)===Object.prototype)return n;let a=Object.getPrototypeOf(e);return a?(a.constructor&&a.constructor.name===s&&(a=Object.getPrototypeOf(a)),a?this.get(a,t,r,n):n):n}register(e,t,r,n){const o=r.constructor.name,s=$.getHandlerName(e),a=this.resolveFlavour(r.constructor);this.cache[o]||(this.cache[o]={}),this.cache[o][n]||(this.cache[o][n]={}),this.cache[o][n][t]||(this.cache[o][n][t]={}),this.cache[o][n][t][a]||(this.cache[o][n][t][a]={}),this.cache[o][n][t][a][s]||(this.cache[o][n][t][a][s]=e)}resolveOwner(e){if(e&&"string"!=typeof e)return"function"==typeof e?e:e.constructor}resolveTargetName(e,t){return"string"==typeof e?e:t?.name}resolveFlavour(r){if(!r)return e.defaultFlavour;try{return t.flavourOf(r)}catch{return e.defaultFlavour}}selectHandlers(t,r,n,o){const s=this.cache[t]?.[r]?.[n];if(!s)return;const a=s[this.resolveFlavour(o)]||s[e.defaultFlavour]||this.firstBucket(s);if(!a)return;const i=Object.values(a);return i.length?i:void 0}firstBucket(e){for(const t of Object.values(e))if(t&&Object.keys(t).length)return t}}class ${constructor(){}static getHandlerName(e){return e.name?e.name:d.hash(e.toString())}static key(e){return C.REFLECT+e}static get(e,t,r){return $.registry.get(e,t,r)}static getOpRegistry(){return $.registry||($.registry=new F),$.registry}static register(e,t,r,n){$.getOpRegistry().register(e,t,r,n)}}class H extends Error{constructor(e,t,r){if(t instanceof H)return t;super(`[${e}] ${t instanceof Error?t.message:t}`),this.code=r,t instanceof Error&&(this.stack=t.stack)}toString(){return`[${this.name}][${this.code}] ${this.message.replace(/\[.*?Error\]]\s/g,"")}`}}class V extends H{constructor(e,t=V.name,r=400){super(t,e,r)}}class _ extends V{constructor(e){super(e,_.name,422)}}class G extends H{constructor(e,t=G.name,r=500){super(t,e,r)}}class Y extends G{constructor(e){super(e,Y.name,500)}}class z extends V{constructor(e){super(e,z.name,404)}}class K extends V{constructor(e){super(e,K.name,409)}}const B={priority:50},Q=(e,t,r,n)=>{const o=r.constructor.name;if(!o)throw new G("Could not determine model class");n=n||{},e.props.handlers[o]&&e.props.handlers[o][t]&&(n={...e.props.handlers[o][t],...n});let s=Object.getPrototypeOf(r);return s===Object.prototype?n:(s.constructor.name===o&&(s=Object.getPrototypeOf(s)),Q(e,t,s,n))};function J(e,t,r){const n=[];for(const o in t){const s=t[o];for(const t of s){const{key:s}=t,a=$.get(e,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(t,o,e);if(!i)throw new G("Missing handler arguments for decorators");for(const e of a){const t=i[e.name];if(!t)throw new G("Missing handler arguments for handler "+e.name);const r=t.data;n.push({handler:e,data:[r],prop:[o]})}}}return n}function q(e){const t=e.reduce((e,t)=>{if(!t||!t.data||!t.prop)throw new G("Missing decorator properties or data");if(!t.data[0].group)return e.set(Symbol(),t),e;const r=t.data[0].group;if(e.has(r)){const n=e.get(r);e.set(r,{handler:n.handler,data:[...n.data,...t.data],prop:[...n.prop,...t.prop]})}else e.set(r,{...t});return e},new Map),r=Array.from(t.values());return r.forEach(e=>{const t=e.data.map((t,r)=>({data:t,prop:e.prop[r]}));t.sort((e,t)=>(e.data.groupPriority??50)-(t.data.groupPriority??50)),e.data=t.map(e=>e.data),e.prop=t.map(e=>e.prop)}),r}function Z(e){return e.sort((e,t)=>(e.data[0].priority??50)-(t.data[0].priority??50)),e}function W(e,t,r){return oe(U.CREATE_UPDATE,e,t,r)}function X(e,t,r){return oe(U.UPDATE,e,t,r)}function ee(e,t,r){return oe(U.CREATE,e,t,r)}function te(e,t,r){return oe(U.READ,e,t,r)}function re(e,t,r){return oe(U.DELETE,e,t,r)}function ne(e,t,r){return oe(U.ALL,e,t,r)}function oe(e=U.ALL,t,r,n){return fe(C.ON,e,t,r,n)}function se(e,t,r){return de(U.CREATE_UPDATE,e,t,r)}function ae(e,t,r){return de(U.UPDATE,e,t,r)}function ie(e,t,r){return de(U.CREATE,e,t,r)}function ce(e,t,r){return de(U.READ,e,t,r)}function le(e,t,r){return de(U.DELETE,e,t,r)}function ue(e,t,r){return de(U.ALL,e,t,r)}function de(e=U.ALL,t,r,n){return fe(C.AFTER,e,t,r,n)}function fe(e,o=U.ALL,s,a,i=B){return(c,l)=>{const u=c.constructor.name,d=o.reduce((n,o)=>{const d=e+o;let f=t.readOperation(c.constructor,l,d);f||(f={operation:o,handlers:{}});const p=$.getHandlerName(s);let h=i;if(a){if(Object.keys(a).filter(e=>e in i).length>0)throw new G("Unable to merge groupSort into dataToAdd due to overlaping keys");h={...i,...a}}return f.handlers[u]&&f.handlers[u][l]&&p in f.handlers[u][l]||(f.handlers[u]=f.handlers[u]||{},f.handlers[u][l]=f.handlers[u][l]||{},f.handlers[u][l][p]={data:h},n.push(((e,t)=>(r,n)=>{$.register(t,e,r,n)})(d,s),r(t.key(M.OPERATIONS,l,d),f))),n},[]);return n(...d)(c,l)}}function pe(e,t){return(...r)=>o(e,{args:r,handler:t})}const he=e=>pe(C.REFLECT+C.BLOCK,(e,t)=>e.includes(t))(e),Ee=e=>pe(C.REFLECT+C.BLOCK,e)();function ge(e){return(n,o)=>r(t.key(D.GENERATED,o),e||!0)(n,o)}function ye(e,t,r,n,o){if(void 0===n[r])return;const s=d.hash(n[r]);o&&n[r]===s||(n[r]=s)}function me(){return n(W(ye),r(D.HASH,{}))}function Ae(e,t,r,n){try{const{args:e,type:o,prefix:s,suffix:a,separator:i,filterEmpty:c,hashResult:l}=t,u=e.map(t=>{if(!(t in n))throw new G(`Property ${t} not found to compose from`);if("keys"===o)return t;if(void 0===n[t]){if(c){if(!Array.isArray(c))return;if(c.includes(t))return}throw new G(`Property ${e} does not contain a value to compose from`)}return n[t].toString()}).filter(e=>!c||!!e);s&&u.unshift(s),a&&u.push(a);const f=u.map(e=>"object"==typeof e&&"[object Object]"===e.toString()?JSON.stringify(e):e).join(i);n[r]=l?d.hash(f):f}catch(e){throw new G("Failed to compose value: "+e)}}function Te(o,s=!1,a=S,i=!1,c="values",l="",u="",d={priority:55}){return e.for(D.COMPOSED).define({decorator:(e,o,s,a,c,l,u)=>(d,f)=>{const p={args:e,hashResult:o,separator:s,type:a,prefix:c,suffix:l,filterEmpty:i},h=[ge(D.COMPOSED),W(Ae,p,u),r(t.key(D.COMPOSED,f),p)];return o&&h.push(me()),n(...h)(d,f)},args:[o,s,a,c,l,u,d]}).apply()}function we(e,t=S,r=!1,n=!1,o="",s="",a={priority:55}){return Te(e,n,t,r,"keys",o,s,a)}function Pe(e,t=S,r=!1,n=!1,o="",s="",a={priority:55}){return Te(e,n,t,r,"values",o,s,a)}function Oe(e){return(t,r,n,o,s)=>{if(f.shouldGenerate(o,n,t))try{switch(e){case C.CREATE:o[n]=1;break;case C.UPDATE:if(t.get("applyUpdateValidation")&&s&&o[n]!==s[n])throw new _(`Version mismatch: ${o[n]} !== ${s[n]}`);o[n]++;break;default:throw new G("Invalid operation: "+e)}}catch(e){throw new G("Failed to update version: "+e)}}}function Re(){const t=D.VERSION;return e.for(t).define(ge(D.VERSION),p(Number),ee(Oe(C.CREATE)),X(Oe(C.UPDATE)),r(t,!0)).apply()}function ve(){return e.for(D.TRANSIENT).define((e,n)=>{r(D.TRANSIENT,!0)(e.constructor),r(t.key(D.TRANSIENT,n),{})(e,n)}).apply()}function De(t=L.READONLY.INVALID){const r=D.READONLY,n={message:t,description:"defines the attribute as readOnly",async:!1};return e.for(r).define({decorator:h,args:[De,r,n]}).apply()}async function Se(e,t,r,n){n[r]=e.timestamp}function be(t=U.CREATE_UPDATE,o=b){const s=D.TIMESTAMP,a=u.updateKey(D.TIMESTAMP);return e.for(s).define({decorator:(e,t)=>{const o=[ge(D.TIMESTAMP),E(t,L.TIMESTAMP.DATE),g(L.TIMESTAMP.REQUIRED),r(u.key(D.TIMESTAMP),{operation:e,format:t}),oe(e,Se)];return-1!==e.indexOf(C.UPDATE)?o.push(r(a,{message:L.TIMESTAMP.INVALID})):o.push(De()),n(...o)},args:[t,o]}).apply()}async function Le(e,t,r,n){if(n[r])try{n[r]=JSON.stringify(n[r])}catch(e){throw new Y(`Failed to serialize ${r.toString()} property of model ${n.constructor.name}: e`)}}async function Ne(e,t,r,n){if(n[r]&&"string"==typeof n[r])try{n[r]=JSON.parse(n[r])}catch(e){throw new Y(`Failed to deserialize ${r.toString()} property of model ${n.constructor.name}: ${e}`)}}function Ie(){return n(W(Le),de(U.ALL,Ne),p([String,Object]),o(D.SERIALIZE,{}))}function xe(){return n(g(),De(),(e,n)=>r(t.key(D.ID,n),{})(e,n))}function ke(e,r){const n=[];for(const o in e){if(!Object.prototype.hasOwnProperty.call(e,o)||r.includes(o))continue;const s=t.validationFor(e.constructor,o)||{};n.push({prop:o,decorators:s})}return n}function Ce(e,t,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(e[r],t[r],...a);return y(i,o)}function Me(e,t,r,n,o){const s={};for(const a in n){const i={...n[a],key:a};if(!o&&i.async)continue;let c=Ce(e,t,r,i,o);if(i.key===m.LIST&&(!c||o)){const n=e[r],s=t[r],a=n instanceof Set?[...n]:n,l=s instanceof Set?[...s]:s;if(a?.length){const e=[i.class||i.clazz||i.customTypes].flat().map(e=>((e=(e="function"!=typeof e||e.name?e:e()).name?e.name:e)+"").toLowerCase()),t=a.map(t=>{if(f.isModel(t)){const e=f.pk(t,!0);if(!e)return"Failed to find model id";const r=l.find(t=>e===f.pk(t,!0));return t.hasErrors(r)}return e.includes(typeof t)?void 0:"Value has no validatable type"});if(o)c=Promise.all(t).then(e=>e.every(e=>!e)?void 0:e);else{const e=t.every(e=>!e);c=t.length>0&&!e?t:void 0}}}c&&(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(e=>{const t={};for(let r=0;r<e.length;r++){const n=e[r];void 0!==n&&(t[a[r]]=n)}return Object.keys(t).length>0?t:void 0})}function je(e,r,n,...o){const a=ke(r,o),i={},c={};for(const{prop:l,decorators:u}of a){const a=l+"",d=r[l],{designTypes:p}=t.getPropDesignTypes(r.constructor,l);if(!p)continue;if(p.some(e=>[Array.name,Set.name].includes(e))){if(!u||!Object.keys(u).includes(m.LIST)){i[a]={[m.TYPE]:`Array or Set property '${a}' requires a @list decorator`};continue}if(d&&!(Array.isArray(d)||d instanceof Set)){i[a]={[m.TYPE]:`Property '${l+""}' must be either an Array or a Set`};continue}}const h=Me(r,e,a,u,n)||{},E=f.isPropertyModel(r,a);if(null!=d&&E){const t=d,r=p.map(e=>f.get(e.name||e)).find(e=>!!e),n=p.map(e=>"function"==typeof e?e.name?e.name.toLowerCase():e()?.name.toLowerCase():e.toLowerCase());if(r&&d instanceof r){const r=A(a,...o);c[a]=t.hasErrors(e[l],...r)}else n.includes(typeof d)||(h[m.TYPE]=r?"Value must be an instance of "+r.name:`Unable to verify type consistency, missing model registry for ${p.toString()} on prop ${a}`,delete h[s.TYPE])}(Object.keys(h).length>0||n)&&(i[a]=h),n||Object.entries(c[a]||{}).forEach(([e,t])=>{void 0!==t&&(i[`${a}.${e}`]=t)})}if(!n)return Object.keys(i).length>0?new T(i):void 0;const l=i,u=Object.keys(l),d=Object.values(l);return Promise.allSettled(d).then(async e=>{const t={};for(const[e,r]of Object.entries(c)){const n=await r;n&&Object.entries(n).forEach(([r,n])=>{void 0!==n&&(t[[e,r].join(".")]=n)})}for(let r=0;r<e.length;r++){const n=u[r],o=e[r];"fulfilled"===o.status&&void 0!==o.value?t[n]=o.value:"rejected"===o.status&&(t[n]=o.reason instanceof Error?o.reason.message:(o.reason||"Validation failed")+"")}return Object.keys(t).length>0?new T(t):void 0})}function Ue(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 Fe(e,t,r,n,o,s){const a=$e(r,n,o);if(!a)return;const i=Z(q(J(r,a,o)));for(const o of i){const a=[t,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(e,a)}catch(e){const n=`Failed to execute handler ${o.handler.name} for ${o.prop} on ${r.constructor.name} due to error: ${e}`;if(t.get("breakOnHandlerError"))throw new G(n);t.logger.for(Fe).error(n)}}}function $e(e,r,n){const o=n?.replace(/[.]$/,""),s=t.get(e.constructor,M.OPERATIONS);if(s)return Object.keys(s).reduce((e,t)=>{const n=o?s[t][o]||{}:s[t],a=Object.keys(n).filter(e=>e===r),i=[];for(const e of a)i.push({key:e,props:n[e]});return i&&i.length&&(e||(e={}),e[t]=i),e},void 0)}f.prototype.isTransient=function(){return t.isTransient(this)},f.prototype.hasErrors=function(e,...t){!e||e instanceof f||(t.unshift(e),e=void 0);const r=this.isAsync(),n=w(this,r,...t);return r?Promise.resolve(n).then(n=>n||!e?n:je(e,this,r,...t)):n||!e?n:je(e,this,r,...t)},f.prototype.segregate=function(){return f.segregate(this)},f.segregate=e=>{if(!t.isTransient(e))return{model:e};const r=t.validatableProperties(e.constructor),n=t.get(e.constructor,D.TRANSIENT),o={model:{},transient:{}};for(const t of r)if(Object.keys(n).includes(t)){o.transient=o.transient||{};try{o.transient[t]=e[t]}catch(e){throw new Y(`Failed to serialize transient property ${t}: ${e}`)}}else o.model=o.model||{},o.model[t]=e[t];return o.model=f.build(o.model,e.constructor.name),o},f.pk=((e,r=!1)=>{if(!e)throw Error("No model was provided");const n=e instanceof f?e.constructor:e,o=t.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(e instanceof f)return e[s];throw Error("Cannot get the value of the pk from the constructor")}).bind(f),f.pkProps=(e=>t.get(e,t.key(D.ID,f.pk(e)))).bind(f),f.isTransient=(e=>t.isTransient(e)).bind(f),f.composed=((e,r)=>{const n=e instanceof f?e.constructor:e;return r?t.get(n,t.key(D.COMPOSED,r)):!!t.get(n,D.COMPOSED)}).bind(f),f.merge=((e,t,r)=>{const n=e=>Object.entries(e).reduce((e,[t,r])=>(void 0!==r&&(e[t]=r),e),{});return new(r=r||e.constructor)(Object.assign({},n(e),n(t)))}).bind(f),t.saveOperation=((e,r,n,o)=>{r&&t.set(e,t.key(M.OPERATIONS,r,n),o)}).bind(t),t.readOperation=((e,r,n)=>{if(r&&n)return t.get(e,t.key(M.OPERATIONS,r,n))}).bind(t),t.isTransient=(e=>!!t.get("function"!=typeof e?e.constructor:e,D.TRANSIENT)).bind(t),f.generated=((e,r)=>!!t.get("function"!=typeof e?e.constructor:e,t.key(D.GENERATED,r))).bind(f),f.shouldGenerate=((e,t,r)=>!f.generated(e,t)&&!r.get("allowGenerationOverride")&&void 0!==e[t]).bind(f);const He={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},Ve=e=>(new _e).accumulate(Object.assign({},e,{timestamp:new Date,logger:e.logger||v.get()}));class _e{constructor(e){this.cache=new R,Object.defineProperty(this,"cache",{value:e?e.cache:new R,writable:!1,enumerable:!1,configurable:!0})}static{this.factory=Ve}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 _e.factory(Object.assign({},e.cache,t||{}))}static async from(e,t,r,...n){return _e.factory(Object.assign({},He,t,{operation:e,model:r,logger:t.logger||v.get()}))}static async args(e,t,r,n,o){const s=r.pop();async function a(){return n?n.context(e,o||{},t,...r):_e.from(e,o||{},t,...r)}let i;return s?s instanceof _e?(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 Ge(e,t,r,n){const o=n||t.name;e[o]=new Proxy(e[o],{apply:async(e,t,n)=>{let o=r.call(t,...n);return o instanceof Promise&&(o=await o),o=e.call(t,...o),o instanceof Promise&&(o=await o),o}})}function Ye(e,t,r,n){const o=n||t.name;e[o]=new Proxy(e[o],{apply:async(e,t,n)=>{let o=e.call(t,...n);return o instanceof Promise&&(o=await o),o=r.call(t,...o),o instanceof Promise&&(o=await o),o}})}function ze(e,t,r,n,o){const s=o||r.name;e[s]=new Proxy(e[s],{apply:async(e,r,o)=>{let s=t.call(r,...o);s instanceof Promise&&(s=await s);const a=s[s.length-1];if(!(a instanceof _e))throw new G("Missing a context");let i=e.call(r,...s);return i instanceof Promise&&(i=await i),i=n.call(r,i,a),i instanceof Promise&&(i=await i),i}})}function Ke(e,t,r,n,o){const s=o||r.name;e[s]=new Proxy(e[s],{apply:async(e,r,o)=>{let s=t.call(r,...o);s instanceof Promise&&(s=await s);const a=s.pop(),i=s[s.length-1];if(!(i instanceof _e))throw new G("Missing a context");if(i.get("applyUpdateValidation")&&!i.get("ignoreDevSafeGuards")&&!(a instanceof f)&&(!Array.isArray(a)||!a.every(e=>e instanceof f)))throw new G("No previous versions os models found");let c=e.call(r,...s);return c instanceof Promise&&(c=await c),c=n.call(r,c,a,i),c instanceof Promise&&(c=await c),c}})}class Be{get class(){if(!this._class)throw new G("No class definition found for this repository");return this._class}get pk(){return f.pk(this.class)}get pkProps(){return f.pkProps(this.class)}constructor(e){e&&(this._class=e);const t=this;[this.create,this.read,this.delete].forEach(e=>{const r=e.name;ze(t,t[r+"Prefix"],e,t[r+"Suffix"])}),Ke(t,t[this.update.name+"Prefix"],this.update,t[this.update.name+"Suffix"])}async createAll(e,...t){return Promise.all(e.map(e=>this.create(e,...t)))}async createPrefix(e,...t){const r=await _e.args(C.CREATE,this.class,t);if(e=new this.class(e),r.context.get("ignoreHandlers")||await Fe(this,r.context,e,C.CREATE,C.ON),!r.context.get("ignoreValidation")){const t=await Promise.resolve(e.hasErrors());if(t)throw new _(t.toString())}return[e,...r.args]}async createSuffix(e,t){return t.get("ignoreHandlers")||await Fe(this,t,e,C.CREATE,C.AFTER),e}async createAllPrefix(e,...t){const r=await _e.args(C.CREATE,this.class,t),n=r.context.get("ignoreHandlers"),o=r.context.get("ignoreValidation");if(e=await Promise.all(e.map(async e=>{const t=new this.class(e);return n||await Fe(this,r.context,t,C.CREATE,C.ON),t})),!o){const t=Ue(await Promise.all(e.map(e=>Promise.resolve(e.hasErrors()))));if(t)throw new _(t)}return[e,...r.args]}async createAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>Fe(this,t,e,C.CREATE,C.AFTER))),e}async readAll(e,...t){return await Promise.all(e.map(e=>this.read(e,...t)))}async readSuffix(e,t){return t.get("ignoreHandlers")||await Fe(this,t,e,C.READ,C.AFTER),e}async readPrefix(e,...t){const r=await _e.args(C.READ,this.class,t),n=new this.class;return n[this.pk]=e,await Fe(this,r.context,n,C.READ,C.ON),[e,...r.args]}async readAllPrefix(e,...t){const r=await _e.args(C.READ,this.class,t);return await Promise.all(e.map(async e=>{const t=new this.class;return t[this.pk]=e,Fe(this,r.context,t,C.READ,C.ON)})),[e,...r.args]}async readAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>Fe(this,t,e,C.READ,C.AFTER))),e}async updateAll(e,...t){return Promise.all(e.map(e=>this.update(e,...t)))}async updateSuffix(e,t,r){return r.get("ignoreHandlers")||await Fe(this,r,e,C.UPDATE,C.AFTER,t),e}async updatePrefix(e,...t){const r=await _e.args(C.UPDATE,this.class,t),n=r.context,o=r.context.get("ignoreHandlers"),s=r.context.get("ignoreValidation"),a=e[this.pk];if(!a)throw new G("No value for the Id is defined under the property "+this.pk);let i;if(n.get("applyUpdateValidation")&&(i=await this.read(a),n.get("mergeForUpdate")&&(e=f.merge(i,e,this.class))),o||await Fe(this,r.context,e,C.UPDATE,C.ON,i),!s){const t=await Promise.resolve(e.hasErrors(i));if(t)throw new _(t.toString())}return[e,...r.args,i]}async updateAllPrefix(e,...t){const r=await _e.args(C.UPDATE,this.class,t),n=r.context,o=n.get("ignoreHandlers"),s=n.get("ignoreValidation"),a=e.map(e=>{const t=e[this.pk];if(void 0===t)throw new G("No value for the Id is defined under the property "+this.pk);return t});let i;if(n.get("applyUpdateValidation")&&(i=await this.readAll(a,n),n.get("mergeForUpdate")&&(e=e.map((e,t)=>f.merge(i[t],e,this.class)))),o||await Promise.all(e.map((e,t)=>Fe(this,r.context,e,C.UPDATE,C.ON,i?i[t]:void 0))),!s){let t;t=n.get("applyUpdateValidation")?await Promise.all(e.map((e,t)=>Promise.resolve(e.hasErrors(i[t])))):await Promise.resolve(e.map(e=>e.hasErrors()));const r=Ue(t);if(r)throw new _(r)}return[e,...r.args,i]}async updateAllSuffix(e,t,r){if(r.get("applyUpdateValidation")&&!r.get("ignoreDevSafeGuards")&&!t)throw new G("No previous versions of models provided");return r.get("ignoreHandlers")||await Promise.all(e.map((e,n)=>Fe(this,r,e,C.UPDATE,C.AFTER,t?t[n]:void 0))),e}async deleteAll(e,...t){return Promise.all(e.map(e=>this.delete(e,...t)))}async deleteSuffix(e,t){return t.get("ignoreHandlers")||await Fe(this,t,e,C.DELETE,C.AFTER),e}async deletePrefix(e,...t){const r=await _e.args(C.DELETE,this.class,t),n=await this.read(e,...r.args);return await Fe(this,r.context,n,C.DELETE,C.ON),[e,...r.args]}async deleteAllPrefix(e,...t){const r=await _e.args(C.DELETE,this.class,t),n=await this.readAll(e,...r.args);return await Promise.all(n.map(async e=>Fe(this,r.context,e,C.DELETE,C.ON))),[e,...r.args]}async deleteAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>Fe(this,t,e,C.DELETE,C.AFTER))),e}toString(){return this.class.name+" Repository"}}const Qe="##VERSION##",Je="##PACKAGE##";t.registerLibrary(Je,Qe);export{V as BadRequestError,H as BaseError,Ee as BlockOperationIf,he as BlockOperations,j as BulkCrudOperationKeys,K as ConflictError,_e as Context,D as DBKeys,U as DBOperations,L as DEFAULT_ERROR_MESSAGES,b as DEFAULT_TIMESTAMP_FORMAT,Ve as DefaultContextFactory,He as DefaultRepositoryFlags,S as DefaultSeparator,G as InternalError,M as ModelOperations,z as NotFoundError,C as OperationKeys,$ as Operations,F as OperationsRegistry,Je as PACKAGE_NAME,I as ReadOnlyValidator,Be as Repository,Y as SerializationError,x as TimestampValidator,N as UpdateValidationKeys,k as UpdateValidator,Qe as VERSION,_ as ValidationError,de as after,ue as afterAny,ie as afterCreate,se as afterCreateUpdate,le as afterDelete,ce as afterRead,ae as afterUpdate,Pe as composed,Ae as composedFromCreateUpdate,we as composedFromKeys,Fe as enforceDBDecorators,ge as generated,$e as getDbDecorators,Q as getHandlerArgs,J as getHandlersDecorators,ke as getValidatableUpdateProps,q as groupDecorators,me as hash,ye as hashOnCreateUpdate,xe as id,oe as on,ne as onAny,ee as onCreate,W as onCreateUpdate,re as onDelete,te as onRead,X as onUpdate,fe as operation,Ge as prefixMethod,De as readonly,Ue as reduceErrorsToPrint,Ie as serialize,Ne as serializeAfterAll,Le as serializeOnCreateUpdate,Z as sortDecorators,pe as storeHandlerMetadata,Ye as suffixMethod,be as timestamp,Se as timestampHandler,ve as transient,je as validateCompare,Ce as validateDecorator,Me as validateDecorators,Re as version,Oe as versionCreateUpdate,ze as wrapMethodWithContext,Ke as wrapMethodWithContextForUpdate};
1
+ import{Decoration as e,Metadata as t,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(e,...t){}updateHasErrors(e,t,r){if(void 0!==e)return c(e,t)?void 0:this.getMessage(r||this.message)}};I=P([a(N.READONLY),O("design:paramtypes",[])],I);let x=class extends i{constructor(){super(L.TIMESTAMP.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,r){if(void 0!==e){r=r||this.getMessage(r||this.message);try{e=new Date(e),t=new Date(t)}catch(e){return r}return e>t?void 0:r}}};x=P([a(N.TIMESTAMP),O("design:paramtypes",[])],x);class k extends i{constructor(e=l.DEFAULT,...t){super(e,...t)}}var C,M,j;u.updateKey=e=>N.REFLECT+e,(e=>{e.REFLECT="decaf.model.db.operations.",e.CREATE="create",e.READ="read",e.UPDATE="update",e.DELETE="delete",e.ON="on.",e.AFTER="after.",e.BLOCK="block"})(C||(C={})),(e=>{e.OPERATIONS="operations",e.RELATIONS="relations"})(M||(M={})),(e=>{e.CREATE_ALL="createAll",e.READ_ALL="readAll",e.UPDATE_ALL="updateAll",e.DELETE_ALL="deleteAll"})(j||(j={}));const U={CREATE:[C.CREATE],READ:[C.READ],UPDATE:[C.UPDATE],DELETE:[C.DELETE],CREATE_UPDATE:[C.CREATE,C.UPDATE],READ_CREATE:[C.READ,C.CREATE],ALL:[C.CREATE,C.READ,C.UPDATE,C.DELETE]};class F{constructor(){this.cache={}}get(e,t,r,n){n=n||[];const o=this.resolveOwner(e),s=this.resolveTargetName(e,o);if(s){const e=this.selectHandlers(s,t,r,o);e?.length&&n.unshift(...e)}else if("string"==typeof e||e===Object.prototype||Object.getPrototypeOf(e)===Object.prototype)return n;let a=Object.getPrototypeOf(e);return a?(a.constructor&&a.constructor.name===s&&(a=Object.getPrototypeOf(a)),a?this.get(a,t,r,n):n):n}register(e,t,r,n){const o=r.constructor.name,s=$.getHandlerName(e),a=this.resolveFlavour(r.constructor);this.cache[o]||(this.cache[o]={}),this.cache[o][n]||(this.cache[o][n]={}),this.cache[o][n][t]||(this.cache[o][n][t]={}),this.cache[o][n][t][a]||(this.cache[o][n][t][a]={}),this.cache[o][n][t][a][s]||(this.cache[o][n][t][a][s]=e)}resolveOwner(e){if(e&&"string"!=typeof e)return"function"==typeof e?e:e.constructor}resolveTargetName(e,t){return"string"==typeof e?e:t?.name}resolveFlavour(r){if(!r)return e.defaultFlavour;try{return t.flavourOf(r)}catch{return e.defaultFlavour}}selectHandlers(t,r,n,o){const s=this.cache[t]?.[r]?.[n];if(!s)return;const a=s[this.resolveFlavour(o)]||s[e.defaultFlavour]||this.firstBucket(s);if(!a)return;const i=Object.values(a);return i.length?i:void 0}firstBucket(e){for(const t of Object.values(e))if(t&&Object.keys(t).length)return t}}class ${constructor(){}static getHandlerName(e){return e.name?e.name:d.hash(e.toString())}static key(e){return C.REFLECT+e}static get(e,t,r){return $.registry.get(e,t,r)}static getOpRegistry(){return $.registry||($.registry=new F),$.registry}static register(e,t,r,n){$.getOpRegistry().register(e,t,r,n)}}class H extends Error{constructor(e,t,r){if(t instanceof H)return t;super(`[${e}][${r}] ${t instanceof Error?t.message:t}`),this.code=r,t instanceof Error&&(this.stack=t.stack)}toString(){return`[${this.name}] ${this.code} | ${this.message.replaceAll(/\[.*?Error\]\[\d+\]\s/g,"")}`}}class V extends H{constructor(e,t=V.name,r=400){super(t,e,r)}}class _ extends V{constructor(e){super(e,_.name,422)}}class G extends H{constructor(e,t=G.name,r=500){super(t,e,r)}}class Y extends G{constructor(e){super(e,Y.name,500)}}class z extends V{constructor(e){super(e,z.name,404)}}class K extends V{constructor(e){super(e,K.name,409)}}const B={priority:50},Q=(e,t,r,n)=>{const o=r.constructor.name;if(!o)throw new G("Could not determine model class");n=n||{},e.props.handlers[o]&&e.props.handlers[o][t]&&(n={...e.props.handlers[o][t],...n});let s=Object.getPrototypeOf(r);return s===Object.prototype?n:(s.constructor.name===o&&(s=Object.getPrototypeOf(s)),Q(e,t,s,n))};function J(e,t,r){const n=[];for(const o in t){const s=t[o];for(const t of s){const{key:s}=t,a=$.get(e,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(t,o,e);if(!i)throw new G("Missing handler arguments for decorators");for(const e of a){const t=i[e.name];if(!t)throw new G("Missing handler arguments for handler "+e.name);const r=t.data;n.push({handler:e,data:[r],prop:[o]})}}}return n}function q(e){const t=e.reduce((e,t)=>{if(!t||!t.data||!t.prop)throw new G("Missing decorator properties or data");if(!t.data[0].group)return e.set(Symbol(),t),e;const r=t.data[0].group;if(e.has(r)){const n=e.get(r);e.set(r,{handler:n.handler,data:[...n.data,...t.data],prop:[...n.prop,...t.prop]})}else e.set(r,{...t});return e},new Map),r=Array.from(t.values());return r.forEach(e=>{const t=e.data.map((t,r)=>({data:t,prop:e.prop[r]}));t.sort((e,t)=>(e.data.groupPriority??50)-(t.data.groupPriority??50)),e.data=t.map(e=>e.data),e.prop=t.map(e=>e.prop)}),r}function Z(e){return e.sort((e,t)=>(e.data[0].priority??50)-(t.data[0].priority??50)),e}function W(e,t,r){return oe(U.CREATE_UPDATE,e,t,r)}function X(e,t,r){return oe(U.UPDATE,e,t,r)}function ee(e,t,r){return oe(U.CREATE,e,t,r)}function te(e,t,r){return oe(U.READ,e,t,r)}function re(e,t,r){return oe(U.DELETE,e,t,r)}function ne(e,t,r){return oe(U.ALL,e,t,r)}function oe(e=U.ALL,t,r,n){return fe(C.ON,e,t,r,n)}function se(e,t,r){return de(U.CREATE_UPDATE,e,t,r)}function ae(e,t,r){return de(U.UPDATE,e,t,r)}function ie(e,t,r){return de(U.CREATE,e,t,r)}function ce(e,t,r){return de(U.READ,e,t,r)}function le(e,t,r){return de(U.DELETE,e,t,r)}function ue(e,t,r){return de(U.ALL,e,t,r)}function de(e=U.ALL,t,r,n){return fe(C.AFTER,e,t,r,n)}function fe(e,o=U.ALL,s,a,i=B){return(c,l)=>{const u=c.constructor.name,d=o.reduce((n,o)=>{const d=e+o;let f=t.readOperation(c.constructor,l,d);f||(f={operation:o,handlers:{}});const p=$.getHandlerName(s);let h=i;if(a){if(Object.keys(a).filter(e=>e in i).length>0)throw new G("Unable to merge groupSort into dataToAdd due to overlaping keys");h={...i,...a}}return f.handlers[u]&&f.handlers[u][l]&&p in f.handlers[u][l]||(f.handlers[u]=f.handlers[u]||{},f.handlers[u][l]=f.handlers[u][l]||{},f.handlers[u][l][p]={data:h},n.push(((e,t)=>(r,n)=>{$.register(t,e,r,n)})(d,s),r(t.key(M.OPERATIONS,l,d),f))),n},[]);return n(...d)(c,l)}}function pe(e,t){return(...r)=>o(e,{args:r,handler:t})}const he=e=>pe(C.REFLECT+C.BLOCK,(e,t)=>e.includes(t))(e),Ee=e=>pe(C.REFLECT+C.BLOCK,e)();function ge(e){return(n,o)=>r(t.key(D.GENERATED,o),e||!0)(n,o)}function ye(e,t,r,n,o){if(void 0===n[r])return;const s=d.hash(n[r]);o&&n[r]===s||(n[r]=s)}function me(){return n(W(ye),r(D.HASH,{}))}function Ae(e,t,r,n){try{const{args:e,type:o,prefix:s,suffix:a,separator:i,filterEmpty:c,hashResult:l}=t,u=e.map(t=>{if(!(t in n))throw new G(`Property ${t} not found to compose from`);if("keys"===o)return t;if(void 0===n[t]){if(c){if(!Array.isArray(c))return;if(c.includes(t))return}throw new G(`Property ${e} does not contain a value to compose from`)}return n[t].toString()}).filter(e=>!c||!!e);s&&u.unshift(s),a&&u.push(a);const f=u.map(e=>"object"==typeof e&&"[object Object]"===e.toString()?JSON.stringify(e):e).join(i);n[r]=l?d.hash(f):f}catch(e){throw new G("Failed to compose value: "+e)}}function Te(o,s=!1,a=S,i=!1,c="values",l="",u="",d={priority:55}){return e.for(D.COMPOSED).define({decorator:(e,o,s,a,c,l,u)=>(d,f)=>{const p={args:e,hashResult:o,separator:s,type:a,prefix:c,suffix:l,filterEmpty:i},h=[ge(D.COMPOSED),W(Ae,p,u),r(t.key(D.COMPOSED,f),p)];return o&&h.push(me()),n(...h)(d,f)},args:[o,s,a,c,l,u,d]}).apply()}function we(e,t=S,r=!1,n=!1,o="",s="",a={priority:55}){return Te(e,n,t,r,"keys",o,s,a)}function Pe(e,t=S,r=!1,n=!1,o="",s="",a={priority:55}){return Te(e,n,t,r,"values",o,s,a)}function Oe(e){return(t,r,n,o,s)=>{if(f.shouldGenerate(o,n,t))try{switch(e){case C.CREATE:o[n]=1;break;case C.UPDATE:if(t.get("applyUpdateValidation")&&s&&o[n]!==s[n])throw new _(`Version mismatch: ${o[n]} !== ${s[n]}`);o[n]++;break;default:throw new G("Invalid operation: "+e)}}catch(e){throw new G("Failed to update version: "+e)}}}function Re(){const t=D.VERSION;return e.for(t).define(ge(D.VERSION),p(Number),ee(Oe(C.CREATE)),X(Oe(C.UPDATE)),r(t,!0)).apply()}function ve(){return e.for(D.TRANSIENT).define((e,n)=>{r(D.TRANSIENT,!0)(e.constructor),r(t.key(D.TRANSIENT,n),{})(e,n)}).apply()}function De(t=L.READONLY.INVALID){const r=D.READONLY,n={message:t,description:"defines the attribute as readOnly",async:!1};return e.for(r).define({decorator:h,args:[De,r,n]}).apply()}async function Se(e,t,r,n){n[r]=e.timestamp}function be(t=U.CREATE_UPDATE,o=b){const s=D.TIMESTAMP,a=u.updateKey(D.TIMESTAMP);return e.for(s).define({decorator:(e,t)=>{const o=[ge(D.TIMESTAMP),E(t,L.TIMESTAMP.DATE),g(L.TIMESTAMP.REQUIRED),r(u.key(D.TIMESTAMP),{operation:e,format:t}),oe(e,Se)];return-1!==e.indexOf(C.UPDATE)?o.push(r(a,{message:L.TIMESTAMP.INVALID})):o.push(De()),n(...o)},args:[t,o]}).apply()}async function Le(e,t,r,n){if(n[r])try{n[r]=JSON.stringify(n[r])}catch(e){throw new Y(`Failed to serialize ${r.toString()} property of model ${n.constructor.name}: e`)}}async function Ne(e,t,r,n){if(n[r]&&"string"==typeof n[r])try{n[r]=JSON.parse(n[r])}catch(e){throw new Y(`Failed to deserialize ${r.toString()} property of model ${n.constructor.name}: ${e}`)}}function Ie(){return n(W(Le),de(U.ALL,Ne),p([String,Object]),o(D.SERIALIZE,{}))}function xe(){return n(g(),De(),(e,n)=>r(t.key(D.ID,n),{})(e,n))}function ke(e,r){const n=[];for(const o in e){if(!Object.prototype.hasOwnProperty.call(e,o)||r.includes(o))continue;const s=t.validationFor(e.constructor,o)||{};n.push({prop:o,decorators:s})}return n}function Ce(e,t,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(e[r],t[r],...a);return y(i,o)}function Me(e,t,r,n,o){const s={};for(const a in n){const i={...n[a],key:a};if(!o&&i.async)continue;let c=Ce(e,t,r,i,o);if(i.key===m.LIST&&(!c||o)){const n=e[r],s=t[r],a=n instanceof Set?[...n]:n,l=s instanceof Set?[...s]:s;if(a?.length){const e=[i.class||i.clazz||i.customTypes].flat().map(e=>((e=(e="function"!=typeof e||e.name?e:e()).name?e.name:e)+"").toLowerCase()),t=a.map(t=>{if(f.isModel(t)){const e=f.pk(t,!0);if(!e)return"Failed to find model id";const r=l.find(t=>e===f.pk(t,!0));return t.hasErrors(r)}return e.includes(typeof t)?void 0:"Value has no validatable type"});if(o)c=Promise.all(t).then(e=>e.every(e=>!e)?void 0:e);else{const e=t.every(e=>!e);c=t.length>0&&!e?t:void 0}}}c&&(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(e=>{const t={};for(let r=0;r<e.length;r++){const n=e[r];void 0!==n&&(t[a[r]]=n)}return Object.keys(t).length>0?t:void 0})}function je(e,r,n,...o){const a=ke(r,o),i={},c={};for(const{prop:l,decorators:u}of a){const a=l+"",d=r[l],{designTypes:p}=t.getPropDesignTypes(r.constructor,l);if(!p)continue;if(p.some(e=>[Array.name,Set.name].includes(e))){if(!u||!Object.keys(u).includes(m.LIST)){i[a]={[m.TYPE]:`Array or Set property '${a}' requires a @list decorator`};continue}if(d&&!(Array.isArray(d)||d instanceof Set)){i[a]={[m.TYPE]:`Property '${l+""}' must be either an Array or a Set`};continue}}const h=Me(r,e,a,u,n)||{},E=f.isPropertyModel(r,a);if(null!=d&&E){const t=d,r=p.map(e=>f.get(e.name||e)).find(e=>!!e),n=p.map(e=>"function"==typeof e?e.name?e.name.toLowerCase():e()?.name.toLowerCase():e.toLowerCase());if(r&&d instanceof r){const r=A(a,...o);c[a]=t.hasErrors(e[l],...r)}else n.includes(typeof d)||(h[m.TYPE]=r?"Value must be an instance of "+r.name:`Unable to verify type consistency, missing model registry for ${p.toString()} on prop ${a}`,delete h[s.TYPE])}(Object.keys(h).length>0||n)&&(i[a]=h),n||Object.entries(c[a]||{}).forEach(([e,t])=>{void 0!==t&&(i[`${a}.${e}`]=t)})}if(!n)return Object.keys(i).length>0?new T(i):void 0;const l=i,u=Object.keys(l),d=Object.values(l);return Promise.allSettled(d).then(async e=>{const t={};for(const[e,r]of Object.entries(c)){const n=await r;n&&Object.entries(n).forEach(([r,n])=>{void 0!==n&&(t[[e,r].join(".")]=n)})}for(let r=0;r<e.length;r++){const n=u[r],o=e[r];"fulfilled"===o.status&&void 0!==o.value?t[n]=o.value:"rejected"===o.status&&(t[n]=o.reason instanceof Error?o.reason.message:(o.reason||"Validation failed")+"")}return Object.keys(t).length>0?new T(t):void 0})}function Ue(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 Fe(e,t,r,n,o,s){const a=$e(r,n,o);if(!a)return;const i=Z(q(J(r,a,o)));for(const o of i){const a=[t,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(e,a)}catch(e){const n=`Failed to execute handler ${o.handler.name} for ${o.prop} on ${r.constructor.name} due to error: ${e}`;if(t.get("breakOnHandlerError"))throw new G(n);t.logger.for(Fe).error(n)}}}function $e(e,r,n){const o=n?.replace(/[.]$/,""),s=t.get(e.constructor,M.OPERATIONS);if(s)return Object.keys(s).reduce((e,t)=>{const n=o?s[t][o]||{}:s[t],a=Object.keys(n).filter(e=>e===r),i=[];for(const e of a)i.push({key:e,props:n[e]});return i&&i.length&&(e||(e={}),e[t]=i),e},void 0)}f.prototype.isTransient=function(){return t.isTransient(this)},f.prototype.hasErrors=function(e,...t){!e||e instanceof f||(t.unshift(e),e=void 0);const r=this.isAsync(),n=w(this,r,...t);return r?Promise.resolve(n).then(n=>n||!e?n:je(e,this,r,...t)):n||!e?n:je(e,this,r,...t)},f.prototype.segregate=function(){return f.segregate(this)},f.segregate=e=>{if(!t.isTransient(e))return{model:e};const r=t.validatableProperties(e.constructor),n=t.get(e.constructor,D.TRANSIENT),o={model:{},transient:{}};for(const t of r)if(Object.keys(n).includes(t)){o.transient=o.transient||{};try{o.transient[t]=e[t]}catch(e){throw new Y(`Failed to serialize transient property ${t}: ${e}`)}}else o.model=o.model||{},o.model[t]=e[t];return o.model=f.build(o.model,e.constructor.name),o},f.pk=((e,r=!1)=>{if(!e)throw Error("No model was provided");const n=e instanceof f?e.constructor:e,o=t.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(e instanceof f)return e[s];throw Error("Cannot get the value of the pk from the constructor")}).bind(f),f.pkProps=(e=>t.get(e,t.key(D.ID,f.pk(e)))).bind(f),f.isTransient=(e=>t.isTransient(e)).bind(f),f.composed=((e,r)=>{const n=e instanceof f?e.constructor:e;return r?t.get(n,t.key(D.COMPOSED,r)):!!t.get(n,D.COMPOSED)}).bind(f),f.merge=((e,t,r)=>{const n=e=>Object.entries(e).reduce((e,[t,r])=>(void 0!==r&&(e[t]=r),e),{});return new(r=r||e.constructor)(Object.assign({},n(e),n(t)))}).bind(f),t.saveOperation=((e,r,n,o)=>{r&&t.set(e,t.key(M.OPERATIONS,r,n),o)}).bind(t),t.readOperation=((e,r,n)=>{if(r&&n)return t.get(e,t.key(M.OPERATIONS,r,n))}).bind(t),t.isTransient=(e=>!!t.get("function"!=typeof e?e.constructor:e,D.TRANSIENT)).bind(t),f.generated=((e,r)=>!!t.get("function"!=typeof e?e.constructor:e,t.key(D.GENERATED,r))).bind(f),f.shouldGenerate=((e,t,r)=>!f.generated(e,t)&&!r.get("allowGenerationOverride")&&void 0!==e[t]).bind(f);const He={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},Ve=e=>(new _e).accumulate(Object.assign({},e,{timestamp:new Date,logger:e.logger||v.get()}));class _e{constructor(e){this.cache=new R,Object.defineProperty(this,"cache",{value:e?e.cache:new R,writable:!1,enumerable:!1,configurable:!0})}static{this.factory=Ve}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 _e.factory(Object.assign({},e.cache,t||{}))}static async from(e,t,r,...n){return _e.factory(Object.assign({},He,t,{operation:e,model:r,logger:t.logger||v.get()}))}static async args(e,t,r,n,o){const s=r.pop();async function a(){return n?n.context(e,o||{},t,...r):_e.from(e,o||{},t,...r)}let i;return s?s instanceof _e?(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 Ge(e,t,r,n){const o=n||t.name;e[o]=new Proxy(e[o],{apply:async(e,t,n)=>{let o=r.call(t,...n);return o instanceof Promise&&(o=await o),o=e.call(t,...o),o instanceof Promise&&(o=await o),o}})}function Ye(e,t,r,n){const o=n||t.name;e[o]=new Proxy(e[o],{apply:async(e,t,n)=>{let o=e.call(t,...n);return o instanceof Promise&&(o=await o),o=r.call(t,...o),o instanceof Promise&&(o=await o),o}})}function ze(e,t,r,n,o){const s=o||r.name;e[s]=new Proxy(e[s],{apply:async(e,r,o)=>{let s=t.call(r,...o);s instanceof Promise&&(s=await s);const a=s[s.length-1];if(!(a instanceof _e))throw new G("Missing a context");let i=e.call(r,...s);return i instanceof Promise&&(i=await i),i=n.call(r,i,a),i instanceof Promise&&(i=await i),i}})}function Ke(e,t,r,n,o){const s=o||r.name;e[s]=new Proxy(e[s],{apply:async(e,r,o)=>{let s=t.call(r,...o);s instanceof Promise&&(s=await s);const a=s.pop(),i=s[s.length-1];if(!(i instanceof _e))throw new G("Missing a context");if(i.get("applyUpdateValidation")&&!i.get("ignoreDevSafeGuards")&&!(a instanceof f)&&(!Array.isArray(a)||!a.every(e=>e instanceof f)))throw new G("No previous versions os models found");let c=e.call(r,...s);return c instanceof Promise&&(c=await c),c=n.call(r,c,a,i),c instanceof Promise&&(c=await c),c}})}class Be{get class(){if(!this._class)throw new G("No class definition found for this repository");return this._class}get pk(){return f.pk(this.class)}get pkProps(){return f.pkProps(this.class)}constructor(e){e&&(this._class=e);const t=this;[this.create,this.read,this.delete].forEach(e=>{const r=e.name;ze(t,t[r+"Prefix"],e,t[r+"Suffix"])}),Ke(t,t[this.update.name+"Prefix"],this.update,t[this.update.name+"Suffix"])}async createAll(e,...t){return Promise.all(e.map(e=>this.create(e,...t)))}async createPrefix(e,...t){const r=await _e.args(C.CREATE,this.class,t);if(e=new this.class(e),r.context.get("ignoreHandlers")||await Fe(this,r.context,e,C.CREATE,C.ON),!r.context.get("ignoreValidation")){const t=await Promise.resolve(e.hasErrors());if(t)throw new _(t.toString())}return[e,...r.args]}async createSuffix(e,t){return t.get("ignoreHandlers")||await Fe(this,t,e,C.CREATE,C.AFTER),e}async createAllPrefix(e,...t){const r=await _e.args(C.CREATE,this.class,t),n=r.context.get("ignoreHandlers"),o=r.context.get("ignoreValidation");if(e=await Promise.all(e.map(async e=>{const t=new this.class(e);return n||await Fe(this,r.context,t,C.CREATE,C.ON),t})),!o){const t=Ue(await Promise.all(e.map(e=>Promise.resolve(e.hasErrors()))));if(t)throw new _(t)}return[e,...r.args]}async createAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>Fe(this,t,e,C.CREATE,C.AFTER))),e}async readAll(e,...t){return await Promise.all(e.map(e=>this.read(e,...t)))}async readSuffix(e,t){return t.get("ignoreHandlers")||await Fe(this,t,e,C.READ,C.AFTER),e}async readPrefix(e,...t){const r=await _e.args(C.READ,this.class,t),n=new this.class;return n[this.pk]=e,await Fe(this,r.context,n,C.READ,C.ON),[e,...r.args]}async readAllPrefix(e,...t){const r=await _e.args(C.READ,this.class,t);return await Promise.all(e.map(async e=>{const t=new this.class;return t[this.pk]=e,Fe(this,r.context,t,C.READ,C.ON)})),[e,...r.args]}async readAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>Fe(this,t,e,C.READ,C.AFTER))),e}async updateAll(e,...t){return Promise.all(e.map(e=>this.update(e,...t)))}async updateSuffix(e,t,r){return r.get("ignoreHandlers")||await Fe(this,r,e,C.UPDATE,C.AFTER,t),e}async updatePrefix(e,...t){const r=await _e.args(C.UPDATE,this.class,t),n=r.context,o=r.context.get("ignoreHandlers"),s=r.context.get("ignoreValidation"),a=e[this.pk];if(!a)throw new G("No value for the Id is defined under the property "+this.pk);let i;if(n.get("applyUpdateValidation")&&(i=await this.read(a),n.get("mergeForUpdate")&&(e=f.merge(i,e,this.class))),o||await Fe(this,r.context,e,C.UPDATE,C.ON,i),!s){const t=await Promise.resolve(e.hasErrors(i));if(t)throw new _(t.toString())}return[e,...r.args,i]}async updateAllPrefix(e,...t){const r=await _e.args(C.UPDATE,this.class,t),n=r.context,o=n.get("ignoreHandlers"),s=n.get("ignoreValidation"),a=e.map(e=>{const t=e[this.pk];if(void 0===t)throw new G("No value for the Id is defined under the property "+this.pk);return t});let i;if(n.get("applyUpdateValidation")&&(i=await this.readAll(a,n),n.get("mergeForUpdate")&&(e=e.map((e,t)=>f.merge(i[t],e,this.class)))),o||await Promise.all(e.map((e,t)=>Fe(this,r.context,e,C.UPDATE,C.ON,i?i[t]:void 0))),!s){let t;t=n.get("applyUpdateValidation")?await Promise.all(e.map((e,t)=>Promise.resolve(e.hasErrors(i[t])))):await Promise.resolve(e.map(e=>e.hasErrors()));const r=Ue(t);if(r)throw new _(r)}return[e,...r.args,i]}async updateAllSuffix(e,t,r){if(r.get("applyUpdateValidation")&&!r.get("ignoreDevSafeGuards")&&!t)throw new G("No previous versions of models provided");return r.get("ignoreHandlers")||await Promise.all(e.map((e,n)=>Fe(this,r,e,C.UPDATE,C.AFTER,t?t[n]:void 0))),e}async deleteAll(e,...t){return Promise.all(e.map(e=>this.delete(e,...t)))}async deleteSuffix(e,t){return t.get("ignoreHandlers")||await Fe(this,t,e,C.DELETE,C.AFTER),e}async deletePrefix(e,...t){const r=await _e.args(C.DELETE,this.class,t),n=await this.read(e,...r.args);return await Fe(this,r.context,n,C.DELETE,C.ON),[e,...r.args]}async deleteAllPrefix(e,...t){const r=await _e.args(C.DELETE,this.class,t),n=await this.readAll(e,...r.args);return await Promise.all(n.map(async e=>Fe(this,r.context,e,C.DELETE,C.ON))),[e,...r.args]}async deleteAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>Fe(this,t,e,C.DELETE,C.AFTER))),e}toString(){return this.class.name+" Repository"}}const Qe="##VERSION##",Je="##PACKAGE##";t.registerLibrary(Je,Qe);export{V as BadRequestError,H as BaseError,Ee as BlockOperationIf,he as BlockOperations,j as BulkCrudOperationKeys,K as ConflictError,_e as Context,D as DBKeys,U as DBOperations,L as DEFAULT_ERROR_MESSAGES,b as DEFAULT_TIMESTAMP_FORMAT,Ve as DefaultContextFactory,He as DefaultRepositoryFlags,S as DefaultSeparator,G as InternalError,M as ModelOperations,z as NotFoundError,C as OperationKeys,$ as Operations,F as OperationsRegistry,Je as PACKAGE_NAME,I as ReadOnlyValidator,Be as Repository,Y as SerializationError,x as TimestampValidator,N as UpdateValidationKeys,k as UpdateValidator,Qe as VERSION,_ as ValidationError,de as after,ue as afterAny,ie as afterCreate,se as afterCreateUpdate,le as afterDelete,ce as afterRead,ae as afterUpdate,Pe as composed,Ae as composedFromCreateUpdate,we as composedFromKeys,Fe as enforceDBDecorators,ge as generated,$e as getDbDecorators,Q as getHandlerArgs,J as getHandlersDecorators,ke as getValidatableUpdateProps,q as groupDecorators,me as hash,ye as hashOnCreateUpdate,xe as id,oe as on,ne as onAny,ee as onCreate,W as onCreateUpdate,re as onDelete,te as onRead,X as onUpdate,fe as operation,Ge as prefixMethod,De as readonly,Ue as reduceErrorsToPrint,Ie as serialize,Ne as serializeAfterAll,Le as serializeOnCreateUpdate,Z as sortDecorators,pe as storeHandlerMetadata,Ye as suffixMethod,be as timestamp,Se as timestampHandler,ve as transient,je as validateCompare,Ce as validateDecorator,Me as validateDecorators,Re as version,Oe as versionCreateUpdate,ze as wrapMethodWithContext,Ke 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","replace","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","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","replaceAll","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":"wmBAQa,MAAAA,EAAS,CACpBC,QAAYC,EAAUC,MAAb,gBACTC,WAAY,aACZC,MAAO,SACPC,GAAI,KACJC,MAAO,QACPC,OAAQ,SACRC,UAAW,YACXC,SAAU,WACVC,UAAW,YACXC,UAAW,YACXC,KAAM,OACNC,SAAU,WACVC,UAAW,YACXC,QAAS,UACTC,SAAU,iBASCC,EAAmB,IAQnBC,EAA2B,wBCtB3BC,EAAyB,CACpCd,GAAI,CACFe,QAAS,qBACTC,SAAU,uBAEZZ,SAAU,CACRW,QAAS,0BAEXV,UAAW,CACTW,SAAU,yBACVC,KAAM,sCACNF,QAAS,oCAcAG,EAAuB,CAClCvB,QAAS,wBACTU,UAAWX,EAAOW,UAClBD,SAAUV,EAAOU,UCfZ,IAAMe,EAAN,cAAgCC,EACrC,WAAAC,GACEC,MAAMR,EAAuBV,SAASW,QACvC,CAUD,SAAAQ,CAAUC,KAAeC,GAExB,CAUM,eAAAC,CACLF,EACAG,EACAC,GAEA,QAAcC,IAAVL,EAEJ,OAAOM,EAAQN,EAAOG,QAClBE,EACAE,KAAKC,WAAWJ,GAAWG,KAAKH,QACrC,GAnCUT,EAAiBc,EAAA,CAD7BC,EAAUhB,EAAqBd,qCACnBe,GCAN,IAAMgB,EAAN,cAAiCf,EACtC,WAAAC,GACEC,MAAMR,EAAuBT,UAAUU,QACxC,CAUD,SAAAQ,CAAUC,KAAeC,GAExB,CAUM,eAAAC,CACLF,EACAG,EACAC,GAEA,QAAcC,IAAVL,EAAJ,CAEAI,EAAUA,GAAWG,KAAKC,WAAWJ,GAAWG,KAAKH,SAErD,IACEJ,EAAQ,IAAIY,KAAKZ,GACjBG,EAAW,IAAIS,KAAKT,EAErB,CAAC,MAAOU,GACP,OAAOT,CACR,CAED,OAAOJ,EAASG,OAAqBE,EAAVD,CAZK,CAajC,GA3CUO,EAAkBF,EAAA,CAD9BC,EAAUhB,EAAqBb,sCACnB8B,GCCP,MAAgBG,UAAwBlB,EAC5C,WAAAC,CACEO,EAAkBW,EAAkBC,WACjCC,GAEHnB,MAAMM,KAAYa,EACnB,MC/BSC,EAkBAC,EAwBAC,ECjCZC,EAAWC,UAAsBC,GACxB7B,EAAqBvB,QAAUoD,EDVxC,CAAYL,IACVA,EAAA,QAAA,6BACAA,EAAA,OAAA,SACAA,EAAA,KAAA,OACAA,EAAA,OAAA,SACAA,EAAA,OAAA,SACAA,EAAA,GAAA,MACAA,EAAA,MAAA,SACAA,EAAA,MAAA,OACD,EATD,CAAYA,IAAAA,EASX,CAAA,IASD,CAAYC,IACVA,EAAA,WAAA,aACAA,EAAA,UAAA,WACD,EAHD,CAAYA,IAAAA,EAGX,CAAA,IAqBD,CAAYC,IACVA,EAAA,WAAA,YACAA,EAAA,SAAA,UACAA,EAAA,WAAA,YACAA,EAAA,WAAA,WACD,EALD,CAAYA,IAAAA,EAKX,CAAA,IAoBY,MAAAI,EAAiD,CAC5DC,OAAQ,CAACP,EAAcO,QACvBC,KAAM,CAACR,EAAcQ,MACrBC,OAAQ,CAACT,EAAcS,QACvBC,OAAQ,CAACV,EAAcU,QACvBC,cAAe,CAACX,EAAcO,OAAQP,EAAcS,QACpDG,YAAa,CAACZ,EAAcQ,KAAMR,EAAcO,QAChDM,IAAK,CACHb,EAAcO,OACdP,EAAcQ,KACdR,EAAcS,OACdT,EAAcU,eErDLI,EAAb,WAAAnC,GACmBU,KAAK0B,MASlB,EAwIL,CA1HC,GAAAC,CACEC,EACAC,EACAC,EACAC,GAEAA,EAAQA,GAAS,GACjB,MAAMC,EAAQhC,KAAKiC,aAAaL,GAC1BM,EAAOlC,KAAKmC,kBAAkBP,EAAQI,GAE5C,GAAIE,EAAM,CACR,MAAME,EAAWpC,KAAKqC,eACpBH,EACAL,EACAC,EACAE,GAEEI,GAAUE,QACZP,EAAMQ,WAAWH,EAEpB,MAAM,GACa,iBAAXR,GACPA,IAAWY,OAAOC,WAClBD,OAAOE,eAAed,KAAYY,OAAOC,UAEzC,OAAOV,EAGT,IAAIY,EAAQH,OAAOE,eAAed,GAClC,OAAKe,GACDA,EAAMrD,aAAeqD,EAAMrD,YAAY4C,OAASA,IAClDS,EAAQH,OAAOE,eAAeC,IAC3BA,EAEE3C,KAAK2B,IAAagB,EAAOd,EAASC,EAAWC,GAFjCA,GAHAA,CAMpB,CAgBD,QAAAa,CACEC,EACAf,EACAF,EACAC,GAEA,MAAMK,EAAON,EAAOtC,YAAY4C,KAC1BY,EAAcC,EAAWC,eAAeH,GACxCI,EAAUjD,KAAKkD,eAAetB,EAAOtC,aAEtCU,KAAK0B,MAAMQ,KAAOlC,KAAK0B,MAAMQ,GAAQ,IACrClC,KAAK0B,MAAMQ,GAAML,KAAU7B,KAAK0B,MAAMQ,GAAML,GAAW,CAAA,GACvD7B,KAAK0B,MAAMQ,GAAML,GAASC,KAC7B9B,KAAK0B,MAAMQ,GAAML,GAASC,GAAa,IACpC9B,KAAK0B,MAAMQ,GAAML,GAASC,GAAWmB,KACxCjD,KAAK0B,MAAMQ,GAAML,GAASC,GAAWmB,GAAW,IAC9CjD,KAAK0B,MAAMQ,GAAML,GAASC,GAAWmB,GAASH,KAClD9C,KAAK0B,MAAMQ,GAAML,GAASC,GAAWmB,GAASH,GAAeD,EAC9D,CAEO,YAAAZ,CACNL,GAEA,GAAKA,GAA4B,iBAAXA,EACtB,MAAsB,mBAAXA,EAA8BA,EAClCA,EAAOtC,WACf,CAEO,iBAAA6C,CACNP,EACAI,GAEA,MAAsB,iBAAXJ,EAA4BA,EAChCI,GAAOE,IACf,CAEO,cAAAgB,CAAetB,GACrB,IAAKA,EAAQ,OAAOuB,EAAWC,eAC/B,IACE,OAAOC,EAASC,UAAU1B,EAC3B,CAAC,MACA,OAAOuB,EAAWC,cACnB,CACF,CAEO,cAAAf,CACNH,EACAL,EACAC,EACAE,GAEA,MAAMuB,EAAcvD,KAAK0B,MAAMQ,KAAQL,KAAWC,GAClD,IAAKyB,EAAa,OAClB,MACMC,EACJD,EAFcvD,KAAKkD,eAAelB,KAGlCuB,EAAYJ,EAAWC,iBACvBpD,KAAKyD,YAAYF,GACnB,IAAKC,EAAQ,OACb,MAAMpB,EAAWI,OAAOkB,OAAOF,GAC/B,OAAOpB,EAASE,OAAUF,OAA2CtC,CACtE,CAEO,WAAA2D,CACNF,GAEA,IAAK,MAAMnB,KAAYI,OAAOkB,OAAOH,GACnC,GAAInB,GAAYI,OAAOmB,KAAKvB,GAAUE,OAAQ,OAAOF,CAGxD,QCjJUW,EAGX,WAAAzD,GAAwB,CAQxB,qBAAO0D,CAAeH,GACpB,OAAIA,EAAQX,KAAaW,EAAQX,KAK1B0B,EAAQC,KAAKhB,EAAQiB,WAC7B,CAQD,UAAO9C,CAAI+C,GACT,OAAOpD,EAAc/C,QAAUmG,CAChC,CAeD,UAAOpC,CACLqC,EACAnC,EACAC,GAEA,OAAOiB,EAAWkB,SAAStC,IAAaqC,EAAYnC,EAASC,EAC9D,CAQO,oBAAOoC,GAEb,OADKnB,EAAWkB,WAAUlB,EAAWkB,SAAW,IAAIxC,GAC7CsB,EAAWkB,QACnB,CAYD,eAAOrB,CACLC,EACAf,EACAF,EACAC,GAEAkB,EAAWmB,gBAAgBtB,SACzBC,EACAf,EACAF,EACAC,EAEH,EChGG,MAAgBsC,UAAkBC,MAGtC,WAAA9E,CAAsB4C,EAAcmC,EAAqBC,GACvD,GAAID,aAAeF,EAAW,OAAOE,EAErC9E,MADgB,IAAI2C,MAASoC,MAASD,aAAeD,MAAQC,EAAIxE,QAAUwE,KAE3ErE,KAAKsE,KAAOA,EACRD,aAAeD,QAAOpE,KAAKuE,MAAQF,EAAIE,MAC5C,CAEQ,QAAAT,GACP,MAAO,IAAI9D,KAAKkC,SAASlC,KAAKsE,UAAUtE,KAAKH,QAAQ2E,WAAW,yBAA0B,KAC3F,EAWG,MAAOC,UAAwBN,EACnC,WAAA7E,CAAY+E,EAAqBnC,EAAOuC,EAAgBvC,KAAMoC,EAAO,KACnE/E,MAAM2C,EAAMmC,EAAKC,EAClB,EAgBG,MAAOI,UAAwBD,EACnC,WAAAnF,CAAY+E,GACV9E,MAAM8E,EAAKK,EAAgBxC,KAAM,IAClC,EAiBG,MAAOyC,UAAsBR,EACjC,WAAA7E,CAAY+E,EAAqBnC,EAAOyC,EAAczC,KAAMoC,EAAO,KACjE/E,MAAM2C,EAAMmC,EAAKC,EAClB,EAiBG,MAAOM,UAA2BD,EACtC,WAAArF,CAAY+E,GACV9E,MAAM8E,EAAKO,EAAmB1C,KAAM,IACrC,EAiBG,MAAO2C,UAAsBJ,EACjC,WAAAnF,CAAY+E,GACV9E,MAAM8E,EAAKQ,EAAc3C,KAAM,IAChC,EAgBG,MAAO4C,UAAsBL,EACjC,WAAAnF,CAAY+E,GACV9E,MAAM8E,EAAKS,EAAc5C,KAAM,IAChC,ECxGH,MAEM6C,EAA8B,CAAEC,SAFd,IA4CXC,EAAiB,CAC5BC,EACAC,EACAC,EACArD,KAEA,MAAMG,EAAOkD,EAAE9F,YAAY4C,KAC3B,IAAKA,EAAM,MAAM,IAAIyC,EAAc,mCACnC5C,EAAQA,GAAS,GAEbmD,EAAIG,MAAMjD,SAASF,IAASgD,EAAIG,MAAMjD,SAASF,GAAMiD,KACvDpD,EAAQ,IAAKmD,EAAIG,MAAMjD,SAASF,GAAMiD,MAAUpD,IAElD,IAAIY,EAAQH,OAAOE,eAAe0C,GAClC,OAAIzC,IAAUH,OAAOC,UAAkBV,GACnCY,EAAMrD,YAAY4C,OAASA,IAAMS,EAAQH,OAAOE,eAAeC,IAE5DsC,EAAeC,EAAKC,EAAMxC,EAAOZ,GAC1C,WAiBgBuD,EAKdC,EACAC,EACAC,GAEA,MAAM1D,EAA2B,GACjC,IAAK,MAAMoD,KAAQK,EAAY,CAC7B,MAAME,EAA4BF,EAAWL,GAC7C,IAAK,MAAMD,KAAOQ,EAAM,CACtB,MAAM1E,IAAEA,GAAQkE,EACV9C,EAAoDW,EAAWpB,IAInE4D,EAAOJ,EAAMM,EAASzE,GACxB,IAAKoB,IAAaA,EAASE,OACzB,MAAM,IAAIqC,EACR,uDAAuDc,EAASzE,oBAAsBmE,KAG1F,MAAMQ,EAAcV,EAAeC,EAAKC,EAAMI,GAC9C,IAAKI,EACH,MAAM,IAAIhB,EAAc,4CAE1B,IAAK,MAAM9B,KAAWT,EAAU,CAC9B,MAAMwD,EAAYD,EAAY9C,EAAQX,MACtC,IAAK0D,EACH,MAAM,IAAIjB,EACR,yCAAyC9B,EAAQX,MAErD,MAAM2D,EAAQD,EAAkCC,KAChD9D,EAAM+D,KAAK,CACTjD,UACAgD,KAAM,CAACA,GACPV,KAAM,CAACA,IAEV,CACF,CACF,CACD,OAAOpD,CACT,CAUM,SAAUgE,EACdP,GAEA,MAAMQ,EAAUR,EAAWS,OACzB,CAACC,EAAKhB,KACJ,IAAKA,IAAQA,EAAIW,OAASX,EAAIC,KAC5B,MAAM,IAAIR,EAAc,wCAG1B,IAAKO,EAAIW,KAAK,GAAGM,MAEf,OADAD,EAAIE,IAAIC,SAAUnB,GACXgB,EAGT,MAAMI,EAAWpB,EAAIW,KAAK,GAAGM,MAE7B,GAAKD,EAAIK,IAAID,GAGN,CACL,MAAME,EAAWN,EAAIvE,IAAI2E,GAEzBJ,EAAIE,IAAIE,EAAU,CAChBzD,QAAS2D,EAAS3D,QAClBgD,KAAM,IAAIW,EAASX,QAASX,EAAIW,MAChCV,KAAM,IAAIqB,EAASrB,QAASD,EAAIC,OAEnC,MATCe,EAAIE,IAAIE,EAAU,IAAKpB,IAWzB,OAAOgB,GAET,IAAIO,KAGAC,EAASC,MAAMC,KAAKZ,EAAQtC,UAiBlC,OAdAgD,EAAOG,QAASV,IACd,MAAMW,EAAWX,EAAMN,KAAKkB,IAAI,CAACC,EAAGC,KAAO,CACzCpB,KAAMmB,EACN7B,KAAMgB,EAAMhB,KAAK8B,MAGnBH,EAASI,KACP,CAACC,EAAGC,KAAOD,EAAEtB,KAAKwB,eAAiB,KAAOD,EAAEvB,KAAKwB,eAAiB,KAGpElB,EAAMN,KAAOiB,EAASC,IAAKO,GAAMA,EAAEzB,MACnCM,EAAMhB,KAAO2B,EAASC,IAAKO,GAAMA,EAAEnC,QAG9BuB,CACT,CAUM,SAAUa,EACd/B,GASA,OANAA,EAAW0B,KAAK,CAACC,EAAGC,KACAD,EAAEtB,KAAK,GAAGb,UAxMR,KAyMFoC,EAAEvB,KAAK,GAAGb,UAzMR,KA6MfQ,CACT,UAYgBgC,EACd3E,EAGAgD,EACA4B,GAEA,OAAOC,GAAGzG,EAAaK,cAAeuB,EAASgD,EAAM4B,EACvD,UAWgBE,EACd9E,EACAgD,EACA4B,GAEA,OAAOC,GAAGzG,EAAaG,OAAQyB,EAASgD,EAAM4B,EAChD,UAWgBG,GACd/E,EACAgD,EACA4B,GAEA,OAAOC,GAAGzG,EAAaC,OAAQ2B,EAASgD,EAAM4B,EAChD,UAYgBI,GACdhF,EACAgD,EACA4B,GAEA,OAAOC,GAAGzG,EAAaE,KAAM0B,EAASgD,EAAM4B,EAC9C,UAYgBK,GACdjF,EACAgD,EACA4B,GAEA,OAAOC,GAAGzG,EAAaI,OAAQwB,EAASgD,EAAM4B,EAChD,UAYgBM,GACdlF,EACAgD,EACA4B,GAEA,OAAOC,GAAGzG,EAAaO,IAAKqB,EAASgD,EAAM4B,EAC7C,CAmBgB,SAAAC,GACdM,EAAsB/G,EAAaO,IACnCqB,EACAgD,EACA4B,GAEA,OAAO3F,GAAUnB,EAAcsH,GAAID,EAAInF,EAASgD,EAAM4B,EACxD,UAWgBS,GACdrF,EAGAgD,EACA4B,GAEA,OAAOU,GAAMlH,EAAaK,cAAeuB,EAASgD,EAAM4B,EAC1D,UAYgBW,GACdvF,EACAgD,EACA4B,GAEA,OAAOU,GAAMlH,EAAaG,OAAQyB,EAASgD,EAAM4B,EACnD,UAYgBY,GACdxF,EACAgD,EACA4B,GAEA,OAAOU,GAAMlH,EAAaC,OAAQ2B,EAASgD,EAAM4B,EACnD,UAYgBa,GACdzF,EACAgD,EACA4B,GAEA,OAAOU,GAAMlH,EAAaE,KAAM0B,EAASgD,EAAM4B,EACjD,UAWgBc,GACd1F,EACAgD,EACA4B,GAEA,OAAOU,GAAMlH,EAAaI,OAAQwB,EAASgD,EAAM4B,EACnD,UAYgBe,GACd3F,EACAgD,EACA4B,GAEA,OAAOU,GAAMlH,EAAaO,IAAKqB,EAASgD,EAAM4B,EAChD,CAmBgB,SAAAU,GACdH,EAAsB/G,EAAaO,IACnCqB,EACAgD,EACA4B,GAEA,OAAO3F,GAAUnB,EAAc8H,MAAOT,EAAInF,EAASgD,EAAM4B,EAC3D,CA8BgB,SAAA3F,GACd4G,EACA5G,EAA6Bb,EAAaO,IAC1CqB,EACA8F,EACAlB,EAAuB1C,GAEvB,MAAO,CAACnD,EAAagH,KACnB,MAAM1G,EAAON,EAAOtC,YAAY4C,KAC1BsD,EAAa1D,EAAUmE,OAAO,CAAClE,EAAciG,KACjD,MAAMa,EAAcH,EAASV,EAC7B,IAAInC,EAAOxC,EAASyF,cAClBlH,EAAOtC,YACPsJ,EACAC,GAEGhD,IACHA,EAAO,CACL/D,UAAWkG,EACX5F,SAAU,CAAE,IAGhB,MAAM2G,EAAahG,EAAWC,eAAeH,GAE7C,IAAImG,EAAYvB,EAEhB,GAAIkB,EAAW,CACb,GAAInG,OAAOmB,KAAKgF,GAAWM,OAAQjI,GAAQA,KAAOyG,GAAWnF,OAAS,EACpE,MAAM,IAAIqC,EACR,mEAGJqE,EAAY,IAAKvB,KAAckB,EAChC,CAsBD,OAnBG9C,EAAKzD,SAASF,IACd2D,EAAKzD,SAASF,GAAM0G,IACnBG,KAAclD,EAAKzD,SAASF,GAAM0G,KAEpC/C,EAAKzD,SAASF,GAAQ2D,EAAKzD,SAASF,IAAS,GAC7C2D,EAAKzD,SAASF,GAAM0G,GAClB/C,EAAKzD,SAASF,GAAM0G,IAAgB,CAAA,EACtC/C,EAAKzD,SAASF,GAAM0G,GAAaG,GAAc,CAC7ClD,KAAMmD,GAERjH,EAAM+D,KA1gBd,EAAgBkC,EAAmBnF,IAC1B,CAACjB,EAAagH,KACnB7F,EAAWH,SAASC,EAASmF,EAAIpG,EAAQgH,IAygBnCM,CAAOL,EAA8BhG,GACrCsG,EACE9F,EAASrC,IAAIJ,EAAgBwI,WAAYR,EAAaC,GACtDhD,KAKC9D,GACN,IACH,OAAOsH,KAAS7D,EAAT6D,CAAqBzH,EAAQgH,GAExC,CAyCgB,SAAAU,GACdtI,EACA6B,GAEA,MAAO,IAAI0G,IACFC,EAASxI,EAAK,CAAEtB,KAAM6J,EAAQ1G,WAEzC,CA0Ba,MAAA4G,GAAmBC,GAC9BJ,GACE3I,EAAc/C,QAAU+C,EAAcgJ,MACtC,CAACD,EAA8B5H,IACtB4H,EAAWE,SAAS9H,GAH/BwH,CAKEI,GA0BSG,GACXhH,GAEAyG,GACE3I,EAAc/C,QAAU+C,EAAcgJ,MACtC9G,EAFFyG,GC3rBI,SAAUQ,GAAUC,GACxB,MAAO,CAAmBnI,EAAgBuD,IACjCgE,EAAa9F,EAASrC,IAAIrD,EAAOe,UAAWyG,GAAO4E,IAAQ,EAA3DZ,CACLvH,EACAuD,EAGN,CAmBM,SAAU6E,GAMdC,EACApE,EACA7E,EACAuE,EACA2E,GAEA,QAA0B,IAAf3E,EAAMvE,GAAsB,OACvC,MAAM6C,EAAOD,EAAQC,KAAM0B,EAAcvE,IACrCkJ,GAAa3E,EAAcvE,KAAS6C,IACxC0B,EAAMvE,GAAO6C,EACf,UASgBA,KACd,OAAOwF,EACL7B,EAAewC,IACfb,EAAaxL,EAAOa,KAAM,CAAE,GAEhC,CAwCM,SAAU2L,GAILF,EAAiCpE,EAAS7E,EAAcuE,GACjE,IACE,MAAM7F,KAAEA,EAAIqK,KAAEA,EAAItE,OAAEA,EAAM2E,OAAEA,EAAMC,UAAEA,EAASC,YAAEA,EAAWC,WAAEA,GAC1D1E,EACI2E,EAAW9K,EACdqH,IAAK0D,IACJ,KAAMA,KAAOlF,GACX,MAAM,IAAIZ,EAAc,YAAY8F,+BACtC,GAAa,SAATV,EAAiB,OAAOU,EAC5B,QAAmC,IAAvBlF,EAAckF,GAAsB,CAC9C,GAAIH,EAAa,CACf,IAAK3D,MAAM+D,QAAQJ,GAAc,OACjC,GAAIA,EAAYV,SAASa,GAAM,MAChC,CACD,MAAM,IAAI9F,EACR,YAAYjF,6CAEf,CACD,OAAS6F,EAAckF,GAAa3G,aAErCmF,OAAQ9B,IAAOmD,KAAgBnD,GAE9B1B,GAAQ+E,EAASjI,QAAQkD,GACzB2E,GAAQI,EAAS1E,KAAKsE,GAE1B,MAAMrG,EAAcyG,EACjBzD,IAAKO,GACgB,iBAANA,GAAmC,oBAAjBA,EAAExD,WAC9B6G,KAAKC,UAAUtD,GACfA,GAELuD,KAAKR,GAEP9E,EAAcvE,GAAOuJ,EAAa3G,EAAQC,KAAKE,GAAOA,CACxD,CAAC,MAAOzD,GACP,MAAM,IAAIqE,EAAc,4BAA4BrE,EACrD,CACH,CAgBA,SAASwK,GACPpL,EACA6K,GAAsB,EACtBF,EAAoBxL,EACpByL,GAAkC,EAClCP,EAA0B,SAC1BtE,EAAS,GACT2E,EAAS,GACT3C,EAAuB,CAAEzC,SAAU,KAgCnC,OAAO7B,EAAW4H,IAAIpN,EAAOc,UAC1BuM,OAAO,CACNC,UAhCJ,CACEvL,EACA6K,EACAF,EACAN,EACAtE,EACA2E,EACA3C,IAEO,CAAqB7F,EAAgBsJ,KAC1C,MAAMrF,EAA6B,CACjCnG,KAAMA,EACN6K,WAAYA,EACZF,UAAWA,EACXN,KAAMA,EACNtE,OAAQA,EACR2E,OAAQA,EACRE,YAAaA,GAGT9E,EAAa,CACjBsE,GAAUnM,EAAOc,UACjB+I,EAAe2C,GAA0BtE,EAAM4B,GAC/C0B,EAAa9F,EAASrC,IAAIrD,EAAOc,SAAUyM,GAAWrF,IAGxD,OADI0E,GAAY/E,EAAWM,KAAKjC,MACzBwF,KAAS7D,EAAT6D,CAAqBzH,EAAQsJ,EACtC,EAMExL,KAAM,CAACA,EAAM6K,EAAYF,EAAWN,EAAMtE,EAAQ2E,EAAQ3C,KAE3D4B,OACL,CAeM,SAAU8B,GACdzL,EACA2K,EAAoBxL,EACpByL,GAAkC,EAClCzG,GAAgB,EAChB4B,EAAS,GACT2E,EAAS,GACT3C,EAAuB,CAAEzC,SAAU,KAEnC,OAAO8F,GACLpL,EACAmE,EACAwG,EACAC,EACA,OACA7E,EACA2E,EACA3C,EAEJ,CAeM,SAAU+C,GACd9K,EACA2K,EAAoBxL,EACpByL,GAAkC,EAClCzG,GAAgB,EAChB4B,EAAS,GACT2E,EAAS,GACT3C,EAAuB,CAAEzC,SAAU,KAEnC,OAAO8F,GACLpL,EACAmE,EACAwG,EACAC,EACA,SACA7E,EACA2E,EACA3C,EAEJ,CAgCM,SAAU2D,GAAoBtJ,GAClC,MAAO,CAMLmI,EACApE,EACA7E,EACAuE,EACA2E,KAEA,GAAKmB,EAAMC,eAAe/F,EAAOvE,EAAKiJ,GACtC,IACE,OAAQnI,GACN,KAAKnB,EAAcO,OAChBqE,EAAcvE,GAAO,EACtB,MACF,KAAKL,EAAcS,OACjB,GACE6I,EAAQtI,IAAI,0BACZuI,GACA3E,EAAMvE,KAASkJ,EAASlJ,GAExB,MAAM,IAAI0D,EACR,qBAAqBa,EAAMvE,UAAYkJ,EAASlJ,MAEnDuE,EAAcvE,KACf,MACF,QACE,MAAM,IAAI2D,EAAc,sBAAsB7C,GAEnD,CAAC,MAAOxB,GACP,MAAM,IAAIqE,EAAc,6BAA6BrE,EACtD,CACH,CACF,UASgBiL,KACd,MAAMvK,EAAMrD,EAAOgB,QACnB,OAAOwE,EAAW4H,IAAI/J,GACnBgK,OACClB,GAAUnM,EAAOgB,SACjBoL,EAAKyB,QACL5D,GAASwD,GAAoBzK,EAAcO,SAC3CyG,EAASyD,GAAoBzK,EAAcS,SAC3C+H,EAAanI,GAAK,IAEnBqI,OACL,UASgBoC,KACd,OAAOtI,EAAW4H,IAAIpN,EAAOY,WAC1ByM,OAAO,CAAmBzF,EAAYmG,KACrCvC,EAAaxL,EAAOY,WAAW,EAA/B4K,CAAqC5D,EAAMjG,aAC3C6J,EAAa9F,EAASrC,IAAIrD,EAAOY,UAAWmN,GAAY,GAAxDvC,CACE5D,EACAmG,EAEJ,GACCrC,OACL,CCrWM,SAAUsC,GACd9L,EAAkBd,EAAuBV,SAASW,SAElD,MAAMgC,EAAMrD,EAAOU,SACbuN,EAAO,CACX/L,QAASA,EACTgM,YAAa,oCACbC,OAAO,GAET,OAAO3I,EAAW4H,IAAI/J,GACnBgK,OAAO,CACNC,UAAWc,EACXrM,KAAM,CAACiM,GAAU3K,EAAK4K,KAEvBvC,OACL,CAiBOyC,eAAeE,GAMpB/B,EACApE,EACA7E,EACAuE,GAECA,EAAcvE,GAAOiJ,EAAQgC,SAChC,CAiDM,SAAUA,GACdnK,EAA6Bb,EAAaK,cAC1C4K,EAAiBpN,GAEjB,MAAMqN,EAAgBxO,EAAOW,UACvB8N,EAAsBtL,EAAWC,UAAUpD,EAAOW,WAsBxD,OAAO6E,EAAW4H,IAAIoB,GACnBnB,OAAO,CACNC,UAtBJ,CAAYnJ,EAA4BoK,KACtC,MAAM1G,EAAoB,CACxBsE,GAAUnM,EAAOW,WACjB+N,EAAKH,EAAQnN,EAAuBT,UAAUY,MAC9CoN,EAASvN,EAAuBT,UAAUW,UAC1CkK,EAAarI,EAAWE,IAAIrD,EAAOW,WAAY,CAC7CwD,UAAWA,EACXoK,OAAQA,IAEVxE,GAAG5F,EAAWkK,KAShB,OAPiD,IAA7ClK,EAAUyK,QAAQ5L,EAAcS,QAClCoE,EAAWM,KACTqD,EAAaiD,EAAqB,CAChCvM,QAASd,EAAuBT,UAAUU,WAG3CwG,EAAWM,KAAK6F,MACdtC,KAAS7D,EACjB,EAIG9F,KAAM,CAACoC,EAAWoK,KAEnB7C,OACL,CAiBOyC,eAAeU,GAMpBvC,EACApE,EACA7E,EACAuE,GAEA,GAAKA,EAAMvE,GACX,IACEuE,EAAMvE,GAAO2J,KAAKC,UAAUrF,EAAMvE,GAEnC,CAAC,MAAOV,GACP,MAAM,IAAIsE,EACR,uBAAuB5D,EAAI8C,gCAAgCyB,EAAMjG,YAAY4C,UAEhF,CACH,CAiBO4J,eAAeW,GAMpBxC,EACApE,EACA7E,EACAuE,GAEA,GAAKA,EAAMvE,IACe,iBAAfuE,EAAMvE,GAEjB,IACEuE,EAAMvE,GAAO2J,KAAK+B,MAAMnH,EAAMvE,GAC/B,CAAC,MAAOV,GACP,MAAM,IAAIsE,EACR,yBAAyB5D,EAAI8C,gCAAgCyB,EAAMjG,YAAY4C,SAAS5B,IAE3F,CACH,UA6BgBqM,KACd,OAAOtD,EACL7B,EAAegF,IACfrE,GAAMlH,EAAaO,IAAKiL,IACxB1C,EAAK,CAAC6C,OAAQpK,SACdgH,EAAS7L,EAAOS,UAAW,CAAE,GAEjC,UCjQgByO,KAOd,OAAOxD,EAAMiD,IAAYX,KALhB,CAAqBpG,EAAeJ,IAClCgE,EAAa9F,EAASrC,IAAIrD,EAAOM,GAAIkH,GAAO,CAAE,EAA9CgE,CAAgD5D,EAAOJ,GAKpE,CCgBgB,SAAA2H,GACdvH,EACAwH,GAEA,MAAMC,EAA6B,GACnC,IAAK,MAAM7H,KAAQI,EAAO,CACxB,IACG/C,OAAOC,UAAUwK,eAAeC,KAAK3H,EAAOJ,IAC7C4H,EAAcnD,SAASzE,GAEvB,SAEF,MAAMK,EACJnC,EAAS8J,cAAc5H,EAAMjG,YAA4B6F,IAAS,GAUpE6H,EAAoBlH,KAAK,CAAEX,OAAMK,cAClC,CAED,OAAOwH,CACT,CAEM,SAAUI,GAIdC,EACAnD,EACA/E,EACA8F,EACAa,GAEA,MAAM3L,EAA6BW,EAAWa,IAC5CsJ,EAAUjK,KAGZ,IAAKb,EACH,MAAUiE,MAAM,yBAAyB6G,EAAUjK,KAIrD,IAAKb,EAAUR,gBAAiB,OAAO2N,OAAqBxN,EAAWgM,GAGvE,IAAKA,GAASb,EAAUa,MAAO,OAAOwB,OAAqBxN,EAAWgM,GAEtE,MAAMyB,EAAiB/K,OAAOkB,OAAOuH,IAAc,CAAA,EAO7CuC,EAAarN,EAAUR,gBAC1B0N,EAAiBlI,GACjB+E,EAAiB/E,MACfoI,GAGL,OAAOD,EAAqBE,EAAY1B,EAC1C,CAEM,SAAU2B,GAIdJ,EACAnD,EACA/E,EACAK,EACAsG,GAEA,MAAM4B,EAAmD,CAAA,EAEzD,IAAK,MAAMC,KAAgBnI,EAAY,CACrC,MAAMyF,EAAY,IAAKzF,EAAWmI,GAAe3M,IAAK2M,GAEtD,IAAK7B,GAASb,EAAUa,MAAO,SAE/B,IAAI8B,EAAmBR,GACrBC,EACAnD,EACA/E,EACA8F,EACAa,GAQF,GAAIb,EAAUjK,MAAQ6M,EAAeC,QAAUF,GAAoB9B,GAAQ,CACzE,MAAMiC,EAAgBV,EAAiBlI,GACjC6I,EAAgB9D,EAAiB/E,GAEjC8I,EACJF,aAAwBG,IAAM,IAAIH,GAAgBA,EAC9CI,EACJH,aAAwBE,IAAM,IAAIF,GAAgBA,EAEpD,GAAIC,GAAW3L,OAAQ,CACrB,MAGM8L,EAAe,CAFnBnD,EAAUoD,OAASpD,EAAUqD,OAASrD,EAAUsD,aAErBC,OAAOzH,IAAK0H,KAEvCA,GADAA,EAAiB,mBAANA,GAAqBA,EAAEvM,KAAauM,EAANA,KAC1BvM,KAAQuM,EAAUvM,KAAOuM,GACjC7B,IAAU8B,eAGbC,EAAOV,EAAUlH,IAAK6H,IAC1B,GAAIvD,EAAMwD,QAAQD,GAAa,CAE7B,MAAM/B,EAAKxB,EAAMyD,GAAGF,GAAmB,GACvC,IAAK/B,EAAI,MAAO,0BAChB,MAAMkC,EAAeZ,EAAUa,KAC5BC,GAAYpC,IAAOxB,EAAMyD,GAAGG,GAAW,IAE1C,OAAOL,EAAWpP,UAAUuP,EAC7B,CACD,OAAOX,EAAaxE,gBAAgBgF,QAChC9O,EACA,kCAGN,GAAIgM,EACF8B,EAAmBsB,QAAQC,IAAIR,GAAMS,KAAM1B,GACxBA,EAAO2B,MAAOC,IAAOA,QACpBxP,EAAY4N,OAE3B,CACL,MAAM6B,EAAWZ,EAAKU,MAAOC,IAA2BA,GACxD1B,EAAmBe,EAAKrM,OAAS,IAAMiN,EAAWZ,OAAO7O,CAC1D,CACF,CACF,CAEG8N,IAAmBF,EAAezC,EAAUjK,KAAO4M,EACxD,CAED,IAAK9B,EACH,OAAOtJ,OAAOmB,KAAK+J,GAAQpL,OAAS,EAAKoL,OAAiB5N,EAE5D,MAAM6D,EAAOnB,OAAOmB,KAAK+J,GACnB8B,EAAWhN,OAAOkB,OAAOgK,GAC/B,OAAOwB,QAAQC,IAAIK,GAAUJ,KAAMK,IACjC,MAAMC,EAA8B,CAAA,EACpC,IAAK,IAAIzI,EAAI,EAAGA,EAAIwI,EAAenN,OAAQ2E,IAAK,CAC9C,MAAM0I,EAAMF,EAAexI,QACfnH,IAAR6P,IACFD,EAAI/L,EAAKsD,IAAM0I,EAElB,CACD,OAAOnN,OAAOmB,KAAK+L,GAAKpN,OAAS,EAAIoN,OAAM5P,GAE/C,CAiCM,SAAU8P,GACd1F,EACAmD,EACAvB,KACGiB,GAEH,MAAM8C,EAAyB/C,GAC7BO,EACAN,GAGIW,EAA8B,CAAA,EAC9BoC,EAAoC,CAAA,EAE1C,IAAK,MAAM3K,KAAEA,EAAIK,WAAEA,KAAgBqK,EAAwB,CACzD,MAAMhO,EAAiBsD,EAAPyH,GACVmD,EAAa1C,EAAiBlI,IAE9B6K,YAAEA,GAAgB3M,EAAS4M,mBAC/B5C,EAAS/N,YACT6F,GAEF,IAAK6K,EAAa,SAGlB,GAAIA,EAAYE,KAAMzB,GAAM,CAAC9H,MAAMzE,KAAMgM,IAAIhM,MAAM0H,SAAS6E,IAAK,CAC/D,IACGjJ,IACAhD,OAAOmB,KAAK6B,GAAYoE,SAASiE,EAAeC,MACjD,CACAJ,EAAO7L,GAAW,CAChB,CAACgM,EAAesC,MAAO,0BAA0BtO,iCAEnD,QACD,CAED,GACEkO,KACEpJ,MAAM+D,QAAQqF,IAAcA,aAAqB7B,KACnD,CACAR,EAAO7L,GAAW,CAChB,CAACgM,EAAesC,MAAO,aAAoBhL,EAAPyH,wCAEtC,QACD,CACF,CAGD,MAAMwD,EACJ3C,GAAmBJ,EAAUnD,EAAUrI,EAAS2D,EAAYsG,IAAU,GAIlEuE,EAAWhF,EAAMiF,gBAAgBjD,EAAUxL,GAGjD,GAFqBkO,SAEDM,EAAU,CAC5B,MAAME,EAAWR,EAEXS,EAASR,EACZjJ,IAAKC,GAAWqE,EAAM1J,IAAIqF,EAAE9E,MAAQ8E,IACpCgI,KAAMhI,KAAaA,GAEhByJ,EAAkBT,EAAYjJ,IAAKC,GACtB,mBAANA,EACFA,EAAE9E,KAAO8E,EAAE9E,KAAKwM,cAAgB1H,KAAK9E,KAAKwM,cAC5C1H,EAAE0H,eAIX,GAAK8B,GAAYT,aAAqBS,EAU/B,CACL,MAAME,EAAsBC,EAC1B9O,KACGkL,GAEL+C,EAAajO,GAAW0O,EAAS/Q,UAC9B0K,EAAiB/E,MACfuL,EAEN,MAlBKD,EAAgB7G,gBAAgBmG,KAIlCK,EAAWvC,EAAesC,MAASK,EAE/B,gCAAgCA,EAAOtO,KADvC,iEAAiE8N,EAAYlM,sBAAsBjC,WAEhGuO,EAAWvS,EAAUsS,MAYjC,EAIG3N,OAAOmB,KAAKyM,GAAY9N,OAAS,GAAKwJ,KACxC4B,EAAO7L,GAAWuO,GAGftE,GACHtJ,OAAOoO,QAAQd,EAAajO,IAAY,CAAA,GAAIgF,QAAQ,EAAE7F,EAAK6P,WAC3C/Q,IAAV+Q,IACFnD,EAAO,GAAG7L,KAAWb,KAAS6P,IAIrC,CAGD,IAAK/E,EACH,OACEtJ,OAAOmB,KAAK+J,GAAQpL,OAAS,EACzB,IAAIwO,EAAqBpD,QACzB5N,EAIR,MAAMiR,EAAcrD,EAEd/J,EAAOnB,OAAOmB,KAAKoN,GACnBvB,EAAWhN,OAAOkB,OAAOqN,GAC/B,OAAO7B,QAAQ8B,WAAWxB,GAAUJ,KAAKtD,MAAOmF,IAC9C,MAAMvD,EAAsB,CAAA,EAE5B,IAAK,MAAOwD,EAAYC,KAAqB3O,OAAOoO,QAAQd,GAAe,CACzE,MAAMsB,QAA6BD,EAK/BC,GACF5O,OAAOoO,QAAQQ,GAAqBvK,QAClC,EAAEwK,EAAYC,WACexR,IAAvBwR,IAEF5D,EADkB,CAACwD,EAAYG,GAAYxG,KAAK,MAC5ByG,IAI7B,CAED,IAAK,IAAIrK,EAAI,EAAGA,EAAIgK,EAAQ3O,OAAQ2E,IAAK,CACvC,MAAMjG,EAAM2C,EAAKsD,GACXyI,EAAMuB,EAAQhK,GAED,cAAfyI,EAAI6B,aAAwCzR,IAAd4P,EAAIjQ,MACnCiO,EAAe1M,GAAO0O,EAAIjQ,MACH,aAAfiQ,EAAI6B,SACZ7D,EAAe1M,GACd0O,EAAI8B,kBAAkBpN,MAClBsL,EAAI8B,OAAO3R,SACJ6P,EAAI8B,QAAU,qBAArB5E,GAET,CAED,OAAOpK,OAAOmB,KAAK+J,GAAQpL,OAAS,EAChC,IAAIwO,EAAqBpD,QACzB5N,GAER,CC/WM,SAAU2R,GACdC,GAEA,OAAOA,EAAOzL,OAAO,CAAClE,EAA2BzB,EAAG2G,KAC9C3G,IACFyB,EACmB,iBAAVA,EACHA,EAAQ,QAAQkF,MAAM3G,EAAEwD,aACxB,MAAMmD,MAAM3G,EAAEwD,cACf/B,QACNjC,EACL,CAeOgM,eAAe6F,GAKpBC,EACA3H,EACA1E,EACAzD,EACA2D,EACAyE,GAEA,MAAM1E,EACJqM,GAAgBtM,EAAOzD,EAAW2D,GAEpC,IAAKD,EAAY,OAEjB,MAEMsM,EAAmBvK,EADCxB,EADAT,EAAsBC,EAAOC,EAAYC,KAInE,IAAK,MAAMP,KAAO4M,EAAkB,CAClC,MAAMpS,EAAc,CAClBuK,EACA/E,EAAIW,KAAKvD,OAAS,EAAI4C,EAAIW,KAAOX,EAAIW,KAAK,GAC1CX,EAAIC,KAAK7C,OAAS,EAAI4C,EAAIC,KAAOD,EAAIC,KAAK,GAC1CI,GAGF,GACE,CAAC5E,EAAcS,OAAQP,EAAsBkR,YAAYnI,SACvD9H,GAEF,CACA,IAAKoI,EACH,MAAM,IAAIvF,EAAc,0CAC1BjF,EAAKoG,KAAKoE,EACX,CACD,UACShF,EAAIrC,QAA4CwG,MACrDuI,EACAlS,EAEH,CAAC,MAAOY,GACP,MAAM+D,EAAM,6BAA6Ba,EAAIrC,QAAQX,YAAYgD,EAAIC,WAAWI,EAAMjG,YAAY4C,sBAAsB5B,IACxH,GAAI2J,EAAQtI,IAAI,uBAAwB,MAAM,IAAIgD,EAAcN,GAChE4F,EAAQ+H,OAAOjH,IAAI4G,IAAqBd,MAAMxM,EAC/C,CACF,CACH,UAYgBwN,GACdtM,EACAzD,EACAmQ,GAEA,MAAMxM,EAASwM,GAAaC,QAAQ,OAAQ,IAEtC1M,EAAanC,EAAS1B,IAC1B4D,EAAMjG,YACNsB,EAAgBwI,YAGlB,GAAK5D,EACL,OAAOhD,OAAOmB,KAAK6B,GAAYS,OAC7B,CAAClE,EAAwDkJ,KACvD,MAAMkH,EAAM1M,EACRD,EAAWyF,GAAWxF,IAAW,CAAE,EACnCD,EAAWyF,GACT/F,EAAM1C,OAAOmB,KAAKwO,GAAKlJ,OAAQjC,GAAWA,IAAMlF,GAChD4D,EAAO,GACb,IAAK,MAAMsB,KAAK9B,EAAKQ,EAAKI,KAAK,CAAE9E,IAAKgG,EAAG3B,MAAO8M,EAAInL,KAMpD,OAJItB,GAAQA,EAAKpD,SACVP,IAAOA,EAAQ,CAAA,GACpBA,EAAMkJ,GAAavF,GAEd3D,QAETjC,EAEJ,CC/HAuL,EAAM5I,UAAU2P,YAAc,WAC5B,OAAO/O,EAAS+O,YAAYpS,KAC9B,EAYAqL,EAAM5I,UAAUjD,UAAY,SAE1B6S,KACGC,IAECD,GAAqBA,aAA2BhH,IAClDiH,EAAW/P,QAAQ8P,GACnBA,OAAkBvS,GAGpB,MAAMgM,EAAQ9L,KAAKuS,UACb5D,EAAO6D,EAASxS,KAAM8L,KAAUwG,GAEtC,OAAIxG,EACKoD,QAAQuD,QAAQ9D,GAAMS,KAAMsD,GAC7BA,IAAiBL,EACZK,EAEF9C,GAAgByC,EAAiBrS,KAAM8L,KAAUwG,IAIxD3D,IAAS0D,EAAwB1D,EAG9BiB,GAAgByC,EAAiBrS,KAAM8L,KAAUwG,EAC1D,EAEAjH,EAAM5I,UAAUkQ,UAAY,WAG1B,OAAOtH,EAAMsH,UAAU3S,KACzB,EAECqL,EAAcsH,UACbpN,IAEA,IAAKlC,EAAS+O,YAAY7M,GAAQ,MAAO,CAAEA,MAAOA,GAClD,MAAMyH,EAAsB3J,EAASuP,sBACnCrN,EAAMjG,aAGFuT,EAAiBxP,EAAS1B,IAC9B4D,EAAMjG,YACN3B,EAAOY,WAGHmP,EAAS,CACbnI,MAAO,CAAyB,EAChCkG,UAAW,CAAyB,GAEtC,IAAK,MAAMzK,KAAOgM,EAEhB,GADoBxK,OAAOmB,KAAKkP,GAAgBjJ,SAAS5I,GACxC,CACf0M,EAAOjC,UAAYiC,EAAOjC,WAAa,CAAA,EACvC,IACEiC,EAAOjC,UAAUzK,GAAOuE,EAAMvE,EAC/B,CAAC,MAAOV,GACP,MAAM,IAAIsE,EACR,0CAA0C5D,MAAQV,IAErD,CACF,MACCoN,EAAOnI,MAAQmI,EAAOnI,OAAS,CAAA,EAC/BmI,EAAOnI,MAAMvE,GAAQuE,EAA8BvE,GAKvD,OADA0M,EAAOnI,MAAQ8F,EAAMyH,MAAMpF,EAAOnI,MAAOA,EAAMjG,YAAY4C,MACpDwL,CACT,EAECrC,EAAcyD,IAAK,CAClBvJ,EACAwN,GAAW,KAEX,IAAKxN,EAAO,MAAUnB,MAAM,yBAC5B,MAAM4O,EAASzN,aAAiB8F,EAAQ9F,EAAMjG,YAAciG,EACtD0N,EAAS5P,EAAS1B,IAAIqR,EAAuBrV,EAAOM,IAC1D,IAAKgV,EACH,MAAU7O,MACR,qCAAoC4O,GAAQ9Q,MAAQ,kBAGxD,MAAMlB,EAAMwB,OAAOmB,KAAKsP,GAAQ,GAChC,IAAKF,EAAU,OAAO/R,EACtB,GAAIuE,aAAiB8F,EAAO,OAAO9F,EAAMvE,GACzC,MAAUoD,MAAM,sDAClB,GAAE8O,KAAK7H,GAENA,EAAc8H,SACb5N,GAEOlC,EAAS1B,IACd4D,EACAlC,EAASrC,IAAIrD,EAAOM,GAAIoN,EAAMyD,GAAGvJ,MAEnC2N,KAAK7H,GAENA,EAAc+G,aACb7M,GAEOlC,EAAS+O,YAAY7M,IAC5B2N,KAAK7H,GAENA,EAAcb,UAAW,CACxBjF,EACAJ,KAEA,MAAM6N,EACJzN,aAAiB8F,EAAS9F,EAAMjG,YAAiCiG,EACnE,OAAIJ,EACK9B,EAAS1B,IAAIqR,EAAQ3P,EAASrC,IAAIrD,EAAOc,SAAU0G,MACnD9B,EAAS1B,IAAIqR,EAAQrV,EAAOc,SACvC,GAAEyU,KAAK7H,GAWNA,EAAc+H,OAAQ,CACrBlJ,EACAmD,EACA/N,KAGA,MAAM+T,EAAW9N,GACf/C,OAAOoO,QAAQrL,GAAOU,OAAO,CAAClE,GAA6Bf,EAAK2O,WAC3C,IAARA,IAAqB5N,EAAMf,GAAO2O,GACtC5N,GACN,CAAE,GAEP,OAAO,IAPPzC,EAAcA,GAAgB4K,EAAS5K,aAQrCkD,OAAO8Q,OAAO,CAAE,EAAED,EAAQnJ,GAAWmJ,EAAQhG,IAEjD,GAAE6F,KAAK7H,GAENhI,EAAiBkQ,eAAgB,CAChChO,EACAqD,EACA9G,EACA0H,KAEKZ,GACLvF,EAAS+C,IACPb,EACAlC,EAASrC,IAAIJ,EAAgBwI,WAAYR,EAAa9G,GACtD0H,EAEJ,GAAE0J,KAAK7P,GAENA,EAAiByF,eAAgB,CAChCvD,EACAqD,EACA9G,KAEA,GAAK8G,GAAgB9G,EACrB,OAAOuB,EAAS1B,IACd4D,EACAlC,EAASrC,IAAIJ,EAAgBwI,WAAYR,EAAa9G,GAE1D,GAAEoR,KAAK7P,GAENA,EAAiB+O,aAChB7M,KAESlC,EAAS1B,IACC,mBAAV4D,EAAwBA,EAAMjG,YAAsBiG,EAC3D5H,EAAOY,YAET2U,KAAK7P,GAENgI,EAAcvB,WAAY,CACzBvE,EACAJ,MAES9B,EAAS1B,IACC,mBAAV4D,EAAwBA,EAAMjG,YAAsBiG,EAC3DlC,EAASrC,IAAIrD,EAAOe,UAAWyG,KAEjC+N,KAAK7H,GAENA,EAAcC,gBAAiB,CAC9B/F,EACAJ,EACAqO,KAGGnI,EAAMvB,UAAUvE,EAAOJ,KACvBqO,EAAI7R,IAAI,iCACc,IAAhB4D,EAAMJ,IAEf+N,KAAK7H,GCvNM,MAAAoI,GAGT,CACFC,mBAAe5T,EACf6T,cAAe,GACfC,4BAA6B,GAC7BC,SAAU,GACVC,gBAAgB,EAChBC,eAAgB,GAChBjS,eAAWhC,EACXkU,qBAAqB,EACrBC,sBAAsB,EACtBC,kBAAkB,EAClBC,gBAAgB,EAChBC,qBAAqB,EACrBC,gBAAgB,EAChBC,uBAAuB,EACvBC,yBAAyB,GCOdC,GAIX/J,IAEO,IAAIgK,IAAaC,WACtBlS,OAAO8Q,OAAO,CAAE,EAAE7I,EAAK,CACrBwB,UAAW,IAAI5L,KACf2R,OAAQvH,EAAIuH,QAAU2C,EAAQhT,eA+DvB8S,GACX,WAAAnV,CAAYkU,GAWHxT,KAAA0B,MACP,IAAIkT,EAXJpS,OAAOqS,eAAe7U,KAAM,QAAS,CACnCP,MAAO+T,EAAMA,EAAW,MAAI,IAAIoB,EAChCE,UAAU,EACVC,YAAY,EACZC,cAAc,GAEjB,QAEMhV,KAAOiV,QAAwBT,EAAsB,CAW5D,UAAAE,CAA6BjV,GAO3B,OANA+C,OAAOqS,eAAe7U,KAAM,QAAS,CACnCP,MAAQO,KAAK0B,MAAiCgT,WAAWjV,GACzDqV,UAAU,EACVC,YAAY,EACZC,cAAc,IAEThV,IACR,CAED,UAAIgS,GACF,OAAQhS,KAAK0B,MAAcsQ,MAC5B,CAED,aAAI/F,GACF,OAAQjM,KAAK0B,MAAcuK,SAC5B,CAOD,GAAAtK,CAAuBX,GACrB,IACE,OAAQhB,KAAK0B,MAAiCC,IAC5CX,EAEH,CAAC,MAAOV,GACP,MAAM4U,EAAUlV,KAAK0B,MAAcgS,cAGnC,GAAIwB,EAAQ,OAAOA,EAAOvT,IAAIX,GAC9B,MAAMV,CACP,CACF,CAKD,gBAAO6U,CACLlL,EACAmL,GAEA,OAAOX,GAAQQ,QACbzS,OAAO8Q,OAAO,CAAA,EAAKrJ,EAAgBvI,MAAO0T,GAAa,CAAE,GAE5D,CAKD,iBAAaxO,CACX9E,EAMAsT,EACA7P,KAEG7F,GAEH,OAAO+U,GAAQQ,QACbzS,OAAO8Q,OAAO,CAAE,EAAEG,GAA2C2B,EAAW,CACtEtT,UAAWA,EACXyD,MAAOA,EACPyM,OAAQoD,EAAUpD,QAAW2C,EAAQhT,QAG1C,CAKD,iBAAajC,CACXoC,EAMAyD,EACA7F,EACA2V,EACAD,GAEA,MAAME,EAAO5V,EAAK6V,MAElBzJ,eAAe0J,IACb,OAAIH,EACKA,EAAWpL,QAAQnI,EAAWsT,GAAa,CAAA,EAAI7P,KAAU7F,GAC3D+U,GAAQ7N,KAAW9E,EAAWsT,GAAa,CAAA,EAAI7P,KAAU7F,EACjE,CAED,IAAI4H,EAeJ,OAdIgO,EACEA,aAAgBb,IAClBnN,EAAIgO,EACJ5V,EAAKoG,KAAKwP,KAEV5V,EAAKoG,KAAKwP,GACVhO,QAAWkO,IACX9V,EAAKoG,KAAKwB,KAGZA,QAAWkO,IACX9V,EAAKoG,KAAKwB,IAGL,CAAE2C,QAAS3C,EAAG5H,KAAMA,EAC5B,EChOG,SAAU+V,GACdtD,EACAhK,EACA1C,EACAiQ,GAEA,MAAMxT,EAAOwT,GAAwBvN,EAAMjG,KAE3CiQ,EAAIjQ,GAAQ,IAAIyT,MAAMxD,EAAIjQ,GAAO,CAC/BmH,MAAOyC,MAAOlK,EAAQgU,EAASC,KAC7B,IAAI5E,EAAUxL,EAAOyH,KAAK0I,KAAYC,GAOtC,OANI5E,aAAmB/B,UAAS+B,QAAgBA,GAEhDA,EAAUrP,EAAOsL,KAAK0I,KAAY3E,GAE9BA,aAAmB/B,UAAS+B,QAAgBA,GAEzCA,IAGb,CAaM,SAAU6E,GACd3D,EACA4D,EACA3L,EACA4L,GAEA,MAAM9T,EAAO8T,GAA0BD,EAAO7T,KAC9CiQ,EAAIjQ,GAAQ,IAAIyT,MAAMxD,EAAIjQ,GAAO,CAC/BmH,MAAOyC,MAAOlK,EAAQgU,EAASC,KAC7B,IAAI5E,EAAUrP,EAAOsL,KAAK0I,KAAYC,GAOtC,OANI5E,aAAmB/B,UAAS+B,QAAgBA,GAEhDA,EAAU7G,EAAO8C,KAAK0I,KAAY3E,GAE9BA,aAAmB/B,UAAS+B,QAAgBA,GAEzCA,IAGb,CAeM,SAAUgF,GACd9D,EACA4D,EACAG,EACA/N,EACAgO,GAEA,MAAMjU,EAAOiU,GAA0BD,EAAOhU,KAC9CiQ,EAAIjQ,GAAQ,IAAIyT,MAAMxD,EAAIjQ,GAAO,CAC/BmH,MAAOyC,MAAOlK,EAAQgU,EAASC,KAC7B,IAAIO,EAAkBL,EAAO7I,KAAK0I,KAAYC,GAC1CO,aAA2BlH,UAC7BkH,QAAwBA,GAC1B,MAAMnM,EAAUmM,EAAgBA,EAAgB9T,OAAS,GACzD,KAAM2H,aAAmBwK,IACvB,MAAM,IAAI9P,EAAc,qBAC1B,IAAIsM,EAAUrP,EAAOsL,KAAK0I,KAAYQ,GAItC,OAHInF,aAAmB/B,UAAS+B,QAAgBA,GAChDA,EAAU9I,EAAM+E,KAAK0I,EAAS3E,EAAShH,GACnCgH,aAAmB/B,UAAS+B,QAAgBA,GACzCA,IAGb,CAEM,SAAUoF,GACdlE,EACA4D,EACAG,EACA/N,EACAgO,GAEA,MAAMjU,EAAOiU,GAA0BD,EAAOhU,KAC9CiQ,EAAIjQ,GAAQ,IAAIyT,MAAMxD,EAAIjQ,GAAO,CAC/BmH,MAAOyC,MAAOlK,EAAQgU,EAASC,KAC7B,IAAIO,EAAkBL,EAAO7I,KAAK0I,KAAYC,GAC1CO,aAA2BlH,UAC7BkH,QAAwBA,GAC1B,MAAMlM,EAAWkM,EAAgBb,MAC3BtL,EAAUmM,EAAgBA,EAAgB9T,OAAS,GACzD,KAAM2H,aAAmBwK,IACvB,MAAM,IAAI9P,EAAc,qBAC1B,GACEsF,EAAQtI,IAAI,2BACXsI,EAAQtI,IAAI,0BACXuI,aAAoBmB,MACpB1E,MAAM+D,QAAQR,KAAcA,EAASmF,MAAOiH,GAAMA,aAAajL,IAEjE,MAAM,IAAI1G,EAAc,wCAG1B,IAAIsM,EAAUrP,EAAOsL,KAAK0I,KAAYQ,GAItC,OAHInF,aAAmB/B,UAAS+B,QAAgBA,GAChDA,EAAU9I,EAAM+E,KAAK0I,EAAS3E,EAAS/G,EAAUD,GAC7CgH,aAAmB/B,UAAS+B,QAAgBA,GACzCA,IAGb,OCnCsBsF,GAapB,SAAI,GACF,IAAKvW,KAAKwW,OACR,MAAM,IAAI7R,EAAc,iDAC1B,OAAO3E,KAAKwW,MACb,CAQD,MAAc1H,GACZ,OAAOzD,EAAMyD,GAAG9O,KAAKqO,MACtB,CAQD,WAAc8E,GACZ,OAAO9H,EAAM8H,QAAQnT,KAAKqO,MAC3B,CAED,WAAA/O,CAAsBgP,GAChBA,IAAOtO,KAAKwW,OAASlI,GAEzB,MAAMmI,EAAOzW,KACb,CAACA,KAAK0W,OAAQ1W,KAAK2W,KAAM3W,KAAK4W,QAAQ/P,QAASzB,IAC7C,MAAMlD,EAAOkD,EAAElD,KACf+T,GACEQ,EACCA,EAAavU,EAAO,UACrBkD,EACCqR,EAAavU,EAAO,aAGzBmU,GACEI,EACCA,EAAazW,KAAK6W,OAAO3U,KAAO,UACjClC,KAAK6W,OACJJ,EAAazW,KAAK6W,OAAO3U,KAAO,UAEpC,CAoBD,eAAM4U,CAAUC,KAAgBrX,GAC9B,OAAOwP,QAAQC,IAAI4H,EAAOhQ,IAAK3B,GAAMpF,KAAK0W,OAAOtR,KAAM1F,IACxD,CAWS,kBAAMsX,CACdzR,KACG7F,GAEH,MAAMuX,QAAoCxC,GAAQ/U,KAChDiB,EAAcO,OACdlB,KAAKqO,MACL3O,GAYF,GAVA6F,EAAQ,IAAIvF,KAAKqO,MAAM9I,GAClB0R,EAAYhN,QAAQtI,IAAI,yBACrBgQ,GACJ3R,KACAiX,EAAYhN,QACZ1E,EACA5E,EAAcO,OACdP,EAAcsH,KAGbgP,EAAYhN,QAAQtI,IAAI,oBAAqB,CAChD,MAAM+P,QAAexC,QAAQuD,QAAQlN,EAAM/F,aAC3C,GAAIkS,EAAQ,MAAM,IAAIhN,EAAgBgN,EAAO5N,WAC9C,CAED,MAAO,CAACyB,KAAU0R,EAAYvX,KAC/B,CAUS,kBAAMwX,CAAa3R,EAAU0E,GASrC,OARKA,EAAQtI,IAAI,yBACTgQ,GACJ3R,KACAiK,EACA1E,EACA5E,EAAcO,OACdP,EAAc8H,OAEXlD,CACR,CAWS,qBAAM4R,CACdJ,KACGrX,GAEH,MAAMuX,QAAoBxC,GAAQ/U,KAChCiB,EAAcO,OACdlB,KAAKqO,MACL3O,GAEIyU,EAAiB8C,EAAYhN,QAAQtI,IAAI,kBACzCyV,EAAiBH,EAAYhN,QAAQtI,IAAI,oBAiB/C,GAfAoV,QAAe7H,QAAQC,IACrB4H,EAAOhQ,IAAI+E,MAAO1G,IAChB,MAAMG,EAAQ,IAAIvF,KAAKqO,MAAMjJ,GAS7B,OARK+O,SACGxC,GACJ3R,KACAiX,EAAYhN,QACZ1E,EACA5E,EAAcO,OACdP,EAAcsH,IAEX1C,MAIN6R,EAAgB,CACnB,MAIM1F,EAASD,SAJgBvC,QAAQC,IACrC4H,EAAOhQ,IAAK3B,GAAM8J,QAAQuD,QAAQrN,EAAE5F,gBAKtC,GAAIkS,EAAQ,MAAM,IAAIhN,EAAgBgN,EACvC,CACD,MAAO,CAACqF,KAAWE,EAAYvX,KAChC,CAUS,qBAAM2X,CAAgBN,EAAa9M,GAa3C,OAZKA,EAAQtI,IAAI,yBACTuN,QAAQC,IACZ4H,EAAOhQ,IAAK3B,GACVuM,GACE3R,KACAiK,EACA7E,EACAzE,EAAcO,OACdP,EAAc8H,SAIfsO,CACR,CAoBD,aAAMO,CAAQ3T,KAA2BjE,GACvC,aAAawP,QAAQC,IAAIxL,EAAKoD,IAAK8F,GAAO7M,KAAK2W,KAAK9J,KAAOnN,IAC5D,CAUS,gBAAM6X,CAAWhS,EAAU0E,GASnC,OARKA,EAAQtI,IAAI,yBACTgQ,GACJ3R,KACAiK,EACA1E,EACA5E,EAAcQ,KACdR,EAAc8H,OAEXlD,CACR,CAWS,gBAAMiS,CACdxW,KACGtB,GAEH,MAAMuX,QAAoBxC,GAAQ/U,KAChCiB,EAAcQ,KACdnB,KAAKqO,MACL3O,GAEI6F,EAAW,IAAIvF,KAAKqO,MAS1B,OARA9I,EAAMvF,KAAK8O,IAAM9N,QACX2Q,GACJ3R,KACAiX,EAAYhN,QACZ1E,EACA5E,EAAcQ,KACdR,EAAcsH,IAET,CAACjH,KAAQiW,EAAYvX,KAC7B,CAWS,mBAAM+X,CACd9T,KACGjE,GAEH,MAAMuX,QAAoBxC,GAAQ/U,KAChCiB,EAAcQ,KACdnB,KAAKqO,MACL3O,GAeF,aAbMwP,QAAQC,IACZxL,EAAKoD,IAAI+E,MAAO4L,IACd,MAAMtS,EAAI,IAAIpF,KAAKqO,MAEnB,OADAjJ,EAAEpF,KAAK8O,IAAM4I,EACN/F,GACL3R,KACAiX,EAAYhN,QACZ7E,EACAzE,EAAcQ,KACdR,EAAcsH,OAIb,CAACtE,KAASsT,EAAYvX,KAC9B,CAUS,mBAAMiY,CAAcZ,EAAa9M,GAazC,OAZKA,EAAQtI,IAAI,yBACTuN,QAAQC,IACZ4H,EAAOhQ,IAAK3B,GACVuM,GACE3R,KACAiK,EACA7E,EACAzE,EAAcQ,KACdR,EAAc8H,SAIfsO,CACR,CAoBD,eAAMa,CAAUb,KAAgBrX,GAC9B,OAAOwP,QAAQC,IAAI4H,EAAOhQ,IAAK3B,GAAMpF,KAAK6W,OAAOzR,KAAM1F,IACxD,CAUS,kBAAMmY,CAAatS,EAAU2E,EAAaD,GAUlD,OATKA,EAAQtI,IAAI,yBACTgQ,GACJ3R,KACAiK,EACA1E,EACA5E,EAAcS,OACdT,EAAc8H,MACdyB,GAEG3E,CACR,CAWS,kBAAMuS,CACdvS,KACG7F,GAEH,MAAMuX,QAAoBxC,GAAQ/U,KAChCiB,EAAcS,OACdpB,KAAKqO,MACL3O,GAGIuK,EAAUgN,EAAYhN,QACtBkK,EAAiB8C,EAAYhN,QAAQtI,IAAI,kBACzCyV,EAAiBH,EAAYhN,QAAQtI,IAAI,oBACzCmN,EAAMvJ,EAAcvF,KAAK8O,IAC/B,IAAKA,EACH,MAAM,IAAInK,EACR,qDAAqD3E,KAAK8O,IAG9D,IAAI5E,EAiBJ,GAhBID,EAAQtI,IAAI,2BACduI,QAAiBlK,KAAK2W,KAAK7H,GACvB7E,EAAQtI,IAAI,oBACd4D,EAAQ8F,EAAM+H,MAAMlJ,EAAU3E,EAAOvF,KAAKqO,SAGzC8F,SACGxC,GACJ3R,KACAiX,EAAYhN,QACZ1E,EACA5E,EAAcS,OACdT,EAAcsH,GACdiC,IAGCkN,EAAgB,CACnB,MAAM1F,QAAexC,QAAQuD,QAAQlN,EAAM/F,UAAU0K,IACrD,GAAIwH,EAAQ,MAAM,IAAIhN,EAAgBgN,EAAO5N,WAC9C,CACD,MAAO,CAACyB,KAAU0R,EAAYvX,KAAMwK,EACrC,CAWS,qBAAM6N,CACdhB,KACGrX,GAEH,MAAMuX,QAAoBxC,GAAQ/U,KAChCiB,EAAcS,OACdpB,KAAKqO,MACL3O,GAGIuK,EAAUgN,EAAYhN,QAEtBkK,EAAiBlK,EAAQtI,IAAI,kBAC7ByV,EAAiBnN,EAAQtI,IAAI,oBAC7BqW,EAAMjB,EAAOhQ,IAAK3B,IACtB,MAAMyH,EAAKzH,EAAEpF,KAAK8O,IAClB,QAAkB,IAAPjC,EACT,MAAM,IAAIlI,EACR,qDAAqD3E,KAAK8O,IAE9D,OAAOjC,IAGT,IAAIoL,EAuBJ,GAtBIhO,EAAQtI,IAAI,2BACdsW,QAAkBjY,KAAKsX,QAAQU,EAAiB/N,GAC5CA,EAAQtI,IAAI,oBACdoV,EAASA,EAAOhQ,IAAI,CAAC3B,EAAG6B,IACtBoE,EAAM+H,MAAO6E,EAAkBhR,GAAI7B,EAAGpF,KAAKqO,UAI5C8F,SACGjF,QAAQC,IACZ4H,EAAOhQ,IAAI,CAAC3B,EAAG6B,IACb0K,GACE3R,KACAiX,EAAYhN,QACZ7E,EACAzE,EAAcS,OACdT,EAAcsH,GACdgQ,EAAYA,EAAUhR,QAAKnH,MAK9BsX,EAAgB,CACnB,IAAIc,EAMFA,EALGjO,EAAQtI,IAAI,+BAKUuN,QAAQC,IAC/B4H,EAAOhQ,IAAI,CAAC3B,EAAG6B,IACbiI,QAAQuD,QAAQrN,EAAE5F,UAAWyY,EAAkBhR,aAN1BiI,QAAQuD,QAC/BsE,EAAOhQ,IAAK3B,GAAMA,EAAE5F,cAUxB,MAAMkS,EAASD,GAAoByG,GAEnC,GAAIxG,EAAQ,MAAM,IAAIhN,EAAgBgN,EACvC,CACD,MAAO,CAACqF,KAAWE,EAAYvX,KAAMuY,EACtC,CAUS,qBAAME,CACdpB,EACAkB,EACAhO,GAEA,GACEA,EAAQtI,IAAI,2BACXsI,EAAQtI,IAAI,yBAERsW,EACH,MAAM,IAAItT,EAAc,2CAe5B,OAbKsF,EAAQtI,IAAI,yBACTuN,QAAQC,IACZ4H,EAAOhQ,IAAI,CAAC3B,EAAG6B,IACb0K,GACE3R,KACAiK,EACA7E,EACAzE,EAAcS,OACdT,EAAc8H,MACdwP,EAAYA,EAAUhR,QAAKnH,KAI5BiX,CACR,CAoBD,eAAMqB,CAAUzU,KAA2BjE,GACzC,OAAOwP,QAAQC,IAAIxL,EAAKoD,IAAK2Q,GAAM1X,KAAK4W,OAAOc,KAAMhY,IACtD,CAUS,kBAAM2Y,CAAa9S,EAAU0E,GASrC,OARKA,EAAQtI,IAAI,yBACTgQ,GACJ3R,KACAiK,EACA1E,EACA5E,EAAcU,OACdV,EAAc8H,OAEXlD,CACR,CAWS,kBAAM+S,CACdtX,KACGtB,GAEH,MAAMuX,QAAoBxC,GAAQ/U,KAChCiB,EAAcU,OACdrB,KAAKqO,MACL3O,GAEI6F,QAAcvF,KAAK2W,KAAK3V,KAAQiW,EAAYvX,MAQlD,aAPMiS,GACJ3R,KACAiX,EAAYhN,QACZ1E,EACA5E,EAAcU,OACdV,EAAcsH,IAET,CAACjH,KAAQiW,EAAYvX,KAC7B,CAWS,qBAAM6Y,CACd5U,KACGjE,GAEH,MAAMuX,QAAoBxC,GAAQ/U,KAChCiB,EAAcU,OACdrB,KAAKqO,MACL3O,GAEIqX,QAAe/W,KAAKsX,QAAQ3T,KAASsT,EAAYvX,MAYvD,aAXMwP,QAAQC,IACZ4H,EAAOhQ,IAAI+E,MAAO1G,GACTuM,GACL3R,KACAiX,EAAYhN,QACZ7E,EACAzE,EAAcU,OACdV,EAAcsH,MAIb,CAACtE,KAASsT,EAAYvX,KAC9B,CAUS,qBAAM8Y,CAAgBzB,EAAa9M,GAa3C,OAZKA,EAAQtI,IAAI,yBACTuN,QAAQC,IACZ4H,EAAOhQ,IAAK3B,GACVuM,GACE3R,KACAiK,EACA7E,EACAzE,EAAcU,OACdV,EAAc8H,SAIfsO,CACR,CAOD,QAAAjT,GACE,OAAU9D,KAAKqO,MAAMnM,KAAd,aACR,EC7vBI,MAAMvD,GAAU,cACV8Z,GAAe,cAC5BpV,EAASqV,gBAAgBD,GAAc9Z"}
@@ -16,5 +16,5 @@ export * from "./validation";
16
16
  * @const VERSION
17
17
  * @memberOf module:db-decorators
18
18
  */
19
- export declare const VERSION = "0.8.8";
19
+ export declare const VERSION = "0.8.10";
20
20
  export declare const PACKAGE_NAME = "@decaf-ts/db-decorators";
package/lib/esm/index.js CHANGED
@@ -17,7 +17,7 @@ export * from "./validation/index.js";
17
17
  * @const VERSION
18
18
  * @memberOf module:db-decorators
19
19
  */
20
- export const VERSION = "0.8.8";
20
+ export const VERSION = "0.8.10";
21
21
  export const PACKAGE_NAME = "@decaf-ts/db-decorators";
22
22
  Metadata.registerLibrary(PACKAGE_NAME, VERSION);
23
23
  //# sourceMappingURL=index.js.map
@@ -22,14 +22,14 @@ export class BaseError extends Error {
22
22
  constructor(name, msg, code) {
23
23
  if (msg instanceof BaseError)
24
24
  return msg;
25
- const message = `[${name}] ${msg instanceof Error ? msg.message : msg}`;
25
+ const message = `[${name}][${code}] ${msg instanceof Error ? msg.message : msg}`;
26
26
  super(message);
27
27
  this.code = code;
28
28
  if (msg instanceof Error)
29
29
  this.stack = msg.stack;
30
30
  }
31
31
  toString() {
32
- return `[${this.name}][${this.code}] ${this.message.replace(/\[.*?Error\]]\s/g, "")}`;
32
+ return `[${this.name}] ${this.code} | ${this.message.replaceAll(/\[.*?Error\]\[\d+\]\s/g, "")}`;
33
33
  }
34
34
  }
35
35
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/repository/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAgB,SAAU,SAAQ,KAAK;IAE3C,YAAsB,IAAY,EAAE,GAAmB,EAAE,IAAY;QACnE,IAAI,GAAG,YAAY,SAAS;YAAE,OAAO,GAAG,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,IAAI,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACxE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,GAAG,YAAY,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACnD,CAAC;IAEQ,QAAQ;QACf,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,EAAE,CAAC;IACxF,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAC5C,YAAY,GAAmB,EAAE,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG;QACtE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,eAAgB,SAAQ,eAAe;IAClD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;CACF;AACD;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,aAAc,SAAQ,SAAS;IAC1C,YAAY,GAAmB,EAAE,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG;QACpE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;CACF;AACD;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,kBAAmB,SAAQ,aAAa;IACnD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;CACF;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,aAAc,SAAQ,eAAe;IAChD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;CACF;AACD;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,aAAc,SAAQ,eAAe;IAChD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/repository/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAgB,SAAU,SAAQ,KAAK;IAG3C,YAAsB,IAAY,EAAE,GAAmB,EAAE,IAAY;QACnE,IAAI,GAAG,YAAY,SAAS;YAAE,OAAO,GAAG,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACjF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,GAAG,YAAY,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACnD,CAAC;IAEQ,QAAQ;QACf,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,wBAAwB,EAAE,EAAE,CAAC,EAAE,CAAC;IAClG,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAC5C,YAAY,GAAmB,EAAE,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG;QACtE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,eAAgB,SAAQ,eAAe;IAClD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;CACF;AACD;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,aAAc,SAAQ,SAAS;IAC1C,YAAY,GAAmB,EAAE,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG;QACpE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;CACF;AACD;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,kBAAmB,SAAQ,aAAa;IACnD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;CACF;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,aAAc,SAAQ,eAAe;IAChD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;CACF;AACD;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,aAAc,SAAQ,eAAe;IAChD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;CACF"}
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.8";
37
+ exports.VERSION = "0.8.10";
38
38
  exports.PACKAGE_NAME = "@decaf-ts/db-decorators";
39
39
  decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
40
40
  //# sourceMappingURL=index.js.map
package/lib/index.d.ts CHANGED
@@ -16,5 +16,5 @@ export * from "./validation";
16
16
  * @const VERSION
17
17
  * @memberOf module:db-decorators
18
18
  */
19
- export declare const VERSION = "0.8.8";
19
+ export declare const VERSION = "0.8.10";
20
20
  export declare const PACKAGE_NAME = "@decaf-ts/db-decorators";
@@ -25,14 +25,14 @@ class BaseError extends Error {
25
25
  constructor(name, msg, code) {
26
26
  if (msg instanceof BaseError)
27
27
  return msg;
28
- const message = `[${name}] ${msg instanceof Error ? msg.message : msg}`;
28
+ const message = `[${name}][${code}] ${msg instanceof Error ? msg.message : msg}`;
29
29
  super(message);
30
30
  this.code = code;
31
31
  if (msg instanceof Error)
32
32
  this.stack = msg.stack;
33
33
  }
34
34
  toString() {
35
- return `[${this.name}][${this.code}] ${this.message.replace(/\[.*?Error\]]\s/g, "")}`;
35
+ return `[${this.name}] ${this.code} | ${this.message.replaceAll(/\[.*?Error\]\[\d+\]\s/g, "")}`;
36
36
  }
37
37
  }
38
38
  exports.BaseError = BaseError;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/repository/errors.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAsB,SAAU,SAAQ,KAAK;IAE3C,YAAsB,IAAY,EAAE,GAAmB,EAAE,IAAY;QACnE,IAAI,GAAG,YAAY,SAAS;YAAE,OAAO,GAAG,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,IAAI,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACxE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,GAAG,YAAY,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACnD,CAAC;IAEQ,QAAQ;QACf,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,EAAE,CAAC;IACxF,CAAC;CACF;AAbD,8BAaC;AAED;;;;;;;GAOG;AACH,MAAa,eAAgB,SAAQ,SAAS;IAC5C,YAAY,GAAmB,EAAE,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG;QACtE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;CACF;AAJD,0CAIC;AAED;;;;;;;;;;;;GAYG;AACH,MAAa,eAAgB,SAAQ,eAAe;IAClD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;CACF;AAJD,0CAIC;AACD;;;;;;;;;;;;;;GAcG;AACH,MAAa,aAAc,SAAQ,SAAS;IAC1C,YAAY,GAAmB,EAAE,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG;QACpE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;CACF;AAJD,sCAIC;AACD;;;;;;;;;;;;;;GAcG;AACH,MAAa,kBAAmB,SAAQ,aAAa;IACnD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;CACF;AAJD,gDAIC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAa,aAAc,SAAQ,eAAe;IAChD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;CACF;AAJD,sCAIC;AACD;;;;;;;;;;;;;GAaG;AACH,MAAa,aAAc,SAAQ,eAAe;IAChD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;CACF;AAJD,sCAIC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/repository/errors.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAsB,SAAU,SAAQ,KAAK;IAG3C,YAAsB,IAAY,EAAE,GAAmB,EAAE,IAAY;QACnE,IAAI,GAAG,YAAY,SAAS;YAAE,OAAO,GAAG,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACjF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,GAAG,YAAY,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACnD,CAAC;IAEQ,QAAQ;QACf,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,wBAAwB,EAAE,EAAE,CAAC,EAAE,CAAC;IAClG,CAAC;CACF;AAdD,8BAcC;AAED;;;;;;;GAOG;AACH,MAAa,eAAgB,SAAQ,SAAS;IAC5C,YAAY,GAAmB,EAAE,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG;QACtE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;CACF;AAJD,0CAIC;AAED;;;;;;;;;;;;GAYG;AACH,MAAa,eAAgB,SAAQ,eAAe;IAClD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;CACF;AAJD,0CAIC;AACD;;;;;;;;;;;;;;GAcG;AACH,MAAa,aAAc,SAAQ,SAAS;IAC1C,YAAY,GAAmB,EAAE,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG;QACpE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;CACF;AAJD,sCAIC;AACD;;;;;;;;;;;;;;GAcG;AACH,MAAa,kBAAmB,SAAQ,aAAa;IACnD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;CACF;AAJD,gDAIC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAa,aAAc,SAAQ,eAAe;IAChD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;CACF;AAJD,sCAIC;AACD;;;;;;;;;;;;;GAaG;AACH,MAAa,aAAc,SAAQ,eAAe;IAChD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;CACF;AAJD,sCAIC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/db-decorators",
3
- "version": "0.8.9",
3
+ "version": "0.8.11",
4
4
  "description": "Agnostic database decorators and repository",
5
5
  "type": "module",
6
6
  "exports": {