@decaf-ts/db-decorators 0.8.28 → 0.8.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/db-decorators.cjs +1 -1
- package/dist/db-decorators.cjs.map +1 -1
- package/dist/db-decorators.js +1 -1
- package/dist/db-decorators.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/overrides/ModelBuilderExtensions.d.ts +15 -0
- package/lib/esm/overrides/ModelBuilderExtensions.js +42 -0
- package/lib/esm/overrides/ModelBuilderExtensions.js.map +1 -0
- package/lib/esm/overrides/index.d.ts +1 -0
- package/lib/esm/overrides/index.js +1 -0
- package/lib/esm/overrides/index.js.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/overrides/ModelBuilderExtensions.cjs +44 -0
- package/lib/overrides/ModelBuilderExtensions.d.ts +15 -0
- package/lib/overrides/ModelBuilderExtensions.js.map +1 -0
- package/lib/overrides/index.cjs +1 -0
- package/lib/overrides/index.d.ts +1 -0
- package/lib/overrides/index.js.map +1 -1
- package/package.json +1 -5
package/README.md
CHANGED
package/dist/db-decorators.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e,t;e=this,t=function(e,t,r,a,o,n){"use strict";const s={REFLECT:r.ModelKeys.MODEL+".persistence.",REPOSITORY:"repository",CLASS:"_class",ID:"id",INDEX:"index",UNIQUE:"unique",SERIALIZE:"serialize",READONLY:"readonly",TIMESTAMP:"timestamp",TRANSIENT:"transient",HASH:"hash",COMPOSED:"composed",GENERATED:"generated",VERSION:"version",ORIGINAL:"__originalObj"},i="_",c="dd/MM/yyyy HH:mm:ss:S",l={ID:{INVALID:"This Id is invalid",REQUIRED:"The Id is mandatory"},READONLY:{INVALID:"This cannot be updated"},TIMESTAMP:{REQUIRED:"Timestamp is Mandatory",DATE:"The Timestamp must the a valid date",INVALID:"This value must always increase"}},d={REFLECT:"db.update.validation.",TIMESTAMP:s.TIMESTAMP,READONLY:s.READONLY};e.ReadOnlyValidator=class extends r.Validator{constructor(){super(l.READONLY.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,a){if(void 0!==e)return r.isEqual(e,t)?void 0:this.getMessage(a||this.message)}},e.ReadOnlyValidator=a.__decorate([r.validator(d.READONLY),a.__metadata("design:paramtypes",[])],e.ReadOnlyValidator),e.TimestampValidator=class extends r.Validator{constructor(){super(l.TIMESTAMP.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,r){if(void 0!==e){r=r||this.getMessage(r||this.message);try{e=new Date(e),t=new Date(t)}catch(e){return r}return e>t?void 0:r}}},e.TimestampValidator=a.__decorate([r.validator(d.TIMESTAMP),a.__metadata("design:paramtypes",[])],e.TimestampValidator);class p extends r.Validator{constructor(e=r.DEFAULT_ERROR_MESSAGES.DEFAULT,...t){super(e,...t)}}var u,f,y;r.Validation.updateKey=e=>d.REFLECT+e,e.OperationKeys=void 0,(u=e.OperationKeys||(e.OperationKeys={})).REFLECT="decaf.model.db.operations.",u.CREATE="create",u.READ="read",u.UPDATE="update",u.DELETE="delete",u.ON="on.",u.AFTER="after.",u.BLOCK="block",e.ModelOperations=void 0,(f=e.ModelOperations||(e.ModelOperations={})).OPERATIONS="operations",f.RELATIONS="relations",e.BulkCrudOperationKeys=void 0,(y=e.BulkCrudOperationKeys||(e.BulkCrudOperationKeys={})).CREATE_ALL="createAll",y.READ_ALL="readAll",y.UPDATE_ALL="updateAll",y.DELETE_ALL="deleteAll";const h={CREATE:[e.OperationKeys.CREATE],READ:[e.OperationKeys.READ],UPDATE:[e.OperationKeys.UPDATE],DELETE:[e.OperationKeys.DELETE],CREATE_UPDATE:[e.OperationKeys.CREATE,e.OperationKeys.UPDATE],READ_CREATE:[e.OperationKeys.READ,e.OperationKeys.CREATE],ALL:[e.OperationKeys.CREATE,e.OperationKeys.READ,e.OperationKeys.UPDATE,e.OperationKeys.DELETE]};class g{constructor(){this.cache={}}get(e,t,r,a){a=a||[];const o=this.resolveOwner(e),n=this.resolveTargetName(e,o);if(n){const e=this.selectHandlers(n,t,r,o);e?.length&&a.unshift(...e)}else if("string"==typeof e||e===Object.prototype||Object.getPrototypeOf(e)===Object.prototype)return a;let s=Object.getPrototypeOf(e);return s?(s.constructor&&s.constructor.name===n&&(s=Object.getPrototypeOf(s)),s?this.get(s,t,r,a):a):a}register(e,t,r,a){const o=r.constructor.name,n=g.getHandlerName(e),s=this.resolveFlavour(r.constructor);this.cache[o]||(this.cache[o]={}),this.cache[o][a]||(this.cache[o][a]={}),this.cache[o][a][t]||(this.cache[o][a][t]={}),this.cache[o][a][t][s]||(this.cache[o][a][t][s]={}),this.cache[o][a][t][s][n]||(this.cache[o][a][t][s][n]=e)}resolveOwner(e){if(e&&"string"!=typeof e)return"function"==typeof e?e:e.constructor}resolveTargetName(e,t){return"string"==typeof e?e:t?.name}resolveFlavour(e){if(!e)return t.Decoration.defaultFlavour;try{return t.Metadata.flavourOf(e)}catch{return t.Decoration.defaultFlavour}}selectHandlers(e,r,a,o){const n=this.cache[e]?.[r]?.[a];if(!n)return;const s=n[this.resolveFlavour(o)]||n[t.Decoration.defaultFlavour]||this.firstBucket(n);if(!s)return;const i=Object.values(s);return i.length?i:void 0}firstBucket(e){for(const t of Object.values(e))if(t&&Object.keys(t).length)return t}static getHandlerName(e){return e.name?e.name:r.Hashing.hash(e.toString())}}class E{constructor(){}static getHandlerName(e){return g.getHandlerName(e)}static key(t){return e.OperationKeys.REFLECT+t}static get(e,t,r){return E.registry.get(e,t,r)}static getOpRegistry(){return E.registry||(E.registry=new g),E.registry}static register(e,t,r,a){E.getOpRegistry().register(e,t,r,a)}}class m extends Error{constructor(e,t,r){if(t instanceof m)return t;super(`[${e}][${r}] ${t instanceof Error?t.message:t}`),this.code=r,t instanceof Error&&(this.stack=t.stack)}get message(){return`[${this.name}] ${this.code} | ${super.message.replaceAll(/\[.*?Error\]\[\d+\]\s/g,"")}`}toString(){return this.message}}class O extends m{constructor(e,t=O.name,r=999){super(t,e,r)}}class A extends m{constructor(e,t=A.name,r=400){super(t,e,r)}}class T extends A{constructor(e){super(e,T.name,422)}}class M extends m{constructor(e,t=M.name,r=500){super(t,e,r)}}class w extends M{constructor(e){super(e,w.name,500)}}class P extends A{constructor(e){super(e,P.name,404)}}class D extends A{constructor(e){super(e,D.name,409)}}const v={priority:50},R=(e,t,r,a)=>{const o=r.constructor.name;if(!o)throw new M("Could not determine model class");a=a||{},e.props.handlers[o]&&e.props.handlers[o][t]&&(a={...e.props.handlers[o][t],...a});let n=Object.getPrototypeOf(r);return n===Object.prototype?a:(n.constructor.name===o&&(n=Object.getPrototypeOf(n)),R(e,t,n,a))};function b(e,t,r){const a=[];for(const o in t){const n=t[o];for(const t of n){const{key:n}=t,s=E.get(e,o,r+n);if(!s||!s.length)throw new M(`Could not find registered handler for the operation ${r+n} under property ${o}`);const i=R(t,o,e);if(!i)throw new M("Missing handler arguments for decorators");for(const e of s){const t=E.getHandlerName(e),r=i[t];if(!r)throw new M("Missing handler arguments for handler "+t);const n=r.data;a.push({handler:e,data:[n],prop:[o]})}}}return a}function S(e){const t=e.reduce((e,t)=>{if(!t||!t.data||!t.prop)throw new M("Missing decorator properties or data");if(!t.data[0].group)return e.set(Symbol(),t),e;const r=t.data[0].group;if(e.has(r)){const a=e.get(r);e.set(r,{handler:a.handler,data:[...a.data,...t.data],prop:[...a.prop,...t.prop]})}else e.set(r,{...t});return e},new Map),r=Array.from(t.values());return r.forEach(e=>{const t=e.data.map((t,r)=>({data:t,prop:e.prop[r]}));t.sort((e,t)=>(e.data.groupPriority??50)-(t.data.groupPriority??50)),e.data=t.map(e=>e.data),e.prop=t.map(e=>e.prop)}),r}function K(e){return e.sort((e,t)=>(e.data[0].priority??50)-(t.data[0].priority??50)),e}function L(e,t,r){return x(h.CREATE_UPDATE,e,t,r)}function N(e,t,r){return x(h.UPDATE,e,t,r)}function I(e,t,r){return x(h.CREATE,e,t,r)}function x(t=h.ALL,r,a,o){return C(e.OperationKeys.ON,t,r,a,o)}function k(t=h.ALL,r,a,o){return C(e.OperationKeys.AFTER,t,r,a,o)}function C(r,a=h.ALL,o,n,s=v){return(i,c)=>{const l=i.constructor.name,d=a.reduce((a,d)=>{const p=r+d;let u=t.Metadata.readOperation(i.constructor,c,p);u||(u={operation:d,handlers:{}});const f=E.getHandlerName(o);let y=s;if(n){if(Object.keys(n).filter(e=>e in s).length>0)throw new M("Unable to merge groupSort into dataToAdd due to overlaping keys");y={...s,...n}}return u.handlers[l]&&u.handlers[l][c]&&f in u.handlers[l][c]||(u.handlers[l]=u.handlers[l]||{},u.handlers[l][c]=u.handlers[l][c]||{},u.handlers[l][c][f]={data:y},a.push(((e,t)=>(r,a)=>{E.register(t,e,r,a)})(p,o),t.propMetadata(t.Metadata.key(e.ModelOperations.OPERATIONS,c,p),u))),a},[]);return t.apply(...d)(i,c)}}function U(e,r){return(...a)=>t.metadata(e,{args:a,handler:r})}function V(e){return(r,a)=>t.propMetadata(t.Metadata.key(s.GENERATED,a),e||!0)(r,a)}function j(e,t,a,o,n){if(void 0===o[a])return;const s=r.Hashing.hash(o[a]);n&&o[a]===s||(o[a]=s)}function F(){return t.apply(L(j),t.propMetadata(s.HASH,{}))}function H(e,t){const{args:a,type:o,prefix:n,suffix:s,separator:i,filterEmpty:c,hashResult:l}=t;try{const t=a.map(t=>{if("keys"===o)return t;if(void 0===e[t]){if(c){if(!Array.isArray(c))return;if(c.includes(t))return}throw new M(`Property ${a} does not contain a value to compose from`)}return e[t].toString()}).filter(e=>!c||!!e);n&&t.unshift(n),s&&t.push(s);const d=t.map(e=>"object"==typeof e&&"[object Object]"===e.toString()?JSON.stringify(e):e).join(i);return l?r.Hashing.hash(d):d}catch(e){throw new M("Failed to compose value: "+e)}}function $(e,t,r,a){a[r]=H(a,t)}function _(e,r=!1,a=i,o=!1,n="values",c="",l="",d={priority:55}){return t.Decoration.for(s.COMPOSED).define({decorator:(e,r,a,n,i,c,l)=>(d,p)=>{const u={args:e,hashResult:r,separator:a,type:n,prefix:i,suffix:c,filterEmpty:o},f=[V(s.COMPOSED),L($,u,l),t.propMetadata(t.Metadata.key(s.COMPOSED,p),u)];return r&&f.push(F()),t.apply(...f)(d,p)},args:[e,r,a,n,c,l,d]}).apply()}function z(t){return(a,o,n,s,i)=>{if(r.Model.shouldGenerate(s,n,a))try{switch(t){case e.OperationKeys.CREATE:s[n]=1;break;case e.OperationKeys.UPDATE:if(a.get("applyUpdateValidation")&&i&&s[n]!==i[n])throw new T(`Version mismatch: ${s[n]} !== ${i[n]}`);s[n]++;break;default:throw new M("Invalid operation: "+t)}}catch(e){throw new M("Failed to update version: "+e)}}}function B(e=l.READONLY.INVALID){const a=s.READONLY,o={message:e,description:"defines the attribute as readOnly",async:!1};return t.Decoration.for(a).define({decorator:r.innerValidationDecorator,args:[B,a,o]}).apply()}async function G(e,t,a,o){r.Model.shouldGenerate(o,a,e)&&(o[a]=e.timestamp)}async function Y(e,t,r,a){if(a[r])try{a[r]=t.serializer?(new t.serializer).serialize(a[r]):JSON.stringify(a[r])}catch(e){throw new w(`Failed to serialize ${r.toString()} property of model ${a.constructor.name}: ${e}`)}}async function q(e,t,r,a){if(a[r]&&"string"==typeof a[r])try{a[r]=t.serializer?(new t.serializer).deserialize(a[r]):JSON.parse(a[r])}catch(e){throw new w(`Failed to deserialize ${r.toString()} property of model ${a.constructor.name}: ${e}`)}}function Q(e,r){const a=[];for(const o in e){if(!Object.prototype.hasOwnProperty.call(e,o)||r.includes(o))continue;const n=t.Metadata.validationFor(e.constructor,o)||{};a.push({prop:o,decorators:n})}return a}function J(e,t,a,o,n){const s=r.Validation.get(o.key);if(!s)throw Error("Missing validator for "+o.key);if(!s.updateHasErrors)return r.toConditionalPromise(void 0,n);if(!n&&o.async)return r.toConditionalPromise(void 0,n);const i=Object.values(o)||{},c=s.updateHasErrors(e[a],t[a],...i);return r.toConditionalPromise(c,n)}function W(e,t,a,o,n){const s={};for(const i in o){const c={...o[i],key:i};if(!n&&c.async)continue;let l=J(e,t,a,c,n);if(c.key===r.ValidationKeys.LIST&&(!l||n)){const o=e[a],s=t[a],i=o instanceof Set?[...o]:o,d=s instanceof Set?[...s]:s;if(i?.length){const e=[c.class||c.clazz||c.customTypes].flat().map(e=>((e=(e="function"!=typeof e||e.name?e:e()).name?e.name:e)+"").toLowerCase()),t=i.map(t=>{if(r.Model.isModel(t)){const e=r.Model.pk(t,!0);if(!e)return"Failed to find model id";const a=d.find(t=>e===r.Model.pk(t,!0));return t.hasErrors(a)}return e.includes(typeof t)?void 0:"Value has no validatable type"});if(n)l=Promise.all(t).then(e=>e.every(e=>!e)?void 0:e);else{const e=t.every(e=>!e);l=t.length>0&&!e?t:void 0}}}l&&(s[c.key]=l)}if(!n)return Object.keys(s).length>0?s:void 0;const i=Object.keys(s),c=Object.values(s);return Promise.all(c).then(e=>{const t={};for(let r=0;r<e.length;r++){const a=e[r];void 0!==a&&(t[i[r]]=a)}return Object.keys(t).length>0?t:void 0})}function Z(e,a,o,...n){const s=Q(a,n),i={},c={};for(const{prop:l,decorators:d}of s){const s=l+"",p=a[l],{designTypes:u}=t.Metadata.getPropDesignTypes(a.constructor,l);if(!u)continue;if(u.some(e=>[Array.name,Set.name].includes(e))){if(!d||!Object.keys(d).includes(r.ValidationKeys.LIST)){i[s]={[r.ValidationKeys.TYPE]:`Array or Set property '${s}' requires a @list decorator`};continue}if(p&&!(Array.isArray(p)||p instanceof Set)){i[s]={[r.ValidationKeys.TYPE]:`Property '${l+""}' must be either an Array or a Set`};continue}}const f=W(a,e,s,d,o)||{},y=r.Model.isPropertyModel(a,s);if(null!=p&&y){const t=p,a=u.map(e=>r.Model.get(e.name||e)).find(e=>!!e),o=u.map(e=>"function"==typeof e?e.name?e.name.toLowerCase():e()?.name.toLowerCase():e.toLowerCase());if(a&&p instanceof a){const a=r.getChildNestedPropsToIgnore(s,...n);c[s]=t.hasErrors(e[l],...a)}else o.includes(typeof p)||(f[r.ValidationKeys.TYPE]=a?"Value must be an instance of "+a.name:`Unable to verify type consistency, missing model registry for ${u.toString()} on prop ${s}`,delete f[r.ModelKeys.TYPE])}(Object.keys(f).length>0||o)&&(i[s]=f),o||Object.entries(c[s]||{}).forEach(([e,t])=>{void 0!==t&&(i[`${s}.${e}`]=t)})}if(!o)return Object.keys(i).length>0?new r.ModelErrorDefinition(i):void 0;const l=i,d=Object.keys(l),p=Object.values(l);return Promise.allSettled(p).then(async e=>{const t={};for(const[e,r]of Object.entries(c)){const a=await r;a&&Object.entries(a).forEach(([r,a])=>{void 0!==a&&(t[[e,r].join(".")]=a)})}for(let r=0;r<e.length;r++){const a=d[r],o=e[r];"fulfilled"===o.status&&void 0!==o.value?t[a]=o.value:"rejected"===o.status&&(t[a]=o.reason instanceof Error?o.reason.message:(o.reason||"Validation failed")+"")}return Object.keys(t).length>0?new r.ModelErrorDefinition(t):void 0})}function X(e){return e.reduce((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e),void 0)}async function ee(t,r,a,o,n,s){const i=te(a,o,n);if(!i)return;const c=K(S(b(a,i,n)));for(const n of c){const i=[r,n.data.length>1?n.data:n.data[0],n.prop.length>1?n.prop:n.prop[0],a];if([e.OperationKeys.UPDATE,e.BulkCrudOperationKeys.UPDATE_ALL].includes(o)){if(!s)throw new M("Missing old model for update operation");i.push(s)}try{await n.handler.apply(t,i)}catch(e){if(r.logger.for(ee).error(`Failed to execute handler ${n.handler.name} for ${n.prop} on ${a.constructor.name}`),r.get("breakOnHandlerError"))throw e}}}function te(r,a,o){const n=o?.replace(/[.]$/,""),s=t.Metadata.get(r.constructor,e.ModelOperations.OPERATIONS);if(s)return Object.keys(s).reduce((e,t)=>{const r=n?s[t][n]||{}:s[t],o=Object.keys(r).filter(e=>e===a),i=[];for(const e of o)i.push({key:e,props:r[e]});return i&&i.length&&(e||(e={}),e[t]=i),e},void 0)}r.Model.prototype.isTransient=function(){return t.Metadata.isTransient(this)},r.Model.prototype.hasErrors=function(e,...t){!e||e instanceof r.Model||(t.unshift(e),e=void 0);const a=this.isAsync(),o=r.validate(this,a,...t);return a?Promise.resolve(o).then(r=>r||!e?r:Z(e,this,a,...t)):o||!e?o:Z(e,this,a,...t)},r.Model.prototype.segregate=function(){return r.Model.segregate(this)},r.Model.segregate=e=>{if(!t.Metadata.isTransient(e))return{model:e};const a=t.Metadata.validatableProperties(e.constructor),o=t.Metadata.get(e.constructor,s.TRANSIENT),n={model:{},transient:{}};for(const t of a)if(Object.keys(o).includes(t)){n.transient=n.transient||{};try{n.transient[t]=e[t]}catch(e){throw new w(`Failed to serialize transient property ${t}: ${e}`)}}else n.model=n.model||{},n.model[t]=e[t];return n.model=r.Model.build(n.model,e.constructor.name),n},t.Metadata.pk=((e,a=!1)=>{if(!e)throw Error("No model was provided");const o=e instanceof r.Model?e.constructor:e,n=t.Metadata.get(o,s.ID);if(!n)throw Error("No Id property defined for model "+(o?.name||"Unknown Model"));const i=Object.keys(n)[0];if(!a)return i;if(e instanceof r.Model)return e[i];throw Error("Cannot get the value of the pk from the constructor")}).bind(t.Metadata),r.Model.pk=((e,r=!1)=>t.Metadata.pk(e,r)).bind(r.Model),r.Model.pkProps=(e=>t.Metadata.get(e,t.Metadata.key(s.ID,r.Model.pk(e)))).bind(r.Model),r.Model.isTransient=(e=>!!t.Metadata.get("function"!=typeof e?e.constructor:e,s.TRANSIENT)).bind(r.Model),r.Model.composed=((e,a)=>{const o=e instanceof r.Model?e.constructor:e;return a?t.Metadata.get(o,t.Metadata.key(s.COMPOSED,a)):!!t.Metadata.get(o,s.COMPOSED)}).bind(r.Model),r.Model.merge=((e,t,r)=>{const a=e=>Object.entries(e).reduce((e,[t,r])=>(null!=r&&(e[t]=r),e),{});return new(r=r||e.constructor)(Object.assign({},a(e),a(t)))}).bind(r.Model),t.Metadata.saveOperation=((r,a,o,n)=>{a&&t.Metadata.set(r,t.Metadata.key(e.ModelOperations.OPERATIONS,a,o),n)}).bind(t.Metadata),t.Metadata.readOperation=((r,a,o)=>{if(a&&o)return t.Metadata.get(r,t.Metadata.key(e.ModelOperations.OPERATIONS,a,o))}).bind(t.Metadata),t.Metadata.isTransient=(e=>!!t.Metadata.get("function"!=typeof e?e.constructor:e,s.TRANSIENT)).bind(t.Metadata),r.Model.generated=((e,r)=>!!t.Metadata.get("function"!=typeof e?e.constructor:e,t.Metadata.key(s.GENERATED,r))).bind(r.Model),r.Model.shouldGenerate=((e,t,r)=>!r.get("allowGenerationOverride")||void 0===e[t]).bind(r.Model),r.Model.versionProp=(e=>{const r=t.Metadata.get(e.constructor);if(!r||!r[s.VERSION])throw new M("No version found for "+e.constructor.name);return Object.keys(r)[0]}).bind(r.Model),r.Model.versionOf=(e=>{const t=e[r.Model.versionProp(e)];if("number"!=typeof t||1>t)throw new M("Invalid version number: "+t);return t}).bind(r.Model);const re={parentContext:void 0,childContexts:[],ignoredValidationProperties:[],callArgs:[],writeOperation:!1,affectedTables:[],operation:void 0,breakOnHandlerError:!0,rebuildWithTransient:!0,ignoreValidation:!1,ignoreHandlers:!1,ignoreDevSafeGuards:!1,mergeForUpdate:!0,applyUpdateValidation:!0,allowGenerationOverride:!1},ae=e=>(new oe).accumulate(Object.assign({},e,{timestamp:new Date,logger:e.logger||n.Logging.get()}));class oe{constructor(e){this.cache=new o.ObjectAccumulator,Object.defineProperty(this,"cache",{value:e?e.cache:new o.ObjectAccumulator,writable:!1,enumerable:!1,configurable:!0})}static{this.factory=ae}accumulate(e){return Object.defineProperty(this,"cache",{value:this.cache.accumulate(e),writable:!1,enumerable:!1,configurable:!0}),this}get logger(){return this.cache.logger}get timestamp(){return this.cache.timestamp}get(e){try{return this.cache.get(e)}catch(t){const r=this.cache.parentContext;if(r)return r.get(e);throw t}}static childFrom(e,t){return oe.factory(Object.assign({},e.cache,t||{}))}static async from(e,t,r,...a){return oe.factory(Object.assign({},re,t,{operation:e,model:r,logger:t.logger||n.Logging.get()}))}static async args(e,t,r,a,o){const n=r.pop();async function s(){return a?a.context(e,o||{},t,...r):oe.from(e,o||{},t,...r)}let i;return n?n instanceof oe?(i=n,r.push(n)):(r.push(n),i=await s(),r.push(i)):(i=await s(),r.push(i)),{context:i,args:r}}}function ne(e,t,r,a,o){const n=o||r.name;e[n]=new Proxy(e[n],{apply:async(e,r,o)=>{let n=t.call(r,...o);n instanceof Promise&&(n=await n);const s=n[n.length-1];if(!(s instanceof oe))throw new M("Missing a context");let i=e.call(r,...n);return i instanceof Promise&&(i=await i),i=a.call(r,i,s),i instanceof Promise&&(i=await i),i}})}function se(e,t,a,o,n){const s=n||a.name;e[s]=new Proxy(e[s],{apply:async(e,a,n)=>{let s=t.call(a,...n);s instanceof Promise&&(s=await s);const i=s.pop(),c=s[s.length-1];if(!(c instanceof oe))throw new M("Missing a context");if(c.get("applyUpdateValidation")&&!c.get("ignoreDevSafeGuards")&&!(i instanceof r.Model)&&(!Array.isArray(i)||!i.every(e=>e instanceof r.Model)))throw new M("No previous versions os models found");let l=e.call(a,...s);return l instanceof Promise&&(l=await l),l=o.call(a,l,i,c),l instanceof Promise&&(l=await l),l}})}const ie="##VERSION##",ce="##PACKAGE##";t.Metadata.registerLibrary(ce,ie),e.BadRequestError=A,e.BaseError=m,e.BlockOperationIf=t=>U(e.OperationKeys.REFLECT+e.OperationKeys.BLOCK,t)(),e.BlockOperations=t=>U(e.OperationKeys.REFLECT+e.OperationKeys.BLOCK,(e,t)=>e.includes(t))(t),e.BreakError=O,e.ConflictError=D,e.Context=oe,e.DBKeys=s,e.DBOperations=h,e.DEFAULT_ERROR_MESSAGES=l,e.DEFAULT_TIMESTAMP_FORMAT=c,e.DefaultContextFactory=ae,e.DefaultRepositoryFlags=re,e.DefaultSeparator=i,e.InternalError=M,e.NotFoundError=P,e.Operations=E,e.OperationsRegistry=g,e.PACKAGE_NAME=ce,e.Repository=class{get class(){if(!this._class)throw new M("No class definition found for this repository");return this._class}get pk(){return r.Model.pk(this.class)}get pkProps(){return r.Model.pkProps(this.class)}constructor(e){e&&(this._class=e);const t=this;[this.create,this.read,this.delete].forEach(e=>{const r=e.name;ne(t,t[r+"Prefix"],e,t[r+"Suffix"])}),se(t,t[this.update.name+"Prefix"],this.update,t[this.update.name+"Suffix"])}async createAll(e,...t){return Promise.all(e.map(e=>this.create(e,...t)))}async createPrefix(t,...r){const a=await oe.args(e.OperationKeys.CREATE,this.class,r);if(t=new this.class(t),a.context.get("ignoreHandlers")||await ee(this,a.context,t,e.OperationKeys.CREATE,e.OperationKeys.ON),!a.context.get("ignoreValidation")){const e=await Promise.resolve(t.hasErrors());if(e)throw new T(e.toString())}return[t,...a.args]}async createSuffix(t,r){return r.get("ignoreHandlers")||await ee(this,r,t,e.OperationKeys.CREATE,e.OperationKeys.AFTER),t}async createAllPrefix(t,...r){const a=await oe.args(e.OperationKeys.CREATE,this.class,r),o=a.context.get("ignoreHandlers"),n=a.context.get("ignoreValidation");if(t=await Promise.all(t.map(async t=>{const r=new this.class(t);return o||await ee(this,a.context,r,e.OperationKeys.CREATE,e.OperationKeys.ON),r})),!n){const e=X(await Promise.all(t.map(e=>Promise.resolve(e.hasErrors()))));if(e)throw new T(e)}return[t,...a.args]}async createAllSuffix(t,r){return r.get("ignoreHandlers")||await Promise.all(t.map(t=>ee(this,r,t,e.OperationKeys.CREATE,e.OperationKeys.AFTER))),t}async readAll(e,...t){return await Promise.all(e.map(e=>this.read(e,...t)))}async readSuffix(t,r){return r.get("ignoreHandlers")||await ee(this,r,t,e.OperationKeys.READ,e.OperationKeys.AFTER),t}async readPrefix(t,...r){const a=await oe.args(e.OperationKeys.READ,this.class,r),o=new this.class;return o[this.pk]=t,await ee(this,a.context,o,e.OperationKeys.READ,e.OperationKeys.ON),[t,...a.args]}async readAllPrefix(t,...r){const a=await oe.args(e.OperationKeys.READ,this.class,r);return await Promise.all(t.map(async t=>{const r=new this.class;return r[this.pk]=t,ee(this,a.context,r,e.OperationKeys.READ,e.OperationKeys.ON)})),[t,...a.args]}async readAllSuffix(t,r){return r.get("ignoreHandlers")||await Promise.all(t.map(t=>ee(this,r,t,e.OperationKeys.READ,e.OperationKeys.AFTER))),t}async updateAll(e,...t){return Promise.all(e.map(e=>this.update(e,...t)))}async updateSuffix(t,r,a){return a.get("ignoreHandlers")||await ee(this,a,t,e.OperationKeys.UPDATE,e.OperationKeys.AFTER,r),t}async updatePrefix(t,...a){const o=await oe.args(e.OperationKeys.UPDATE,this.class,a),n=o.context,s=o.context.get("ignoreHandlers"),i=o.context.get("ignoreValidation"),c=t[this.pk];if(!c)throw new M("No value for the Id is defined under the property "+this.pk);let l;if(n.get("applyUpdateValidation")&&(l=await this.read(c),n.get("mergeForUpdate")&&(t=r.Model.merge(l,t,this.class))),s||await ee(this,o.context,t,e.OperationKeys.UPDATE,e.OperationKeys.ON,l),!i){const e=await Promise.resolve(t.hasErrors(l));if(e)throw new T(e.toString())}return[t,...o.args,l]}async updateAllPrefix(t,...a){const o=await oe.args(e.OperationKeys.UPDATE,this.class,a),n=o.context,s=n.get("ignoreHandlers"),i=n.get("ignoreValidation"),c=t.map(e=>{const t=e[this.pk];if(void 0===t)throw new M("No value for the Id is defined under the property "+this.pk);return t});let l;if(n.get("applyUpdateValidation")&&(l=await this.readAll(c,n),n.get("mergeForUpdate")&&(t=t.map((e,t)=>r.Model.merge(l[t],e,this.class)))),s||await Promise.all(t.map((t,r)=>ee(this,o.context,t,e.OperationKeys.UPDATE,e.OperationKeys.ON,l?l[r]:void 0))),!i){let e;e=n.get("applyUpdateValidation")?await Promise.all(t.map((e,t)=>Promise.resolve(e.hasErrors(l[t])))):await Promise.resolve(t.map(e=>e.hasErrors()));const r=X(e);if(r)throw new T(r)}return[t,...o.args,l]}async updateAllSuffix(t,r,a){if(a.get("applyUpdateValidation")&&!a.get("ignoreDevSafeGuards")&&!r)throw new M("No previous versions of models provided");return a.get("ignoreHandlers")||await Promise.all(t.map((t,o)=>ee(this,a,t,e.OperationKeys.UPDATE,e.OperationKeys.AFTER,r?r[o]:void 0))),t}async deleteAll(e,...t){return Promise.all(e.map(e=>this.delete(e,...t)))}async deleteSuffix(t,r){return r.get("ignoreHandlers")||await ee(this,r,t,e.OperationKeys.DELETE,e.OperationKeys.AFTER),t}async deletePrefix(t,...r){const a=await oe.args(e.OperationKeys.DELETE,this.class,r),o=await this.read(t,...a.args);return await ee(this,a.context,o,e.OperationKeys.DELETE,e.OperationKeys.ON),[t,...a.args]}async deleteAllPrefix(t,...r){const a=await oe.args(e.OperationKeys.DELETE,this.class,r),o=await this.readAll(t,...a.args);return await Promise.all(o.map(async t=>ee(this,a.context,t,e.OperationKeys.DELETE,e.OperationKeys.ON))),[t,...a.args]}async deleteAllSuffix(t,r){return r.get("ignoreHandlers")||await Promise.all(t.map(t=>ee(this,r,t,e.OperationKeys.DELETE,e.OperationKeys.AFTER))),t}toString(){return this.class.name+" Repository"}},e.SerializationError=w,e.UpdateValidationKeys=d,e.UpdateValidator=p,e.VERSION=ie,e.ValidationError=T,e.after=k,e.afterAny=(e,t,r)=>k(h.ALL,e,t,r),e.afterCreate=(e,t,r)=>k(h.CREATE,e,t,r),e.afterCreateUpdate=(e,t,r)=>k(h.CREATE_UPDATE,e,t,r),e.afterDelete=(e,t,r)=>k(h.DELETE,e,t,r),e.afterRead=(e,t,r)=>k(h.READ,e,t,r),e.afterUpdate=(e,t,r)=>k(h.UPDATE,e,t,r),e.composeAttributeValue=H,e.composed=(e,t=i,r=!1,a=!1,o="",n="",s={priority:55})=>_(e,a,t,r,"values",o,n,s),e.composedFromCreateUpdate=$,e.composedFromKeys=(e,t=i,r=!1,a=!1,o="",n="",s={priority:55})=>_(e,a,t,r,"keys",o,n,s),e.enforceDBDecorators=ee,e.generated=V,e.getDbDecorators=te,e.getHandlerArgs=R,e.getHandlersDecorators=b,e.getValidatableUpdateProps=Q,e.groupDecorators=S,e.hash=F,e.hashOnCreateUpdate=j,e.id=()=>t.apply(r.required(),B(),(e,r)=>t.propMetadata(t.Metadata.key(s.ID,r),{})(e,r)),e.on=x,e.onAny=(e,t,r)=>x(h.ALL,e,t,r),e.onCreate=I,e.onCreateUpdate=L,e.onDelete=(e,t,r)=>x(h.DELETE,e,t,r),e.onRead=(e,t,r)=>x(h.READ,e,t,r),e.onUpdate=N,e.operation=C,e.prefixMethod=(e,t,r,a)=>{const o=a||t.name;e[o]=new Proxy(e[o],{apply:async(e,t,a)=>{let o=r.call(t,...a);return o instanceof Promise&&(o=await o),o=e.call(t,...o),o instanceof Promise&&(o=await o),o}})},e.readonly=B,e.reduceErrorsToPrint=X,e.serialize=e=>t.apply(L(Y,{serializer:e}),k(h.ALL,q,{serializer:e}),r.type([String,Object]),t.metadata(s.SERIALIZE,{serializer:e})),e.serializeAfterAll=q,e.serializeOnCreateUpdate=Y,e.sortDecorators=K,e.storeHandlerMetadata=U,e.suffixMethod=(e,t,r,a)=>{const o=a||t.name;e[o]=new Proxy(e[o],{apply:async(e,t,a)=>{let o=e.call(t,...a);return o instanceof Promise&&(o=await o),o=r.call(t,...o),o instanceof Promise&&(o=await o),o}})},e.timestamp=(a=h.CREATE_UPDATE,o=c)=>{const n=s.TIMESTAMP,i=r.Validation.updateKey(s.TIMESTAMP);return t.Decoration.for(n).define({decorator:(a,o)=>{const n=[V(s.TIMESTAMP),r.date(o,l.TIMESTAMP.DATE),r.required(l.TIMESTAMP.REQUIRED),t.propMetadata(r.Validation.key(s.TIMESTAMP),{operation:a,format:o}),x(a,G)];return-1!==a.indexOf(e.OperationKeys.UPDATE)?n.push(t.propMetadata(i,{message:l.TIMESTAMP.INVALID})):n.push(B()),t.apply(...n)},args:[a,o]}).apply()},e.timestampHandler=G,e.transient=()=>t.Decoration.for(s.TRANSIENT).define((e,r)=>{t.propMetadata(t.Metadata.key(s.TRANSIENT,r),{})(e,r)}).apply(),e.validateCompare=Z,e.validateDecorator=J,e.validateDecorators=W,e.version=()=>{const a=s.VERSION;return(o,n)=>t.Decoration.for(a).define(t.propMetadata(t.Metadata.key(a,n),!0),V(s.VERSION),r.type(Number),I(z(e.OperationKeys.CREATE)),N(z(e.OperationKeys.UPDATE))).apply()(o,n)},e.versionCreateUpdate=z,e.wrapMethodWithContext=ne,e.wrapMethodWithContextForUpdate=se},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("@decaf-ts/decorator-validation"),require("tslib"),require("typed-object-accumulator"),require("@decaf-ts/logging")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/decorator-validation","tslib","typed-object-accumulator","@decaf-ts/logging"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["db-decorators"]={},e.decafTsDecoration,e.decafTsDecoratorValidation,e.tslib,e.typedObjectAccumulator,e.decafTsLogging);
|
|
1
|
+
var e,t;e=this,t=function(e,t,r,a,o,n){"use strict";const s={REFLECT:r.ModelKeys.MODEL+".persistence.",REPOSITORY:"repository",CLASS:"_class",ID:"id",INDEX:"index",UNIQUE:"unique",SERIALIZE:"serialize",READONLY:"readonly",TIMESTAMP:"timestamp",TRANSIENT:"transient",HASH:"hash",COMPOSED:"composed",GENERATED:"generated",VERSION:"version",ORIGINAL:"__originalObj"},i="_",c="dd/MM/yyyy HH:mm:ss:S",l={ID:{INVALID:"This Id is invalid",REQUIRED:"The Id is mandatory"},READONLY:{INVALID:"This cannot be updated"},TIMESTAMP:{REQUIRED:"Timestamp is Mandatory",DATE:"The Timestamp must the a valid date",INVALID:"This value must always increase"}},d={REFLECT:"db.update.validation.",TIMESTAMP:s.TIMESTAMP,READONLY:s.READONLY};e.ReadOnlyValidator=class extends r.Validator{constructor(){super(l.READONLY.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,a){if(void 0!==e)return r.isEqual(e,t)?void 0:this.getMessage(a||this.message)}},e.ReadOnlyValidator=a.__decorate([r.validator(d.READONLY),a.__metadata("design:paramtypes",[])],e.ReadOnlyValidator),e.TimestampValidator=class extends r.Validator{constructor(){super(l.TIMESTAMP.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,r){if(void 0!==e){r=r||this.getMessage(r||this.message);try{e=new Date(e),t=new Date(t)}catch(e){return r}return e>t?void 0:r}}},e.TimestampValidator=a.__decorate([r.validator(d.TIMESTAMP),a.__metadata("design:paramtypes",[])],e.TimestampValidator);class p extends r.Validator{constructor(e=r.DEFAULT_ERROR_MESSAGES.DEFAULT,...t){super(e,...t)}}var u,f,y;r.Validation.updateKey=e=>d.REFLECT+e,e.OperationKeys=void 0,(u=e.OperationKeys||(e.OperationKeys={})).REFLECT="decaf.model.db.operations.",u.CREATE="create",u.READ="read",u.UPDATE="update",u.DELETE="delete",u.ON="on.",u.AFTER="after.",u.BLOCK="block",e.ModelOperations=void 0,(f=e.ModelOperations||(e.ModelOperations={})).OPERATIONS="operations",f.RELATIONS="relations",e.BulkCrudOperationKeys=void 0,(y=e.BulkCrudOperationKeys||(e.BulkCrudOperationKeys={})).CREATE_ALL="createAll",y.READ_ALL="readAll",y.UPDATE_ALL="updateAll",y.DELETE_ALL="deleteAll";const h={CREATE:[e.OperationKeys.CREATE],READ:[e.OperationKeys.READ],UPDATE:[e.OperationKeys.UPDATE],DELETE:[e.OperationKeys.DELETE],CREATE_UPDATE:[e.OperationKeys.CREATE,e.OperationKeys.UPDATE],READ_CREATE:[e.OperationKeys.READ,e.OperationKeys.CREATE],ALL:[e.OperationKeys.CREATE,e.OperationKeys.READ,e.OperationKeys.UPDATE,e.OperationKeys.DELETE]};class g{constructor(){this.cache={}}get(e,t,r,a){a=a||[];const o=this.resolveOwner(e),n=this.resolveTargetName(e,o);if(n){const e=this.selectHandlers(n,t,r,o);e?.length&&a.unshift(...e)}else if("string"==typeof e||e===Object.prototype||Object.getPrototypeOf(e)===Object.prototype)return a;let s=Object.getPrototypeOf(e);return s?(s.constructor&&s.constructor.name===n&&(s=Object.getPrototypeOf(s)),s?this.get(s,t,r,a):a):a}register(e,t,r,a){const o=r.constructor.name,n=g.getHandlerName(e),s=this.resolveFlavour(r.constructor);this.cache[o]||(this.cache[o]={}),this.cache[o][a]||(this.cache[o][a]={}),this.cache[o][a][t]||(this.cache[o][a][t]={}),this.cache[o][a][t][s]||(this.cache[o][a][t][s]={}),this.cache[o][a][t][s][n]||(this.cache[o][a][t][s][n]=e)}resolveOwner(e){if(e&&"string"!=typeof e)return"function"==typeof e?e:e.constructor}resolveTargetName(e,t){return"string"==typeof e?e:t?.name}resolveFlavour(e){if(!e)return t.Decoration.defaultFlavour;try{return t.Metadata.flavourOf(e)}catch{return t.Decoration.defaultFlavour}}selectHandlers(e,r,a,o){const n=this.cache[e]?.[r]?.[a];if(!n)return;const s=n[this.resolveFlavour(o)]||n[t.Decoration.defaultFlavour]||this.firstBucket(n);if(!s)return;const i=Object.values(s);return i.length?i:void 0}firstBucket(e){for(const t of Object.values(e))if(t&&Object.keys(t).length)return t}static getHandlerName(e){return e.name?e.name:r.Hashing.hash(e.toString())}}class E{constructor(){}static getHandlerName(e){return g.getHandlerName(e)}static key(t){return e.OperationKeys.REFLECT+t}static get(e,t,r){return E.registry.get(e,t,r)}static getOpRegistry(){return E.registry||(E.registry=new g),E.registry}static register(e,t,r,a){E.getOpRegistry().register(e,t,r,a)}}class m extends Error{constructor(e,t,r){if(t instanceof m)return t;super(`[${e}][${r}] ${t instanceof Error?t.message:t}`),this.code=r,t instanceof Error&&(this.stack=t.stack)}get message(){return`[${this.name}] ${this.code} | ${super.message.replaceAll(/\[.*?Error\]\[\d+\]\s/g,"")}`}toString(){return this.message}}class O extends m{constructor(e,t=O.name,r=999){super(t,e,r)}}class A extends m{constructor(e,t=A.name,r=400){super(t,e,r)}}class T extends A{constructor(e){super(e,T.name,422)}}class M extends m{constructor(e,t=M.name,r=500){super(t,e,r)}}class w extends M{constructor(e){super(e,w.name,500)}}class D extends A{constructor(e){super(e,D.name,404)}}class P extends A{constructor(e){super(e,P.name,409)}}const v={priority:50},R=(e,t,r,a)=>{const o=r.constructor.name;if(!o)throw new M("Could not determine model class");a=a||{},e.props.handlers[o]&&e.props.handlers[o][t]&&(a={...e.props.handlers[o][t],...a});let n=Object.getPrototypeOf(r);return n===Object.prototype?a:(n.constructor.name===o&&(n=Object.getPrototypeOf(n)),R(e,t,n,a))};function b(e,t,r){const a=[];for(const o in t){const n=t[o];for(const t of n){const{key:n}=t,s=E.get(e,o,r+n);if(!s||!s.length)throw new M(`Could not find registered handler for the operation ${r+n} under property ${o}`);const i=R(t,o,e);if(!i)throw new M("Missing handler arguments for decorators");for(const e of s){const t=E.getHandlerName(e),r=i[t];if(!r)throw new M("Missing handler arguments for handler "+t);const n=r.data;a.push({handler:e,data:[n],prop:[o]})}}}return a}function S(e){const t=e.reduce((e,t)=>{if(!t||!t.data||!t.prop)throw new M("Missing decorator properties or data");if(!t.data[0].group)return e.set(Symbol(),t),e;const r=t.data[0].group;if(e.has(r)){const a=e.get(r);e.set(r,{handler:a.handler,data:[...a.data,...t.data],prop:[...a.prop,...t.prop]})}else e.set(r,{...t});return e},new Map),r=Array.from(t.values());return r.forEach(e=>{const t=e.data.map((t,r)=>({data:t,prop:e.prop[r]}));t.sort((e,t)=>(e.data.groupPriority??50)-(t.data.groupPriority??50)),e.data=t.map(e=>e.data),e.prop=t.map(e=>e.prop)}),r}function K(e){return e.sort((e,t)=>(e.data[0].priority??50)-(t.data[0].priority??50)),e}function L(e,t,r){return I(h.CREATE_UPDATE,e,t,r)}function N(e,t,r){return I(h.UPDATE,e,t,r)}function C(e,t,r){return I(h.CREATE,e,t,r)}function I(t=h.ALL,r,a,o){return k(e.OperationKeys.ON,t,r,a,o)}function x(t=h.ALL,r,a,o){return k(e.OperationKeys.AFTER,t,r,a,o)}function k(r,a=h.ALL,o,n,s=v){return(i,c)=>{const l=i.constructor.name,d=a.reduce((a,d)=>{const p=r+d;let u=t.Metadata.readOperation(i.constructor,c,p);u||(u={operation:d,handlers:{}});const f=E.getHandlerName(o);let y=s;if(n){if(Object.keys(n).filter(e=>e in s).length>0)throw new M("Unable to merge groupSort into dataToAdd due to overlaping keys");y={...s,...n}}return u.handlers[l]&&u.handlers[l][c]&&f in u.handlers[l][c]||(u.handlers[l]=u.handlers[l]||{},u.handlers[l][c]=u.handlers[l][c]||{},u.handlers[l][c][f]={data:y},a.push(((e,t)=>(r,a)=>{E.register(t,e,r,a)})(p,o),t.propMetadata(t.Metadata.key(e.ModelOperations.OPERATIONS,c,p),u))),a},[]);return t.apply(...d)(i,c)}}function U(e,r){return(...a)=>t.metadata(e,{args:a,handler:r})}function V(e){return(r,a)=>t.propMetadata(t.Metadata.key(s.GENERATED,a),e||!0)(r,a)}function j(e,t,a,o,n){if(void 0===o[a])return;const s=r.Hashing.hash(o[a]);n&&o[a]===s||(o[a]=s)}function F(){return t.apply(L(j),t.propMetadata(s.HASH,{}))}function H(e,t){const{args:a,type:o,prefix:n,suffix:s,separator:i,filterEmpty:c,hashResult:l}=t;try{const t=a.map(t=>{if("keys"===o)return t;if(void 0===e[t]){if(c){if(!Array.isArray(c))return;if(c.includes(t))return}throw new M(`Property ${a} does not contain a value to compose from`)}return e[t].toString()}).filter(e=>!c||!!e);n&&t.unshift(n),s&&t.push(s);const d=t.map(e=>"object"==typeof e&&"[object Object]"===e.toString()?JSON.stringify(e):e).join(i);return l?r.Hashing.hash(d):d}catch(e){throw new M("Failed to compose value: "+e)}}function _(e,t,r,a){a[r]=H(a,t)}function $(e,r=!1,a=i,o=!1,n="values",c="",l="",d={priority:55}){return t.Decoration.for(s.COMPOSED).define({decorator:(e,r,a,n,i,c,l)=>(d,p)=>{const u={args:e,hashResult:r,separator:a,type:n,prefix:i,suffix:c,filterEmpty:o},f=[V(s.COMPOSED),L(_,u,l),t.propMetadata(t.Metadata.key(s.COMPOSED,p),u)];return r&&f.push(F()),t.apply(...f)(d,p)},args:[e,r,a,n,c,l,d]}).apply()}function z(e,t=i,r=!1,a=!1,o="",n="",s={priority:55}){return $(e,a,t,r,"keys",o,n,s)}function B(e,t=i,r=!1,a=!1,o="",n="",s={priority:55}){return $(e,a,t,r,"values",o,n,s)}function G(t){return(a,o,n,s,i)=>{if(r.Model.shouldGenerate(s,n,a))try{switch(t){case e.OperationKeys.CREATE:s[n]=1;break;case e.OperationKeys.UPDATE:if(a.get("applyUpdateValidation")&&i&&s[n]!==i[n])throw new T(`Version mismatch: ${s[n]} !== ${i[n]}`);s[n]++;break;default:throw new M("Invalid operation: "+t)}}catch(e){throw new M("Failed to update version: "+e)}}}function Y(){const a=s.VERSION;return(o,n)=>t.Decoration.for(a).define(t.propMetadata(t.Metadata.key(a,n),!0),V(s.VERSION),r.type(Number),C(G(e.OperationKeys.CREATE)),N(G(e.OperationKeys.UPDATE))).apply()(o,n)}function q(){return t.Decoration.for(s.TRANSIENT).define((e,r)=>{t.propMetadata(t.Metadata.key(s.TRANSIENT,r),{})(e,r)}).apply()}function Q(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:[Q,a,o]}).apply()}async function J(e,t,a,o){r.Model.shouldGenerate(o,a,e)&&(o[a]=e.timestamp)}async function W(e,t,r,a){if(a[r])try{a[r]=t.serializer?(new t.serializer).serialize(a[r]):JSON.stringify(a[r])}catch(e){throw new w(`Failed to serialize ${r.toString()} property of model ${a.constructor.name}: ${e}`)}}async function Z(e,t,r,a){if(a[r]&&"string"==typeof a[r])try{a[r]=t.serializer?(new t.serializer).deserialize(a[r]):JSON.parse(a[r])}catch(e){throw new w(`Failed to deserialize ${r.toString()} property of model ${a.constructor.name}: ${e}`)}}function X(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 ee(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 te(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=ee(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 re(e,a,o,...n){const s=X(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=te(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})}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:re(e,this,a,...t)):o||!e?o:re(e,this,a,...t)},r.Model.prototype.segregate=function(){return r.Model.segregate(this)},r.Model.segregate=e=>{if(!t.Metadata.isTransient(e))return{model:e};const a=t.Metadata.validatableProperties(e.constructor),o=t.Metadata.get(e.constructor,s.TRANSIENT),n={model:{},transient:{}};for(const t of a)if(Object.keys(o).includes(t)){n.transient=n.transient||{};try{n.transient[t]=e[t]}catch(e){throw new w(`Failed to serialize transient property ${t}: ${e}`)}}else n.model=n.model||{},n.model[t]=e[t];return n.model=r.Model.build(n.model,e.constructor.name),n},t.Metadata.pk=((e,a=!1)=>{if(!e)throw Error("No model was provided");const o=e instanceof r.Model?e.constructor:e,n=t.Metadata.get(o,s.ID);if(!n)throw Error("No Id property defined for model "+(o?.name||"Unknown Model"));const i=Object.keys(n)[0];if(!a)return i;if(e instanceof r.Model)return e[i];throw Error("Cannot get the value of the pk from the constructor")}).bind(t.Metadata),r.Model.pk=((e,r=!1)=>t.Metadata.pk(e,r)).bind(r.Model),r.Model.pkProps=(e=>t.Metadata.get(e,t.Metadata.key(s.ID,r.Model.pk(e)))).bind(r.Model),r.Model.isTransient=(e=>!!t.Metadata.get("function"!=typeof e?e.constructor:e,s.TRANSIENT)).bind(r.Model),r.Model.composed=((e,a)=>{const o=e instanceof r.Model?e.constructor:e;return a?t.Metadata.get(o,t.Metadata.key(s.COMPOSED,a)):!!t.Metadata.get(o,s.COMPOSED)}).bind(r.Model),r.Model.merge=((e,t,r)=>{const a=e=>Object.entries(e).reduce((e,[t,r])=>(null!=r&&(e[t]=r),e),{});return new(r=r||e.constructor)(Object.assign({},a(e),a(t)))}).bind(r.Model),t.Metadata.saveOperation=((r,a,o,n)=>{a&&t.Metadata.set(r,t.Metadata.key(e.ModelOperations.OPERATIONS,a,o),n)}).bind(t.Metadata),t.Metadata.readOperation=((r,a,o)=>{if(a&&o)return t.Metadata.get(r,t.Metadata.key(e.ModelOperations.OPERATIONS,a,o))}).bind(t.Metadata),t.Metadata.isTransient=(e=>!!t.Metadata.get("function"!=typeof e?e.constructor:e,s.TRANSIENT)).bind(t.Metadata),r.Model.generated=((e,r)=>!!t.Metadata.get("function"!=typeof e?e.constructor:e,t.Metadata.key(s.GENERATED,r))).bind(r.Model),r.Model.shouldGenerate=((e,t,r)=>!r.get("allowGenerationOverride")||void 0===e[t]).bind(r.Model),r.Model.versionProp=(e=>{const r=t.Metadata.get(e.constructor);if(!r||!r[s.VERSION])throw new M("No version found for "+e.constructor.name);return Object.keys(r)[0]}).bind(r.Model),r.Model.versionOf=(e=>{const t=e[r.Model.versionProp(e)];if("number"!=typeof t||1>t)throw new M("Invalid version number: "+t);return t}).bind(r.Model);const ae=r.ModelBuilder.prototype;ae.decorateClass||(ae.decorateClass=function(e){return this._classDecorators||(this._classDecorators=[]),this._classDecorators.push(e),this});const oe=(e,t,r)=>(((e,t)=>{const r=e.attributes;return r?.has(t)?r.get(t):e.attribute(t,Object)})(e,t).decorate(r),e);function ne(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 se(t,r,a,o,n,s){const i=ie(a,o,n);if(!i)return;const c=K(S(b(a,i,n)));for(const n of c){const i=[r,n.data.length>1?n.data:n.data[0],n.prop.length>1?n.prop:n.prop[0],a];if([e.OperationKeys.UPDATE,e.BulkCrudOperationKeys.UPDATE_ALL].includes(o)){if(!s)throw new M("Missing old model for update operation");i.push(s)}try{await n.handler.apply(t,i)}catch(e){if(r.logger.for(se).error(`Failed to execute handler ${n.handler.name} for ${n.prop} on ${a.constructor.name}`),r.get("breakOnHandlerError"))throw e}}}function ie(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)}ae.generated=function(e,t){return oe(this,e,V(t))},ae.hash=function(e){return oe(this,e,F())},ae.composedFromKeys=function(e,t,r,a,o,n,s,i){return oe(this,e,z(t,r,a,o,n,s,i))},ae.composed=function(e,t,r,a,o,n,s,i){return oe(this,e,B(t,r,a,o,n,s,i))},ae.version=function(e){return oe(this,e,Y())},ae.transient=function(e){return oe(this,e,q())};const ce={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},le=e=>(new de).accumulate(Object.assign({},e,{timestamp:new Date,logger:e.logger||n.Logging.get()}));class de{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=le}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 de.factory(Object.assign({},e.cache,t||{}))}static async from(e,t,r,...a){return de.factory(Object.assign({},ce,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):de.from(e,o||{},t,...r)}let i;return n?n instanceof de?(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 pe(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 de))throw new M("Missing a context");let i=e.call(r,...n);return i instanceof Promise&&(i=await i),i=a.call(r,i,s),i instanceof Promise&&(i=await i),i}})}function ue(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 de))throw new M("Missing a context");if(c.get("applyUpdateValidation")&&!c.get("ignoreDevSafeGuards")&&!(i instanceof r.Model)&&(!Array.isArray(i)||!i.every(e=>e instanceof r.Model)))throw new M("No previous versions os models found");let l=e.call(a,...s);return l instanceof Promise&&(l=await l),l=o.call(a,l,i,c),l instanceof Promise&&(l=await l),l}})}const fe="##VERSION##",ye="##PACKAGE##";t.Metadata.registerLibrary(ye,fe),e.BadRequestError=A,e.BaseError=m,e.BlockOperationIf=t=>U(e.OperationKeys.REFLECT+e.OperationKeys.BLOCK,t)(),e.BlockOperations=t=>U(e.OperationKeys.REFLECT+e.OperationKeys.BLOCK,(e,t)=>e.includes(t))(t),e.BreakError=O,e.ConflictError=P,e.Context=de,e.DBKeys=s,e.DBOperations=h,e.DEFAULT_ERROR_MESSAGES=l,e.DEFAULT_TIMESTAMP_FORMAT=c,e.DefaultContextFactory=le,e.DefaultRepositoryFlags=ce,e.DefaultSeparator=i,e.InternalError=M,e.NotFoundError=D,e.Operations=E,e.OperationsRegistry=g,e.PACKAGE_NAME=ye,e.Repository=class{get class(){if(!this._class)throw new M("No class definition found for this repository");return this._class}get pk(){return r.Model.pk(this.class)}get pkProps(){return r.Model.pkProps(this.class)}constructor(e){e&&(this._class=e);const t=this;[this.create,this.read,this.delete].forEach(e=>{const r=e.name;pe(t,t[r+"Prefix"],e,t[r+"Suffix"])}),ue(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 de.args(e.OperationKeys.CREATE,this.class,r);if(t=new this.class(t),a.context.get("ignoreHandlers")||await se(this,a.context,t,e.OperationKeys.CREATE,e.OperationKeys.ON),!a.context.get("ignoreValidation")){const e=await Promise.resolve(t.hasErrors());if(e)throw new T(e.toString())}return[t,...a.args]}async createSuffix(t,r){return r.get("ignoreHandlers")||await se(this,r,t,e.OperationKeys.CREATE,e.OperationKeys.AFTER),t}async createAllPrefix(t,...r){const a=await de.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 se(this,a.context,r,e.OperationKeys.CREATE,e.OperationKeys.ON),r})),!n){const e=ne(await Promise.all(t.map(e=>Promise.resolve(e.hasErrors()))));if(e)throw new T(e)}return[t,...a.args]}async createAllSuffix(t,r){return r.get("ignoreHandlers")||await Promise.all(t.map(t=>se(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 se(this,r,t,e.OperationKeys.READ,e.OperationKeys.AFTER),t}async readPrefix(t,...r){const a=await de.args(e.OperationKeys.READ,this.class,r),o=new this.class;return o[this.pk]=t,await se(this,a.context,o,e.OperationKeys.READ,e.OperationKeys.ON),[t,...a.args]}async readAllPrefix(t,...r){const a=await de.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,se(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=>se(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 se(this,a,t,e.OperationKeys.UPDATE,e.OperationKeys.AFTER,r),t}async updatePrefix(t,...a){const o=await de.args(e.OperationKeys.UPDATE,this.class,a),n=o.context,s=o.context.get("ignoreHandlers"),i=o.context.get("ignoreValidation"),c=t[this.pk];if(!c)throw new M("No value for the Id is defined under the property "+this.pk);let l;if(n.get("applyUpdateValidation")&&(l=await this.read(c),n.get("mergeForUpdate")&&(t=r.Model.merge(l,t,this.class))),s||await se(this,o.context,t,e.OperationKeys.UPDATE,e.OperationKeys.ON,l),!i){const e=await Promise.resolve(t.hasErrors(l));if(e)throw new T(e.toString())}return[t,...o.args,l]}async updateAllPrefix(t,...a){const o=await de.args(e.OperationKeys.UPDATE,this.class,a),n=o.context,s=n.get("ignoreHandlers"),i=n.get("ignoreValidation"),c=t.map(e=>{const t=e[this.pk];if(void 0===t)throw new M("No value for the Id is defined under the property "+this.pk);return t});let l;if(n.get("applyUpdateValidation")&&(l=await this.readAll(c,n),n.get("mergeForUpdate")&&(t=t.map((e,t)=>r.Model.merge(l[t],e,this.class)))),s||await Promise.all(t.map((t,r)=>se(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=ne(e);if(r)throw new T(r)}return[t,...o.args,l]}async updateAllSuffix(t,r,a){if(a.get("applyUpdateValidation")&&!a.get("ignoreDevSafeGuards")&&!r)throw new M("No previous versions of models provided");return a.get("ignoreHandlers")||await Promise.all(t.map((t,o)=>se(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 se(this,r,t,e.OperationKeys.DELETE,e.OperationKeys.AFTER),t}async deletePrefix(t,...r){const a=await de.args(e.OperationKeys.DELETE,this.class,r),o=await this.read(t,...a.args);return await se(this,a.context,o,e.OperationKeys.DELETE,e.OperationKeys.ON),[t,...a.args]}async deleteAllPrefix(t,...r){const a=await de.args(e.OperationKeys.DELETE,this.class,r),o=await this.readAll(t,...a.args);return await Promise.all(o.map(async t=>se(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=>se(this,r,t,e.OperationKeys.DELETE,e.OperationKeys.AFTER))),t}toString(){return this.class.name+" Repository"}},e.SerializationError=w,e.UpdateValidationKeys=d,e.UpdateValidator=p,e.VERSION=fe,e.ValidationError=T,e.after=x,e.afterAny=(e,t,r)=>x(h.ALL,e,t,r),e.afterCreate=(e,t,r)=>x(h.CREATE,e,t,r),e.afterCreateUpdate=(e,t,r)=>x(h.CREATE_UPDATE,e,t,r),e.afterDelete=(e,t,r)=>x(h.DELETE,e,t,r),e.afterRead=(e,t,r)=>x(h.READ,e,t,r),e.afterUpdate=(e,t,r)=>x(h.UPDATE,e,t,r),e.composeAttributeValue=H,e.composed=B,e.composedFromCreateUpdate=_,e.composedFromKeys=z,e.enforceDBDecorators=se,e.generated=V,e.getDbDecorators=ie,e.getHandlerArgs=R,e.getHandlersDecorators=b,e.getValidatableUpdateProps=X,e.groupDecorators=S,e.hash=F,e.hashOnCreateUpdate=j,e.id=()=>t.apply(r.required(),Q(),(e,r)=>t.propMetadata(t.Metadata.key(s.ID,r),{})(e,r)),e.on=I,e.onAny=(e,t,r)=>I(h.ALL,e,t,r),e.onCreate=C,e.onCreateUpdate=L,e.onDelete=(e,t,r)=>I(h.DELETE,e,t,r),e.onRead=(e,t,r)=>I(h.READ,e,t,r),e.onUpdate=N,e.operation=k,e.prefixMethod=(e,t,r,a)=>{const o=a||t.name;e[o]=new Proxy(e[o],{apply:async(e,t,a)=>{let o=r.call(t,...a);return o instanceof Promise&&(o=await o),o=e.call(t,...o),o instanceof Promise&&(o=await o),o}})},e.readonly=Q,e.reduceErrorsToPrint=ne,e.serialize=e=>t.apply(L(W,{serializer:e}),x(h.ALL,Z,{serializer:e}),r.type([String,Object]),t.metadata(s.SERIALIZE,{serializer:e})),e.serializeAfterAll=Z,e.serializeOnCreateUpdate=W,e.sortDecorators=K,e.storeHandlerMetadata=U,e.suffixMethod=(e,t,r,a)=>{const o=a||t.name;e[o]=new Proxy(e[o],{apply:async(e,t,a)=>{let o=e.call(t,...a);return o instanceof Promise&&(o=await o),o=r.call(t,...o),o instanceof Promise&&(o=await o),o}})},e.timestamp=(a=h.CREATE_UPDATE,o=c)=>{const n=s.TIMESTAMP,i=r.Validation.updateKey(s.TIMESTAMP);return t.Decoration.for(n).define({decorator:(a,o)=>{const n=[V(s.TIMESTAMP),r.date(o,l.TIMESTAMP.DATE),r.required(l.TIMESTAMP.REQUIRED),t.propMetadata(r.Validation.key(s.TIMESTAMP),{operation:a,format:o}),I(a,J)];return-1!==a.indexOf(e.OperationKeys.UPDATE)?n.push(t.propMetadata(i,{message:l.TIMESTAMP.INVALID})):n.push(Q()),t.apply(...n)},args:[a,o]}).apply()},e.timestampHandler=J,e.transient=q,e.validateCompare=re,e.validateDecorator=ee,e.validateDecorators=te,e.version=Y,e.versionCreateUpdate=G,e.wrapMethodWithContext=pe,e.wrapMethodWithContextForUpdate=ue},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("@decaf-ts/decorator-validation"),require("tslib"),require("typed-object-accumulator"),require("@decaf-ts/logging")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/decorator-validation","tslib","typed-object-accumulator","@decaf-ts/logging"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["db-decorators"]={},e.decafTsDecoration,e.decafTsDecoratorValidation,e.tslib,e.typedObjectAccumulator,e.decafTsLogging);
|
|
2
2
|
//# sourceMappingURL=db-decorators.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-decorators.cjs","sources":["../src/model/constants.ts","../src/validation/constants.ts","../src/validation/validators/ReadOnlyValidator.ts","../src/validation/validators/TimestampValidator.ts","../src/validation/validators/UpdateValidator.ts","../src/operations/constants.ts","../src/validation/validation.ts","../src/operations/OperationsRegistry.ts","../src/operations/Operations.ts","../src/repository/errors.ts","../src/operations/decorators.ts","../src/model/decorators.ts","../src/validation/decorators.ts","../src/model/validation.ts","../src/repository/utils.ts","../src/overrides/overrides.ts","../src/repository/constants.ts","../src/repository/Context.ts","../src/repository/wrappers.ts","../src/index.ts","../src/repository/Repository.ts","../src/identity/decorators.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DBKeys","REFLECT","ModelKeys","MODEL","REPOSITORY","CLASS","ID","INDEX","UNIQUE","SERIALIZE","READONLY","TIMESTAMP","TRANSIENT","HASH","COMPOSED","GENERATED","VERSION","ORIGINAL","DefaultSeparator","DEFAULT_TIMESTAMP_FORMAT","DEFAULT_ERROR_MESSAGES","INVALID","REQUIRED","DATE","UpdateValidationKeys","ReadOnlyValidator","Validator","constructor","super","hasErrors","value","args","updateHasErrors","oldValue","message","undefined","isEqual","this","getMessage","__decorate","validator","TimestampValidator","Date","e","UpdateValidator","DecoratorMessages","DEFAULT","acceptedTypes","OperationKeys","ModelOperations","BulkCrudOperationKeys","Validation","updateKey","key","DBOperations","CREATE","READ","UPDATE","DELETE","CREATE_UPDATE","READ_CREATE","ALL","OperationsRegistry","cache","get","target","propKey","operation","accum","owner","resolveOwner","name","resolveTargetName","handlers","selectHandlers","length","unshift","Object","prototype","getPrototypeOf","proto","register","handler","handlerName","getHandlerName","flavour","resolveFlavour","Decoration","defaultFlavour","Metadata","flavourOf","byOperation","bucket","firstBucket","values","keys","Hashing","hash","toString","Operations","str","targetName","registry","getOpRegistry","BaseError","Error","msg","code","stack","replaceAll","BreakError","BadRequestError","ValidationError","InternalError","SerializationError","NotFoundError","ConflictError","DefaultGroupSort","priority","getHandlerArgs","dec","prop","m","props","getHandlersDecorators","model","decorators","prefix","decs","handlerArgs","argsEntry","data","push","groupDecorators","grouped","reduce","acc","group","set","Symbol","groupKey","has","existing","Map","groups","Array","from","forEach","combined","map","d","i","sort","a","b","groupPriority","c","sortDecorators","onCreateUpdate","groupsort","on","onUpdate","onCreate","op","ON","after","AFTER","baseOp","dataToAdd","propertyKey","compoundKey","readOperation","handlerKey","mergeData","filter","handle","propMetadata","OPERATIONS","apply","storeHandlerMetadata","params","metadata","generated","type","hashOnCreateUpdate","context","oldModel","composeAttributeValue","suffix","separator","filterEmpty","hashResult","composed","arg","isArray","includes","JSON","stringify","join","composedFromCreateUpdate","composedFrom","for","define","decorator","property","versionCreateUpdate","Model","shouldGenerate","readonly","meta","description","async","innerValidationDecorator","timestampHandler","timestamp","serializeOnCreateUpdate","serializer","serialize","serializeAfterAll","deserialize","parse","getValidatableUpdateProps","propsToIgnore","decoratedProperties","hasOwnProperty","call","validationFor","validateDecorator","newModel","toConditionalPromise","decoratorProps","maybeError","validateDecorators","result","decoratorKey","validationErrors","ValidationKeys","LIST","newPropValue","oldPropValue","newValues","Set","oldValues","allowedTypes","class","clazz","customTypes","flat","t","String","toLowerCase","errs","childValue","isModel","id","pk","oldListModel","find","el","Promise","all","then","every","r","allEmpty","promises","resolvedValues","res","val","validateCompare","ValidatableUpdateProps","nestedErrors","propValue","designTypes","getPropDesignTypes","some","TYPE","propErrors","isConstr","isPropertyModel","instance","Constr","designTypeNames","nestedPropsToIgnore","getChildNestedPropsToIgnore","entries","error","ModelErrorDefinition","merged","allSettled","results","parentProp","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","status","reason","reduceErrorsToPrint","errors","enforceDBDecorators","repo","getDbDecorators","sortedDecorators","UPDATE_ALL","logger","extraPrefix","replace","obj","isTransient","previousVersion","exclusions","isAsync","validate","resolve","resolvedErrs","segregate","validatableProperties","transientProps","transient","build","keyValue","constr","idProp","bind","pkProps","merge","extractData","assign","saveOperation","ctx","versionProp","versionOf","version","DefaultRepositoryFlags","parentContext","childContexts","ignoredValidationProperties","callArgs","writeOperation","affectedTables","breakOnHandlerError","rebuildWithTransient","ignoreValidation","ignoreHandlers","ignoreDevSafeGuards","mergeForUpdate","applyUpdateValidation","allowGenerationOverride","DefaultContextFactory","Context","accumulate","Logging","ObjectAccumulator","defineProperty","writable","enumerable","configurable","factory","parent","childFrom","overrides","contextual","last","pop","getContext","wrapMethodWithContext","before","method","methodName","Proxy","thisArg","argArray","transformedArgs","wrapMethodWithContextForUpdate","o","PACKAGE_NAME","registerLibrary","BLOCK","operations","_class","self","create","read","delete","update","createAll","models","createPrefix","contextArgs","createSuffix","createAllPrefix","ignoreValidate","createAllSuffix","readAll","readSuffix","readPrefix","readAllPrefix","k","readAllSuffix","updateAll","updateSuffix","updatePrefix","updateAllPrefix","ids","oldModels","modelsValidation","updateAllSuffix","deleteAll","deleteSuffix","deletePrefix","deleteAllPrefix","deleteAllSuffix","required","afterName","beforeName","format","decorationKey","updateValidationKey","date","indexOf","attribute","Number"],"mappings":"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"}
|
|
1
|
+
{"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/overrides/overrides.ts","../src/overrides/ModelBuilderExtensions.ts","../src/repository/utils.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,null],"names":["DBKeys","REFLECT","ModelKeys","MODEL","REPOSITORY","CLASS","ID","INDEX","UNIQUE","SERIALIZE","READONLY","TIMESTAMP","TRANSIENT","HASH","COMPOSED","GENERATED","VERSION","ORIGINAL","DefaultSeparator","DEFAULT_TIMESTAMP_FORMAT","DEFAULT_ERROR_MESSAGES","INVALID","REQUIRED","DATE","UpdateValidationKeys","ReadOnlyValidator","Validator","constructor","super","hasErrors","value","args","updateHasErrors","oldValue","message","undefined","isEqual","this","getMessage","__decorate","validator","TimestampValidator","Date","e","UpdateValidator","DecoratorMessages","DEFAULT","acceptedTypes","OperationKeys","ModelOperations","BulkCrudOperationKeys","Validation","updateKey","key","DBOperations","CREATE","READ","UPDATE","DELETE","CREATE_UPDATE","READ_CREATE","ALL","OperationsRegistry","cache","get","target","propKey","operation","accum","owner","resolveOwner","name","resolveTargetName","handlers","selectHandlers","length","unshift","Object","prototype","getPrototypeOf","proto","register","handler","handlerName","getHandlerName","flavour","resolveFlavour","Decoration","defaultFlavour","Metadata","flavourOf","byOperation","bucket","firstBucket","values","keys","Hashing","hash","toString","Operations","str","targetName","registry","getOpRegistry","BaseError","Error","msg","code","stack","replaceAll","BreakError","BadRequestError","ValidationError","InternalError","SerializationError","NotFoundError","ConflictError","DefaultGroupSort","priority","getHandlerArgs","dec","prop","m","props","getHandlersDecorators","model","decorators","prefix","decs","handlerArgs","argsEntry","data","push","groupDecorators","grouped","reduce","acc","group","set","Symbol","groupKey","has","existing","Map","groups","Array","from","forEach","combined","map","d","i","sort","a","b","groupPriority","c","sortDecorators","onCreateUpdate","groupsort","on","onUpdate","onCreate","op","ON","after","AFTER","baseOp","dataToAdd","propertyKey","compoundKey","readOperation","handlerKey","mergeData","filter","handle","propMetadata","OPERATIONS","apply","storeHandlerMetadata","params","metadata","generated","type","hashOnCreateUpdate","context","oldModel","composeAttributeValue","suffix","separator","filterEmpty","hashResult","composed","arg","isArray","includes","JSON","stringify","join","composedFromCreateUpdate","composedFrom","for","define","decorator","property","composedFromKeys","versionCreateUpdate","Model","shouldGenerate","version","Number","transient","attribute","readonly","meta","description","async","innerValidationDecorator","timestampHandler","timestamp","serializeOnCreateUpdate","serializer","serialize","serializeAfterAll","deserialize","parse","getValidatableUpdateProps","propsToIgnore","decoratedProperties","hasOwnProperty","call","validationFor","validateDecorator","newModel","toConditionalPromise","decoratorProps","maybeError","validateDecorators","result","decoratorKey","validationErrors","ValidationKeys","LIST","newPropValue","oldPropValue","newValues","Set","oldValues","allowedTypes","class","clazz","customTypes","flat","t","String","toLowerCase","errs","childValue","isModel","id","pk","oldListModel","find","el","Promise","all","then","every","r","allEmpty","promises","resolvedValues","res","val","validateCompare","ValidatableUpdateProps","nestedErrors","propValue","designTypes","getPropDesignTypes","some","TYPE","propErrors","isConstr","isPropertyModel","instance","Constr","designTypeNames","nestedPropsToIgnore","getChildNestedPropsToIgnore","entries","error","ModelErrorDefinition","merged","allSettled","results","parentProp","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","status","reason","isTransient","previousVersion","exclusions","isAsync","validate","resolve","resolvedErrs","segregate","validatableProperties","transientProps","build","keyValue","constr","idProp","bind","pkProps","merge","extractData","assign","saveOperation","ctx","versionProp","versionOf","builderPrototype","ModelBuilderImpl","decorateClass","_classDecorators","applyDecorator","builder","attr","attributes","ensureAttributeBuilder","decorate","reduceErrorsToPrint","errors","enforceDBDecorators","repo","getDbDecorators","sortedDecorators","UPDATE_ALL","logger","extraPrefix","replace","obj","hashValue","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"],"mappings":"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"}
|
package/dist/db-decorators.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Decoration as e,Metadata as t,propMetadata as r,apply as n,metadata as s}from"@decaf-ts/decoration";import{ModelKeys as o,validator as a,Validator as i,isEqual as c,DEFAULT_ERROR_MESSAGES as l,Validation as u,Hashing as d,type as f,Model as p,innerValidationDecorator as h,date as E,required as g,ValidationKeys as y,getChildNestedPropsToIgnore as m,ModelErrorDefinition as A,toConditionalPromise as T,validate as w}from"@decaf-ts/decorator-validation";import{__decorate as O,__metadata as P}from"tslib";import{ObjectAccumulator as v}from"typed-object-accumulator";import{Logging as R}from"@decaf-ts/logging";const D={REFLECT:o.MODEL+".persistence.",REPOSITORY:"repository",CLASS:"_class",ID:"id",INDEX:"index",UNIQUE:"unique",SERIALIZE:"serialize",READONLY:"readonly",TIMESTAMP:"timestamp",TRANSIENT:"transient",HASH:"hash",COMPOSED:"composed",GENERATED:"generated",VERSION:"version",ORIGINAL:"__originalObj"},b="_",S="dd/MM/yyyy HH:mm:ss:S",L={ID:{INVALID:"This Id is invalid",REQUIRED:"The Id is mandatory"},READONLY:{INVALID:"This cannot be updated"},TIMESTAMP:{REQUIRED:"Timestamp is Mandatory",DATE:"The Timestamp must the a valid date",INVALID:"This value must always increase"}},N={REFLECT:"db.update.validation.",TIMESTAMP:D.TIMESTAMP,READONLY:D.READONLY};let I=class extends i{constructor(){super(L.READONLY.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,r){if(void 0!==e)return c(e,t)?void 0:this.getMessage(r||this.message)}};I=O([a(N.READONLY),P("design:paramtypes",[])],I);let k=class extends i{constructor(){super(L.TIMESTAMP.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,r){if(void 0!==e){r=r||this.getMessage(r||this.message);try{e=new Date(e),t=new Date(t)}catch(e){return r}return e>t?void 0:r}}};k=O([a(N.TIMESTAMP),P("design:paramtypes",[])],k);class x extends i{constructor(e=l.DEFAULT,...t){super(e,...t)}}var C,M,j;u.updateKey=e=>N.REFLECT+e,(e=>{e.REFLECT="decaf.model.db.operations.",e.CREATE="create",e.READ="read",e.UPDATE="update",e.DELETE="delete",e.ON="on.",e.AFTER="after.",e.BLOCK="block"})(C||(C={})),(e=>{e.OPERATIONS="operations",e.RELATIONS="relations"})(M||(M={})),(e=>{e.CREATE_ALL="createAll",e.READ_ALL="readAll",e.UPDATE_ALL="updateAll",e.DELETE_ALL="deleteAll"})(j||(j={}));const U={CREATE:[C.CREATE],READ:[C.READ],UPDATE:[C.UPDATE],DELETE:[C.DELETE],CREATE_UPDATE:[C.CREATE,C.UPDATE],READ_CREATE:[C.READ,C.CREATE],ALL:[C.CREATE,C.READ,C.UPDATE,C.DELETE]};class F{constructor(){this.cache={}}get(e,t,r,n){n=n||[];const s=this.resolveOwner(e),o=this.resolveTargetName(e,s);if(o){const e=this.selectHandlers(o,t,r,s);e?.length&&n.unshift(...e)}else if("string"==typeof e||e===Object.prototype||Object.getPrototypeOf(e)===Object.prototype)return n;let a=Object.getPrototypeOf(e);return a?(a.constructor&&a.constructor.name===o&&(a=Object.getPrototypeOf(a)),a?this.get(a,t,r,n):n):n}register(e,t,r,n){const s=r.constructor.name,o=F.getHandlerName(e),a=this.resolveFlavour(r.constructor);this.cache[s]||(this.cache[s]={}),this.cache[s][n]||(this.cache[s][n]={}),this.cache[s][n][t]||(this.cache[s][n][t]={}),this.cache[s][n][t][a]||(this.cache[s][n][t][a]={}),this.cache[s][n][t][a][o]||(this.cache[s][n][t][a][o]=e)}resolveOwner(e){if(e&&"string"!=typeof e)return"function"==typeof e?e:e.constructor}resolveTargetName(e,t){return"string"==typeof e?e:t?.name}resolveFlavour(r){if(!r)return e.defaultFlavour;try{return t.flavourOf(r)}catch{return e.defaultFlavour}}selectHandlers(t,r,n,s){const o=this.cache[t]?.[r]?.[n];if(!o)return;const a=o[this.resolveFlavour(s)]||o[e.defaultFlavour]||this.firstBucket(o);if(!a)return;const i=Object.values(a);return i.length?i:void 0}firstBucket(e){for(const t of Object.values(e))if(t&&Object.keys(t).length)return t}static getHandlerName(e){return e.name?e.name:d.hash(e.toString())}}class H{constructor(){}static getHandlerName(e){return F.getHandlerName(e)}static key(e){return C.REFLECT+e}static get(e,t,r){return H.registry.get(e,t,r)}static getOpRegistry(){return H.registry||(H.registry=new F),H.registry}static register(e,t,r,n){H.getOpRegistry().register(e,t,r,n)}}class $ extends Error{constructor(e,t,r){if(t instanceof $)return t;super(`[${e}][${r}] ${t instanceof Error?t.message:t}`),this.code=r,t instanceof Error&&(this.stack=t.stack)}get message(){return`[${this.name}] ${this.code} | ${super.message.replaceAll(/\[.*?Error\]\[\d+\]\s/g,"")}`}toString(){return this.message}}class V extends ${constructor(e,t=V.name,r=999){super(t,e,r)}}class _ extends ${constructor(e,t=_.name,r=400){super(t,e,r)}}class z extends _{constructor(e){super(e,z.name,422)}}class G extends ${constructor(e,t=G.name,r=500){super(t,e,r)}}class Y extends G{constructor(e){super(e,Y.name,500)}}class K extends _{constructor(e){super(e,K.name,404)}}class B extends _{constructor(e){super(e,B.name,409)}}const Q={priority:50},J=(e,t,r,n)=>{const s=r.constructor.name;if(!s)throw new G("Could not determine model class");n=n||{},e.props.handlers[s]&&e.props.handlers[s][t]&&(n={...e.props.handlers[s][t],...n});let o=Object.getPrototypeOf(r);return o===Object.prototype?n:(o.constructor.name===s&&(o=Object.getPrototypeOf(o)),J(e,t,o,n))};function q(e,t,r){const n=[];for(const s in t){const o=t[s];for(const t of o){const{key:o}=t,a=H.get(e,s,r+o);if(!a||!a.length)throw new G(`Could not find registered handler for the operation ${r+o} under property ${s}`);const i=J(t,s,e);if(!i)throw new G("Missing handler arguments for decorators");for(const e of a){const t=H.getHandlerName(e),r=i[t];if(!r)throw new G("Missing handler arguments for handler "+t);const o=r.data;n.push({handler:e,data:[o],prop:[s]})}}}return n}function Z(e){const t=e.reduce((e,t)=>{if(!t||!t.data||!t.prop)throw new G("Missing decorator properties or data");if(!t.data[0].group)return e.set(Symbol(),t),e;const r=t.data[0].group;if(e.has(r)){const n=e.get(r);e.set(r,{handler:n.handler,data:[...n.data,...t.data],prop:[...n.prop,...t.prop]})}else e.set(r,{...t});return e},new Map),r=Array.from(t.values());return r.forEach(e=>{const t=e.data.map((t,r)=>({data:t,prop:e.prop[r]}));t.sort((e,t)=>(e.data.groupPriority??50)-(t.data.groupPriority??50)),e.data=t.map(e=>e.data),e.prop=t.map(e=>e.prop)}),r}function W(e){return e.sort((e,t)=>(e.data[0].priority??50)-(t.data[0].priority??50)),e}function X(e,t,r){return oe(U.CREATE_UPDATE,e,t,r)}function ee(e,t,r){return oe(U.UPDATE,e,t,r)}function te(e,t,r){return oe(U.CREATE,e,t,r)}function re(e,t,r){return oe(U.READ,e,t,r)}function ne(e,t,r){return oe(U.DELETE,e,t,r)}function se(e,t,r){return oe(U.ALL,e,t,r)}function oe(e=U.ALL,t,r,n){return pe(C.ON,e,t,r,n)}function ae(e,t,r){return fe(U.CREATE_UPDATE,e,t,r)}function ie(e,t,r){return fe(U.UPDATE,e,t,r)}function ce(e,t,r){return fe(U.CREATE,e,t,r)}function le(e,t,r){return fe(U.READ,e,t,r)}function ue(e,t,r){return fe(U.DELETE,e,t,r)}function de(e,t,r){return fe(U.ALL,e,t,r)}function fe(e=U.ALL,t,r,n){return pe(C.AFTER,e,t,r,n)}function pe(e,s=U.ALL,o,a,i=Q){return(c,l)=>{const u=c.constructor.name,d=s.reduce((n,s)=>{const d=e+s;let f=t.readOperation(c.constructor,l,d);f||(f={operation:s,handlers:{}});const p=H.getHandlerName(o);let h=i;if(a){if(Object.keys(a).filter(e=>e in i).length>0)throw new G("Unable to merge groupSort into dataToAdd due to overlaping keys");h={...i,...a}}return f.handlers[u]&&f.handlers[u][l]&&p in f.handlers[u][l]||(f.handlers[u]=f.handlers[u]||{},f.handlers[u][l]=f.handlers[u][l]||{},f.handlers[u][l][p]={data:h},n.push(((e,t)=>(r,n)=>{H.register(t,e,r,n)})(d,o),r(t.key(M.OPERATIONS,l,d),f))),n},[]);return n(...d)(c,l)}}function he(e,t){return(...r)=>s(e,{args:r,handler:t})}const Ee=e=>he(C.REFLECT+C.BLOCK,(e,t)=>e.includes(t))(e),ge=e=>he(C.REFLECT+C.BLOCK,e)();function ye(e){return(n,s)=>r(t.key(D.GENERATED,s),e||!0)(n,s)}function me(e,t,r,n,s){if(void 0===n[r])return;const o=d.hash(n[r]);s&&n[r]===o||(n[r]=o)}function Ae(){return n(X(me),r(D.HASH,{}))}function Te(e,t){const{args:r,type:n,prefix:s,suffix:o,separator:a,filterEmpty:i,hashResult:c}=t;try{const t=r.map(t=>{if("keys"===n)return t;if(void 0===e[t]){if(i){if(!Array.isArray(i))return;if(i.includes(t))return}throw new G(`Property ${r} does not contain a value to compose from`)}return e[t].toString()}).filter(e=>!i||!!e);s&&t.unshift(s),o&&t.push(o);const l=t.map(e=>"object"==typeof e&&"[object Object]"===e.toString()?JSON.stringify(e):e).join(a);return c?d.hash(l):l}catch(e){throw new G("Failed to compose value: "+e)}}function we(e,t,r,n){n[r]=Te(n,t)}function Oe(s,o=!1,a=b,i=!1,c="values",l="",u="",d={priority:55}){return e.for(D.COMPOSED).define({decorator:(e,s,o,a,c,l,u)=>(d,f)=>{const p={args:e,hashResult:s,separator:o,type:a,prefix:c,suffix:l,filterEmpty:i},h=[ye(D.COMPOSED),X(we,p,u),r(t.key(D.COMPOSED,f),p)];return s&&h.push(Ae()),n(...h)(d,f)},args:[s,o,a,c,l,u,d]}).apply()}function Pe(e,t=b,r=!1,n=!1,s="",o="",a={priority:55}){return Oe(e,n,t,r,"keys",s,o,a)}function ve(e,t=b,r=!1,n=!1,s="",o="",a={priority:55}){return Oe(e,n,t,r,"values",s,o,a)}function Re(e){return(t,r,n,s,o)=>{if(p.shouldGenerate(s,n,t))try{switch(e){case C.CREATE:s[n]=1;break;case C.UPDATE:if(t.get("applyUpdateValidation")&&o&&s[n]!==o[n])throw new z(`Version mismatch: ${s[n]} !== ${o[n]}`);s[n]++;break;default:throw new G("Invalid operation: "+e)}}catch(e){throw new G("Failed to update version: "+e)}}}function De(){const n=D.VERSION;return(s,o)=>e.for(n).define(r(t.key(n,o),!0),ye(D.VERSION),f(Number),te(Re(C.CREATE)),ee(Re(C.UPDATE))).apply()(s,o)}function be(){return e.for(D.TRANSIENT).define((e,n)=>{r(t.key(D.TRANSIENT,n),{})(e,n)}).apply()}function Se(t=L.READONLY.INVALID){const r=D.READONLY,n={message:t,description:"defines the attribute as readOnly",async:!1};return e.for(r).define({decorator:h,args:[Se,r,n]}).apply()}async function Le(e,t,r,n){p.shouldGenerate(n,r,e)&&(n[r]=e.timestamp)}function Ne(t=U.CREATE_UPDATE,s=S){const o=D.TIMESTAMP,a=u.updateKey(D.TIMESTAMP);return e.for(o).define({decorator:(e,t)=>{const s=[ye(D.TIMESTAMP),E(t,L.TIMESTAMP.DATE),g(L.TIMESTAMP.REQUIRED),r(u.key(D.TIMESTAMP),{operation:e,format:t}),oe(e,Le)];return-1!==e.indexOf(C.UPDATE)?s.push(r(a,{message:L.TIMESTAMP.INVALID})):s.push(Se()),n(...s)},args:[t,s]}).apply()}async function Ie(e,t,r,n){if(n[r])try{n[r]=t.serializer?(new t.serializer).serialize(n[r]):JSON.stringify(n[r])}catch(e){throw new Y(`Failed to serialize ${r.toString()} property of model ${n.constructor.name}: ${e}`)}}async function ke(e,t,r,n){if(n[r]&&"string"==typeof n[r])try{n[r]=t.serializer?(new t.serializer).deserialize(n[r]):JSON.parse(n[r])}catch(e){throw new Y(`Failed to deserialize ${r.toString()} property of model ${n.constructor.name}: ${e}`)}}function xe(e){return n(X(Ie,{serializer:e}),fe(U.ALL,ke,{serializer:e}),f([String,Object]),s(D.SERIALIZE,{serializer:e}))}function Ce(){return n(g(),Se(),(e,n)=>r(t.key(D.ID,n),{})(e,n))}function Me(e,r){const n=[];for(const s in e){if(!Object.prototype.hasOwnProperty.call(e,s)||r.includes(s))continue;const o=t.validationFor(e.constructor,s)||{};n.push({prop:s,decorators:o})}return n}function je(e,t,r,n,s){const o=u.get(n.key);if(!o)throw Error("Missing validator for "+n.key);if(!o.updateHasErrors)return T(void 0,s);if(!s&&n.async)return T(void 0,s);const a=Object.values(n)||{},i=o.updateHasErrors(e[r],t[r],...a);return T(i,s)}function Ue(e,t,r,n,s){const o={};for(const a in n){const i={...n[a],key:a};if(!s&&i.async)continue;let c=je(e,t,r,i,s);if(i.key===y.LIST&&(!c||s)){const n=e[r],o=t[r],a=n instanceof Set?[...n]:n,l=o instanceof Set?[...o]:o;if(a?.length){const e=[i.class||i.clazz||i.customTypes].flat().map(e=>((e=(e="function"!=typeof e||e.name?e:e()).name?e.name:e)+"").toLowerCase()),t=a.map(t=>{if(p.isModel(t)){const e=p.pk(t,!0);if(!e)return"Failed to find model id";const r=l.find(t=>e===p.pk(t,!0));return t.hasErrors(r)}return e.includes(typeof t)?void 0:"Value has no validatable type"});if(s)c=Promise.all(t).then(e=>e.every(e=>!e)?void 0:e);else{const e=t.every(e=>!e);c=t.length>0&&!e?t:void 0}}}c&&(o[i.key]=c)}if(!s)return Object.keys(o).length>0?o:void 0;const a=Object.keys(o),i=Object.values(o);return Promise.all(i).then(e=>{const t={};for(let r=0;r<e.length;r++){const n=e[r];void 0!==n&&(t[a[r]]=n)}return Object.keys(t).length>0?t:void 0})}function Fe(e,r,n,...s){const a=Me(r,s),i={},c={};for(const{prop:l,decorators:u}of a){const a=l+"",d=r[l],{designTypes:f}=t.getPropDesignTypes(r.constructor,l);if(!f)continue;if(f.some(e=>[Array.name,Set.name].includes(e))){if(!u||!Object.keys(u).includes(y.LIST)){i[a]={[y.TYPE]:`Array or Set property '${a}' requires a @list decorator`};continue}if(d&&!(Array.isArray(d)||d instanceof Set)){i[a]={[y.TYPE]:`Property '${l+""}' must be either an Array or a Set`};continue}}const h=Ue(r,e,a,u,n)||{},E=p.isPropertyModel(r,a);if(null!=d&&E){const t=d,r=f.map(e=>p.get(e.name||e)).find(e=>!!e),n=f.map(e=>"function"==typeof e?e.name?e.name.toLowerCase():e()?.name.toLowerCase():e.toLowerCase());if(r&&d instanceof r){const r=m(a,...s);c[a]=t.hasErrors(e[l],...r)}else n.includes(typeof d)||(h[y.TYPE]=r?"Value must be an instance of "+r.name:`Unable to verify type consistency, missing model registry for ${f.toString()} on prop ${a}`,delete h[o.TYPE])}(Object.keys(h).length>0||n)&&(i[a]=h),n||Object.entries(c[a]||{}).forEach(([e,t])=>{void 0!==t&&(i[`${a}.${e}`]=t)})}if(!n)return Object.keys(i).length>0?new A(i):void 0;const l=i,u=Object.keys(l),d=Object.values(l);return Promise.allSettled(d).then(async e=>{const t={};for(const[e,r]of Object.entries(c)){const n=await r;n&&Object.entries(n).forEach(([r,n])=>{void 0!==n&&(t[[e,r].join(".")]=n)})}for(let r=0;r<e.length;r++){const n=u[r],s=e[r];"fulfilled"===s.status&&void 0!==s.value?t[n]=s.value:"rejected"===s.status&&(t[n]=s.reason instanceof Error?s.reason.message:(s.reason||"Validation failed")+"")}return Object.keys(t).length>0?new A(t):void 0})}function He(e){return e.reduce((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e),void 0)}async function $e(e,t,r,n,s,o){const a=Ve(r,n,s);if(!a)return;const i=W(Z(q(r,a,s)));for(const s of i){const a=[t,s.data.length>1?s.data:s.data[0],s.prop.length>1?s.prop:s.prop[0],r];if([C.UPDATE,j.UPDATE_ALL].includes(n)){if(!o)throw new G("Missing old model for update operation");a.push(o)}try{await s.handler.apply(e,a)}catch(e){if(t.logger.for($e).error(`Failed to execute handler ${s.handler.name} for ${s.prop} on ${r.constructor.name}`),t.get("breakOnHandlerError"))throw e}}}function Ve(e,r,n){const s=n?.replace(/[.]$/,""),o=t.get(e.constructor,M.OPERATIONS);if(o)return Object.keys(o).reduce((e,t)=>{const n=s?o[t][s]||{}:o[t],a=Object.keys(n).filter(e=>e===r),i=[];for(const e of a)i.push({key:e,props:n[e]});return i&&i.length&&(e||(e={}),e[t]=i),e},void 0)}p.prototype.isTransient=function(){return t.isTransient(this)},p.prototype.hasErrors=function(e,...t){!e||e instanceof p||(t.unshift(e),e=void 0);const r=this.isAsync(),n=w(this,r,...t);return r?Promise.resolve(n).then(n=>n||!e?n:Fe(e,this,r,...t)):n||!e?n:Fe(e,this,r,...t)},p.prototype.segregate=function(){return p.segregate(this)},p.segregate=e=>{if(!t.isTransient(e))return{model:e};const r=t.validatableProperties(e.constructor),n=t.get(e.constructor,D.TRANSIENT),s={model:{},transient:{}};for(const t of r)if(Object.keys(n).includes(t)){s.transient=s.transient||{};try{s.transient[t]=e[t]}catch(e){throw new Y(`Failed to serialize transient property ${t}: ${e}`)}}else s.model=s.model||{},s.model[t]=e[t];return s.model=p.build(s.model,e.constructor.name),s},t.pk=((e,r=!1)=>{if(!e)throw Error("No model was provided");const n=e instanceof p?e.constructor:e,s=t.get(n,D.ID);if(!s)throw Error("No Id property defined for model "+(n?.name||"Unknown Model"));const o=Object.keys(s)[0];if(!r)return o;if(e instanceof p)return e[o];throw Error("Cannot get the value of the pk from the constructor")}).bind(t),p.pk=((e,r=!1)=>t.pk(e,r)).bind(p),p.pkProps=(e=>t.get(e,t.key(D.ID,p.pk(e)))).bind(p),p.isTransient=(e=>!!t.get("function"!=typeof e?e.constructor:e,D.TRANSIENT)).bind(p),p.composed=((e,r)=>{const n=e instanceof p?e.constructor:e;return r?t.get(n,t.key(D.COMPOSED,r)):!!t.get(n,D.COMPOSED)}).bind(p),p.merge=((e,t,r)=>{const n=e=>Object.entries(e).reduce((e,[t,r])=>(null!=r&&(e[t]=r),e),{});return new(r=r||e.constructor)(Object.assign({},n(e),n(t)))}).bind(p),t.saveOperation=((e,r,n,s)=>{r&&t.set(e,t.key(M.OPERATIONS,r,n),s)}).bind(t),t.readOperation=((e,r,n)=>{if(r&&n)return t.get(e,t.key(M.OPERATIONS,r,n))}).bind(t),t.isTransient=(e=>!!t.get("function"!=typeof e?e.constructor:e,D.TRANSIENT)).bind(t),p.generated=((e,r)=>!!t.get("function"!=typeof e?e.constructor:e,t.key(D.GENERATED,r))).bind(p),p.shouldGenerate=((e,t,r)=>!r.get("allowGenerationOverride")||void 0===e[t]).bind(p),p.versionProp=(e=>{const r=t.get(e.constructor);if(!r||!r[D.VERSION])throw new G("No version found for "+e.constructor.name);return Object.keys(r)[0]}).bind(p),p.versionOf=(e=>{const t=e[p.versionProp(e)];if("number"!=typeof t||1>t)throw new G("Invalid version number: "+t);return t}).bind(p);const _e={parentContext:void 0,childContexts:[],ignoredValidationProperties:[],callArgs:[],writeOperation:!1,affectedTables:[],operation:void 0,breakOnHandlerError:!0,rebuildWithTransient:!0,ignoreValidation:!1,ignoreHandlers:!1,ignoreDevSafeGuards:!1,mergeForUpdate:!0,applyUpdateValidation:!0,allowGenerationOverride:!1},ze=e=>(new Ge).accumulate(Object.assign({},e,{timestamp:new Date,logger:e.logger||R.get()}));class Ge{constructor(e){this.cache=new v,Object.defineProperty(this,"cache",{value:e?e.cache:new v,writable:!1,enumerable:!1,configurable:!0})}static{this.factory=ze}accumulate(e){return Object.defineProperty(this,"cache",{value:this.cache.accumulate(e),writable:!1,enumerable:!1,configurable:!0}),this}get logger(){return this.cache.logger}get timestamp(){return this.cache.timestamp}get(e){try{return this.cache.get(e)}catch(t){const r=this.cache.parentContext;if(r)return r.get(e);throw t}}static childFrom(e,t){return Ge.factory(Object.assign({},e.cache,t||{}))}static async from(e,t,r,...n){return Ge.factory(Object.assign({},_e,t,{operation:e,model:r,logger:t.logger||R.get()}))}static async args(e,t,r,n,s){const o=r.pop();async function a(){return n?n.context(e,s||{},t,...r):Ge.from(e,s||{},t,...r)}let i;return o?o instanceof Ge?(i=o,r.push(o)):(r.push(o),i=await a(),r.push(i)):(i=await a(),r.push(i)),{context:i,args:r}}}function Ye(e,t,r,n){const s=n||t.name;e[s]=new Proxy(e[s],{apply:async(e,t,n)=>{let s=r.call(t,...n);return s instanceof Promise&&(s=await s),s=e.call(t,...s),s instanceof Promise&&(s=await s),s}})}function Ke(e,t,r,n){const s=n||t.name;e[s]=new Proxy(e[s],{apply:async(e,t,n)=>{let s=e.call(t,...n);return s instanceof Promise&&(s=await s),s=r.call(t,...s),s instanceof Promise&&(s=await s),s}})}function Be(e,t,r,n,s){const o=s||r.name;e[o]=new Proxy(e[o],{apply:async(e,r,s)=>{let o=t.call(r,...s);o instanceof Promise&&(o=await o);const a=o[o.length-1];if(!(a instanceof Ge))throw new G("Missing a context");let i=e.call(r,...o);return i instanceof Promise&&(i=await i),i=n.call(r,i,a),i instanceof Promise&&(i=await i),i}})}function Qe(e,t,r,n,s){const o=s||r.name;e[o]=new Proxy(e[o],{apply:async(e,r,s)=>{let o=t.call(r,...s);o instanceof Promise&&(o=await o);const a=o.pop(),i=o[o.length-1];if(!(i instanceof Ge))throw new G("Missing a context");if(i.get("applyUpdateValidation")&&!i.get("ignoreDevSafeGuards")&&!(a instanceof p)&&(!Array.isArray(a)||!a.every(e=>e instanceof p)))throw new G("No previous versions os models found");let c=e.call(r,...o);return c instanceof Promise&&(c=await c),c=n.call(r,c,a,i),c instanceof Promise&&(c=await c),c}})}class Je{get class(){if(!this._class)throw new G("No class definition found for this repository");return this._class}get pk(){return p.pk(this.class)}get pkProps(){return p.pkProps(this.class)}constructor(e){e&&(this._class=e);const t=this;[this.create,this.read,this.delete].forEach(e=>{const r=e.name;Be(t,t[r+"Prefix"],e,t[r+"Suffix"])}),Qe(t,t[this.update.name+"Prefix"],this.update,t[this.update.name+"Suffix"])}async createAll(e,...t){return Promise.all(e.map(e=>this.create(e,...t)))}async createPrefix(e,...t){const r=await Ge.args(C.CREATE,this.class,t);if(e=new this.class(e),r.context.get("ignoreHandlers")||await $e(this,r.context,e,C.CREATE,C.ON),!r.context.get("ignoreValidation")){const t=await Promise.resolve(e.hasErrors());if(t)throw new z(t.toString())}return[e,...r.args]}async createSuffix(e,t){return t.get("ignoreHandlers")||await $e(this,t,e,C.CREATE,C.AFTER),e}async createAllPrefix(e,...t){const r=await Ge.args(C.CREATE,this.class,t),n=r.context.get("ignoreHandlers"),s=r.context.get("ignoreValidation");if(e=await Promise.all(e.map(async e=>{const t=new this.class(e);return n||await $e(this,r.context,t,C.CREATE,C.ON),t})),!s){const t=He(await Promise.all(e.map(e=>Promise.resolve(e.hasErrors()))));if(t)throw new z(t)}return[e,...r.args]}async createAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>$e(this,t,e,C.CREATE,C.AFTER))),e}async readAll(e,...t){return await Promise.all(e.map(e=>this.read(e,...t)))}async readSuffix(e,t){return t.get("ignoreHandlers")||await $e(this,t,e,C.READ,C.AFTER),e}async readPrefix(e,...t){const r=await Ge.args(C.READ,this.class,t),n=new this.class;return n[this.pk]=e,await $e(this,r.context,n,C.READ,C.ON),[e,...r.args]}async readAllPrefix(e,...t){const r=await Ge.args(C.READ,this.class,t);return await Promise.all(e.map(async e=>{const t=new this.class;return t[this.pk]=e,$e(this,r.context,t,C.READ,C.ON)})),[e,...r.args]}async readAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>$e(this,t,e,C.READ,C.AFTER))),e}async updateAll(e,...t){return Promise.all(e.map(e=>this.update(e,...t)))}async updateSuffix(e,t,r){return r.get("ignoreHandlers")||await $e(this,r,e,C.UPDATE,C.AFTER,t),e}async updatePrefix(e,...t){const r=await Ge.args(C.UPDATE,this.class,t),n=r.context,s=r.context.get("ignoreHandlers"),o=r.context.get("ignoreValidation"),a=e[this.pk];if(!a)throw new G("No value for the Id is defined under the property "+this.pk);let i;if(n.get("applyUpdateValidation")&&(i=await this.read(a),n.get("mergeForUpdate")&&(e=p.merge(i,e,this.class))),s||await $e(this,r.context,e,C.UPDATE,C.ON,i),!o){const t=await Promise.resolve(e.hasErrors(i));if(t)throw new z(t.toString())}return[e,...r.args,i]}async updateAllPrefix(e,...t){const r=await Ge.args(C.UPDATE,this.class,t),n=r.context,s=n.get("ignoreHandlers"),o=n.get("ignoreValidation"),a=e.map(e=>{const t=e[this.pk];if(void 0===t)throw new G("No value for the Id is defined under the property "+this.pk);return t});let i;if(n.get("applyUpdateValidation")&&(i=await this.readAll(a,n),n.get("mergeForUpdate")&&(e=e.map((e,t)=>p.merge(i[t],e,this.class)))),s||await Promise.all(e.map((e,t)=>$e(this,r.context,e,C.UPDATE,C.ON,i?i[t]:void 0))),!o){let t;t=n.get("applyUpdateValidation")?await Promise.all(e.map((e,t)=>Promise.resolve(e.hasErrors(i[t])))):await Promise.resolve(e.map(e=>e.hasErrors()));const r=He(t);if(r)throw new z(r)}return[e,...r.args,i]}async updateAllSuffix(e,t,r){if(r.get("applyUpdateValidation")&&!r.get("ignoreDevSafeGuards")&&!t)throw new G("No previous versions of models provided");return r.get("ignoreHandlers")||await Promise.all(e.map((e,n)=>$e(this,r,e,C.UPDATE,C.AFTER,t?t[n]:void 0))),e}async deleteAll(e,...t){return Promise.all(e.map(e=>this.delete(e,...t)))}async deleteSuffix(e,t){return t.get("ignoreHandlers")||await $e(this,t,e,C.DELETE,C.AFTER),e}async deletePrefix(e,...t){const r=await Ge.args(C.DELETE,this.class,t),n=await this.read(e,...r.args);return await $e(this,r.context,n,C.DELETE,C.ON),[e,...r.args]}async deleteAllPrefix(e,...t){const r=await Ge.args(C.DELETE,this.class,t),n=await this.readAll(e,...r.args);return await Promise.all(n.map(async e=>$e(this,r.context,e,C.DELETE,C.ON))),[e,...r.args]}async deleteAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>$e(this,t,e,C.DELETE,C.AFTER))),e}toString(){return this.class.name+" Repository"}}const qe="##VERSION##",Ze="##PACKAGE##";t.registerLibrary(Ze,qe);export{_ as BadRequestError,$ as BaseError,ge as BlockOperationIf,Ee as BlockOperations,V as BreakError,j as BulkCrudOperationKeys,B as ConflictError,Ge as Context,D as DBKeys,U as DBOperations,L as DEFAULT_ERROR_MESSAGES,S as DEFAULT_TIMESTAMP_FORMAT,ze as DefaultContextFactory,_e as DefaultRepositoryFlags,b as DefaultSeparator,G as InternalError,M as ModelOperations,K as NotFoundError,C as OperationKeys,H as Operations,F as OperationsRegistry,Ze as PACKAGE_NAME,I as ReadOnlyValidator,Je as Repository,Y as SerializationError,k as TimestampValidator,N as UpdateValidationKeys,x as UpdateValidator,qe as VERSION,z as ValidationError,fe as after,de as afterAny,ce as afterCreate,ae as afterCreateUpdate,ue as afterDelete,le as afterRead,ie as afterUpdate,Te as composeAttributeValue,ve as composed,we as composedFromCreateUpdate,Pe as composedFromKeys,$e as enforceDBDecorators,ye as generated,Ve as getDbDecorators,J as getHandlerArgs,q as getHandlersDecorators,Me as getValidatableUpdateProps,Z as groupDecorators,Ae as hash,me as hashOnCreateUpdate,Ce as id,oe as on,se as onAny,te as onCreate,X as onCreateUpdate,ne as onDelete,re as onRead,ee as onUpdate,pe as operation,Ye as prefixMethod,Se as readonly,He as reduceErrorsToPrint,xe as serialize,ke as serializeAfterAll,Ie as serializeOnCreateUpdate,W as sortDecorators,he as storeHandlerMetadata,Ke as suffixMethod,Ne as timestamp,Le as timestampHandler,be as transient,Fe as validateCompare,je as validateDecorator,Ue as validateDecorators,De as version,Re as versionCreateUpdate,Be as wrapMethodWithContext,Qe as wrapMethodWithContextForUpdate};
|
|
1
|
+
import{Decoration as e,Metadata as t,propMetadata as r,apply as n,metadata as s}from"@decaf-ts/decoration";import{ModelKeys as o,validator as a,Validator as i,isEqual as c,DEFAULT_ERROR_MESSAGES as l,Validation as u,Hashing as d,type as f,Model as p,innerValidationDecorator as h,date as E,required as g,ValidationKeys as y,getChildNestedPropsToIgnore as m,ModelErrorDefinition as A,toConditionalPromise as T,validate as w,ModelBuilder as O}from"@decaf-ts/decorator-validation";import{__decorate as P,__metadata as v}from"tslib";import{ObjectAccumulator as R}from"typed-object-accumulator";import{Logging as D}from"@decaf-ts/logging";const b={REFLECT:o.MODEL+".persistence.",REPOSITORY:"repository",CLASS:"_class",ID:"id",INDEX:"index",UNIQUE:"unique",SERIALIZE:"serialize",READONLY:"readonly",TIMESTAMP:"timestamp",TRANSIENT:"transient",HASH:"hash",COMPOSED:"composed",GENERATED:"generated",VERSION:"version",ORIGINAL:"__originalObj"},S="_",L="dd/MM/yyyy HH:mm:ss:S",N={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"}},I={REFLECT:"db.update.validation.",TIMESTAMP:b.TIMESTAMP,READONLY:b.READONLY};let k=class extends i{constructor(){super(N.READONLY.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,r){if(void 0!==e)return c(e,t)?void 0:this.getMessage(r||this.message)}};k=P([a(I.READONLY),v("design:paramtypes",[])],k);let x=class extends i{constructor(){super(N.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(I.TIMESTAMP),v("design:paramtypes",[])],x);class C extends i{constructor(e=l.DEFAULT,...t){super(e,...t)}}var M,j,U;u.updateKey=e=>I.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"})(M||(M={})),(e=>{e.OPERATIONS="operations",e.RELATIONS="relations"})(j||(j={})),(e=>{e.CREATE_ALL="createAll",e.READ_ALL="readAll",e.UPDATE_ALL="updateAll",e.DELETE_ALL="deleteAll"})(U||(U={}));const F={CREATE:[M.CREATE],READ:[M.READ],UPDATE:[M.UPDATE],DELETE:[M.DELETE],CREATE_UPDATE:[M.CREATE,M.UPDATE],READ_CREATE:[M.READ,M.CREATE],ALL:[M.CREATE,M.READ,M.UPDATE,M.DELETE]};class H{constructor(){this.cache={}}get(e,t,r,n){n=n||[];const s=this.resolveOwner(e),o=this.resolveTargetName(e,s);if(o){const e=this.selectHandlers(o,t,r,s);e?.length&&n.unshift(...e)}else if("string"==typeof e||e===Object.prototype||Object.getPrototypeOf(e)===Object.prototype)return n;let a=Object.getPrototypeOf(e);return a?(a.constructor&&a.constructor.name===o&&(a=Object.getPrototypeOf(a)),a?this.get(a,t,r,n):n):n}register(e,t,r,n){const s=r.constructor.name,o=H.getHandlerName(e),a=this.resolveFlavour(r.constructor);this.cache[s]||(this.cache[s]={}),this.cache[s][n]||(this.cache[s][n]={}),this.cache[s][n][t]||(this.cache[s][n][t]={}),this.cache[s][n][t][a]||(this.cache[s][n][t][a]={}),this.cache[s][n][t][a][o]||(this.cache[s][n][t][a][o]=e)}resolveOwner(e){if(e&&"string"!=typeof e)return"function"==typeof e?e:e.constructor}resolveTargetName(e,t){return"string"==typeof e?e:t?.name}resolveFlavour(r){if(!r)return e.defaultFlavour;try{return t.flavourOf(r)}catch{return e.defaultFlavour}}selectHandlers(t,r,n,s){const o=this.cache[t]?.[r]?.[n];if(!o)return;const a=o[this.resolveFlavour(s)]||o[e.defaultFlavour]||this.firstBucket(o);if(!a)return;const i=Object.values(a);return i.length?i:void 0}firstBucket(e){for(const t of Object.values(e))if(t&&Object.keys(t).length)return t}static getHandlerName(e){return e.name?e.name:d.hash(e.toString())}}class ${constructor(){}static getHandlerName(e){return H.getHandlerName(e)}static key(e){return M.REFLECT+e}static get(e,t,r){return $.registry.get(e,t,r)}static getOpRegistry(){return $.registry||($.registry=new H),$.registry}static register(e,t,r,n){$.getOpRegistry().register(e,t,r,n)}}class V extends Error{constructor(e,t,r){if(t instanceof V)return t;super(`[${e}][${r}] ${t instanceof Error?t.message:t}`),this.code=r,t instanceof Error&&(this.stack=t.stack)}get message(){return`[${this.name}] ${this.code} | ${super.message.replaceAll(/\[.*?Error\]\[\d+\]\s/g,"")}`}toString(){return this.message}}class _ extends V{constructor(e,t=_.name,r=999){super(t,e,r)}}class z extends V{constructor(e,t=z.name,r=400){super(t,e,r)}}class G extends z{constructor(e){super(e,G.name,422)}}class Y extends V{constructor(e,t=Y.name,r=500){super(t,e,r)}}class K extends Y{constructor(e){super(e,K.name,500)}}class B extends z{constructor(e){super(e,B.name,404)}}class Q extends z{constructor(e){super(e,Q.name,409)}}const J={priority:50},q=(e,t,r,n)=>{const s=r.constructor.name;if(!s)throw new Y("Could not determine model class");n=n||{},e.props.handlers[s]&&e.props.handlers[s][t]&&(n={...e.props.handlers[s][t],...n});let o=Object.getPrototypeOf(r);return o===Object.prototype?n:(o.constructor.name===s&&(o=Object.getPrototypeOf(o)),q(e,t,o,n))};function Z(e,t,r){const n=[];for(const s in t){const o=t[s];for(const t of o){const{key:o}=t,a=$.get(e,s,r+o);if(!a||!a.length)throw new Y(`Could not find registered handler for the operation ${r+o} under property ${s}`);const i=q(t,s,e);if(!i)throw new Y("Missing handler arguments for decorators");for(const e of a){const t=$.getHandlerName(e),r=i[t];if(!r)throw new Y("Missing handler arguments for handler "+t);const o=r.data;n.push({handler:e,data:[o],prop:[s]})}}}return n}function W(e){const t=e.reduce((e,t)=>{if(!t||!t.data||!t.prop)throw new Y("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 X(e){return e.sort((e,t)=>(e.data[0].priority??50)-(t.data[0].priority??50)),e}function ee(e,t,r){return ae(F.CREATE_UPDATE,e,t,r)}function te(e,t,r){return ae(F.UPDATE,e,t,r)}function re(e,t,r){return ae(F.CREATE,e,t,r)}function ne(e,t,r){return ae(F.READ,e,t,r)}function se(e,t,r){return ae(F.DELETE,e,t,r)}function oe(e,t,r){return ae(F.ALL,e,t,r)}function ae(e=F.ALL,t,r,n){return he(M.ON,e,t,r,n)}function ie(e,t,r){return pe(F.CREATE_UPDATE,e,t,r)}function ce(e,t,r){return pe(F.UPDATE,e,t,r)}function le(e,t,r){return pe(F.CREATE,e,t,r)}function ue(e,t,r){return pe(F.READ,e,t,r)}function de(e,t,r){return pe(F.DELETE,e,t,r)}function fe(e,t,r){return pe(F.ALL,e,t,r)}function pe(e=F.ALL,t,r,n){return he(M.AFTER,e,t,r,n)}function he(e,s=F.ALL,o,a,i=J){return(c,l)=>{const u=c.constructor.name,d=s.reduce((n,s)=>{const d=e+s;let f=t.readOperation(c.constructor,l,d);f||(f={operation:s,handlers:{}});const p=$.getHandlerName(o);let h=i;if(a){if(Object.keys(a).filter(e=>e in i).length>0)throw new Y("Unable to merge groupSort into dataToAdd due to overlaping keys");h={...i,...a}}return f.handlers[u]&&f.handlers[u][l]&&p in f.handlers[u][l]||(f.handlers[u]=f.handlers[u]||{},f.handlers[u][l]=f.handlers[u][l]||{},f.handlers[u][l][p]={data:h},n.push(((e,t)=>(r,n)=>{$.register(t,e,r,n)})(d,o),r(t.key(j.OPERATIONS,l,d),f))),n},[]);return n(...d)(c,l)}}function Ee(e,t){return(...r)=>s(e,{args:r,handler:t})}const ge=e=>Ee(M.REFLECT+M.BLOCK,(e,t)=>e.includes(t))(e),ye=e=>Ee(M.REFLECT+M.BLOCK,e)();function me(e){return(n,s)=>r(t.key(b.GENERATED,s),e||!0)(n,s)}function Ae(e,t,r,n,s){if(void 0===n[r])return;const o=d.hash(n[r]);s&&n[r]===o||(n[r]=o)}function Te(){return n(ee(Ae),r(b.HASH,{}))}function we(e,t){const{args:r,type:n,prefix:s,suffix:o,separator:a,filterEmpty:i,hashResult:c}=t;try{const t=r.map(t=>{if("keys"===n)return t;if(void 0===e[t]){if(i){if(!Array.isArray(i))return;if(i.includes(t))return}throw new Y(`Property ${r} does not contain a value to compose from`)}return e[t].toString()}).filter(e=>!i||!!e);s&&t.unshift(s),o&&t.push(o);const l=t.map(e=>"object"==typeof e&&"[object Object]"===e.toString()?JSON.stringify(e):e).join(a);return c?d.hash(l):l}catch(e){throw new Y("Failed to compose value: "+e)}}function Oe(e,t,r,n){n[r]=we(n,t)}function Pe(s,o=!1,a=S,i=!1,c="values",l="",u="",d={priority:55}){return e.for(b.COMPOSED).define({decorator:(e,s,o,a,c,l,u)=>(d,f)=>{const p={args:e,hashResult:s,separator:o,type:a,prefix:c,suffix:l,filterEmpty:i},h=[me(b.COMPOSED),ee(Oe,p,u),r(t.key(b.COMPOSED,f),p)];return s&&h.push(Te()),n(...h)(d,f)},args:[s,o,a,c,l,u,d]}).apply()}function ve(e,t=S,r=!1,n=!1,s="",o="",a={priority:55}){return Pe(e,n,t,r,"keys",s,o,a)}function Re(e,t=S,r=!1,n=!1,s="",o="",a={priority:55}){return Pe(e,n,t,r,"values",s,o,a)}function De(e){return(t,r,n,s,o)=>{if(p.shouldGenerate(s,n,t))try{switch(e){case M.CREATE:s[n]=1;break;case M.UPDATE:if(t.get("applyUpdateValidation")&&o&&s[n]!==o[n])throw new G(`Version mismatch: ${s[n]} !== ${o[n]}`);s[n]++;break;default:throw new Y("Invalid operation: "+e)}}catch(e){throw new Y("Failed to update version: "+e)}}}function be(){const n=b.VERSION;return(s,o)=>e.for(n).define(r(t.key(n,o),!0),me(b.VERSION),f(Number),re(De(M.CREATE)),te(De(M.UPDATE))).apply()(s,o)}function Se(){return e.for(b.TRANSIENT).define((e,n)=>{r(t.key(b.TRANSIENT,n),{})(e,n)}).apply()}function Le(t=N.READONLY.INVALID){const r=b.READONLY,n={message:t,description:"defines the attribute as readOnly",async:!1};return e.for(r).define({decorator:h,args:[Le,r,n]}).apply()}async function Ne(e,t,r,n){p.shouldGenerate(n,r,e)&&(n[r]=e.timestamp)}function Ie(t=F.CREATE_UPDATE,s=L){const o=b.TIMESTAMP,a=u.updateKey(b.TIMESTAMP);return e.for(o).define({decorator:(e,t)=>{const s=[me(b.TIMESTAMP),E(t,N.TIMESTAMP.DATE),g(N.TIMESTAMP.REQUIRED),r(u.key(b.TIMESTAMP),{operation:e,format:t}),ae(e,Ne)];return-1!==e.indexOf(M.UPDATE)?s.push(r(a,{message:N.TIMESTAMP.INVALID})):s.push(Le()),n(...s)},args:[t,s]}).apply()}async function ke(e,t,r,n){if(n[r])try{n[r]=t.serializer?(new t.serializer).serialize(n[r]):JSON.stringify(n[r])}catch(e){throw new K(`Failed to serialize ${r.toString()} property of model ${n.constructor.name}: ${e}`)}}async function xe(e,t,r,n){if(n[r]&&"string"==typeof n[r])try{n[r]=t.serializer?(new t.serializer).deserialize(n[r]):JSON.parse(n[r])}catch(e){throw new K(`Failed to deserialize ${r.toString()} property of model ${n.constructor.name}: ${e}`)}}function Ce(e){return n(ee(ke,{serializer:e}),pe(F.ALL,xe,{serializer:e}),f([String,Object]),s(b.SERIALIZE,{serializer:e}))}function Me(){return n(g(),Le(),(e,n)=>r(t.key(b.ID,n),{})(e,n))}function je(e,r){const n=[];for(const s in e){if(!Object.prototype.hasOwnProperty.call(e,s)||r.includes(s))continue;const o=t.validationFor(e.constructor,s)||{};n.push({prop:s,decorators:o})}return n}function Ue(e,t,r,n,s){const o=u.get(n.key);if(!o)throw Error("Missing validator for "+n.key);if(!o.updateHasErrors)return T(void 0,s);if(!s&&n.async)return T(void 0,s);const a=Object.values(n)||{},i=o.updateHasErrors(e[r],t[r],...a);return T(i,s)}function Fe(e,t,r,n,s){const o={};for(const a in n){const i={...n[a],key:a};if(!s&&i.async)continue;let c=Ue(e,t,r,i,s);if(i.key===y.LIST&&(!c||s)){const n=e[r],o=t[r],a=n instanceof Set?[...n]:n,l=o instanceof Set?[...o]:o;if(a?.length){const e=[i.class||i.clazz||i.customTypes].flat().map(e=>((e=(e="function"!=typeof e||e.name?e:e()).name?e.name:e)+"").toLowerCase()),t=a.map(t=>{if(p.isModel(t)){const e=p.pk(t,!0);if(!e)return"Failed to find model id";const r=l.find(t=>e===p.pk(t,!0));return t.hasErrors(r)}return e.includes(typeof t)?void 0:"Value has no validatable type"});if(s)c=Promise.all(t).then(e=>e.every(e=>!e)?void 0:e);else{const e=t.every(e=>!e);c=t.length>0&&!e?t:void 0}}}c&&(o[i.key]=c)}if(!s)return Object.keys(o).length>0?o:void 0;const a=Object.keys(o),i=Object.values(o);return Promise.all(i).then(e=>{const t={};for(let r=0;r<e.length;r++){const n=e[r];void 0!==n&&(t[a[r]]=n)}return Object.keys(t).length>0?t:void 0})}function He(e,r,n,...s){const a=je(r,s),i={},c={};for(const{prop:l,decorators:u}of a){const a=l+"",d=r[l],{designTypes:f}=t.getPropDesignTypes(r.constructor,l);if(!f)continue;if(f.some(e=>[Array.name,Set.name].includes(e))){if(!u||!Object.keys(u).includes(y.LIST)){i[a]={[y.TYPE]:`Array or Set property '${a}' requires a @list decorator`};continue}if(d&&!(Array.isArray(d)||d instanceof Set)){i[a]={[y.TYPE]:`Property '${l+""}' must be either an Array or a Set`};continue}}const h=Fe(r,e,a,u,n)||{},E=p.isPropertyModel(r,a);if(null!=d&&E){const t=d,r=f.map(e=>p.get(e.name||e)).find(e=>!!e),n=f.map(e=>"function"==typeof e?e.name?e.name.toLowerCase():e()?.name.toLowerCase():e.toLowerCase());if(r&&d instanceof r){const r=m(a,...s);c[a]=t.hasErrors(e[l],...r)}else n.includes(typeof d)||(h[y.TYPE]=r?"Value must be an instance of "+r.name:`Unable to verify type consistency, missing model registry for ${f.toString()} on prop ${a}`,delete h[o.TYPE])}(Object.keys(h).length>0||n)&&(i[a]=h),n||Object.entries(c[a]||{}).forEach(([e,t])=>{void 0!==t&&(i[`${a}.${e}`]=t)})}if(!n)return Object.keys(i).length>0?new A(i):void 0;const l=i,u=Object.keys(l),d=Object.values(l);return Promise.allSettled(d).then(async e=>{const t={};for(const[e,r]of Object.entries(c)){const n=await r;n&&Object.entries(n).forEach(([r,n])=>{void 0!==n&&(t[[e,r].join(".")]=n)})}for(let r=0;r<e.length;r++){const n=u[r],s=e[r];"fulfilled"===s.status&&void 0!==s.value?t[n]=s.value:"rejected"===s.status&&(t[n]=s.reason instanceof Error?s.reason.message:(s.reason||"Validation failed")+"")}return Object.keys(t).length>0?new A(t):void 0})}p.prototype.isTransient=function(){return t.isTransient(this)},p.prototype.hasErrors=function(e,...t){!e||e instanceof p||(t.unshift(e),e=void 0);const r=this.isAsync(),n=w(this,r,...t);return r?Promise.resolve(n).then(n=>n||!e?n:He(e,this,r,...t)):n||!e?n:He(e,this,r,...t)},p.prototype.segregate=function(){return p.segregate(this)},p.segregate=e=>{if(!t.isTransient(e))return{model:e};const r=t.validatableProperties(e.constructor),n=t.get(e.constructor,b.TRANSIENT),s={model:{},transient:{}};for(const t of r)if(Object.keys(n).includes(t)){s.transient=s.transient||{};try{s.transient[t]=e[t]}catch(e){throw new K(`Failed to serialize transient property ${t}: ${e}`)}}else s.model=s.model||{},s.model[t]=e[t];return s.model=p.build(s.model,e.constructor.name),s},t.pk=((e,r=!1)=>{if(!e)throw Error("No model was provided");const n=e instanceof p?e.constructor:e,s=t.get(n,b.ID);if(!s)throw Error("No Id property defined for model "+(n?.name||"Unknown Model"));const o=Object.keys(s)[0];if(!r)return o;if(e instanceof p)return e[o];throw Error("Cannot get the value of the pk from the constructor")}).bind(t),p.pk=((e,r=!1)=>t.pk(e,r)).bind(p),p.pkProps=(e=>t.get(e,t.key(b.ID,p.pk(e)))).bind(p),p.isTransient=(e=>!!t.get("function"!=typeof e?e.constructor:e,b.TRANSIENT)).bind(p),p.composed=((e,r)=>{const n=e instanceof p?e.constructor:e;return r?t.get(n,t.key(b.COMPOSED,r)):!!t.get(n,b.COMPOSED)}).bind(p),p.merge=((e,t,r)=>{const n=e=>Object.entries(e).reduce((e,[t,r])=>(null!=r&&(e[t]=r),e),{});return new(r=r||e.constructor)(Object.assign({},n(e),n(t)))}).bind(p),t.saveOperation=((e,r,n,s)=>{r&&t.set(e,t.key(j.OPERATIONS,r,n),s)}).bind(t),t.readOperation=((e,r,n)=>{if(r&&n)return t.get(e,t.key(j.OPERATIONS,r,n))}).bind(t),t.isTransient=(e=>!!t.get("function"!=typeof e?e.constructor:e,b.TRANSIENT)).bind(t),p.generated=((e,r)=>!!t.get("function"!=typeof e?e.constructor:e,t.key(b.GENERATED,r))).bind(p),p.shouldGenerate=((e,t,r)=>!r.get("allowGenerationOverride")||void 0===e[t]).bind(p),p.versionProp=(e=>{const r=t.get(e.constructor);if(!r||!r[b.VERSION])throw new Y("No version found for "+e.constructor.name);return Object.keys(r)[0]}).bind(p),p.versionOf=(e=>{const t=e[p.versionProp(e)];if("number"!=typeof t||1>t)throw new Y("Invalid version number: "+t);return t}).bind(p);const $e=O.prototype;$e.decorateClass||($e.decorateClass=function(e){return this._classDecorators||(this._classDecorators=[]),this._classDecorators.push(e),this});const Ve=(e,t,r)=>(((e,t)=>{const r=e.attributes;return r?.has(t)?r.get(t):e.attribute(t,Object)})(e,t).decorate(r),e);function _e(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 ze(e,t,r,n,s,o){const a=Ge(r,n,s);if(!a)return;const i=X(W(Z(r,a,s)));for(const s of i){const a=[t,s.data.length>1?s.data:s.data[0],s.prop.length>1?s.prop:s.prop[0],r];if([M.UPDATE,U.UPDATE_ALL].includes(n)){if(!o)throw new Y("Missing old model for update operation");a.push(o)}try{await s.handler.apply(e,a)}catch(e){if(t.logger.for(ze).error(`Failed to execute handler ${s.handler.name} for ${s.prop} on ${r.constructor.name}`),t.get("breakOnHandlerError"))throw e}}}function Ge(e,r,n){const s=n?.replace(/[.]$/,""),o=t.get(e.constructor,j.OPERATIONS);if(o)return Object.keys(o).reduce((e,t)=>{const n=s?o[t][s]||{}:o[t],a=Object.keys(n).filter(e=>e===r),i=[];for(const e of a)i.push({key:e,props:n[e]});return i&&i.length&&(e||(e={}),e[t]=i),e},void 0)}$e.generated=function(e,t){return Ve(this,e,me(t))},$e.hash=function(e){return Ve(this,e,Te())},$e.composedFromKeys=function(e,t,r,n,s,o,a,i){return Ve(this,e,ve(t,r,n,s,o,a,i))},$e.composed=function(e,t,r,n,s,o,a,i){return Ve(this,e,Re(t,r,n,s,o,a,i))},$e.version=function(e){return Ve(this,e,be())},$e.transient=function(e){return Ve(this,e,Se())};const Ye={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},Ke=e=>(new Be).accumulate(Object.assign({},e,{timestamp:new Date,logger:e.logger||D.get()}));class Be{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=Ke}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 Be.factory(Object.assign({},e.cache,t||{}))}static async from(e,t,r,...n){return Be.factory(Object.assign({},Ye,t,{operation:e,model:r,logger:t.logger||D.get()}))}static async args(e,t,r,n,s){const o=r.pop();async function a(){return n?n.context(e,s||{},t,...r):Be.from(e,s||{},t,...r)}let i;return o?o instanceof Be?(i=o,r.push(o)):(r.push(o),i=await a(),r.push(i)):(i=await a(),r.push(i)),{context:i,args:r}}}function Qe(e,t,r,n){const s=n||t.name;e[s]=new Proxy(e[s],{apply:async(e,t,n)=>{let s=r.call(t,...n);return s instanceof Promise&&(s=await s),s=e.call(t,...s),s instanceof Promise&&(s=await s),s}})}function Je(e,t,r,n){const s=n||t.name;e[s]=new Proxy(e[s],{apply:async(e,t,n)=>{let s=e.call(t,...n);return s instanceof Promise&&(s=await s),s=r.call(t,...s),s instanceof Promise&&(s=await s),s}})}function qe(e,t,r,n,s){const o=s||r.name;e[o]=new Proxy(e[o],{apply:async(e,r,s)=>{let o=t.call(r,...s);o instanceof Promise&&(o=await o);const a=o[o.length-1];if(!(a instanceof Be))throw new Y("Missing a context");let i=e.call(r,...o);return i instanceof Promise&&(i=await i),i=n.call(r,i,a),i instanceof Promise&&(i=await i),i}})}function Ze(e,t,r,n,s){const o=s||r.name;e[o]=new Proxy(e[o],{apply:async(e,r,s)=>{let o=t.call(r,...s);o instanceof Promise&&(o=await o);const a=o.pop(),i=o[o.length-1];if(!(i instanceof Be))throw new Y("Missing a context");if(i.get("applyUpdateValidation")&&!i.get("ignoreDevSafeGuards")&&!(a instanceof p)&&(!Array.isArray(a)||!a.every(e=>e instanceof p)))throw new Y("No previous versions os models found");let c=e.call(r,...o);return c instanceof Promise&&(c=await c),c=n.call(r,c,a,i),c instanceof Promise&&(c=await c),c}})}class We{get class(){if(!this._class)throw new Y("No class definition found for this repository");return this._class}get pk(){return p.pk(this.class)}get pkProps(){return p.pkProps(this.class)}constructor(e){e&&(this._class=e);const t=this;[this.create,this.read,this.delete].forEach(e=>{const r=e.name;qe(t,t[r+"Prefix"],e,t[r+"Suffix"])}),Ze(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 Be.args(M.CREATE,this.class,t);if(e=new this.class(e),r.context.get("ignoreHandlers")||await ze(this,r.context,e,M.CREATE,M.ON),!r.context.get("ignoreValidation")){const t=await Promise.resolve(e.hasErrors());if(t)throw new G(t.toString())}return[e,...r.args]}async createSuffix(e,t){return t.get("ignoreHandlers")||await ze(this,t,e,M.CREATE,M.AFTER),e}async createAllPrefix(e,...t){const r=await Be.args(M.CREATE,this.class,t),n=r.context.get("ignoreHandlers"),s=r.context.get("ignoreValidation");if(e=await Promise.all(e.map(async e=>{const t=new this.class(e);return n||await ze(this,r.context,t,M.CREATE,M.ON),t})),!s){const t=_e(await Promise.all(e.map(e=>Promise.resolve(e.hasErrors()))));if(t)throw new G(t)}return[e,...r.args]}async createAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>ze(this,t,e,M.CREATE,M.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 ze(this,t,e,M.READ,M.AFTER),e}async readPrefix(e,...t){const r=await Be.args(M.READ,this.class,t),n=new this.class;return n[this.pk]=e,await ze(this,r.context,n,M.READ,M.ON),[e,...r.args]}async readAllPrefix(e,...t){const r=await Be.args(M.READ,this.class,t);return await Promise.all(e.map(async e=>{const t=new this.class;return t[this.pk]=e,ze(this,r.context,t,M.READ,M.ON)})),[e,...r.args]}async readAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>ze(this,t,e,M.READ,M.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 ze(this,r,e,M.UPDATE,M.AFTER,t),e}async updatePrefix(e,...t){const r=await Be.args(M.UPDATE,this.class,t),n=r.context,s=r.context.get("ignoreHandlers"),o=r.context.get("ignoreValidation"),a=e[this.pk];if(!a)throw new Y("No value for the Id is defined under the property "+this.pk);let i;if(n.get("applyUpdateValidation")&&(i=await this.read(a),n.get("mergeForUpdate")&&(e=p.merge(i,e,this.class))),s||await ze(this,r.context,e,M.UPDATE,M.ON,i),!o){const t=await Promise.resolve(e.hasErrors(i));if(t)throw new G(t.toString())}return[e,...r.args,i]}async updateAllPrefix(e,...t){const r=await Be.args(M.UPDATE,this.class,t),n=r.context,s=n.get("ignoreHandlers"),o=n.get("ignoreValidation"),a=e.map(e=>{const t=e[this.pk];if(void 0===t)throw new Y("No value for the Id is defined under the property "+this.pk);return t});let i;if(n.get("applyUpdateValidation")&&(i=await this.readAll(a,n),n.get("mergeForUpdate")&&(e=e.map((e,t)=>p.merge(i[t],e,this.class)))),s||await Promise.all(e.map((e,t)=>ze(this,r.context,e,M.UPDATE,M.ON,i?i[t]:void 0))),!o){let t;t=n.get("applyUpdateValidation")?await Promise.all(e.map((e,t)=>Promise.resolve(e.hasErrors(i[t])))):await Promise.resolve(e.map(e=>e.hasErrors()));const r=_e(t);if(r)throw new G(r)}return[e,...r.args,i]}async updateAllSuffix(e,t,r){if(r.get("applyUpdateValidation")&&!r.get("ignoreDevSafeGuards")&&!t)throw new Y("No previous versions of models provided");return r.get("ignoreHandlers")||await Promise.all(e.map((e,n)=>ze(this,r,e,M.UPDATE,M.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 ze(this,t,e,M.DELETE,M.AFTER),e}async deletePrefix(e,...t){const r=await Be.args(M.DELETE,this.class,t),n=await this.read(e,...r.args);return await ze(this,r.context,n,M.DELETE,M.ON),[e,...r.args]}async deleteAllPrefix(e,...t){const r=await Be.args(M.DELETE,this.class,t),n=await this.readAll(e,...r.args);return await Promise.all(n.map(async e=>ze(this,r.context,e,M.DELETE,M.ON))),[e,...r.args]}async deleteAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>ze(this,t,e,M.DELETE,M.AFTER))),e}toString(){return this.class.name+" Repository"}}const Xe="##VERSION##",et="##PACKAGE##";t.registerLibrary(et,Xe);export{z as BadRequestError,V as BaseError,ye as BlockOperationIf,ge as BlockOperations,_ as BreakError,U as BulkCrudOperationKeys,Q as ConflictError,Be as Context,b as DBKeys,F as DBOperations,N as DEFAULT_ERROR_MESSAGES,L as DEFAULT_TIMESTAMP_FORMAT,Ke as DefaultContextFactory,Ye as DefaultRepositoryFlags,S as DefaultSeparator,Y as InternalError,j as ModelOperations,B as NotFoundError,M as OperationKeys,$ as Operations,H as OperationsRegistry,et as PACKAGE_NAME,k as ReadOnlyValidator,We as Repository,K as SerializationError,x as TimestampValidator,I as UpdateValidationKeys,C as UpdateValidator,Xe as VERSION,G as ValidationError,pe as after,fe as afterAny,le as afterCreate,ie as afterCreateUpdate,de as afterDelete,ue as afterRead,ce as afterUpdate,we as composeAttributeValue,Re as composed,Oe as composedFromCreateUpdate,ve as composedFromKeys,ze as enforceDBDecorators,me as generated,Ge as getDbDecorators,q as getHandlerArgs,Z as getHandlersDecorators,je as getValidatableUpdateProps,W as groupDecorators,Te as hash,Ae as hashOnCreateUpdate,Me as id,ae as on,oe as onAny,re as onCreate,ee as onCreateUpdate,se as onDelete,ne as onRead,te as onUpdate,he as operation,Qe as prefixMethod,Le as readonly,_e as reduceErrorsToPrint,Ce as serialize,xe as serializeAfterAll,ke as serializeOnCreateUpdate,X as sortDecorators,Ee as storeHandlerMetadata,Je as suffixMethod,Ie as timestamp,Ne as timestampHandler,Se as transient,He as validateCompare,Ue as validateDecorator,Fe as validateDecorators,be as version,De as versionCreateUpdate,qe as wrapMethodWithContext,Ze as wrapMethodWithContextForUpdate};
|
|
2
2
|
//# sourceMappingURL=db-decorators.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-decorators.js","sources":["../src/model/constants.ts","../src/validation/constants.ts","../src/validation/validators/ReadOnlyValidator.ts","../src/validation/validators/TimestampValidator.ts","../src/validation/validators/UpdateValidator.ts","../src/operations/constants.ts","../src/validation/validation.ts","../src/operations/OperationsRegistry.ts","../src/operations/Operations.ts","../src/repository/errors.ts","../src/operations/decorators.ts","../src/model/decorators.ts","../src/validation/decorators.ts","../src/identity/decorators.ts","../src/model/validation.ts","../src/repository/utils.ts","../src/overrides/overrides.ts","../src/repository/constants.ts","../src/repository/Context.ts","../src/repository/wrappers.ts","../src/repository/Repository.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DBKeys","REFLECT","ModelKeys","MODEL","REPOSITORY","CLASS","ID","INDEX","UNIQUE","SERIALIZE","READONLY","TIMESTAMP","TRANSIENT","HASH","COMPOSED","GENERATED","VERSION","ORIGINAL","DefaultSeparator","DEFAULT_TIMESTAMP_FORMAT","DEFAULT_ERROR_MESSAGES","INVALID","REQUIRED","DATE","UpdateValidationKeys","ReadOnlyValidator","Validator","constructor","super","hasErrors","value","args","updateHasErrors","oldValue","message","undefined","isEqual","this","getMessage","__decorate","validator","TimestampValidator","Date","e","UpdateValidator","DecoratorMessages","DEFAULT","acceptedTypes","OperationKeys","ModelOperations","BulkCrudOperationKeys","Validation","updateKey","key","DBOperations","CREATE","READ","UPDATE","DELETE","CREATE_UPDATE","READ_CREATE","ALL","OperationsRegistry","cache","get","target","propKey","operation","accum","owner","resolveOwner","name","resolveTargetName","handlers","selectHandlers","length","unshift","Object","prototype","getPrototypeOf","proto","register","handler","handlerName","getHandlerName","flavour","resolveFlavour","Decoration","defaultFlavour","Metadata","flavourOf","byOperation","bucket","firstBucket","values","keys","Hashing","hash","toString","Operations","str","targetName","registry","getOpRegistry","BaseError","Error","msg","code","stack","replaceAll","BreakError","BadRequestError","ValidationError","InternalError","SerializationError","NotFoundError","ConflictError","DefaultGroupSort","priority","getHandlerArgs","dec","prop","m","props","getHandlersDecorators","model","decorators","prefix","decs","handlerArgs","argsEntry","data","push","groupDecorators","grouped","reduce","acc","group","set","Symbol","groupKey","has","existing","Map","groups","Array","from","forEach","combined","map","d","i","sort","a","b","groupPriority","c","sortDecorators","onCreateUpdate","groupsort","on","onUpdate","onCreate","onRead","onDelete","onAny","op","ON","afterCreateUpdate","after","afterUpdate","afterCreate","afterRead","afterDelete","afterAny","AFTER","baseOp","dataToAdd","propertyKey","compoundKey","readOperation","handlerKey","mergeData","filter","handle","propMetadata","OPERATIONS","apply","storeHandlerMetadata","params","metadata","BlockOperations","operations","BLOCK","includes","BlockOperationIf","generated","type","hashOnCreateUpdate","context","oldModel","composeAttributeValue","suffix","separator","filterEmpty","hashResult","composed","arg","isArray","JSON","stringify","join","composedFromCreateUpdate","composedFrom","for","define","decorator","property","composedFromKeys","versionCreateUpdate","Model","shouldGenerate","version","Number","transient","attribute","readonly","meta","description","async","innerValidationDecorator","timestampHandler","timestamp","format","decorationKey","updateValidationKey","date","required","indexOf","serializeOnCreateUpdate","serializer","serialize","serializeAfterAll","deserialize","parse","String","id","getValidatableUpdateProps","propsToIgnore","decoratedProperties","hasOwnProperty","call","validationFor","validateDecorator","newModel","toConditionalPromise","decoratorProps","maybeError","validateDecorators","result","decoratorKey","validationErrors","ValidationKeys","LIST","newPropValue","oldPropValue","newValues","Set","oldValues","allowedTypes","class","clazz","customTypes","flat","t","toLowerCase","errs","childValue","isModel","pk","oldListModel","find","el","Promise","all","then","every","r","allEmpty","promises","resolvedValues","res","val","validateCompare","ValidatableUpdateProps","nestedErrors","propValue","designTypes","getPropDesignTypes","some","TYPE","propErrors","isConstr","isPropertyModel","instance","Constr","designTypeNames","nestedPropsToIgnore","getChildNestedPropsToIgnore","entries","error","ModelErrorDefinition","merged","allSettled","results","parentProp","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","status","reason","reduceErrorsToPrint","errors","enforceDBDecorators","repo","getDbDecorators","sortedDecorators","UPDATE_ALL","logger","extraPrefix","replace","obj","isTransient","previousVersion","exclusions","isAsync","validate","resolve","resolvedErrs","segregate","validatableProperties","transientProps","build","keyValue","constr","idProp","bind","pkProps","merge","extractData","assign","saveOperation","ctx","versionProp","versionOf","DefaultRepositoryFlags","parentContext","childContexts","ignoredValidationProperties","callArgs","writeOperation","affectedTables","breakOnHandlerError","rebuildWithTransient","ignoreValidation","ignoreHandlers","ignoreDevSafeGuards","mergeForUpdate","applyUpdateValidation","allowGenerationOverride","DefaultContextFactory","Context","accumulate","Logging","ObjectAccumulator","defineProperty","writable","enumerable","configurable","factory","parent","childFrom","overrides","contextual","last","pop","getContext","prefixMethod","afterName","Proxy","thisArg","argArray","suffixMethod","before","beforeName","wrapMethodWithContext","method","methodName","transformedArgs","wrapMethodWithContextForUpdate","o","Repository","_class","self","create","read","delete","update","createAll","models","createPrefix","contextArgs","createSuffix","createAllPrefix","ignoreValidate","createAllSuffix","readAll","readSuffix","readPrefix","readAllPrefix","k","readAllSuffix","updateAll","updateSuffix","updatePrefix","updateAllPrefix","ids","oldModels","modelsValidation","updateAllSuffix","deleteAll","deleteSuffix","deletePrefix","deleteAllPrefix","deleteAllSuffix","PACKAGE_NAME","registerLibrary"],"mappings":"wmBAQO,MAAMA,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,QACxC,CAUA,SAAAQ,CAAUC,KAAeC,GAEzB,CAUO,eAAAC,CACLF,EACAG,EACAC,GAEA,QAAcC,IAAVL,EAEJ,OAAOM,EAAQN,EAAOG,QAClBE,EACAE,KAAKC,WAAWJ,GAAWG,KAAKH,QACtC,GAnCWT,EAAiBc,EAAA,CAD7BC,EAAUhB,EAAqBd,qCACnBe,GCAN,IAAMgB,EAAN,cAAiCf,EACtC,WAAAC,GACEC,MAAMR,EAAuBT,UAAUU,QACzC,CAUA,SAAAQ,CAAUC,KAAeC,GAEzB,CAUO,eAAAC,CACLF,EACAG,EACAC,GAEA,QAAcC,IAAVL,EAAJ,CAEAI,EAAUA,GAAWG,KAAKC,WAAWJ,GAAWG,KAAKH,SAErD,IACEJ,EAAQ,IAAIY,KAAKZ,GACjBG,EAAW,IAAIS,KAAKT,EAEtB,CAAE,MAAOU,GACP,OAAOT,CACT,CAEA,OAAOJ,EAASG,OAAqBE,EAAVD,CAZF,CAa3B,GA3CWO,EAAkBF,EAAA,CAD9BC,EAAUhB,EAAqBb,sCACnB8B,GCCP,MAAgBG,UAAwBlB,EAC5C,WAAAC,CACEO,EAAkBW,EAAkBC,WACjCC,GAEHnB,MAAMM,KAAYa,EACpB,MC/BUC,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,EAAa,CAAA,IAkBzB,CAAYC,IACVA,EAAA,WAAA,aACAA,EAAA,UAAA,WACD,EAHD,CAAYA,IAAAA,EAAe,CAAA,IAwB3B,CAAYC,IACVA,EAAA,WAAA,YACAA,EAAA,SAAA,UACAA,EAAA,WAAA,YACAA,EAAA,WAAA,WACD,EALD,CAAYA,IAAAA,EAAqB,CAAA,IAyB1B,MAAMI,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,KAAA0B,MASb,CAAA,CAyJN,CA3IE,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,EAErB,MAAO,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,CAMrB,CAgBA,QAAAa,CACEC,EACAf,EACAF,EACAC,GAEA,MAAMK,EAAON,EAAOtC,YAAY4C,KAC1BY,EAAcrB,EAAmBsB,eAAeF,GAChDG,EAAUhD,KAAKiD,eAAerB,EAAOtC,aAEtCU,KAAK0B,MAAMQ,KAAOlC,KAAK0B,MAAMQ,GAAQ,CAAA,GACrClC,KAAK0B,MAAMQ,GAAML,KAAU7B,KAAK0B,MAAMQ,GAAML,GAAW,CAAA,GACvD7B,KAAK0B,MAAMQ,GAAML,GAASC,KAC7B9B,KAAK0B,MAAMQ,GAAML,GAASC,GAAa,CAAA,GACpC9B,KAAK0B,MAAMQ,GAAML,GAASC,GAAWkB,KACxChD,KAAK0B,MAAMQ,GAAML,GAASC,GAAWkB,GAAW,CAAA,GAC9ChD,KAAK0B,MAAMQ,GAAML,GAASC,GAAWkB,GAASF,KAClD9C,KAAK0B,MAAMQ,GAAML,GAASC,GAAWkB,GAASF,GAAeD,EAC/D,CAEQ,YAAAZ,CACNL,GAEA,GAAKA,GAA4B,iBAAXA,EACtB,MAAsB,mBAAXA,EAA8BA,EAClCA,EAAOtC,WAChB,CAEQ,iBAAA6C,CACNP,EACAI,GAEA,MAAsB,iBAAXJ,EAA4BA,EAChCI,GAAOE,IAChB,CAEQ,cAAAe,CAAerB,GACrB,IAAKA,EAAQ,OAAOsB,EAAWC,eAC/B,IACE,OAAOC,EAASC,UAAUzB,EAC5B,CAAE,MACA,OAAOsB,EAAWC,cACpB,CACF,CAEQ,cAAAd,CACNH,EACAL,EACAC,EACAE,GAEA,MAAMsB,EAActD,KAAK0B,MAAMQ,KAAQL,KAAWC,GAClD,IAAKwB,EAAa,OAClB,MACMC,EACJD,EAFctD,KAAKiD,eAAejB,KAGlCsB,EAAYJ,EAAWC,iBACvBnD,KAAKwD,YAAYF,GACnB,IAAKC,EAAQ,OACb,MAAMnB,EAAWI,OAAOiB,OAAOF,GAC/B,OAAOnB,EAASE,OACXF,OACDtC,CACN,CAEQ,WAAA0D,CACNF,GAEA,IAAK,MAAMlB,KAAYI,OAAOiB,OAAOH,GACnC,GAAIlB,GAAYI,OAAOkB,KAAKtB,GAAUE,OAAQ,OAAOF,CAGzD,CAQA,qBAAOW,CAAeF,GACpB,OAAIA,EAAQX,KAAaW,EAAQX,KAK1ByB,EAAQC,KAAKf,EAAQgB,WAC9B,QClKWC,EAGX,WAAAxE,GAAuB,CAQvB,qBAAOyD,CAAeF,GACpB,OAAOpB,EAAmBsB,eAAeF,EAC3C,CAQA,UAAO7B,CAAI+C,GACT,OAAOpD,EAAc/C,QAAUmG,CACjC,CAeA,UAAOpC,CACLqC,EACAnC,EACAC,GAEA,OAAOgC,EAAWG,SAAStC,IAAaqC,EAAYnC,EAASC,EAC/D,CAQQ,oBAAOoC,GAEb,OADKJ,EAAWG,WAAUH,EAAWG,SAAW,IAAIxC,GAC7CqC,EAAWG,QACpB,CAYA,eAAOrB,CACLC,EACAf,EACAF,EACAC,GAEAiC,EAAWI,gBAAgBtB,SACzBC,EACAf,EACAF,EACAC,EAEJ,EC3FI,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,MAC7C,CAEA,WAAa1E,GACX,MAAO,IAAIG,KAAKkC,SAASlC,KAAKsE,UAAU/E,MAAMM,QAAQ2E,WAAW,yBAA0B,KAC7F,CAES,QAAAX,GACP,OAAO7D,KAAKH,OACd,EAGI,MAAO4E,UAAmBN,EAC9B,WAAA7E,CACE+E,EACAnC,EAAOuC,EAAWvC,KAClBoC,EAAO,KAEP/E,MAAM2C,EAAMmC,EAAYC,EAC1B,EAWI,MAAOI,UAAwBP,EACnC,WAAA7E,CACE+E,EACAnC,EAAOwC,EAAgBxC,KACvBoC,EAAO,KAEP/E,MAAM2C,EAAMmC,EAAYC,EAC1B,EAgBI,MAAOK,UAAwBD,EACnC,WAAApF,CAAY+E,GACV9E,MAAM8E,EAAKM,EAAgBzC,KAAM,IACnC,EAiBI,MAAO0C,UAAsBT,EACjC,WAAA7E,CACE+E,EACAnC,EAAO0C,EAAc1C,KACrBoC,EAAO,KAEP/E,MAAM2C,EAAMmC,EAAYC,EAC1B,EAiBI,MAAOO,UAA2BD,EACtC,WAAAtF,CAAY+E,GACV9E,MAAM8E,EAAKQ,EAAmB3C,KAAM,IACtC,EAiBI,MAAO4C,UAAsBJ,EACjC,WAAApF,CAAY+E,GACV9E,MAAM8E,EAAKS,EAAc5C,KAAM,IACjC,EAgBI,MAAO6C,UAAsBL,EACjC,WAAApF,CAAY+E,GACV9E,MAAM8E,EAAKU,EAAc7C,KAAM,IACjC,EC9HF,MAEM8C,EAA8B,CAAEC,SAFd,IA4CXC,EAAiB,CAC5BC,EACAC,EACAC,EACAtD,KAEA,MAAMG,EAAOmD,EAAE/F,YAAY4C,KAC3B,IAAKA,EAAM,MAAM,IAAI0C,EAAc,mCACnC7C,EAAQA,GAAS,CAAA,EAEboD,EAAIG,MAAMlD,SAASF,IAASiD,EAAIG,MAAMlD,SAASF,GAAMkD,KACvDrD,EAAQ,IAAKoD,EAAIG,MAAMlD,SAASF,GAAMkD,MAAUrD,IAElD,IAAIY,EAAQH,OAAOE,eAAe2C,GAClC,OAAI1C,IAAUH,OAAOC,UAAkBV,GACnCY,EAAMrD,YAAY4C,OAASA,IAAMS,EAAQH,OAAOE,eAAeC,IAE5DuC,EAAeC,EAAKC,EAAMzC,EAAOZ,GAC1C,WAiBgBwD,EAKdC,EACAC,EACAC,GAEA,MAAM3D,EAA2B,GACjC,IAAK,MAAMqD,KAAQK,EAAY,CAC7B,MAAME,EAA4BF,EAAWL,GAC7C,IAAK,MAAMD,KAAOQ,EAAM,CACtB,MAAM3E,IAAEA,GAAQmE,EACV/C,EAAoD0B,EAAWnC,IAInE6D,EAAOJ,EAAMM,EAAS1E,GACxB,IAAKoB,IAAaA,EAASE,OACzB,MAAM,IAAIsC,EACR,uDAAuDc,EAAS1E,oBAAsBoE,KAG1F,MAAMQ,EAAcV,EAAeC,EAAKC,EAAMI,GAC9C,IAAKI,EACH,MAAM,IAAIhB,EAAc,4CAE1B,IAAK,MAAM/B,KAAWT,EAAU,CAC9B,MAAMU,EAAcgB,EAAWf,eAAeF,GACxCgD,EAAYD,EAAY9C,GAC9B,IAAK+C,EACH,MAAM,IAAIjB,EACR,yCAAyC9B,GAE7C,MAAMgD,EAAQD,EAAkCC,KAChD/D,EAAMgE,KAAK,CACTlD,UACAiD,KAAM,CAACA,GACPV,KAAM,CAACA,IAEX,CACF,CACF,CACA,OAAOrD,CACT,CAUM,SAAUiE,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,EAAIxE,IAAI4E,GAEzBJ,EAAIE,IAAIE,EAAU,CAChB1D,QAAS4D,EAAS5D,QAClBiD,KAAM,IAAIW,EAASX,QAASX,EAAIW,MAChCV,KAAM,IAAIqB,EAASrB,QAASD,EAAIC,OAEpC,MATEe,EAAIE,IAAIE,EAAU,IAAKpB,IAWzB,OAAOgB,GAET,IAAIO,KAGAC,EAASC,MAAMC,KAAKZ,EAAQxC,UAiBlC,OAdAkD,EAAOG,QAASV,IACd,MAAMW,EAAWX,EAAMN,KAAKkB,IAAI,CAACC,EAAGC,KAAC,CACnCpB,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,UAzMR,KA0MFoC,EAAEvB,KAAK,GAAGb,UA1MR,KA8MfQ,CACT,UAYgBgC,EACd5E,EAGAiD,EACA4B,GAEA,OAAOC,GAAG1G,EAAaK,cAAeuB,EAASiD,EAAM4B,EACvD,UAWgBE,GACd/E,EACAiD,EACA4B,GAEA,OAAOC,GAAG1G,EAAaG,OAAQyB,EAASiD,EAAM4B,EAChD,UAWgBG,GACdhF,EACAiD,EACA4B,GAEA,OAAOC,GAAG1G,EAAaC,OAAQ2B,EAASiD,EAAM4B,EAChD,UAYgBI,GACdjF,EACAiD,EACA4B,GAEA,OAAOC,GAAG1G,EAAaE,KAAM0B,EAASiD,EAAM4B,EAC9C,UAYgBK,GACdlF,EACAiD,EACA4B,GAEA,OAAOC,GAAG1G,EAAaI,OAAQwB,EAASiD,EAAM4B,EAChD,UAYgBM,GACdnF,EACAiD,EACA4B,GAEA,OAAOC,GAAG1G,EAAaO,IAAKqB,EAASiD,EAAM4B,EAC7C,CAmBM,SAAUC,GACdM,EAAsBhH,EAAaO,IACnCqB,EACAiD,EACA4B,GAEA,OAAO5F,GAAUnB,EAAcuH,GAAID,EAAIpF,EAASiD,EAAM4B,EACxD,UAWgBS,GACdtF,EAGAiD,EACA4B,GAEA,OAAOU,GAAMnH,EAAaK,cAAeuB,EAASiD,EAAM4B,EAC1D,UAYgBW,GACdxF,EACAiD,EACA4B,GAEA,OAAOU,GAAMnH,EAAaG,OAAQyB,EAASiD,EAAM4B,EACnD,UAYgBY,GACdzF,EACAiD,EACA4B,GAEA,OAAOU,GAAMnH,EAAaC,OAAQ2B,EAASiD,EAAM4B,EACnD,UAYgBa,GACd1F,EACAiD,EACA4B,GAEA,OAAOU,GAAMnH,EAAaE,KAAM0B,EAASiD,EAAM4B,EACjD,UAWgBc,GACd3F,EACAiD,EACA4B,GAEA,OAAOU,GAAMnH,EAAaI,OAAQwB,EAASiD,EAAM4B,EACnD,UAYgBe,GACd5F,EACAiD,EACA4B,GAEA,OAAOU,GAAMnH,EAAaO,IAAKqB,EAASiD,EAAM4B,EAChD,CAmBM,SAAUU,GACdH,EAAsBhH,EAAaO,IACnCqB,EACAiD,EACA4B,GAEA,OAAO5F,GAAUnB,EAAc+H,MAAOT,EAAIpF,EAASiD,EAAM4B,EAC3D,CA8BM,SAAU5F,GACd6G,EACA7G,EAA6Bb,EAAaO,IAC1CqB,EACA+F,EACAlB,EAAuB1C,GAEvB,MAAO,CAACpD,EAAaiH,KACnB,MAAM3G,EAAON,EAAOtC,YAAY4C,KAC1BuD,EAAa3D,EAAUoE,OAAO,CAACnE,EAAckG,KACjD,MAAMa,EAAcH,EAASV,EAC7B,IAAInC,EAAO1C,EAAS2F,cAClBnH,EAAOtC,YACPuJ,EACAC,GAEGhD,IACHA,EAAO,CACLhE,UAAWmG,EACX7F,SAAU,CAAA,IAGd,MAAM4G,EAAalF,EAAWf,eAAeF,GAE7C,IAAIoG,EAAYvB,EAEhB,GAAIkB,EAAW,CACb,GAAIpG,OAAOkB,KAAKkF,GAAWM,OAAQlI,GAAQA,KAAO0G,GAAWpF,OAAS,EACpE,MAAM,IAAIsC,EACR,mEAGJqE,EAAY,IAAKvB,KAAckB,EACjC,CAsBA,OAnBG9C,EAAK1D,SAASF,IACd4D,EAAK1D,SAASF,GAAM2G,IACnBG,KAAclD,EAAK1D,SAASF,GAAM2G,KAEpC/C,EAAK1D,SAASF,GAAQ4D,EAAK1D,SAASF,IAAS,CAAA,EAC7C4D,EAAK1D,SAASF,GAAM2G,GAClB/C,EAAK1D,SAASF,GAAM2G,IAAgB,CAAA,EACtC/C,EAAK1D,SAASF,GAAM2G,GAAaG,GAAc,CAC7ClD,KAAMmD,GAERlH,EAAMgE,KA3gBd,EAAgBkC,EAAmBpF,IAC1B,CAACjB,EAAaiH,KACnB/E,EAAWlB,SAASC,EAASoF,EAAIrG,EAAQiH,IA0gBnCM,CAAOL,EAA8BjG,GACrCuG,EACEhG,EAASpC,IAAIJ,EAAgByI,WAAYR,EAAaC,GACtDhD,KAKC/D,GACN,IACH,OAAOuH,KAAS7D,EAAT6D,CAAqB1H,EAAQiH,GAExC,CAyCM,SAAUU,GACdvI,EACA6B,GAEA,MAAO,IAAI2G,IACFC,EAASzI,EAAK,CAAEtB,KAAM8J,EAAQ3G,WAEzC,CA0BO,MAAM6G,GAAmBC,GAC9BJ,GACE5I,EAAc/C,QAAU+C,EAAciJ,MACtC,CAACD,EAA8B7H,IACtB6H,EAAWE,SAAS/H,GAH/ByH,CAKEI,GA0BSG,GACXjH,GAEA0G,GACE5I,EAAc/C,QAAU+C,EAAciJ,MACtC/G,EAFF0G,GC5rBI,SAAUQ,GAAUC,GACxB,MAAO,CAAmBpI,EAAgBwD,IACjCgE,EAAahG,EAASpC,IAAIrD,EAAOe,UAAW0G,GAAO4E,IAAQ,EAA3DZ,CACLxH,EACAwD,EAGN,CAmBM,SAAU6E,GAMdC,EACApE,EACA9E,EACAwE,EACA2E,GAEA,QAA0B,IAAf3E,EAAMxE,GAAsB,OACvC,MAAM4C,EAAOD,EAAQC,KAAM4B,EAAcxE,IACrCmJ,GAAa3E,EAAcxE,KAAS4C,IACxC4B,EAAMxE,GAAO4C,EACf,UASgBA,KACd,OAAO0F,EACL7B,EAAewC,IACfb,EAAazL,EAAOa,KAAM,CAAA,GAE9B,CAwBM,SAAU4L,GACd5E,EACAiE,GAEA,MAAM/J,KAAEA,EAAIsK,KAAEA,EAAItE,OAAEA,EAAM2E,OAAEA,EAAMC,UAAEA,EAASC,YAAEA,EAAWC,WAAEA,GAC1Df,EACF,IACE,MAAMgB,EAAW/K,EACdsH,IAAK0D,IACJ,GAAa,SAATV,EAAiB,OAAOU,EAC5B,QAAmC,IAAvBlF,EAAckF,GAAsB,CAC9C,GAAIH,EAAa,CACf,IAAK3D,MAAM+D,QAAQJ,GAAc,OACjC,GAAIA,EAAYV,SAASa,GAAM,MACjC,CACA,MAAM,IAAI9F,EACR,YAAYlF,6CAEhB,CACA,OAAS8F,EAAckF,GAAa7G,aAErCqF,OAAQ9B,IAAOmD,KAAgBnD,GAE9B1B,GAAQ+E,EAASlI,QAAQmD,GACzB2E,GAAQI,EAAS1E,KAAKsE,GAE1B,MAAMtG,EAAc0G,EACjBzD,IAAKO,GACgB,iBAANA,GAAmC,oBAAjBA,EAAE1D,WAC9B+G,KAAKC,UAAUtD,GACfA,GAELuD,KAAKR,GACR,OAAOE,EAAa7G,EAAQC,KAAKG,GAAOA,CAC1C,CAAE,MAAOzD,GACP,MAAM,IAAIsE,EAAc,4BAA4BtE,EACtD,CACF,CAkBM,SAAUyK,GAILb,EAAiCpE,EAAS9E,EAAcwE,GAChEA,EAAcxE,GAAOoJ,GAAsB5E,EAAOM,EACrD,CAgBA,SAASkF,GACPtL,EACA8K,GAAsB,EACtBF,EAAoBzL,EACpB0L,GAAkC,EAClCP,EAA0B,SAC1BtE,EAAS,GACT2E,EAAS,GACT3C,EAAuB,CAAEzC,SAAU,KAgCnC,OAAO/B,EAAW+H,IAAItN,EAAOc,UAC1ByM,OAAO,CACNC,UAhCJ,CACEzL,EACA8K,EACAF,EACAN,EACAtE,EACA2E,EACA3C,IAEO,CAAqB9F,EAAgBwJ,KAC1C,MAAMtF,EAA6B,CACjCpG,KAAMA,EACN8K,WAAYA,EACZF,UAAWA,EACXN,KAAMA,EACNtE,OAAQA,EACR2E,OAAQA,EACRE,YAAaA,GAGT9E,EAAa,CACjBsE,GAAUpM,EAAOc,UACjBgJ,EAAesD,GAA0BjF,EAAM4B,GAC/C0B,EAAahG,EAASpC,IAAIrD,EAAOc,SAAU2M,GAAWtF,IAGxD,OADI0E,GAAY/E,EAAWM,KAAKnC,MACzB0F,KAAS7D,EAAT6D,CAAqB1H,EAAQwJ,EACtC,EAME1L,KAAM,CAACA,EAAM8K,EAAYF,EAAWN,EAAMtE,EAAQ2E,EAAQ3C,KAE3D4B,OACL,CAeM,SAAU+B,GACd3L,EACA4K,EAAoBzL,EACpB0L,GAAkC,EAClC3G,GAAgB,EAChB8B,EAAS,GACT2E,EAAS,GACT3C,EAAuB,CAAEzC,SAAU,KAEnC,OAAO+F,GACLtL,EACAkE,EACA0G,EACAC,EACA,OACA7E,EACA2E,EACA3C,EAEJ,CAeM,SAAU+C,GACd/K,EACA4K,EAAoBzL,EACpB0L,GAAkC,EAClC3G,GAAgB,EAChB8B,EAAS,GACT2E,EAAS,GACT3C,EAAuB,CAAEzC,SAAU,KAEnC,OAAO+F,GACLtL,EACAkE,EACA0G,EACAC,EACA,SACA7E,EACA2E,EACA3C,EAEJ,CAgCM,SAAU4D,GAAoBxJ,GAClC,MAAO,CAMLoI,EACApE,EACA9E,EACAwE,EACA2E,KAEA,GAAKoB,EAAMC,eAAehG,EAAOxE,EAAKkJ,GACtC,IACE,OAAQpI,GACN,KAAKnB,EAAcO,OAChBsE,EAAcxE,GAAO,EACtB,MACF,KAAKL,EAAcS,OACjB,GACE8I,EAAQvI,IAAI,0BACZwI,GACA3E,EAAMxE,KAASmJ,EAASnJ,GAExB,MAAM,IAAI2D,EACR,qBAAqBa,EAAMxE,UAAYmJ,EAASnJ,MAEnDwE,EAAcxE,KACf,MACF,QACE,MAAM,IAAI4D,EAAc,sBAAsB9C,GAEpD,CAAE,MAAOxB,GACP,MAAM,IAAIsE,EAAc,6BAA6BtE,EACvD,CACF,CACF,UASgBmL,KACd,MAAMzK,EAAMrD,EAAOgB,QACnB,MAAO,CAAiBiD,EAAaiH,IAC5B3F,EAAW+H,IAAIjK,GACnBkK,OACC9B,EAAahG,EAASpC,IAAIA,EAAK6H,IAAc,GAC7CkB,GAAUpM,EAAOgB,SACjBqL,EAAK0B,QACL7D,GAASyD,GAAoB3K,EAAcO,SAC3C0G,GAAS0D,GAAoB3K,EAAcS,UAE5CkI,OARIpG,CAQItB,EAAQiH,EAEvB,UASgB8C,KACd,OAAOzI,EAAW+H,IAAItN,EAAOY,WAC1B2M,OAAO,CAAmB1F,EAAYoG,KACrCxC,EAAahG,EAASpC,IAAIrD,EAAOY,UAAWqN,GAAY,CAAA,EAAxDxC,CACE5D,EACAoG,EAEJ,GACCtC,OACL,CCxWM,SAAUuC,GACdhM,EAAkBd,EAAuBV,SAASW,SAElD,MAAMgC,EAAMrD,EAAOU,SACbyN,EAAO,CACXjM,QAASA,EACTkM,YAAa,oCACbC,OAAO,GAET,OAAO9I,EAAW+H,IAAIjK,GACnBkK,OAAO,CACNC,UAAWc,EACXvM,KAAM,CAACmM,GAAU7K,EAAK8K,KAEvBxC,OACL,CAiBO0C,eAAeE,GAMpBhC,EACApE,EACA9E,EACAwE,GAEI+F,EAAMC,eAAehG,EAAOxE,EAAKkJ,KAClC1E,EAAcxE,GAAOkJ,EAAQiC,UAClC,CAiDM,SAAUA,GACdrK,EAA6Bb,EAAaK,cAC1C8K,EAAiBtN,GAEjB,MAAMuN,EAAgB1O,EAAOW,UACvBgO,EAAsBxL,EAAWC,UAAUpD,EAAOW,WAsBxD,OAAO4E,EAAW+H,IAAIoB,GACnBnB,OAAO,CACNC,UAtBJ,CAAYrJ,EAA4BsK,KACtC,MAAM3G,EAAoB,CACxBsE,GAAUpM,EAAOW,WACjBiO,EAAKH,EAAQrN,EAAuBT,UAAUY,MAC9CsN,EAASzN,EAAuBT,UAAUW,UAC1CmK,EAAatI,EAAWE,IAAIrD,EAAOW,WAAY,CAC7CwD,UAAWA,EACXsK,OAAQA,IAEVzE,GAAG7F,EAAWoK,KAShB,OAPgD,IAA5CpK,EAAU2K,QAAQ9L,EAAcS,QAClCqE,EAAWM,KACTqD,EAAakD,EAAqB,CAChCzM,QAASd,EAAuBT,UAAUU,WAG3CyG,EAAWM,KAAK8F,MACdvC,KAAS7D,EAClB,EAII/F,KAAM,CAACoC,EAAWsK,KAEnB9C,OACL,CAiBO0C,eAAeU,GAKpBxC,EACApE,EACA9E,EACAwE,GAEA,GAAKA,EAAMxE,GACX,IACEwE,EAAMxE,GAAO8E,EAAK6G,YACb,IAAI7G,EAAK6G,YAAaC,UAAUpH,EAAMxE,IACtC4J,KAAKC,UAAUrF,EAAMxE,GAC5B,CAAE,MAAOV,GACP,MAAM,IAAIuE,EACR,uBAAuB7D,EAAI6C,gCAAgC2B,EAAMlG,YAAY4C,SAAS5B,IAE1F,CACF,CAiBO0L,eAAea,GAKpB3C,EACApE,EACA9E,EACAwE,GAEA,GAAKA,EAAMxE,IACe,iBAAfwE,EAAMxE,GAEjB,IACEwE,EAAMxE,GAAO8E,EAAK6G,YACd,IAAI7G,EAAK6G,YAAaG,YAAYtH,EAAMxE,IACxC4J,KAAKmC,MAAMvH,EAAMxE,GACvB,CAAE,MAAOV,GACP,MAAM,IAAIuE,EACR,yBAAyB7D,EAAI6C,gCAAgC2B,EAAMlG,YAAY4C,SAAS5B,IAE5F,CACF,CA6BM,SAAUsM,GAAUD,GACxB,OAAOrD,EACL7B,EAAeiF,GAAyB,CAAEC,WAAYA,IACtDvE,GAAMnH,EAAaO,IAAKqL,GAAmB,CAAEF,WAAYA,IACzD3C,EAAK,CAACgD,OAAQxK,SACdiH,EAAS9L,EAAOS,UAAW,CAAEuO,WAAYA,IAE7C,UCrQgBM,KAOd,OAAO3D,EAAMkD,IAAYX,KALhB,CAAqBrG,EAAeJ,IAClCgE,EAAahG,EAASpC,IAAIrD,EAAOM,GAAImH,GAAO,CAAA,EAA5CgE,CAAgD5D,EAAOJ,GAKpE,CCgBM,SAAU8H,GACd1H,EACA2H,GAEA,MAAMC,EAA6B,GACnC,IAAK,MAAMhI,KAAQI,EAAO,CACxB,IACGhD,OAAOC,UAAU4K,eAAeC,KAAK9H,EAAOJ,IAC7C+H,EAActD,SAASzE,GAEvB,SAEF,MAAMK,EACJrC,EAASmK,cAAc/H,EAAMlG,YAA4B8F,IAAS,CAAA,EAUpEgI,EAAoBrH,KAAK,CAAEX,OAAMK,cACnC,CAEA,OAAO2H,CACT,CAEM,SAAUI,GAIdC,EACAtD,EACA/E,EACA+F,EACAa,GAEA,MAAM7L,EAA6BW,EAAWa,IAC5CwJ,EAAUnK,KAGZ,IAAKb,EACH,MAAUiE,MAAM,yBAAyB+G,EAAUnK,KAIrD,IAAKb,EAAUR,gBAAiB,OAAO+N,OAAqB5N,EAAWkM,GAGvE,IAAKA,GAASb,EAAUa,MAAO,OAAO0B,OAAqB5N,EAAWkM,GAEtE,MAAM2B,EAAiBnL,OAAOiB,OAAO0H,IAAc,CAAA,EAO7CyC,EAAazN,EAAUR,gBAC1B8N,EAAiBrI,GACjB+E,EAAiB/E,MACfuI,GAGL,OAAOD,EAAqBE,EAAY5B,EAC1C,CAEM,SAAU6B,GAIdJ,EACAtD,EACA/E,EACAK,EACAuG,GAEA,MAAM8B,EAAmD,CAAA,EAEzD,IAAK,MAAMC,KAAgBtI,EAAY,CACrC,MAAM0F,EAAY,IAAK1F,EAAWsI,GAAe/M,IAAK+M,GAEtD,IAAK/B,GAASb,EAAUa,MAAO,SAE/B,IAAIgC,EAAmBR,GACrBC,EACAtD,EACA/E,EACA+F,EACAa,GAQF,GAAIb,EAAUnK,MAAQiN,EAAeC,QAAUF,GAAoBhC,GAAQ,CACzE,MAAMmC,EAAgBV,EAAiBrI,GACjCgJ,EAAgBjE,EAAiB/E,GAEjCiJ,EACJF,aAAwBG,IAAM,IAAIH,GAAgBA,EAC9CI,EACJH,aAAwBE,IAAM,IAAIF,GAAgBA,EAEpD,GAAIC,GAAW/L,OAAQ,CACrB,MAGMkM,EAAe,CAFnBrD,EAAUsD,OAAStD,EAAUuD,OAASvD,EAAUwD,aAErBC,OAAO5H,IAAK6H,KAEvCA,GADAA,EAAiB,mBAANA,GAAqBA,EAAE3M,KAAa2M,EAANA,KAC1B3M,KAAQ2M,EAAU3M,KAAO2M,GACjC7B,IAAU8B,eAGbC,EAAOV,EAAUrH,IAAKgI,IAC1B,GAAIzD,EAAM0D,QAAQD,GAAa,CAE7B,MAAM/B,EAAK1B,EAAM2D,GAAGF,GAAmB,GACvC,IAAK/B,EAAI,MAAO,0BAChB,MAAMkC,EAAeZ,EAAUa,KAC5BC,GAAYpC,IAAO1B,EAAM2D,GAAGG,GAAW,IAE1C,OAAOL,EAAWxP,UAAU2P,EAC9B,CACA,OAAOX,EAAa3E,gBAAgBmF,QAChClP,EACA,kCAGN,GAAIkM,EACFgC,EAAmBsB,QAAQC,IAAIR,GAAMS,KAAM1B,GACxBA,EAAO2B,MAAOC,IAAOA,QACpB5P,EAAYgO,OAE3B,CACL,MAAM6B,EAAWZ,EAAKU,MAAOC,IAA2BA,GACxD1B,EAAmBe,EAAKzM,OAAS,IAAMqN,EAAWZ,OAAOjP,CAC3D,CACF,CACF,CAEIkO,IAAmBF,EAAe3C,EAAUnK,KAAOgN,EACzD,CAEA,IAAKhC,EACH,OAAOxJ,OAAOkB,KAAKoK,GAAQxL,OAAS,EAAKwL,OAAiBhO,EAE5D,MAAM4D,EAAOlB,OAAOkB,KAAKoK,GACnB8B,EAAWpN,OAAOiB,OAAOqK,GAC/B,OAAOwB,QAAQC,IAAIK,GAAUJ,KAAMK,IACjC,MAAMC,EAA8B,CAAA,EACpC,IAAK,IAAI5I,EAAI,EAAGA,EAAI2I,EAAevN,OAAQ4E,IAAK,CAC9C,MAAM6I,EAAMF,EAAe3I,QACfpH,IAARiQ,IACFD,EAAIpM,EAAKwD,IAAM6I,EAEnB,CACA,OAAOvN,OAAOkB,KAAKoM,GAAKxN,OAAS,EAAIwN,OAAMhQ,GAE/C,CAiCM,SAAUkQ,GACd7F,EACAsD,EACAzB,KACGmB,GAEH,MAAM8C,EAAyB/C,GAC7BO,EACAN,GAGIW,EAA8B,CAAA,EAC9BoC,EAAoC,CAAA,EAE1C,IAAK,MAAM9K,KAAEA,EAAIK,WAAEA,KAAgBwK,EAAwB,CACzD,MAAMpO,EAAiBuD,EAAP4H,GACVmD,EAAa1C,EAAiBrI,IAE9BgL,YAAEA,GAAgBhN,EAASiN,mBAC/B5C,EAASnO,YACT8F,GAEF,IAAKgL,EAAa,SAGlB,GAAIA,EAAYE,KAAMzB,GAAM,CAACjI,MAAM1E,KAAMoM,IAAIpM,MAAM2H,SAASgF,IAAK,CAC/D,IACGpJ,IACAjD,OAAOkB,KAAK+B,GAAYoE,SAASoE,EAAeC,MACjD,CACAJ,EAAOjM,GAAW,CAChB,CAACoM,EAAesC,MAAO,0BAA0B1O,iCAEnD,QACF,CAEA,GACEsO,KACEvJ,MAAM+D,QAAQwF,IAAcA,aAAqB7B,KACnD,CACAR,EAAOjM,GAAW,CAChB,CAACoM,EAAesC,MAAO,aAAoBnL,EAAP4H,wCAEtC,QACF,CACF,CAGA,MAAMwD,EACJ3C,GAAmBJ,EAAUtD,EAAUtI,EAAS4D,EAAYuG,IAAU,CAAA,EAIlEyE,EAAWlF,EAAMmF,gBAAgBjD,EAAU5L,GAGjD,GAFqBsO,SAEDM,EAAU,CAC5B,MAAME,EAAWR,EAEXS,EAASR,EACZpJ,IAAKC,GAAWsE,EAAM5J,IAAIsF,EAAE/E,MAAQ+E,IACpCmI,KAAMnI,KAAaA,GAEhB4J,EAAkBT,EAAYpJ,IAAKC,GACtB,mBAANA,EACFA,EAAE/E,KAAO+E,EAAE/E,KAAK4M,cAAgB7H,KAAK/E,KAAK4M,cAC5C7H,EAAE6H,eAIX,GAAK8B,GAAYT,aAAqBS,EAU/B,CACL,MAAME,EAAsBC,EAC1BlP,KACGsL,GAEL+C,EAAarO,GAAW8O,EAASnR,UAC9B2K,EAAiB/E,MACf0L,EAEP,MAlBMD,EAAgBhH,gBAAgBsG,KAIlCK,EAAWvC,EAAesC,MAASK,EAE/B,gCAAgCA,EAAO1O,KADvC,iEAAiEkO,EAAYvM,sBAAsBhC,WAEhG2O,EAAW3S,EAAU0S,MAYlC,EAII/N,OAAOkB,KAAK8M,GAAYlO,OAAS,GAAK0J,KACxC8B,EAAOjM,GAAW2O,GAGfxE,GACHxJ,OAAOwO,QAAQd,EAAarO,IAAY,CAAA,GAAIiF,QAAQ,EAAE9F,EAAKiQ,WAC3CnR,IAAVmR,IACFnD,EAAO,GAAGjM,KAAWb,KAASiQ,IAItC,CAGA,IAAKjF,EACH,OACExJ,OAAOkB,KAAKoK,GAAQxL,OAAS,EACzB,IAAI4O,EAAqBpD,QACzBhO,EAIR,MAAMqR,EAAcrD,EAEdpK,EAAOlB,OAAOkB,KAAKyN,GACnBvB,EAAWpN,OAAOiB,OAAO0N,GAC/B,OAAO7B,QAAQ8B,WAAWxB,GAAUJ,KAAKxD,MAAOqF,IAC9C,MAAMvD,EAAsB,CAAA,EAE5B,IAAK,MAAOwD,EAAYC,KAAqB/O,OAAOwO,QAAQd,GAAe,CACzE,MAAMsB,QAA6BD,EAK/BC,GACFhP,OAAOwO,QAAQQ,GAAqB1K,QAClC,EAAE2K,EAAYC,WACe5R,IAAvB4R,IAEF5D,EADkB,CAACwD,EAAYG,GAAY3G,KAAK,MAC5B4G,IAI9B,CAEA,IAAK,IAAIxK,EAAI,EAAGA,EAAImK,EAAQ/O,OAAQ4E,IAAK,CACvC,MAAMlG,EAAM0C,EAAKwD,GACX4I,EAAMuB,EAAQnK,GAED,cAAf4I,EAAI6B,aAAwC7R,IAAdgQ,EAAIrQ,MACnCqO,EAAe9M,GAAO8O,EAAIrQ,MACH,aAAfqQ,EAAI6B,SACZ7D,EAAe9M,GACd8O,EAAI8B,kBAAkBxN,MAClB0L,EAAI8B,OAAO/R,SACJiQ,EAAI8B,QAAU,qBAArB5E,GAEV,CAEA,OAAOxK,OAAOkB,KAAKoK,GAAQxL,OAAS,EAChC,IAAI4O,EAAqBpD,QACzBhO,GAER,CC/WM,SAAU+R,GACdC,GAEA,OAAOA,EAAO5L,OAAO,CAACnE,EAA2BzB,EAAG4G,KAC9C5G,IACFyB,EACmB,iBAAVA,EACHA,EAAQ,QAAQmF,MAAM5G,EAAEuD,aACxB,MAAMqD,MAAM5G,EAAEuD,cACf9B,QACNjC,EACL,CAeOkM,eAAe+F,GAKpBC,EACA9H,EACA1E,EACA1D,EACA4D,EACAyE,GAEA,MAAM1E,EACJwM,GAAgBzM,EAAO1D,EAAW4D,GAEpC,IAAKD,EAAY,OAEjB,MAEMyM,EAAmB1K,EADCxB,EADAT,EAAsBC,EAAOC,EAAYC,KAInE,IAAK,MAAMP,KAAO+M,EAAkB,CAClC,MAAMxS,EAAc,CAClBwK,EACA/E,EAAIW,KAAKxD,OAAS,EAAI6C,EAAIW,KAAOX,EAAIW,KAAK,GAC1CX,EAAIC,KAAK9C,OAAS,EAAI6C,EAAIC,KAAOD,EAAIC,KAAK,GAC1CI,GAGF,GACE,CAAC7E,EAAcS,OAAQP,EAAsBsR,YAAYtI,SACvD/H,GAEF,CACA,IAAKqI,EACH,MAAM,IAAIvF,EAAc,0CAC1BlF,EAAKqG,KAAKoE,EACZ,CACA,UACShF,EAAItC,QAA4CyG,MACrD0I,EACAtS,EAEJ,CAAE,MAAOY,GAMP,GALA4J,EAAQkI,OACLnH,IAAI8G,IACJd,MACC,6BAA6B9L,EAAItC,QAAQX,YAAYiD,EAAIC,WAAWI,EAAMlG,YAAY4C,QAEtFgI,EAAQvI,IAAI,uBAAwB,MAAMrB,CAChD,CACF,CACF,UAYgB2R,GACdzM,EACA1D,EACAuQ,GAEA,MAAM3M,EAAS2M,GAAaC,QAAQ,OAAQ,IAEtC7M,EAAarC,EAASzB,IAC1B6D,EAAMlG,YACNsB,EAAgByI,YAGlB,GAAK5D,EACL,OAAOjD,OAAOkB,KAAK+B,GAAYS,OAC7B,CAACnE,EAAwDoJ,KACvD,MAAMoH,EAAM7M,EACRD,EAAW0F,GAAWzF,IAAW,CAAA,EACjCD,EAAW0F,GACThG,EAAM3C,OAAOkB,KAAK6O,GAAKrJ,OAAQjC,GAAWA,IAAMnF,GAChD6D,EAAO,GACb,IAAK,MAAMsB,KAAK9B,EAAKQ,EAAKI,KAAK,CAAE/E,IAAKiG,EAAG3B,MAAOiN,EAAItL,KAMpD,OAJItB,GAAQA,EAAKrD,SACVP,IAAOA,EAAQ,CAAA,GACpBA,EAAMoJ,GAAaxF,GAEd5D,QAETjC,EAEJ,CClIAyL,EAAM9I,UAAU+P,YAAc,WAC5B,OAAOpP,EAASoP,YAAYxS,KAC9B,EAYAuL,EAAM9I,UAAUjD,UAAY,SAE1BiT,KACGC,IAECD,GAAqBA,aAA2BlH,IAClDmH,EAAWnQ,QAAQkQ,GACnBA,OAAkB3S,GAGpB,MAAMkM,EAAQhM,KAAK2S,UACb5D,EAAO6D,EAAS5S,KAAMgM,KAAU0G,GAEtC,OAAI1G,EACKsD,QAAQuD,QAAQ9D,GAAMS,KAAMsD,GAC7BA,IAAiBL,EACZK,EAEF9C,GAAgByC,EAAiBzS,KAAMgM,KAAU0G,IAIxD3D,IAAS0D,EAAwB1D,EAG9BiB,GAAgByC,EAAiBzS,KAAMgM,KAAU0G,EAC1D,EAEAnH,EAAM9I,UAAUsQ,UAAY,WAG1B,OAAOxH,EAAMwH,UAAU/S,KACzB,EAECuL,EAAcwH,UACbvN,IAEA,IAAKpC,EAASoP,YAAYhN,GAAQ,MAAO,CAAEA,MAAOA,GAClD,MAAM4H,EAAsBhK,EAAS4P,sBACnCxN,EAAMlG,aAGF2T,EAAiB7P,EAASzB,IAC9B6D,EAAMlG,YACN3B,EAAOY,WAGHuP,EAAS,CACbtI,MAAO,CAAA,EACPmG,UAAW,CAAA,GAEb,IAAK,MAAM3K,KAAOoM,EAEhB,GADoB5K,OAAOkB,KAAKuP,GAAgBpJ,SAAS7I,GACxC,CACf8M,EAAOnC,UAAYmC,EAAOnC,WAAa,CAAA,EACvC,IACEmC,EAAOnC,UAAU3K,GAAOwE,EAAMxE,EAChC,CAAE,MAAOV,GACP,MAAM,IAAIuE,EACR,0CAA0C7D,MAAQV,IAEtD,CACF,MACEwN,EAAOtI,MAAQsI,EAAOtI,OAAS,CAAA,EAC/BsI,EAAOtI,MAAMxE,GAAQwE,EAA8BxE,GAKvD,OADA8M,EAAOtI,MAAQ+F,EAAM2H,MAAMpF,EAAOtI,MAAOA,EAAMlG,YAAY4C,MACpD4L,CACT,EAEC1K,EAAiB8L,IAAK,CACrB1J,EACA2N,GAAW,KAEX,IAAK3N,EAAO,MAAUpB,MAAM,yBAC5B,MAAMgP,EAAS5N,aAAiB+F,EAAQ/F,EAAMlG,YAAckG,EACtD6N,EAASjQ,EAASzB,IAAIyR,EAAuBzV,EAAOM,IAC1D,IAAKoV,EACH,MAAUjP,MACR,qCAAoCgP,GAAQlR,MAAQ,kBAGxD,MAAMlB,EAAMwB,OAAOkB,KAAK2P,GAAQ,GAChC,IAAKF,EAAU,OAAOnS,EACtB,GAAIwE,aAAiB+F,EAAO,OAAO/F,EAAMxE,GACzC,MAAUoD,MAAM,sDAClB,GAAEkP,KAAKlQ,GAENmI,EAAc2D,IAAK,CAClB1J,EACA2N,GAAW,IAEJ/P,EAAS8L,GAAG1J,EAAO2N,IAC1BG,KAAK/H,GAENA,EAAcgI,SACb/N,GAEOpC,EAASzB,IACd6D,EACApC,EAASpC,IAAIrD,EAAOM,GAAIsN,EAAM2D,GAAG1J,MAEnC8N,KAAK/H,GAENA,EAAciH,aACbhN,KAESpC,EAASzB,IACC,mBAAV6D,EAAwBA,EAAMlG,YAAsBkG,EAC3D7H,EAAOY,YAET+U,KAAK/H,GAENA,EAAcd,UAAW,CACxBjF,EACAJ,KAEA,MAAMgO,EACJ5N,aAAiB+F,EAAS/F,EAAMlG,YAAiCkG,EACnE,OAAIJ,EACKhC,EAASzB,IAAIyR,EAAQhQ,EAASpC,IAAIrD,EAAOc,SAAU2G,MACnDhC,EAASzB,IAAIyR,EAAQzV,EAAOc,SACvC,GAAE6U,KAAK/H,GAWNA,EAAciI,OAAQ,CACrBrJ,EACAsD,EACAnO,KAGA,MAAMmU,EAAejO,GACnBhD,OAAOwO,QAAQxL,GAAOU,OAAO,CAACnE,GAA6Bf,EAAK+O,MAC1D,MAAOA,IAAqChO,EAAMf,GAAO+O,GACtDhO,GACN,CAAA,GAGL,OAAO,IARPzC,EAAcA,GAAgB6K,EAAS7K,aAO1BkD,OAAOkR,OAAO,CAAA,EAAID,EAAYtJ,GAAWsJ,EAAYhG,IAEpE,GAAE6F,KAAK/H,GAENnI,EAAiBuQ,eAAgB,CAChCnO,EACAqD,EACA/G,EACA2H,KAEKZ,GACLzF,EAASiD,IACPb,EACApC,EAASpC,IAAIJ,EAAgByI,WAAYR,EAAa/G,GACtD2H,EAEJ,GAAE6J,KAAKlQ,GAENA,EAAiB2F,eAAgB,CAChCvD,EACAqD,EACA/G,KAEA,GAAK+G,GAAgB/G,EACrB,OAAOsB,EAASzB,IACd6D,EACApC,EAASpC,IAAIJ,EAAgByI,WAAYR,EAAa/G,GAE1D,GAAEwR,KAAKlQ,GAENA,EAAiBoP,aAChBhN,KAESpC,EAASzB,IACC,mBAAV6D,EAAwBA,EAAMlG,YAAsBkG,EAC3D7H,EAAOY,YAET+U,KAAKlQ,GAENmI,EAAcxB,WAAY,CACzBvE,EACAJ,MAEShC,EAASzB,IACC,mBAAV6D,EAAwBA,EAAMlG,YAAsBkG,EAC3DpC,EAASpC,IAAIrD,EAAOe,UAAW0G,KAEjCkO,KAAK/H,GAENA,EAAcC,gBAAiB,CAC9BhG,EACAJ,EACAwO,KAEIA,EAAIjS,IAAI,iCAAqD,IAAhB6D,EAAMJ,IAGvDkO,KAAK/H,GAENA,EAAcsI,aACbrO,IAEA,MAAMsG,EAAO1I,EAASzB,IAAI6D,EAAMlG,aAChC,IAAKwM,IAASA,EAAKnO,EAAOgB,SACxB,MAAM,IAAIiG,EAAc,wBAAwBY,EAAMlG,YAAY4C,MACpE,OAAOM,OAAOkB,KAAKoI,GAAM,EAC3B,GAAEwH,KAAK/H,GAENA,EAAcuI,WACbtO,IAEA,MAAMiG,EAAUjG,EAAM+F,EAAMsI,YAAYrO,IACxC,GAAuB,iBAAZiG,GAAkC,EAAVA,EACjC,MAAM,IAAI7G,EAAc,2BAA2B6G,GACrD,OAAOA,CACT,GAAE6H,KAAK/H,GChPA,MAAMwI,GAGT,CACFC,mBAAelU,EACfmU,cAAe,GACfC,4BAA6B,GAC7BC,SAAU,GACVC,gBAAgB,EAChBC,eAAgB,GAChBvS,eAAWhC,EACXwU,qBAAqB,EACrBC,sBAAsB,EACtBC,kBAAkB,EAClBC,gBAAgB,EAChBC,qBAAqB,EACrBC,gBAAgB,EAChBC,uBAAuB,EACvBC,yBAAyB,GCOdC,GAIXpK,IAEO,IAAIqK,IAAaC,WACtBxS,OAAOkR,OAAO,CAAA,EAAIhJ,EAAK,CACrByB,UAAW,IAAI9L,KACf+R,OAAQ1H,EAAI0H,QAAU6C,EAAQtT,eA+DvBoT,GACX,WAAAzV,CAAYsU,GAWH5T,KAAA0B,MACP,IAAIwT,EAXJ1S,OAAO2S,eAAenV,KAAM,QAAS,CACnCP,MAAOmU,EAAMA,EAAW,MAAI,IAAIsB,EAChCE,UAAU,EACVC,YAAY,EACZC,cAAc,GAElB,QAEOtV,KAAAuV,QAA+BT,EAAsB,CAW5D,UAAAE,CAA6BvV,GAO3B,OANA+C,OAAO2S,eAAenV,KAAM,QAAS,CACnCP,MAAQO,KAAK0B,MAAiCsT,WAAWvV,GACzD2V,UAAU,EACVC,YAAY,EACZC,cAAc,IAETtV,IACT,CAEA,UAAIoS,GACF,OAAQpS,KAAK0B,MAAc0Q,MAC7B,CAEA,aAAIjG,GACF,OAAQnM,KAAK0B,MAAcyK,SAC7B,CAOA,GAAAxK,CAAuBX,GACrB,IACE,OAAQhB,KAAK0B,MAAiCC,IAC5CX,EAEJ,CAAE,MAAOV,GACP,MAAMkV,EAAUxV,KAAK0B,MAAcsS,cAGnC,GAAIwB,EAAQ,OAAOA,EAAO7T,IAAIX,GAC9B,MAAMV,CACR,CACF,CAKA,gBAAOmV,CACLvL,EACAwL,GAEA,OAAOX,GAAQQ,QACb/S,OAAOkR,OAAO,GAAKxJ,EAAgBxI,MAAOgU,GAAa,CAAA,GAE3D,CAKA,iBAAa7O,CACX/E,EAMA4T,EACAlQ,KAEG9F,GAEH,OAAOqV,GAAQQ,QACb/S,OAAOkR,OAAO,CAAA,EAAIK,GAA2C2B,EAAW,CACtE5T,UAAWA,EACX0D,MAAOA,EACP4M,OAAQsD,EAAUtD,QAAW6C,EAAQtT,QAG3C,CAKA,iBAAajC,CACXoC,EAMA0D,EACA9F,EACAiW,EACAD,GAEA,MAAME,EAAOlW,EAAKmW,MAElB7J,eAAe8J,IACb,OAAIH,EACKA,EAAWzL,QAAQpI,EAAW4T,GAAa,GAAIlQ,KAAU9F,GAC3DqV,GAAQlO,KAAW/E,EAAW4T,GAAa,GAAIlQ,KAAU9F,EAClE,CAEA,IAAI6H,EAeJ,OAdIqO,EACEA,aAAgBb,IAClBxN,EAAIqO,EACJlW,EAAKqG,KAAK6P,KAEVlW,EAAKqG,KAAK6P,GACVrO,QAAWuO,IACXpW,EAAKqG,KAAKwB,KAGZA,QAAWuO,IACXpW,EAAKqG,KAAKwB,IAGL,CAAE2C,QAAS3C,EAAG7H,KAAMA,EAC7B,EChOI,SAAUqW,GACdxD,EACAnK,EACA1C,EACAsQ,GAEA,MAAM9T,EAAO8T,GAAwB5N,EAAMlG,KAE3CqQ,EAAIrQ,GAAQ,IAAI+T,MAAM1D,EAAIrQ,GAAO,CAC/BoH,MAAO0C,MAAOpK,EAAQsU,EAASC,KAC7B,IAAI9E,EAAU3L,EAAO4H,KAAK4I,KAAYC,GAOtC,OANI9E,aAAmB/B,UAAS+B,QAAgBA,GAEhDA,EAAUzP,EAAO0L,KAAK4I,KAAY7E,GAE9BA,aAAmB/B,UAAS+B,QAAgBA,GAEzCA,IAGb,CAaM,SAAU+E,GACd7D,EACA8D,EACAhM,EACAiM,GAEA,MAAMpU,EAAOoU,GAA0BD,EAAOnU,KAC9CqQ,EAAIrQ,GAAQ,IAAI+T,MAAM1D,EAAIrQ,GAAO,CAC/BoH,MAAO0C,MAAOpK,EAAQsU,EAASC,KAC7B,IAAI9E,EAAUzP,EAAO0L,KAAK4I,KAAYC,GAOtC,OANI9E,aAAmB/B,UAAS+B,QAAgBA,GAEhDA,EAAUhH,EAAOiD,KAAK4I,KAAY7E,GAE9BA,aAAmB/B,UAAS+B,QAAgBA,GAEzCA,IAGb,CAeM,SAAUkF,GACdhE,EACA8D,EACAG,EACApO,EACAqO,GAEA,MAAMvU,EAAOuU,GAA0BD,EAAOtU,KAC9CqQ,EAAIrQ,GAAQ,IAAI+T,MAAM1D,EAAIrQ,GAAO,CAC/BoH,MAAO0C,MAAOpK,EAAQsU,EAASC,KAC7B,IAAIO,EAAkBL,EAAO/I,KAAK4I,KAAYC,GAC1CO,aAA2BpH,UAC7BoH,QAAwBA,GAC1B,MAAMxM,EAAUwM,EAAgBA,EAAgBpU,OAAS,GACzD,KAAM4H,aAAmB6K,IACvB,MAAM,IAAInQ,EAAc,qBAC1B,IAAIyM,EAAUzP,EAAO0L,KAAK4I,KAAYQ,GAItC,OAHIrF,aAAmB/B,UAAS+B,QAAgBA,GAChDA,EAAUjJ,EAAMkF,KAAK4I,EAAS7E,EAASnH,GACnCmH,aAAmB/B,UAAS+B,QAAgBA,GACzCA,IAGb,CAEM,SAAUsF,GACdpE,EACA8D,EACAG,EACApO,EACAqO,GAEA,MAAMvU,EAAOuU,GAA0BD,EAAOtU,KAC9CqQ,EAAIrQ,GAAQ,IAAI+T,MAAM1D,EAAIrQ,GAAO,CAC/BoH,MAAO0C,MAAOpK,EAAQsU,EAASC,KAC7B,IAAIO,EAAkBL,EAAO/I,KAAK4I,KAAYC,GAC1CO,aAA2BpH,UAC7BoH,QAAwBA,GAC1B,MAAMvM,EAAWuM,EAAgBb,MAC3B3L,EAAUwM,EAAgBA,EAAgBpU,OAAS,GACzD,KAAM4H,aAAmB6K,IACvB,MAAM,IAAInQ,EAAc,qBAC1B,GACEsF,EAAQvI,IAAI,2BACXuI,EAAQvI,IAAI,0BACXwI,aAAoBoB,MACpB3E,MAAM+D,QAAQR,KAAcA,EAASsF,MAAOmH,GAAMA,aAAarL,IAEjE,MAAM,IAAI3G,EAAc,wCAG1B,IAAIyM,EAAUzP,EAAO0L,KAAK4I,KAAYQ,GAItC,OAHIrF,aAAmB/B,UAAS+B,QAAgBA,GAChDA,EAAUjJ,EAAMkF,KAAK4I,EAAS7E,EAASlH,EAAUD,GAC7CmH,aAAmB/B,UAAS+B,QAAgBA,GACzCA,IAGb,OCnCsBwF,GAapB,SAAI,GACF,IAAK7W,KAAK8W,OACR,MAAM,IAAIlS,EAAc,iDAC1B,OAAO5E,KAAK8W,MACd,CAQA,MAAc5H,GACZ,OAAO3D,EAAM2D,GAAGlP,KAAKyO,MACvB,CAQA,WAAc8E,GACZ,OAAOhI,EAAMgI,QAAQvT,KAAKyO,MAC5B,CAEA,WAAAnP,CAAsBoP,GAChBA,IAAO1O,KAAK8W,OAASpI,GAEzB,MAAMqI,EAAO/W,KACb,CAACA,KAAKgX,OAAQhX,KAAKiX,KAAMjX,KAAKkX,QAAQpQ,QAASzB,IAC7C,MAAMnD,EAAOmD,EAAEnD,KACfqU,GACEQ,EACCA,EAAa7U,EAAO,UACrBmD,EACC0R,EAAa7U,EAAO,aAGzByU,GACEI,EACCA,EAAa/W,KAAKmX,OAAOjV,KAAO,UACjClC,KAAKmX,OACJJ,EAAa/W,KAAKmX,OAAOjV,KAAO,UAErC,CAoBA,eAAMkV,CAAUC,KAAgB3X,GAC9B,OAAO4P,QAAQC,IAAI8H,EAAOrQ,IAAK3B,GAAMrF,KAAKgX,OAAO3R,KAAM3F,IACzD,CAWU,kBAAM4X,CACd9R,KACG9F,GAEH,MAAM6X,QAAoCxC,GAAQrV,KAChDiB,EAAcO,OACdlB,KAAKyO,MACL/O,GAYF,GAVA8F,EAAQ,IAAIxF,KAAKyO,MAAMjJ,GAClB+R,EAAYrN,QAAQvI,IAAI,yBACrBoQ,GACJ/R,KACAuX,EAAYrN,QACZ1E,EACA7E,EAAcO,OACdP,EAAcuH,KAGbqP,EAAYrN,QAAQvI,IAAI,oBAAqB,CAChD,MAAMmQ,QAAexC,QAAQuD,QAAQrN,EAAMhG,aAC3C,GAAIsS,EAAQ,MAAM,IAAInN,EAAgBmN,EAAOjO,WAC/C,CAEA,MAAO,CAAC2B,KAAU+R,EAAY7X,KAChC,CAUU,kBAAM8X,CAAahS,EAAU0E,GASrC,OARKA,EAAQvI,IAAI,yBACToQ,GACJ/R,KACAkK,EACA1E,EACA7E,EAAcO,OACdP,EAAc+H,OAEXlD,CACT,CAWU,qBAAMiS,CACdJ,KACG3X,GAEH,MAAM6X,QAAoBxC,GAAQrV,KAChCiB,EAAcO,OACdlB,KAAKyO,MACL/O,GAEI+U,EAAiB8C,EAAYrN,QAAQvI,IAAI,kBACzC+V,EAAiBH,EAAYrN,QAAQvI,IAAI,oBAiB/C,GAfA0V,QAAe/H,QAAQC,IACrB8H,EAAOrQ,IAAIgF,MAAO3G,IAChB,MAAMG,EAAQ,IAAIxF,KAAKyO,MAAMpJ,GAS7B,OARKoP,SACG1C,GACJ/R,KACAuX,EAAYrN,QACZ1E,EACA7E,EAAcO,OACdP,EAAcuH,IAEX1C,MAINkS,EAAgB,CACnB,MAIM5F,EAASD,SAJgBvC,QAAQC,IACrC8H,EAAOrQ,IAAK3B,GAAMiK,QAAQuD,QAAQxN,EAAE7F,gBAKtC,GAAIsS,EAAQ,MAAM,IAAInN,EAAgBmN,EACxC,CACA,MAAO,CAACuF,KAAWE,EAAY7X,KACjC,CAUU,qBAAMiY,CAAgBN,EAAanN,GAa3C,OAZKA,EAAQvI,IAAI,yBACT2N,QAAQC,IACZ8H,EAAOrQ,IAAK3B,GACV0M,GACE/R,KACAkK,EACA7E,EACA1E,EAAcO,OACdP,EAAc+H,SAIf2O,CACT,CAoBA,aAAMO,CAAQlU,KAA2BhE,GACvC,aAAa4P,QAAQC,IAAI7L,EAAKsD,IAAKiG,GAAOjN,KAAKiX,KAAKhK,KAAOvN,IAC7D,CAUU,gBAAMmY,CAAWrS,EAAU0E,GASnC,OARKA,EAAQvI,IAAI,yBACToQ,GACJ/R,KACAkK,EACA1E,EACA7E,EAAcQ,KACdR,EAAc+H,OAEXlD,CACT,CAWU,gBAAMsS,CACd9W,KACGtB,GAEH,MAAM6X,QAAoBxC,GAAQrV,KAChCiB,EAAcQ,KACdnB,KAAKyO,MACL/O,GAEI8F,EAAW,IAAIxF,KAAKyO,MAS1B,OARAjJ,EAAMxF,KAAKkP,IAAMlO,QACX+Q,GACJ/R,KACAuX,EAAYrN,QACZ1E,EACA7E,EAAcQ,KACdR,EAAcuH,IAET,CAAClH,KAAQuW,EAAY7X,KAC9B,CAWU,mBAAMqY,CACdrU,KACGhE,GAEH,MAAM6X,QAAoBxC,GAAQrV,KAChCiB,EAAcQ,KACdnB,KAAKyO,MACL/O,GAeF,aAbM4P,QAAQC,IACZ7L,EAAKsD,IAAIgF,MAAOgM,IACd,MAAM3S,EAAI,IAAIrF,KAAKyO,MAEnB,OADApJ,EAAErF,KAAKkP,IAAM8I,EACNjG,GACL/R,KACAuX,EAAYrN,QACZ7E,EACA1E,EAAcQ,KACdR,EAAcuH,OAIb,CAACxE,KAAS6T,EAAY7X,KAC/B,CAUU,mBAAMuY,CAAcZ,EAAanN,GAazC,OAZKA,EAAQvI,IAAI,yBACT2N,QAAQC,IACZ8H,EAAOrQ,IAAK3B,GACV0M,GACE/R,KACAkK,EACA7E,EACA1E,EAAcQ,KACdR,EAAc+H,SAIf2O,CACT,CAoBA,eAAMa,CAAUb,KAAgB3X,GAC9B,OAAO4P,QAAQC,IAAI8H,EAAOrQ,IAAK3B,GAAMrF,KAAKmX,OAAO9R,KAAM3F,IACzD,CAUU,kBAAMyY,CAAa3S,EAAU2E,EAAaD,GAUlD,OATKA,EAAQvI,IAAI,yBACToQ,GACJ/R,KACAkK,EACA1E,EACA7E,EAAcS,OACdT,EAAc+H,MACdyB,GAEG3E,CACT,CAWU,kBAAM4S,CACd5S,KACG9F,GAEH,MAAM6X,QAAoBxC,GAAQrV,KAChCiB,EAAcS,OACdpB,KAAKyO,MACL/O,GAGIwK,EAAUqN,EAAYrN,QACtBuK,EAAiB8C,EAAYrN,QAAQvI,IAAI,kBACzC+V,EAAiBH,EAAYrN,QAAQvI,IAAI,oBACzCuN,EAAM1J,EAAcxF,KAAKkP,IAC/B,IAAKA,EACH,MAAM,IAAItK,EACR,qDAAqD5E,KAAKkP,IAG9D,IAAI/E,EAiBJ,GAhBID,EAAQvI,IAAI,2BACdwI,QAAiBnK,KAAKiX,KAAK/H,GACvBhF,EAAQvI,IAAI,oBACd6D,EAAQ+F,EAAMiI,MAAMrJ,EAAU3E,EAAOxF,KAAKyO,SAGzCgG,SACG1C,GACJ/R,KACAuX,EAAYrN,QACZ1E,EACA7E,EAAcS,OACdT,EAAcuH,GACdiC,IAGCuN,EAAgB,CACnB,MAAM5F,QAAexC,QAAQuD,QAAQrN,EAAMhG,UAAU2K,IACrD,GAAI2H,EAAQ,MAAM,IAAInN,EAAgBmN,EAAOjO,WAC/C,CACA,MAAO,CAAC2B,KAAU+R,EAAY7X,KAAMyK,EACtC,CAWU,qBAAMkO,CACdhB,KACG3X,GAEH,MAAM6X,QAAoBxC,GAAQrV,KAChCiB,EAAcS,OACdpB,KAAKyO,MACL/O,GAGIwK,EAAUqN,EAAYrN,QAEtBuK,EAAiBvK,EAAQvI,IAAI,kBAC7B+V,EAAiBxN,EAAQvI,IAAI,oBAC7B2W,EAAMjB,EAAOrQ,IAAK3B,IACtB,MAAM4H,EAAK5H,EAAErF,KAAKkP,IAClB,QAAkB,IAAPjC,EACT,MAAM,IAAIrI,EACR,qDAAqD5E,KAAKkP,IAE9D,OAAOjC,IAGT,IAAIsL,EAuBJ,GAtBIrO,EAAQvI,IAAI,2BACd4W,QAAkBvY,KAAK4X,QAAQU,EAAiBpO,GAC5CA,EAAQvI,IAAI,oBACd0V,EAASA,EAAOrQ,IAAI,CAAC3B,EAAG6B,IACtBqE,EAAMiI,MAAO+E,EAAkBrR,GAAI7B,EAAGrF,KAAKyO,UAI5CgG,SACGnF,QAAQC,IACZ8H,EAAOrQ,IAAI,CAAC3B,EAAG6B,IACb6K,GACE/R,KACAuX,EAAYrN,QACZ7E,EACA1E,EAAcS,OACdT,EAAcuH,GACdqQ,EAAYA,EAAUrR,QAAKpH,MAK9B4X,EAAgB,CACnB,IAAIc,EAMFA,EALGtO,EAAQvI,IAAI,+BAKU2N,QAAQC,IAC/B8H,EAAOrQ,IAAI,CAAC3B,EAAG6B,IACboI,QAAQuD,QAAQxN,EAAE7F,UAAW+Y,EAAkBrR,aAN1BoI,QAAQuD,QAC/BwE,EAAOrQ,IAAK3B,GAAMA,EAAE7F,cAUxB,MAAMsS,EAASD,GAAoB2G,GAEnC,GAAI1G,EAAQ,MAAM,IAAInN,EAAgBmN,EACxC,CACA,MAAO,CAACuF,KAAWE,EAAY7X,KAAM6Y,EACvC,CAUU,qBAAME,CACdpB,EACAkB,EACArO,GAEA,GACEA,EAAQvI,IAAI,2BACXuI,EAAQvI,IAAI,yBAER4W,EACH,MAAM,IAAI3T,EAAc,2CAe5B,OAbKsF,EAAQvI,IAAI,yBACT2N,QAAQC,IACZ8H,EAAOrQ,IAAI,CAAC3B,EAAG6B,IACb6K,GACE/R,KACAkK,EACA7E,EACA1E,EAAcS,OACdT,EAAc+H,MACd6P,EAAYA,EAAUrR,QAAKpH,KAI5BuX,CACT,CAoBA,eAAMqB,CAAUhV,KAA2BhE,GACzC,OAAO4P,QAAQC,IAAI7L,EAAKsD,IAAKgR,GAAMhY,KAAKkX,OAAOc,KAAMtY,IACvD,CAUU,kBAAMiZ,CAAanT,EAAU0E,GASrC,OARKA,EAAQvI,IAAI,yBACToQ,GACJ/R,KACAkK,EACA1E,EACA7E,EAAcU,OACdV,EAAc+H,OAEXlD,CACT,CAWU,kBAAMoT,CACd5X,KACGtB,GAEH,MAAM6X,QAAoBxC,GAAQrV,KAChCiB,EAAcU,OACdrB,KAAKyO,MACL/O,GAEI8F,QAAcxF,KAAKiX,KAAKjW,KAAQuW,EAAY7X,MAQlD,aAPMqS,GACJ/R,KACAuX,EAAYrN,QACZ1E,EACA7E,EAAcU,OACdV,EAAcuH,IAET,CAAClH,KAAQuW,EAAY7X,KAC9B,CAWU,qBAAMmZ,CACdnV,KACGhE,GAEH,MAAM6X,QAAoBxC,GAAQrV,KAChCiB,EAAcU,OACdrB,KAAKyO,MACL/O,GAEI2X,QAAerX,KAAK4X,QAAQlU,KAAS6T,EAAY7X,MAYvD,aAXM4P,QAAQC,IACZ8H,EAAOrQ,IAAIgF,MAAO3G,GACT0M,GACL/R,KACAuX,EAAYrN,QACZ7E,EACA1E,EAAcU,OACdV,EAAcuH,MAIb,CAACxE,KAAS6T,EAAY7X,KAC/B,CAUU,qBAAMoZ,CAAgBzB,EAAanN,GAa3C,OAZKA,EAAQvI,IAAI,yBACT2N,QAAQC,IACZ8H,EAAOrQ,IAAK3B,GACV0M,GACE/R,KACAkK,EACA7E,EACA1E,EAAcU,OACdV,EAAc+H,SAIf2O,CACT,CAOA,QAAAxT,GACE,OAAU7D,KAAKyO,MAAMvM,KAAd,aACT,EC9vBK,MAAMvD,GAAU,cACVoa,GAAe,cAC5B3V,EAAS4V,gBAAgBD,GAAcpa"}
|
|
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/overrides/overrides.ts","../src/overrides/ModelBuilderExtensions.ts","../src/repository/utils.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,null],"names":["DBKeys","REFLECT","ModelKeys","MODEL","REPOSITORY","CLASS","ID","INDEX","UNIQUE","SERIALIZE","READONLY","TIMESTAMP","TRANSIENT","HASH","COMPOSED","GENERATED","VERSION","ORIGINAL","DefaultSeparator","DEFAULT_TIMESTAMP_FORMAT","DEFAULT_ERROR_MESSAGES","INVALID","REQUIRED","DATE","UpdateValidationKeys","ReadOnlyValidator","Validator","constructor","super","hasErrors","value","args","updateHasErrors","oldValue","message","undefined","isEqual","this","getMessage","__decorate","validator","TimestampValidator","Date","e","UpdateValidator","DecoratorMessages","DEFAULT","acceptedTypes","OperationKeys","ModelOperations","BulkCrudOperationKeys","Validation","updateKey","key","DBOperations","CREATE","READ","UPDATE","DELETE","CREATE_UPDATE","READ_CREATE","ALL","OperationsRegistry","cache","get","target","propKey","operation","accum","owner","resolveOwner","name","resolveTargetName","handlers","selectHandlers","length","unshift","Object","prototype","getPrototypeOf","proto","register","handler","handlerName","getHandlerName","flavour","resolveFlavour","Decoration","defaultFlavour","Metadata","flavourOf","byOperation","bucket","firstBucket","values","keys","Hashing","hash","toString","Operations","str","targetName","registry","getOpRegistry","BaseError","Error","msg","code","stack","replaceAll","BreakError","BadRequestError","ValidationError","InternalError","SerializationError","NotFoundError","ConflictError","DefaultGroupSort","priority","getHandlerArgs","dec","prop","m","props","getHandlersDecorators","model","decorators","prefix","decs","handlerArgs","argsEntry","data","push","groupDecorators","grouped","reduce","acc","group","set","Symbol","groupKey","has","existing","Map","groups","Array","from","forEach","combined","map","d","i","sort","a","b","groupPriority","c","sortDecorators","onCreateUpdate","groupsort","on","onUpdate","onCreate","onRead","onDelete","onAny","op","ON","afterCreateUpdate","after","afterUpdate","afterCreate","afterRead","afterDelete","afterAny","AFTER","baseOp","dataToAdd","propertyKey","compoundKey","readOperation","handlerKey","mergeData","filter","handle","propMetadata","OPERATIONS","apply","storeHandlerMetadata","params","metadata","BlockOperations","operations","BLOCK","includes","BlockOperationIf","generated","type","hashOnCreateUpdate","context","oldModel","composeAttributeValue","suffix","separator","filterEmpty","hashResult","composed","arg","isArray","JSON","stringify","join","composedFromCreateUpdate","composedFrom","for","define","decorator","property","composedFromKeys","versionCreateUpdate","Model","shouldGenerate","version","Number","transient","attribute","readonly","meta","description","async","innerValidationDecorator","timestampHandler","timestamp","format","decorationKey","updateValidationKey","date","required","indexOf","serializeOnCreateUpdate","serializer","serialize","serializeAfterAll","deserialize","parse","String","id","getValidatableUpdateProps","propsToIgnore","decoratedProperties","hasOwnProperty","call","validationFor","validateDecorator","newModel","toConditionalPromise","decoratorProps","maybeError","validateDecorators","result","decoratorKey","validationErrors","ValidationKeys","LIST","newPropValue","oldPropValue","newValues","Set","oldValues","allowedTypes","class","clazz","customTypes","flat","t","toLowerCase","errs","childValue","isModel","pk","oldListModel","find","el","Promise","all","then","every","r","allEmpty","promises","resolvedValues","res","val","validateCompare","ValidatableUpdateProps","nestedErrors","propValue","designTypes","getPropDesignTypes","some","TYPE","propErrors","isConstr","isPropertyModel","instance","Constr","designTypeNames","nestedPropsToIgnore","getChildNestedPropsToIgnore","entries","error","ModelErrorDefinition","merged","allSettled","results","parentProp","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","status","reason","isTransient","previousVersion","exclusions","isAsync","validate","resolve","resolvedErrs","segregate","validatableProperties","transientProps","build","keyValue","constr","idProp","bind","pkProps","merge","extractData","assign","saveOperation","ctx","versionProp","versionOf","builderPrototype","ModelBuilderImpl","decorateClass","_classDecorators","applyDecorator","builder","attr","attributes","ensureAttributeBuilder","decorate","reduceErrorsToPrint","errors","enforceDBDecorators","repo","getDbDecorators","sortedDecorators","UPDATE_ALL","logger","extraPrefix","replace","obj","hashValue","DefaultRepositoryFlags","parentContext","childContexts","ignoredValidationProperties","callArgs","writeOperation","affectedTables","breakOnHandlerError","rebuildWithTransient","ignoreValidation","ignoreHandlers","ignoreDevSafeGuards","mergeForUpdate","applyUpdateValidation","allowGenerationOverride","DefaultContextFactory","Context","accumulate","Logging","ObjectAccumulator","defineProperty","writable","enumerable","configurable","factory","parent","childFrom","overrides","contextual","last","pop","getContext","prefixMethod","afterName","Proxy","thisArg","argArray","suffixMethod","before","beforeName","wrapMethodWithContext","method","methodName","transformedArgs","wrapMethodWithContextForUpdate","o","Repository","_class","self","create","read","delete","update","createAll","models","createPrefix","contextArgs","createSuffix","createAllPrefix","ignoreValidate","createAllSuffix","readAll","readSuffix","readPrefix","readAllPrefix","k","readAllSuffix","updateAll","updateSuffix","updatePrefix","updateAllPrefix","ids","oldModels","modelsValidation","updateAllSuffix","deleteAll","deleteSuffix","deletePrefix","deleteAllPrefix","deleteAllSuffix","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
|
package/lib/esm/index.d.ts
CHANGED
package/lib/esm/index.js
CHANGED
|
@@ -17,7 +17,7 @@ export * from "./validation/index.js";
|
|
|
17
17
|
* @const VERSION
|
|
18
18
|
* @memberOf module:db-decorators
|
|
19
19
|
*/
|
|
20
|
-
export const VERSION = "0.8.
|
|
20
|
+
export const VERSION = "0.8.28";
|
|
21
21
|
export const PACKAGE_NAME = "@decaf-ts/db-decorators";
|
|
22
22
|
Metadata.registerLibrary(PACKAGE_NAME, VERSION);
|
|
23
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import "@decaf-ts/decorator-validation";
|
|
2
|
+
declare module "@decaf-ts/decorator-validation" {
|
|
3
|
+
interface ModelBuilder<M> {
|
|
4
|
+
generated<N extends keyof M>(attr: N, type?: string): ModelBuilder<M>;
|
|
5
|
+
hash<N extends keyof M>(attr: N): ModelBuilder<M>;
|
|
6
|
+
composedFromKeys<N extends keyof M>(attr: N, args: string[], separator?: string, filterEmpty?: boolean | string[], hash?: boolean, prefix?: string, suffix?: string, groupsort?: {
|
|
7
|
+
priority: number;
|
|
8
|
+
}): ModelBuilder<M>;
|
|
9
|
+
composed<N extends keyof M>(attr: N, args: string[], separator?: string, filterEmpty?: boolean | string[], hash?: boolean, prefix?: string, suffix?: string, groupsort?: {
|
|
10
|
+
priority: number;
|
|
11
|
+
}): ModelBuilder<M>;
|
|
12
|
+
version<N extends keyof M>(attr: N): ModelBuilder<M>;
|
|
13
|
+
transient<N extends keyof M>(attr: N): ModelBuilder<M>;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import "@decaf-ts/decorator-validation";
|
|
2
|
+
import { ModelBuilder as ModelBuilderImpl } from "@decaf-ts/decorator-validation";
|
|
3
|
+
import { generated, hash, composed, composedFromKeys, version, transient, } from "./../model/decorators.js";
|
|
4
|
+
const builderPrototype = ModelBuilderImpl.prototype;
|
|
5
|
+
if (!builderPrototype.decorateClass) {
|
|
6
|
+
builderPrototype.decorateClass = function (decorator) {
|
|
7
|
+
if (!this._classDecorators) {
|
|
8
|
+
this._classDecorators = [];
|
|
9
|
+
}
|
|
10
|
+
this._classDecorators.push(decorator);
|
|
11
|
+
return this;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
const ensureAttributeBuilder = (builder, attr) => {
|
|
15
|
+
const attributes = builder.attributes;
|
|
16
|
+
if (attributes?.has(attr))
|
|
17
|
+
return attributes.get(attr);
|
|
18
|
+
return builder.attribute(attr, Object);
|
|
19
|
+
};
|
|
20
|
+
const applyDecorator = (builder, attr, decorator) => {
|
|
21
|
+
ensureAttributeBuilder(builder, attr).decorate(decorator);
|
|
22
|
+
return builder;
|
|
23
|
+
};
|
|
24
|
+
builderPrototype.generated = function (attr, type) {
|
|
25
|
+
return applyDecorator(this, attr, generated(type));
|
|
26
|
+
};
|
|
27
|
+
builderPrototype.hash = function (attr) {
|
|
28
|
+
return applyDecorator(this, attr, hash());
|
|
29
|
+
};
|
|
30
|
+
builderPrototype.composedFromKeys = function (attr, args, separator, filterEmpty, hashValue, prefix, suffix, groupsort) {
|
|
31
|
+
return applyDecorator(this, attr, composedFromKeys(args, separator, filterEmpty, hashValue, prefix, suffix, groupsort));
|
|
32
|
+
};
|
|
33
|
+
builderPrototype.composed = function (attr, args, separator, filterEmpty, hashValue, prefix, suffix, groupsort) {
|
|
34
|
+
return applyDecorator(this, attr, composed(args, separator, filterEmpty, hashValue, prefix, suffix, groupsort));
|
|
35
|
+
};
|
|
36
|
+
builderPrototype.version = function (attr) {
|
|
37
|
+
return applyDecorator(this, attr, version());
|
|
38
|
+
};
|
|
39
|
+
builderPrototype.transient = function (attr) {
|
|
40
|
+
return applyDecorator(this, attr, transient());
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=ModelBuilderExtensions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelBuilderExtensions.js","sourceRoot":"","sources":["../../../src/overrides/ModelBuilderExtensions.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAC;AAExC,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EACL,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,gBAAgB,EAChB,OAAO,EACP,SAAS,GACV,iCAA4B;AA+B7B,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,SAAkC,CAAC;AAE7E,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC;IACpC,gBAAgB,CAAC,aAAa,GAAG,UAAU,SAAyB;QAClE,IAAI,CAAE,IAAY,CAAC,gBAAgB,EAAE,CAAC;YACnC,IAAY,CAAC,gBAAgB,GAAG,EAAE,CAAC;QACtC,CAAC;QACA,IAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,sBAAsB,GAAG,CAAC,OAA0B,EAAE,IAAS,EAAE,EAAE;IACvE,MAAM,UAAU,GAAI,OAAe,CAAC,UAAuC,CAAC;IAC5E,IAAI,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvD,OAAQ,OAAe,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,OAA0B,EAC1B,IAAS,EACT,SAA4B,EAC5B,EAAE;IACF,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC1D,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,gBAAgB,CAAC,SAAS,GAAG,UAAU,IAAS,EAAE,IAAa;IAC7D,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF,gBAAgB,CAAC,IAAI,GAAG,UAAU,IAAS;IACzC,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,gBAAgB,CAAC,gBAAgB,GAAG,UAClC,IAAS,EACT,IAAc,EACd,SAAkB,EAClB,WAAgC,EAChC,SAAmB,EACnB,MAAe,EACf,MAAe,EACf,SAAgC;IAEhC,OAAO,cAAc,CACnB,IAAI,EACJ,IAAI,EACJ,gBAAgB,CACd,IAAI,EACJ,SAAS,EACT,WAAW,EACX,SAAS,EACT,MAAM,EACN,MAAM,EACN,SAAS,CACV,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,gBAAgB,CAAC,QAAQ,GAAG,UAC1B,IAAS,EACT,IAAc,EACd,SAAkB,EAClB,WAAgC,EAChC,SAAmB,EACnB,MAAe,EACf,MAAe,EACf,SAAgC;IAEhC,OAAO,cAAc,CACnB,IAAI,EACJ,IAAI,EACJ,QAAQ,CACN,IAAI,EACJ,SAAS,EACT,WAAW,EACX,SAAS,EACT,MAAM,EACN,MAAM,EACN,SAAS,CACV,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,gBAAgB,CAAC,OAAO,GAAG,UAAU,IAAS;IAC5C,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,gBAAgB,CAAC,SAAS,GAAG,UAAU,IAAS;IAC9C,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;AACjD,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/overrides/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,2BAAwB;AACxB,+BAA4B;AAC5B,8BAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/overrides/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,2BAAwB;AACxB,+BAA4B;AAC5B,8BAA2B;AAC3B,4CAAyC"}
|
package/lib/index.cjs
CHANGED
|
@@ -34,7 +34,7 @@ __exportStar(require("./validation/index.cjs"), exports);
|
|
|
34
34
|
* @const VERSION
|
|
35
35
|
* @memberOf module:db-decorators
|
|
36
36
|
*/
|
|
37
|
-
exports.VERSION = "0.8.
|
|
37
|
+
exports.VERSION = "0.8.28";
|
|
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
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
require("@decaf-ts/decorator-validation");
|
|
4
|
+
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
5
|
+
const decorators_1 = require("./../model/decorators.cjs");
|
|
6
|
+
const builderPrototype = decorator_validation_1.ModelBuilder.prototype;
|
|
7
|
+
if (!builderPrototype.decorateClass) {
|
|
8
|
+
builderPrototype.decorateClass = function (decorator) {
|
|
9
|
+
if (!this._classDecorators) {
|
|
10
|
+
this._classDecorators = [];
|
|
11
|
+
}
|
|
12
|
+
this._classDecorators.push(decorator);
|
|
13
|
+
return this;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
const ensureAttributeBuilder = (builder, attr) => {
|
|
17
|
+
const attributes = builder.attributes;
|
|
18
|
+
if (attributes?.has(attr))
|
|
19
|
+
return attributes.get(attr);
|
|
20
|
+
return builder.attribute(attr, Object);
|
|
21
|
+
};
|
|
22
|
+
const applyDecorator = (builder, attr, decorator) => {
|
|
23
|
+
ensureAttributeBuilder(builder, attr).decorate(decorator);
|
|
24
|
+
return builder;
|
|
25
|
+
};
|
|
26
|
+
builderPrototype.generated = function (attr, type) {
|
|
27
|
+
return applyDecorator(this, attr, (0, decorators_1.generated)(type));
|
|
28
|
+
};
|
|
29
|
+
builderPrototype.hash = function (attr) {
|
|
30
|
+
return applyDecorator(this, attr, (0, decorators_1.hash)());
|
|
31
|
+
};
|
|
32
|
+
builderPrototype.composedFromKeys = function (attr, args, separator, filterEmpty, hashValue, prefix, suffix, groupsort) {
|
|
33
|
+
return applyDecorator(this, attr, (0, decorators_1.composedFromKeys)(args, separator, filterEmpty, hashValue, prefix, suffix, groupsort));
|
|
34
|
+
};
|
|
35
|
+
builderPrototype.composed = function (attr, args, separator, filterEmpty, hashValue, prefix, suffix, groupsort) {
|
|
36
|
+
return applyDecorator(this, attr, (0, decorators_1.composed)(args, separator, filterEmpty, hashValue, prefix, suffix, groupsort));
|
|
37
|
+
};
|
|
38
|
+
builderPrototype.version = function (attr) {
|
|
39
|
+
return applyDecorator(this, attr, (0, decorators_1.version)());
|
|
40
|
+
};
|
|
41
|
+
builderPrototype.transient = function (attr) {
|
|
42
|
+
return applyDecorator(this, attr, (0, decorators_1.transient)());
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=ModelBuilderExtensions.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import "@decaf-ts/decorator-validation";
|
|
2
|
+
declare module "@decaf-ts/decorator-validation" {
|
|
3
|
+
interface ModelBuilder<M> {
|
|
4
|
+
generated<N extends keyof M>(attr: N, type?: string): ModelBuilder<M>;
|
|
5
|
+
hash<N extends keyof M>(attr: N): ModelBuilder<M>;
|
|
6
|
+
composedFromKeys<N extends keyof M>(attr: N, args: string[], separator?: string, filterEmpty?: boolean | string[], hash?: boolean, prefix?: string, suffix?: string, groupsort?: {
|
|
7
|
+
priority: number;
|
|
8
|
+
}): ModelBuilder<M>;
|
|
9
|
+
composed<N extends keyof M>(attr: N, args: string[], separator?: string, filterEmpty?: boolean | string[], hash?: boolean, prefix?: string, suffix?: string, groupsort?: {
|
|
10
|
+
priority: number;
|
|
11
|
+
}): ModelBuilder<M>;
|
|
12
|
+
version<N extends keyof M>(attr: N): ModelBuilder<M>;
|
|
13
|
+
transient<N extends keyof M>(attr: N): ModelBuilder<M>;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelBuilderExtensions.js","sourceRoot":"","sources":["../../src/overrides/ModelBuilderExtensions.ts"],"names":[],"mappings":";;AAAA,0CAAwC;AAExC,yEAAkF;AAClF,0DAO6B;AA+B7B,MAAM,gBAAgB,GAAG,mCAAgB,CAAC,SAAkC,CAAC;AAE7E,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC;IACpC,gBAAgB,CAAC,aAAa,GAAG,UAAU,SAAyB;QAClE,IAAI,CAAE,IAAY,CAAC,gBAAgB,EAAE,CAAC;YACnC,IAAY,CAAC,gBAAgB,GAAG,EAAE,CAAC;QACtC,CAAC;QACA,IAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,sBAAsB,GAAG,CAAC,OAA0B,EAAE,IAAS,EAAE,EAAE;IACvE,MAAM,UAAU,GAAI,OAAe,CAAC,UAAuC,CAAC;IAC5E,IAAI,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvD,OAAQ,OAAe,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,OAA0B,EAC1B,IAAS,EACT,SAA4B,EAC5B,EAAE;IACF,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC1D,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,gBAAgB,CAAC,SAAS,GAAG,UAAU,IAAS,EAAE,IAAa;IAC7D,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAA,sBAAS,EAAC,IAAI,CAAC,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF,gBAAgB,CAAC,IAAI,GAAG,UAAU,IAAS;IACzC,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAA,iBAAI,GAAE,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,gBAAgB,CAAC,gBAAgB,GAAG,UAClC,IAAS,EACT,IAAc,EACd,SAAkB,EAClB,WAAgC,EAChC,SAAmB,EACnB,MAAe,EACf,MAAe,EACf,SAAgC;IAEhC,OAAO,cAAc,CACnB,IAAI,EACJ,IAAI,EACJ,IAAA,6BAAgB,EACd,IAAI,EACJ,SAAS,EACT,WAAW,EACX,SAAS,EACT,MAAM,EACN,MAAM,EACN,SAAS,CACV,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,gBAAgB,CAAC,QAAQ,GAAG,UAC1B,IAAS,EACT,IAAc,EACd,SAAkB,EAClB,WAAgC,EAChC,SAAmB,EACnB,MAAe,EACf,MAAe,EACf,SAAgC;IAEhC,OAAO,cAAc,CACnB,IAAI,EACJ,IAAI,EACJ,IAAA,qBAAQ,EACN,IAAI,EACJ,SAAS,EACT,WAAW,EACX,SAAS,EACT,MAAM,EACN,MAAM,EACN,SAAS,CACV,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,gBAAgB,CAAC,OAAO,GAAG,UAAU,IAAS;IAC5C,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAA,oBAAO,GAAE,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,gBAAgB,CAAC,SAAS,GAAG,UAAU,IAAS;IAC9C,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAA,sBAAS,GAAE,CAAC,CAAC;AACjD,CAAC,CAAC"}
|
package/lib/overrides/index.cjs
CHANGED
|
@@ -22,4 +22,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
22
22
|
__exportStar(require("./Model.cjs"), exports);
|
|
23
23
|
__exportStar(require("./overrides.cjs"), exports);
|
|
24
24
|
__exportStar(require("./Metadata.cjs"), exports);
|
|
25
|
+
__exportStar(require("./ModelBuilderExtensions.cjs"), exports);
|
|
25
26
|
//# sourceMappingURL=index.js.map
|
package/lib/overrides/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/overrides/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,8CAAwB;AACxB,kDAA4B;AAC5B,iDAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/overrides/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,8CAAwB;AACxB,kDAA4B;AAC5B,iDAA2B;AAC3B,+DAAyC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decaf-ts/db-decorators",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.29",
|
|
4
4
|
"description": "Agnostic database decorators and repository",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -84,9 +84,5 @@
|
|
|
84
84
|
"@decaf-ts/decorator-validation": "latest",
|
|
85
85
|
"@decaf-ts/injectable-decorators": "latest",
|
|
86
86
|
"@decaf-ts/logging": "latest"
|
|
87
|
-
},
|
|
88
|
-
"overrides": {
|
|
89
|
-
"minimatch": "^10.2.2",
|
|
90
|
-
"test-exclude": "7.0.1"
|
|
91
87
|
}
|
|
92
88
|
}
|