@decaf-ts/db-decorators 0.17.0 → 0.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/db-decorators.cjs +1 -1
- package/dist/db-decorators.cjs.map +1 -1
- package/dist/db-decorators.js +1 -1
- package/dist/db-decorators.js.map +1 -1
- package/lib/cjs/index.cjs +2 -1
- package/lib/cjs/index.cjs.map +1 -1
- package/lib/esm/index.js +2 -1
- package/lib/esm/index.js.map +1 -1
- package/lib/types/index.d.cts +2 -1
- package/lib/types/index.d.mts +2 -1
- package/package.json +13 -1
package/dist/db-decorators.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e,t;e=this,t=function(e,t,r,a,o,n){"use strict";const s={REFLECT:r.ModelKeys.MODEL+".persistence.",REPOSITORY:"repository",CLASS:"_class",ID:"id",INDEX:"index",UNIQUE:"unique",SERIALIZE:"serialize",READONLY:"readonly",TIMESTAMP:"timestamp",TRANSIENT:"transient",HASH:"hash",COMPOSED:"composed",GENERATED:"generated",VERSION:"version",ORIGINAL:"__originalObj"},i="_",c="dd/MM/yyyy HH:mm:ss:S",l={ID:{INVALID:"This Id is invalid",REQUIRED:"The Id is mandatory"},READONLY:{INVALID:"This cannot be updated"},TIMESTAMP:{REQUIRED:"Timestamp is Mandatory",DATE:"The Timestamp must the a valid date",INVALID:"This value must always increase"}},d={REFLECT:"db.update.validation.",TIMESTAMP:s.TIMESTAMP,READONLY:s.READONLY};e.ReadOnlyValidator=class extends r.Validator{constructor(){super(l.READONLY.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,a){if(void 0!==e)return r.isEqual(e,t)?void 0:this.getMessage(a||this.message)}},e.ReadOnlyValidator=a.__decorate([r.validator(d.READONLY),a.__metadata("design:paramtypes",[])],e.ReadOnlyValidator),e.TimestampValidator=class extends r.Validator{constructor(){super(l.TIMESTAMP.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,r){if(void 0!==e){r=r||this.getMessage(r||this.message);try{e=new Date(e),t=new Date(t)}catch(e){return r}return e>t?void 0:r}}},e.TimestampValidator=a.__decorate([r.validator(d.TIMESTAMP),a.__metadata("design:paramtypes",[])],e.TimestampValidator);class p extends r.Validator{constructor(e=r.DEFAULT_ERROR_MESSAGES.DEFAULT,...t){super(e,...t)}}var u,f,y;r.Validation.updateKey=e=>d.REFLECT+e,e.OperationKeys=void 0,(u=e.OperationKeys||(e.OperationKeys={})).REFLECT="decaf.model.db.operations.",u.CREATE="create",u.READ="read",u.UPDATE="update",u.DELETE="delete",u.ON="on.",u.AFTER="after.",u.BLOCK="block",e.ModelOperations=void 0,(f=e.ModelOperations||(e.ModelOperations={})).OPERATIONS="operations",f.RELATIONS="relations",e.BulkCrudOperationKeys=void 0,(y=e.BulkCrudOperationKeys||(e.BulkCrudOperationKeys={})).CREATE_ALL="createAll",y.READ_ALL="readAll",y.UPDATE_ALL="updateAll",y.DELETE_ALL="deleteAll",e.BulkOperationBlockTarget=void 0,(e.BulkOperationBlockTarget||(e.BulkOperationBlockTarget={})).ALL="bulkAll";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=new Set([e.OperationKeys.CREATE,e.OperationKeys.READ,e.OperationKeys.UPDATE,e.OperationKeys.DELETE]),b=new Set(Object.values(e.BulkCrudOperationKeys));function k(t){return b.has(t)||t===e.BulkOperationBlockTarget.ALL?"bulk":(R.has(t),"crud")}function S(e){return"object"==typeof e&&null!==e&&Object.prototype.hasOwnProperty.call(e,"kind")&&"string"==typeof e.kind}function K(t){const r=Array.isArray(t)?t:[t],a=[];for(const t of r)if(Array.isArray(t))a.push(...K(t));else{if("string"==typeof t){const r=k(t),o=("bulk"===r&&e.BulkOperationBlockTarget.ALL,t);a.push({kind:r,value:o});continue}S(t)&&a.push(t)}return a}const L=(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)),L(e,t,n,a))};function N(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=L(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 C(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 I(e){return e.sort((e,t)=>(e.data[0].priority??50)-(t.data[0].priority??50)),e}function x(e,t,r){return V(h.CREATE_UPDATE,e,t,r)}function U(e,t,r){return V(h.UPDATE,e,t,r)}function j(e,t,r){return V(h.CREATE,e,t,r)}function V(t=h.ALL,r,a,o){return H(e.OperationKeys.ON,t,r,a,o)}function F(t=h.ALL,r,a,o){return H(e.OperationKeys.AFTER,t,r,a,o)}function H(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 _(e,r){return(...a)=>t.metadata(e,{args:a,handler:r})}function $(e){return(r,a)=>t.propMetadata(t.Metadata.key(s.GENERATED,a),e||!0)(r,a)}function B(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 z(){return t.apply(x(B),t.propMetadata(s.HASH,{}))}function G(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 Y(e,t,r,a){a[r]=G(a,t)}function q(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=[$(s.COMPOSED),x(Y,u,l),t.propMetadata(t.Metadata.key(s.COMPOSED,p),u)];return r&&f.push(z()),t.apply(...f)(d,p)},args:[e,r,a,n,c,l,d]}).apply()}function Q(e,t=i,r=!1,a=!1,o="",n="",s={priority:55}){return q(e,a,t,r,"keys",o,n,s)}function J(e,t=i,r=!1,a=!1,o="",n="",s={priority:55}){return q(e,a,t,r,"values",o,n,s)}function W(t){return(a,o,n,s,i)=>{if(r.Model.shouldGenerate(s,n,a))try{switch(t){case e.OperationKeys.CREATE:s[n]=1;break;case e.OperationKeys.UPDATE:if(a.get("applyUpdateValidation")&&i&&s[n]!==i[n])throw new T(`Version mismatch: ${s[n]} !== ${i[n]}`);s[n]++;break;default:throw new M("Invalid operation: "+t)}}catch(e){throw new M("Failed to update version: "+e)}}}function Z(){const a=s.VERSION;return(o,n)=>t.Decoration.for(a).define(t.propMetadata(t.Metadata.key(a,n),!0),$(s.VERSION),r.type(Number),j(W(e.OperationKeys.CREATE)),U(W(e.OperationKeys.UPDATE))).apply()(o,n)}function X(){return t.Decoration.for(s.TRANSIENT).define((e,r)=>{t.propMetadata(t.Metadata.key(s.TRANSIENT,r),{})(e,r)}).apply()}function ee(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:[ee,a,o]}).apply()}async function te(e,t,a,o){r.Model.shouldGenerate(o,a,e)&&(o[a]=e.timestamp)}async function re(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 ae(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 oe(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 ne(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 se(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=ne(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 ie(e,a,o,...n){const s=oe(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=se(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:ie(e,this,a,...t)):o||!e?o:ie(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 ce=r.ModelBuilder.prototype;ce.decorateClass||(ce.decorateClass=function(e){return this._classDecorators||(this._classDecorators=[]),this._classDecorators.push(e),this});const le=(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 de(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 pe(t,r,a,o,n,s){const i=ue(a,o,n);if(!i)return;const c=I(C(N(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(pe).error(`Failed to execute handler ${n.handler.name} for ${n.prop} on ${a.constructor.name}`),r.get("breakOnHandlerError"))throw e}}}function ue(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)}ce.generated=function(e,t){return le(this,e,$(t))},ce.hash=function(e){return le(this,e,z())},ce.composedFromKeys=function(e,t,r,a,o,n,s,i){return le(this,e,Q(t,r,a,o,n,s,i))},ce.composed=function(e,t,r,a,o,n,s,i){return le(this,e,J(t,r,a,o,n,s,i))},ce.version=function(e){return le(this,e,Z())},ce.transient=function(e){return le(this,e,X())};const fe={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},ye=e=>(new he).accumulate(Object.assign({},e,{timestamp:new Date,logger:e.logger||n.Logging.get()}));class he{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=ye}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 he.factory(Object.assign({},e.cache,t||{}))}static async from(e,t,r,...a){return he.factory(Object.assign({},fe,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):he.from(e,o||{},t,...r)}let i;return n?n instanceof he?(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 ge(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 he))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 Ee(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 he))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 me="##VERSION##",Oe="##PACKAGE##";t.Metadata.registerLibrary(Oe,me),e.BadRequestError=A,e.BaseError=m,e.BlockOperationIf=t=>_(e.OperationKeys.REFLECT+e.OperationKeys.BLOCK,(e,r,a)=>((e,t,r,a)=>e.length>2||"crud"!==r?e(t,r,a):e(t.filter(e=>"crud"===e.kind).map(e=>e.value),a))(t,e,r,a))(),e.BlockOperations=t=>{const r=K(t);return _(e.OperationKeys.REFLECT+e.OperationKeys.BLOCK,(t,r,a)=>t.some(t=>((t,r,a)=>t.kind===r&&("bulk"===t.kind&&t.value===e.BulkOperationBlockTarget.ALL||t.value===a))(t,r,a)))(r)},e.BreakError=O,e.ConflictError=P,e.Context=he,e.DBKeys=s,e.DBOperations=h,e.DEFAULT_ERROR_MESSAGES=l,e.DEFAULT_TIMESTAMP_FORMAT=c,e.DefaultContextFactory=ye,e.DefaultRepositoryFlags=fe,e.DefaultSeparator=i,e.InternalError=M,e.NotFoundError=D,e.Operations=E,e.OperationsRegistry=g,e.PACKAGE_NAME=Oe,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;ge(t,t[r+"Prefix"],e,t[r+"Suffix"])}),Ee(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 he.args(e.OperationKeys.CREATE,this.class,r);if(t=new this.class(t),a.context.get("ignoreHandlers")||await pe(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 pe(this,r,t,e.OperationKeys.CREATE,e.OperationKeys.AFTER),t}async createAllPrefix(t,...r){const a=await he.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 pe(this,a.context,r,e.OperationKeys.CREATE,e.OperationKeys.ON),r})),!n){const e=de(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=>pe(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 pe(this,r,t,e.OperationKeys.READ,e.OperationKeys.AFTER),t}async readPrefix(t,...r){const a=await he.args(e.OperationKeys.READ,this.class,r),o=new this.class;return o[this.pk]=t,await pe(this,a.context,o,e.OperationKeys.READ,e.OperationKeys.ON),[t,...a.args]}async readAllPrefix(t,...r){const a=await he.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,pe(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=>pe(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 pe(this,a,t,e.OperationKeys.UPDATE,e.OperationKeys.AFTER,r),t}async updatePrefix(t,...a){const o=await he.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 pe(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 he.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)=>pe(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=de(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)=>pe(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 pe(this,r,t,e.OperationKeys.DELETE,e.OperationKeys.AFTER),t}async deletePrefix(t,...r){const a=await he.args(e.OperationKeys.DELETE,this.class,r),o=await this.read(t,...a.args);return await pe(this,a.context,o,e.OperationKeys.DELETE,e.OperationKeys.ON),[t,...a.args]}async deleteAllPrefix(t,...r){const a=await he.args(e.OperationKeys.DELETE,this.class,r),o=await this.readAll(t,...a.args);return await Promise.all(o.map(async t=>pe(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=>pe(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=me,e.ValidationError=T,e.after=F,e.afterAny=(e,t,r)=>F(h.ALL,e,t,r),e.afterCreate=(e,t,r)=>F(h.CREATE,e,t,r),e.afterCreateUpdate=(e,t,r)=>F(h.CREATE_UPDATE,e,t,r),e.afterDelete=(e,t,r)=>F(h.DELETE,e,t,r),e.afterRead=(e,t,r)=>F(h.READ,e,t,r),e.afterUpdate=(e,t,r)=>F(h.UPDATE,e,t,r),e.composeAttributeValue=G,e.composed=J,e.composedFromCreateUpdate=Y,e.composedFromKeys=Q,e.enforceDBDecorators=pe,e.generated=$,e.getDbDecorators=ue,e.getHandlerArgs=L,e.getHandlersDecorators=N,e.getValidatableUpdateProps=oe,e.groupDecorators=C,e.hash=z,e.hashOnCreateUpdate=B,e.id=()=>t.apply(r.required(),ee(),(e,r)=>t.propMetadata(t.Metadata.key(s.ID,r),{})(e,r)),e.on=V,e.onAny=(e,t,r)=>V(h.ALL,e,t,r),e.onCreate=j,e.onCreateUpdate=x,e.onDelete=(e,t,r)=>V(h.DELETE,e,t,r),e.onRead=(e,t,r)=>V(h.READ,e,t,r),e.onUpdate=U,e.operation=H,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=ee,e.reduceErrorsToPrint=de,e.serialize=e=>t.apply(x(re,{serializer:e}),F(h.ALL,ae,{serializer:e}),r.type([String,Object]),t.metadata(s.SERIALIZE,{serializer:e})),e.serializeAfterAll=ae,e.serializeOnCreateUpdate=re,e.sortDecorators=I,e.storeHandlerMetadata=_,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=[$(s.TIMESTAMP),r.date(o,l.TIMESTAMP.DATE),r.required(l.TIMESTAMP.REQUIRED),t.propMetadata(r.Validation.key(s.TIMESTAMP),{operation:a,format:o}),V(a,te)];return-1!==a.indexOf(e.OperationKeys.UPDATE)?n.push(t.propMetadata(i,{message:l.TIMESTAMP.INVALID})):n.push(ee()),t.apply(...n)},args:[a,o]}).apply()},e.timestampHandler=te,e.transient=X,e.validateCompare=ie,e.validateDecorator=ne,e.validateDecorators=se,e.version=Z,e.versionCreateUpdate=W,e.wrapMethodWithContext=ge,e.wrapMethodWithContextForUpdate=Ee},"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:a.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 a.Validator{constructor(){super(l.READONLY.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,r){if(void 0!==e)return a.isEqual(e,t)?void 0:this.getMessage(r||this.message)}},e.ReadOnlyValidator=r.__decorate([a.validator(d.READONLY),r.__metadata("design:paramtypes",[])],e.ReadOnlyValidator),e.TimestampValidator=class extends a.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=r.__decorate([a.validator(d.TIMESTAMP),r.__metadata("design:paramtypes",[])],e.TimestampValidator);class p extends a.Validator{constructor(e=a.DEFAULT_ERROR_MESSAGES.DEFAULT,...t){super(e,...t)}}var u,f,y;a.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",e.BulkOperationBlockTarget=void 0,(e.BulkOperationBlockTarget||(e.BulkOperationBlockTarget={})).ALL="bulkAll";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:a.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=new Set([e.OperationKeys.CREATE,e.OperationKeys.READ,e.OperationKeys.UPDATE,e.OperationKeys.DELETE]),b=new Set(Object.values(e.BulkCrudOperationKeys));function k(t){return b.has(t)||t===e.BulkOperationBlockTarget.ALL?"bulk":(R.has(t),"crud")}function S(e){return"object"==typeof e&&null!==e&&Object.prototype.hasOwnProperty.call(e,"kind")&&"string"==typeof e.kind}function K(t){const r=Array.isArray(t)?t:[t],a=[];for(const t of r)if(Array.isArray(t))a.push(...K(t));else{if("string"==typeof t){const r=k(t),o=("bulk"===r&&e.BulkOperationBlockTarget.ALL,t);a.push({kind:r,value:o});continue}S(t)&&a.push(t)}return a}const L=(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)),L(e,t,n,a))};function N(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=L(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 C(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 I(e){return e.sort((e,t)=>(e.data[0].priority??50)-(t.data[0].priority??50)),e}function x(e,t,r){return V(h.CREATE_UPDATE,e,t,r)}function U(e,t,r){return V(h.UPDATE,e,t,r)}function j(e,t,r){return V(h.CREATE,e,t,r)}function V(t=h.ALL,r,a,o){return H(e.OperationKeys.ON,t,r,a,o)}function F(t=h.ALL,r,a,o){return H(e.OperationKeys.AFTER,t,r,a,o)}function H(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 _(e,r){return(...a)=>t.metadata(e,{args:a,handler:r})}function $(e){return(r,a)=>t.propMetadata(t.Metadata.key(s.GENERATED,a),e||!0)(r,a)}function B(e,t,r,o,n){if(void 0===o[r])return;const s=a.Hashing.hash(o[r]);n&&o[r]===s||(o[r]=s)}function z(){return t.apply(x(B),t.propMetadata(s.HASH,{}))}function G(e,t){const{args:r,type:o,prefix:n,suffix:s,separator:i,filterEmpty:c,hashResult:l}=t;try{const t=r.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 ${r} 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?a.Hashing.hash(d):d}catch(e){throw new M("Failed to compose value: "+e)}}function Y(e,t,r,a){a[r]=G(a,t)}function q(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=[$(s.COMPOSED),x(Y,u,l),t.propMetadata(t.Metadata.key(s.COMPOSED,p),u)];return r&&f.push(z()),t.apply(...f)(d,p)},args:[e,r,a,n,c,l,d]}).apply()}function Q(e,t=i,r=!1,a=!1,o="",n="",s={priority:55}){return q(e,a,t,r,"keys",o,n,s)}function J(e,t=i,r=!1,a=!1,o="",n="",s={priority:55}){return q(e,a,t,r,"values",o,n,s)}function W(t){return(r,o,n,s,i)=>{if(a.Model.shouldGenerate(s,n,r))try{switch(t){case e.OperationKeys.CREATE:s[n]=1;break;case e.OperationKeys.UPDATE:if(r.get("applyUpdateValidation")&&i&&s[n]!==i[n])throw new T(`Version mismatch: ${s[n]} !== ${i[n]}`);s[n]++;break;default:throw new M("Invalid operation: "+t)}}catch(e){throw new M("Failed to update version: "+e)}}}function Z(){const r=s.VERSION;return(o,n)=>t.Decoration.for(r).define(t.propMetadata(t.Metadata.key(r,n),!0),$(s.VERSION),a.type(Number),j(W(e.OperationKeys.CREATE)),U(W(e.OperationKeys.UPDATE))).apply()(o,n)}function X(){return t.Decoration.for(s.TRANSIENT).define((e,r)=>{t.propMetadata(t.Metadata.key(s.TRANSIENT,r),{})(e,r)}).apply()}function ee(e=l.READONLY.INVALID){const r=s.READONLY,o={message:e,description:"defines the attribute as readOnly",async:!1};return t.Decoration.for(r).define({decorator:a.innerValidationDecorator,args:[ee,r,o]}).apply()}async function te(e,t,r,o){a.Model.shouldGenerate(o,r,e)&&(o[r]=e.timestamp)}async function re(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 ae(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 oe(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 ne(e,t,r,o,n){const s=a.Validation.get(o.key);if(!s)throw Error("Missing validator for "+o.key);if(!s.updateHasErrors)return a.toConditionalPromise(void 0,n);if(!n&&o.async)return a.toConditionalPromise(void 0,n);const i=Object.values(o)||{},c=s.updateHasErrors(e[r],t[r],...i);return a.toConditionalPromise(c,n)}function se(e,t,r,o,n){const s={};for(const i in o){const c={...o[i],key:i};if(!n&&c.async)continue;let l=ne(e,t,r,c,n);if(c.key===a.ValidationKeys.LIST&&(!l||n)){const o=e[r],s=t[r],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(a.Model.isModel(t)){const e=a.Model.pk(t,!0);if(!e)return"Failed to find model id";const r=d.find(t=>e===a.Model.pk(t,!0));return t.hasErrors(r)}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 ie(e,r,o,...n){const s=oe(r,n),i={},c={};for(const{prop:l,decorators:d}of s){const s=l+"",p=r[l],{designTypes:u}=t.Metadata.getPropDesignTypes(r.constructor,l);if(!u)continue;if(u.some(e=>[Array.name,Set.name].includes(e))){if(!d||!Object.keys(d).includes(a.ValidationKeys.LIST)){i[s]={[a.ValidationKeys.TYPE]:`Array or Set property '${s}' requires a @list decorator`};continue}if(p&&!(Array.isArray(p)||p instanceof Set)){i[s]={[a.ValidationKeys.TYPE]:`Property '${l+""}' must be either an Array or a Set`};continue}}const f=se(r,e,s,d,o)||{},y=a.Model.isPropertyModel(r,s);if(null!=p&&y){const t=p,r=u.map(e=>a.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(r&&p instanceof r){const r=a.getChildNestedPropsToIgnore(s,...n);c[s]=t.hasErrors(e[l],...r)}else o.includes(typeof p)||(f[a.ValidationKeys.TYPE]=r?"Value must be an instance of "+r.name:`Unable to verify type consistency, missing model registry for ${u.toString()} on prop ${s}`,delete f[a.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 a.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 a.ModelErrorDefinition(t):void 0})}a.Model.prototype.isTransient=function(){return t.Metadata.isTransient(this)},a.Model.prototype.hasErrors=function(e,...t){!e||e instanceof a.Model||(t.unshift(e),e=void 0);const r=this.isAsync(),o=a.validate(this,r,...t);return r?Promise.resolve(o).then(a=>a||!e?a:ie(e,this,r,...t)):o||!e?o:ie(e,this,r,...t)},a.Model.prototype.segregate=function(){return a.Model.segregate(this)},a.Model.segregate=e=>{if(!t.Metadata.isTransient(e))return{model:e};const r=t.Metadata.validatableProperties(e.constructor),o=t.Metadata.get(e.constructor,s.TRANSIENT),n={model:{},transient:{}};for(const t of r)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=a.Model.build(n.model,e.constructor.name),n},t.Metadata.pk=((e,r=!1)=>{if(!e)throw Error("No model was provided");const o=e instanceof a.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(!r)return i;if(e instanceof a.Model)return e[i];throw Error("Cannot get the value of the pk from the constructor")}).bind(t.Metadata),a.Model.pk=((e,r=!1)=>t.Metadata.pk(e,r)).bind(a.Model),a.Model.pkProps=(e=>t.Metadata.get(e,t.Metadata.key(s.ID,a.Model.pk(e)))).bind(a.Model),a.Model.isTransient=(e=>!!t.Metadata.get("function"!=typeof e?e.constructor:e,s.TRANSIENT)).bind(a.Model),a.Model.composed=((e,r)=>{const o=e instanceof a.Model?e.constructor:e;return r?t.Metadata.get(o,t.Metadata.key(s.COMPOSED,r)):!!t.Metadata.get(o,s.COMPOSED)}).bind(a.Model),a.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(a.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),a.Model.generated=((e,r)=>!!t.Metadata.get("function"!=typeof e?e.constructor:e,t.Metadata.key(s.GENERATED,r))).bind(a.Model),a.Model.shouldGenerate=((e,t,r)=>!r.get("allowGenerationOverride")||void 0===e[t]).bind(a.Model),a.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(a.Model),a.Model.versionOf=(e=>{const t=e[a.Model.versionProp(e)];if("number"!=typeof t||1>t)throw new M("Invalid version number: "+t);return t}).bind(a.Model);const ce=a.ModelBuilder.prototype;ce.decorateClass||(ce.decorateClass=function(e){return this._classDecorators||(this._classDecorators=[]),this._classDecorators.push(e),this});const le=(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 de(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 pe(t,r,a,o,n,s){const i=ue(a,o,n);if(!i)return;const c=I(C(N(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(pe).error(`Failed to execute handler ${n.handler.name} for ${n.prop} on ${a.constructor.name}`),r.get("breakOnHandlerError"))throw e}}}function ue(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)}ce.generated=function(e,t){return le(this,e,$(t))},ce.hash=function(e){return le(this,e,z())},ce.composedFromKeys=function(e,t,r,a,o,n,s,i){return le(this,e,Q(t,r,a,o,n,s,i))},ce.composed=function(e,t,r,a,o,n,s,i){return le(this,e,J(t,r,a,o,n,s,i))},ce.version=function(e){return le(this,e,Z())},ce.transient=function(e){return le(this,e,X())};const fe={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},ye=e=>(new he).accumulate(Object.assign({},e,{timestamp:new Date,logger:e.logger||n.Logging.get()}));class he{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=ye}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 he.factory(Object.assign({},e.cache,t||{}))}static async from(e,t,r,...a){return he.factory(Object.assign({},fe,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):he.from(e,o||{},t,...r)}let i;return n?n instanceof he?(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 ge(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 he))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 Ee(e,t,r,o,n){const s=n||r.name;e[s]=new Proxy(e[s],{apply:async(e,r,n)=>{let s=t.call(r,...n);s instanceof Promise&&(s=await s);const i=s.pop(),c=s[s.length-1];if(!(c instanceof he))throw new M("Missing a context");if(c.get("applyUpdateValidation")&&!c.get("ignoreDevSafeGuards")&&!(i instanceof a.Model)&&(!Array.isArray(i)||!i.every(e=>e instanceof a.Model)))throw new M("No previous versions os models found");let l=e.call(r,...s);return l instanceof Promise&&(l=await l),l=o.call(r,l,i,c),l instanceof Promise&&(l=await l),l}})}const me="##VERSION##",Oe="##PACKAGE##";t.Metadata.registerLibrary(Oe,me),e.BadRequestError=A,e.BaseError=m,e.BlockOperationIf=t=>_(e.OperationKeys.REFLECT+e.OperationKeys.BLOCK,(e,r,a)=>((e,t,r,a)=>e.length>2||"crud"!==r?e(t,r,a):e(t.filter(e=>"crud"===e.kind).map(e=>e.value),a))(t,e,r,a))(),e.BlockOperations=t=>{const r=K(t);return _(e.OperationKeys.REFLECT+e.OperationKeys.BLOCK,(t,r,a)=>t.some(t=>((t,r,a)=>t.kind===r&&("bulk"===t.kind&&t.value===e.BulkOperationBlockTarget.ALL||t.value===a))(t,r,a)))(r)},e.BreakError=O,e.ConflictError=P,e.Context=he,e.DBKeys=s,e.DBOperations=h,e.DEFAULT_ERROR_MESSAGES=l,e.DEFAULT_TIMESTAMP_FORMAT=c,e.DefaultContextFactory=ye,e.DefaultRepositoryFlags=fe,e.DefaultSeparator=i,e.InternalError=M,e.NotFoundError=D,e.Operations=E,e.OperationsRegistry=g,e.PACKAGE_NAME=Oe,e.Repository=class{get class(){if(!this._class)throw new M("No class definition found for this repository");return this._class}get pk(){return a.Model.pk(this.class)}get pkProps(){return a.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;ge(t,t[r+"Prefix"],e,t[r+"Suffix"])}),Ee(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 he.args(e.OperationKeys.CREATE,this.class,r);if(t=new this.class(t),a.context.get("ignoreHandlers")||await pe(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 pe(this,r,t,e.OperationKeys.CREATE,e.OperationKeys.AFTER),t}async createAllPrefix(t,...r){const a=await he.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 pe(this,a.context,r,e.OperationKeys.CREATE,e.OperationKeys.ON),r})),!n){const e=de(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=>pe(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 pe(this,r,t,e.OperationKeys.READ,e.OperationKeys.AFTER),t}async readPrefix(t,...r){const a=await he.args(e.OperationKeys.READ,this.class,r),o=new this.class;return o[this.pk]=t,await pe(this,a.context,o,e.OperationKeys.READ,e.OperationKeys.ON),[t,...a.args]}async readAllPrefix(t,...r){const a=await he.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,pe(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=>pe(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 pe(this,a,t,e.OperationKeys.UPDATE,e.OperationKeys.AFTER,r),t}async updatePrefix(t,...r){const o=await he.args(e.OperationKeys.UPDATE,this.class,r),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=a.Model.merge(l,t,this.class))),s||await pe(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,...r){const o=await he.args(e.OperationKeys.UPDATE,this.class,r),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)=>a.Model.merge(l[t],e,this.class)))),s||await Promise.all(t.map((t,r)=>pe(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=de(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)=>pe(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 pe(this,r,t,e.OperationKeys.DELETE,e.OperationKeys.AFTER),t}async deletePrefix(t,...r){const a=await he.args(e.OperationKeys.DELETE,this.class,r),o=await this.read(t,...a.args);return await pe(this,a.context,o,e.OperationKeys.DELETE,e.OperationKeys.ON),[t,...a.args]}async deleteAllPrefix(t,...r){const a=await he.args(e.OperationKeys.DELETE,this.class,r),o=await this.readAll(t,...a.args);return await Promise.all(o.map(async t=>pe(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=>pe(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=me,e.ValidationError=T,e.after=F,e.afterAny=(e,t,r)=>F(h.ALL,e,t,r),e.afterCreate=(e,t,r)=>F(h.CREATE,e,t,r),e.afterCreateUpdate=(e,t,r)=>F(h.CREATE_UPDATE,e,t,r),e.afterDelete=(e,t,r)=>F(h.DELETE,e,t,r),e.afterRead=(e,t,r)=>F(h.READ,e,t,r),e.afterUpdate=(e,t,r)=>F(h.UPDATE,e,t,r),e.composeAttributeValue=G,e.composed=J,e.composedFromCreateUpdate=Y,e.composedFromKeys=Q,e.enforceDBDecorators=pe,e.generated=$,e.getDbDecorators=ue,e.getHandlerArgs=L,e.getHandlersDecorators=N,e.getValidatableUpdateProps=oe,e.groupDecorators=C,e.hash=z,e.hashOnCreateUpdate=B,e.id=()=>t.apply(a.required(),ee(),(e,r)=>t.propMetadata(t.Metadata.key(s.ID,r),{})(e,r)),e.on=V,e.onAny=(e,t,r)=>V(h.ALL,e,t,r),e.onCreate=j,e.onCreateUpdate=x,e.onDelete=(e,t,r)=>V(h.DELETE,e,t,r),e.onRead=(e,t,r)=>V(h.READ,e,t,r),e.onUpdate=U,e.operation=H,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=ee,e.reduceErrorsToPrint=de,e.serialize=e=>t.apply(x(re,{serializer:e}),F(h.ALL,ae,{serializer:e}),a.type([String,Object]),t.metadata(s.SERIALIZE,{serializer:e})),e.serializeAfterAll=ae,e.serializeOnCreateUpdate=re,e.sortDecorators=I,e.storeHandlerMetadata=_,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=(r=h.CREATE_UPDATE,o=c)=>{const n=s.TIMESTAMP,i=a.Validation.updateKey(s.TIMESTAMP);return t.Decoration.for(n).define({decorator:(r,o)=>{const n=[$(s.TIMESTAMP),a.date(o,l.TIMESTAMP.DATE),a.required(l.TIMESTAMP.REQUIRED),t.propMetadata(a.Validation.key(s.TIMESTAMP),{operation:r,format:o}),V(r,te)];return-1!==r.indexOf(e.OperationKeys.UPDATE)?n.push(t.propMetadata(i,{message:l.TIMESTAMP.INVALID})):n.push(ee()),t.apply(...n)},args:[r,o]}).apply()},e.timestampHandler=te,e.transient=X,e.validateCompare=ie,e.validateDecorator=ne,e.validateDecorators=se,e.version=Z,e.versionCreateUpdate=W,e.wrapMethodWithContext=ge,e.wrapMethodWithContextForUpdate=Ee},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("tslib"),require("@decaf-ts/decorator-validation"),require("typed-object-accumulator"),require("@decaf-ts/logging")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","tslib","@decaf-ts/decorator-validation","typed-object-accumulator","@decaf-ts/logging"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["db-decorators"]={},e.decafTsDecoration,e.tslib,e.decafTsDecoratorValidation,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/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","BulkOperationBlockTarget","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","crudOperationSet","Set","bulkOperationSet","resolveKindForString","has","isBlockOperationDescriptor","hasOwnProperty","call","kind","normalizeBlockOperationsInput","input","candidates","Array","isArray","descriptors","item","push","getHandlerArgs","dec","prop","m","props","getHandlersDecorators","model","decorators","prefix","decs","handlerArgs","argsEntry","data","groupDecorators","grouped","reduce","acc","group","set","Symbol","groupKey","existing","Map","groups","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","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","validationFor","validateDecorator","newModel","toConditionalPromise","decoratorProps","maybeError","validateDecorators","result","decoratorKey","validationErrors","ValidationKeys","LIST","newPropValue","oldPropValue","newValues","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","targets","invokeBlockOperationIfHandler","operations","matchesTarget","_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":"oDAQO,MAAMA,EAAS,CACpBC,QAAYC,YAAUC,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,UCfNe,EAAAA,kBAAN,cAAgCC,YACrC,WAAAC,GACEC,MAAMR,EAAuBV,SAASW,QACxC,CAUA,SAAAQ,CAAUC,KAAeC,GAEzB,CAUO,eAAAC,CACLF,EACAG,EACAC,GAEA,QAAcC,IAAVL,EAEJ,OAAOM,EAAAA,QAAQN,EAAOG,QAClBE,EACAE,KAAKC,WAAWJ,GAAWG,KAAKH,QACtC,GAnCWT,EAAAA,kBAAiBc,aAAA,CAD7BC,EAAAA,UAAUhB,EAAqBd,gDACnBe,qBCAAgB,EAAAA,mBAAN,cAAiCf,YACtC,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,EAAAA,mBAAkBF,aAAA,CAD9BC,EAAAA,UAAUhB,EAAqBb,iDACnB8B,sBCCP,MAAgBG,UAAwBlB,EAAAA,UAC5C,WAAAC,CACEO,EAAkBW,EAAAA,uBAAkBC,WACjCC,GAEHnB,MAAMM,KAAYa,EACpB,EC/BF,IAAYC,EAkBAC,EAwBAC,ECjCZC,EAAAA,WAAWC,UAAsBC,GACxB7B,EAAqBvB,QAAUoD,EDV5BL,EAAAA,mBAAAA,GAAAA,EAAAA,EAAAA,gBAAAA,gBAAa,CAAA,IACvB,QAAA,6BACAA,EAAA,OAAA,SACAA,EAAA,KAAA,OACAA,EAAA,OAAA,SACAA,EAAA,OAAA,SACAA,EAAA,GAAA,MACAA,EAAA,MAAA,SACAA,EAAA,MAAA,QAUUC,EAAAA,qBAAAA,GAAAA,EAAAA,EAAAA,kBAAAA,kBAAe,CAAA,IACzB,WAAA,aACAA,EAAA,UAAA,YAsBUC,EAAAA,2BAAAA,GAAAA,EAAAA,EAAAA,wBAAAA,wBAAqB,CAAA,IAC/B,WAAA,YACAA,EAAA,SAAA,UACAA,EAAA,WAAA,YACAA,EAAA,WAAA,YAGUI,EAAAA,8BAAAA,GAAAA,EAAAA,2BAAAA,2BAAwB,CAAA,IAClC,IAAA,UAqBK,MAAMC,EAAiD,CAC5DC,OAAQ,CAACR,EAAAA,cAAcQ,QACvBC,KAAM,CAACT,EAAAA,cAAcS,MACrBC,OAAQ,CAACV,EAAAA,cAAcU,QACvBC,OAAQ,CAACX,EAAAA,cAAcW,QACvBC,cAAe,CAACZ,EAAAA,cAAcQ,OAAQR,EAAAA,cAAcU,QACpDG,YAAa,CAACb,EAAAA,cAAcS,KAAMT,EAAAA,cAAcQ,QAChDM,IAAK,CACHd,EAAAA,cAAcQ,OACdR,EAAAA,cAAcS,KACdT,EAAAA,cAAcU,OACdV,EAAAA,cAAcW,eEzDLI,EAAb,WAAApC,GACmBU,KAAA2B,MASb,CAAA,CAyJN,CA3IE,GAAAC,CACEC,EACAC,EACAC,EACAC,GAEAA,EAAQA,GAAS,GACjB,MAAMC,EAAQjC,KAAKkC,aAAaL,GAC1BM,EAAOnC,KAAKoC,kBAAkBP,EAAQI,GAE5C,GAAIE,EAAM,CACR,MAAME,EAAWrC,KAAKsC,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,EAAMtD,aAAesD,EAAMtD,YAAY6C,OAASA,IAClDS,EAAQH,OAAOE,eAAeC,IAC3BA,EAEE5C,KAAK4B,IAAagB,EAAOd,EAASC,EAAWC,GAFjCA,GAHAA,CAMrB,CAgBA,QAAAa,CACEC,EACAf,EACAF,EACAC,GAEA,MAAMK,EAAON,EAAOvC,YAAY6C,KAC1BY,EAAcrB,EAAmBsB,eAAeF,GAChDG,EAAUjD,KAAKkD,eAAerB,EAAOvC,aAEtCU,KAAK2B,MAAMQ,KAAOnC,KAAK2B,MAAMQ,GAAQ,CAAA,GACrCnC,KAAK2B,MAAMQ,GAAML,KAAU9B,KAAK2B,MAAMQ,GAAML,GAAW,CAAA,GACvD9B,KAAK2B,MAAMQ,GAAML,GAASC,KAC7B/B,KAAK2B,MAAMQ,GAAML,GAASC,GAAa,CAAA,GACpC/B,KAAK2B,MAAMQ,GAAML,GAASC,GAAWkB,KACxCjD,KAAK2B,MAAMQ,GAAML,GAASC,GAAWkB,GAAW,CAAA,GAC9CjD,KAAK2B,MAAMQ,GAAML,GAASC,GAAWkB,GAASF,KAClD/C,KAAK2B,MAAMQ,GAAML,GAASC,GAAWkB,GAASF,GAAeD,EAC/D,CAEQ,YAAAZ,CACNL,GAEA,GAAKA,GAA4B,iBAAXA,EACtB,MAAsB,mBAAXA,EAA8BA,EAClCA,EAAOvC,WAChB,CAEQ,iBAAA8C,CACNP,EACAI,GAEA,MAAsB,iBAAXJ,EAA4BA,EAChCI,GAAOE,IAChB,CAEQ,cAAAe,CAAerB,GACrB,IAAKA,EAAQ,OAAOsB,EAAAA,WAAWC,eAC/B,IACE,OAAOC,EAAAA,SAASC,UAAUzB,EAC5B,CAAE,MACA,OAAOsB,EAAAA,WAAWC,cACpB,CACF,CAEQ,cAAAd,CACNH,EACAL,EACAC,EACAE,GAEA,MAAMsB,EAAcvD,KAAK2B,MAAMQ,KAAQL,KAAWC,GAClD,IAAKwB,EAAa,OAClB,MACMC,EACJD,EAFcvD,KAAKkD,eAAejB,KAGlCsB,EAAYJ,EAAAA,WAAWC,iBACvBpD,KAAKyD,YAAYF,GACnB,IAAKC,EAAQ,OACb,MAAMnB,EAAWI,OAAOiB,OAAOF,GAC/B,OAAOnB,EAASE,OACXF,OACDvC,CACN,CAEQ,WAAA2D,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,UAAQC,KAAKf,EAAQgB,WAC9B,QClKWC,EAGX,WAAAzE,GAAuB,CAQvB,qBAAO0D,CAAeF,GACpB,OAAOpB,EAAmBsB,eAAeF,EAC3C,CAQA,UAAO9B,CAAIgD,GACT,OAAOrD,EAAAA,cAAc/C,QAAUoG,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,WAAA/E,CAAsB6C,EAAcmC,EAAqBC,GACvD,GAAID,aAAeF,EAAW,OAAOE,EAErC/E,MADgB,IAAI4C,MAASoC,MAASD,aAAeD,MAAQC,EAAIzE,QAAUyE,KAE3EtE,KAAKuE,KAAOA,EACRD,aAAeD,QAAOrE,KAAKwE,MAAQF,EAAIE,MAC7C,CAEA,WAAa3E,GACX,MAAO,IAAIG,KAAKmC,SAASnC,KAAKuE,UAAUhF,MAAMM,QAAQ4E,WAAW,yBAA0B,KAC7F,CAES,QAAAX,GACP,OAAO9D,KAAKH,OACd,EAGI,MAAO6E,UAAmBN,EAC9B,WAAA9E,CACEgF,EACAnC,EAAOuC,EAAWvC,KAClBoC,EAAO,KAEPhF,MAAM4C,EAAMmC,EAAYC,EAC1B,EAWI,MAAOI,UAAwBP,EACnC,WAAA9E,CACEgF,EACAnC,EAAOwC,EAAgBxC,KACvBoC,EAAO,KAEPhF,MAAM4C,EAAMmC,EAAYC,EAC1B,EAgBI,MAAOK,UAAwBD,EACnC,WAAArF,CAAYgF,GACV/E,MAAM+E,EAAKM,EAAgBzC,KAAM,IACnC,EAiBI,MAAO0C,UAAsBT,EACjC,WAAA9E,CACEgF,EACAnC,EAAO0C,EAAc1C,KACrBoC,EAAO,KAEPhF,MAAM4C,EAAMmC,EAAYC,EAC1B,EAiBI,MAAOO,UAA2BD,EACtC,WAAAvF,CAAYgF,GACV/E,MAAM+E,EAAKQ,EAAmB3C,KAAM,IACtC,EAiBI,MAAO4C,UAAsBJ,EACjC,WAAArF,CAAYgF,GACV/E,MAAM+E,EAAKS,EAAc5C,KAAM,IACjC,EAgBI,MAAO6C,UAAsBL,EACjC,WAAArF,CAAYgF,GACV/E,MAAM+E,EAAKU,EAAc7C,KAAM,IACjC,ECxHF,MAEO8C,EAA8B,CAAEC,SAFf,IAIjBC,EAAmB,IAAIC,IAAoB,CAC/CzE,EAAAA,cAAcQ,OACdR,EAAAA,cAAcS,KACdT,EAAAA,cAAcU,OACdV,EAAAA,cAAcW,SAGX+D,EAAmB,IAAID,IAC3B3C,OAAOiB,OAAO7C,EAAAA,wBAGhB,SAASyE,EAAqB7F,GAC5B,OAAI4F,EAAiBE,IAAI9F,IACrBA,IAAUwB,EAAAA,yBAAyBQ,IADuB,QAE1D0D,EAAiBI,IAAI9F,GAAiC,OAE5D,CAEA,SAAS+F,EACP/F,GAEA,MACmB,iBAAVA,GACG,OAAVA,GACAgD,OAAOC,UAAU+C,eAAeC,KAAKjG,EAAO,SACb,iBAAvBA,EAAckG,IAE1B,CAEA,SAASC,EACPC,GAEA,MAAMC,EAAaC,MAAMC,QAAQH,GAASA,EAAQ,CAACA,GAC7CI,EAA0C,GAEhD,IAAK,MAAMC,KAAQJ,EACjB,GAAIC,MAAMC,QAAQE,GAChBD,EAAYE,QAAQP,EAA8BM,QADpD,CAKA,GAAoB,iBAATA,EAAmB,CAC5B,MAAMP,EAAOL,EAAqBY,GAC5BzG,GACK,SAATkG,GAA4B1E,EAAAA,yBAAyBQ,IAChDyE,GAIPD,EAAYE,KAAK,CAAER,OAAMlG,UACzB,QACF,CAEI+F,EAA2BU,IAC7BD,EAAYE,KAAKD,EAfnB,CAoBF,OAAOD,CACT,CA0CO,MAAMG,EAAiB,CAC5BC,EACAC,EACAC,EACAvE,KAEA,MAAMG,EAAOoE,EAAEjH,YAAY6C,KAC3B,IAAKA,EAAM,MAAM,IAAI0C,EAAc,mCACnC7C,EAAQA,GAAS,CAAA,EAEbqE,EAAIG,MAAMnE,SAASF,IAASkE,EAAIG,MAAMnE,SAASF,GAAMmE,KACvDtE,EAAQ,IAAKqE,EAAIG,MAAMnE,SAASF,GAAMmE,MAAUtE,IAElD,IAAIY,EAAQH,OAAOE,eAAe4D,GAClC,OAAI3D,IAAUH,OAAOC,UAAkBV,GACnCY,EAAMtD,YAAY6C,OAASA,IAAMS,EAAQH,OAAOE,eAAeC,IAE5DwD,EAAeC,EAAKC,EAAM1D,EAAOZ,GAC1C,WAiBgByE,EAKdC,EACAC,EACAC,GAEA,MAAM5E,EAA2B,GACjC,IAAK,MAAMsE,KAAQK,EAAY,CAC7B,MAAME,EAA4BF,EAAWL,GAC7C,IAAK,MAAMD,KAAOQ,EAAM,CACtB,MAAM7F,IAAEA,GAAQqF,EACVhE,EAAoD0B,EAAWnC,IAInE8E,EAAOJ,EAAMM,EAAS5F,GACxB,IAAKqB,IAAaA,EAASE,OACzB,MAAM,IAAIsC,EACR,uDAAuD+B,EAAS5F,oBAAsBsF,KAG1F,MAAMQ,EAAcV,EAAeC,EAAKC,EAAMI,GAC9C,IAAKI,EACH,MAAM,IAAIjC,EAAc,4CAE1B,IAAK,MAAM/B,KAAWT,EAAU,CAC9B,MAAMU,EAAcgB,EAAWf,eAAeF,GACxCiE,EAAYD,EAAY/D,GAC9B,IAAKgE,EACH,MAAM,IAAIlC,EACR,yCAAyC9B,GAE7C,MAAMiE,EAAQD,EAAkCC,KAChDhF,EAAMmE,KAAK,CACTrD,UACAkE,KAAM,CAACA,GACPV,KAAM,CAACA,IAEX,CACF,CACF,CACA,OAAOtE,CACT,CAUM,SAAUiF,EACdN,GAEA,MAAMO,EAAUP,EAAWQ,OACzB,CAACC,EAAKf,KACJ,IAAKA,IAAQA,EAAIW,OAASX,EAAIC,KAC5B,MAAM,IAAIzB,EAAc,wCAG1B,IAAKwB,EAAIW,KAAK,GAAGK,MAEf,OADAD,EAAIE,IAAIC,SAAUlB,GACXe,EAGT,MAAMI,EAAWnB,EAAIW,KAAK,GAAGK,MAE7B,GAAKD,EAAI7B,IAAIiC,GAGN,CACL,MAAMC,EAAWL,EAAIxF,IAAI4F,GAEzBJ,EAAIE,IAAIE,EAAU,CAChB1E,QAAS2E,EAAS3E,QAClBkE,KAAM,IAAIS,EAAST,QAASX,EAAIW,MAChCV,KAAM,IAAImB,EAASnB,QAASD,EAAIC,OAEpC,MATEc,EAAIE,IAAIE,EAAU,IAAKnB,IAWzB,OAAOe,GAET,IAAIM,KAGAC,EAAS5B,MAAM6B,KAAKV,EAAQxD,UAiBlC,OAdAiE,EAAOE,QAASR,IACd,MAAMS,EAAWT,EAAML,KAAKe,IAAI,CAACC,EAAGC,KAAC,CACnCjB,KAAMgB,EACN1B,KAAMe,EAAMf,KAAK2B,MAGnBH,EAASI,KACP,CAACC,EAAGC,KAAOD,EAAEnB,KAAKqB,eAAiB,KAAOD,EAAEpB,KAAKqB,eAAiB,KAGpEhB,EAAML,KAAOc,EAASC,IAAKO,GAAMA,EAAEtB,MACnCK,EAAMf,KAAOwB,EAASC,IAAKO,GAAMA,EAAEhC,QAG9BqB,CACT,CAUM,SAAUY,EACd5B,GASA,OANAA,EAAWuB,KAAK,CAACC,EAAGC,KACAD,EAAEnB,KAAK,GAAG9B,UAvQR,KAwQFkD,EAAEpB,KAAK,GAAG9B,UAxQR,KA4QfyB,CACT,UAYgB6B,EACd1F,EAGAkE,EACAyB,GAEA,OAAOC,EAAGxH,EAAaK,cAAeuB,EAASkE,EAAMyB,EACvD,UAWgBE,EACd7F,EACAkE,EACAyB,GAEA,OAAOC,EAAGxH,EAAaG,OAAQyB,EAASkE,EAAMyB,EAChD,UAWgBG,EACd9F,EACAkE,EACAyB,GAEA,OAAOC,EAAGxH,EAAaC,OAAQ2B,EAASkE,EAAMyB,EAChD,CAyEM,SAAUC,EACdG,EAAsB3H,EAAaO,IACnCqB,EACAkE,EACAyB,GAEA,OAAO1G,EAAUpB,EAAAA,cAAcmI,GAAID,EAAI/F,EAASkE,EAAMyB,EACxD,CA+HM,SAAUM,EACdF,EAAsB3H,EAAaO,IACnCqB,EACAkE,EACAyB,GAEA,OAAO1G,EAAUpB,EAAAA,cAAcqI,MAAOH,EAAI/F,EAASkE,EAAMyB,EAC3D,CA8BM,SAAU1G,EACdkH,EACAlH,EAA6Bb,EAAaO,IAC1CqB,EACAoG,EACAT,EAAuBxD,GAEvB,MAAO,CAACpD,EAAasH,KACnB,MAAMhH,EAAON,EAAOvC,YAAY6C,KAC1BwE,EAAa5E,EAAUoF,OAAO,CAACnF,EAAc6G,KACjD,MAAMO,EAAcH,EAASJ,EAC7B,IAAI7B,EAAO3D,EAAAA,SAASgG,cAClBxH,EAAOvC,YACP6J,EACAC,GAEGpC,IACHA,EAAO,CACLjF,UAAW8G,EACXxG,SAAU,CAAA,IAGd,MAAMiH,EAAavF,EAAWf,eAAeF,GAE7C,IAAIyG,EAAYd,EAEhB,GAAIS,EAAW,CACb,GAAIzG,OAAOkB,KAAKuF,GAAWM,OAAQxI,GAAQA,KAAOyH,GAAWlG,OAAS,EACpE,MAAM,IAAIsC,EACR,mEAGJ0E,EAAY,IAAKd,KAAcS,EACjC,CAsBA,OAnBGlC,EAAK3E,SAASF,IACd6E,EAAK3E,SAASF,GAAMgH,IACnBG,KAActC,EAAK3E,SAASF,GAAMgH,KAEpCnC,EAAK3E,SAASF,GAAQ6E,EAAK3E,SAASF,IAAS,CAAA,EAC7C6E,EAAK3E,SAASF,GAAMgH,GAClBnC,EAAK3E,SAASF,GAAMgH,IAAgB,CAAA,EACtCnC,EAAK3E,SAASF,GAAMgH,GAAaG,GAAc,CAC7CtC,KAAMuC,GAERvH,EAAMmE,KA3gBd,EAAgB0C,EAAmB/F,IAC1B,CAACjB,EAAasH,KACnBpF,EAAWlB,SAASC,EAAS+F,EAAIhH,EAAQsH,IA0gBnCM,CAAOL,EAA8BtG,GACrC4G,EAAAA,aACErG,EAAAA,SAASrC,IAAIJ,EAAAA,gBAAgB+I,WAAYR,EAAaC,GACtDpC,KAKChF,GACN,IACH,OAAO4H,EAAAA,SAASjD,EAATiD,CAAqB/H,EAAQsH,GAExC,CAyCM,SAAUU,EACd7I,EACA8B,GAEA,MAAO,IAAIgH,IACFC,EAAAA,SAAS/I,EAAK,CAAEtB,KAAMoK,EAAQhH,WAEzC,CCnsBM,SAAUkH,EAAUC,GACxB,MAAO,CAAmBpI,EAAgByE,IACjCoD,eAAarG,EAAAA,SAASrC,IAAIrD,EAAOe,UAAW4H,GAAO2D,IAAQ,EAA3DP,CACL7H,EACAyE,EAGN,CAmBM,SAAU4D,EAMdC,EACAnD,EACAhG,EACA0F,EACA0D,GAEA,QAA0B,IAAf1D,EAAM1F,GAAsB,OACvC,MAAM6C,EAAOD,EAAAA,QAAQC,KAAM6C,EAAc1F,IACrCoJ,GAAa1D,EAAc1F,KAAS6C,IACxC6C,EAAM1F,GAAO6C,EACf,UASgBA,IACd,OAAO+F,EAAAA,MACLpB,EAAe0B,GACfR,EAAAA,aAAa/L,EAAOa,KAAM,CAAA,GAE9B,CAwBM,SAAU6L,EACd3D,EACAqD,GAEA,MAAMrK,KAAEA,EAAIuK,KAAEA,EAAIrD,OAAEA,EAAM0D,OAAEA,EAAMC,UAAEA,EAASC,YAAEA,EAAWC,WAAEA,GAC1DV,EACF,IACE,MAAMW,EAAWhL,EACdqI,IAAK4C,IACJ,GAAa,SAATV,EAAiB,OAAOU,EAC5B,QAAmC,IAAvBjE,EAAciE,GAAsB,CAC9C,GAAIH,EAAa,CACf,IAAKzE,MAAMC,QAAQwE,GAAc,OACjC,GAAIA,EAAYI,SAASD,GAAM,MACjC,CACA,MAAM,IAAI9F,EACR,YAAYnF,6CAEhB,CACA,OAASgH,EAAciE,GAAa7G,aAErC0F,OAAQrB,IAAOqC,KAAgBrC,GAE9BvB,GAAQ8D,EAASlI,QAAQoE,GACzB0D,GAAQI,EAASvE,KAAKmE,GAE1B,MAAMtG,EAAc0G,EACjB3C,IAAKO,GACgB,iBAANA,GAAmC,oBAAjBA,EAAExE,WAC9B+G,KAAKC,UAAUxC,GACfA,GAELyC,KAAKR,GACR,OAAOE,EAAa7G,EAAAA,QAAQC,KAAKG,GAAOA,CAC1C,CAAE,MAAO1D,GACP,MAAM,IAAIuE,EAAc,4BAA4BvE,EACtD,CACF,CAkBM,SAAU0K,EAILb,EAAiCnD,EAAShG,EAAc0F,GAChEA,EAAc1F,GAAOqJ,EAAsB3D,EAAOM,EACrD,CAgBA,SAASiE,EACPvL,EACA+K,GAAsB,EACtBF,EAAoB1L,EACpB2L,GAAkC,EAClCP,EAA0B,SAC1BrD,EAAS,GACT0D,EAAS,GACT7B,EAAuB,CAAEvD,SAAU,KAgCnC,OAAO/B,EAAAA,WAAW+H,IAAIvN,EAAOc,UAC1B0M,OAAO,CACNC,UAhCJ,CACE1L,EACA+K,EACAF,EACAN,EACArD,EACA0D,EACA7B,IAEO,CAAqB5G,EAAgBwJ,KAC1C,MAAMrE,EAA6B,CACjCtH,KAAMA,EACN+K,WAAYA,EACZF,UAAWA,EACXN,KAAMA,EACNrD,OAAQA,EACR0D,OAAQA,EACRE,YAAaA,GAGT7D,EAAa,CACjBqD,EAAUrM,EAAOc,UACjB+J,EAAewC,EAA0BhE,EAAMyB,GAC/CiB,EAAAA,aAAarG,EAAAA,SAASrC,IAAIrD,EAAOc,SAAU4M,GAAWrE,IAGxD,OADIyD,GAAY9D,EAAWR,KAAKtC,KACzB+F,EAAAA,SAASjD,EAATiD,CAAqB/H,EAAQwJ,EACtC,EAME3L,KAAM,CAACA,EAAM+K,EAAYF,EAAWN,EAAMrD,EAAQ0D,EAAQ7B,KAE3DmB,OACL,CAeM,SAAU0B,EACd5L,EACA6K,EAAoB1L,EACpB2L,GAAkC,EAClC3G,GAAgB,EAChB+C,EAAS,GACT0D,EAAS,GACT7B,EAAuB,CAAEvD,SAAU,KAEnC,OAAO+F,EACLvL,EACAmE,EACA0G,EACAC,EACA,OACA5D,EACA0D,EACA7B,EAEJ,CAeM,SAAUiC,EACdhL,EACA6K,EAAoB1L,EACpB2L,GAAkC,EAClC3G,GAAgB,EAChB+C,EAAS,GACT0D,EAAS,GACT7B,EAAuB,CAAEvD,SAAU,KAEnC,OAAO+F,EACLvL,EACAmE,EACA0G,EACAC,EACA,SACA5D,EACA0D,EACA7B,EAEJ,CAgCM,SAAU8C,EAAoBxJ,GAClC,MAAO,CAMLoI,EACAnD,EACAhG,EACA0F,EACA0D,KAEA,GAAKoB,EAAAA,MAAMC,eAAe/E,EAAO1F,EAAKmJ,GACtC,IACE,OAAQpI,GACN,KAAKpB,EAAAA,cAAcQ,OAChBuF,EAAc1F,GAAO,EACtB,MACF,KAAKL,EAAAA,cAAcU,OACjB,GACE8I,EAAQvI,IAAI,0BACZwI,GACA1D,EAAM1F,KAASoJ,EAASpJ,GAExB,MAAM,IAAI4D,EACR,qBAAqB8B,EAAM1F,UAAYoJ,EAASpJ,MAEnD0F,EAAc1F,KACf,MACF,QACE,MAAM,IAAI6D,EAAc,sBAAsB9C,GAEpD,CAAE,MAAOzB,GACP,MAAM,IAAIuE,EAAc,6BAA6BvE,EACvD,CACF,CACF,UASgBoL,IACd,MAAM1K,EAAMrD,EAAOgB,QACnB,MAAO,CAAiBkD,EAAasH,IAC5BhG,EAAAA,WAAW+H,IAAIlK,GACnBmK,OACCzB,EAAAA,aAAarG,WAASrC,IAAIA,EAAKmI,IAAc,GAC7Ca,EAAUrM,EAAOgB,SACjBsL,OAAK0B,QACL/C,EAAS2C,EAAoB5K,gBAAcQ,SAC3CwH,EAAS4C,EAAoB5K,EAAAA,cAAcU,UAE5CuI,OARIzG,CAQItB,EAAQsH,EAEvB,UASgByC,IACd,OAAOzI,EAAAA,WAAW+H,IAAIvN,EAAOY,WAC1B4M,OAAO,CAAmBzE,EAAYmF,KACrCnC,eAAarG,EAAAA,SAASrC,IAAIrD,EAAOY,UAAWsN,GAAY,CAAA,EAAxDnC,CACEhD,EACAmF,EAEJ,GACCjC,OACL,CCxWM,SAAUkC,GACdjM,EAAkBd,EAAuBV,SAASW,SAElD,MAAMgC,EAAMrD,EAAOU,SACb0N,EAAO,CACXlM,QAASA,EACTmM,YAAa,oCACbC,OAAO,GAET,OAAO9I,EAAAA,WAAW+H,IAAIlK,GACnBmK,OAAO,CACNC,UAAWc,EAAAA,yBACXxM,KAAM,CAACoM,GAAU9K,EAAK+K,KAEvBnC,OACL,CAiBOqC,eAAeE,GAMpBhC,EACAnD,EACAhG,EACA0F,GAEI8E,EAAAA,MAAMC,eAAe/E,EAAO1F,EAAKmJ,KAClCzD,EAAc1F,GAAOmJ,EAAQiC,UAClC,CAmGOH,eAAeI,GAKpBlC,EACAnD,EACAhG,EACA0F,GAEA,GAAKA,EAAM1F,GACX,IACE0F,EAAM1F,GAAOgG,EAAKsF,YACb,IAAItF,EAAKsF,YAAaC,UAAU7F,EAAM1F,IACtC6J,KAAKC,UAAUpE,EAAM1F,GAC5B,CAAE,MAAOV,GACP,MAAM,IAAIwE,EACR,uBAAuB9D,EAAI8C,gCAAgC4C,EAAMpH,YAAY6C,SAAS7B,IAE1F,CACF,CAiBO2L,eAAeO,GAKpBrC,EACAnD,EACAhG,EACA0F,GAEA,GAAKA,EAAM1F,IACe,iBAAf0F,EAAM1F,GAEjB,IACE0F,EAAM1F,GAAOgG,EAAKsF,YACd,IAAItF,EAAKsF,YAAaG,YAAY/F,EAAM1F,IACxC6J,KAAK6B,MAAMhG,EAAM1F,GACvB,CAAE,MAAOV,GACP,MAAM,IAAIwE,EACR,yBAAyB9D,EAAI8C,gCAAgC4C,EAAMpH,YAAY6C,SAAS7B,IAE5F,CACF,CCzMM,SAAUqM,GACdjG,EACAkG,GAEA,MAAMC,EAA6B,GACnC,IAAK,MAAMvG,KAAQI,EAAO,CACxB,IACGjE,OAAOC,UAAU+C,eAAeC,KAAKgB,EAAOJ,IAC7CsG,EAAchC,SAAStE,GAEvB,SAEF,MAAMK,EACJtD,EAAAA,SAASyJ,cAAcpG,EAAMpH,YAA4BgH,IAAS,CAAA,EAUpEuG,EAAoB1G,KAAK,CAAEG,OAAMK,cACnC,CAEA,OAAOkG,CACT,CAEM,SAAUE,GAIdC,EACA5C,EACA9D,EACA8E,EACAa,GAEA,MAAM9L,EAA6BW,EAAAA,WAAWc,IAC5CwJ,EAAUpK,KAGZ,IAAKb,EACH,MAAUkE,MAAM,yBAAyB+G,EAAUpK,KAIrD,IAAKb,EAAUR,gBAAiB,OAAOsN,EAAAA,0BAAqBnN,EAAWmM,GAGvE,IAAKA,GAASb,EAAUa,MAAO,OAAOgB,EAAAA,0BAAqBnN,EAAWmM,GAEtE,MAAMiB,EAAiBzK,OAAOiB,OAAO0H,IAAc,CAAA,EAO7C+B,EAAahN,EAAUR,gBAC1BqN,EAAiB1G,GACjB8D,EAAiB9D,MACf4G,GAGL,OAAOD,EAAAA,qBAAqBE,EAAYlB,EAC1C,CAEM,SAAUmB,GAIdJ,EACA5C,EACA9D,EACAK,EACAsF,GAEA,MAAMoB,EAAmD,CAAA,EAEzD,IAAK,MAAMC,KAAgB3G,EAAY,CACrC,MAAMyE,EAAY,IAAKzE,EAAW2G,GAAetM,IAAKsM,GAEtD,IAAKrB,GAASb,EAAUa,MAAO,SAE/B,IAAIsB,EAAmBR,GACrBC,EACA5C,EACA9D,EACA8E,EACAa,GAQF,GAAIb,EAAUpK,MAAQwM,EAAAA,eAAeC,QAAUF,GAAoBtB,GAAQ,CACzE,MAAMyB,EAAgBV,EAAiB1G,GACjCqH,EAAgBvD,EAAiB9D,GAEjCsH,EACJF,aAAwBtI,IAAM,IAAIsI,GAAgBA,EAC9CG,EACJF,aAAwBvI,IAAM,IAAIuI,GAAgBA,EAEpD,GAAIC,GAAWrL,OAAQ,CACrB,MAGMuL,EAAe,CAFnB1C,EAAU2C,OAAS3C,EAAU4C,OAAS5C,EAAU6C,aAErBC,OAAOnG,IAAKoG,KAEvCA,GADAA,EAAiB,mBAANA,GAAqBA,EAAEhM,KAAagM,EAANA,KAC1BhM,KAAQgM,EAAUhM,KAAOgM,GACjCC,IAAUC,eAGbC,EAAOV,EAAU7F,IAAKwG,IAC1B,GAAI/C,EAAAA,MAAMgD,QAAQD,GAAa,CAE7B,MAAME,EAAKjD,EAAAA,MAAMkD,GAAGH,GAAmB,GACvC,IAAKE,EAAI,MAAO,0BAChB,MAAME,EAAed,EAAUe,KAC5BC,GAAYJ,IAAOjD,EAAAA,MAAMkD,GAAGG,GAAW,IAE1C,OAAON,EAAW/O,UAAUmP,EAC9B,CACA,OAAOb,EAAalD,gBAAgB2D,QAChCzO,EACA,kCAGN,GAAImM,EACFsB,EAAmBuB,QAAQC,IAAIT,GAAMU,KAAM3B,GACxBA,EAAO4B,MAAOC,IAAOA,QACpBpP,EAAYuN,OAE3B,CACL,MAAM8B,EAAWb,EAAKW,MAAOC,IAA2BA,GACxD3B,EAAmBe,EAAK/L,OAAS,IAAM4M,EAAWb,OAAOxO,CAC3D,CACF,CACF,CAEIyN,IAAmBF,EAAejC,EAAUpK,KAAOuM,EACzD,CAEA,IAAKtB,EACH,OAAOxJ,OAAOkB,KAAK0J,GAAQ9K,OAAS,EAAK8K,OAAiBvN,EAE5D,MAAM6D,EAAOlB,OAAOkB,KAAK0J,GACnB+B,EAAW3M,OAAOiB,OAAO2J,GAC/B,OAAOyB,QAAQC,IAAIK,GAAUJ,KAAMK,IACjC,MAAMC,EAA8B,CAAA,EACpC,IAAK,IAAIrH,EAAI,EAAGA,EAAIoH,EAAe9M,OAAQ0F,IAAK,CAC9C,MAAMsH,EAAMF,EAAepH,QACfnI,IAARyP,IACFD,EAAI3L,EAAKsE,IAAMsH,EAEnB,CACA,OAAO9M,OAAOkB,KAAK2L,GAAK/M,OAAS,EAAI+M,OAAMxP,GAE/C,CAiCM,SAAU0P,GACdpF,EACA4C,EACAf,KACGW,GAEH,MAAM6C,EAAyB9C,GAC7BK,EACAJ,GAGIS,EAA8B,CAAA,EAC9BqC,EAAoC,CAAA,EAE1C,IAAK,MAAMpJ,KAAEA,EAAIK,WAAEA,KAAgB8I,EAAwB,CACzD,MAAM3N,EAAiBwE,EAAP8H,GACVuB,EAAa3C,EAAiB1G,IAE9BsJ,YAAEA,GAAgBvM,EAAAA,SAASwM,mBAC/B7C,EAAS1N,YACTgH,GAEF,IAAKsJ,EAAa,SAGlB,GAAIA,EAAYE,KAAM3B,GAAM,CAACpI,MAAM5D,KAAMiD,IAAIjD,MAAMyI,SAASuD,IAAK,CAC/D,IACGxH,IACAlE,OAAOkB,KAAKgD,GAAYiE,SAAS4C,EAAAA,eAAeC,MACjD,CACAJ,EAAOvL,GAAW,CAChB,CAAC0L,EAAAA,eAAeuC,MAAO,0BAA0BjO,iCAEnD,QACF,CAEA,GACE6N,KACE5J,MAAMC,QAAQ2J,IAAcA,aAAqBvK,KACnD,CACAiI,EAAOvL,GAAW,CAChB,CAAC0L,EAAAA,eAAeuC,MAAO,aAAoBzJ,EAAP8H,wCAEtC,QACF,CACF,CAGA,MAAM4B,EACJ5C,GAAmBJ,EAAU5C,EAAUtI,EAAS6E,EAAYsF,IAAU,CAAA,EAIlEgE,EAAWzE,EAAAA,MAAM0E,gBAAgBlD,EAAUlL,GAGjD,GAFqB6N,SAEDM,EAAU,CAC5B,MAAME,EAAWR,EAEXS,EAASR,EACZ7H,IAAKC,GAAWwD,EAAAA,MAAM5J,IAAIoG,EAAE7F,MAAQ6F,IACpC4G,KAAM5G,KAAaA,GAEhBqI,EAAkBT,EAAY7H,IAAKC,GACtB,mBAANA,EACFA,EAAE7F,KAAO6F,EAAE7F,KAAKkM,cAAgBrG,KAAK7F,KAAKkM,cAC5CrG,EAAEqG,eAIX,GAAK+B,GAAYT,aAAqBS,EAU/B,CACL,MAAME,EAAsBC,EAAAA,4BAC1BzO,KACG8K,GAEL8C,EAAa5N,GAAWqO,EAAS3Q,UAC9B4K,EAAiB9D,MACfgK,EAEP,MAlBMD,EAAgBzF,gBAAgB+E,KAIlCK,EAAWxC,EAAAA,eAAeuC,MAASK,EAE/B,gCAAgCA,EAAOjO,KADvC,iEAAiEyN,EAAY9L,sBAAsBhC,WAEhGkO,EAAWnS,YAAUkS,MAYlC,EAIItN,OAAOkB,KAAKqM,GAAYzN,OAAS,GAAK0J,KACxCoB,EAAOvL,GAAWkO,GAGf/D,GACHxJ,OAAO+N,QAAQd,EAAa5N,IAAY,CAAA,GAAI+F,QAAQ,EAAE7G,EAAKyP,WAC3C3Q,IAAV2Q,IACFpD,EAAO,GAAGvL,KAAWd,KAASyP,IAItC,CAGA,IAAKxE,EACH,OACExJ,OAAOkB,KAAK0J,GAAQ9K,OAAS,EACzB,IAAImO,EAAAA,qBAAqBrD,QACzBvN,EAIR,MAAM6Q,EAActD,EAEd1J,EAAOlB,OAAOkB,KAAKgN,GACnBvB,EAAW3M,OAAOiB,OAAOiN,GAC/B,OAAO7B,QAAQ8B,WAAWxB,GAAUJ,KAAK/C,MAAO4E,IAC9C,MAAMxD,EAAsB,CAAA,EAE5B,IAAK,MAAOyD,EAAYC,KAAqBtO,OAAO+N,QAAQd,GAAe,CACzE,MAAMsB,QAA6BD,EAK/BC,GACFvO,OAAO+N,QAAQQ,GAAqBnJ,QAClC,EAAEoJ,EAAYC,WACepR,IAAvBoR,IAEF7D,EADkB,CAACyD,EAAYG,GAAYlG,KAAK,MAC5BmG,IAI9B,CAEA,IAAK,IAAIjJ,EAAI,EAAGA,EAAI4I,EAAQtO,OAAQ0F,IAAK,CACvC,MAAMjH,EAAM2C,EAAKsE,GACXqH,EAAMuB,EAAQ5I,GAED,cAAfqH,EAAI6B,aAAwCrR,IAAdwP,EAAI7P,MACnC4N,EAAerM,GAAOsO,EAAI7P,MACH,aAAf6P,EAAI6B,SACZ9D,EAAerM,GACdsO,EAAI8B,kBAAkB/M,MAClBiL,EAAI8B,OAAOvR,SACJyP,EAAI8B,QAAU,qBAArBhD,GAEV,CAEA,OAAO3L,OAAOkB,KAAK0J,GAAQ9K,OAAS,EAChC,IAAImO,EAAAA,qBAAqBrD,QACzBvN,GAER,CCzXA0L,EAAAA,MAAM9I,UAAU2O,YAAc,WAC5B,OAAOhO,EAAAA,SAASgO,YAAYrR,KAC9B,EAYAwL,EAAAA,MAAM9I,UAAUlD,UAAY,SAE1B8R,KACGC,IAECD,GAAqBA,aAA2B9F,EAAAA,QAClD+F,EAAW/O,QAAQ8O,GACnBA,OAAkBxR,GAGpB,MAAMmM,EAAQjM,KAAKwR,UACblD,EAAOmD,EAAAA,SAASzR,KAAMiM,KAAUsF,GAEtC,OAAItF,EACK6C,QAAQ4C,QAAQpD,GAAMU,KAAM2C,GAC7BA,IAAiBL,EACZK,EAEFnC,GAAgB8B,EAAiBtR,KAAMiM,KAAUsF,IAIxDjD,IAASgD,EAAwBhD,EAG9BkB,GAAgB8B,EAAiBtR,KAAMiM,KAAUsF,EAC1D,EAEA/F,EAAAA,MAAM9I,UAAUkP,UAAY,WAG1B,OAAOpG,EAAAA,MAAMoG,UAAU5R,KACzB,EAECwL,EAAAA,MAAcoG,UACblL,IAEA,IAAKrD,EAAAA,SAASgO,YAAY3K,GAAQ,MAAO,CAAEA,MAAOA,GAClD,MAAMmG,EAAsBxJ,EAAAA,SAASwO,sBACnCnL,EAAMpH,aAGFwS,EAAiBzO,EAAAA,SAASzB,IAC9B8E,EAAMpH,YACN3B,EAAOY,WAGH8O,EAAS,CACb3G,MAAO,CAAA,EACPkF,UAAW,CAAA,GAEb,IAAK,MAAM5K,KAAO6L,EAEhB,GADoBpK,OAAOkB,KAAKmO,GAAgBlH,SAAS5J,GACxC,CACfqM,EAAOzB,UAAYyB,EAAOzB,WAAa,CAAA,EACvC,IACEyB,EAAOzB,UAAU5K,GAAO0F,EAAM1F,EAChC,CAAE,MAAOV,GACP,MAAM,IAAIwE,EACR,0CAA0C9D,MAAQV,IAEtD,CACF,MACE+M,EAAO3G,MAAQ2G,EAAO3G,OAAS,CAAA,EAC/B2G,EAAO3G,MAAM1F,GAAQ0F,EAA8B1F,GAKvD,OADAqM,EAAO3G,MAAQ8E,EAAAA,MAAMuG,MAAM1E,EAAO3G,MAAOA,EAAMpH,YAAY6C,MACpDkL,CACT,EAEChK,EAAAA,SAAiBqL,IAAK,CACrBhI,EACAsL,GAAW,KAEX,IAAKtL,EAAO,MAAUrC,MAAM,yBAC5B,MAAM4N,EAASvL,aAAiB8E,EAAAA,MAAQ9E,EAAMpH,YAAcoH,EACtDwL,EAAS7O,EAAAA,SAASzB,IAAIqQ,EAAuBtU,EAAOM,IAC1D,IAAKiU,EACH,MAAU7N,MACR,qCAAoC4N,GAAQ9P,MAAQ,kBAGxD,MAAMnB,EAAMyB,OAAOkB,KAAKuO,GAAQ,GAChC,IAAKF,EAAU,OAAOhR,EACtB,GAAI0F,aAAiB8E,EAAAA,MAAO,OAAO9E,EAAM1F,GACzC,MAAUqD,MAAM,sDAClB,GAAE8N,KAAK9O,EAAAA,UAENmI,EAAAA,MAAckD,IAAK,CAClBhI,EACAsL,GAAW,IAEJ3O,WAASqL,GAAGhI,EAAOsL,IAC1BG,KAAK3G,EAAAA,OAENA,EAAAA,MAAc4G,SACb1L,GAEOrD,WAASzB,IACd8E,EACArD,EAAAA,SAASrC,IAAIrD,EAAOM,GAAIuN,EAAAA,MAAMkD,GAAGhI,MAEnCyL,KAAK3G,EAAAA,OAENA,EAAAA,MAAc6F,aACb3K,KAESrD,EAAAA,SAASzB,IACC,mBAAV8E,EAAwBA,EAAMpH,YAAsBoH,EAC3D/I,EAAOY,YAET4T,KAAK3G,EAAAA,OAENA,EAAAA,MAAcd,UAAW,CACxBhE,EACAJ,KAEA,MAAM2L,EACJvL,aAAiB8E,EAAAA,MAAS9E,EAAMpH,YAAiCoH,EACnE,OAAIJ,EACKjD,EAAAA,SAASzB,IAAIqQ,EAAQ5O,EAAAA,SAASrC,IAAIrD,EAAOc,SAAU6H,MACnDjD,EAAAA,SAASzB,IAAIqQ,EAAQtU,EAAOc,SACvC,GAAE0T,KAAK3G,EAAAA,OAWNA,EAAAA,MAAc6G,OAAQ,CACrBjI,EACA4C,EACA1N,KAGA,MAAMgT,EAAe5L,GACnBjE,OAAO+N,QAAQ9J,GAAOS,OAAO,CAACnF,GAA6BhB,EAAKuO,MAC1D,MAAOA,IAAqCvN,EAAMhB,GAAOuO,GACtDvN,GACN,CAAA,GAGL,OAAO,IARP1C,EAAcA,GAAgB8K,EAAS9K,aAO1BmD,OAAO8P,OAAO,CAAA,EAAID,EAAYlI,GAAWkI,EAAYtF,IAEpE,GAAEmF,KAAK3G,EAAAA,OAENnI,EAAAA,SAAiBmP,eAAgB,CAChC9L,EACAyC,EACApH,EACAgI,KAEKZ,GACL9F,EAAAA,SAASiE,IACPZ,EACArD,EAAAA,SAASrC,IAAIJ,kBAAgB+I,WAAYR,EAAapH,GACtDgI,EAEJ,GAAEoI,KAAK9O,EAAAA,UAENA,EAAAA,SAAiBgG,eAAgB,CAChC3C,EACAyC,EACApH,KAEA,GAAKoH,GAAgBpH,EACrB,OAAOsB,EAAAA,SAASzB,IACd8E,EACArD,EAAAA,SAASrC,IAAIJ,EAAAA,gBAAgB+I,WAAYR,EAAapH,GAE1D,GAAEoQ,KAAK9O,EAAAA,UAENA,EAAAA,SAAiBgO,aAChB3K,KAESrD,EAAAA,SAASzB,IACC,mBAAV8E,EAAwBA,EAAMpH,YAAsBoH,EAC3D/I,EAAOY,YAET4T,KAAK9O,EAAAA,UAENmI,EAAAA,MAAcxB,WAAY,CACzBtD,EACAJ,MAESjD,EAAAA,SAASzB,IACC,mBAAV8E,EAAwBA,EAAMpH,YAAsBoH,EAC3DrD,EAAAA,SAASrC,IAAIrD,EAAOe,UAAW4H,KAEjC6L,KAAK3G,EAAAA,OAENA,EAAAA,MAAcC,gBAAiB,CAC9B/E,EACAJ,EACAmM,KAEIA,EAAI7Q,IAAI,iCAAqD,IAAhB8E,EAAMJ,IAGvD6L,KAAK3G,EAAAA,OAENA,EAAAA,MAAckH,aACbhM,IAEA,MAAMqF,EAAO1I,EAAAA,SAASzB,IAAI8E,EAAMpH,aAChC,IAAKyM,IAASA,EAAKpO,EAAOgB,SACxB,MAAM,IAAIkG,EAAc,wBAAwB6B,EAAMpH,YAAY6C,MACpE,OAAOM,OAAOkB,KAAKoI,GAAM,EAC3B,GAAEoG,KAAK3G,EAAAA,OAENA,EAAAA,MAAcmH,WACbjM,IAEA,MAAMgF,EAAUhF,EAAM8E,EAAAA,MAAMkH,YAAYhM,IACxC,GAAuB,iBAAZgF,GAAkC,EAAVA,EACjC,MAAM,IAAI7G,EAAc,2BAA2B6G,GACrD,OAAOA,CACT,GAAEyG,KAAK3G,EAAAA,OChNP,MAAMoH,GAAmBC,EAAAA,aAAiBnQ,UAErCkQ,GAAiBE,gBACpBF,GAAiBE,cAAgB,SAAU1H,GAKzC,OAJMpL,KAAa+S,mBAChB/S,KAAa+S,iBAAmB,IAElC/S,KAAa+S,iBAAiB5M,KAAKiF,GAC7BpL,IACT,GAGF,MAMMgT,GAAiB,CACrBC,EACAC,EACA9H,KAT6B,EAAC6H,EAA4BC,KAC1D,MAAMC,EAAcF,EAAgBE,WACpC,OAAIA,GAAY5N,IAAI2N,GAAcC,EAAWvR,IAAIsR,GACzCD,EAAgBpH,UAAUqH,EAAMzQ,SAQxC2Q,CAAuBH,EAASC,GAAMG,SAASjI,GACxC6H,GC1CH,SAAUK,GACdC,GAEA,OAAOA,EAAOpM,OAAO,CAACnF,EAA2B1B,EAAG2H,KAC9C3H,IACF0B,EACmB,iBAAVA,EACHA,EAAQ,QAAQiG,MAAM3H,EAAEwD,aACxB,MAAMmE,MAAM3H,EAAEwD,cACf9B,QACNlC,EACL,CAeOmM,eAAeuH,GAKpBC,EACAtJ,EACAzD,EACA3E,EACA6E,EACAwD,GAEA,MAAMzD,EACJ+M,GAAgBhN,EAAO3E,EAAW6E,GAEpC,IAAKD,EAAY,OAEjB,MAEMgN,EAAmBpL,EADCtB,EADAR,EAAsBC,EAAOC,EAAYC,KAInE,IAAK,MAAMP,KAAOsN,EAAkB,CAClC,MAAMjU,EAAc,CAClByK,EACA9D,EAAIW,KAAKzE,OAAS,EAAI8D,EAAIW,KAAOX,EAAIW,KAAK,GAC1CX,EAAIC,KAAK/D,OAAS,EAAI8D,EAAIC,KAAOD,EAAIC,KAAK,GAC1CI,GAGF,GACE,CAAC/F,EAAAA,cAAcU,OAAQR,EAAAA,sBAAsB+S,YAAYhJ,SACvD7I,GAEF,CACA,IAAKqI,EACH,MAAM,IAAIvF,EAAc,0CAC1BnF,EAAKyG,KAAKiE,EACZ,CACA,UACS/D,EAAIvD,QAA4C8G,MACrD6J,EACA/T,EAEJ,CAAE,MAAOY,GAMP,GALA6J,EAAQ0J,OACL3I,IAAIsI,IACJ/C,MACC,6BAA6BpK,EAAIvD,QAAQX,YAAYkE,EAAIC,WAAWI,EAAMpH,YAAY6C,QAEtFgI,EAAQvI,IAAI,uBAAwB,MAAMtB,CAChD,CACF,CACF,UAYgBoT,GACdhN,EACA3E,EACA+R,GAEA,MAAMlN,EAASkN,GAAaC,QAAQ,OAAQ,IAEtCpN,EAAatD,EAAAA,SAASzB,IAC1B8E,EAAMpH,YACNsB,EAAAA,gBAAgB+I,YAGlB,GAAKhD,EACL,OAAOlE,OAAOkB,KAAKgD,GAAYQ,OAC7B,CAACnF,EAAwDoJ,KACvD,MAAM4I,EAAMpN,EACRD,EAAWyE,GAAWxE,IAAW,CAAA,EACjCD,EAAWyE,GACT/E,EAAM5D,OAAOkB,KAAKqQ,GAAKxK,OAAQxB,GAAWA,IAAMjG,GAChD8E,EAAO,GACb,IAAK,MAAMmB,KAAK3B,EAAKQ,EAAKV,KAAK,CAAEnF,IAAKgH,EAAGxB,MAAOwN,EAAIhM,KAMpD,OAJInB,GAAQA,EAAKtE,SACVP,IAAOA,EAAQ,CAAA,GACpBA,EAAMoJ,GAAavE,GAEd7E,QAETlC,EAEJ,CD3EA8S,GAAiB5I,UAAY,SAAUkJ,EAAWjJ,GAChD,OAAO+I,GAAehT,KAAMkT,EAAMlJ,EAAUC,GAC9C,EAEA2I,GAAiB/O,KAAO,SAAUqP,GAChC,OAAOF,GAAehT,KAAMkT,EAAMrP,IACpC,EAEA+O,GAAiBtH,iBAAmB,SAClC4H,EACAxT,EACA6K,EACAC,EACAyJ,EACArN,EACA0D,EACA7B,GAEA,OAAOuK,GACLhT,KACAkT,EACA5H,EACE5L,EACA6K,EACAC,EACAyJ,EACArN,EACA0D,EACA7B,GAGN,EAEAmK,GAAiBlI,SAAW,SAC1BwI,EACAxT,EACA6K,EACAC,EACAyJ,EACArN,EACA0D,EACA7B,GAEA,OAAOuK,GACLhT,KACAkT,EACAxI,EACEhL,EACA6K,EACAC,EACAyJ,EACArN,EACA0D,EACA7B,GAGN,EAEAmK,GAAiBlH,QAAU,SAAUwH,GACnC,OAAOF,GAAehT,KAAMkT,EAAMxH,IACpC,EAEAkH,GAAiBhH,UAAY,SAAUsH,GACrC,OAAOF,GAAehT,KAAMkT,EAAMtH,IACpC,EE3HO,MAAMsI,GAGT,CACFC,mBAAerU,EACfsU,cAAe,GACfC,4BAA6B,GAC7BC,SAAU,GACVC,gBAAgB,EAChBC,eAAgB,GAChBzS,eAAWjC,EACX2U,qBAAqB,EACrBC,sBAAsB,EACtBC,kBAAkB,EAClBC,gBAAgB,EAChBC,qBAAqB,EACrBC,gBAAgB,EAChBC,uBAAuB,EACvBC,yBAAyB,GCOdC,GAIXtK,IAEO,IAAIuK,IAAaC,WACtB1S,OAAO8P,OAAO,CAAA,EAAI5H,EAAK,CACrByB,UAAW,IAAI/L,KACfwT,OAAQlJ,EAAIkJ,QAAUuB,EAAAA,QAAQxT,eA+DvBsT,GACX,WAAA5V,CAAYmT,GAWHzS,KAAA2B,MACP,IAAI0T,oBAXJ5S,OAAO6S,eAAetV,KAAM,QAAS,CACnCP,MAAOgT,EAAMA,EAAW,MAAI,IAAI4C,EAAAA,kBAChCE,UAAU,EACVC,YAAY,EACZC,cAAc,GAElB,QAEOzV,KAAA0V,QAA+BT,EAAsB,CAW5D,UAAAE,CAA6B1V,GAO3B,OANAgD,OAAO6S,eAAetV,KAAM,QAAS,CACnCP,MAAQO,KAAK2B,MAAiCwT,WAAW1V,GACzD8V,UAAU,EACVC,YAAY,EACZC,cAAc,IAETzV,IACT,CAEA,UAAI6T,GACF,OAAQ7T,KAAK2B,MAAckS,MAC7B,CAEA,aAAIzH,GACF,OAAQpM,KAAK2B,MAAcyK,SAC7B,CAOA,GAAAxK,CAAuBZ,GACrB,IACE,OAAQhB,KAAK2B,MAAiCC,IAC5CZ,EAEJ,CAAE,MAAOV,GACP,MAAMqV,EAAU3V,KAAK2B,MAAcwS,cAGnC,GAAIwB,EAAQ,OAAOA,EAAO/T,IAAIZ,GAC9B,MAAMV,CACR,CACF,CAKA,gBAAOsV,CACLzL,EACA0L,GAEA,OAAOX,GAAQQ,QACbjT,OAAO8P,OAAO,GAAKpI,EAAgBxI,MAAOkU,GAAa,CAAA,GAE3D,CAKA,iBAAajO,CACX7F,EAMA8T,EACAnP,KAEGhH,GAEH,OAAOwV,GAAQQ,QACbjT,OAAO8P,OAAO,CAAA,EAAI2B,GAA2C2B,EAAW,CACtE9T,UAAWA,EACX2E,MAAOA,EACPmN,OAAQgC,EAAUhC,QAAWuB,EAAAA,QAAQxT,QAG3C,CAKA,iBAAalC,CACXqC,EAMA2E,EACAhH,EACAoW,EACAD,GAEA,MAAME,EAAOrW,EAAKsW,MAElB/J,eAAegK,IACb,OAAIH,EACKA,EAAW3L,QAAQpI,EAAW8T,GAAa,GAAInP,KAAUhH,GAC3DwV,GAAQtN,KAAW7F,EAAW8T,GAAa,GAAInP,KAAUhH,EAClE,CAEA,IAAI4I,EAeJ,OAdIyN,EACEA,aAAgBb,IAClB5M,EAAIyN,EACJrW,EAAKyG,KAAK4P,KAEVrW,EAAKyG,KAAK4P,GACVzN,QAAW2N,IACXvW,EAAKyG,KAAKmC,KAGZA,QAAW2N,IACXvW,EAAKyG,KAAKmC,IAGL,CAAE6B,QAAS7B,EAAG5I,KAAMA,EAC7B,EC7JI,SAAUwW,GACdlC,EACAmC,EACAC,EACArN,EACAsN,GAEA,MAAMlU,EAAOkU,GAA0BD,EAAOjU,KAC9C6R,EAAI7R,GAAQ,IAAImU,MAAMtC,EAAI7R,GAAO,CAC/ByH,MAAOqC,MAAOpK,EAAQ0U,EAASC,KAC7B,IAAIC,EAAkBN,EAAOzQ,KAAK6Q,KAAYC,GAC1CC,aAA2B3H,UAC7B2H,QAAwBA,GAC1B,MAAMtM,EAAUsM,EAAgBA,EAAgBlU,OAAS,GACzD,KAAM4H,aAAmB+K,IACvB,MAAM,IAAIrQ,EAAc,qBAC1B,IAAIgM,EAAUhP,EAAO6D,KAAK6Q,KAAYE,GAItC,OAHI5F,aAAmB/B,UAAS+B,QAAgBA,GAChDA,EAAU9H,EAAMrD,KAAK6Q,EAAS1F,EAAS1G,GACnC0G,aAAmB/B,UAAS+B,QAAgBA,GACzCA,IAGb,CAEM,SAAU6F,GACd1C,EACAmC,EACAC,EACArN,EACAsN,GAEA,MAAMlU,EAAOkU,GAA0BD,EAAOjU,KAC9C6R,EAAI7R,GAAQ,IAAImU,MAAMtC,EAAI7R,GAAO,CAC/ByH,MAAOqC,MAAOpK,EAAQ0U,EAASC,KAC7B,IAAIC,EAAkBN,EAAOzQ,KAAK6Q,KAAYC,GAC1CC,aAA2B3H,UAC7B2H,QAAwBA,GAC1B,MAAMrM,EAAWqM,EAAgBT,MAC3B7L,EAAUsM,EAAgBA,EAAgBlU,OAAS,GACzD,KAAM4H,aAAmB+K,IACvB,MAAM,IAAIrQ,EAAc,qBAC1B,GACEsF,EAAQvI,IAAI,2BACXuI,EAAQvI,IAAI,0BACXwI,aAAoBoB,EAAAA,UACpBzF,MAAMC,QAAQoE,KAAcA,EAAS6E,MAAO0H,GAAMA,aAAanL,EAAAA,QAEjE,MAAM,IAAI3G,EAAc,wCAG1B,IAAIgM,EAAUhP,EAAO6D,KAAK6Q,KAAYE,GAItC,OAHI5F,aAAmB/B,UAAS+B,QAAgBA,GAChDA,EAAU9H,EAAMrD,KAAK6Q,EAAS1F,EAASzG,EAAUD,GAC7C0G,aAAmB/B,UAAS+B,QAAgBA,GACzCA,IAGb,CCvHO,MAAMlS,GAAU,cACViY,GAAe,cAC5BvT,EAAAA,SAASwT,gBAAgBD,GAAcjY,yDVqyBrCmE,GAEA+G,EAGElJ,EAAAA,cAAc/C,QAAU+C,EAAAA,cAAcmW,MACtC,CAACC,EAAqCpR,EAA0BlG,IAzBpE,EACEqD,EACAiU,EACApR,EACAlG,IAEIqD,EAAQP,OAAU,GAAc,SAAToD,EASnB7C,EAAoCiU,EAASpR,EAAMlG,GAHjDqD,EALYiU,EAAQvN,OACzB3H,GACiB,SAAhBA,EAAO8D,MAEoBoC,IAAKlG,GAAWA,EAAOpC,OACMA,GAc1DuX,CAA8BlU,EAASiU,EAASpR,EAAMlG,GAL1DoK,qBApE8BoN,IAC9B,MAAMF,EAAUnR,EAA8BqR,GAC9C,OAAOpN,EAGLlJ,EAAAA,cAAc/C,QAAU+C,EAAAA,cAAcmW,MACtC,CAACC,EAAqCpR,EAA0BlG,IACvDsX,EAAQjH,KAAMjO,GAtB3B,EACEA,EACA8D,EACAlG,IAEIoC,EAAO8D,OAASA,IAEF,SAAhB9D,EAAO8D,MACP9D,EAAOpC,QAAUwB,EAAAA,yBAAyBQ,KAIrCI,EAAOpC,QAAUA,GAUYyX,CAAcrV,EAAQ8D,EAAMlG,IALzDoK,CAOLkN,iUW7oBF,SAAI,GACF,IAAK/W,KAAKmX,OACR,MAAM,IAAItS,EAAc,iDAC1B,OAAO7E,KAAKmX,MACd,CAQA,MAAczI,GACZ,OAAOlD,QAAMkD,GAAG1O,KAAK+N,MACvB,CAQA,WAAcqE,GACZ,OAAO5G,QAAM4G,QAAQpS,KAAK+N,MAC5B,CAEA,WAAAzO,CAAsB0O,GAChBA,IAAOhO,KAAKmX,OAASnJ,GAEzB,MAAMoJ,EAAOpX,KACb,CAACA,KAAKqX,OAAQrX,KAAKsX,KAAMtX,KAAKuX,QAAQ1P,QAAStB,IAC7C,MAAMpE,EAAOoE,EAAEpE,KACf+T,GACEkB,EACCA,EAAajV,EAAO,UACrBoE,EACC6Q,EAAajV,EAAO,aAGzBuU,GACEU,EACCA,EAAapX,KAAKwX,OAAOrV,KAAO,UACjCnC,KAAKwX,OACJJ,EAAapX,KAAKwX,OAAOrV,KAAO,UAErC,CAoBA,eAAMsV,CAAUC,KAAgBhY,GAC9B,OAAOoP,QAAQC,IAAI2I,EAAO3P,IAAKxB,GAAMvG,KAAKqX,OAAO9Q,KAAM7G,IACzD,CAWU,kBAAMiY,CACdjR,KACGhH,GAEH,MAAMkY,QAAoC1C,GAAQxV,KAChDiB,EAAAA,cAAcQ,OACdnB,KAAK+N,MACLrO,GAYF,GAVAgH,EAAQ,IAAI1G,KAAK+N,MAAMrH,GAClBkR,EAAYzN,QAAQvI,IAAI,yBACrB4R,GACJxT,KACA4X,EAAYzN,QACZzD,EACA/F,gBAAcQ,OACdR,EAAAA,cAAcmI,KAGb8O,EAAYzN,QAAQvI,IAAI,oBAAqB,CAChD,MAAM2R,QAAezE,QAAQ4C,QAAQhL,EAAMlH,aAC3C,GAAI+T,EAAQ,MAAM,IAAI3O,EAAgB2O,EAAOzP,WAC/C,CAEA,MAAO,CAAC4C,KAAUkR,EAAYlY,KAChC,CAUU,kBAAMmY,CAAanR,EAAUyD,GASrC,OARKA,EAAQvI,IAAI,yBACT4R,GACJxT,KACAmK,EACAzD,EACA/F,EAAAA,cAAcQ,OACdR,EAAAA,cAAcqI,OAEXtC,CACT,CAWU,qBAAMoR,CACdJ,KACGhY,GAEH,MAAMkY,QAAoB1C,GAAQxV,KAChCiB,EAAAA,cAAcQ,OACdnB,KAAK+N,MACLrO,GAEIkV,EAAiBgD,EAAYzN,QAAQvI,IAAI,kBACzCmW,EAAiBH,EAAYzN,QAAQvI,IAAI,oBAiB/C,GAfA8V,QAAe5I,QAAQC,IACrB2I,EAAO3P,IAAIkE,MAAO1F,IAChB,MAAMG,EAAQ,IAAI1G,KAAK+N,MAAMxH,GAS7B,OARKqO,SACGpB,GACJxT,KACA4X,EAAYzN,QACZzD,EACA/F,gBAAcQ,OACdR,EAAAA,cAAcmI,IAEXpC,MAINqR,EAAgB,CACnB,MAIMxE,EAASD,SAJgBxE,QAAQC,IACrC2I,EAAO3P,IAAKxB,GAAMuI,QAAQ4C,QAAQnL,EAAE/G,gBAKtC,GAAI+T,EAAQ,MAAM,IAAI3O,EAAgB2O,EACxC,CACA,MAAO,CAACmE,KAAWE,EAAYlY,KACjC,CAUU,qBAAMsY,CAAgBN,EAAavN,GAa3C,OAZKA,EAAQvI,IAAI,yBACTkN,QAAQC,IACZ2I,EAAO3P,IAAKxB,GACViN,GACExT,KACAmK,EACA5D,EACA5F,EAAAA,cAAcQ,OACdR,EAAAA,cAAcqI,SAIf0O,CACT,CAoBA,aAAMO,CAAQtU,KAA2BjE,GACvC,aAAaoP,QAAQC,IAAIpL,EAAKoE,IAAK0G,GAAOzO,KAAKsX,KAAK7I,KAAO/O,IAC7D,CAUU,gBAAMwY,CAAWxR,EAAUyD,GASnC,OARKA,EAAQvI,IAAI,yBACT4R,GACJxT,KACAmK,EACAzD,EACA/F,EAAAA,cAAcS,KACdT,EAAAA,cAAcqI,OAEXtC,CACT,CAWU,gBAAMyR,CACdnX,KACGtB,GAEH,MAAMkY,QAAoB1C,GAAQxV,KAChCiB,EAAAA,cAAcS,KACdpB,KAAK+N,MACLrO,GAEIgH,EAAW,IAAI1G,KAAK+N,MAS1B,OARArH,EAAM1G,KAAK0O,IAAM1N,QACXwS,GACJxT,KACA4X,EAAYzN,QACZzD,EACA/F,gBAAcS,KACdT,EAAAA,cAAcmI,IAET,CAAC9H,KAAQ4W,EAAYlY,KAC9B,CAWU,mBAAM0Y,CACdzU,KACGjE,GAEH,MAAMkY,QAAoB1C,GAAQxV,KAChCiB,EAAAA,cAAcS,KACdpB,KAAK+N,MACLrO,GAeF,aAbMoP,QAAQC,IACZpL,EAAKoE,IAAIkE,MAAOoM,IACd,MAAM9R,EAAI,IAAIvG,KAAK+N,MAEnB,OADAxH,EAAEvG,KAAK0O,IAAM2J,EACN7E,GACLxT,KACA4X,EAAYzN,QACZ5D,EACA5F,gBAAcS,KACdT,EAAAA,cAAcmI,OAIb,CAACnF,KAASiU,EAAYlY,KAC/B,CAUU,mBAAM4Y,CAAcZ,EAAavN,GAazC,OAZKA,EAAQvI,IAAI,yBACTkN,QAAQC,IACZ2I,EAAO3P,IAAKxB,GACViN,GACExT,KACAmK,EACA5D,EACA5F,EAAAA,cAAcS,KACdT,EAAAA,cAAcqI,SAIf0O,CACT,CAoBA,eAAMa,CAAUb,KAAgBhY,GAC9B,OAAOoP,QAAQC,IAAI2I,EAAO3P,IAAKxB,GAAMvG,KAAKwX,OAAOjR,KAAM7G,IACzD,CAUU,kBAAM8Y,CAAa9R,EAAU0D,EAAaD,GAUlD,OATKA,EAAQvI,IAAI,yBACT4R,GACJxT,KACAmK,EACAzD,EACA/F,EAAAA,cAAcU,OACdV,EAAAA,cAAcqI,MACdoB,GAEG1D,CACT,CAWU,kBAAM+R,CACd/R,KACGhH,GAEH,MAAMkY,QAAoB1C,GAAQxV,KAChCiB,EAAAA,cAAcU,OACdrB,KAAK+N,MACLrO,GAGIyK,EAAUyN,EAAYzN,QACtByK,EAAiBgD,EAAYzN,QAAQvI,IAAI,kBACzCmW,EAAiBH,EAAYzN,QAAQvI,IAAI,oBACzC8M,EAAMhI,EAAc1G,KAAK0O,IAC/B,IAAKA,EACH,MAAM,IAAI7J,EACR,qDAAqD7E,KAAK0O,IAG9D,IAAItE,EAiBJ,GAhBID,EAAQvI,IAAI,2BACdwI,QAAiBpK,KAAKsX,KAAK5I,GACvBvE,EAAQvI,IAAI,oBACd8E,EAAQ8E,EAAAA,MAAM6G,MAAMjI,EAAU1D,EAAO1G,KAAK+N,SAGzC6G,SACGpB,GACJxT,KACA4X,EAAYzN,QACZzD,EACA/F,EAAAA,cAAcU,OACdV,EAAAA,cAAcmI,GACdsB,IAGC2N,EAAgB,CACnB,MAAMxE,QAAezE,QAAQ4C,QAAQhL,EAAMlH,UAAU4K,IACrD,GAAImJ,EAAQ,MAAM,IAAI3O,EAAgB2O,EAAOzP,WAC/C,CACA,MAAO,CAAC4C,KAAUkR,EAAYlY,KAAM0K,EACtC,CAWU,qBAAMsO,CACdhB,KACGhY,GAEH,MAAMkY,QAAoB1C,GAAQxV,KAChCiB,EAAAA,cAAcU,OACdrB,KAAK+N,MACLrO,GAGIyK,EAAUyN,EAAYzN,QAEtByK,EAAiBzK,EAAQvI,IAAI,kBAC7BmW,EAAiB5N,EAAQvI,IAAI,oBAC7B+W,EAAMjB,EAAO3P,IAAKxB,IACtB,MAAMkI,EAAKlI,EAAEvG,KAAK0O,IAClB,QAAkB,IAAPD,EACT,MAAM,IAAI5J,EACR,qDAAqD7E,KAAK0O,IAE9D,OAAOD,IAGT,IAAImK,EAuBJ,GAtBIzO,EAAQvI,IAAI,2BACdgX,QAAkB5Y,KAAKiY,QAAQU,EAAiBxO,GAC5CA,EAAQvI,IAAI,oBACd8V,EAASA,EAAO3P,IAAI,CAACxB,EAAG0B,IACtBuD,EAAAA,MAAM6G,MAAOuG,EAAkB3Q,GAAI1B,EAAGvG,KAAK+N,UAI5C6G,SACG9F,QAAQC,IACZ2I,EAAO3P,IAAI,CAACxB,EAAG0B,IACbuL,GACExT,KACA4X,EAAYzN,QACZ5D,EACA5F,EAAAA,cAAcU,OACdV,EAAAA,cAAcmI,GACd8P,EAAYA,EAAU3Q,QAAKnI,MAK9BiY,EAAgB,CACnB,IAAIc,EAMFA,EALG1O,EAAQvI,IAAI,+BAKUkN,QAAQC,IAC/B2I,EAAO3P,IAAI,CAACxB,EAAG0B,IACb6G,QAAQ4C,QAAQnL,EAAE/G,UAAWoZ,EAAkB3Q,aAN1B6G,QAAQ4C,QAC/BgG,EAAO3P,IAAKxB,GAAMA,EAAE/G,cAUxB,MAAM+T,EAASD,GAAoBuF,GAEnC,GAAItF,EAAQ,MAAM,IAAI3O,EAAgB2O,EACxC,CACA,MAAO,CAACmE,KAAWE,EAAYlY,KAAMkZ,EACvC,CAUU,qBAAME,CACdpB,EACAkB,EACAzO,GAEA,GACEA,EAAQvI,IAAI,2BACXuI,EAAQvI,IAAI,yBAERgX,EACH,MAAM,IAAI/T,EAAc,2CAe5B,OAbKsF,EAAQvI,IAAI,yBACTkN,QAAQC,IACZ2I,EAAO3P,IAAI,CAACxB,EAAG0B,IACbuL,GACExT,KACAmK,EACA5D,EACA5F,gBAAcU,OACdV,EAAAA,cAAcqI,MACd4P,EAAYA,EAAU3Q,QAAKnI,KAI5B4X,CACT,CAoBA,eAAMqB,CAAUpV,KAA2BjE,GACzC,OAAOoP,QAAQC,IAAIpL,EAAKoE,IAAKsQ,GAAMrY,KAAKuX,OAAOc,KAAM3Y,IACvD,CAUU,kBAAMsZ,CAAatS,EAAUyD,GASrC,OARKA,EAAQvI,IAAI,yBACT4R,GACJxT,KACAmK,EACAzD,EACA/F,EAAAA,cAAcW,OACdX,EAAAA,cAAcqI,OAEXtC,CACT,CAWU,kBAAMuS,CACdjY,KACGtB,GAEH,MAAMkY,QAAoB1C,GAAQxV,KAChCiB,EAAAA,cAAcW,OACdtB,KAAK+N,MACLrO,GAEIgH,QAAc1G,KAAKsX,KAAKtW,KAAQ4W,EAAYlY,MAQlD,aAPM8T,GACJxT,KACA4X,EAAYzN,QACZzD,EACA/F,gBAAcW,OACdX,EAAAA,cAAcmI,IAET,CAAC9H,KAAQ4W,EAAYlY,KAC9B,CAWU,qBAAMwZ,CACdvV,KACGjE,GAEH,MAAMkY,QAAoB1C,GAAQxV,KAChCiB,EAAAA,cAAcW,OACdtB,KAAK+N,MACLrO,GAEIgY,QAAe1X,KAAKiY,QAAQtU,KAASiU,EAAYlY,MAYvD,aAXMoP,QAAQC,IACZ2I,EAAO3P,IAAIkE,MAAO1F,GACTiN,GACLxT,KACA4X,EAAYzN,QACZ5D,EACA5F,gBAAcW,OACdX,EAAAA,cAAcmI,MAIb,CAACnF,KAASiU,EAAYlY,KAC/B,CAUU,qBAAMyZ,CAAgBzB,EAAavN,GAa3C,OAZKA,EAAQvI,IAAI,yBACTkN,QAAQC,IACZ2I,EAAO3P,IAAKxB,GACViN,GACExT,KACAmK,EACA5D,EACA5F,EAAAA,cAAcW,OACdX,EAAAA,cAAcqI,SAIf0O,CACT,CAOA,QAAA5T,GACE,OAAU9D,KAAK+N,MAAM5L,KAAd,aACT,8HX1OAW,EACAkE,EACAyB,IAEOM,EAAM7H,EAAaO,IAAKqB,EAASkE,EAAMyB,kBAzD9C3F,EACAkE,EACAyB,IAEOM,EAAM7H,EAAaC,OAAQ2B,EAASkE,EAAMyB,wBA1CjD3F,EAGAkE,EACAyB,IAEOM,EAAM7H,EAAaK,cAAeuB,EAASkE,EAAMyB,kBAmExD3F,EACAkE,EACAyB,IAEOM,EAAM7H,EAAaI,OAAQwB,EAASkE,EAAMyB,gBArBjD3F,EACAkE,EACAyB,IAEOM,EAAM7H,EAAaE,KAAM0B,EAASkE,EAAMyB,kBAxC/C3F,EACAkE,EACAyB,IAEOM,EAAM7H,EAAaG,OAAQyB,EAASkE,EAAMyB,iSYnd1CmB,EAAAA,MAAMwP,EAAAA,WAAYtN,KALhB,CAAqBpF,EAAeJ,IAClCoD,eAAarG,EAAAA,SAASrC,IAAIrD,EAAOM,GAAIqI,GAAO,CAAA,EAA5CoD,CAAgDhD,EAAOJ,oBZoZlExD,EACAkE,EACAyB,IAEOC,EAAGxH,EAAaO,IAAKqB,EAASkE,EAAMyB,+CAtB3C3F,EACAkE,EACAyB,IAEOC,EAAGxH,EAAaI,OAAQwB,EAASkE,EAAMyB,aAtB9C3F,EACAkE,EACAyB,IAEOC,EAAGxH,EAAaE,KAAM0B,EAASkE,EAAMyB,6CSpXxC,CACJuL,EACAjL,EACAnC,EACAyS,KAEA,MAAMlX,EAAOkX,GAAwBtQ,EAAM5G,KAE3C6R,EAAI7R,GAAQ,IAAImU,MAAMtC,EAAI7R,GAAO,CAC/ByH,MAAOqC,MAAOpK,EAAQ0U,EAASC,KAC7B,IAAI3F,EAAUjK,EAAOlB,KAAK6Q,KAAYC,GAOtC,OANI3F,aAAmB/B,UAAS+B,QAAgBA,GAEhDA,EAAUhP,EAAO6D,KAAK6Q,KAAY1F,GAE9BA,aAAmB/B,UAAS+B,QAAgBA,GAEzCA,IAGb,qDPuO0BvE,GACjB1C,QACLpB,EAAe6D,GAAyB,CAAEC,WAAYA,IACtDvD,EAAM7H,EAAaO,IAAK+K,GAAmB,CAAEF,WAAYA,IACzDrC,EAAAA,KAAK,CAACmE,OAAQ3L,SACdsH,WAASpM,EAAOS,UAAW,CAAEkO,WAAYA,oHO/NvC,CACJ0H,EACAmC,EACA7L,EACAgP,KAEA,MAAMnX,EAAOmX,GAA0BnD,EAAOhU,KAC9C6R,EAAI7R,GAAQ,IAAImU,MAAMtC,EAAI7R,GAAO,CAC/ByH,MAAOqC,MAAOpK,EAAQ0U,EAASC,KAC7B,IAAI3F,EAAUhP,EAAO6D,KAAK6Q,KAAYC,GAOtC,OANI3F,aAAmB/B,UAAS+B,QAAgBA,GAEhDA,EAAUvG,EAAO5E,KAAK6Q,KAAY1F,GAE9BA,aAAmB/B,UAAS+B,QAAgBA,GAEzCA,IAGb,cP6DM,CACJ9O,EAA6Bb,EAAaK,cAC1CgY,EAAiBza,KAEjB,MAAM0a,EAAgB7b,EAAOW,UACvBmb,EAAsB3Y,EAAAA,WAAWC,UAAUpD,EAAOW,WAsBxD,OAAO6E,EAAAA,WAAW+H,IAAIsO,GACnBrO,OAAO,CACNC,UAtBJ,CAAYrJ,EAA4BwX,KACtC,MAAM5S,EAAoB,CACxBqD,EAAUrM,EAAOW,WACjBob,EAAAA,KAAKH,EAAQxa,EAAuBT,UAAUY,MAC9Cka,WAASra,EAAuBT,UAAUW,UAC1CyK,EAAAA,aAAa5I,EAAAA,WAAWE,IAAIrD,EAAOW,WAAY,CAC7CyD,UAAWA,EACXwX,OAAQA,IAEV7Q,EAAG3G,EAAWoK,KAShB,OAPgD,IAA5CpK,EAAU4X,QAAQhZ,gBAAcU,QAClCsF,EAAWR,KACTuD,EAAAA,aAAa+P,EAAqB,CAChC5Z,QAASd,EAAuBT,UAAUU,WAG3C2H,EAAWR,KAAK2F,MACdlC,EAAAA,SAASjD,EAClB,EAIIjH,KAAM,CAACqC,EAAWwX,KAEnB3P,OACL"}
|
|
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","BulkOperationBlockTarget","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","crudOperationSet","Set","bulkOperationSet","resolveKindForString","has","isBlockOperationDescriptor","hasOwnProperty","call","kind","normalizeBlockOperationsInput","input","candidates","Array","isArray","descriptors","item","push","getHandlerArgs","dec","prop","m","props","getHandlersDecorators","model","decorators","prefix","decs","handlerArgs","argsEntry","data","groupDecorators","grouped","reduce","acc","group","set","Symbol","groupKey","existing","Map","groups","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","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","validationFor","validateDecorator","newModel","toConditionalPromise","decoratorProps","maybeError","validateDecorators","result","decoratorKey","validationErrors","ValidationKeys","LIST","newPropValue","oldPropValue","newValues","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","targets","invokeBlockOperationIfHandler","operations","matchesTarget","_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,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",k={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:b.TIMESTAMP,READONLY:b.READONLY};let I=class extends i{constructor(){super(k.READONLY.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,r){if(void 0!==e)return c(e,t)?void 0:this.getMessage(r||this.message)}};I=P([a(N.READONLY),v("design:paramtypes",[])],I);let x=class extends i{constructor(){super(k.TIMESTAMP.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,r){if(void 0!==e){r=r||this.getMessage(r||this.message);try{e=new Date(e),t=new Date(t)}catch(e){return r}return e>t?void 0:r}}};x=P([a(N.TIMESTAMP),v("design:paramtypes",[])],x);class C extends i{constructor(e=l.DEFAULT,...t){super(e,...t)}}var j,M,U,F;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"})(j||(j={})),(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"})(U||(U={})),(e=>{e.ALL="bulkAll"})(F||(F={}));const H={CREATE:[j.CREATE],READ:[j.READ],UPDATE:[j.UPDATE],DELETE:[j.DELETE],CREATE_UPDATE:[j.CREATE,j.UPDATE],READ_CREATE:[j.READ,j.CREATE],ALL:[j.CREATE,j.READ,j.UPDATE,j.DELETE]};class ${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=$.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 V{constructor(){}static getHandlerName(e){return $.getHandlerName(e)}static key(e){return j.REFLECT+e}static get(e,t,r){return V.registry.get(e,t,r)}static getOpRegistry(){return V.registry||(V.registry=new $),V.registry}static register(e,t,r,n){V.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 z extends _{constructor(e,t=z.name,r=999){super(t,e,r)}}class G extends _{constructor(e,t=G.name,r=400){super(t,e,r)}}class Y extends G{constructor(e){super(e,Y.name,422)}}class K extends _{constructor(e,t=K.name,r=500){super(t,e,r)}}class B extends K{constructor(e){super(e,B.name,500)}}class Q extends G{constructor(e){super(e,Q.name,404)}}class J extends G{constructor(e){super(e,J.name,409)}}const q={priority:50},Z=new Set([j.CREATE,j.READ,j.UPDATE,j.DELETE]),W=new Set(Object.values(U));function X(e){return W.has(e)||e===F.ALL?"bulk":(Z.has(e),"crud")}function ee(e){return"object"==typeof e&&null!==e&&Object.prototype.hasOwnProperty.call(e,"kind")&&"string"==typeof e.kind}function te(e){const t=Array.isArray(e)?e:[e],r=[];for(const e of t)if(Array.isArray(e))r.push(...te(e));else{if("string"==typeof e){const t=X(e),n=("bulk"===t&&F.ALL,e);r.push({kind:t,value:n});continue}ee(e)&&r.push(e)}return r}const re=(e,t,r,n)=>{const s=r.constructor.name;if(!s)throw new K("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)),re(e,t,o,n))};function ne(e,t,r){const n=[];for(const s in t){const o=t[s];for(const t of o){const{key:o}=t,a=V.get(e,s,r+o);if(!a||!a.length)throw new K(`Could not find registered handler for the operation ${r+o} under property ${s}`);const i=re(t,s,e);if(!i)throw new K("Missing handler arguments for decorators");for(const e of a){const t=V.getHandlerName(e),r=i[t];if(!r)throw new K("Missing handler arguments for handler "+t);const o=r.data;n.push({handler:e,data:[o],prop:[s]})}}}return n}function se(e){const t=e.reduce((e,t)=>{if(!t||!t.data||!t.prop)throw new K("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 oe(e){return e.sort((e,t)=>(e.data[0].priority??50)-(t.data[0].priority??50)),e}function ae(e,t,r){return fe(H.CREATE_UPDATE,e,t,r)}function ie(e,t,r){return fe(H.UPDATE,e,t,r)}function ce(e,t,r){return fe(H.CREATE,e,t,r)}function le(e,t,r){return fe(H.READ,e,t,r)}function ue(e,t,r){return fe(H.DELETE,e,t,r)}function de(e,t,r){return fe(H.ALL,e,t,r)}function fe(e=H.ALL,t,r,n){return Te(j.ON,e,t,r,n)}function pe(e,t,r){return Ae(H.CREATE_UPDATE,e,t,r)}function he(e,t,r){return Ae(H.UPDATE,e,t,r)}function Ee(e,t,r){return Ae(H.CREATE,e,t,r)}function ge(e,t,r){return Ae(H.READ,e,t,r)}function ye(e,t,r){return Ae(H.DELETE,e,t,r)}function me(e,t,r){return Ae(H.ALL,e,t,r)}function Ae(e=H.ALL,t,r,n){return Te(j.AFTER,e,t,r,n)}function Te(e,s=H.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=V.getHandlerName(o);let h=i;if(a){if(Object.keys(a).filter(e=>e in i).length>0)throw new K("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)=>{V.register(t,e,r,n)})(d,o),r(t.key(M.OPERATIONS,l,d),f))),n},[]);return n(...d)(c,l)}}function we(e,t){return(...r)=>s(e,{args:r,handler:t})}const Oe=e=>{const t=te(e);return we(j.REFLECT+j.BLOCK,(e,t,r)=>e.some(e=>((e,t,r)=>e.kind===t&&("bulk"===e.kind&&e.value===F.ALL||e.value===r))(e,t,r)))(t)},Pe=e=>we(j.REFLECT+j.BLOCK,(t,r,n)=>((e,t,r,n)=>e.length>2||"crud"!==r?e(t,r,n):e(t.filter(e=>"crud"===e.kind).map(e=>e.value),n))(e,t,r,n))();function ve(e){return(n,s)=>r(t.key(b.GENERATED,s),e||!0)(n,s)}function Re(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 De(){return n(ae(Re),r(b.HASH,{}))}function be(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 K(`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 K("Failed to compose value: "+e)}}function Se(e,t,r,n){n[r]=be(n,t)}function Le(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=[ve(b.COMPOSED),ae(Se,p,u),r(t.key(b.COMPOSED,f),p)];return s&&h.push(De()),n(...h)(d,f)},args:[s,o,a,c,l,u,d]}).apply()}function ke(e,t=S,r=!1,n=!1,s="",o="",a={priority:55}){return Le(e,n,t,r,"keys",s,o,a)}function Ne(e,t=S,r=!1,n=!1,s="",o="",a={priority:55}){return Le(e,n,t,r,"values",s,o,a)}function Ie(e){return(t,r,n,s,o)=>{if(p.shouldGenerate(s,n,t))try{switch(e){case j.CREATE:s[n]=1;break;case j.UPDATE:if(t.get("applyUpdateValidation")&&o&&s[n]!==o[n])throw new Y(`Version mismatch: ${s[n]} !== ${o[n]}`);s[n]++;break;default:throw new K("Invalid operation: "+e)}}catch(e){throw new K("Failed to update version: "+e)}}}function xe(){const n=b.VERSION;return(s,o)=>e.for(n).define(r(t.key(n,o),!0),ve(b.VERSION),f(Number),ce(Ie(j.CREATE)),ie(Ie(j.UPDATE))).apply()(s,o)}function Ce(){return e.for(b.TRANSIENT).define((e,n)=>{r(t.key(b.TRANSIENT,n),{})(e,n)}).apply()}function je(t=k.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:[je,r,n]}).apply()}async function Me(e,t,r,n){p.shouldGenerate(n,r,e)&&(n[r]=e.timestamp)}function Ue(t=H.CREATE_UPDATE,s=L){const o=b.TIMESTAMP,a=u.updateKey(b.TIMESTAMP);return e.for(o).define({decorator:(e,t)=>{const s=[ve(b.TIMESTAMP),E(t,k.TIMESTAMP.DATE),g(k.TIMESTAMP.REQUIRED),r(u.key(b.TIMESTAMP),{operation:e,format:t}),fe(e,Me)];return-1!==e.indexOf(j.UPDATE)?s.push(r(a,{message:k.TIMESTAMP.INVALID})):s.push(je()),n(...s)},args:[t,s]}).apply()}async function Fe(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 B(`Failed to serialize ${r.toString()} property of model ${n.constructor.name}: ${e}`)}}async function He(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 B(`Failed to deserialize ${r.toString()} property of model ${n.constructor.name}: ${e}`)}}function $e(e){return n(ae(Fe,{serializer:e}),Ae(H.ALL,He,{serializer:e}),f([String,Object]),s(b.SERIALIZE,{serializer:e}))}function Ve(){return n(g(),je(),(e,n)=>r(t.key(b.ID,n),{})(e,n))}function _e(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 ze(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 Ge(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=ze(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 Ye(e,r,n,...s){const a=_e(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=Ge(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:Ye(e,this,r,...t)):n||!e?n:Ye(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 B(`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(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,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 K("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 K("Invalid version number: "+t);return t}).bind(p);const Ke=O.prototype;Ke.decorateClass||(Ke.decorateClass=function(e){return this._classDecorators||(this._classDecorators=[]),this._classDecorators.push(e),this});const Be=(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 Qe(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 Je(e,t,r,n,s,o){const a=qe(r,n,s);if(!a)return;const i=oe(se(ne(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([j.UPDATE,U.UPDATE_ALL].includes(n)){if(!o)throw new K("Missing old model for update operation");a.push(o)}try{await s.handler.apply(e,a)}catch(e){if(t.logger.for(Je).error(`Failed to execute handler ${s.handler.name} for ${s.prop} on ${r.constructor.name}`),t.get("breakOnHandlerError"))throw e}}}function qe(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)}Ke.generated=function(e,t){return Be(this,e,ve(t))},Ke.hash=function(e){return Be(this,e,De())},Ke.composedFromKeys=function(e,t,r,n,s,o,a,i){return Be(this,e,ke(t,r,n,s,o,a,i))},Ke.composed=function(e,t,r,n,s,o,a,i){return Be(this,e,Ne(t,r,n,s,o,a,i))},Ke.version=function(e){return Be(this,e,xe())},Ke.transient=function(e){return Be(this,e,Ce())};const Ze={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},We=e=>(new Xe).accumulate(Object.assign({},e,{timestamp:new Date,logger:e.logger||D.get()}));class Xe{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=We}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 Xe.factory(Object.assign({},e.cache,t||{}))}static async from(e,t,r,...n){return Xe.factory(Object.assign({},Ze,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):Xe.from(e,s||{},t,...r)}let i;return o?o instanceof Xe?(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 et(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 tt(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 rt(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 Xe))throw new K("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 nt(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 Xe))throw new K("Missing a context");if(i.get("applyUpdateValidation")&&!i.get("ignoreDevSafeGuards")&&!(a instanceof p)&&(!Array.isArray(a)||!a.every(e=>e instanceof p)))throw new K("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 st{get class(){if(!this._class)throw new K("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;rt(t,t[r+"Prefix"],e,t[r+"Suffix"])}),nt(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 Xe.args(j.CREATE,this.class,t);if(e=new this.class(e),r.context.get("ignoreHandlers")||await Je(this,r.context,e,j.CREATE,j.ON),!r.context.get("ignoreValidation")){const t=await Promise.resolve(e.hasErrors());if(t)throw new Y(t.toString())}return[e,...r.args]}async createSuffix(e,t){return t.get("ignoreHandlers")||await Je(this,t,e,j.CREATE,j.AFTER),e}async createAllPrefix(e,...t){const r=await Xe.args(j.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 Je(this,r.context,t,j.CREATE,j.ON),t})),!s){const t=Qe(await Promise.all(e.map(e=>Promise.resolve(e.hasErrors()))));if(t)throw new Y(t)}return[e,...r.args]}async createAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>Je(this,t,e,j.CREATE,j.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 Je(this,t,e,j.READ,j.AFTER),e}async readPrefix(e,...t){const r=await Xe.args(j.READ,this.class,t),n=new this.class;return n[this.pk]=e,await Je(this,r.context,n,j.READ,j.ON),[e,...r.args]}async readAllPrefix(e,...t){const r=await Xe.args(j.READ,this.class,t);return await Promise.all(e.map(async e=>{const t=new this.class;return t[this.pk]=e,Je(this,r.context,t,j.READ,j.ON)})),[e,...r.args]}async readAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>Je(this,t,e,j.READ,j.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 Je(this,r,e,j.UPDATE,j.AFTER,t),e}async updatePrefix(e,...t){const r=await Xe.args(j.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 K("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 Je(this,r.context,e,j.UPDATE,j.ON,i),!o){const t=await Promise.resolve(e.hasErrors(i));if(t)throw new Y(t.toString())}return[e,...r.args,i]}async updateAllPrefix(e,...t){const r=await Xe.args(j.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 K("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)=>Je(this,r.context,e,j.UPDATE,j.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=Qe(t);if(r)throw new Y(r)}return[e,...r.args,i]}async updateAllSuffix(e,t,r){if(r.get("applyUpdateValidation")&&!r.get("ignoreDevSafeGuards")&&!t)throw new K("No previous versions of models provided");return r.get("ignoreHandlers")||await Promise.all(e.map((e,n)=>Je(this,r,e,j.UPDATE,j.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 Je(this,t,e,j.DELETE,j.AFTER),e}async deletePrefix(e,...t){const r=await Xe.args(j.DELETE,this.class,t),n=await this.read(e,...r.args);return await Je(this,r.context,n,j.DELETE,j.ON),[e,...r.args]}async deleteAllPrefix(e,...t){const r=await Xe.args(j.DELETE,this.class,t),n=await this.readAll(e,...r.args);return await Promise.all(n.map(async e=>Je(this,r.context,e,j.DELETE,j.ON))),[e,...r.args]}async deleteAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>Je(this,t,e,j.DELETE,j.AFTER))),e}toString(){return this.class.name+" Repository"}}const ot="##VERSION##",at="##PACKAGE##";t.registerLibrary(at,ot);export{G as BadRequestError,_ as BaseError,Pe as BlockOperationIf,Oe as BlockOperations,z as BreakError,U as BulkCrudOperationKeys,F as BulkOperationBlockTarget,J as ConflictError,Xe as Context,b as DBKeys,H as DBOperations,k as DEFAULT_ERROR_MESSAGES,L as DEFAULT_TIMESTAMP_FORMAT,We as DefaultContextFactory,Ze as DefaultRepositoryFlags,S as DefaultSeparator,K as InternalError,M as ModelOperations,Q as NotFoundError,j as OperationKeys,V as Operations,$ as OperationsRegistry,at as PACKAGE_NAME,I as ReadOnlyValidator,st as Repository,B as SerializationError,x as TimestampValidator,N as UpdateValidationKeys,C as UpdateValidator,ot as VERSION,Y as ValidationError,Ae as after,me as afterAny,Ee as afterCreate,pe as afterCreateUpdate,ye as afterDelete,ge as afterRead,he as afterUpdate,be as composeAttributeValue,Ne as composed,Se as composedFromCreateUpdate,ke as composedFromKeys,Je as enforceDBDecorators,ve as generated,qe as getDbDecorators,re as getHandlerArgs,ne as getHandlersDecorators,_e as getValidatableUpdateProps,se as groupDecorators,De as hash,Re as hashOnCreateUpdate,Ve as id,fe as on,de as onAny,ce as onCreate,ae as onCreateUpdate,ue as onDelete,le as onRead,ie as onUpdate,Te as operation,et as prefixMethod,je as readonly,Qe as reduceErrorsToPrint,$e as serialize,He as serializeAfterAll,Fe as serializeOnCreateUpdate,oe as sortDecorators,we as storeHandlerMetadata,tt as suffixMethod,Ue as timestamp,Me as timestampHandler,Ce as transient,Ye as validateCompare,ze as validateDecorator,Ge as validateDecorators,xe as version,Ie as versionCreateUpdate,rt as wrapMethodWithContext,nt as wrapMethodWithContextForUpdate};
|
|
1
|
+
import{Decoration as e,Metadata as t,propMetadata as r,apply as n,metadata as s}from"@decaf-ts/decoration";import{__decorate as o,__metadata as a}from"tslib";import{ModelKeys as i,validator as c,Validator as l,isEqual as u,DEFAULT_ERROR_MESSAGES as d,Validation as f,Hashing as p,type as h,Model as E,innerValidationDecorator as g,date as y,required as m,ValidationKeys as A,getChildNestedPropsToIgnore as T,ModelErrorDefinition as w,toConditionalPromise as O,validate as P,ModelBuilder as v}from"@decaf-ts/decorator-validation";import{ObjectAccumulator as R}from"typed-object-accumulator";import{Logging as D}from"@decaf-ts/logging";const b={REFLECT:i.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",k={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:b.TIMESTAMP,READONLY:b.READONLY};let I=class extends l{constructor(){super(k.READONLY.INVALID)}hasErrors(e,...t){}updateHasErrors(e,t,r){if(void 0!==e)return u(e,t)?void 0:this.getMessage(r||this.message)}};I=o([c(N.READONLY),a("design:paramtypes",[])],I);let x=class extends l{constructor(){super(k.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=o([c(N.TIMESTAMP),a("design:paramtypes",[])],x);class C extends l{constructor(e=d.DEFAULT,...t){super(e,...t)}}var j,M,U,F;f.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"})(j||(j={})),(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"})(U||(U={})),(e=>{e.ALL="bulkAll"})(F||(F={}));const H={CREATE:[j.CREATE],READ:[j.READ],UPDATE:[j.UPDATE],DELETE:[j.DELETE],CREATE_UPDATE:[j.CREATE,j.UPDATE],READ_CREATE:[j.READ,j.CREATE],ALL:[j.CREATE,j.READ,j.UPDATE,j.DELETE]};class ${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=$.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:p.hash(e.toString())}}class V{constructor(){}static getHandlerName(e){return $.getHandlerName(e)}static key(e){return j.REFLECT+e}static get(e,t,r){return V.registry.get(e,t,r)}static getOpRegistry(){return V.registry||(V.registry=new $),V.registry}static register(e,t,r,n){V.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 z extends _{constructor(e,t=z.name,r=999){super(t,e,r)}}class G extends _{constructor(e,t=G.name,r=400){super(t,e,r)}}class Y extends G{constructor(e){super(e,Y.name,422)}}class K extends _{constructor(e,t=K.name,r=500){super(t,e,r)}}class B extends K{constructor(e){super(e,B.name,500)}}class Q extends G{constructor(e){super(e,Q.name,404)}}class J extends G{constructor(e){super(e,J.name,409)}}const q={priority:50},Z=new Set([j.CREATE,j.READ,j.UPDATE,j.DELETE]),W=new Set(Object.values(U));function X(e){return W.has(e)||e===F.ALL?"bulk":(Z.has(e),"crud")}function ee(e){return"object"==typeof e&&null!==e&&Object.prototype.hasOwnProperty.call(e,"kind")&&"string"==typeof e.kind}function te(e){const t=Array.isArray(e)?e:[e],r=[];for(const e of t)if(Array.isArray(e))r.push(...te(e));else{if("string"==typeof e){const t=X(e),n=("bulk"===t&&F.ALL,e);r.push({kind:t,value:n});continue}ee(e)&&r.push(e)}return r}const re=(e,t,r,n)=>{const s=r.constructor.name;if(!s)throw new K("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)),re(e,t,o,n))};function ne(e,t,r){const n=[];for(const s in t){const o=t[s];for(const t of o){const{key:o}=t,a=V.get(e,s,r+o);if(!a||!a.length)throw new K(`Could not find registered handler for the operation ${r+o} under property ${s}`);const i=re(t,s,e);if(!i)throw new K("Missing handler arguments for decorators");for(const e of a){const t=V.getHandlerName(e),r=i[t];if(!r)throw new K("Missing handler arguments for handler "+t);const o=r.data;n.push({handler:e,data:[o],prop:[s]})}}}return n}function se(e){const t=e.reduce((e,t)=>{if(!t||!t.data||!t.prop)throw new K("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 oe(e){return e.sort((e,t)=>(e.data[0].priority??50)-(t.data[0].priority??50)),e}function ae(e,t,r){return fe(H.CREATE_UPDATE,e,t,r)}function ie(e,t,r){return fe(H.UPDATE,e,t,r)}function ce(e,t,r){return fe(H.CREATE,e,t,r)}function le(e,t,r){return fe(H.READ,e,t,r)}function ue(e,t,r){return fe(H.DELETE,e,t,r)}function de(e,t,r){return fe(H.ALL,e,t,r)}function fe(e=H.ALL,t,r,n){return Te(j.ON,e,t,r,n)}function pe(e,t,r){return Ae(H.CREATE_UPDATE,e,t,r)}function he(e,t,r){return Ae(H.UPDATE,e,t,r)}function Ee(e,t,r){return Ae(H.CREATE,e,t,r)}function ge(e,t,r){return Ae(H.READ,e,t,r)}function ye(e,t,r){return Ae(H.DELETE,e,t,r)}function me(e,t,r){return Ae(H.ALL,e,t,r)}function Ae(e=H.ALL,t,r,n){return Te(j.AFTER,e,t,r,n)}function Te(e,s=H.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=V.getHandlerName(o);let h=i;if(a){if(Object.keys(a).filter(e=>e in i).length>0)throw new K("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)=>{V.register(t,e,r,n)})(d,o),r(t.key(M.OPERATIONS,l,d),f))),n},[]);return n(...d)(c,l)}}function we(e,t){return(...r)=>s(e,{args:r,handler:t})}const Oe=e=>{const t=te(e);return we(j.REFLECT+j.BLOCK,(e,t,r)=>e.some(e=>((e,t,r)=>e.kind===t&&("bulk"===e.kind&&e.value===F.ALL||e.value===r))(e,t,r)))(t)},Pe=e=>we(j.REFLECT+j.BLOCK,(t,r,n)=>((e,t,r,n)=>e.length>2||"crud"!==r?e(t,r,n):e(t.filter(e=>"crud"===e.kind).map(e=>e.value),n))(e,t,r,n))();function ve(e){return(n,s)=>r(t.key(b.GENERATED,s),e||!0)(n,s)}function Re(e,t,r,n,s){if(void 0===n[r])return;const o=p.hash(n[r]);s&&n[r]===o||(n[r]=o)}function De(){return n(ae(Re),r(b.HASH,{}))}function be(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 K(`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?p.hash(l):l}catch(e){throw new K("Failed to compose value: "+e)}}function Se(e,t,r,n){n[r]=be(n,t)}function Le(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=[ve(b.COMPOSED),ae(Se,p,u),r(t.key(b.COMPOSED,f),p)];return s&&h.push(De()),n(...h)(d,f)},args:[s,o,a,c,l,u,d]}).apply()}function ke(e,t=S,r=!1,n=!1,s="",o="",a={priority:55}){return Le(e,n,t,r,"keys",s,o,a)}function Ne(e,t=S,r=!1,n=!1,s="",o="",a={priority:55}){return Le(e,n,t,r,"values",s,o,a)}function Ie(e){return(t,r,n,s,o)=>{if(E.shouldGenerate(s,n,t))try{switch(e){case j.CREATE:s[n]=1;break;case j.UPDATE:if(t.get("applyUpdateValidation")&&o&&s[n]!==o[n])throw new Y(`Version mismatch: ${s[n]} !== ${o[n]}`);s[n]++;break;default:throw new K("Invalid operation: "+e)}}catch(e){throw new K("Failed to update version: "+e)}}}function xe(){const n=b.VERSION;return(s,o)=>e.for(n).define(r(t.key(n,o),!0),ve(b.VERSION),h(Number),ce(Ie(j.CREATE)),ie(Ie(j.UPDATE))).apply()(s,o)}function Ce(){return e.for(b.TRANSIENT).define((e,n)=>{r(t.key(b.TRANSIENT,n),{})(e,n)}).apply()}function je(t=k.READONLY.INVALID){const r=b.READONLY,n={message:t,description:"defines the attribute as readOnly",async:!1};return e.for(r).define({decorator:g,args:[je,r,n]}).apply()}async function Me(e,t,r,n){E.shouldGenerate(n,r,e)&&(n[r]=e.timestamp)}function Ue(t=H.CREATE_UPDATE,s=L){const o=b.TIMESTAMP,a=f.updateKey(b.TIMESTAMP);return e.for(o).define({decorator:(e,t)=>{const s=[ve(b.TIMESTAMP),y(t,k.TIMESTAMP.DATE),m(k.TIMESTAMP.REQUIRED),r(f.key(b.TIMESTAMP),{operation:e,format:t}),fe(e,Me)];return-1!==e.indexOf(j.UPDATE)?s.push(r(a,{message:k.TIMESTAMP.INVALID})):s.push(je()),n(...s)},args:[t,s]}).apply()}async function Fe(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 B(`Failed to serialize ${r.toString()} property of model ${n.constructor.name}: ${e}`)}}async function He(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 B(`Failed to deserialize ${r.toString()} property of model ${n.constructor.name}: ${e}`)}}function $e(e){return n(ae(Fe,{serializer:e}),Ae(H.ALL,He,{serializer:e}),h([String,Object]),s(b.SERIALIZE,{serializer:e}))}function Ve(){return n(m(),je(),(e,n)=>r(t.key(b.ID,n),{})(e,n))}function _e(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 ze(e,t,r,n,s){const o=f.get(n.key);if(!o)throw Error("Missing validator for "+n.key);if(!o.updateHasErrors)return O(void 0,s);if(!s&&n.async)return O(void 0,s);const a=Object.values(n)||{},i=o.updateHasErrors(e[r],t[r],...a);return O(i,s)}function Ge(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=ze(e,t,r,i,s);if(i.key===A.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(E.isModel(t)){const e=E.pk(t,!0);if(!e)return"Failed to find model id";const r=l.find(t=>e===E.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 Ye(e,r,n,...s){const o=_e(r,s),a={},c={};for(const{prop:l,decorators:u}of o){const o=l+"",d=r[l],{designTypes:f}=t.getPropDesignTypes(r.constructor,l);if(!f)continue;if(f.some(e=>[Array.name,Set.name].includes(e))){if(!u||!Object.keys(u).includes(A.LIST)){a[o]={[A.TYPE]:`Array or Set property '${o}' requires a @list decorator`};continue}if(d&&!(Array.isArray(d)||d instanceof Set)){a[o]={[A.TYPE]:`Property '${l+""}' must be either an Array or a Set`};continue}}const p=Ge(r,e,o,u,n)||{},h=E.isPropertyModel(r,o);if(null!=d&&h){const t=d,r=f.map(e=>E.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=T(o,...s);c[o]=t.hasErrors(e[l],...r)}else n.includes(typeof d)||(p[A.TYPE]=r?"Value must be an instance of "+r.name:`Unable to verify type consistency, missing model registry for ${f.toString()} on prop ${o}`,delete p[i.TYPE])}(Object.keys(p).length>0||n)&&(a[o]=p),n||Object.entries(c[o]||{}).forEach(([e,t])=>{void 0!==t&&(a[`${o}.${e}`]=t)})}if(!n)return Object.keys(a).length>0?new w(a):void 0;const l=a,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 w(t):void 0})}E.prototype.isTransient=function(){return t.isTransient(this)},E.prototype.hasErrors=function(e,...t){!e||e instanceof E||(t.unshift(e),e=void 0);const r=this.isAsync(),n=P(this,r,...t);return r?Promise.resolve(n).then(n=>n||!e?n:Ye(e,this,r,...t)):n||!e?n:Ye(e,this,r,...t)},E.prototype.segregate=function(){return E.segregate(this)},E.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 B(`Failed to serialize transient property ${t}: ${e}`)}}else s.model=s.model||{},s.model[t]=e[t];return s.model=E.build(s.model,e.constructor.name),s},t.pk=((e,r=!1)=>{if(!e)throw Error("No model was provided");const n=e instanceof E?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 E)return e[o];throw Error("Cannot get the value of the pk from the constructor")}).bind(t),E.pk=((e,r=!1)=>t.pk(e,r)).bind(E),E.pkProps=(e=>t.get(e,t.key(b.ID,E.pk(e)))).bind(E),E.isTransient=(e=>!!t.get("function"!=typeof e?e.constructor:e,b.TRANSIENT)).bind(E),E.composed=((e,r)=>{const n=e instanceof E?e.constructor:e;return r?t.get(n,t.key(b.COMPOSED,r)):!!t.get(n,b.COMPOSED)}).bind(E),E.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(E),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,b.TRANSIENT)).bind(t),E.generated=((e,r)=>!!t.get("function"!=typeof e?e.constructor:e,t.key(b.GENERATED,r))).bind(E),E.shouldGenerate=((e,t,r)=>!r.get("allowGenerationOverride")||void 0===e[t]).bind(E),E.versionProp=(e=>{const r=t.get(e.constructor);if(!r||!r[b.VERSION])throw new K("No version found for "+e.constructor.name);return Object.keys(r)[0]}).bind(E),E.versionOf=(e=>{const t=e[E.versionProp(e)];if("number"!=typeof t||1>t)throw new K("Invalid version number: "+t);return t}).bind(E);const Ke=v.prototype;Ke.decorateClass||(Ke.decorateClass=function(e){return this._classDecorators||(this._classDecorators=[]),this._classDecorators.push(e),this});const Be=(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 Qe(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 Je(e,t,r,n,s,o){const a=qe(r,n,s);if(!a)return;const i=oe(se(ne(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([j.UPDATE,U.UPDATE_ALL].includes(n)){if(!o)throw new K("Missing old model for update operation");a.push(o)}try{await s.handler.apply(e,a)}catch(e){if(t.logger.for(Je).error(`Failed to execute handler ${s.handler.name} for ${s.prop} on ${r.constructor.name}`),t.get("breakOnHandlerError"))throw e}}}function qe(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)}Ke.generated=function(e,t){return Be(this,e,ve(t))},Ke.hash=function(e){return Be(this,e,De())},Ke.composedFromKeys=function(e,t,r,n,s,o,a,i){return Be(this,e,ke(t,r,n,s,o,a,i))},Ke.composed=function(e,t,r,n,s,o,a,i){return Be(this,e,Ne(t,r,n,s,o,a,i))},Ke.version=function(e){return Be(this,e,xe())},Ke.transient=function(e){return Be(this,e,Ce())};const Ze={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},We=e=>(new Xe).accumulate(Object.assign({},e,{timestamp:new Date,logger:e.logger||D.get()}));class Xe{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=We}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 Xe.factory(Object.assign({},e.cache,t||{}))}static async from(e,t,r,...n){return Xe.factory(Object.assign({},Ze,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):Xe.from(e,s||{},t,...r)}let i;return o?o instanceof Xe?(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 et(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 tt(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 rt(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 Xe))throw new K("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 nt(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 Xe))throw new K("Missing a context");if(i.get("applyUpdateValidation")&&!i.get("ignoreDevSafeGuards")&&!(a instanceof E)&&(!Array.isArray(a)||!a.every(e=>e instanceof E)))throw new K("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 st{get class(){if(!this._class)throw new K("No class definition found for this repository");return this._class}get pk(){return E.pk(this.class)}get pkProps(){return E.pkProps(this.class)}constructor(e){e&&(this._class=e);const t=this;[this.create,this.read,this.delete].forEach(e=>{const r=e.name;rt(t,t[r+"Prefix"],e,t[r+"Suffix"])}),nt(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 Xe.args(j.CREATE,this.class,t);if(e=new this.class(e),r.context.get("ignoreHandlers")||await Je(this,r.context,e,j.CREATE,j.ON),!r.context.get("ignoreValidation")){const t=await Promise.resolve(e.hasErrors());if(t)throw new Y(t.toString())}return[e,...r.args]}async createSuffix(e,t){return t.get("ignoreHandlers")||await Je(this,t,e,j.CREATE,j.AFTER),e}async createAllPrefix(e,...t){const r=await Xe.args(j.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 Je(this,r.context,t,j.CREATE,j.ON),t})),!s){const t=Qe(await Promise.all(e.map(e=>Promise.resolve(e.hasErrors()))));if(t)throw new Y(t)}return[e,...r.args]}async createAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>Je(this,t,e,j.CREATE,j.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 Je(this,t,e,j.READ,j.AFTER),e}async readPrefix(e,...t){const r=await Xe.args(j.READ,this.class,t),n=new this.class;return n[this.pk]=e,await Je(this,r.context,n,j.READ,j.ON),[e,...r.args]}async readAllPrefix(e,...t){const r=await Xe.args(j.READ,this.class,t);return await Promise.all(e.map(async e=>{const t=new this.class;return t[this.pk]=e,Je(this,r.context,t,j.READ,j.ON)})),[e,...r.args]}async readAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>Je(this,t,e,j.READ,j.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 Je(this,r,e,j.UPDATE,j.AFTER,t),e}async updatePrefix(e,...t){const r=await Xe.args(j.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 K("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=E.merge(i,e,this.class))),s||await Je(this,r.context,e,j.UPDATE,j.ON,i),!o){const t=await Promise.resolve(e.hasErrors(i));if(t)throw new Y(t.toString())}return[e,...r.args,i]}async updateAllPrefix(e,...t){const r=await Xe.args(j.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 K("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)=>E.merge(i[t],e,this.class)))),s||await Promise.all(e.map((e,t)=>Je(this,r.context,e,j.UPDATE,j.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=Qe(t);if(r)throw new Y(r)}return[e,...r.args,i]}async updateAllSuffix(e,t,r){if(r.get("applyUpdateValidation")&&!r.get("ignoreDevSafeGuards")&&!t)throw new K("No previous versions of models provided");return r.get("ignoreHandlers")||await Promise.all(e.map((e,n)=>Je(this,r,e,j.UPDATE,j.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 Je(this,t,e,j.DELETE,j.AFTER),e}async deletePrefix(e,...t){const r=await Xe.args(j.DELETE,this.class,t),n=await this.read(e,...r.args);return await Je(this,r.context,n,j.DELETE,j.ON),[e,...r.args]}async deleteAllPrefix(e,...t){const r=await Xe.args(j.DELETE,this.class,t),n=await this.readAll(e,...r.args);return await Promise.all(n.map(async e=>Je(this,r.context,e,j.DELETE,j.ON))),[e,...r.args]}async deleteAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>Je(this,t,e,j.DELETE,j.AFTER))),e}toString(){return this.class.name+" Repository"}}const ot="##VERSION##",at="##PACKAGE##";t.registerLibrary(at,ot);export{G as BadRequestError,_ as BaseError,Pe as BlockOperationIf,Oe as BlockOperations,z as BreakError,U as BulkCrudOperationKeys,F as BulkOperationBlockTarget,J as ConflictError,Xe as Context,b as DBKeys,H as DBOperations,k as DEFAULT_ERROR_MESSAGES,L as DEFAULT_TIMESTAMP_FORMAT,We as DefaultContextFactory,Ze as DefaultRepositoryFlags,S as DefaultSeparator,K as InternalError,M as ModelOperations,Q as NotFoundError,j as OperationKeys,V as Operations,$ as OperationsRegistry,at as PACKAGE_NAME,I as ReadOnlyValidator,st as Repository,B as SerializationError,x as TimestampValidator,N as UpdateValidationKeys,C as UpdateValidator,ot as VERSION,Y as ValidationError,Ae as after,me as afterAny,Ee as afterCreate,pe as afterCreateUpdate,ye as afterDelete,ge as afterRead,he as afterUpdate,be as composeAttributeValue,Ne as composed,Se as composedFromCreateUpdate,ke as composedFromKeys,Je as enforceDBDecorators,ve as generated,qe as getDbDecorators,re as getHandlerArgs,ne as getHandlersDecorators,_e as getValidatableUpdateProps,se as groupDecorators,De as hash,Re as hashOnCreateUpdate,Ve as id,fe as on,de as onAny,ce as onCreate,ae as onCreateUpdate,ue as onDelete,le as onRead,ie as onUpdate,Te as operation,et as prefixMethod,je as readonly,Qe as reduceErrorsToPrint,$e as serialize,He as serializeAfterAll,Fe as serializeOnCreateUpdate,oe as sortDecorators,we as storeHandlerMetadata,tt as suffixMethod,Ue as timestamp,Me as timestampHandler,Ce as transient,Ye as validateCompare,ze as validateDecorator,Ge as validateDecorators,xe as version,Ie as versionCreateUpdate,rt as wrapMethodWithContext,nt 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/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","BulkOperationBlockTarget","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","crudOperationSet","Set","bulkOperationSet","resolveKindForString","has","isBlockOperationDescriptor","hasOwnProperty","call","kind","normalizeBlockOperationsInput","input","candidates","Array","isArray","descriptors","item","push","getHandlerArgs","dec","prop","m","props","getHandlersDecorators","model","decorators","prefix","decs","handlerArgs","argsEntry","data","groupDecorators","grouped","reduce","acc","group","set","Symbol","groupKey","existing","Map","groups","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","targets","BLOCK","some","matchesTarget","BlockOperationIf","invokeBlockOperationIfHandler","generated","type","hashOnCreateUpdate","context","oldModel","composeAttributeValue","suffix","separator","filterEmpty","hashResult","composed","arg","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","format","decorationKey","updateValidationKey","date","required","indexOf","serializeOnCreateUpdate","serializer","serialize","serializeAfterAll","deserialize","parse","String","id","getValidatableUpdateProps","propsToIgnore","decoratedProperties","validationFor","validateDecorator","newModel","toConditionalPromise","decoratorProps","maybeError","validateDecorators","result","decoratorKey","validationErrors","ValidationKeys","LIST","newPropValue","oldPropValue","newValues","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","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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"}
|
|
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","BulkOperationBlockTarget","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","crudOperationSet","Set","bulkOperationSet","resolveKindForString","has","isBlockOperationDescriptor","hasOwnProperty","call","kind","normalizeBlockOperationsInput","input","candidates","Array","isArray","descriptors","item","push","getHandlerArgs","dec","prop","m","props","getHandlersDecorators","model","decorators","prefix","decs","handlerArgs","argsEntry","data","groupDecorators","grouped","reduce","acc","group","set","Symbol","groupKey","existing","Map","groups","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","targets","BLOCK","some","matchesTarget","BlockOperationIf","invokeBlockOperationIfHandler","generated","type","hashOnCreateUpdate","context","oldModel","composeAttributeValue","suffix","separator","filterEmpty","hashResult","composed","arg","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","format","decorationKey","updateValidationKey","date","required","indexOf","serializeOnCreateUpdate","serializer","serialize","serializeAfterAll","deserialize","parse","String","id","getValidatableUpdateProps","propsToIgnore","decoratedProperties","validationFor","validateDecorator","newModel","toConditionalPromise","decoratorProps","maybeError","validateDecorators","result","decoratorKey","validationErrors","ValidationKeys","LIST","newPropValue","oldPropValue","newValues","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","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/cjs/index.cjs
CHANGED
|
@@ -21,6 +21,7 @@ exports.PACKAGE_NAME = exports.VERSION = void 0;
|
|
|
21
21
|
* @summary A comprehensive library providing decorators and utilities for database operations, model definitions, validation, and repository patterns in TypeScript applications
|
|
22
22
|
*/
|
|
23
23
|
const decoration_1 = require("@decaf-ts/decoration");
|
|
24
|
+
require("./validation/index.cjs");
|
|
24
25
|
__exportStar(require("./identity/index.cjs"), exports);
|
|
25
26
|
__exportStar(require("./interfaces/index.cjs"), exports);
|
|
26
27
|
__exportStar(require("./model/index.cjs"), exports);
|
|
@@ -34,7 +35,7 @@ __exportStar(require("./validation/index.cjs"), exports);
|
|
|
34
35
|
* @const VERSION
|
|
35
36
|
* @memberOf module:db-decorators
|
|
36
37
|
*/
|
|
37
|
-
exports.VERSION = "0.
|
|
38
|
+
exports.VERSION = "0.17.0";
|
|
38
39
|
exports.PACKAGE_NAME = "@decaf-ts/db-decorators";
|
|
39
40
|
decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
|
|
40
41
|
//# sourceMappingURL=index.js.map
|
package/lib/cjs/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,qDAAgD;AAChD,sDAAoC;AACpC,wDAAsC;AACtC,mDAAiC;AACjC,wDAAsC;AACtC,uDAAqC;AACrC,wDAAsC;AACtC,wDAAsC;AACtC;;;;;GAKG;AACU,QAAA,OAAO,GAAG,aAAa,CAAC;AACxB,QAAA,YAAY,GAAG,aAAa,CAAC;AAC1C,qBAAQ,CAAC,eAAe,CAAC,oBAAY,EAAE,eAAO,CAAC,CAAC;AAChD,iCAAiC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,qDAAgD;AAChD,iCAA+B;AAC/B,sDAAoC;AACpC,wDAAsC;AACtC,mDAAiC;AACjC,wDAAsC;AACtC,uDAAqC;AACrC,wDAAsC;AACtC,wDAAsC;AACtC;;;;;GAKG;AACU,QAAA,OAAO,GAAG,aAAa,CAAC;AACxB,QAAA,YAAY,GAAG,aAAa,CAAC;AAC1C,qBAAQ,CAAC,eAAe,CAAC,oBAAY,EAAE,eAAO,CAAC,CAAC;AAChD,iCAAiC"}
|
package/lib/esm/index.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* @summary A comprehensive library providing decorators and utilities for database operations, model definitions, validation, and repository patterns in TypeScript applications
|
|
5
5
|
*/
|
|
6
6
|
import { Metadata } from "@decaf-ts/decoration";
|
|
7
|
+
import "./validation/index.js";
|
|
7
8
|
export * from "./identity/index.js";
|
|
8
9
|
export * from "./interfaces/index.js";
|
|
9
10
|
export * from "./model/index.js";
|
|
@@ -17,7 +18,7 @@ export * from "./validation/index.js";
|
|
|
17
18
|
* @const VERSION
|
|
18
19
|
* @memberOf module:db-decorators
|
|
19
20
|
*/
|
|
20
|
-
export const VERSION = "0.
|
|
21
|
+
export const VERSION = "0.17.0";
|
|
21
22
|
export const PACKAGE_NAME = "@decaf-ts/db-decorators";
|
|
22
23
|
Metadata.registerLibrary(PACKAGE_NAME, VERSION);
|
|
23
24
|
//# sourceMappingURL=index.js.map
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,+BAAsB;AAEtB,oCAA2B;AAC3B,sCAA6B;AAC7B,iCAAwB;AACxB,sCAA6B;AAC7B,qCAA4B;AAC5B,sCAA6B;AAC7B,sCAA6B;AAE7B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;AACrC,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAC1C,QAAQ,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC"}
|
package/lib/types/index.d.cts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import "./validation";
|
|
1
2
|
export * from "./identity/index.d.cts";
|
|
2
3
|
export * from "./interfaces/index.d.cts";
|
|
3
4
|
export * from "./model/index.d.cts";
|
|
@@ -11,5 +12,5 @@ export * from "./validation/index.d.cts";
|
|
|
11
12
|
* @const VERSION
|
|
12
13
|
* @memberOf module:db-decorators
|
|
13
14
|
*/
|
|
14
|
-
export declare const VERSION = "0.
|
|
15
|
+
export declare const VERSION = "0.17.0";
|
|
15
16
|
export declare const PACKAGE_NAME = "@decaf-ts/db-decorators";
|
package/lib/types/index.d.mts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import "./validation";
|
|
1
2
|
export * from "./identity/index.d.mts";
|
|
2
3
|
export * from "./interfaces/index.d.mts";
|
|
3
4
|
export * from "./model/index.d.mts";
|
|
@@ -11,5 +12,5 @@ export * from "./validation/index.d.mts";
|
|
|
11
12
|
* @const VERSION
|
|
12
13
|
* @memberOf module:db-decorators
|
|
13
14
|
*/
|
|
14
|
-
export declare const VERSION = "0.
|
|
15
|
+
export declare const VERSION = "0.17.0";
|
|
15
16
|
export declare const PACKAGE_NAME = "@decaf-ts/db-decorators";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decaf-ts/db-decorators",
|
|
3
|
-
"version": "0.17.
|
|
3
|
+
"version": "0.17.1",
|
|
4
4
|
"description": "Agnostic database decorators and repository",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -97,6 +97,18 @@
|
|
|
97
97
|
"main": "./lib/cjs/index.cjs",
|
|
98
98
|
"module": "./lib/esm/index.js",
|
|
99
99
|
"sideEffects": [
|
|
100
|
+
"./lib/esm/index.js",
|
|
101
|
+
"./lib/cjs/index.cjs",
|
|
102
|
+
"./lib/esm/validation/index.js",
|
|
103
|
+
"./lib/esm/validation/validators/index.js",
|
|
104
|
+
"./lib/esm/validation/validators/ReadOnlyValidator.js",
|
|
105
|
+
"./lib/esm/validation/validators/TimestampValidator.js",
|
|
106
|
+
"./lib/esm/validation/validators/UpdateValidator.js",
|
|
107
|
+
"./lib/cjs/validation/index.cjs",
|
|
108
|
+
"./lib/cjs/validation/validators/index.cjs",
|
|
109
|
+
"./lib/cjs/validation/validators/ReadOnlyValidator.cjs",
|
|
110
|
+
"./lib/cjs/validation/validators/TimestampValidator.cjs",
|
|
111
|
+
"./lib/cjs/validation/validators/UpdateValidator.cjs",
|
|
100
112
|
"./lib/esm/overrides/index.js",
|
|
101
113
|
"./lib/esm/overrides/overrides.js",
|
|
102
114
|
"./lib/esm/validation/validation.js",
|