@decaf-ts/core 0.5.44 → 0.5.45

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/core.js CHANGED
@@ -1,2 +1,2 @@
1
- import{InjectableRegistryImp as e,Injectables as t,inject as r,injectable as s}from"@decaf-ts/injectable-decorators";import{__decorate as i,__metadata as n}from"tslib";import{BadRequestError as a,InternalError as o,Repository as c,Context as l,DefaultRepositoryFlags as d,OperationKeys as h,modelToTransient as u,DBKeys as p,wrapMethodWithContext as f,enforceDBDecorators as g,ValidationError as y,findPrimaryKey as w,DefaultSeparator as b,BulkCrudOperationKeys as m,NotFoundError as v,ConflictError as O,onCreateUpdate as A,onCreate as E,timestamp as T,onUpdate as R,onDelete as _,afterAny as N,readonly as x,BaseError as P}from"@decaf-ts/db-decorators";import{Model as D,ModelKeys as k,Decoration as $,DefaultFlavour as C,hashObj as j,required as B,sf as L,Validation as M,ValidationKeys as I,propMetadata as F,prop as U,type as H,list as G,model as q}from"@decaf-ts/decorator-validation";import{LoggedClass as Y,Logging as z}from"@decaf-ts/logging";import{Metadata as V,apply as Q,metadata as W}from"@decaf-ts/decoration";import{apply as X,metadata as J,Reflection as Z}from"@decaf-ts/reflection";import{Lock as K}from"@decaf-ts/transactional-decorators";var ee,te,re;function se(){return(e,t,r)=>{if(!r)throw Error("final decorator can only be used on methods");return r?.configurable&&(r.configurable=!1),r}}(e=>{e.INDEX="index",e.UNIQUE="unique",e.ADAPTER="adapter",e.INJECTABLE="decaf_{0}_adapter_for_{1}",e.TABLE="table",e.COLUMN="column",e.METADATA="__metadata",e.OWNERSHIP="ownership",e.CREATED_BY="ownership.created-by",e.UPDATED_BY="ownership.updated-by",e.RELATIONS="__relations",e.RELATION="relation",e.ONE_TO_ONE="relation.one-to-one",e.ONE_TO_MANY="relation.one-to-many",e.MANY_TO_ONE="relation.many-to-one",e.MANY_TO_MANY="relation.many-to-many",e.POPULATE="populate",e.NO_VALIDATE="no-validate"})(ee||(ee={}));class ie extends a{constructor(e,t=ie.name,r=401){super(e,t,r)}}class ne extends ie{constructor(e,t=ne.name){super(e,t,403)}}class ae extends o{constructor(e){super(e,ae.name,503)}}class oe{constructor(){this.observers=[]}count(){return this.observers.length}observe(e,t){if(-1!==this.observers.map(e=>e.observer).indexOf(e))throw new o("Observer already registered");this.observers.push({observer:e,filter:t})}unObserve(e){const t=this.observers.map(e=>e.observer).indexOf(e);if(-1===t)throw new o("Failed to find Observer");this.observers.splice(t,1)}async updateObservers(e,t,r,s,...i){(await Promise.allSettled(this.observers.filter(i=>{const{filter:n}=i;if(!n)return!0;try{return n(t,r,s)}catch(t){return e.error(`Failed to filter observer ${i.observer.toString()}: ${t}`),!1}}).map(e=>{e.observer.refresh(t,r,s,...i)}))).forEach((t,r)=>{"rejected"===t.status&&e.error(`Failed to update observable ${this.observers[r].toString()}: ${t.reason}`)})}}function ce(e){const t=e instanceof D?e.constructor:e;return Reflect.getOwnMetadata(c.key(ee.TABLE),t[k.ANCHOR]||t)||(e instanceof D?e.constructor.name:e.name)}function le(e,t){return Reflect.getMetadata(c.key(ee.COLUMN),e,t)||t}function de(e,...t){return[ce(e),...t].join("_")}$.setFlavourResolver(e=>{try{return he.flavourOf(D.isModel(e)?e.constructor:e)||he.currentFlavour||C}catch(e){}try{return he.currentFlavour||C}catch(e){return C}});class he extends Y{static{this._cache={}}get config(){return this._config}get alias(){return this._alias||this.flavour}repository(){if(!he._baseRepository)throw new o("This should be overridden when necessary. Otherwise it will be replaced lazily");return he._baseRepository}async shutdownProxies(e){if(this.proxies){if(e&&!(e in this.proxies))throw new o("No proxy found for "+e);if(e)try{await this.proxies[e].shutdown(),delete this.proxies[e]}catch(t){this.log.error(`Failed to shutdown proxied adapter ${e}: ${t}`)}else for(const e in this.proxies){try{await this.proxies[e].shutdown()}catch(t){this.log.error(`Failed to shutdown proxied adapter ${e}: ${t}`);continue}delete this.proxies[e]}}}async shutdown(){await this.shutdownProxies(),this.dispatch&&await this.dispatch.close()}constructor(e,t,r){if(super(),this._config=e,this.flavour=t,this._alias=r,this.Context=l,this.alias in he._cache)throw new o(`${this.alias} persistence adapter ${this._alias?`(${this.flavour}) `:""} already registered`);he._cache[this.alias]=this,this.log.info(`Created ${this.alias} persistence adapter ${this._alias?`(${this.flavour}) `:""} persistence adapter`),he._currentFlavour||(this.log.verbose(`Defined ${this.alias} persistence adapter as current`),he._currentFlavour=this.alias)}Dispatch(){return new he._baseDispatch}ObserverHandler(){return new oe}isReserved(e){return!e}async initialize(...e){}async flags(e,t,r,...s){return Object.assign({},d,r,{affectedTables:ce(t),writeOperation:e!==h.READ,timestamp:new Date,operation:e,ignoredValidationProperties:V.validationExceptions(t,e)})}async context(e,t,r,...s){this.log.for(this.context).debug(`Creating new context for ${e} operation on ${r.name} model with flag overrides: ${JSON.stringify(t)}`);const i=await this.flags(e,r,t,...s);return(new this.Context).accumulate(i)}prepare(e,t){const r=this.log.for(this.prepare),s=u(e),i=Object.entries(s.model).reduce((t,[r,s])=>{if(void 0===s)return t;const i=le(e,r);if(this.isReserved(i))throw new o(`Property name ${i} is reserved`);return t[i]=s,t},{});return e[ee.METADATA]&&(r.silly("Passing along persistence metadata for "+e[ee.METADATA]),Object.defineProperty(i,ee.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:e[ee.METADATA]})),{record:i,id:e[t],transient:s.transient}}revert(e,t,r,s,i){const n=this.log.for(this.revert),a={};a[r]=s;const c="string"==typeof t?D.build(a,t):new t(a);n.silly(`Rebuilding model ${c.constructor.name} id ${s}`);const l=e[ee.METADATA],d=Object.keys(c).reduce((t,s)=>(s===r||(t[s]=e[le(t,s)]),t),c);return i&&(n.verbose("re-adding transient properties: "+Object.keys(i).join(", ")),Object.entries(i).forEach(([e,t])=>{if(e in d)throw new o(`Transient property ${e} already exists on model ${c.constructor.name}. should be impossible`);d[e]=t})),l&&(n.silly(`Passing along ${this.flavour} persistence metadata for ${c.constructor.name} id ${s}: ${l}`),Object.defineProperty(d,ee.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:l})),d}async createAll(e,t,r,...s){if(t.length!==r.length)throw new o("Ids and models must have the same length");const i=this.log.for(this.createAll);return i.verbose(`Creating ${t.length} entries ${e} table`),i.debug("pks: "+t),Promise.all(t.map((t,i)=>this.create(e,t,r[i],...s)))}async readAll(e,t,...r){const s=this.log.for(this.readAll);return s.verbose(`Reading ${t.length} entries ${e} table`),s.debug("pks: "+t),Promise.all(t.map(t=>this.read(e,t,...r)))}async updateAll(e,t,r,...s){if(t.length!==r.length)throw new o("Ids and models must have the same length");const i=this.log.for(this.updateAll);return i.verbose(`Updating ${t.length} entries ${e} table`),i.debug("pks: "+t),Promise.all(t.map((t,i)=>this.update(e,t,r[i],...s)))}async deleteAll(e,t,...r){const s=this.log.for(this.createAll);return s.verbose(`Deleting ${t.length} entries ${e} table`),s.debug("pks: "+t),Promise.all(t.map(t=>this.delete(e,t,...r)))}observe(e,t){this.observerHandler||Object.defineProperty(this,"observerHandler",{value:this.ObserverHandler(),writable:!1}),this.observerHandler.observe(e,t),this.log.for(this.observe).verbose("Registering new observer "+e.toString()),this.dispatch||(this.log.for(this.observe).info("Creating dispatch for "+this.alias),this.dispatch=this.Dispatch(),this.dispatch.observe(this))}unObserve(e){if(!this.observerHandler)throw new o("ObserverHandler not initialized. Did you register any observables?");this.observerHandler.unObserve(e),this.log.for(this.unObserve).verbose(`Observer ${e.toString()} removed`)}async updateObservers(e,t,r,...s){if(!this.observerHandler)throw new o("ObserverHandler not initialized. Did you register any observables?");this.log.for(this.updateObservers).verbose(`Updating ${this.observerHandler.count()} observers for adapter ${this.alias}`),await this.observerHandler.updateObservers(this.log,e,t,r,...s)}async refresh(e,t,r,...s){return this.updateObservers(e,t,r,...s)}toString(){return this.flavour+" persistence Adapter"}static flavourOf(e){return Reflect.getMetadata(this.key(ee.ADAPTER),e)||this.current?.flavour}static get currentFlavour(){if(!he._currentFlavour)throw new o("No persistence flavour set. Please initialize your adapter");return he._currentFlavour}static get current(){return he.get(this.currentFlavour)}static get(e){if(!e)return he.get(this._currentFlavour);if(e in this._cache)return this._cache[e];throw new o(`No Adapter registered under ${e}.`)}static setCurrent(e){this._currentFlavour=e}static key(e){return c.key(e)}static models(e){try{const t=D.getRegistry().cache,r=Object.values(t).map(t=>{let r=Reflect.getMetadata(he.key(ee.ADAPTER),t);if(r&&r===e)return t;if(!r){if(!Reflect.getMetadata(c.key(p.REPOSITORY),t))return;const e=this._baseRepository.forModel(t);return r=Reflect.getMetadata(he.key(ee.ADAPTER),e),r}}).filter(e=>!!e);return r}catch(e){throw new o(e)}}static decoration(){}get client(){return this._client||(this._client=this.getClient()),this._client}for(e,...t){this.proxies||(this.proxies={});const r=`${this.alias} - ${j(e)}`;if(r in this.proxies)return this.proxies[r];let s;const i=new Proxy(this,{get:(t,r,i)=>{if("_config"===r){const s=Reflect.get(t,r,i);return Object.assign({},s,e)}return"_client"===r?s:Reflect.get(t,r,i)},set:(e,t,r,i)=>"_client"===t?(s=r,!0):Reflect.set(e,t,r,i)});return this.proxies[r]=i,i}}i([se(),n("design:type",Function),n("design:paramtypes",[String]),n("design:returntype",Promise)],he.prototype,"shutdownProxies",null),i([se(),n("design:type",Function),n("design:paramtypes",[String,Object,Object,Object]),n("design:returntype",Promise)],he.prototype,"context",null),i([se(),n("design:type",Function),n("design:paramtypes",[Object,Function]),n("design:returntype",void 0)],he.prototype,"observe",null),i([se(),n("design:type",Function),n("design:paramtypes",[Object]),n("design:returntype",void 0)],he.prototype,"unObserve",null),i([se(),n("design:type",Object),n("design:paramtypes",[])],he.prototype,"client",null),(e=>{e.ASC="asc",e.DSC="desc"})(te||(te={})),(e=>{e.CASCADE="cascade",e.NONE="none"})(re||(re={}));const ue={update:re.CASCADE,delete:re.NONE};class pe extends o{constructor(e){super(e,pe.name,500)}}class fe{get log(){return this.logger||(this.logger=z.for(this)),this.logger}constructor(e){this.options=e}static pk(e){return de(e,"pk")}static parseValue(e,t){switch(e){case"Number":return"string"==typeof t?parseInt(t):"number"==typeof t?t:BigInt(t);case"BigInt":return BigInt(t);case void 0:case"String":return t;default:throw new pe(`Unsupported sequence type: ${e} for adapter ${this}`)}}}var ge,ye;(e=>{e.EQUAL="EQUAL",e.DIFFERENT="DIFFERENT",e.BIGGER="BIGGER",e.BIGGER_EQ="BIGGER_EQ",e.SMALLER="SMALLER",e.SMALLER_EQ="SMALLER_EQ",e.NOT="NOT",e.IN="IN",e.REGEXP="REGEXP"})(ge||(ge={})),(e=>{e.AND="AND",e.OR="OR"})(ye||(ye={}));class we extends o{constructor(e){super(e,we.name,500)}}class be extends o{constructor(e){super(e,be.name,500)}}class me extends D{constructor(e,t,r){super(),this.attr1=void 0,this.operator=void 0,this.comparison=void 0,this.attr1=e,this.operator=t,this.comparison=r}and(e){return me.and(this,e)}or(e){return me.or(this,e)}not(e){return new me(this,ge.NOT,e)}hasErrors(...e){const t=()=>{const e=`Invalid operator ${this.operator}}`;if("string"==typeof this.attr1){if(this.comparison instanceof me)return{comparison:{condition:"Both sides of the comparison must be of the same type"}};if(-1===Object.values(ge).indexOf(this.operator))return{operator:{condition:e}}}if(this.attr1 instanceof me){if(!(this.comparison instanceof me)&&this.operator!==ge.NOT)return{comparison:{condition:e}};if(-1===Object.values(ye).indexOf(this.operator)&&this.operator!==ge.NOT)return{operator:{condition:e}}}},r=super.hasErrors(...e);return this.isAsync()?(async()=>await Promise.resolve(r)??t())():r??t()}static and(e,t){return me.group(e,ye.AND,t)}static or(e,t){return me.group(e,ye.OR,t)}static group(e,t,r){return new me(e,t,r)}static attribute(e){return(new me.Builder).attribute(e)}static attr(e){return this.attribute(e)}static{this.Builder=class{constructor(){this.attr1=void 0,this.operator=void 0,this.comparison=void 0}attribute(e){return this.attr1=e,this}attr(e){return this.attribute(e)}eq(e){return this.setOp(ge.EQUAL,e)}dif(e){return this.setOp(ge.DIFFERENT,e)}gt(e){return this.setOp(ge.BIGGER,e)}lt(e){return this.setOp(ge.SMALLER,e)}gte(e){return this.setOp(ge.BIGGER_EQ,e)}lte(e){return this.setOp(ge.SMALLER_EQ,e)}in(e){return this.setOp(ge.IN,e)}regexp(e){return this.setOp(ge.REGEXP,RegExp(e).source)}setOp(e,t){return this.operator=e,this.comparison=t,this.build()}build(){try{return new me(this.attr1,this.operator,this.comparison)}catch(e){throw new we(e)}}}}static builder(){return new me.Builder}}function ve(e){return t=>X(J(he.key(ee.ADAPTER),e))(t)}i([B(),n("design:type",Object)],me.prototype,"attr1",void 0),i([B(),n("design:type",String)],me.prototype,"operator",void 0),i([B(),n("design:type",Object)],me.prototype,"comparison",void 0);class Oe extends c{static{this._cache={}}get log(){return this.logger||(this.logger=this.adapter.log.for(this.toString())),this.logger}get adapter(){if(!this._adapter)throw new o("No adapter found for this repository. did you use the @uses decorator or pass it in the constructor?");return this._adapter}get tableName(){return this._tableName||(this._tableName=Oe.table(this.class)),this._tableName}get pkProps(){return super.pkProps}constructor(e,t,...r){if(super(t),this.observers=[],e&&(this._adapter=e),t&&(Oe.register(t,this,this.adapter.alias),e)){const r=Reflect.getMetadata(he.key(ee.ADAPTER),t);if(r&&r!==e.flavour)throw new o("Incompatible flavours");ve(e.flavour)(t)}[this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(e=>{const t=e.name;f(this,this[t+"Prefix"],e,this[t+"Suffix"])})}override(e){return this.log.for(this.override).debug("Overriding repository flags with "+JSON.stringify(e)),new Proxy(this,{get:(t,r,s)=>{const i=Reflect.get(t,r,s);return"_overrides"!==r?i:Object.assign({},i,e)}})}for(e,...t){return new Proxy(this,{get:(r,s,i)=>"adapter"===s?this.adapter.for(e,...t):Reflect.get(r,s,i)})}ObserverHandler(){return new oe}async createPrefix(e,...t){const r=await l.args(h.CREATE,this.class,t,this.adapter,this._overrides||{});e=new this.class(e),await g(this,r.context,e,h.CREATE,h.ON);const s=await Promise.resolve(e.hasErrors(...r.context.get("ignoredValidationProperties")||[]));if(s)throw new y(s.toString());return[e,...r.args]}async create(e,...t){let r,{record:s,id:i,transient:n}=this.adapter.prepare(e,this.pk);return s=await this.adapter.create(this.tableName,i,s,...t),t.length&&(r=t[t.length-1]),this.adapter.revert(s,this.class,this.pk,i,r&&r.get("rebuildWithTransient")?n:void 0)}async createSuffix(e,t){return super.createSuffix(e,t)}async createAll(e,...t){if(!e.length)return e;const r=e.map(e=>this.adapter.prepare(e,this.pk)),s=r.map(e=>e.id);let i=r.map(e=>e.record);return i=await this.adapter.createAll(this.tableName,s,i,...t),i.map((e,t)=>this.adapter.revert(e,this.class,this.pk,s[t]))}async createAllPrefix(e,...t){const r=await l.args(h.CREATE,this.class,t,this.adapter,this._overrides||{});if(!e.length)return[e,...r.args];const s=Oe.getSequenceOptions(e[0]);let i=[];s.type?(s.name||(s.name=fe.pk(e[0])),i=await(await this.adapter.Sequence(s)).range(e.length)):i=e.map((e,t)=>{if(void 0===e[this.pk])throw new o("Primary key is not defined for model in position "+t);return e[this.pk]}),e=await Promise.all(e.map(async(e,t)=>(e=new this.class(e),s.type&&(e[this.pk]="String"!==s.type||s.generated?i[t]:""+e[this.pk]),await g(this,r.context,e,h.CREATE,h.ON),e)));const n=r.context.get("ignoredValidationProperties")||[],a=(await Promise.all(e.map(e=>Promise.resolve(e.hasErrors(...n))))).reduce((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e),void 0);if(a)throw new y(a);return[e,...r.args]}async readPrefix(e,...t){const r=await l.args(h.READ,this.class,t,this.adapter,this._overrides||{}),s=new this.class;return s[this.pk]=e,await g(this,r.context,s,h.READ,h.ON),[e,...r.args]}async read(e,...t){const r=await this.adapter.read(this.tableName,e,...t);return this.adapter.revert(r,this.class,this.pk,e)}async readAllPrefix(e,...t){const r=await l.args(h.READ,this.class,t,this.adapter,this._overrides||{});return await Promise.all(e.map(async e=>{const t=new this.class;return t[this.pk]=e,g(this,r.context,t,h.READ,h.ON)})),[e,...r.args]}async readAll(e,...t){return(await this.adapter.readAll(this.tableName,e,...t)).map((t,r)=>this.adapter.revert(t,this.class,this.pk,e[r]))}async update(e,...t){let{record:r,id:s,transient:i}=this.adapter.prepare(e,this.pk);return r=await this.adapter.update(this.tableName,s,r,...t),this.adapter.revert(r,this.class,this.pk,s,i)}async updatePrefix(e,...t){const r=await l.args(h.UPDATE,this.class,t,this.adapter,this._overrides||{}),s=e[this.pk];if(!s)throw new o("No value for the Id is defined under the property "+this.pk);const i=await this.read(s,...r.args);e=this.merge(i,e),await g(this,r.context,e,h.UPDATE,h.ON,i);const n=await Promise.resolve(e.hasErrors(i,...Oe.relations(this.class),...r.context.get("ignoredValidationProperties")||[]));if(n)throw new y(n.toString());return Oe.getMetadata(i)&&(Oe.getMetadata(e)||Oe.setMetadata(e,Oe.getMetadata(i))),[e,...r.args]}async updateAll(e,...t){const r=e.map(e=>this.adapter.prepare(e,this.pk));return(await this.adapter.updateAll(this.tableName,r.map(e=>e.id),r.map(e=>e.record),...t)).map((e,t)=>this.adapter.revert(e,this.class,this.pk,r[t].id))}async updateAllPrefix(e,...t){const r=await l.args(h.UPDATE,this.class,t,this.adapter,this._overrides||{}),s=e.map(e=>{const t=e[this.pk];if(!t)throw new o("missing id on update operation");return t}),i=await this.readAll(s,...r.args);e=e.map((e,t)=>(e=this.merge(i[t],e),Oe.getMetadata(i[t])&&(Oe.getMetadata(e)||Oe.setMetadata(e,Oe.getMetadata(i[t]))),e)),await Promise.all(e.map((e,t)=>g(this,r.context,e,h.UPDATE,h.ON,i[t])));const n=r.context.get("ignoredValidationProperties")||[],a=(await Promise.all(e.map((e,t)=>Promise.resolve(e.hasErrors(i[t],e,...n))))).reduce((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e),void 0);if(a)throw new y(a);return e.forEach((e,t)=>{Oe.getMetadata(i[t])&&(Oe.getMetadata(e)||Oe.setMetadata(e,Oe.getMetadata(i[t])))}),[e,...r.args]}async deletePrefix(e,...t){const r=await l.args(h.DELETE,this.class,t,this.adapter,this._overrides||{}),s=await this.read(e,...r.args);return await g(this,r.context,s,h.DELETE,h.ON),[e,...r.args]}async delete(e,...t){const r=await this.adapter.delete(this.tableName,e,...t);return this.adapter.revert(r,this.class,this.pk,e)}async deleteAllPrefix(e,...t){const r=await l.args(h.DELETE,this.class,t,this.adapter,this._overrides||{}),s=await this.readAll(e,...r.args);return await Promise.all(s.map(async e=>g(this,r.context,e,h.DELETE,h.ON))),[e,...r.args]}async deleteAll(e,...t){return(await this.adapter.deleteAll(this.tableName,e,...t)).map((t,r)=>this.adapter.revert(t,this.class,this.pk,e[r]))}select(e){return this.adapter.Statement().select(e).from(this.class)}async query(e,t,r=te.ASC,s,i){const n=[t,r],a=this.select().where(e).orderBy(n);return s&&a.limit(s),i&&a.offset(i),a.execute()}attr(e){return me.attr(e)}observe(e,t){this.observerHandler||Object.defineProperty(this,"observerHandler",{value:this.ObserverHandler(),writable:!1});const r=this.log.for(this.observe),s=Oe.table(this.class);this.adapter.observe(this,e=>s===e),r.verbose(`now observing ${this.adapter} filtering on table === ${s}`),this.observerHandler.observe(e,t),r.verbose("Registered new observer "+e.toString())}unObserve(e){if(!this.observerHandler)throw new o("ObserverHandler not initialized. Did you register any observables?");this.observerHandler.unObserve(e),this.log.for(this.unObserve).verbose(`Observer ${e.toString()} removed`),this.observerHandler.count()||(this.log.verbose(`No more observers registered for ${this.adapter}, unsubscribing`),this.adapter.unObserve(this),this.log.verbose("No longer observing adapter "+this.adapter.flavour))}async updateObservers(e,t,r,...s){if(!this.observerHandler)throw new o("ObserverHandler not initialized. Did you register any observables?");this.log.for(this.updateObservers).verbose(`Updating ${this.observerHandler.count()} observers for ${this}`),await this.observerHandler.updateObservers(this.log,e,t,Array.isArray(r)?r.map(e=>fe.parseValue(this.pkProps.type,e)):fe.parseValue(this.pkProps.type,r),...s)}async refresh(e,t,r,...s){return this.updateObservers(e,t,r,...s)}static forModel(e,t,...r){let s;const i=t||Reflect.getMetadata(he.key(ee.ADAPTER),e)||he.currentFlavour;try{s=this.get(e,i)}catch(e){s=void 0}if(s instanceof Oe)return s;const n=t||Reflect.getMetadata(he.key(ee.ADAPTER),e)||s&&Reflect.getMetadata(he.key(ee.ADAPTER),s)||he.currentFlavour,a=n?he.get(n):void 0;if(!a)throw new o("No registered persistence adapter found flavour "+n);return s=s||a.repository(),new s(a,e,...r)}static get(e,t){const r=Oe.table(e);let s=r;if(t&&(s=[r,t].join(b)),s in this._cache)return this._cache[s];if(r in this._cache)return this._cache[r];throw new o("Could not find repository registered under "+r)}static register(e,t,r){let s=Oe.table(e);if(r&&(s=[s,r].join(b)),s in this._cache&&this._cache[s]instanceof Oe)throw new o(s+" already has a registered instance");this._cache[s]=t}static setMetadata(e,t){Object.defineProperty(e,ee.METADATA,{enumerable:!1,configurable:!0,writable:!1,value:t})}static getMetadata(e){const t=Object.getOwnPropertyDescriptor(e,ee.METADATA);return t?t.value:void 0}static removeMetadata(e){Object.getOwnPropertyDescriptor(e,ee.METADATA)&&delete e[ee.METADATA]}static getSequenceOptions(e){const t=w(e).id,r=Reflect.getMetadata(Oe.key(p.ID),e,t);if(!r)throw new o("No sequence options defined for model. did you use the @pk decorator?");return r}static indexes(e){const t=Z.getAllPropertyDecorators(e instanceof D?e:new e,p.REFLECT);return Object.entries(t||{}).reduce((e,[t,r])=>{const s=r.filter(e=>e.key.startsWith(ee.INDEX));if(s&&s.length)for(const r of s){const{key:s,props:i}=r;e[t]=e[t]||{},e[t][s]=i}return e},{})}static relations(e){const t=[];let r=e instanceof D?Object.getPrototypeOf(e):e.prototype;for(;null!=r;){const e=r[ee.RELATIONS];e&&t.push(...e),r=Object.getPrototypeOf(r)}return t}static table(e){return ce(e)}static column(e,t){return le(e,t)}}function Ae(e,t){if(!t){const r=he.key(ee.ADAPTER);if(!(t=Reflect.getMetadata(r,e instanceof D?e.constructor:e)))throw new o("Could not retrieve flavour from model "+(e instanceof D?e.constructor.name:e.name))}return L(ee.INJECTABLE,t,ce(e))}i([se(),n("design:type",Function),n("design:paramtypes",[Object,Function]),n("design:returntype",void 0)],Oe.prototype,"observe",null),i([se(),n("design:type",Function),n("design:paramtypes",[Object]),n("design:returntype",void 0)],Oe.prototype,"unObserve",null),he&&(he._baseRepository=Oe);class Ee extends e{get log(){return this.logger||(this.logger=z.for(this)),this.logger}constructor(){super()}get(e,r){const s=this.log.for(this.get);let i;try{i=super.get(e)}catch{}if(!i){let n;if("function"==typeof e?n=e:"symbol"!=typeof e&&"string"!=typeof e||(n=D.get(e.toString())),!n)return;const a=he.key(ee.ADAPTER),o=r||Reflect.getMetadata(a,n);try{let e=o;try{o&&he.get(o)}catch{const t=he.current;t&&t.flavour===o&&(e=t.alias)}if(i=Oe.forModel(n,e),i instanceof Oe)return i;const r=o||Reflect.getMetadata(a,i.constructor)||Reflect.getMetadata(a,n);t.register(i,Ae(n,r))}catch(e){s.debug("No registered repository or adapter found. falling back to default adapter. Error: "+(e?.message||JSON.stringify(e)));const t=Oe.get(n,o);if("function"==typeof t){const e=o?he.get(o):he.current;if(!e)return;return new t(e,n)}}}return i}}class Te extends Y{constructor(){super()}async initialize(){if(!this.adapter)return void this.log.verbose("No adapter observed for dispatch; skipping initialization");const e=this.adapter;[h.CREATE,h.UPDATE,h.DELETE,m.CREATE_ALL,m.UPDATE_ALL,m.DELETE_ALL].forEach(t=>{if(!e[t])throw new o(`Method ${t} not found in ${e.alias} adapter to bind Observables Dispatch`);let r=Object.getOwnPropertyDescriptor(e,t),s=e;for(;!r&&s!==Object.prototype;)s=Object.getPrototypeOf(s),r=Object.getOwnPropertyDescriptor(s,t);r&&r.writable?e[t]=new Proxy(e[t],{apply:async(e,r,s)=>{const[i,n]=s,a=await e.apply(r,s);return this.updateObservers(i,(e=>{switch(e){case m.CREATE_ALL:return h.CREATE;case m.UPDATE_ALL:return h.UPDATE;case m.DELETE_ALL:return h.DELETE;default:return e}})(t),n).then(()=>{this.log.verbose(`Observer refresh dispatched by ${t} for ${i}`),this.log.debug("pks: "+n)}).catch(e=>this.log.error(`Failed to dispatch observer refresh for ${t} on ${i}: ${e}`)),a}}):this.log.error(`Could not find method ${t} to bind Observables Dispatch`)})}async close(){}observe(e){if(!(e instanceof he))throw new pe("Only Adapters can be observed by dispatch");this.adapter=e,this.models=he.models(this.adapter.alias),this.initialize().then(()=>this.log.verbose(`Dispatch initialized for ${this.adapter.alias} adapter`))}unObserve(e){if(this.adapter!==e)throw new pe("Only the adapter that was used to observe can be unobserved");this.adapter=void 0}async updateObservers(e,t,r){if(this.adapter)try{await this.adapter.refresh(e,t,r)}catch(e){throw new o("Failed to refresh dispatch: "+e)}else this.log.verbose(`No adapter observed for dispatch; skipping observer update for ${e}:${t}`)}}function Re(e,t){return(i,n)=>n?r(e[k.ANCHOR]||e)(i,n):(J(Oe.key(p.REPOSITORY),i.name)(e),t=t||Reflect.getMetadata(he.key(ee.ADAPTER),i),Oe.register(e[k.ANCHOR]||e,i,t),s(e[k.ANCHOR]||e,{callback:t=>(Object.defineProperty(t,p.CLASS,{enumerable:!1,configurable:!1,writable:!1,value:e}),t)})(i))}he&&(he._baseDispatch=Te),V.validationExceptions=((e,t)=>{const r=V.get(e,ee.NO_VALIDATE);return r?Object.entries(r).filter(([,e])=>e.includes(t)).map(([e])=>e):[]}).bind(V);class _e extends o{constructor(e){super(e,_e.name,500)}}const Se={type:void 0,generated:!1,startWith:0,incrementBy:1,cycle:!1},Ne=Se,xe={type:"Number",generated:!0,startWith:0,incrementBy:1,cycle:!1},Pe=Object.assign({},xe,{type:"BigInt"});async function De(e,t,r,s){if(!s){const t=D.get(e.constructor.name);if(!t)throw new o("Could not find model "+e.constructor.name);s=Oe.forModel(t,r)}if(void 0===e[s.pk])return s.create(e,t);try{return s.update(e,t)}catch(r){if(!(r instanceof v))throw r;return s.create(e,t)}}async function ke(e,t,r,s){const i=s[r];if(!i)return;if("object"!=typeof i){const t=He(s,r,this.adapter.alias),n=await t.read(i);return await Ie(e,s,r,i,n),void(s[r]=i)}t.class="string"==typeof t.class?t.class:t.class().name;const n=D.get(t.class);if(!n)throw new o("Could not find model "+t.class);const a=Oe.forModel(n,this.adapter.alias),c=await a.create(i),l=w(c).id;await Ie(e,s,r,c[l],c),s[r]=c[l]}async function $e(e,t,r,s){const i=s[r];if(!i)return;if(t.cascade.update!==re.CASCADE)return;if("object"!=typeof i){const t=He(s,r,this.adapter.alias),n=await t.read(i);return await Ie(e,s,r,i,n),void(s[r]=i)}const n=await De(s[r],e,this.adapter.alias),a=w(n).id;await Ie(e,s,r,n[a],n),s[r]=n[a]}async function Ce(e,t,r,s){const i=s[r];if(!i)return;if(t.cascade.update!==re.CASCADE)return;const n=He(s,r,this.adapter.alias);let a;a=i instanceof D?await n.delete(s[r][n.pk]):await n.delete(s[r]),await Ie(e,s,r,a[n.pk],a)}async function je(e,t,r,s){const i=s[r];if(!i||!i.length)return;const n=typeof i[0];if(!i.every(e=>typeof e===n))throw new o(`Invalid operation. All elements of property ${r} must match the same type.`);const a=new Set([...i]);if("object"!==n){const t=He(s,r,this.adapter.alias);for(const i of a){const n=await t.read(i);await Ie(e,s,r,i,n)}return void(s[r]=[...a])}const c=w(i[0]).id,l=new Set;for(const t of i){const i=await De(t,e,this.adapter.alias);await Ie(e,s,r,i[c],i),l.add(i[c])}s[r]=[...l]}async function Be(e,t,r,s){const{cascade:i}=t;if(i.update===re.CASCADE)return je.call(this,e,t,r,s)}async function Le(e,t,r,s){if(t.cascade.delete!==re.CASCADE)return;const i=s[r];if(!i||!i.length)return;const n=typeof i[0];if(!i.every(e=>typeof e===n))throw new o(`Invalid operation. All elements of property ${r} must match the same type.`);const a="object"===n,c=a?Oe.forModel(i[0],this.adapter.alias):He(s,r,this.adapter.alias),l=new Set([...a?i.map(e=>e[c.pk]):i]);for(const t of l.values()){const i=await c.delete(t);await Ie(e,s,r,t,i)}s[r]=[...l]}function Me(e,t,r){return[ee.POPULATE,e,t,r].join(".")}async function Ie(e,t,r,s,i){const n=Me(t.constructor.name,r,s);return e.accumulate({[n]:i})}async function Fe(e,t,r,s){if(!t.populate)return;const i=s[r],n=Array.isArray(i);if(void 0===i||n&&0===i.length)return;const a=await(async(e,t,r,s,i)=>{let n,a;const c=[];for(const l of s){n=Me(t.constructor.name,r,l);try{a=await e.get(n)}catch(e){const s=He(t,r,i);if(!s)throw new o("Could not find repo");a=await s.read(l)}c.push(a)}return c})(e,s,r,n?i:[i],this.adapter.alias);s[r]=n?a:a[0]}const Ue=["array","string","number","boolean","symbol","function","object","undefined","null","bigint"];function He(e,t,r){const s=Reflect.getMetadata(M.key(Array.isArray(e[t])?I.LIST:I.TYPE),e,t),i=Array.isArray(e[t])?s.clazz:s.customTypes;if(!s||!i)throw new o("Failed to find types decorators for property "+t);const n=(Array.isArray(i)?[...i]:[i]).map(e=>"function"==typeof e?e():e).find(e=>!Ue.includes((""+e).toLowerCase()));if(!n)throw new o(`Property key ${t} does not have a valid constructor type`);const a=D.get(n);if(!a)throw new o("No registered model found for "+n);return Oe.forModel(a,r)}function Ge(e){return t=>{const r=he.key(ee.TABLE);return $.for(r).define({decorator:J,args:[r,e||t.name.toLowerCase()]}).apply()(t)}}function qe(e){const t=he.key(ee.COLUMN);return $.for(t).define({decorator:(e,t)=>(r,s)=>F(e,t||s)(r,s),args:[t,e]}).apply()}function Ye(e,t,r){return $.for(ee.INDEX).define({decorator:(e,t,r)=>("string"==typeof e&&(r=e,e=void 0,t=void 0),"string"==typeof t&&(r=t,t=void 0),!t&&e&&e.find(e=>![te.ASC,te.DSC].includes(e))&&(t=e,e=void 0),F(Oe.key(`${ee.INDEX}${t&&t.length?"."+t.join("."):""}`),{directions:e,compositions:t,name:r})),args:[e,t,r]}).apply()}async function ze(e,t,r,s){if(s[r]&&(await this.select().where(me.attribute(r).eq(s[r])).execute()).length)throw new O(`model already exists with property ${r} equal to ${JSON.stringify(s[r],void 0,2)}`)}function Ve(){const e=Oe.key(ee.UNIQUE);return $.for(e).define(A(ze),F(e,{})).apply()}async function Qe(e,t,r,s){throw new ie("This adapter does not support user identification")}function We(){const e=Oe.key(ee.CREATED_BY);return $.for(e).define(E(Qe),F(e,{})).apply()}function Xe(){const e=Oe.key(ee.UPDATED_BY);return $.for(e).define(A(Qe),F(e,{})).apply()}function Je(){return T([h.CREATE])}function Ze(){return T()}function Ke(e,t=ue,r=!0,s,i){const n=Oe.key(ee.ONE_TO_ONE);return $.for(n).define({decorator:(e,t,r,s,i)=>{const a={class:e.name?e.name:e,cascade:t,populate:r};return s&&(a.joinTable=s),i&&(a.name=i),X(U(ee.RELATIONS),H([e.name?e.name:e,String.name,Number.name,BigInt.name]),E(ke,a),R($e,a),_(Ce,a),N(Fe,a),F(n,a))},args:[e,t,r,s,i]}).apply()}function et(e,t=ue,r=!0,s,i){const n=Oe.key(ee.ONE_TO_MANY);return $.for(n).define({decorator:(e,t,r,s,i)=>{const a={class:e.name?e.name:e,cascade:t,populate:r};return s&&(a.joinTable=s),i&&(a.name=i),X(U(ee.RELATIONS),G([e,String,Number,BigInt]),E(je,a),R(Be,a),_(Le,a),N(Fe,a),F(n,a))},args:[e,t,r,s,i]}).apply()}function tt(e,t=ue,r=!0,s,i){const n=Oe.key(ee.MANY_TO_ONE);return $.for(n).define({decorator:(e,t,r,s,i)=>{const a={class:e?.name?e.name:e,cascade:t,populate:r};return s&&(a.joinTable=s),i&&(a.name=i),X(U(ee.RELATIONS),H([()=>(e?.name?e:e()).name,String.name,Number.name,BigInt.name]),F(n,a))},args:[e,t,r,s,i]}).apply()}function rt(e,t=ue,r=!0,s,i){const n=Oe.key(ee.MANY_TO_MANY);return $.for(n).define({decorator:(e,t,r,s,i)=>{const a={class:e.name?e.name:e,cascade:t,populate:r};return s&&(a.joinTable=s),i&&(a.name=i),X(U(ee.RELATIONS),G([e.name?e.name:e,String.name,Number.name,BigInt.name]),F(n,a))},args:[e,t,r,s,i]}).apply()}function st(...e){return(t,r)=>{const s=V.get(t,V.key(ee.NO_VALIDATE,r))||[],i=[...new Set([...s,...e])];return Q(W(V.key(ee.NO_VALIDATE,r),i))(t,r)}}function it(){return st(h.CREATE)}function nt(){return st(h.UPDATE)}function at(){return st(h.UPDATE,h.CREATE)}async function ot(e,t,r,s){if(!t.type||!t.generated||s[r])return;let i;t.name||(t.name=de(s,"pk"));try{i=await this.adapter.Sequence(t)}catch(e){throw new o(`Failed to instantiate Sequence ${t.name}: ${e}`)}const n=await i.next();Object.defineProperty(s,r,{enumerable:!0,writable:!1,configurable:!0,value:n})}function ct(e=Ne){e=Object.assign({},Ne,e,{generated:!(!e.type||void 0!==e.generated)||e.generated||Ne.generated});const t=Oe.key(p.ID);return $.for(t).define({decorator:(e,r)=>(s,i)=>X(Ye([te.ASC,te.DSC]),B(),x(),F(t,e),E(ot,e,r),F(p.ID,i))(s,i),args:[e,{priority:60}]}).apply()}class lt extends D{constructor(e){super(e)}}i([Je(),n("design:type",Date)],lt.prototype,"createdOn",void 0),i([Ze(),n("design:type",Date)],lt.prototype,"updatedOn",void 0);class dt{get current(){return this._currentPage}get total(){return this._totalPages}get count(){return this._recordCount}get statement(){return this._statement||(this._statement=this.prepare(this.query)),this._statement}constructor(e,t,r,s){this.adapter=e,this.query=t,this.size=r,this.clazz=s}async next(){return this.page(this.current+1)}async previous(){return this.page(this.current-1)}validatePage(e){if(1>e||!Number.isInteger(e))throw new be("Page number cannot be under 1 and must be an integer");if(void 0!==this._totalPages&&e>this._totalPages)throw new be(`Only ${this._totalPages} are available. Cannot go to page ${e}`);return e}}var ht,ut,pt,ft,gt;class yt extends Y{constructor(e){super(),this.adapter=e}get log(){return this.adapter.log.for(yt)}select(e){return Object.defineProperty(this,"selectSelector",{value:e,writable:!1}),this}distinct(e){return this.distinctSelector=e,this}max(e){return this.maxSelector=e,this}min(e){return this.minSelector=e,this}count(e){return this.countSelector=e,this}from(e){if(this.fromSelector="string"==typeof e?D.get(e):e,!this.fromSelector)throw new we("Could not find selector model: "+e);return this}where(e){return this.whereCondition=e,this}orderBy(e){return this.orderBySelector=e,this}groupBy(e){return this.groupBySelector=e,this}limit(e){return this.limitSelector=e,this}offset(e){return this.offsetSelector=e,this}async execute(){try{const e=this.build();return await this.raw(e)}catch(e){throw new o(e)}}async raw(e){const t=await this.adapter.raw(e);if(!this.selectSelector)return t;const r=w(new this.fromSelector).id,s=function(e){const t=e[r];return this.adapter.revert(e,this.fromSelector,r,t)}.bind(this);return Array.isArray(t)?t.map(s):s(t)}}i([se(),n("design:type",Function),n("design:paramtypes",[Array]),n("design:returntype",Object)],yt.prototype,"select",null),i([se(),n("design:type",Function),n("design:paramtypes",["function"==typeof(ht="undefined"!=typeof S&&S)?ht:Object]),n("design:returntype",Object)],yt.prototype,"distinct",null),i([se(),n("design:type",Function),n("design:paramtypes",["function"==typeof(ut="undefined"!=typeof S&&S)?ut:Object]),n("design:returntype",Object)],yt.prototype,"max",null),i([se(),n("design:type",Function),n("design:paramtypes",["function"==typeof(pt="undefined"!=typeof S&&S)?pt:Object]),n("design:returntype",Object)],yt.prototype,"min",null),i([se(),n("design:type",Function),n("design:paramtypes",["function"==typeof(ft="undefined"!=typeof S&&S)?ft:Object]),n("design:returntype",Object)],yt.prototype,"count",null),i([se(),n("design:type",Function),n("design:paramtypes",[Object]),n("design:returntype",Object)],yt.prototype,"from",null),i([se(),n("design:type",Function),n("design:paramtypes",[me]),n("design:returntype",Object)],yt.prototype,"where",null),i([se(),n("design:type",Function),n("design:paramtypes",[Array]),n("design:returntype",Object)],yt.prototype,"orderBy",null),i([se(),n("design:type",Function),n("design:paramtypes",[Object]),n("design:returntype",Object)],yt.prototype,"groupBy",null),i([se(),n("design:type",Function),n("design:paramtypes",[Number]),n("design:returntype",Object)],yt.prototype,"limit",null),i([se(),n("design:type",Function),n("design:paramtypes",[Number]),n("design:returntype",Object)],yt.prototype,"offset",null),i([se(),n("design:type",Function),n("design:paramtypes",[]),n("design:returntype",Promise)],yt.prototype,"execute",null),(e=>{e.FIND_BY="findBy",e.SELECT="Select",e.AND="And",e.OR="Or",e.GROUP_BY="GroupBy",e.ORDER_BY="OrderBy",e.THEN="Then",e.THEN_BY="ThenBy"})(gt||(gt={}));const wt={Equals:(e,t)=>me.attribute(e).eq(t),Diff:(e,t)=>me.attribute(e).dif(t),LessThan:(e,t)=>me.attribute(e).lt(t),LessThanEqual:(e,t)=>me.attribute(e).lte(t),GreaterThan:(e,t)=>me.attribute(e).gt(t),GreaterThanEqual:(e,t)=>me.attribute(e).gte(t),Between:(e,t,r)=>me.attribute(e).gte(t).and(me.attribute(e).lte(r)),In:(e,t)=>me.attribute(e).in(t),Matches:(e,t)=>me.attribute(e).regexp(t)},bt=e=>e.charAt(0).toLowerCase()+e.slice(1);class mt{static build(e,...t){if(!e.startsWith(gt.FIND_BY))throw Error("Unsupported method "+e);const r=this.extractCore(e),s=this.extractSelect(e),i=this.extractGroupBy(e),n=this.buildWhere(r,t),{orderBy:a,limit:o,offset:c}=this.extractOrderLimitOffset(r,t);return{action:"find",select:s,where:n,groupBy:i,orderBy:a,limit:o,offset:c}}static extractCore(e){const t=e.substring(gt.FIND_BY.length),r=t.match(/(Then[A-Z]|OrderBy|GroupBy|Limit|Offset)/);return r?t.substring(0,r.index):t}static extractSelect(e){const t=e.indexOf(gt.SELECT);if(-1===t)return;const r=e.substring(t+gt.SELECT.length),s=r.match(/(Then[A-Z]|OrderBy|GroupBy|Limit|Offset)/);return(s?r.substring(0,s.index):r).split(gt.AND).map(bt).filter(Boolean)}static extractGroupBy(e){const t=e.indexOf(gt.GROUP_BY);if(-1!==t)return e.substring(t+gt.GROUP_BY.length).split(gt.ORDER_BY)[0].split(gt.THEN_BY).map(bt).filter(Boolean)}static buildWhere(e,t){const r=(e.split(/OrderBy|GroupBy/)[0]||"").split(/And|Or/),s=e.match(/And|Or/g)||[];let i;if(r.forEach((e,r)=>{const{field:n,operator:a}=this.parseFieldAndOperator(e),o=a?wt[a]:wt.Equals;if(!o)throw Error("Unsupported operator "+a);const c=t[r];if(void 0===c)throw Error("Invalid value for field "+n);const l=o(n,c);i=0===r?l:s[r-1]===gt.AND?i.and(l):i.or(l)}),!i)throw Error("No conditions found in method name");return i}static parseFieldAndOperator(e){for(const t of Object.keys(wt))if(e.endsWith(t)){const r=e.slice(0,-t.length);return{field:bt(r),operator:t}}return{field:bt(e)}}static extractOrderLimitOffset(e,t){const r=e.split(/And|Or/).length,s=t.slice(r);let i,n,a;return s.length>=1&&Array.isArray(s[0])&&(i=s[0]),2>s.length||"number"!=typeof s[1]||(n=s[1]),3>s.length||"number"!=typeof s[2]||(a=s[2]),{orderBy:i,limit:n,offset:a}}}function vt(e={}){return(t,r,s)=>{const i=r.toString();s.value=function(...t){const{select:r,where:s,groupBy:n,orderBy:a,limit:o,offset:c}=mt.build(i,...t);let l=this.select(r);s&&(l=l.where(s));const{allowLimit:d,allowOffset:h,allowOrderBy:u,throws:p}={allowLimit:!0,allowOrderBy:!0,allowOffset:!0,throws:!0,...e},f=[{key:"orderBy",value:(a||[])[0],allowed:u},{key:"limit",value:o,allowed:d},{key:"offset",value:c,allowed:h}];for(const e of f)if(void 0!==e.value){if(!e.allowed&&p)throw new we(e.key[0].toUpperCase()+e.key.slice(1)+" is not allowed for this query");e.allowed&&(l=l[e.key](e.value))}return l.execute()}}}class Ot extends dt{constructor(e,t,r,s){super(e,t,r,s)}prepare(e){const t=Object.assign({},e);return t.limit=this.size,t}async page(e=1){const t=this.prepare(this.statement);if(!this._recordCount||!this._totalPages){this._totalPages=this._recordCount=0;const e=await this.adapter.raw({...t,limit:void 0})||[];if(this._recordCount=e.length,this._recordCount>0){const e=t?.limit||this.size;this._totalPages=Math.ceil(this._recordCount/e)}}e=this.validatePage(e),t.skip=(e-1)*this.size;const r=await this.adapter.raw(t);return this._currentPage=e,r}}class At extends yt{constructor(e){super(e)}getSort(){return(e,t)=>{if(!this.orderBySelector)throw new o("orderBySelector not set. Should be impossible");const r=this.orderBySelector,[s,i]=r,n=Z.getTypeFromDecorator(e,s);if(!n)throw new we("type not compatible with sorting: "+n);switch(n){case"string":case"String":return("asc"===i?1:-1)*e[s].localeCompare(t[s]);case"number":case"Number":return("asc"===i?1:-1)*(e[s]-t[s]);case"object":case"Object":if(e[s]instanceof Date&&t[s]instanceof Date)return("asc"===i?1:-1)*(e[s].valueOf()-t[s].valueOf());throw new we("Sorting not supported for not date classes");default:throw new we("sorting not supported for type "+n)}}}build(){const e={select:this.selectSelector,from:this.fromSelector,where:this.whereCondition?this.parseCondition(this.whereCondition).where:e=>!0,limit:this.limitSelector,skip:this.offsetSelector};return this.orderBySelector&&(e.sort=this.getSort()),e}async paginate(e){try{const t=this.build();return new Ot(this.adapter,t,e,this.fromSelector)}catch(e){throw new o(e)}}parseCondition(e){return{where:t=>{const{attr1:r,operator:s,comparison:i}=e;if(-1===[ye.AND,ye.OR,ge.NOT].indexOf(s))switch(s){case ge.BIGGER:return t[r]>i;case ge.BIGGER_EQ:return t[r]>=i;case ge.DIFFERENT:return t[r]!==i;case ge.EQUAL:return t[r]===i;case ge.REGEXP:if("string"!=typeof t[r])throw new we("Invalid regexp comparison on a non string attribute: "+t[r]);return!!t[r].match(RegExp(i,"g"));case ge.SMALLER:return t[r]<i;case ge.SMALLER_EQ:return t[r]<=i;default:throw new o("Invalid operator for standard comparisons: "+s)}else{if(s===ge.NOT)throw new o("Not implemented");{const e=this.parseCondition(r),n=this.parseCondition(i);switch(s){case ye.AND:return e.where(t)&&n.where(t);case ye.OR:return e.where(t)||n.where(t);default:throw new o("Invalid operator for And/Or comparisons: "+s)}}}}}}}class Et extends l{constructor(){super()}}let Tt=class extends lt{constructor(e){super(e)}};i([ct(),n("design:type",String)],Tt.prototype,"id",void 0),i([B(),Ye(),n("design:type",Object)],Tt.prototype,"current",void 0),Tt=i([Ge("__RamSequence"),q(),n("design:paramtypes",[Object])],Tt);class Rt extends fe{constructor(e,t){super(e),this.repo=Oe.forModel(Tt,t.alias)}async current(){const{name:e,startWith:t}=this.options;try{const t=await this.repo.read(e);return this.parse(t.current)}catch(r){if(r instanceof v){if(void 0===t)throw new o("Starting value is not defined for a non existing sequence");try{return this.parse(t)}catch(e){throw new o(`Failed to parse initial value for sequence ${t}: ${e}`)}}throw new o(`Failed to retrieve current value for sequence ${e}: ${r}`)}}parse(e){return fe.parseValue(this.options.type,e)}async increment(e,t){const{type:r,incrementBy:s,name:i}=this.options;let n;const a=t||s;if(a%s!==0)throw new o("Value to increment does not consider the incrementBy setting: "+s);switch(r){case"Number":n=this.parse(e)+a;break;case"BigInt":n=this.parse(e)+BigInt(a);break;case"String":n=this.parse(e);break;default:throw new o("Should never happen")}let c;const l=this.repo.override({ignoredValidationProperties:["updatedOn"]});try{c=await l.update(new Tt({id:i,current:n}))}catch(e){if(!(e instanceof v))throw e;c=await l.create(new Tt({id:i,current:n}))}return c.current}async next(){const e=await this.current();return this.increment(e)}async range(e){const t=await this.current(),r=this.parse(this.options.incrementBy),s=await this.increment(t,this.parse(e)*r),i=[];for(let s=1;e>=s;s++)i.push(t+r*this.parse(s));if(i[i.length-1]!==s&&"String"!==this.options.type)throw new o("Miscalculation of range");return i}}async function _t(e,t,r,s){const i=e.get("UUID");if(!i)throw new pe("This adapter does not support user identification");s[r]=i}const St="ram";class Nt extends he{constructor(e={},t){super(e,St,t),this.Context=Et,this.indexes={},this.lock=new K}repository(){return super.repository()}async flags(e,t,r){return Object.assign(await super.flags(e,t,r),{UUID:this.config.user||""+Date.now()})}async index(...e){return Promise.resolve(void 0)}prepare(e,t){const r=super.prepare(e,t);return delete r.record[t],r}revert(e,t,r,s){return super.revert(e,t,r,s)}async create(e,t,r){if(await this.lock.acquire(),this.client.has(e)||this.client.set(e,new Map),this.client.get(e)&&this.client.get(e)?.has(t))throw new O(`Record with id ${t} already exists in table ${e}`);return this.client.get(e)?.set(t,r),this.lock.release(),r}async read(e,t){if(!this.client.has(e))throw new v(`Table ${e} not found`);if(!this.client.get(e)?.has(t))throw new v(`Record with id ${t} not found in table ${e}`);return this.client.get(e)?.get(t)}async update(e,t,r){if(await this.lock.acquire(),!this.client.has(e))throw new v(`Table ${e} not found`);if(!this.client.get(e)?.has(t))throw new v(`Record with id ${t} not found in table ${e}`);return this.client.get(e)?.set(t,r),this.lock.release(),r}async delete(e,t){if(await this.lock.acquire(),!this.client.has(e))throw new v(`Table ${e} not found`);if(!this.client.get(e)?.has(t))throw new v(`Record with id ${t} not found in table ${e}`);const r=this.client.get(e)?.get(t);return this.client.get(e)?.delete(t),this.lock.release(),r}tableFor(e){"string"==typeof e&&(e=D.get(e));const t=Oe.table(e);return this.client.has(t)||this.client.set(t,new Map),this.client.get(t)}async raw(e){const{where:t,sort:r,limit:s,skip:i,from:n}=e;let{select:a}=e;const c=this.tableFor(n);if(!c)throw new o(`Table ${n} not found in RamAdapter`);const{id:l,props:d}=w(new n);let h=Array.from(c.entries()).map(([e,t])=>this.revert(t,n,l,fe.parseValue(d.type,e)));return h=t?h.filter(t):h,r&&(h=h.sort(r)),i&&(h=h.slice(i)),s&&(h=h.slice(0,s)),a&&(a=Array.isArray(a)?a:[a],h=h.map(e=>Object.entries(e).reduce((e,[t,r])=>(a.includes(t)&&(e[t]=r),e),{}))),h}parseError(e){return e instanceof P?e:new o(e)}Statement(){return new At(this)}async Sequence(e){return new Rt(e,this)}for(e,...t){this.proxies||(this.proxies={});const r=`${this.alias} - ${j(e)}`;if(r in this.proxies)return this.proxies[r];const s=new Proxy(this,{get:(t,r,s)=>{if("_config"===r){const i=Reflect.get(t,r,s);return Object.assign({},i,e)}return Reflect.get(t,r,s)}});return this.proxies[r]=s,s}static decoration(){super.decoration();const e=Oe.key(ee.CREATED_BY),t=Oe.key(ee.UPDATED_BY);$.flavouredAs(St).for(e).define(E(_t),F(e,{})).apply(),$.flavouredAs(St).for(t).define(A(_t),F(t,{})).apply()}getClient(){return new Map}}t.setRegistry(new Ee);const xt="##VERSION##",Pt="##PACKAGE##";V.registerLibrary(Pt,xt);export{he as Adapter,ie as AuthorizationError,lt as BaseModel,Pe as BigIntSequence,re as Cascade,me as Condition,ae as ConnectionError,ue as DefaultCascade,Ne as DefaultSequenceOptions,Te as Dispatch,ne as ForbiddenError,ye as GroupOperator,Ee as InjectablesRegistry,mt as MethodQueryBuilder,Se as NoneSequenceOptions,xe as NumericSequence,_e as ObserverError,oe as ObserverHandler,ge as Operator,wt as OperatorsMap,te as OrderDirection,Pt as PACKAGE_NAME,dt as Paginator,be as PagingError,ee as PersistenceKeys,gt as QueryClause,we as QueryError,Nt as RamAdapter,Oe as Repository,fe as Sequence,yt as Statement,pe as UnsupportedError,xt as VERSION,Ie as cacheModelForPopulate,qe as column,De as createOrUpdate,Je as createdAt,We as createdBy,Qe as createdByOnCreateUpdate,se as final,Ae as generateInjectableNameForRepository,le as getColumnName,Me as getPopulateKey,ce as getTableName,Ye as index,rt as manyToMany,tt as manyToOne,st as noValidateOn,it as noValidateOnCreate,at as noValidateOnCreateUpdate,nt as noValidateOnUpdate,et as oneToMany,je as oneToManyOnCreate,Le as oneToManyOnDelete,Be as oneToManyOnUpdate,Ke as oneToOne,ke as oneToOneOnCreate,Ce as oneToOneOnDelete,$e as oneToOneOnUpdate,ct as pk,ot as pkOnCreate,Fe as populate,vt as query,Re as repository,He as repositoryFromTypeMetadata,de as sequenceNameForModel,Ge as table,Ve as unique,ze as uniqueOnCreateUpdate,Ze as updatedAt,Xe as updatedBy,ve as uses};
1
+ import{InjectableRegistryImp as e,Injectables as t,inject as r,injectable as s}from"@decaf-ts/injectable-decorators";import{__decorate as a,__metadata as i}from"tslib";import{BadRequestError as n,InternalError as o,Repository as c,Context as l,DefaultRepositoryFlags as d,OperationKeys as u,modelToTransient as p,DBKeys as h,wrapMethodWithContext as f,enforceDBDecorators as g,ValidationError as y,findPrimaryKey as b,DefaultSeparator as m,BulkCrudOperationKeys as w,NotFoundError as v,ConflictError as O,onCreateUpdate as A,onCreate as E,timestamp as T,onUpdate as N,onDelete as _,afterAny as R,readonly as P}from"@decaf-ts/db-decorators";import{Model as D,ModelKeys as x,Decoration as k,DefaultFlavour as $,hashObj as j,required as L,sf as C,Validation as B,ValidationKeys as M,propMetadata as I,prop as F,type as U,list as H}from"@decaf-ts/decorator-validation";import{LoggedClass as G,Logging as Y}from"@decaf-ts/logging";import{Metadata as q,apply as z,metadata as V}from"@decaf-ts/decoration";import{apply as Q,metadata as W,Reflection as X}from"@decaf-ts/reflection";var J,Z,K;function ee(){return(e,t,r)=>{if(!r)throw Error("final decorator can only be used on methods");return r?.configurable&&(r.configurable=!1),r}}(e=>{e.INDEX="index",e.UNIQUE="unique",e.ADAPTER="adapter",e.INJECTABLE="decaf_{0}_adapter_for_{1}",e.TABLE="table",e.COLUMN="column",e.METADATA="__metadata",e.OWNERSHIP="ownership",e.CREATED_BY="ownership.created-by",e.UPDATED_BY="ownership.updated-by",e.RELATIONS="__relations",e.RELATION="relation",e.ONE_TO_ONE="relation.one-to-one",e.ONE_TO_MANY="relation.one-to-many",e.MANY_TO_ONE="relation.many-to-one",e.MANY_TO_MANY="relation.many-to-many",e.POPULATE="populate",e.NO_VALIDATE="no-validate"})(J||(J={}));class te extends n{constructor(e,t=te.name,r=401){super(e,t,r)}}class re extends te{constructor(e,t=re.name){super(e,t,403)}}class se extends o{constructor(e){super(e,se.name,503)}}class ae{constructor(){this.observers=[]}count(){return this.observers.length}observe(e,t){if(-1!==this.observers.map(e=>e.observer).indexOf(e))throw new o("Observer already registered");this.observers.push({observer:e,filter:t})}unObserve(e){const t=this.observers.map(e=>e.observer).indexOf(e);if(-1===t)throw new o("Failed to find Observer");this.observers.splice(t,1)}async updateObservers(e,t,r,s,...a){(await Promise.allSettled(this.observers.filter(a=>{const{filter:i}=a;if(!i)return!0;try{return i(t,r,s)}catch(t){return e.error(`Failed to filter observer ${a.observer.toString()}: ${t}`),!1}}).map(e=>{e.observer.refresh(t,r,s,...a)}))).forEach((t,r)=>{"rejected"===t.status&&e.error(`Failed to update observable ${this.observers[r].toString()}: ${t.reason}`)})}}function ie(e){const t=e instanceof D?e.constructor:e;return Reflect.getOwnMetadata(c.key(J.TABLE),t[x.ANCHOR]||t)||(e instanceof D?e.constructor.name:e.name)}function ne(e,t){return Reflect.getMetadata(c.key(J.COLUMN),e,t)||t}function oe(e,...t){return[ie(e),...t].join("_")}k.setFlavourResolver(e=>{try{return ce.flavourOf(D.isModel(e)?e.constructor:e)||ce.currentFlavour||$}catch(e){}try{return ce.currentFlavour||$}catch(e){return $}});class ce extends G{static{this._cache={}}get config(){return this._config}get alias(){return this._alias||this.flavour}repository(){if(!ce._baseRepository)throw new o("This should be overridden when necessary. Otherwise it will be replaced lazily");return ce._baseRepository}async shutdownProxies(e){if(this.proxies){if(e&&!(e in this.proxies))throw new o("No proxy found for "+e);if(e)try{await this.proxies[e].shutdown(),delete this.proxies[e]}catch(t){this.log.error(`Failed to shutdown proxied adapter ${e}: ${t}`)}else for(const e in this.proxies){try{await this.proxies[e].shutdown()}catch(t){this.log.error(`Failed to shutdown proxied adapter ${e}: ${t}`);continue}delete this.proxies[e]}}}async shutdown(){await this.shutdownProxies(),this.dispatch&&await this.dispatch.close()}constructor(e,t,r){if(super(),this._config=e,this.flavour=t,this._alias=r,this.Context=l,this.alias in ce._cache)throw new o(`${this.alias} persistence adapter ${this._alias?`(${this.flavour}) `:""} already registered`);ce._cache[this.alias]=this,this.log.info(`Created ${this.alias} persistence adapter ${this._alias?`(${this.flavour}) `:""} persistence adapter`),ce._currentFlavour||(this.log.verbose(`Defined ${this.alias} persistence adapter as current`),ce._currentFlavour=this.alias)}Dispatch(){return new ce._baseDispatch}ObserverHandler(){return new ae}isReserved(e){return!e}async initialize(...e){}async flags(e,t,r,...s){return Object.assign({},d,r,{affectedTables:ie(t),writeOperation:e!==u.READ,timestamp:new Date,operation:e,ignoredValidationProperties:q.validationExceptions(t,e)})}async context(e,t,r,...s){this.log.for(this.context).debug(`Creating new context for ${e} operation on ${r.name} model with flag overrides: ${JSON.stringify(t)}`);const a=await this.flags(e,r,t,...s);return(new this.Context).accumulate(a)}prepare(e,t){const r=this.log.for(this.prepare),s=p(e),a=Object.entries(s.model).reduce((t,[r,s])=>{if(void 0===s)return t;const a=ne(e,r);if(this.isReserved(a))throw new o(`Property name ${a} is reserved`);return t[a]=s,t},{});return e[J.METADATA]&&(r.silly("Passing along persistence metadata for "+e[J.METADATA]),Object.defineProperty(a,J.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:e[J.METADATA]})),{record:a,id:e[t],transient:s.transient}}revert(e,t,r,s,a){const i=this.log.for(this.revert),n={};n[r]=s;const c="string"==typeof t?D.build(n,t):new t(n);i.silly(`Rebuilding model ${c.constructor.name} id ${s}`);const l=e[J.METADATA],d=Object.keys(c).reduce((t,s)=>(s===r||(t[s]=e[ne(t,s)]),t),c);return a&&(i.verbose("re-adding transient properties: "+Object.keys(a).join(", ")),Object.entries(a).forEach(([e,t])=>{if(e in d)throw new o(`Transient property ${e} already exists on model ${c.constructor.name}. should be impossible`);d[e]=t})),l&&(i.silly(`Passing along ${this.flavour} persistence metadata for ${c.constructor.name} id ${s}: ${l}`),Object.defineProperty(d,J.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:l})),d}async createAll(e,t,r,...s){if(t.length!==r.length)throw new o("Ids and models must have the same length");const a=this.log.for(this.createAll);return a.verbose(`Creating ${t.length} entries ${e} table`),a.debug("pks: "+t),Promise.all(t.map((t,a)=>this.create(e,t,r[a],...s)))}async readAll(e,t,...r){const s=this.log.for(this.readAll);return s.verbose(`Reading ${t.length} entries ${e} table`),s.debug("pks: "+t),Promise.all(t.map(t=>this.read(e,t,...r)))}async updateAll(e,t,r,...s){if(t.length!==r.length)throw new o("Ids and models must have the same length");const a=this.log.for(this.updateAll);return a.verbose(`Updating ${t.length} entries ${e} table`),a.debug("pks: "+t),Promise.all(t.map((t,a)=>this.update(e,t,r[a],...s)))}async deleteAll(e,t,...r){const s=this.log.for(this.createAll);return s.verbose(`Deleting ${t.length} entries ${e} table`),s.debug("pks: "+t),Promise.all(t.map(t=>this.delete(e,t,...r)))}observe(e,t){this.observerHandler||Object.defineProperty(this,"observerHandler",{value:this.ObserverHandler(),writable:!1}),this.observerHandler.observe(e,t),this.log.for(this.observe).verbose("Registering new observer "+e.toString()),this.dispatch||(this.log.for(this.observe).info("Creating dispatch for "+this.alias),this.dispatch=this.Dispatch(),this.dispatch.observe(this))}unObserve(e){if(!this.observerHandler)throw new o("ObserverHandler not initialized. Did you register any observables?");this.observerHandler.unObserve(e),this.log.for(this.unObserve).verbose(`Observer ${e.toString()} removed`)}async updateObservers(e,t,r,...s){if(!this.observerHandler)throw new o("ObserverHandler not initialized. Did you register any observables?");this.log.for(this.updateObservers).verbose(`Updating ${this.observerHandler.count()} observers for adapter ${this.alias}`),await this.observerHandler.updateObservers(this.log,e,t,r,...s)}async refresh(e,t,r,...s){return this.updateObservers(e,t,r,...s)}toString(){return this.flavour+" persistence Adapter"}static flavourOf(e){return Reflect.getMetadata(this.key(J.ADAPTER),e)||this.current?.flavour}static get currentFlavour(){if(!ce._currentFlavour)throw new o("No persistence flavour set. Please initialize your adapter");return ce._currentFlavour}static get current(){return ce.get(this.currentFlavour)}static get(e){if(!e)return ce.get(this._currentFlavour);if(e in this._cache)return this._cache[e];throw new o(`No Adapter registered under ${e}.`)}static setCurrent(e){this._currentFlavour=e}static key(e){return c.key(e)}static models(e){try{const t=D.getRegistry().cache,r=Object.values(t).map(t=>{let r=Reflect.getMetadata(ce.key(J.ADAPTER),t);if(r&&r===e)return t;if(!r){if(!Reflect.getMetadata(c.key(h.REPOSITORY),t))return;const e=this._baseRepository.forModel(t);return r=Reflect.getMetadata(ce.key(J.ADAPTER),e),r}}).filter(e=>!!e);return r}catch(e){throw new o(e)}}static decoration(){}get client(){return this._client||(this._client=this.getClient()),this._client}for(e,...t){this.proxies||(this.proxies={});const r=`${this.alias} - ${j(e)}`;if(r in this.proxies)return this.proxies[r];let s;const a=new Proxy(this,{get:(t,r,a)=>{if("_config"===r){const s=Reflect.get(t,r,a);return Object.assign({},s,e)}return"_client"===r?s:Reflect.get(t,r,a)},set:(e,t,r,a)=>"_client"===t?(s=r,!0):Reflect.set(e,t,r,a)});return this.proxies[r]=a,a}}a([ee(),i("design:type",Function),i("design:paramtypes",[String]),i("design:returntype",Promise)],ce.prototype,"shutdownProxies",null),a([ee(),i("design:type",Function),i("design:paramtypes",[String,Object,Object,Object]),i("design:returntype",Promise)],ce.prototype,"context",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Object,Function]),i("design:returntype",void 0)],ce.prototype,"observe",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",void 0)],ce.prototype,"unObserve",null),a([ee(),i("design:type",Object),i("design:paramtypes",[])],ce.prototype,"client",null),(e=>{e.ASC="asc",e.DSC="desc"})(Z||(Z={})),(e=>{e.CASCADE="cascade",e.NONE="none"})(K||(K={}));const le={update:K.CASCADE,delete:K.NONE};class de extends o{constructor(e){super(e,de.name,500)}}class ue{get log(){return this.logger||(this.logger=Y.for(this)),this.logger}constructor(e){this.options=e}static pk(e){return oe(e,"pk")}static parseValue(e,t){switch(e){case"Number":return"string"==typeof t?parseInt(t):"number"==typeof t?t:BigInt(t);case"BigInt":return BigInt(t);case void 0:case"String":return t;default:throw new de(`Unsupported sequence type: ${e} for adapter ${this}`)}}}var pe,he;(e=>{e.EQUAL="EQUAL",e.DIFFERENT="DIFFERENT",e.BIGGER="BIGGER",e.BIGGER_EQ="BIGGER_EQ",e.SMALLER="SMALLER",e.SMALLER_EQ="SMALLER_EQ",e.NOT="NOT",e.IN="IN",e.REGEXP="REGEXP"})(pe||(pe={})),(e=>{e.AND="AND",e.OR="OR"})(he||(he={}));class fe extends o{constructor(e){super(e,fe.name,500)}}class ge extends o{constructor(e){super(e,ge.name,500)}}class ye extends D{constructor(e,t,r){super(),this.attr1=void 0,this.operator=void 0,this.comparison=void 0,this.attr1=e,this.operator=t,this.comparison=r}and(e){return ye.and(this,e)}or(e){return ye.or(this,e)}not(e){return new ye(this,pe.NOT,e)}hasErrors(...e){const t=()=>{const e=`Invalid operator ${this.operator}}`;if("string"==typeof this.attr1){if(this.comparison instanceof ye)return{comparison:{condition:"Both sides of the comparison must be of the same type"}};if(-1===Object.values(pe).indexOf(this.operator))return{operator:{condition:e}}}if(this.attr1 instanceof ye){if(!(this.comparison instanceof ye)&&this.operator!==pe.NOT)return{comparison:{condition:e}};if(-1===Object.values(he).indexOf(this.operator)&&this.operator!==pe.NOT)return{operator:{condition:e}}}},r=super.hasErrors(...e);return this.isAsync()?(async()=>await Promise.resolve(r)??t())():r??t()}static and(e,t){return ye.group(e,he.AND,t)}static or(e,t){return ye.group(e,he.OR,t)}static group(e,t,r){return new ye(e,t,r)}static attribute(e){return(new ye.Builder).attribute(e)}static attr(e){return this.attribute(e)}static{this.Builder=class{constructor(){this.attr1=void 0,this.operator=void 0,this.comparison=void 0}attribute(e){return this.attr1=e,this}attr(e){return this.attribute(e)}eq(e){return this.setOp(pe.EQUAL,e)}dif(e){return this.setOp(pe.DIFFERENT,e)}gt(e){return this.setOp(pe.BIGGER,e)}lt(e){return this.setOp(pe.SMALLER,e)}gte(e){return this.setOp(pe.BIGGER_EQ,e)}lte(e){return this.setOp(pe.SMALLER_EQ,e)}in(e){return this.setOp(pe.IN,e)}regexp(e){return this.setOp(pe.REGEXP,RegExp(e).source)}setOp(e,t){return this.operator=e,this.comparison=t,this.build()}build(){try{return new ye(this.attr1,this.operator,this.comparison)}catch(e){throw new fe(e)}}}}static builder(){return new ye.Builder}}function be(e){return t=>Q(W(ce.key(J.ADAPTER),e))(t)}a([L(),i("design:type",Object)],ye.prototype,"attr1",void 0),a([L(),i("design:type",String)],ye.prototype,"operator",void 0),a([L(),i("design:type",Object)],ye.prototype,"comparison",void 0);class me extends c{static{this._cache={}}get log(){return this.logger||(this.logger=this.adapter.log.for(this.toString())),this.logger}get adapter(){if(!this._adapter)throw new o("No adapter found for this repository. did you use the @uses decorator or pass it in the constructor?");return this._adapter}get tableName(){return this._tableName||(this._tableName=me.table(this.class)),this._tableName}get pkProps(){return super.pkProps}constructor(e,t,...r){if(super(t),this.observers=[],e&&(this._adapter=e),t&&(me.register(t,this,this.adapter.alias),e)){const r=Reflect.getMetadata(ce.key(J.ADAPTER),t);if(r&&r!==e.flavour)throw new o("Incompatible flavours");be(e.flavour)(t)}[this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(e=>{const t=e.name;f(this,this[t+"Prefix"],e,this[t+"Suffix"])})}override(e){return this.log.for(this.override).debug("Overriding repository flags with "+JSON.stringify(e)),new Proxy(this,{get:(t,r,s)=>{const a=Reflect.get(t,r,s);return"_overrides"!==r?a:Object.assign({},a,e)}})}for(e,...t){return new Proxy(this,{get:(r,s,a)=>"adapter"===s?this.adapter.for(e,...t):Reflect.get(r,s,a)})}ObserverHandler(){return new ae}async createPrefix(e,...t){const r=await l.args(u.CREATE,this.class,t,this.adapter,this._overrides||{});e=new this.class(e),await g(this,r.context,e,u.CREATE,u.ON);const s=await Promise.resolve(e.hasErrors(...r.context.get("ignoredValidationProperties")||[]));if(s)throw new y(s.toString());return[e,...r.args]}async create(e,...t){let r,{record:s,id:a,transient:i}=this.adapter.prepare(e,this.pk);return s=await this.adapter.create(this.tableName,a,s,...t),t.length&&(r=t[t.length-1]),this.adapter.revert(s,this.class,this.pk,a,r&&r.get("rebuildWithTransient")?i:void 0)}async createSuffix(e,t){return super.createSuffix(e,t)}async createAll(e,...t){if(!e.length)return e;const r=e.map(e=>this.adapter.prepare(e,this.pk)),s=r.map(e=>e.id);let a=r.map(e=>e.record);return a=await this.adapter.createAll(this.tableName,s,a,...t),a.map((e,t)=>this.adapter.revert(e,this.class,this.pk,s[t]))}async createAllPrefix(e,...t){const r=await l.args(u.CREATE,this.class,t,this.adapter,this._overrides||{});if(!e.length)return[e,...r.args];const s=me.getSequenceOptions(e[0]);let a=[];s.type?(s.name||(s.name=ue.pk(e[0])),a=await(await this.adapter.Sequence(s)).range(e.length)):a=e.map((e,t)=>{if(void 0===e[this.pk])throw new o("Primary key is not defined for model in position "+t);return e[this.pk]}),e=await Promise.all(e.map(async(e,t)=>(e=new this.class(e),s.type&&(e[this.pk]="String"!==s.type||s.generated?a[t]:""+e[this.pk]),await g(this,r.context,e,u.CREATE,u.ON),e)));const i=r.context.get("ignoredValidationProperties")||[],n=(await Promise.all(e.map(e=>Promise.resolve(e.hasErrors(...i))))).reduce((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e),void 0);if(n)throw new y(n);return[e,...r.args]}async readPrefix(e,...t){const r=await l.args(u.READ,this.class,t,this.adapter,this._overrides||{}),s=new this.class;return s[this.pk]=e,await g(this,r.context,s,u.READ,u.ON),[e,...r.args]}async read(e,...t){const r=await this.adapter.read(this.tableName,e,...t);return this.adapter.revert(r,this.class,this.pk,e)}async readAllPrefix(e,...t){const r=await l.args(u.READ,this.class,t,this.adapter,this._overrides||{});return await Promise.all(e.map(async e=>{const t=new this.class;return t[this.pk]=e,g(this,r.context,t,u.READ,u.ON)})),[e,...r.args]}async readAll(e,...t){return(await this.adapter.readAll(this.tableName,e,...t)).map((t,r)=>this.adapter.revert(t,this.class,this.pk,e[r]))}async update(e,...t){let{record:r,id:s,transient:a}=this.adapter.prepare(e,this.pk);return r=await this.adapter.update(this.tableName,s,r,...t),this.adapter.revert(r,this.class,this.pk,s,a)}async updatePrefix(e,...t){const r=await l.args(u.UPDATE,this.class,t,this.adapter,this._overrides||{}),s=e[this.pk];if(!s)throw new o("No value for the Id is defined under the property "+this.pk);const a=await this.read(s,...r.args);e=this.merge(a,e),await g(this,r.context,e,u.UPDATE,u.ON,a);const i=await Promise.resolve(e.hasErrors(a,...me.relations(this.class),...r.context.get("ignoredValidationProperties")||[]));if(i)throw new y(i.toString());return me.getMetadata(a)&&(me.getMetadata(e)||me.setMetadata(e,me.getMetadata(a))),[e,...r.args]}async updateAll(e,...t){const r=e.map(e=>this.adapter.prepare(e,this.pk));return(await this.adapter.updateAll(this.tableName,r.map(e=>e.id),r.map(e=>e.record),...t)).map((e,t)=>this.adapter.revert(e,this.class,this.pk,r[t].id))}async updateAllPrefix(e,...t){const r=await l.args(u.UPDATE,this.class,t,this.adapter,this._overrides||{}),s=e.map(e=>{const t=e[this.pk];if(!t)throw new o("missing id on update operation");return t}),a=await this.readAll(s,...r.args);e=e.map((e,t)=>(e=this.merge(a[t],e),me.getMetadata(a[t])&&(me.getMetadata(e)||me.setMetadata(e,me.getMetadata(a[t]))),e)),await Promise.all(e.map((e,t)=>g(this,r.context,e,u.UPDATE,u.ON,a[t])));const i=r.context.get("ignoredValidationProperties")||[],n=(await Promise.all(e.map((e,t)=>Promise.resolve(e.hasErrors(a[t],e,...i))))).reduce((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e),void 0);if(n)throw new y(n);return e.forEach((e,t)=>{me.getMetadata(a[t])&&(me.getMetadata(e)||me.setMetadata(e,me.getMetadata(a[t])))}),[e,...r.args]}async deletePrefix(e,...t){const r=await l.args(u.DELETE,this.class,t,this.adapter,this._overrides||{}),s=await this.read(e,...r.args);return await g(this,r.context,s,u.DELETE,u.ON),[e,...r.args]}async delete(e,...t){const r=await this.adapter.delete(this.tableName,e,...t);return this.adapter.revert(r,this.class,this.pk,e)}async deleteAllPrefix(e,...t){const r=await l.args(u.DELETE,this.class,t,this.adapter,this._overrides||{}),s=await this.readAll(e,...r.args);return await Promise.all(s.map(async e=>g(this,r.context,e,u.DELETE,u.ON))),[e,...r.args]}async deleteAll(e,...t){return(await this.adapter.deleteAll(this.tableName,e,...t)).map((t,r)=>this.adapter.revert(t,this.class,this.pk,e[r]))}select(e){return this.adapter.Statement().select(e).from(this.class)}async query(e,t,r=Z.ASC,s,a){const i=[t,r],n=this.select().where(e).orderBy(i);return s&&n.limit(s),a&&n.offset(a),n.execute()}attr(e){return ye.attr(e)}observe(e,t){this.observerHandler||Object.defineProperty(this,"observerHandler",{value:this.ObserverHandler(),writable:!1});const r=this.log.for(this.observe),s=me.table(this.class);this.adapter.observe(this,e=>s===e),r.verbose(`now observing ${this.adapter} filtering on table === ${s}`),this.observerHandler.observe(e,t),r.verbose("Registered new observer "+e.toString())}unObserve(e){if(!this.observerHandler)throw new o("ObserverHandler not initialized. Did you register any observables?");this.observerHandler.unObserve(e),this.log.for(this.unObserve).verbose(`Observer ${e.toString()} removed`),this.observerHandler.count()||(this.log.verbose(`No more observers registered for ${this.adapter}, unsubscribing`),this.adapter.unObserve(this),this.log.verbose("No longer observing adapter "+this.adapter.flavour))}async updateObservers(e,t,r,...s){if(!this.observerHandler)throw new o("ObserverHandler not initialized. Did you register any observables?");this.log.for(this.updateObservers).verbose(`Updating ${this.observerHandler.count()} observers for ${this}`),await this.observerHandler.updateObservers(this.log,e,t,Array.isArray(r)?r.map(e=>ue.parseValue(this.pkProps.type,e)):ue.parseValue(this.pkProps.type,r),...s)}async refresh(e,t,r,...s){return this.updateObservers(e,t,r,...s)}static forModel(e,t,...r){let s;const a=t||Reflect.getMetadata(ce.key(J.ADAPTER),e)||ce.currentFlavour;try{s=this.get(e,a)}catch(e){s=void 0}if(s instanceof me)return s;const i=t||Reflect.getMetadata(ce.key(J.ADAPTER),e)||s&&Reflect.getMetadata(ce.key(J.ADAPTER),s)||ce.currentFlavour,n=i?ce.get(i):void 0;if(!n)throw new o("No registered persistence adapter found flavour "+i);return s=s||n.repository(),new s(n,e,...r)}static get(e,t){const r=me.table(e);let s=r;if(t&&(s=[r,t].join(m)),s in this._cache)return this._cache[s];if(r in this._cache)return this._cache[r];throw new o("Could not find repository registered under "+r)}static register(e,t,r){let s=me.table(e);if(r&&(s=[s,r].join(m)),s in this._cache&&this._cache[s]instanceof me)throw new o(s+" already has a registered instance");this._cache[s]=t}static setMetadata(e,t){Object.defineProperty(e,J.METADATA,{enumerable:!1,configurable:!0,writable:!1,value:t})}static getMetadata(e){const t=Object.getOwnPropertyDescriptor(e,J.METADATA);return t?t.value:void 0}static removeMetadata(e){Object.getOwnPropertyDescriptor(e,J.METADATA)&&delete e[J.METADATA]}static getSequenceOptions(e){const t=b(e).id,r=Reflect.getMetadata(me.key(h.ID),e,t);if(!r)throw new o("No sequence options defined for model. did you use the @pk decorator?");return r}static indexes(e){const t=X.getAllPropertyDecorators(e instanceof D?e:new e,h.REFLECT);return Object.entries(t||{}).reduce((e,[t,r])=>{const s=r.filter(e=>e.key.startsWith(J.INDEX));if(s&&s.length)for(const r of s){const{key:s,props:a}=r;e[t]=e[t]||{},e[t][s]=a}return e},{})}static relations(e){const t=[];let r=e instanceof D?Object.getPrototypeOf(e):e.prototype;for(;null!=r;){const e=r[J.RELATIONS];e&&t.push(...e),r=Object.getPrototypeOf(r)}return t}static table(e){return ie(e)}static column(e,t){return ne(e,t)}}function we(e,t){if(!t){const r=ce.key(J.ADAPTER);if(!(t=Reflect.getMetadata(r,e instanceof D?e.constructor:e)))throw new o("Could not retrieve flavour from model "+(e instanceof D?e.constructor.name:e.name))}return C(J.INJECTABLE,t,ie(e))}a([ee(),i("design:type",Function),i("design:paramtypes",[Object,Function]),i("design:returntype",void 0)],me.prototype,"observe",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",void 0)],me.prototype,"unObserve",null),ce&&(ce._baseRepository=me);class ve extends e{get log(){return this.logger||(this.logger=Y.for(this)),this.logger}constructor(){super()}get(e,r){const s=this.log.for(this.get);let a;try{a=super.get(e)}catch{}if(!a){let i;if("function"==typeof e?i=e:"symbol"!=typeof e&&"string"!=typeof e||(i=D.get(e.toString())),!i)return;const n=ce.key(J.ADAPTER),o=r||Reflect.getMetadata(n,i);try{let e=o;try{o&&ce.get(o)}catch{const t=ce.current;t&&t.flavour===o&&(e=t.alias)}if(a=me.forModel(i,e),a instanceof me)return a;const r=o||Reflect.getMetadata(n,a.constructor)||Reflect.getMetadata(n,i);t.register(a,we(i,r))}catch(e){s.debug("No registered repository or adapter found. falling back to default adapter. Error: "+(e?.message||JSON.stringify(e)));const t=me.get(i,o);if("function"==typeof t){const e=o?ce.get(o):ce.current;if(!e)return;return new t(e,i)}}}return a}}class Oe extends G{constructor(){super()}async initialize(){if(!this.adapter)return void this.log.verbose("No adapter observed for dispatch; skipping initialization");const e=this.adapter;[u.CREATE,u.UPDATE,u.DELETE,w.CREATE_ALL,w.UPDATE_ALL,w.DELETE_ALL].forEach(t=>{if(!e[t])throw new o(`Method ${t} not found in ${e.alias} adapter to bind Observables Dispatch`);let r=Object.getOwnPropertyDescriptor(e,t),s=e;for(;!r&&s!==Object.prototype;)s=Object.getPrototypeOf(s),r=Object.getOwnPropertyDescriptor(s,t);r&&r.writable?e[t]=new Proxy(e[t],{apply:async(e,r,s)=>{const[a,i]=s,n=await e.apply(r,s);return this.updateObservers(a,(e=>{switch(e){case w.CREATE_ALL:return u.CREATE;case w.UPDATE_ALL:return u.UPDATE;case w.DELETE_ALL:return u.DELETE;default:return e}})(t),i).then(()=>{this.log.verbose(`Observer refresh dispatched by ${t} for ${a}`),this.log.debug("pks: "+i)}).catch(e=>this.log.error(`Failed to dispatch observer refresh for ${t} on ${a}: ${e}`)),n}}):this.log.error(`Could not find method ${t} to bind Observables Dispatch`)})}async close(){}observe(e){if(!(e instanceof ce))throw new de("Only Adapters can be observed by dispatch");this.adapter=e,this.models=ce.models(this.adapter.alias),this.initialize().then(()=>this.log.verbose(`Dispatch initialized for ${this.adapter.alias} adapter`))}unObserve(e){if(this.adapter!==e)throw new de("Only the adapter that was used to observe can be unobserved");this.adapter=void 0}async updateObservers(e,t,r){if(this.adapter)try{await this.adapter.refresh(e,t,r)}catch(e){throw new o("Failed to refresh dispatch: "+e)}else this.log.verbose(`No adapter observed for dispatch; skipping observer update for ${e}:${t}`)}}function Ae(e,t){return(a,i)=>i?r(e[x.ANCHOR]||e)(a,i):(W(me.key(h.REPOSITORY),a.name)(e),t=t||Reflect.getMetadata(ce.key(J.ADAPTER),a),me.register(e[x.ANCHOR]||e,a,t),s(e[x.ANCHOR]||e,{callback:t=>(Object.defineProperty(t,h.CLASS,{enumerable:!1,configurable:!1,writable:!1,value:e}),t)})(a))}ce&&(ce._baseDispatch=Oe),q.validationExceptions=((e,t)=>{const r=q.get(e,J.NO_VALIDATE);return r?Object.entries(r).filter(([,e])=>e.includes(t)).map(([e])=>e):[]}).bind(q);class Ee extends o{constructor(e){super(e,Ee.name,500)}}const Te={type:void 0,generated:!1,startWith:0,incrementBy:1,cycle:!1},Ne=Te,_e={type:"Number",generated:!0,startWith:0,incrementBy:1,cycle:!1},Re=Object.assign({},_e,{type:"BigInt"});async function Pe(e,t,r,s){if(!s){const t=D.get(e.constructor.name);if(!t)throw new o("Could not find model "+e.constructor.name);s=me.forModel(t,r)}if(void 0===e[s.pk])return s.create(e,t);try{return s.update(e,t)}catch(r){if(!(r instanceof v))throw r;return s.create(e,t)}}async function De(e,t,r,s){const a=s[r];if(!a)return;if("object"!=typeof a){const t=Ie(s,r,this.adapter.alias),i=await t.read(a);return await Ce(e,s,r,a,i),void(s[r]=a)}t.class="string"==typeof t.class?t.class:t.class().name;const i=D.get(t.class);if(!i)throw new o("Could not find model "+t.class);const n=me.forModel(i,this.adapter.alias),c=await n.create(a),l=b(c).id;await Ce(e,s,r,c[l],c),s[r]=c[l]}async function Se(e,t,r,s){const a=s[r];if(!a)return;if(t.cascade.update!==K.CASCADE)return;if("object"!=typeof a){const t=Ie(s,r,this.adapter.alias),i=await t.read(a);return await Ce(e,s,r,a,i),void(s[r]=a)}const i=await Pe(s[r],e,this.adapter.alias),n=b(i).id;await Ce(e,s,r,i[n],i),s[r]=i[n]}async function xe(e,t,r,s){const a=s[r];if(!a)return;if(t.cascade.update!==K.CASCADE)return;const i=Ie(s,r,this.adapter.alias);let n;n=a instanceof D?await i.delete(s[r][i.pk]):await i.delete(s[r]),await Ce(e,s,r,n[i.pk],n)}async function ke(e,t,r,s){const a=s[r];if(!a||!a.length)return;const i=typeof a[0];if(!a.every(e=>typeof e===i))throw new o(`Invalid operation. All elements of property ${r} must match the same type.`);const n=new Set([...a]);if("object"!==i){const t=Ie(s,r,this.adapter.alias);for(const a of n){const i=await t.read(a);await Ce(e,s,r,a,i)}return void(s[r]=[...n])}const c=b(a[0]).id,l=new Set;for(const t of a){const a=await Pe(t,e,this.adapter.alias);await Ce(e,s,r,a[c],a),l.add(a[c])}s[r]=[...l]}async function $e(e,t,r,s){const{cascade:a}=t;if(a.update===K.CASCADE)return ke.call(this,e,t,r,s)}async function je(e,t,r,s){if(t.cascade.delete!==K.CASCADE)return;const a=s[r];if(!a||!a.length)return;const i=typeof a[0];if(!a.every(e=>typeof e===i))throw new o(`Invalid operation. All elements of property ${r} must match the same type.`);const n="object"===i,c=n?me.forModel(a[0],this.adapter.alias):Ie(s,r,this.adapter.alias),l=new Set([...n?a.map(e=>e[c.pk]):a]);for(const t of l.values()){const a=await c.delete(t);await Ce(e,s,r,t,a)}s[r]=[...l]}function Le(e,t,r){return[J.POPULATE,e,t,r].join(".")}async function Ce(e,t,r,s,a){const i=Le(t.constructor.name,r,s);return e.accumulate({[i]:a})}async function Be(e,t,r,s){if(!t.populate)return;const a=s[r],i=Array.isArray(a);if(void 0===a||i&&0===a.length)return;const n=await(async(e,t,r,s,a)=>{let i,n;const c=[];for(const l of s){i=Le(t.constructor.name,r,l);try{n=await e.get(i)}catch(e){const s=Ie(t,r,a);if(!s)throw new o("Could not find repo");n=await s.read(l)}c.push(n)}return c})(e,s,r,i?a:[a],this.adapter.alias);s[r]=i?n:n[0]}const Me=["array","string","number","boolean","symbol","function","object","undefined","null","bigint"];function Ie(e,t,r){const s=Reflect.getMetadata(B.key(Array.isArray(e[t])?M.LIST:M.TYPE),e,t),a=Array.isArray(e[t])?s.clazz:s.customTypes;if(!s||!a)throw new o("Failed to find types decorators for property "+t);const i=(Array.isArray(a)?[...a]:[a]).map(e=>"function"==typeof e?e():e).find(e=>!Me.includes((""+e).toLowerCase()));if(!i)throw new o(`Property key ${t} does not have a valid constructor type`);const n=D.get(i);if(!n)throw new o("No registered model found for "+i);return me.forModel(n,r)}function Fe(e){return t=>{const r=ce.key(J.TABLE);return k.for(r).define({decorator:W,args:[r,e||t.name.toLowerCase()]}).apply()(t)}}function Ue(e){const t=ce.key(J.COLUMN);return k.for(t).define({decorator:(e,t)=>(r,s)=>I(e,t||s)(r,s),args:[t,e]}).apply()}function He(e,t,r){return k.for(J.INDEX).define({decorator:(e,t,r)=>("string"==typeof e&&(r=e,e=void 0,t=void 0),"string"==typeof t&&(r=t,t=void 0),!t&&e&&e.find(e=>![Z.ASC,Z.DSC].includes(e))&&(t=e,e=void 0),I(me.key(`${J.INDEX}${t&&t.length?"."+t.join("."):""}`),{directions:e,compositions:t,name:r})),args:[e,t,r]}).apply()}async function Ge(e,t,r,s){if(s[r]&&(await this.select().where(ye.attribute(r).eq(s[r])).execute()).length)throw new O(`model already exists with property ${r} equal to ${JSON.stringify(s[r],void 0,2)}`)}function Ye(){const e=me.key(J.UNIQUE);return k.for(e).define(A(Ge),I(e,{})).apply()}async function qe(e,t,r,s){throw new te("This adapter does not support user identification")}function ze(){const e=me.key(J.CREATED_BY);return k.for(e).define(E(qe),I(e,{})).apply()}function Ve(){const e=me.key(J.UPDATED_BY);return k.for(e).define(A(qe),I(e,{})).apply()}function Qe(){return T([u.CREATE])}function We(){return T()}function Xe(e,t=le,r=!0,s,a){const i=me.key(J.ONE_TO_ONE);return k.for(i).define({decorator:(e,t,r,s,a)=>{const n={class:e.name?e.name:e,cascade:t,populate:r};return s&&(n.joinTable=s),a&&(n.name=a),Q(F(J.RELATIONS),U([e.name?e.name:e,String.name,Number.name,BigInt.name]),E(De,n),N(Se,n),_(xe,n),R(Be,n),I(i,n))},args:[e,t,r,s,a]}).apply()}function Je(e,t=le,r=!0,s,a){const i=me.key(J.ONE_TO_MANY);return k.for(i).define({decorator:(e,t,r,s,a)=>{const n={class:e.name?e.name:e,cascade:t,populate:r};return s&&(n.joinTable=s),a&&(n.name=a),Q(F(J.RELATIONS),H([e,String,Number,BigInt]),E(ke,n),N($e,n),_(je,n),R(Be,n),I(i,n))},args:[e,t,r,s,a]}).apply()}function Ze(e,t=le,r=!0,s,a){const i=me.key(J.MANY_TO_ONE);return k.for(i).define({decorator:(e,t,r,s,a)=>{const n={class:e?.name?e.name:e,cascade:t,populate:r};return s&&(n.joinTable=s),a&&(n.name=a),Q(F(J.RELATIONS),U([()=>(e?.name?e:e()).name,String.name,Number.name,BigInt.name]),I(i,n))},args:[e,t,r,s,a]}).apply()}function Ke(e,t=le,r=!0,s,a){const i=me.key(J.MANY_TO_MANY);return k.for(i).define({decorator:(e,t,r,s,a)=>{const n={class:e.name?e.name:e,cascade:t,populate:r};return s&&(n.joinTable=s),a&&(n.name=a),Q(F(J.RELATIONS),H([e.name?e.name:e,String.name,Number.name,BigInt.name]),I(i,n))},args:[e,t,r,s,a]}).apply()}function et(...e){return(t,r)=>{const s=q.get(t,q.key(J.NO_VALIDATE,r))||[],a=[...new Set([...s,...e])];return z(V(q.key(J.NO_VALIDATE,r),a))(t,r)}}function tt(){return et(u.CREATE)}function rt(){return et(u.UPDATE)}function st(){return et(u.UPDATE,u.CREATE)}async function at(e,t,r,s){if(!t.type||!t.generated||s[r])return;let a;t.name||(t.name=oe(s,"pk"));try{a=await this.adapter.Sequence(t)}catch(e){throw new o(`Failed to instantiate Sequence ${t.name}: ${e}`)}const i=await a.next();Object.defineProperty(s,r,{enumerable:!0,writable:!1,configurable:!0,value:i})}function it(e=Ne){e=Object.assign({},Ne,e,{generated:!(!e.type||void 0!==e.generated)||e.generated||Ne.generated});const t=me.key(h.ID);return k.for(t).define({decorator:(e,r)=>(s,a)=>Q(He([Z.ASC,Z.DSC]),L(),P(),I(t,e),E(at,e,r),I(h.ID,a))(s,a),args:[e,{priority:60}]}).apply()}class nt extends D{constructor(e){super(e)}}a([Qe(),i("design:type",Date)],nt.prototype,"createdOn",void 0),a([We(),i("design:type",Date)],nt.prototype,"updatedOn",void 0);class ot{get current(){return this._currentPage}get total(){return this._totalPages}get count(){return this._recordCount}get statement(){return this._statement||(this._statement=this.prepare(this.query)),this._statement}constructor(e,t,r,s){this.adapter=e,this.query=t,this.size=r,this.clazz=s}async next(){return this.page(this.current+1)}async previous(){return this.page(this.current-1)}validatePage(e){if(1>e||!Number.isInteger(e))throw new ge("Page number cannot be under 1 and must be an integer");if(void 0!==this._totalPages&&e>this._totalPages)throw new ge(`Only ${this._totalPages} are available. Cannot go to page ${e}`);return e}}var ct,lt,dt,ut,pt;class ht extends G{constructor(e){super(),this.adapter=e}get log(){return this.adapter.log.for(ht)}select(e){return Object.defineProperty(this,"selectSelector",{value:e,writable:!1}),this}distinct(e){return this.distinctSelector=e,this}max(e){return this.maxSelector=e,this}min(e){return this.minSelector=e,this}count(e){return this.countSelector=e,this}from(e){if(this.fromSelector="string"==typeof e?D.get(e):e,!this.fromSelector)throw new fe("Could not find selector model: "+e);return this}where(e){return this.whereCondition=e,this}orderBy(e){return this.orderBySelector=e,this}groupBy(e){return this.groupBySelector=e,this}limit(e){return this.limitSelector=e,this}offset(e){return this.offsetSelector=e,this}async execute(){try{const e=this.build();return await this.raw(e)}catch(e){throw new o(e)}}async raw(e){const t=await this.adapter.raw(e);if(!this.selectSelector)return t;const r=b(new this.fromSelector).id,s=function(e){const t=e[r];return this.adapter.revert(e,this.fromSelector,r,t)}.bind(this);return Array.isArray(t)?t.map(s):s(t)}}a([ee(),i("design:type",Function),i("design:paramtypes",[Array]),i("design:returntype",Object)],ht.prototype,"select",null),a([ee(),i("design:type",Function),i("design:paramtypes",["function"==typeof(ct="undefined"!=typeof S&&S)?ct:Object]),i("design:returntype",Object)],ht.prototype,"distinct",null),a([ee(),i("design:type",Function),i("design:paramtypes",["function"==typeof(lt="undefined"!=typeof S&&S)?lt:Object]),i("design:returntype",Object)],ht.prototype,"max",null),a([ee(),i("design:type",Function),i("design:paramtypes",["function"==typeof(dt="undefined"!=typeof S&&S)?dt:Object]),i("design:returntype",Object)],ht.prototype,"min",null),a([ee(),i("design:type",Function),i("design:paramtypes",["function"==typeof(ut="undefined"!=typeof S&&S)?ut:Object]),i("design:returntype",Object)],ht.prototype,"count",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",Object)],ht.prototype,"from",null),a([ee(),i("design:type",Function),i("design:paramtypes",[ye]),i("design:returntype",Object)],ht.prototype,"where",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Array]),i("design:returntype",Object)],ht.prototype,"orderBy",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",Object)],ht.prototype,"groupBy",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Number]),i("design:returntype",Object)],ht.prototype,"limit",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Number]),i("design:returntype",Object)],ht.prototype,"offset",null),a([ee(),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",Promise)],ht.prototype,"execute",null),(e=>{e.FIND_BY="findBy",e.SELECT="Select",e.AND="And",e.OR="Or",e.GROUP_BY="GroupBy",e.ORDER_BY="OrderBy",e.THEN="Then",e.THEN_BY="ThenBy"})(pt||(pt={}));const ft={Equals:(e,t)=>ye.attribute(e).eq(t),Diff:(e,t)=>ye.attribute(e).dif(t),LessThan:(e,t)=>ye.attribute(e).lt(t),LessThanEqual:(e,t)=>ye.attribute(e).lte(t),GreaterThan:(e,t)=>ye.attribute(e).gt(t),GreaterThanEqual:(e,t)=>ye.attribute(e).gte(t),Between:(e,t,r)=>ye.attribute(e).gte(t).and(ye.attribute(e).lte(r)),In:(e,t)=>ye.attribute(e).in(t),Matches:(e,t)=>ye.attribute(e).regexp(t)},gt=e=>e.charAt(0).toLowerCase()+e.slice(1);class yt{static build(e,...t){if(!e.startsWith(pt.FIND_BY))throw Error("Unsupported method "+e);const r=this.extractCore(e),s=this.extractSelect(e),a=this.extractGroupBy(e),i=this.buildWhere(r,t),{orderBy:n,limit:o,offset:c}=this.extractOrderLimitOffset(r,t);return{action:"find",select:s,where:i,groupBy:a,orderBy:n,limit:o,offset:c}}static extractCore(e){const t=e.substring(pt.FIND_BY.length),r=t.match(/(Then[A-Z]|OrderBy|GroupBy|Limit|Offset)/);return r?t.substring(0,r.index):t}static extractSelect(e){const t=e.indexOf(pt.SELECT);if(-1===t)return;const r=e.substring(t+pt.SELECT.length),s=r.match(/(Then[A-Z]|OrderBy|GroupBy|Limit|Offset)/);return(s?r.substring(0,s.index):r).split(pt.AND).map(gt).filter(Boolean)}static extractGroupBy(e){const t=e.indexOf(pt.GROUP_BY);if(-1!==t)return e.substring(t+pt.GROUP_BY.length).split(pt.ORDER_BY)[0].split(pt.THEN_BY).map(gt).filter(Boolean)}static buildWhere(e,t){const r=(e.split(/OrderBy|GroupBy/)[0]||"").split(/And|Or/),s=e.match(/And|Or/g)||[];let a;if(r.forEach((e,r)=>{const{field:i,operator:n}=this.parseFieldAndOperator(e),o=n?ft[n]:ft.Equals;if(!o)throw Error("Unsupported operator "+n);const c=t[r];if(void 0===c)throw Error("Invalid value for field "+i);const l=o(i,c);a=0===r?l:s[r-1]===pt.AND?a.and(l):a.or(l)}),!a)throw Error("No conditions found in method name");return a}static parseFieldAndOperator(e){for(const t of Object.keys(ft))if(e.endsWith(t)){const r=e.slice(0,-t.length);return{field:gt(r),operator:t}}return{field:gt(e)}}static extractOrderLimitOffset(e,t){const r=e.split(/And|Or/).length,s=t.slice(r);let a,i,n;return s.length>=1&&Array.isArray(s[0])&&(a=s[0]),2>s.length||"number"!=typeof s[1]||(i=s[1]),3>s.length||"number"!=typeof s[2]||(n=s[2]),{orderBy:a,limit:i,offset:n}}}function bt(e={}){return(t,r,s)=>{const a=r.toString();s.value=function(...t){const{select:r,where:s,groupBy:i,orderBy:n,limit:o,offset:c}=yt.build(a,...t);let l=this.select(r);s&&(l=l.where(s));const{allowLimit:d,allowOffset:u,allowOrderBy:p,throws:h}={allowLimit:!0,allowOrderBy:!0,allowOffset:!0,throws:!0,...e},f=[{key:"orderBy",value:(n||[])[0],allowed:p},{key:"limit",value:o,allowed:d},{key:"offset",value:c,allowed:u}];for(const e of f)if(void 0!==e.value){if(!e.allowed&&h)throw new fe(e.key[0].toUpperCase()+e.key.slice(1)+" is not allowed for this query");e.allowed&&(l=l[e.key](e.value))}return l.execute()}}}t.setRegistry(new ve);const mt="##VERSION##",wt="##PACKAGE##";q.registerLibrary(wt,mt);export{ce as Adapter,te as AuthorizationError,nt as BaseModel,Re as BigIntSequence,K as Cascade,ye as Condition,se as ConnectionError,le as DefaultCascade,Ne as DefaultSequenceOptions,Oe as Dispatch,re as ForbiddenError,he as GroupOperator,ve as InjectablesRegistry,yt as MethodQueryBuilder,Te as NoneSequenceOptions,_e as NumericSequence,Ee as ObserverError,ae as ObserverHandler,pe as Operator,ft as OperatorsMap,Z as OrderDirection,wt as PACKAGE_NAME,ot as Paginator,ge as PagingError,J as PersistenceKeys,pt as QueryClause,fe as QueryError,me as Repository,ue as Sequence,ht as Statement,de as UnsupportedError,mt as VERSION,Ce as cacheModelForPopulate,Ue as column,Pe as createOrUpdate,Qe as createdAt,ze as createdBy,qe as createdByOnCreateUpdate,ee as final,we as generateInjectableNameForRepository,ne as getColumnName,Le as getPopulateKey,ie as getTableName,He as index,Ke as manyToMany,Ze as manyToOne,et as noValidateOn,tt as noValidateOnCreate,st as noValidateOnCreateUpdate,rt as noValidateOnUpdate,Je as oneToMany,ke as oneToManyOnCreate,je as oneToManyOnDelete,$e as oneToManyOnUpdate,Xe as oneToOne,De as oneToOneOnCreate,xe as oneToOneOnDelete,Se as oneToOneOnUpdate,it as pk,at as pkOnCreate,Be as populate,bt as query,Ae as repository,Ie as repositoryFromTypeMetadata,oe as sequenceNameForModel,Fe as table,Ye as unique,Ge as uniqueOnCreateUpdate,We as updatedAt,Ve as updatedBy,be as uses};
2
2
  //# sourceMappingURL=core.js.map
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sources":["../src/persistence/constants.ts","../src/repository/constants.ts","../src/utils/decorators.ts","../src/utils/errors.ts","../src/persistence/ObserverHandler.ts","../src/identity/utils.ts","../src/persistence/Adapter.ts","../src/persistence/errors.ts","../src/persistence/Sequence.ts","../src/query/constants.ts","../src/query/errors.ts","../src/query/Condition.ts","../src/persistence/decorators.ts","../src/repository/Repository.ts","../src/repository/utils.ts","../src/repository/injectables.ts","../src/persistence/Dispatch.ts","../src/repository/decorators.ts","../src/overrides/overrides.ts","../src/repository/errors.ts","../src/interfaces/SequenceOptions.ts","../src/model/construction.ts","../src/model/decorators.ts","../src/identity/decorators.ts","../src/model/BaseModel.ts","../src/query/Paginator.ts","../src/query/types.ts","../src/query/Statement.ts","../src/query/utils.ts","../src/query/MethodQueryBuilder.ts","../src/query/decorators.ts","../src/ram/RamPaginator.ts","../src/ram/RamStatement.ts","../src/ram/RamContext.ts","../src/ram/model/RamSequenceModel.ts","../src/ram/RamSequence.ts","../src/ram/handlers.ts","../src/ram/constants.ts","../src/ram/RamAdapter.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,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["PersistenceKeys","OrderDirection","Cascade","final","target","propertyKey","descriptor","Error","configurable","AuthorizationError","BadRequestError","constructor","msg","name","code","super","ForbiddenError","ConnectionError","InternalError","ObserverHandler","this","observers","count","length","observe","observer","filter","map","o","indexOf","push","unObserve","index","splice","updateObservers","log","table","event","id","args","Promise","allSettled","e","error","toString","refresh","forEach","result","i","status","reason","getTableName","model","obj","Model","Reflect","getOwnMetadata","Repository","key","TABLE","ModelKeys","ANCHOR","getColumnName","attribute","getMetadata","COLUMN","sequenceNameForModel","join","Decoration","setFlavourResolver","Adapter","flavourOf","isModel","currentFlavour","DefaultFlavour","LoggedClass","_cache","config","_config","alias","_alias","flavour","repository","_baseRepository","shutdownProxies","k","proxies","shutdown","dispatch","close","Context","info","_currentFlavour","verbose","Dispatch","_baseDispatch","isReserved","attr","initialize","flags","operation","Object","assign","DefaultRepositoryFlags","affectedTables","writeOperation","OperationKeys","READ","timestamp","Date","ignoredValidationProperties","Metadata","validationExceptions","context","overrides","for","debug","JSON","stringify","accumulate","prepare","pk","split","modelToTransient","entries","reduce","accum","val","mappedProp","METADATA","silly","defineProperty","enumerable","writable","value","record","transient","revert","clazz","ob","m","build","metadata","keys","createAll","tableName","all","create","readAll","read","updateAll","update","deleteAll","delete","observerHandler","ADAPTER","current","get","setCurrent","Repo","models","cache","getRegistry","managedModels","values","f","DBKeys","REPOSITORY","forModel","decoration","client","_client","getClient","hashObj","proxy","Proxy","p","receiver","originalConf","set","__decorate","prototype","DefaultCascade","CASCADE","NONE","UnsupportedError","Sequence","logger","Logging","options","parseValue","type","parseInt","BigInt","undefined","Operator","GroupOperator","QueryError","PagingError","Condition","attr1","operator","comparison","and","condition","or","not","NOT","hasErrors","exceptions","conditionCheck","invalidOpMessage","errors","isAsync","resolve","condition1","condition2","group","AND","OR","Builder","eq","setOp","EQUAL","dif","DIFFERENT","gt","BIGGER","lt","SMALLER","gte","BIGGER_EQ","lte","SMALLER_EQ","arr","IN","regexp","REGEXP","RegExp","source","op","builder","uses","original","apply","required","Rep","adapter","_adapter","_tableName","class","pkProps","register","wrapMethodWithContext","override","conf","createPrefix","contextArgs","CREATE","_overrides","enforceDBDecorators","ON","ValidationError","c","createSuffix","prepared","ids","records","r","createAllPrefix","opts","getSequenceOptions","range","async","generated","ignoredProps","errorMessages","readPrefix","readAllPrefix","updatePrefix","UPDATE","oldModel","merge","relations","setMetadata","u","updateAllPrefix","oldModels","deletePrefix","DELETE","deleteAllPrefix","select","selector","Statement","from","query","orderBy","order","ASC","limit","skip","sort","where","offset","execute","prop","Array","isArray","repo","registryName","DefaultSeparator","getOwnPropertyDescriptor","removeMetadata","findPrimaryKey","ID","indexes","indexDecorators","Reflection","getAllPropertyDecorators","REFLECT","decs","v","startsWith","INDEX","dec","props","getPrototypeOf","RELATIONS","column","generateInjectableNameForRepository","sf","INJECTABLE","InjectablesRegistry","InjectableRegistryImp","injectable","modelCtor","metaKey","resolvedFlavour","aliasToUse","Injectables","message","repoCtor","BulkCrudOperationKeys","CREATE_ALL","UPDATE_ALL","DELETE_ALL","method","proto","thisArg","argArray","bulkToSingle","then","catch","inject","callback","instance","CLASS","noValidation","NO_VALIDATE","includes","bind","ObserverError","NoneSequenceOptions","startWith","incrementBy","cycle","DefaultSequenceOptions","NumericSequence","BigIntSequence","createOrUpdate","NotFoundError","oneToOneOnCreate","data","propertyValue","innerRepo","repositoryFromTypeMetadata","cacheModelForPopulate","created","oneToOneOnUpdate","cascade","updated","oneToOneOnDelete","deleted","oneToManyOnCreate","propertyValues","arrayType","every","item","uniqueValues","Set","pkName","add","oneToManyOnUpdate","oneToManyOnDelete","isInstantiated","getPopulateKey","fieldName","POPULATE","parentModel","pkValue","cacheValue","cacheKey","populate","nested","isArr","res","propName","propKeyValues","results","proKeyValue","fetchPopulateValues","commomTypes","types","Validation","ValidationKeys","LIST","TYPE","customTypes","constructorName","t","find","toLowerCase","define","decorator","columnName","propMetadata","directions","compositions","d","DSC","uniqueOnCreateUpdate","ConflictError","unique","UNIQUE","onCreateUpdate","createdByOnCreateUpdate","createdBy","CREATED_BY","onCreate","updatedBy","UPDATED_BY","createdAt","updatedAt","oneToOne","cascadeOptions","joinColumnOpts","fk","ONE_TO_ONE","meta","joinTable","String","Number","onUpdate","onDelete","afterAny","pop","oneToMany","joinTableOpts","ONE_TO_MANY","list","manyToOne","MANY_TO_ONE","manyToMany","MANY_TO_MANY","noValidateOn","ops","currentMeta","newMeta","newApply","newMetadata","noValidateOnCreate","noValidateOnUpdate","noValidateOnCreateUpdate","pkOnCreate","sequence","next","groupsort","readonly","priority","BaseModel","arg","Paginator","_currentPage","total","_totalPages","_recordCount","statement","_statement","size","page","previous","validatePage","isInteger","QueryClause","distinct","distinctSelector","max","maxSelector","min","minSelector","countSelector","fromSelector","whereCondition","orderBySelector","groupBy","groupBySelector","limitSelector","offsetSelector","raw","rawInput","selectSelector","pkAttr","processor","__metadata","_a","S","_b","_c","_d","OperatorsMap","Equals","Diff","LessThan","LessThanEqual","GreaterThan","GreaterThanEqual","Between","v1","v2","In","in","Matches","lowerFirst","str","charAt","slice","MethodQueryBuilder","methodName","FIND_BY","core","extractCore","extractSelect","extractGroupBy","buildWhere","extractOrderLimitOffset","action","afterFindBy","substring","match","selectIndex","SELECT","afterSelect","Boolean","groupByIndex","GROUP_BY","ORDER_BY","THEN_BY","conditions","operators","token","idx","field","parseFieldAndOperator","parser","conditionValue","endsWith","conditionCount","extraArgs","stmt","allowLimit","allowOffset","allowOrderBy","throws","params","allowed","param","toUpperCase","RamPaginator","rawStatement","Math","ceil","RamStatement","getSort","el1","el2","direction","getTypeFromDecorator","localeCompare","valueOf","parseCondition","el","paginate","op1","op2","RamContext","RamSequenceModel","seq","RamSequence","parse","increment","toIncrementBy","createdByOnRamCreateUpdate","uuid","RamFlavour","RamAdapter","lock","Lock","UUID","user","now","acquire","has","Map","release","natived","tableFor","collection","acc","parseError","err","BaseError","createdByKey","updatedByKey","flavouredAs","setRegistry","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sources":["../src/persistence/constants.ts","../src/repository/constants.ts","../src/utils/decorators.ts","../src/utils/errors.ts","../src/persistence/ObserverHandler.ts","../src/identity/utils.ts","../src/persistence/Adapter.ts","../src/persistence/errors.ts","../src/persistence/Sequence.ts","../src/query/constants.ts","../src/query/errors.ts","../src/query/Condition.ts","../src/persistence/decorators.ts","../src/repository/Repository.ts","../src/repository/utils.ts","../src/repository/injectables.ts","../src/persistence/Dispatch.ts","../src/repository/decorators.ts","../src/overrides/overrides.ts","../src/repository/errors.ts","../src/interfaces/SequenceOptions.ts","../src/model/construction.ts","../src/model/decorators.ts","../src/identity/decorators.ts","../src/model/BaseModel.ts","../src/query/Paginator.ts","../src/query/types.ts","../src/query/Statement.ts","../src/query/utils.ts","../src/query/MethodQueryBuilder.ts","../src/query/decorators.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,null,null,null,null,null,null,null,null,null],"names":["PersistenceKeys","OrderDirection","Cascade","final","target","propertyKey","descriptor","Error","configurable","AuthorizationError","BadRequestError","constructor","msg","name","code","super","ForbiddenError","ConnectionError","InternalError","ObserverHandler","this","observers","count","length","observe","observer","filter","map","o","indexOf","push","unObserve","index","splice","updateObservers","log","table","event","id","args","Promise","allSettled","e","error","toString","refresh","forEach","result","i","status","reason","getTableName","model","obj","Model","Reflect","getOwnMetadata","Repository","key","TABLE","ModelKeys","ANCHOR","getColumnName","attribute","getMetadata","COLUMN","sequenceNameForModel","join","Decoration","setFlavourResolver","Adapter","flavourOf","isModel","currentFlavour","DefaultFlavour","LoggedClass","_cache","config","_config","alias","_alias","flavour","repository","_baseRepository","shutdownProxies","k","proxies","shutdown","dispatch","close","Context","info","_currentFlavour","verbose","Dispatch","_baseDispatch","isReserved","attr","initialize","flags","operation","Object","assign","DefaultRepositoryFlags","affectedTables","writeOperation","OperationKeys","READ","timestamp","Date","ignoredValidationProperties","Metadata","validationExceptions","context","overrides","for","debug","JSON","stringify","accumulate","prepare","pk","split","modelToTransient","entries","reduce","accum","val","mappedProp","METADATA","silly","defineProperty","enumerable","writable","value","record","transient","revert","clazz","ob","m","build","metadata","keys","createAll","tableName","all","create","readAll","read","updateAll","update","deleteAll","delete","observerHandler","ADAPTER","current","get","setCurrent","Repo","models","cache","getRegistry","managedModels","values","f","DBKeys","REPOSITORY","forModel","decoration","client","_client","getClient","hashObj","proxy","Proxy","p","receiver","originalConf","set","__decorate","prototype","DefaultCascade","CASCADE","NONE","UnsupportedError","Sequence","logger","Logging","options","parseValue","type","parseInt","BigInt","undefined","Operator","GroupOperator","QueryError","PagingError","Condition","attr1","operator","comparison","and","condition","or","not","NOT","hasErrors","exceptions","conditionCheck","invalidOpMessage","errors","isAsync","resolve","condition1","condition2","group","AND","OR","Builder","eq","setOp","EQUAL","dif","DIFFERENT","gt","BIGGER","lt","SMALLER","gte","BIGGER_EQ","lte","SMALLER_EQ","arr","IN","regexp","REGEXP","RegExp","source","op","builder","uses","original","apply","required","Rep","adapter","_adapter","_tableName","class","pkProps","register","wrapMethodWithContext","override","conf","createPrefix","contextArgs","CREATE","_overrides","enforceDBDecorators","ON","ValidationError","c","createSuffix","prepared","ids","records","r","createAllPrefix","opts","getSequenceOptions","range","async","generated","ignoredProps","errorMessages","readPrefix","readAllPrefix","updatePrefix","UPDATE","oldModel","merge","relations","setMetadata","u","updateAllPrefix","oldModels","deletePrefix","DELETE","deleteAllPrefix","select","selector","Statement","from","query","orderBy","order","ASC","limit","skip","sort","where","offset","execute","prop","Array","isArray","repo","registryName","DefaultSeparator","getOwnPropertyDescriptor","removeMetadata","findPrimaryKey","ID","indexes","indexDecorators","Reflection","getAllPropertyDecorators","REFLECT","decs","v","startsWith","INDEX","dec","props","getPrototypeOf","RELATIONS","column","generateInjectableNameForRepository","sf","INJECTABLE","InjectablesRegistry","InjectableRegistryImp","injectable","modelCtor","metaKey","resolvedFlavour","aliasToUse","Injectables","message","repoCtor","BulkCrudOperationKeys","CREATE_ALL","UPDATE_ALL","DELETE_ALL","method","proto","thisArg","argArray","bulkToSingle","then","catch","inject","callback","instance","CLASS","noValidation","NO_VALIDATE","includes","bind","ObserverError","NoneSequenceOptions","startWith","incrementBy","cycle","DefaultSequenceOptions","NumericSequence","BigIntSequence","createOrUpdate","NotFoundError","oneToOneOnCreate","data","propertyValue","innerRepo","repositoryFromTypeMetadata","cacheModelForPopulate","created","oneToOneOnUpdate","cascade","updated","oneToOneOnDelete","deleted","oneToManyOnCreate","propertyValues","arrayType","every","item","uniqueValues","Set","pkName","add","oneToManyOnUpdate","oneToManyOnDelete","isInstantiated","getPopulateKey","fieldName","POPULATE","parentModel","pkValue","cacheValue","cacheKey","populate","nested","isArr","res","propName","propKeyValues","results","proKeyValue","fetchPopulateValues","commomTypes","types","Validation","ValidationKeys","LIST","TYPE","customTypes","constructorName","t","find","toLowerCase","define","decorator","columnName","propMetadata","directions","compositions","d","DSC","uniqueOnCreateUpdate","ConflictError","unique","UNIQUE","onCreateUpdate","createdByOnCreateUpdate","createdBy","CREATED_BY","onCreate","updatedBy","UPDATED_BY","createdAt","updatedAt","oneToOne","cascadeOptions","joinColumnOpts","fk","ONE_TO_ONE","meta","joinTable","String","Number","onUpdate","onDelete","afterAny","pop","oneToMany","joinTableOpts","ONE_TO_MANY","list","manyToOne","MANY_TO_ONE","manyToMany","MANY_TO_MANY","noValidateOn","ops","currentMeta","newMeta","newApply","newMetadata","noValidateOnCreate","noValidateOnUpdate","noValidateOnCreateUpdate","pkOnCreate","sequence","next","groupsort","readonly","priority","BaseModel","arg","Paginator","_currentPage","total","_totalPages","_recordCount","statement","_statement","size","page","previous","validatePage","isInteger","QueryClause","distinct","distinctSelector","max","maxSelector","min","minSelector","countSelector","fromSelector","whereCondition","orderBySelector","groupBy","groupBySelector","limitSelector","offsetSelector","raw","rawInput","selectSelector","pkAttr","processor","__metadata","_a","S","_b","_c","_d","OperatorsMap","Equals","Diff","LessThan","LessThanEqual","GreaterThan","GreaterThanEqual","Between","v1","v2","In","in","Matches","lowerFirst","str","charAt","slice","MethodQueryBuilder","methodName","FIND_BY","core","extractCore","extractSelect","extractGroupBy","buildWhere","extractOrderLimitOffset","action","afterFindBy","substring","match","selectIndex","SELECT","afterSelect","Boolean","groupByIndex","GROUP_BY","ORDER_BY","THEN_BY","conditions","operators","token","idx","field","parseFieldAndOperator","parser","conditionValue","endsWith","conditionCount","extraArgs","stmt","allowLimit","allowOffset","allowOrderBy","throws","params","allowed","param","toUpperCase","setRegistry","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"sjCAOYA,ECEAC,EAeAC,WChBIC,KACd,MAAO,CACLC,EACAC,EACAC,KAEA,IAAKA,EACH,MAAUC,MAAM,+CAIlB,OAHID,GAAYE,eACdF,EAAWE,cAAe,GAErBF,EAEX,CFdA,CAAYN,IAEVA,EAAA,MAAA,QAGAA,EAAA,OAAA,SAGAA,EAAA,QAAA,UAGAA,EAAA,WAAA,4BAGAA,EAAA,MAAA,QAGAA,EAAA,OAAA,SAGAA,EAAA,SAAA,aAIAA,EAAA,UAAA,YAGAA,EAAA,WAAA,uBAGAA,EAAA,WAAA,uBAKAA,EAAA,UAAA,cAGAA,EAAA,SAAA,WAGAA,EAAA,WAAA,sBAGAA,EAAA,YAAA,uBAGAA,EAAA,YAAA,uBAEAA,EAAA,aAAA,wBAGAA,EAAA,SAAA,WAEAA,EAAA,YAAA,aACD,EAvDD,CAAYA,IAAAA,EAuDX,CAAA,IG9CK,MAAOS,WAA2BC,EACtC,WAAAC,CAAYC,EAAqBC,EAAOJ,GAAmBI,KAAMC,EAAO,KACtEC,MAAMH,EAAKC,EAAMC,EAClB,EAkBG,MAAOE,WAAuBP,GAClC,WAAAE,CAAYC,EAAqBC,EAAOG,GAAeH,MACrDE,MAAMH,EAAKC,EAAM,IAClB,EAoBG,MAAOI,WAAwBC,EACnC,WAAAP,CAAYC,GACVG,MAAMH,EAAKK,GAAgBJ,KAAM,IAClC,QCzBUM,GAAb,WAAAR,GAKqBS,KAASC,UAGtB,EAgHP,CAzGC,KAAAC,GACE,OAAOF,KAAKC,UAAUE,MACvB,CASD,OAAAC,CAAQC,EAAoBC,GAE1B,IAAe,IADDN,KAAKC,UAAUM,IAAKC,GAAMA,EAAEH,UAAUI,QAAQJ,GAC1C,MAAM,IAAIP,EAAc,+BAC1CE,KAAKC,UAAUS,KAAK,CAAEL,SAAUA,EAAUC,OAAQA,GACnD,CAQD,SAAAK,CAAUN,GACR,MAAMO,EAAQZ,KAAKC,UAAUM,IAAKC,GAAMA,EAAEH,UAAUI,QAAQJ,GAC5D,IAAe,IAAXO,EAAc,MAAM,IAAId,EAAc,2BAC1CE,KAAKC,UAAUY,OAAOD,EAAO,EAC9B,CA8CD,qBAAME,CACJC,EACAC,EACAC,EACAC,KACGC,UAEmBC,QAAQC,WAC5BrB,KAAKC,UACFK,OAAQE,IACP,MAAMF,OAAEA,GAAWE,EACnB,IAAKF,EAAQ,OAAO,EACpB,IACE,OAAOA,EAAOU,EAAOC,EAAOC,EAC7B,CAAC,MAAOI,GAIP,OAHAP,EAAIQ,MACF,6BAA6Bf,EAAEH,SAASmB,eAAeF,MAElD,CACR,IAEFf,IAAKC,IACJA,EAAEH,SAASoB,QAAQT,EAAOC,EAAOC,KAAOC,OAGtCO,QAAQ,CAACC,EAAQC,KACD,aAAlBD,EAAOE,QACTd,EAAIQ,MACF,+BAA+BvB,KAAKC,UAAU2B,GAAGJ,eAAeG,EAAOG,WAG9E,EChJG,SAAUC,GACdC,GAEA,MAAMC,EAAMD,aAAiBE,EAAQF,EAAMzC,YAAcyC,EAMzD,OAJiBG,QAAQC,eACvBC,EAAWC,IAAI1D,EAAgB2D,OAC/BN,EAAIO,EAAUC,SAA0CR,KAKtDD,aAAiBE,EACZF,EAAMzC,YAAYE,KAEpBuC,EAAMvC,KACf,CAEgB,SAAAiD,GACdV,EACAW,GAOA,OALiBR,QAAQS,YACvBP,EAAWC,IAAI1D,EAAgBiE,QAC/Bb,EACAW,IAE2BA,CAC/B,UAYgBG,GACdd,KACGb,GAEH,MAAO,CAACY,GAAaC,MAAWb,GAAM4B,KAAK,IAC7C,CClBAC,EAAWC,mBAAoBhB,IAC7B,IACE,OACEiB,GAAQC,UAAUjB,EAAMkB,QAAQnB,GAAOA,EAAI1C,YAAe0C,IAC1DiB,GAAQG,gBACRC,CAGH,CAAC,MAAOhC,GAER,CACD,IACE,OAAO4B,GAAQG,gBAAkBC,CAElC,CAAC,MAAOhC,GACP,OAAOgC,CACR,IA+FG,MAAgBJ,WAOZK,SASOvD,KAAMwD,OAAqD,CAAA,CAAG,CAkB7E,UAAIC,GACF,OAAOzD,KAAK0D,OACb,CAOD,SAAIC,GACF,OAAO3D,KAAK4D,QAAU5D,KAAK6D,OAC5B,CAQD,UAAAC,GASE,IAAKZ,GAAQa,gBACX,MAAM,IAAIjE,EACR,kFAEJ,OAAOoD,GAAQa,eAChB,CAGS,qBAAMC,CAAgBC,GAC9B,GAAKjE,KAAKkE,QAAV,CACA,GAAID,KAAOA,KAAKjE,KAAKkE,SACnB,MAAM,IAAIpE,EAAc,sBAAsBmE,GAChD,GAAKA,EAWH,UACQjE,KAAKkE,QAAQD,GAAGE,kBACfnE,KAAKkE,QAAQD,EACrB,CAAC,MAAO3C,GACPtB,KAAKe,IAAIQ,MAAM,sCAAsC0C,MAAM3C,IAC5D,MAfD,IAAK,MAAMgB,KAAOtC,KAAKkE,QAAS,CAC9B,UACQlE,KAAKkE,QAAQ5B,GAAK6B,UACzB,CAAC,MAAO7C,GACPtB,KAAKe,IAAIQ,MAAM,sCAAsCe,MAAQhB,KAC7D,QACD,QACMtB,KAAKkE,QAAQ5B,EACrB,CAZuB,CAqB3B,CAQD,cAAM6B,SACEnE,KAAKgE,kBACPhE,KAAKoE,gBAAgBpE,KAAKoE,SAASC,OACxC,CAMD,WAAA9E,CACmBmE,EACRG,EACQD,GAGjB,GADAjE,QAJiBK,KAAO0D,QAAPA,EACR1D,KAAO6D,QAAPA,EACQ7D,KAAM4D,OAANA,EAgHT5D,KAAAsE,QAAU,EA7GdtE,KAAK2D,SAAST,GAAQM,OACxB,MAAM,IAAI1D,EACR,GAAGE,KAAK2D,6BAA6B3D,KAAK4D,OAAS,IAAI5D,KAAK6D,YAAc,yBAE9EX,GAAQM,OAAOxD,KAAK2D,OAAS3D,KAC7BA,KAAKe,IAAIwD,KACP,WAAWvE,KAAK2D,6BAA6B3D,KAAK4D,OAAS,IAAI5D,KAAK6D,YAAc,0BAE/EX,GAAQsB,kBACXxE,KAAKe,IAAI0D,QAAQ,WAAWzE,KAAK2D,wCACjCT,GAAQsB,gBAAkBxE,KAAK2D,MAElC,CAeS,QAAAe,GACR,OAAO,IAAIxB,GAAQyB,aACpB,CAOS,eAAA5E,GACR,OAAO,IAAIA,EACZ,CAQS,UAAA6E,CAAWC,GACnB,OAAQA,CACT,CAiBD,gBAAMC,IAAc3D,GAA8B,CAqBxC,WAAM4D,CACdC,EACAhD,EACA+C,KAEG5D,GAEH,OAAO8D,OAAOC,OAAO,GAAIC,EAAwBJ,EAAO,CACtDK,eAAgBrD,GAAaC,GAC7BqD,eAAgBL,IAAcM,EAAcC,KAC5CC,UAAW,IAAIC,KACfT,UAAWA,EACXU,4BAA6BC,EAASC,qBACpC5D,EACAgD,IAGL,CAoBK,aAAAa,CACJb,EAKAc,EACA9D,KACGb,GAESnB,KAAKe,IAAIgF,IAAI/F,KAAK6F,SAC1BG,MACF,4BAA4BhB,kBAA0BhD,EAAMvC,mCAAmCwG,KAAKC,UAAUJ,MAEhH,MAAMf,QAAc/E,KAAK+E,MAAMC,EAAWhD,EAAO8D,KAAc3E,GAC/D,OAAO,IAAInB,KAAKsE,SAAU6B,WAAWpB,EACtC,CAWD,OAAAqB,CACEpE,EACAqE,GAMA,MAAMtF,EAAMf,KAAKe,IAAIgF,IAAI/F,KAAKoG,SACxBE,EAAQC,EAAiBvE,GACzBL,EAASsD,OAAOuB,QAAQF,EAAMtE,OAAOyE,OACzC,CAACC,GAA6BpE,EAAKqE,MACjC,QAAmB,IAARA,EAAqB,OAAOD,EACvC,MAAME,EAAalE,GAAcV,EAAOM,GACxC,GAAItC,KAAK4E,WAAWgC,GAClB,MAAM,IAAI9G,EAAc,iBAAiB8G,iBAE3C,OADAF,EAAME,GAAcD,EACbD,GAET,CAAE,GAcJ,OAZK1E,EAAcpD,EAAgBiI,YACjC9F,EAAI+F,MACF,0CAA2C9E,EAAcpD,EAAgBiI,WAE3E5B,OAAO8B,eAAepF,EAAQ/C,EAAgBiI,SAAU,CACtDG,YAAY,EACZC,UAAU,EACV7H,cAAc,EACd8H,MAAQlF,EAAcpD,EAAgBiI,aAInC,CACLM,OAAQxF,EACRT,GAAIc,EAAMqE,GACVe,UAAWd,EAAMc,UAEpB,CAcD,MAAAC,CACEpF,EACAqF,EACAjB,EACAnF,EACAkG,GAEA,MAAMrG,EAAMf,KAAKe,IAAIgF,IAAI/F,KAAKqH,QACxBE,EAA0B,CAAA,EAChCA,EAAGlB,GAAgBnF,EACnB,MAAMsG,EACa,iBAAVF,EAAqBpF,EAAMuF,MAAMF,EAAID,GAAS,IAAIA,EAAMC,GAEjExG,EAAI+F,MAAM,oBAAoBU,EAAEjI,YAAYE,WAAWyB,KACvD,MAAMwG,EAAWzF,EAAIrD,EAAgBiI,UAC/BlF,EAASsD,OAAO0C,KAAKH,GAAGf,OAAO,CAACC,EAAUpE,KAC1CA,IAAQ+D,IACXK,EAA8BpE,GAAOL,EAAIS,GAAcgE,EAAOpE,KADxCoE,GAGtBc,GA2BH,OAzBIJ,IACFrG,EAAI0D,QACF,mCAAmCQ,OAAO0C,KAAKP,GAAWrE,KAAK,OAEjEkC,OAAOuB,QAAQY,GAAW1F,QAAQ,EAAEY,EAAKqE,MACvC,GAAIrE,KAAOX,EACT,MAAM,IAAI7B,EACR,sBAAsBwC,6BAA+BkF,EAAEjI,YAAYE,8BAEvEkC,EAAOW,GAAkBqE,KAIzBe,IACF3G,EAAI+F,MACF,iBAAiB9G,KAAK6D,oCAAoC2D,EAAEjI,YAAYE,WAAWyB,MAAOwG,KAE5FzC,OAAO8B,eAAepF,EAAQ/C,EAAgBiI,SAAU,CACtDG,YAAY,EACZ5H,cAAc,EACd6H,UAAU,EACVC,MAAOQ,KAIJ/F,CACR,CA2BD,eAAMiG,CACJC,EACA3G,EACAc,KACGb,GAEH,GAAID,EAAGf,SAAW6B,EAAM7B,OACtB,MAAM,IAAIL,EAAc,4CAC1B,MAAMiB,EAAMf,KAAKe,IAAIgF,IAAI/F,KAAK4H,WAG9B,OAFA7G,EAAI0D,QAAQ,YAAYvD,EAAGf,kBAAkB0H,WAC7C9G,EAAIiF,MAAM,QAAQ9E,GACXE,QAAQ0G,IACb5G,EAAGX,IAAI,CAACqB,EAAG1B,IAAUF,KAAK+H,OAAOF,EAAWjG,EAAGI,EAAM9B,MAAWiB,IAEnE,CAwBD,aAAM6G,CACJH,EACA3G,KACGC,GAEH,MAAMJ,EAAMf,KAAKe,IAAIgF,IAAI/F,KAAKgI,SAG9B,OAFAjH,EAAI0D,QAAQ,WAAWvD,EAAGf,kBAAkB0H,WAC5C9G,EAAIiF,MAAM,QAAQ9E,GACXE,QAAQ0G,IAAI5G,EAAGX,IAAKqB,GAAM5B,KAAKiI,KAAKJ,EAAWjG,KAAMT,IAC7D,CA2BD,eAAM+G,CACJL,EACA3G,EACAc,KACGb,GAEH,GAAID,EAAGf,SAAW6B,EAAM7B,OACtB,MAAM,IAAIL,EAAc,4CAC1B,MAAMiB,EAAMf,KAAKe,IAAIgF,IAAI/F,KAAKkI,WAG9B,OAFAnH,EAAI0D,QAAQ,YAAYvD,EAAGf,kBAAkB0H,WAC7C9G,EAAIiF,MAAM,QAAQ9E,GACXE,QAAQ0G,IACb5G,EAAGX,IAAI,CAACqB,EAAG1B,IAAUF,KAAKmI,OAAON,EAAWjG,EAAGI,EAAM9B,MAAWiB,IAEnE,CAwBD,eAAMiH,CACJP,EACA3G,KACGC,GAEH,MAAMJ,EAAMf,KAAKe,IAAIgF,IAAI/F,KAAK4H,WAG9B,OAFA7G,EAAI0D,QAAQ,YAAYvD,EAAGf,kBAAkB0H,WAC7C9G,EAAIiF,MAAM,QAAQ9E,GACXE,QAAQ0G,IAAI5G,EAAGX,IAAKqB,GAAM5B,KAAKqI,OAAOR,EAAWjG,KAAMT,IAC/D,CAsBD,OAAAf,CAAQC,EAAoBC,GACrBN,KAAKsI,iBACRrD,OAAO8B,eAAe/G,KAAM,kBAAmB,CAC7CkH,MAAOlH,KAAKD,kBACZkH,UAAU,IAEdjH,KAAKsI,gBAAiBlI,QAAQC,EAAUC,GACxCN,KAAKe,IACFgF,IAAI/F,KAAKI,SACTqE,QAAQ,4BAA4BpE,EAASmB,YAC3CxB,KAAKoE,WACRpE,KAAKe,IAAIgF,IAAI/F,KAAKI,SAASmE,KAAK,yBAAyBvE,KAAK2D,OAC9D3D,KAAKoE,SAAWpE,KAAK0E,WACrB1E,KAAKoE,SAAShE,QAAQJ,MAEzB,CASD,SAAAW,CAAUN,GACR,IAAKL,KAAKsI,gBACR,MAAM,IAAIxI,EACR,sEAEJE,KAAKsI,gBAAgB3H,UAAUN,GAC/BL,KAAKe,IACFgF,IAAI/F,KAAKW,WACT8D,QAAQ,YAAYpE,EAASmB,qBACjC,CAYD,qBAAMV,CACJE,EACAC,EACAC,KACGC,GAEH,IAAKnB,KAAKsI,gBACR,MAAM,IAAIxI,EACR,sEAEQE,KAAKe,IAAIgF,IAAI/F,KAAKc,iBAC1B2D,QACF,YAAYzE,KAAKsI,gBAAgBpI,iCAAiCF,KAAK2D,eAEnE3D,KAAKsI,gBAAgBxH,gBACzBd,KAAKe,IACLC,EACAC,EACAC,KACGC,EAEN,CAWD,aAAMM,CACJT,EACAC,EACAC,KACGC,GAEH,OAAOnB,KAAKc,gBAAgBE,EAAOC,EAAOC,KAAOC,EAClD,CAOQ,QAAAK,GACP,OAAUxB,KAAK6D,QAAR,sBACR,CASD,gBAAOV,CAA2BnB,GAChC,OACEG,QAAQS,YAAY5C,KAAKsC,IAAI1D,EAAgB2J,SAAUvG,IACvDhC,KAAKwI,SAAS3E,OAEjB,CAED,yBAAWR,GACT,IAAKH,GAAQsB,gBACX,MAAM,IAAI1E,EACR,8DAEJ,OAAOoD,GAAQsB,eAChB,CAOD,kBAAWgE,GACT,OAAOtF,GAAQuF,IAAIzI,KAAKqD,eACzB,CAaD,UAAOoF,CAML5E,GACA,IAAKA,EAAS,OAAOX,GAAQuF,IAAIzI,KAAKwE,iBACtC,GAAIX,KAAW7D,KAAKwD,OAAQ,OAAOxD,KAAKwD,OAAOK,GAC/C,MAAM,IAAI/D,EAAc,+BAA+B+D,KACxD,CAQD,iBAAO6E,CAAW7E,GAChB7D,KAAKwE,gBAAkBX,CACxB,CAQD,UAAOvB,CAAIA,GACT,OAAOqG,EAAKrG,IAAIA,EACjB,CASD,aAAOsG,CAAwB/E,GAC7B,IACE,MACMgF,EADY3G,EAAc4G,cAG9BD,MACIE,EAAyC9D,OAAO+D,OAAOH,GAC1DtI,IAAKiH,IACJ,IAAIyB,EAAI9G,QAAQS,YACdM,GAAQZ,IAAI1D,EAAgB2J,SAC5Bf,GAEF,GAAIyB,GAAKA,IAAMpF,EAAS,OAAO2D,EAC/B,IAAKyB,EAAG,CAKN,IAJa9G,QAAQS,YACnB+F,EAAKrG,IAAI4G,EAAOC,YAChB3B,GAES,OACX,MAAM1D,EAAc9D,KAAK+D,gBAAwBqF,SAAS5B,GAM1D,OAJAyB,EAAI9G,QAAQS,YACVM,GAAQZ,IAAI1D,EAAgB2J,SAC5BzE,GAEKmF,CACR,IAEF3I,OAAQkH,KAAQA,GACnB,OAAOuB,CACR,CAAC,MAAOzH,GACP,MAAM,IAAIxB,EAAcwB,EACzB,CACF,CAED,iBAAO+H,GAAqB,CAiB5B,UACIC,GAIF,OAHKtJ,KAAKuJ,UACRvJ,KAAKuJ,QAAUvJ,KAAKwJ,aAEfxJ,KAAKuJ,OACb,CAGD,IAAI9F,KAA0BtC,GACvBnB,KAAKkE,UAASlE,KAAKkE,QAAU,IAClC,MAAM5B,EAAM,GAAGtC,KAAK2D,WAAW8F,EAAQhG,KACvC,GAAInB,KAAOtC,KAAKkE,QAAS,OAAOlE,KAAKkE,QAAQ5B,GAE7C,IAAIgH,EACJ,MAAMI,EAAQ,IAAIC,MAAM3J,KAAM,CAC5ByI,IAAK,CAACzJ,EAAqB4K,EAAoBC,KAC7C,GAAU,YAAND,EAAiB,CACnB,MAAME,EAAqB3H,QAAQsG,IAAIzJ,EAAQ4K,EAAGC,GAClD,OAAO5E,OAAOC,OAAO,CAAE,EAAE4E,EAAcrG,EACxC,CACD,MAAU,YAANmG,EACKN,EAEFnH,QAAQsG,IAAIzJ,EAAQ4K,EAAGC,IAEhCE,IAAK,CAAC/K,EAAa4K,EAAoB1C,EAAY2C,IACvC,YAAND,GACFN,EAASpC,GACF,GAEF/E,QAAQ4H,IAAI/K,EAAQ4K,EAAG1C,EAAO2C,KAIzC,OADA7J,KAAKkE,QAAQ5B,GAAOoH,EACbA,CACR,EAxtBeM,EAAA,CADfjL,+FAuBAmE,GAAA+G,UAAA,kBAAA,MAkJKD,EAAA,CADLjL,oHAiBAmE,GAAA+G,UAAA,UAAA,MAwRDD,EAAA,CADCjL,uGAgBAmE,GAAA+G,UAAA,UAAA,MASDD,EAAA,CADCjL,8FAUAmE,GAAA+G,UAAA,YAAA,MAmMDD,EAAA,CAACjL,wDAMAmE,GAAA+G,UAAA,SAAA,ML94BH,CAAYpL,IAEVA,EAAA,IAAA,MAGAA,EAAA,IAAA,MACD,EAND,CAAYA,IAAAA,EAMX,CAAA,IASD,CAAYC,IAEVA,EAAA,QAAA,UAEAA,EAAA,KAAA,MACD,EALD,CAAYA,IAAAA,EAKX,CAAA,IAUY,MAAAoL,GAAkC,CAC7C/B,OAAQrJ,EAAQqL,QAChB9B,OAAQvJ,EAAQsL,MMhBZ,MAAOC,WAAyBvK,EACpC,WAAAP,CAAYC,GACVG,MAAMH,EAAK6K,GAAiB5K,KAAM,IACnC,QCwBmB6K,GAYpB,OAAcvJ,GAEZ,OADKf,KAAKuK,SAAQvK,KAAKuK,OAASC,EAAQzE,IAAI/F,OACrCA,KAAKuK,MACb,CAMD,WAAAhL,CAAyCkL,GAAAzK,KAAOyK,QAAPA,CAA4B,CA+BrE,SAAOpE,CAAoBrE,GACzB,OAAOc,GAAqBd,EAAO,KACpC,CASD,iBAAO0I,CACLC,EACAzD,GAEA,OAAQyD,GACN,IAAK,SACH,MAAwB,iBAAVzD,EACV0D,SAAS1D,GACQ,iBAAVA,EACLA,EACA2D,OAAO3D,GACf,IAAK,SACH,OAAO2D,OAAO3D,GAChB,UAAK4D,EACL,IAAK,SACH,OAAO5D,EACT,QACE,MAAM,IAAImD,GACR,8BAA8BM,iBAAoB3K,QAGzD,MCjIS+K,GA8BAC,GA9BZ,CAAYD,IAEVA,EAAA,MAAA,QAEAA,EAAA,UAAA,YAEAA,EAAA,OAAA,SAEAA,EAAA,UAAA,YAEAA,EAAA,QAAA,UAEAA,EAAA,WAAA,aAGAA,EAAA,IAAA,MAEAA,EAAA,GAAA,KAGAA,EAAA,OAAA,QACD,EArBD,CAAYA,KAAAA,GAqBX,CAAA,IASD,CAAYC,IAEVA,EAAA,IAAA,MAEAA,EAAA,GAAA,IACD,EALD,CAAYA,KAAAA,GAKX,CAAA,ICjCK,MAAOC,WAAmBnL,EAC9B,WAAAP,CAAYC,GACVG,MAAMH,EAAKyL,GAAWxL,KAAM,IAC7B,EAUG,MAAOyL,WAAoBpL,EAC/B,WAAAP,CAAYC,GACVG,MAAMH,EAAK0L,GAAYzL,KAAM,IAC9B,ECkBG,MAAO0L,WAAwCjJ,EAQnD,WAAA3C,CACE6L,EACAC,EACAC,GAEA3L,QAXQK,KAAKoL,WAA2BN,EAEhC9K,KAAQqL,cAA8BP,EAEtC9K,KAAUsL,gBAASR,EAQ3B9K,KAAKoL,MAAQA,EACbpL,KAAKqL,SAAWA,EAChBrL,KAAKsL,WAAaA,CACnB,CAQD,GAAAC,CAAIC,GACF,OAAOL,GAAUI,IAAIvL,KAAMwL,EAC5B,CAQD,EAAAC,CAAGD,GACD,OAAOL,GAAUM,GAAGzL,KAAMwL,EAC3B,CAQD,GAAAE,CAAI/E,GACF,OAAO,IAAIwE,GAAUnL,KAAM+K,GAASY,IAAKhF,EAC1C,CAQQ,SAAAiF,IACJC,GAEH,MAAMC,EAAiB,KACrB,MAAMC,EAAmB,oBAAoB/L,KAAKqL,YAElD,GAA0B,iBAAfrL,KAAKoL,MAAoB,CAClC,GAAIpL,KAAKsL,sBAAsBH,GAC7B,MAAO,CACLG,WAAY,CACVE,UACE,0DAGR,IAAoE,IAAhEvG,OAAO+D,OAAO+B,IAAUtK,QAAQT,KAAKqL,UACvC,MAAO,CACLA,SAAU,CACRG,UAAWO,GAGlB,CAED,GAAI/L,KAAKoL,iBAAiBD,GAAW,CACnC,KACInL,KAAKsL,sBAAsBH,KAC7BnL,KAAKqL,WAAaN,GAASY,IAE3B,MAAO,CACLL,WAAY,CACVE,UAAWO,IAGjB,IAGS,IAFP9G,OAAO+D,OAAOgC,IAAevK,QAC3BT,KAAKqL,WAEPrL,KAAKqL,WAAaN,GAASY,IAE3B,MAAO,CACLN,SAAU,CACRG,UAAWO,GAGlB,GAGGC,EAASrM,MAAMiM,aAAaC,GAClC,OAAK7L,KAAKiM,UAMH,gBACkB7K,QAAQ8K,QAC7BF,IAEiBF,IAJd,GAJFE,GACAF,GASN,CAUD,UAAOP,CACLY,EACAC,GAEA,OAAOjB,GAAUkB,MAAMF,EAAYnB,GAAcsB,IAAKF,EACvD,CAUD,SAAOX,CACLU,EACAC,GAEA,OAAOjB,GAAUkB,MAAMF,EAAYnB,GAAcuB,GAAIH,EACtD,CAWO,YAAOC,CACbF,EACAd,EACAe,GAEA,OAAO,IAAIjB,GAAUgB,EAAYd,EAAUe,EAC5C,CASD,gBAAOzJ,CAA2BkC,GAChC,OAAO,IAAIsG,GAAUqB,SAAa7J,UAAUkC,EAC7C,CASD,WAAOA,CAAsBA,GAC3B,OAAO7E,KAAK2C,UAAUkC,EACvB,QASc7E,KAAOwM,QAAG,MAAA,WAAAjN,GAGvBS,KAAKoL,WAA4BN,EACjC9K,KAAQqL,cAA8BP,EACtC9K,KAAUsL,gBAASR,CAqIpB,CA7HC,SAAAnI,CAAUkC,GAER,OADA7E,KAAKoL,MAAQvG,EACN7E,IACR,CAQD,IAAA6E,CAAKA,GACH,OAAO7E,KAAK2C,UAAUkC,EACvB,CAQD,EAAA4H,CAAG9F,GACD,OAAO3G,KAAK0M,MAAM3B,GAAS4B,MAAOhG,EACnC,CAQD,GAAAiG,CAAIjG,GACF,OAAO3G,KAAK0M,MAAM3B,GAAS8B,UAAWlG,EACvC,CAQD,EAAAmG,CAAGnG,GACD,OAAO3G,KAAK0M,MAAM3B,GAASgC,OAAQpG,EACpC,CAQD,EAAAqG,CAAGrG,GACD,OAAO3G,KAAK0M,MAAM3B,GAASkC,QAAStG,EACrC,CAQD,GAAAuG,CAAIvG,GACF,OAAO3G,KAAK0M,MAAM3B,GAASoC,UAAWxG,EACvC,CAQD,GAAAyG,CAAIzG,GACF,OAAO3G,KAAK0M,MAAM3B,GAASsC,WAAY1G,EACxC,CAQD,GAAG2G,GACD,OAAOtN,KAAK0M,MAAM3B,GAASwC,GAAID,EAChC,CAQD,MAAAE,CAAO7G,GACL,OAAO3G,KAAK0M,MAAM3B,GAAS0C,OAAYC,OAAO/G,GAAKgH,OACpD,CASO,KAAAjB,CAAMkB,EAAcjH,GAG1B,OAFA3G,KAAKqL,SAAWuC,EAChB5N,KAAKsL,WAAa3E,EACX3G,KAAKyH,OACb,CAQO,KAAAA,GACN,IACE,OAAO,IAAI0D,GACTnL,KAAKoL,MACLpL,KAAKqL,SACLrL,KAAKsL,WAER,CAAC,MAAOhK,GACP,MAAM,IAAI2J,GAAW3J,EACtB,CACF,EACD,CAQF,cAAOuM,GACL,OAAO,IAAI1C,GAAUqB,OACtB,ECjXG,SAAUsB,GAAKjK,GACnB,OAAqBkK,GACZC,EAAMtG,EAASxE,GAAQZ,IAAI1D,EAAgB2J,SAAU1E,GAArDmK,CACLD,EAGN,CDyBY/D,EAAA,CADTiE,6BACmD9C,GAAAlB,UAAA,aAAA,GAE1CD,EAAA,CADTiE,6BACyD9C,GAAAlB,UAAA,gBAAA,GAEhDD,EAAA,CADTiE,6BACsC9C,GAAAlB,UAAA,kBAAA,GE+DnC,MAAO5H,WAOH6L,SAGOlO,KAAMwD,OAGjB,CAAA,CAAG,CAiBP,OAAIzC,GAKF,OAJKf,KAAKuK,SACRvK,KAAKuK,OACHvK,KAAKmO,QAA0C,IAC/CpI,IAAI/F,KAAKwB,aACNxB,KAAKuK,MACb,CASD,WAAc4D,GACZ,IAAKnO,KAAKoO,SACR,MAAM,IAAItO,EACR,wGAEJ,OAAOE,KAAKoO,QACb,CAOD,aAAcvG,GAEZ,OADK7H,KAAKqO,aAAYrO,KAAKqO,WAAahM,GAAWrB,MAAMhB,KAAKsO,QACvDtO,KAAKqO,UACb,CAOD,WAAuBE,GACrB,OAAO5O,MAAM4O,OACd,CAGD,WAAAhP,CAAY4O,EAAa7G,KAA2BnG,GAGlD,GAFAxB,MAAM2H,GA3DEtH,KAASC,UAAe,GA4D5BkO,IAASnO,KAAKoO,SAAWD,GACzB7G,IACFjF,GAAWmM,SAASlH,EAAOtH,KAAMA,KAAKmO,QAAQxK,OAC1CwK,GAAS,CACX,MAAMtK,EAAU1B,QAAQS,YACtBM,GAAQZ,IAAI1D,EAAgB2J,SAC5BjB,GAEF,GAAIzD,GAAWA,IAAYsK,EAAQtK,QACjC,MAAM,IAAI/D,EAAc,yBAC1BgO,GAAKK,EAAQtK,QAAbiK,CAAsBxG,EACvB,CAEH,CAACtH,KAAK4H,UAAW5H,KAAKgI,QAAShI,KAAKkI,UAAWlI,KAAKoI,WAAW1G,QAC5D8F,IACC,MAAM/H,EAAO+H,EAAE/H,KACfgP,EACEzO,KACCA,KAAaP,EAAO,UACrB+H,EACCxH,KAAaP,EAAO,YAI5B,CAQD,QAAAiP,CAAS3J,GAIP,OAHA/E,KAAKe,IACFgF,IAAI/F,KAAK0O,UACT1I,MAAM,oCAAoCC,KAAKC,UAAUnB,IACrD,IAAI4E,MAAM3J,KAAM,CACrByI,IAAK,CAACzJ,EAAqB4K,EAAoBC,KAC7C,MAAMlI,EAASQ,QAAQsG,IAAIzJ,EAAQ4K,EAAGC,GACtC,MAAU,eAAND,EAA2BjI,EACxBsD,OAAOC,OAAO,CAAE,EAAEvD,EAAQoD,KAGtC,CAeD,IACE4J,KACGxN,GAEH,OAAO,IAAIwI,MAAM3J,KAAM,CACrByI,IAAK,CAACzJ,EAAa4K,EAAoBC,IAC3B,YAAND,EACK5J,KAAKmO,QAAQpI,IAAI4I,KAASxN,GAE5BgB,QAAQsG,IAAIzJ,EAAQ4K,EAAGC,IAGnC,CAOS,eAAA9J,GACR,OAAO,IAAIA,EACZ,CAWkB,kBAAM6O,CACvB5M,KACGb,GAEH,MAAM0N,QAAoBvK,EAAQnD,KAChCmE,EAAcwJ,OACd9O,KAAKsO,MACLnN,EACAnB,KAAKmO,QACLnO,KAAK+O,YAAc,CAAE,GAEvB/M,EAAQ,IAAIhC,KAAKsO,MAAMtM,SACjBgN,EACJhP,KACA6O,EAAYhJ,QACZ7D,EACAsD,EAAcwJ,OACdxJ,EAAc2J,IAGhB,MAAMjD,QAAe5K,QAAQ8K,QAC3BlK,EAAM4J,aACAiD,EAAYhJ,QAAQ4C,IAAI,gCAAkC,KAGlE,GAAIuD,EAAQ,MAAM,IAAIkD,EAAgBlD,EAAOxK,YAE7C,MAAO,CAACQ,KAAU6M,EAAY1N,KAC/B,CASD,YAAM4G,CAAO/F,KAAab,GAExB,IAEIgO,GAFAhI,OAAEA,EAAMjG,GAAEA,EAAEkG,UAAEA,GAAcpH,KAAKmO,QAAQ/H,QAAQpE,EAAOhC,KAAKqG,IAIjE,OAHAc,QAAenH,KAAKmO,QAAQpG,OAAO/H,KAAK6H,UAAW3G,EAAIiG,KAAWhG,GAE9DA,EAAKhB,SAAQgP,EAAIhO,EAAKA,EAAKhB,OAAS,IACjCH,KAAKmO,QAAQ9G,OAClBF,EACAnH,KAAKsO,MACLtO,KAAKqG,GACLnF,EACAiO,GAAKA,EAAE1G,IAAI,wBAA0BrB,OAAY0D,EAEpD,CASQ,kBAAMsE,CAAapN,EAAU6D,GACpC,OAAOlG,MAAMyP,aAAapN,EAAO6D,EAClC,CASQ,eAAM+B,CAAUgB,KAAgBzH,GACvC,IAAKyH,EAAOzI,OAAQ,OAAOyI,EAC3B,MAAMyG,EAAWzG,EAAOrI,IAAKiH,GAAMxH,KAAKmO,QAAQ/H,QAAQoB,EAAGxH,KAAKqG,KAC1DiJ,EAAMD,EAAS9O,IAAKqJ,GAAMA,EAAE1I,IAClC,IAAIqO,EAAUF,EAAS9O,IAAKqJ,GAAMA,EAAEzC,QAOpC,OANAoI,QAAgBvP,KAAKmO,QAAQvG,UAC3B5H,KAAK6H,UACLyH,EACAC,KACGpO,GAEEoO,EAAQhP,IAAI,CAACiP,EAAG5N,IACrB5B,KAAKmO,QAAQ9G,OAAOmI,EAAGxP,KAAKsO,MAAOtO,KAAKqG,GAAIiJ,EAAI1N,IAEnD,CAUkB,qBAAM6N,CAAgB7G,KAAgBzH,GACvD,MAAM0N,QAAoBvK,EAAQnD,KAChCmE,EAAcwJ,OACd9O,KAAKsO,MACLnN,EACAnB,KAAKmO,QACLnO,KAAK+O,YAAc,CAAE,GAEvB,IAAKnG,EAAOzI,OAAQ,MAAO,CAACyI,KAAWiG,EAAY1N,MACnD,MAAMuO,EAAOrN,GAAWsN,mBAAmB/G,EAAO,IAClD,IAAI0G,EAAgD,GAChDI,EAAK/E,MACF+E,EAAKjQ,OAAMiQ,EAAKjQ,KAAO6K,GAASjE,GAAGuC,EAAO,KAC/C0G,cAAmBtP,KAAKmO,QAAQ7D,SAASoF,IAAOE,MAAMhH,EAAOzI,SAE7DmP,EAAM1G,EAAOrI,IAAI,CAACiH,EAAG5F,KACnB,QAA0B,IAAf4F,EAAExH,KAAKqG,IAChB,MAAM,IAAIvG,EACR,oDAAoD8B,GAExD,OAAO4F,EAAExH,KAAKqG,MAIlBuC,QAAexH,QAAQ0G,IACrBc,EAAOrI,IAAIsP,MAAOrI,EAAG5F,KACnB4F,EAAI,IAAIxH,KAAKsO,MAAM9G,GACfkI,EAAK/E,OACPnD,EAAExH,KAAKqG,IACS,WAAdqJ,EAAK/E,MAED+E,EAAKI,UADLR,EAAI1N,GAGF,GAAG4F,EAAExH,KAAKqG,WAId2I,EACJhP,KACA6O,EAAYhJ,QACZ2B,EACAlC,EAAcwJ,OACdxJ,EAAc2J,IAETzH,KAIX,MAAMuI,EACJlB,EAAYhJ,QAAQ4C,IAAI,gCAAkC,GAMtDuH,SAJe5O,QAAQ0G,IAC3Bc,EAAOrI,IAAKiH,GAAMpG,QAAQ8K,QAAQ1E,EAAEoE,aAAamE,OAGtBtJ,OAAO,CAACC,EAA2BpF,EAAGM,KAC7DN,IACFoF,EACmB,iBAAVA,EACHA,EAAQ,QAAQ9E,MAAMN,EAAEE,aACxB,MAAMI,MAAMN,EAAEE,cACfkF,QACNoE,GAEH,GAAIkF,EAAe,MAAM,IAAId,EAAgBc,GAC7C,MAAO,CAACpH,KAAWiG,EAAY1N,KAChC,CASkB,gBAAM8O,CAAW3N,KAAgBnB,GAClD,MAAM0N,QAAoBvK,EAAQnD,KAChCmE,EAAcC,KACdvF,KAAKsO,MACLnN,EACAnB,KAAKmO,QACLnO,KAAK+O,YAAc,CAAE,GAEjB/M,EAAW,IAAIhC,KAAKsO,MAS1B,OARAtM,EAAMhC,KAAKqG,IAAM/D,QACX0M,EACJhP,KACA6O,EAAYhJ,QACZ7D,EACAsD,EAAcC,KACdD,EAAc2J,IAET,CAAC3M,KAAQuM,EAAY1N,KAC7B,CASD,UAAM8G,CAAK/G,KAAiCC,GAC1C,MAAMqG,QAAUxH,KAAKmO,QAAQlG,KAAKjI,KAAK6H,UAAW3G,KAAOC,GACzD,OAAOnB,KAAKmO,QAAQ9G,OAAUG,EAAGxH,KAAKsO,MAAOtO,KAAKqG,GAAInF,EACvD,CASkB,mBAAMgP,CACvBvI,KACGxG,GAEH,MAAM0N,QAAoBvK,EAAQnD,KAChCmE,EAAcC,KACdvF,KAAKsO,MACLnN,EACAnB,KAAKmO,QACLnO,KAAK+O,YAAc,CAAE,GAevB,aAbM3N,QAAQ0G,IACZH,EAAKpH,IAAIsP,MAAO5L,IACd,MAAMuD,EAAI,IAAIxH,KAAKsO,MAEnB,OADA9G,EAAExH,KAAKqG,IAAMpC,EACN+K,EACLhP,KACA6O,EAAYhJ,QACZ2B,EACAlC,EAAcC,KACdD,EAAc2J,OAIb,CAACtH,KAASkH,EAAY1N,KAC9B,CASQ,aAAM6G,CACbL,KACGxG,GAGH,aADsBnB,KAAKmO,QAAQnG,QAAQhI,KAAK6H,UAAWF,KAASxG,IACrDZ,IAAI,CAACiP,EAAG5N,IACrB5B,KAAKmO,QAAQ9G,OAAOmI,EAAGxP,KAAKsO,MAAOtO,KAAKqG,GAAIsB,EAAK/F,IAEpD,CASD,YAAMuG,CAAOnG,KAAab,GAExB,IAAIgG,OAAEA,EAAMjG,GAAEA,EAAEkG,UAAEA,GAAcpH,KAAKmO,QAAQ/H,QAAQpE,EAAOhC,KAAKqG,IAEjE,OADAc,QAAenH,KAAKmO,QAAQhG,OAAOnI,KAAK6H,UAAW3G,EAAIiG,KAAWhG,GAC3DnB,KAAKmO,QAAQ9G,OAAUF,EAAQnH,KAAKsO,MAAOtO,KAAKqG,GAAInF,EAAIkG,EAChE,CAWkB,kBAAM+I,CACvBnO,KACGb,GAEH,MAAM0N,QAAoBvK,EAAQnD,KAChCmE,EAAc8K,OACdpQ,KAAKsO,MACLnN,EACAnB,KAAKmO,QACLnO,KAAK+O,YAAc,CAAE,GAEjB1I,EAAKrE,EAAMhC,KAAKqG,IACtB,IAAKA,EACH,MAAM,IAAIvG,EACR,qDAAqDE,KAAKqG,IAE9D,MAAMgK,QAAiBrQ,KAAKiI,KAAK5B,KAAOwI,EAAY1N,MACpDa,EAAQhC,KAAKsQ,MAAMD,EAAUrO,SACvBgN,EACJhP,KACA6O,EAAYhJ,QACZ7D,EACAsD,EAAc8K,OACd9K,EAAc2J,GACdoB,GAGF,MAAMrE,QAAe5K,QAAQ8K,QAC3BlK,EAAM4J,UACJyE,KACGhO,GAAWkO,UAAUvQ,KAAKsO,UACzBO,EAAYhJ,QAAQ4C,IAAI,gCAAkC,KAGlE,GAAIuD,EAAQ,MAAM,IAAIkD,EAAgBlD,EAAOxK,YAK7C,OAJIa,GAAWO,YAAYyN,KACpBhO,GAAWO,YAAYZ,IAC1BK,GAAWmO,YAAYxO,EAAOK,GAAWO,YAAYyN,KAElD,CAACrO,KAAU6M,EAAY1N,KAC/B,CASQ,eAAM+G,CAAUU,KAAgBzH,GACvC,MAAMoO,EAAU3G,EAAOrI,IAAKiH,GAAMxH,KAAKmO,QAAQ/H,QAAQoB,EAAGxH,KAAKqG,KAO/D,aANsBrG,KAAKmO,QAAQjG,UACjClI,KAAK6H,UACL0H,EAAQhP,IAAKiP,GAAMA,EAAEtO,IACrBqO,EAAQhP,IAAKiP,GAAMA,EAAErI,WAClBhG,IAEUZ,IAAI,CAACkQ,EAAG7O,IACrB5B,KAAKmO,QAAQ9G,OAAOoJ,EAAGzQ,KAAKsO,MAAOtO,KAAKqG,GAAIkJ,EAAQ3N,GAAGV,IAE1D,CAWkB,qBAAMwP,CACvB9H,KACGzH,GAEH,MAAM0N,QAAoBvK,EAAQnD,KAChCmE,EAAc8K,OACdpQ,KAAKsO,MACLnN,EACAnB,KAAKmO,QACLnO,KAAK+O,YAAc,CAAE,GAEjBO,EAAM1G,EAAOrI,IAAKiH,IACtB,MAAMtG,EAAKsG,EAAExH,KAAKqG,IAClB,IAAKnF,EAAI,MAAM,IAAIpB,EAAc,kCACjC,OAAOoB,IAEHyP,QAAkB3Q,KAAKgI,QAAQsH,KAAQT,EAAY1N,MACzDyH,EAASA,EAAOrI,IAAI,CAACiH,EAAG5F,KACtB4F,EAAIxH,KAAKsQ,MAAMK,EAAU/O,GAAI4F,GACzBnF,GAAWO,YAAY+N,EAAU/O,MAC9BS,GAAWO,YAAY4E,IAC1BnF,GAAWmO,YAAYhJ,EAAGnF,GAAWO,YAAY+N,EAAU/O,MAExD4F,UAEHpG,QAAQ0G,IACZc,EAAOrI,IAAI,CAACiH,EAAG5F,IACboN,EACEhP,KACA6O,EAAYhJ,QACZ2B,EACAlC,EAAc8K,OACd9K,EAAc2J,GACd0B,EAAU/O,MAKhB,MAAMmO,EACJlB,EAAYhJ,QAAQ4C,IAAI,gCAAkC,GAQtDuH,SANe5O,QAAQ0G,IAC3Bc,EAAOrI,IAAI,CAACiH,EAAG5F,IACbR,QAAQ8K,QAAQ1E,EAAEoE,UAAU+E,EAAU/O,GAAI4F,KAAMuI,OAIvBtJ,OAAO,CAACC,EAA2BpF,EAAGM,KAC7DN,IACFoF,EACmB,iBAAVA,EACHA,EAAQ,QAAQ9E,MAAMN,EAAEE,aACxB,MAAMI,MAAMN,EAAEE,cACfkF,QACNoE,GAEH,GAAIkF,EAAe,MAAM,IAAId,EAAgBc,GAQ7C,OANApH,EAAOlH,QAAQ,CAAC8F,EAAG5F,KACbS,GAAWO,YAAY+N,EAAU/O,MAC9BS,GAAWO,YAAY4E,IAC1BnF,GAAWmO,YAAYhJ,EAAGnF,GAAWO,YAAY+N,EAAU/O,QAG1D,CAACgH,KAAWiG,EAAY1N,KAChC,CASkB,kBAAMyP,CAAatO,KAAanB,GACjD,MAAM0N,QAAoBvK,EAAQnD,KAChCmE,EAAcuL,OACd7Q,KAAKsO,MACLnN,EACAnB,KAAKmO,QACLnO,KAAK+O,YAAc,CAAE,GAEjB/M,QAAchC,KAAKiI,KAAK3F,KAAQuM,EAAY1N,MAQlD,aAPM6N,EACJhP,KACA6O,EAAYhJ,QACZ7D,EACAsD,EAAcuL,OACdvL,EAAc2J,IAET,CAAC3M,KAAQuM,EAAY1N,KAC7B,CASD,YAAM,CAAOD,KAAiCC,GAC5C,MAAMqG,QAAUxH,KAAKmO,QAAQ9F,OAAOrI,KAAK6H,UAAW3G,KAAOC,GAC3D,OAAOnB,KAAKmO,QAAQ9G,OAAUG,EAAGxH,KAAKsO,MAAOtO,KAAKqG,GAAInF,EACvD,CASkB,qBAAM4P,CACvBnJ,KACGxG,GAEH,MAAM0N,QAAoBvK,EAAQnD,KAChCmE,EAAcuL,OACd7Q,KAAKsO,MACLnN,EACAnB,KAAKmO,QACLnO,KAAK+O,YAAc,CAAE,GAEjBnG,QAAe5I,KAAKgI,QAAQL,KAASkH,EAAY1N,MAYvD,aAXMC,QAAQ0G,IACZc,EAAOrI,IAAIsP,MAAOrI,GACTwH,EACLhP,KACA6O,EAAYhJ,QACZ2B,EACAlC,EAAcuL,OACdvL,EAAc2J,MAIb,CAACtH,KAASkH,EAAY1N,KAC9B,CASQ,eAAMiH,CACbT,KACGxG,GAGH,aADsBnB,KAAKmO,QAAQ/F,UAAUpI,KAAK6H,UAAWF,KAASxG,IACvDZ,IAAI,CAACiP,EAAG5N,IACrB5B,KAAKmO,QAAQ9G,OAAOmI,EAAGxP,KAAKsO,MAAOtO,KAAKqG,GAAIsB,EAAK/F,IAEpD,CA8BD,MAAAmP,CACEC,GAEA,OAAOhR,KAAKmO,QACT8C,YACAF,OAAOC,GACPE,KAAKlR,KAAKsO,MACd,CAYD,WAAM6C,CACJ3F,EACA4F,EACAC,EAAwBxS,EAAeyS,IACvCC,EACAC,GAEA,MAAMC,EAA2B,CAACL,EAASC,GACrCF,EAAQnR,KAAK+Q,SAASW,MAAMlG,GAAW4F,QAAQK,GAGrD,OAFIF,GAAOJ,EAAMI,MAAMA,GACnBC,GAAML,EAAMQ,OAAOH,GAChBL,EAAMS,SACd,CAED,IAAA/M,CAAKgN,GACH,OAAO1G,GAAUtG,KAAQgN,EAC1B,CAWD,OAAAzR,CAAQC,EAAoBC,GACrBN,KAAKsI,iBACRrD,OAAO8B,eAAe/G,KAAM,kBAAmB,CAC7CkH,MAAOlH,KAAKD,kBACZkH,UAAU,IAEd,MAAMlG,EAAMf,KAAKe,IAAIgF,IAAI/F,KAAKI,SACxByH,EAAYxF,GAAWrB,MAAMhB,KAAKsO,OACxCtO,KAAKmO,QAAQ/N,QAAQJ,KAAOgB,GAAkB6G,IAAc7G,GAC5DD,EAAI0D,QACF,iBAAiBzE,KAAKmO,kCAAkCtG,KAE1D7H,KAAKsI,gBAAiBlI,QAAQC,EAAUC,GACxCS,EAAI0D,QAAQ,2BAA2BpE,EAASmB,WACjD,CAWD,SAAAb,CAAUN,GACR,IAAKL,KAAKsI,gBACR,MAAM,IAAIxI,EACR,sEAEJE,KAAKsI,gBAAgB3H,UAAUN,GAC/BL,KAAKe,IACFgF,IAAI/F,KAAKW,WACT8D,QAAQ,YAAYpE,EAASmB,sBAC3BxB,KAAKsI,gBAAgBpI,UACxBF,KAAKe,IAAI0D,QACP,oCAAoCzE,KAAKmO,0BAE3CnO,KAAKmO,QAAQxN,UAAUX,MACvBA,KAAKe,IAAI0D,QAAQ,+BAA+BzE,KAAKmO,QAAQtK,SAEhE,CAYD,qBAAM/C,CACJE,EACAC,EACAC,KACGC,GAEH,IAAKnB,KAAKsI,gBACR,MAAM,IAAIxI,EACR,sEAEJE,KAAKe,IACFgF,IAAI/F,KAAKc,iBACT2D,QACC,YAAYzE,KAAKsI,gBAAgBpI,yBAAyBF,cAExDA,KAAKsI,gBAAgBxH,gBACzBd,KAAKe,IACLC,EACAC,EACA6Q,MAAMC,QAAQ7Q,GACVA,EAAGX,IAAKqB,GAAM0I,GAASI,WAAW1K,KAAKuO,QAAQ5D,KAAM/I,IACpD0I,GAASI,WAAW1K,KAAKuO,QAAQ5D,KAAMzJ,MACzCC,EAEN,CAWD,aAAMM,CACJT,EACAC,EACAC,KACGC,GAEH,OAAOnB,KAAKc,gBAAgBE,EAAOC,EAAOC,KAAOC,EAClD,CAaD,eAAOiI,CACLpH,EACA2B,KACGxC,GAEH,IAAI6Q,EAEJ,MAAMpO,EACJD,GACAxB,QAAQS,YAAYM,GAAQZ,IAAI1D,EAAgB2J,SAAUvG,IAC1DkB,GAAQG,eACV,IACE2O,EAAOhS,KAAKyI,IAAIzG,EAAO4B,EAExB,CAAC,MAAOtC,GACP0Q,OAAOlH,CACR,CAED,GAAIkH,aAAgB3P,GAAY,OAAO2P,EAEvC,MAAMnO,EACJF,GACAxB,QAAQS,YAAYM,GAAQZ,IAAI1D,EAAgB2J,SAAUvG,IACzDgQ,GACC7P,QAAQS,YAAYM,GAAQZ,IAAI1D,EAAgB2J,SAAUyJ,IAC5D9O,GAAQG,eACJ8K,EAAmDtK,EACrDX,GAAQuF,IAAI5E,QACZiH,EAEJ,IAAKqD,EACH,MAAM,IAAIrO,EACR,mDAAmD+D,GAIvD,OADAmO,EAAOA,GAAS7D,EAAQrK,aACjB,IAAIkO,EAAK7D,EAASnM,KAAUb,EACpC,CAWO,UAAOsH,CACbzG,EACA2B,GAEA,MAAMlE,EAAe4C,GAAWrB,MAAMgB,GACtC,IAAIiQ,EAAuBxS,EAI3B,GAHIkE,IACFsO,EAAe,CAACxS,EAAMkE,GAAOZ,KAAKmP,IAEhCD,KAAgBjS,KAAKwD,OACvB,OAAOxD,KAAKwD,OAAOyO,GAGrB,GAAIxS,KAAQO,KAAKwD,OACf,OAAOxD,KAAKwD,OAAO/D,GACrB,MAAM,IAAIK,EACR,8CAA8CL,EAEjD,CAWD,eAAO+O,CACLxM,EACAgQ,EACArO,GAEA,IAAIlE,EAAO4C,GAAWrB,MAAMgB,GAI5B,GAHI2B,IACFlE,EAAO,CAACA,EAAMkE,GAAOZ,KAAKmP,IAExBzS,KAAQO,KAAKwD,QACXxD,KAAKwD,OAAO/D,aAAiB4C,GAC/B,MAAM,IAAIvC,EAAiBL,EAAH,sCAE5BO,KAAKwD,OAAO/D,GAAQuS,CACrB,CASD,kBAAOxB,CAA6BxO,EAAU0F,GAC5CzC,OAAO8B,eAAe/E,EAAOpD,EAAgBiI,SAAU,CACrDG,YAAY,EACZ5H,cAAc,EACd6H,UAAU,EACVC,MAAOQ,GAEV,CASD,kBAAO9E,CAA6BZ,GAClC,MAAM9C,EAAa+F,OAAOkN,yBACxBnQ,EACApD,EAAgBiI,UAElB,OAAO3H,EAAaA,EAAWgI,WAAQ4D,CACxC,CAQD,qBAAOsH,CAAgCpQ,GAClBiD,OAAOkN,yBACxBnQ,EACApD,EAAgBiI,kBAEM7E,EAAcpD,EAAgBiI,SACvD,CAUD,yBAAO8I,CAAoC3N,GACzC,MAAMqE,EAAKgM,EAAerQ,GAAOd,GAC3BwG,EAAWvF,QAAQS,YACvBP,GAAWC,IAAI4G,EAAOoJ,IACtBtQ,EACAqE,GAEF,IAAKqB,EACH,MAAM,IAAI5H,EACR,yEAEJ,OAAO4H,CACR,CASD,cAAO6K,CAAyBvQ,GAC9B,MAAMwQ,EAAkBC,EAAWC,yBACjC1Q,aAAiBE,EAAQF,EAAQ,IAAIA,EACrCkH,EAAOyJ,SAET,OAAO1N,OAAOuB,QAAQgM,GAAmB,IAAI/L,OAC3C,CAACC,GAAuDzC,EAAG0C,MACzD,MAAMiM,EAAOjM,EAAIrG,OAAQuS,GAAMA,EAAEvQ,IAAIwQ,WAAWlU,EAAgBmU,QAChE,GAAIH,GAAQA,EAAKzS,OACf,IAAK,MAAM6S,KAAOJ,EAAM,CACtB,MAAMtQ,IAAEA,EAAG2Q,MAAEA,GAAUD,EACvBtM,EAAMzC,GAAKyC,EAAMzC,IAAM,CAAA,EACvByC,EAAMzC,GAAG3B,GAAO2Q,CACjB,CAEH,OAAOvM,GAET,CAAE,EAEL,CASD,gBAAO6J,CAA2BvO,GAChC,MAAML,EAAmB,GACzB,IAAIsI,EACFjI,aAAiBE,EACb+C,OAAOiO,eAAelR,GACrBA,EAAciI,UACrB,KAAoB,MAAbA,GAAmB,CACxB,MAAMgJ,EAAkBhJ,EAAUrL,EAAgBuU,WAC9CF,GACFtR,EAAOjB,QAAQuS,GAEjBhJ,EAAYhF,OAAOiO,eAAejJ,EACnC,CACD,OAAOtI,CACR,CASD,YAAOX,CAAuBgB,GAC5B,OAAOD,GAAaC,EACrB,CAUD,aAAOoR,CAAwBpR,EAAUW,GACvC,OAAOD,GAAcV,EAAOW,EAC7B,EChoCa,SAAA0Q,GACdrR,EACA6B,GAEA,IAAKA,EAAS,CACZ,MAAMvB,EAAMY,GAAQZ,IAAI1D,EAAgB2J,SAKxC,KAJA1E,EAAU1B,QAAQS,YAChBN,EACAN,aAAiBE,EAAQF,EAAMzC,YAAcyC,IAG7C,MAAM,IAAIlC,EACR,0CAAyCkC,aAAiBE,EAAQF,EAAMzC,YAAYE,KAAOuC,EAAMvC,MAEtG,CACD,OAAO6T,EAAG1U,EAAgB2U,WAAY1P,EAAS9B,GAAaC,GAC9D,CD4xBEgI,EAAA,CADCjL,uGAeAsD,GAAA4H,UAAA,UAAA,MAWDD,EAAA,CADCjL,8FAiBAsD,GAAA4H,UAAA,YAAA,MA8SC/G,KAASA,GAAyB,gBAAIb,IEzmCpC,MAAOmR,WAA4BC,EAGvC,OAAc1S,GAEZ,OADKf,KAAKuK,SAAQvK,KAAKuK,OAASC,EAAQzE,IAAI/F,OACrCA,KAAKuK,MACb,CAED,WAAAhL,GACEI,OACD,CAqCQ,GAAA8I,CACPhJ,EACAoE,GAEA,MAAM9C,EAAMf,KAAKe,IAAIgF,IAAI/F,KAAKyI,KAE9B,IAAIiL,EACJ,IACEA,EAAa/T,MAAM8I,IAAIhJ,EACxB,CAAC,MAED,CAED,IAAKiU,EAAY,CACf,IAAIC,EAMJ,GALoB,mBAATlU,EAAqBkU,EAAYlU,EACnB,iBAATA,GAAqC,iBAATA,IAC1CkU,EAAYzR,EAAMuG,IAAIhJ,EAAK+B,cAGxBmS,EAAW,OAGhB,MAAMC,EAAU1Q,GAAQZ,IAAI1D,EAAgB2J,SACtCsL,EACJhQ,GACC1B,QAAQS,YAAYgR,EAASD,GAEhC,IAGE,IAAIG,EAAaD,EACjB,IACMA,GAAiB3Q,GAAQuF,IAAIoL,EAClC,CAAC,MACA,MAAMrL,EAAUtF,GAAQsF,QACpBA,GAAWA,EAAQ3E,UAAYgQ,IACjCC,EAAatL,EAAQ7E,MACxB,CAMD,GAJA+P,EAAarR,GAAW+G,SACtBuK,EACAG,GAEEJ,aAAsBrR,GAAY,OAAOqR,EAG7C,MAAMzK,EACJ4K,GACC1R,QAAQS,YAAYgR,EAAUF,EAAmBnU,cAGjD4C,QAAQS,YAAYgR,EAASD,GAChCI,EAAYvF,SACVkF,EACAL,GACEM,EACA1K,GAGL,CAAC,MAAO3H,GACPP,EAAIiF,MACF,uFAAuF1E,GAAa0S,SAAW/N,KAAKC,UAAU5E,KAEhI,MAAM2S,EAAY5R,GAAwB,IAAEsR,EAAWE,GACvD,GAAwB,mBAAbI,EAAyB,CAClC,MAAM9F,EAAU0F,EACX3Q,GAAQuF,IAAIoL,GACZ3Q,GAAQsF,QACb,IAAK2F,EAAS,OAEd,OADiB,IAAI8F,EAAS9F,EAASwF,EAExC,CACF,CACF,CAED,OAAOD,CACR,ECxJG,MAAOhP,WAAiBnB,EAiB5B,WAAAhE,GACEI,OACD,CAsCS,gBAAMmF,GACd,IAAK9E,KAAKmO,QAOR,YAHAnO,KAAKe,IAAI0D,QACP,6DAIJ,MAAM0J,EAAUnO,KAAKmO,QAEnB,CACE7I,EAAcwJ,OACdxJ,EAAc8K,OACd9K,EAAcuL,OACdqD,EAAsBC,WACtBD,EAAsBE,WACtBF,EAAsBG,YAExB3S,QAAS4S,IACT,IAAKnG,EAAQmG,GACX,MAAM,IAAIxU,EACR,UAAUwU,kBAAuBnG,EAAQxK,8CAG7C,IAAIzE,EAAa+F,OAAOkN,yBAAyBhE,EAASmG,GACtDC,EAAapG,EACjB,MAAQjP,GAAcqV,IAAUtP,OAAOgF,WACrCsK,EAAQtP,OAAOiO,eAAeqB,GAC9BrV,EAAa+F,OAAOkN,yBAAyBoC,EAAOD,GAGjDpV,GAAeA,EAAW+H,SAmB/BkH,EAAQmG,GAAU,IAAI3K,MAAMwE,EAAQmG,GAAS,CAC3CtG,MAAO6B,MAAO7Q,EAAawV,EAASC,KAClC,MAAO5M,EAAWyH,GAAOmF,EACnB9S,QAAe3C,EAAOgP,MAAMwG,EAASC,GAa3C,OAZAzU,KAAKc,gBAAgB+G,EAjBzB,CAAsByM,IACpB,OAAQA,GACN,KAAKJ,EAAsBC,WACzB,OAAO7O,EAAcwJ,OACvB,KAAKoF,EAAsBE,WACzB,OAAO9O,EAAc8K,OACvB,KAAK8D,EAAsBG,WACzB,OAAO/O,EAAcuL,OACvB,QACE,OAAOyD,EAEZ,EAMmCI,CAAaJ,GAAShF,GACnDqF,KAAK,KACJ3U,KAAKe,IAAI0D,QACP,kCAAkC6P,SAAczM,KAElD7H,KAAKe,IAAIiF,MAAM,QAAQsJ,KAExBsF,MAAOtT,GACNtB,KAAKe,IAAIQ,MACP,2CAA2C+S,QAAazM,MAAcvG,MAGrEK,KAlCT3B,KAAKe,IAAIQ,MACP,yBAAyB+S,mCAqChC,CAOD,WAAMjQ,GAEL,CAQD,OAAAjE,CAAQC,GACN,KAAMA,aAAoB6C,IACxB,MAAM,IAAImH,GAAiB,6CAC7BrK,KAAKmO,QAAU9N,EACfL,KAAK4I,OAAS1F,GAAQ0F,OAAO5I,KAAKmO,QAAQxK,OAC1C3D,KAAK8E,aAAa6P,KAAK,IACrB3U,KAAKe,IAAI0D,QACP,4BAA4BzE,KAAKmO,QAASxK,iBAG/C,CAQD,SAAAhD,CAAUN,GACR,GAAIL,KAAKmO,UAAY9N,EACnB,MAAM,IAAIgK,GACR,+DAEJrK,KAAKmO,aAAUrD,CAChB,CAUD,qBAAMhK,CACJE,EACAC,EACAC,GAEA,GAAKlB,KAAKmO,QAMV,UACQnO,KAAKmO,QAAQ1M,QAAQT,EAAOC,EAAOC,EAC1C,CAAC,MAAOI,GACP,MAAM,IAAIxB,EAAc,+BAA+BwB,EACxD,MATCtB,KAAKe,IAAI0D,QACP,kEAAkEzD,KAASC,IAShF,ECxMa,SAAA6C,GACd9B,EACA6B,GAEA,MAAQ,CAACkK,EAAe9O,IAClBA,EACK4V,EAAO7S,EAAMQ,EAAUC,SAAiCT,EAAxD6S,CACL9G,EACA9O,IAIJyI,EAASrF,GAAWC,IAAI4G,EAAOC,YAAa4E,EAAStO,KAArDiI,CAA2D1F,GAC3D6B,EACEA,GACA1B,QAAQS,YAAYM,GAAQZ,IAAI1D,EAAgB2J,SAAUwF,GAC5D1L,GAAWmM,SACTxM,EAAMQ,EAAUC,SAAiCT,EACjD+L,EACAlK,GAEK6P,EAAW1R,EAAMQ,EAAUC,SAAiCT,EAAO,CACxE8S,SAAWC,IACT9P,OAAO8B,eAAegO,EAAU7L,EAAO8L,MAAO,CAC5ChO,YAAY,EACZ5H,cAAc,EACd6H,UAAU,EACVC,MAAOlF,IAEF+S,IARJrB,CAUJ3F,GAEP,CD0KI7K,KAASA,GAAuB,cAAIwB,IExOvCiB,EAAiBC,sBAAuB,CAEvC5D,EACA4L,KAEA,MAAMqH,EACJtP,EAAS8C,IAAIzG,EAAOpD,EAAgBsW,aACtC,OAAKD,EAEEhQ,OAAOuB,QAAQyO,GACnB3U,OAAO,EAAC,CAAGqG,KAASA,EAAIwO,SAASvH,IACjCrN,IAAI,EAAE+B,KAASA,GAJQ,EAK5B,GAAE8S,KAAKzP,GCAD,MAAO0P,WAAsBvV,EACjC,WAAAP,CAAYC,GACVG,MAAMH,EAAK6V,GAAc5V,KAAM,IAChC,ECwCU,MAAA6V,GAAuC,CAClD3K,UAAMG,EACNgF,WAAW,EACXyF,UAAW,EACXC,YAAa,EACbC,OAAO,GASIC,GAA0CJ,GAQ1CK,GAAmC,CAC9ChL,KAAM,SACNmF,WAAW,EACXyF,UAAW,EACXC,YAAa,EACbC,OAAO,GASIG,GAAkC3Q,OAAOC,OACpD,CAAA,EACAyQ,GACA,CACEhL,KAAM,WCxCHkF,eAAegG,GAIpB7T,EACA6D,EACAlC,EACAG,GAEA,IAAKA,EAAY,CACf,MAAMvE,EAAc2C,EAAMuG,IAAIzG,EAAMzC,YAAYE,MAChD,IAAKF,EACH,MAAM,IAAIO,EAAc,wBAAwBkC,EAAMzC,YAAYE,MACpEqE,EAAazB,GAAW+G,SACtB7J,EACAoE,EAEH,CACD,QAAoC,IAAzB3B,EAAM8B,EAAWuC,IAC1B,OAAOvC,EAAWiE,OAAO/F,EAAO6D,GAEhC,IACE,OAAO/B,EAAWqE,OAAOnG,EAAO6D,EACjC,CAAC,MAAOvE,GACP,KAAMA,aAAawU,GAAgB,MAAMxU,EACzC,OAAOwC,EAAWiE,OAAO/F,EAAO6D,EACjC,CAEL,CAoDOgK,eAAekG,GAQpBlQ,EACAmQ,EACA1T,EACAN,GAEA,MAAMiU,EAAqBjU,EAAMM,GACjC,IAAK2T,EAAe,OAEpB,GAA6B,iBAAlBA,EAA4B,CACrC,MAAMC,EAAYC,GAChBnU,EACAM,EACAtC,KAAKmO,QAAQxK,OAETsE,QAAaiO,EAAUjO,KAAKgO,GAGlC,aAFMG,GAAsBvQ,EAAS7D,EAAOM,EAAK2T,EAAehO,QAC/DjG,EAAcM,GAAO2T,EAEvB,CAEDD,EAAK1H,MACmB,iBAAf0H,EAAK1H,MAAqB0H,EAAK1H,MAAS0H,EAAK1H,QAAgB7O,KAEtE,MAAMF,EAAc2C,EAAMuG,IAAIuN,EAAK1H,OACnC,IAAK/O,EACH,MAAM,IAAIO,EAAc,wBAAwBkW,EAAK1H,OACvD,MAAM0D,EAAkB3P,GAAW+G,SAAS7J,EAAaS,KAAKmO,QAAQxK,OAChE0S,QAAgBrE,EAAKjK,OAAOkO,GAC5B5P,EAAKgM,EAAegE,GAASnV,SAC7BkV,GAAsBvQ,EAAS7D,EAAOM,EAAK+T,EAAQhQ,GAAKgQ,GAC7DrU,EAAcM,GAAO+T,EAAQhQ,EAChC,CAiDOwJ,eAAeyG,GAQpBzQ,EACAmQ,EACA1T,EACAN,GAEA,MAAMiU,EAAqBjU,EAAMM,GACjC,IAAK2T,EAAe,OACpB,GAAID,EAAKO,QAAQpO,SAAWrJ,EAAQqL,QAAS,OAE7C,GAA6B,iBAAlB8L,EAA4B,CACrC,MAAMC,EAAYC,GAChBnU,EACAM,EACAtC,KAAKmO,QAAQxK,OAETsE,QAAaiO,EAAUjO,KAAKgO,GAGlC,aAFMG,GAAsBvQ,EAAS7D,EAAOM,EAAK2T,EAAehO,QAC/DjG,EAAcM,GAAO2T,EAEvB,CAED,MAAMO,QAAgBX,GACpB7T,EAAMM,GACNuD,EACA7F,KAAKmO,QAAQxK,OAET0C,EAAKgM,EAAemE,GAAStV,SAC7BkV,GACJvQ,EACA7D,EACAM,EACAkU,EAAQnQ,GACRmQ,GAEFxU,EAAMM,GAAOkU,EAAQnQ,EACvB,CA2COwJ,eAAe4G,GAQpB5Q,EACAmQ,EACA1T,EACAN,GAEA,MAAMiU,EAAqBjU,EAAMM,GACjC,IAAK2T,EAAe,OACpB,GAAID,EAAKO,QAAQpO,SAAWrJ,EAAQqL,QAAS,OAC7C,MAAM+L,EAAqBC,GACzBnU,EACAM,EACAtC,KAAKmO,QAAQxK,OAEf,IAAI+S,EAIFA,EAHIT,aAAyB/T,QAGbgU,EAAU7N,OACvBrG,EAAMM,GAAW4T,EAAU7P,WAHd6P,EAAU7N,OAAOrG,EAAMM,UAKnC8T,GACJvQ,EACA7D,EACAM,EACAoU,EAAQR,EAAU7P,IAClBqQ,EAEJ,CAwDO7G,eAAe8G,GAQpB9Q,EACAmQ,EACA1T,EACAN,GAEA,MAAM4U,EAAsB5U,EAAMM,GAClC,IAAKsU,IAAmBA,EAAezW,OAAQ,OAC/C,MAAM0W,SAAmBD,EAAe,GACxC,IAAKA,EAAeE,MAAOC,UAAqBA,IAASF,GACvD,MAAM,IAAI/W,EACR,+CAA+CwC,+BAEnD,MAAM0U,EAAe,IAAIC,IAAI,IAAIL,IACjC,GAAkB,WAAdC,EAAwB,CAC1B,MAAM7E,EAAOmE,GAA2BnU,EAAOM,EAAKtC,KAAKmO,QAAQxK,OACjE,IAAK,MAAMzC,KAAM8V,EAAc,CAC7B,MAAM/O,QAAa+J,EAAK/J,KAAK/G,SACvBkV,GAAsBvQ,EAAS7D,EAAOM,EAAKpB,EAAI+G,EACtD,CAED,YADCjG,EAAcM,GAAO,IAAI0U,GAE3B,CAED,MAAME,EAAS7E,EAAeuE,EAAe,IAAI1V,GAE3CS,EAAsB,IAAIsV,IAEhC,IAAK,MAAMzP,KAAKoP,EAAgB,CAC9B,MAAMzP,QAAe0O,GAAerO,EAAG3B,EAAS7F,KAAKmO,QAAQxK,aACvDyS,GAAsBvQ,EAAS7D,EAAOM,EAAK6E,EAAO+P,GAAS/P,GACjExF,EAAOwV,IAAIhQ,EAAO+P,GACnB,CAEAlV,EAAcM,GAAO,IAAIX,EAC5B,CAkCOkO,eAAeuH,GAQpBvR,EACAmQ,EACA1T,EACAN,GAEA,MAAMuU,QAAEA,GAAYP,EACpB,GAAIO,EAAQpO,SAAWrJ,EAAQqL,QAC/B,OAAOwM,GAAkB3I,KAAMhO,KAC7B6F,EACAmQ,EACA1T,EACAN,EAEJ,CAkDO6N,eAAewH,GAQpBxR,EACAmQ,EACA1T,EACAN,GAEA,GAAIgU,EAAKO,QAAQlO,SAAWvJ,EAAQqL,QAAS,OAC7C,MAAMnB,EAAShH,EAAMM,GACrB,IAAK0G,IAAWA,EAAO7I,OAAQ,OAC/B,MAAM0W,SAAmB7N,EAAO,GAEhC,IADuBA,EAAO8N,MAAOC,UAAqBA,IAASF,GAEjE,MAAM,IAAI/W,EACR,+CAA+CwC,+BAEnD,MAAMgV,EAA+B,WAAdT,EACjB7E,EAAOsF,EACTjV,GAAW+G,SAASJ,EAAO,GAAIhJ,KAAKmO,QAAQxK,OAC5CwS,GAA2BnU,EAAOM,EAAKtC,KAAKmO,QAAQxK,OAElDqT,EAAe,IAAIC,IAAI,IACvBK,EACAtO,EAAOzI,IAAKsS,GAA2BA,EAAEb,EAAK3L,KAC9C2C,IAGN,IAAK,MAAM9H,KAAM8V,EAAahO,SAAU,CACtC,MAAM0N,QAAgB1E,EAAK3J,OAAOnH,SAC5BkV,GAAsBvQ,EAAS7D,EAAOM,EAAKpB,EAAIwV,EACtD,CACA1U,EAAcM,GAAO,IAAI0U,EAC5B,UAYgBO,GACd1P,EACA2P,EACAtW,GAEA,MAAO,CAACtC,EAAgB6Y,SAAU5P,EAAW2P,EAAWtW,GAAI6B,KAAK,IACnE,CAgBO8M,eAAeuG,GAIpBvQ,EACA6R,EACAzY,EACA0Y,EACAC,GAEA,MAAMC,EAAWN,GACfG,EAAYnY,YAAYE,KACxBR,EACA0Y,GAEF,OAAO9R,EAAQM,WAAW,CAAE0R,CAACA,GAAWD,GAC1C,CAwDO/H,eAAeiI,GAQpBjS,EACAmQ,EACA1T,EACAN,GAEA,IAAKgU,EAAK8B,SAAU,OACpB,MAAMC,EAAc/V,EAAMM,GACpB0V,EAAQlG,MAAMC,QAAQgG,GAC5B,QAAsB,IAAXA,GAA2BC,GAA2B,IAAlBD,EAAO5X,OAAe,OA0BrE,MAAM8X,OAxBNpI,OACEV,EACAnN,EACAkW,EACAC,EACAxU,KAEA,IAAIkU,EACAlR,EACJ,MAAMyR,EAAe,GACrB,IAAK,MAAMC,KAAeF,EAAe,CACvCN,EAAWN,GAAevV,EAAMzC,YAAYE,KAAMyY,EAAUG,GAC5D,IACE1R,QAAYwI,EAAE1G,IAAIoP,EAEnB,CAAC,MAAOvW,GACP,MAAM0Q,EAAOmE,GAA2BnU,EAAOkW,EAAUvU,GACzD,IAAKqO,EAAM,MAAM,IAAIlS,EAAc,uBACnC6G,QAAYqL,EAAK/J,KAAKoQ,EACvB,CACDD,EAAQ1X,KAAKiG,EACd,CACD,OAAOyR,CACR,EACiBE,CAChBzS,EACA7D,EACAM,EACA0V,EAAQD,EAAS,CAACA,GAClB/X,KAAKmO,QAAQxK,OAEd3B,EAAcM,GAAO0V,EAAQC,EAAMA,EAAI,EAC1C,CAQA,MAAMM,GAAc,CAClB,QACA,SACA,SACA,UACA,SACA,WACA,SACA,YACA,OACA,mBA6CcpC,GACdnU,EACA/C,EACA0E,GAEA,MAAM6U,EAAQrW,QAAQS,YACpB6V,EAAWnW,IACTwP,MAAMC,QAAQ/P,EAAM/C,IAChByZ,EAAeC,KACfD,EAAeE,MAErB5W,EACA/C,GAEI4Z,EAAmB/G,MAAMC,QAAQ/P,EAAM/C,IACzCuZ,EAAMlR,MACNkR,EAAMK,YACV,IAAKL,IAAUK,EACb,MAAM,IAAI/Y,EACR,gDAAgDb,GAGpD,MAGM6Z,GAFJhH,MAAMC,QAAQ8G,GAAe,IAAIA,GAAe,CAACA,IACjDtY,IAAKwY,GAAoB,mBAANA,EAAmBA,IAAMA,GACTC,KAClCD,IAAOR,GAAYpD,UAAS,GAAG4D,GAAIE,gBAEtC,IAAKH,EACH,MAAM,IAAIhZ,EACR,gBAAgBb,4CAEpB,MAAMM,EAA0C2C,EAAMuG,IAAIqQ,GAC1D,IAAKvZ,EACH,MAAM,IAAIO,EAAc,iCAAiCgZ,GAE3D,OAAOzW,GAAW+G,SAAS7J,EAAaoE,EAC1C,CCpxBM,SAAU3C,GAAqB0O,GACnC,OAAsB1Q,IACpB,MAAMsD,EAAMY,GAAQZ,IAAI1D,EAAgB2D,OACxC,OAAOS,EAAW+C,IAAIzD,GACnB4W,OAAO,CACNC,UAAWzR,EACXvG,KAAM,CAACmB,EAAKoN,GAAQ1Q,EAAOS,KAAKwZ,iBAEjCjL,OALIhL,CAKIhE,EACb,CACF,CAUM,SAAUoU,GAAsBgG,GACpC,MAAM9W,EAAMY,GAAQZ,IAAI1D,EAAgBiE,QACxC,OAAOG,EAAW+C,IAAIzD,GACnB4W,OAAO,CACNC,UAAW,CAAgBlV,EAAGkL,IACrB,CAAgBlN,EAAU4C,IACxBwU,EAAapV,EAAGkL,GAAKtK,EAArBwU,CAA2BpX,EAAK4C,GAG3C1D,KAAM,CAACmB,EAAK8W,KAEbpL,OACL,UAyBgBpN,GACd0Y,EACAC,EACA9Z,GAuCA,OAAOuD,EAAW+C,IAAInH,EAAgBmU,OACnCmG,OAAO,CACNC,UAvCJ,CACEG,EACAC,EACA9Z,KAE0B,iBAAf6Z,IACT7Z,EAAO6Z,EACPA,OAAaxO,EACbyO,OAAezO,GAEW,iBAAjByO,IACT9Z,EAAO8Z,EACPA,OAAezO,IAEZyO,GAAgBD,GAEjBA,EAAWN,KACRQ,IAAO,CAAC3a,EAAeyS,IAAKzS,EAAe4a,KAAKtE,SAASqE,MAG5DD,EAAeD,EACfA,OAAaxO,GAIVuO,EACLhX,GAAWC,IACT,GAAG1D,EAAgBmU,QAAQwG,GAAgBA,EAAapZ,OAAS,IAAIoZ,EAAaxW,KAAK,KAAS,MAElG,CACEuW,WAAYA,EACZC,aAAcA,EACd9Z,KAAMA,KAQR0B,KAAM,CAACmY,EAAYC,EAAc9Z,KAElCuO,OACL,CAmBO6B,eAAe6J,GAQpB7T,EACAmQ,EACA1T,EACAN,GAEA,GAAMA,EAAcM,WACGtC,KAAK+Q,SACzBW,MAAMvG,GAAUxI,UAAUL,GAAKmK,GAAGzK,EAAMM,KACxCsP,WACUzR,OACX,MAAM,IAAIwZ,EACR,sCAAsCrX,cAA0B2D,KAAKC,UAAWlE,EAAcM,QAAMwI,EAAW,KAErH,UAiBgB8O,KACd,MAAMtX,EAAMD,GAAWC,IAAI1D,EAAgBib,QAC3C,OAAO7W,EAAW+C,IAAIzD,GACnB4W,OAAOY,EAAeJ,IAAuBL,EAAa/W,EAAK,CAAA,IAC/D0L,OACL,CAmBO6B,eAAekK,GASpBlU,EAEAmQ,EAEA1T,EAEAN,GAEA,MAAM,IAAI3C,GACR,oDAEJ,UAgBgB2a,KACd,MAAM1X,EAAMD,GAAWC,IAAI1D,EAAgBqb,YAC3C,OAAOjX,EAAW+C,IAAIzD,GACnB4W,OAAOgB,EAASH,IAA0BV,EAAa/W,EAAK,CAAA,IAC5D0L,OACL,UAgBgBmM,KACd,MAAM7X,EAAMD,GAAWC,IAAI1D,EAAgBwb,YAC3C,OAAOpX,EAAW+C,IAAIzD,GACnB4W,OAAOY,EAAeC,IAA0BV,EAAa/W,EAAK,CAAA,IAClE0L,OACL,UAEgBqM,KACd,OAAO7U,EAAU,CAACF,EAAcwJ,QAClC,UAEgBwL,KACd,OAAO9U,GACT,CA2BgB,SAAA+U,GACdjT,EACAkT,EAAkCtQ,GAClC4N,GAAoB,EACpB2C,EACAC,GAEA,MAAMpY,EAAMD,GAAWC,IAAI1D,EAAgB+b,YAiC3C,OAAO3X,EAAW+C,IAAIzD,GACnB4W,OAAO,CACNC,UAhCJ,CACE7R,EACAiP,EACAuB,EACA2C,EACAC,KAEA,MAAME,EAA0B,CAC9BtM,MAAOhH,EAAM7H,KAAO6H,EAAM7H,KAAQ6H,EAClCiP,QAASA,EACTuB,SAAUA,GAIZ,OAFI2C,IAAgBG,EAAKC,UAAYJ,GACjCC,IAAIE,EAAKnb,KAAOib,GACb1M,EACL6D,EAAKjT,EAAgBuU,WACrBxI,EAAK,CACHrD,EAAM7H,KAAO6H,EAAM7H,KAAQ6H,EAC3BwT,OAAOrb,KACPsb,OAAOtb,KACPoL,OAAOpL,OAETya,EAASnE,GAAkB6E,GAC3BI,EAAS1E,GAAkBsE,GAC3BK,EAASxE,GAAkBmE,GAC3BM,EAASC,GAAKP,GACdvB,EAAa/W,EAAKsY,GAErB,EAKGzZ,KAAM,CAACmG,EAAOkT,EAAgB1C,EAAU2C,EAAgBC,KAEzD1M,OACL,CA8BgB,SAAAoN,GACd9T,EACAkT,EAAkCtQ,GAClC4N,GAAoB,EACpBuD,EACAX,GAEA,MAAMpY,EAAMD,GAAWC,IAAI1D,EAAgB0c,aAiC3C,OAAOtY,EAAW+C,IAAIzD,GACnB4W,OAAO,CACNC,UAjCJ,CACE7R,EACAiP,EACAuB,EACAuD,EACAX,KAEA,MAAMhT,EAA8B,CAClC4G,MAAOhH,EAAM7H,KAAO6H,EAAM7H,KAAQ6H,EAClCiP,QAASA,EACTuB,SAAUA,GAIZ,OAFIuD,IAAe3T,EAASmT,UAAYQ,GACpCX,IAAIhT,EAASjI,KAAOib,GACjB1M,EACL6D,EAAKjT,EAAgBuU,WACrBoI,EAAK,CACHjU,EACAwT,OACAC,OAEAlQ,SAEFqP,EAASvD,GAAmBjP,GAC5BsT,EAAS5D,GAAmB1P,GAC5BuT,EAAS5D,GAAmB3P,GAC5BwT,EAASC,GAAKzT,GACd2R,EAAa/W,EAAKoF,GAErB,EAKGvG,KAAM,CAACmG,EAAOkT,EAAgB1C,EAAUuD,EAAeX,KAExD1M,OACL,CA8BgB,SAAAwN,GACdlU,EACAkT,EAAkCtQ,GAClC4N,GAAW,EACXuD,EACAX,GAGA,MAAMpY,EAAMD,GAAWC,IAAI1D,EAAgB6c,aA8B3C,OAAOzY,EAAW+C,IAAIzD,GACnB4W,OAAO,CACNC,UA9BJ,CACE7R,EACAiP,EACAuB,EACAuD,EACAX,KAEA,MAGMhT,EAA8B,CAClC4G,MAAOhH,GAAO7H,KAAO6H,EAAM7H,KAAQ6H,EACnCiP,QAASA,EACTuB,SAAUA,GAIZ,OAFIuD,IAAe3T,EAASmT,UAAYQ,GACpCX,IAAIhT,EAASjI,KAAOib,GACjB1M,EACL6D,EAAKjT,EAAgBuU,WACrBxI,EAAK,CAZW,KACfrD,GAAO7H,KAAO6H,EAASA,KAAkC7H,KAWzCqb,OAAOrb,KAAMsb,OAAOtb,KAAMoL,OAAOpL,OAKlD4Z,EAAa/W,EAAKoF,GAErB,EAKGvG,KAAM,CAACmG,EAAOkT,EAAgB1C,EAAUuD,EAAeX,KAExD1M,OACL,CA8BgB,SAAA0N,GACdpU,EACAkT,EAAkCtQ,GAClC4N,GAAW,EACXuD,EACAX,GAGA,MAAMpY,EAAMD,GAAWC,IAAI1D,EAAgB+c,cA+B3C,OAAO3Y,EAAW+C,IAAIzD,GACnB4W,OAAO,CACNC,UA/BJ,CACE7R,EACAiP,EACAuB,EACAuD,EACAX,KAEA,MAAMhT,EAA8B,CAClC4G,MAAOhH,EAAM7H,KAAO6H,EAAM7H,KAAQ6H,EAClCiP,QAASA,EACTuB,SAAUA,GAIZ,OAFIuD,IAAe3T,EAASmT,UAAYQ,GACpCX,IAAIhT,EAASjI,KAAOib,GACjB1M,EACL6D,EAAKjT,EAAgBuU,WACrBoI,EAAK,CACHjU,EAAM7H,KAAO6H,EAAM7H,KAAQ6H,EAC3BwT,OAAOrb,KACPsb,OAAOtb,KACPoL,OAAOpL,OAMT4Z,EAAa/W,EAAKoF,GAErB,EAIGvG,KAAM,CAACmG,EAAOkT,EAAgB1C,EAAUuD,EAAeX,KAExD1M,OACL,CAEgB,SAAA4N,MAAgBC,GAC9B,MAAO,CAAsB7c,EAAaC,KACxC,MAAM6c,EACJnW,EAAS8C,IACPzJ,EACA2G,EAASrD,IAAI1D,EAAgBsW,YAAajW,KACvC,GACD8c,EAAU,IAAI,IAAI9E,IAAI,IAAI6E,KAAgBD,KAChD,OAAOG,EACLC,EACEtW,EAASrD,IAAI1D,EAAgBsW,YAAajW,GAC1C8c,GAHGC,CAKLhd,EAAQC,EACZ,CACF,UAEgBid,KACd,OAAON,GAAatW,EAAcwJ,OACpC,UAEgBqN,KACd,OAAOP,GAAatW,EAAc8K,OACpC,UAEgBgM,KACd,OAAOR,GAAatW,EAAc8K,OAAQ9K,EAAcwJ,OAC1D,CCjkBOe,eAAewM,GAQpBxW,EACAmQ,EACA1T,EACAN,GAEA,IAAKgU,EAAKrL,OAASqL,EAAKlG,WAAa9N,EAAMM,GACzC,OAiBF,IAAIga,EADCtG,EAAKvW,OAAMuW,EAAKvW,KAAOqD,GAAqBd,EAAO,OAExD,IACEsa,QAAiBtc,KAAKmO,QAAQ7D,SAAS0L,EACxC,CAAC,MAAO1U,GACP,MAAM,IAAIxB,EACR,kCAAkCkW,EAAKvW,SAAS6B,IAEnD,CAED,MAAMib,QAAaD,EAASC,OAlB1BtX,OAAO8B,eAmBU/E,EAAOM,EAnBmB,CACzC0E,YAAY,EACZC,UAAU,EACV7H,cAAc,EACd8H,MAeqCqV,GAC3C,CAsBgB,SAAAlW,GACdqJ,EAGIgG,IAEJhG,EAAOzK,OAAOC,OAAO,CAAA,EAAIwQ,GAAwBhG,EAAM,CACrDI,aACEJ,EAAK/E,WAAkC,IAAnB+E,EAAKI,YAErBJ,EAAKI,WAAa4F,GAAuB5F,YAGjD,MAAMxN,EAAMD,GAAWC,IAAI4G,EAAOoJ,IAalC,OAAOtP,EAAW+C,IAAIzD,GACnB4W,OAAO,CACNC,UAdJ,CAAe1O,EAA0B+R,IAChC,CAAeva,EAAU4C,IACvBmJ,EACLpN,GAAM,CAAC/B,EAAeyS,IAAKzS,EAAe4a,MAC1CxL,IACAwO,IACApD,EAAa/W,EAAKmI,GAClByP,EAASmC,GAAY5R,EAAS+R,GAC9BnD,EAAanQ,EAAOoJ,GAAIzN,GANnBmJ,CAOL/L,EAAK4C,GAMP1D,KAAM,CAACuO,EAAM,CAAEgN,SAnIK,OAqIrB1O,OACL,CCtIM,MAAgB2O,WAAkBza,EAetC,WAAA3C,CAAsBqd,GACpBjd,MAAMid,EACP,EAXD5S,EAAA,CADCqQ,qBACW5U,OAAKkX,GAAA1S,UAAA,iBAAA,GAOjBD,EAAA,CADCsQ,qBACW7U,OAAKkX,GAAA1S,UAAA,iBAAA,SCqBG4S,GAQpB,WAAIrU,GACF,OAAOxI,KAAK8c,YACb,CAED,SAAIC,GACF,OAAO/c,KAAKgd,WACb,CAED,SAAI9c,GACF,OAAOF,KAAKid,YACb,CAED,aAAcC,GAEZ,OADKld,KAAKmd,aAAYnd,KAAKmd,WAAand,KAAKoG,QAAQpG,KAAKmR,QACnDnR,KAAKmd,UACb,CAED,WAAA5d,CACqB4O,EACAgD,EACViM,EACU9V,GAHAtH,KAAOmO,QAAPA,EACAnO,KAAKmR,MAALA,EACVnR,KAAIod,KAAJA,EACUpd,KAAKsH,MAALA,CACjB,CAIJ,UAAMiV,GACJ,OAAOvc,KAAKqd,KAAKrd,KAAKwI,QAAU,EACjC,CAED,cAAM8U,GACJ,OAAOtd,KAAKqd,KAAKrd,KAAKwI,QAAU,EACjC,CAES,YAAA+U,CAAaF,GACrB,GAAW,EAAPA,IAAatC,OAAOyC,UAAUH,GAChC,MAAM,IAAInS,GACR,wDAEJ,QAAgC,IAArBlL,KAAKgd,aAA+BK,EAAOrd,KAAKgd,YACzD,MAAM,IAAI9R,GACR,QAAQlL,KAAKgd,gDAAgDK,KAEjE,OAAOA,CACR,kBCxDSI,GCwBN,MAAgBxM,WACZ1N,EAeR,WAAAhE,CAAgC4O,GAC9BxO,QAD8BK,KAAOmO,QAAPA,CAE/B,CAED,OAAuBpN,GACrB,OAAQf,KAAKmO,QAAgBpN,IAAIgF,IAAIkL,GACtC,CAWD,MAAAF,CACEC,GAMA,OAJA/L,OAAO8B,eAAe/G,KAAM,iBAAkB,CAC5CkH,MAAO8J,EACP/J,UAAU,IAELjH,IACR,CAGD,QAAA0d,CACE1M,GAGA,OADAhR,KAAK2d,iBAAmB3M,EACjBhR,IACR,CAGD,GAAA4d,CAAiC5M,GAE/B,OADAhR,KAAK6d,YAAc7M,EACZhR,IACR,CAGD,GAAA8d,CAAiC9M,GAE/B,OADAhR,KAAK+d,YAAc/M,EACZhR,IACR,CAGD,KAAAE,CAAmC8Q,GAEjC,OADAhR,KAAKge,cAAgBhN,EACdhR,IACR,CAGM,IAAAkR,CAAKF,GAIV,GAHAhR,KAAKie,aACiB,iBAAbjN,EAAwB9O,EAAMuG,IAAIuI,GAAYA,GAElDhR,KAAKie,aACR,MAAM,IAAIhT,GAAW,kCAAkC+F,GACzD,OAAOhR,IACR,CAGM,KAAA0R,CAAMlG,GAEX,OADAxL,KAAKke,eAAiB1S,EACfxL,IACR,CAGM,OAAAoR,CACLJ,GAGA,OADAhR,KAAKme,gBAAkBnN,EAChBhR,IACR,CAGM,OAAAoe,CAAQpN,GAEb,OADAhR,KAAKqe,gBAAkBrN,EAChBhR,IACR,CAGM,KAAAuR,CAAMrK,GAEX,OADAlH,KAAKse,cAAgBpX,EACdlH,IACR,CAGM,MAAA2R,CAAOzK,GAEZ,OADAlH,KAAKue,eAAiBrX,EACflH,IACR,CAGK,aAAA4R,GACJ,IACE,MAAMT,EAAWnR,KAAKyH,QACtB,aAAczH,KAAKwe,IAAIrN,EACxB,CAAC,MAAO7P,GACP,MAAM,IAAIxB,EAAcwB,EACzB,CACF,CAED,SAAMkd,CAAOC,GACX,MAAMrG,QAAgBpY,KAAKmO,QAAQqQ,IAAOC,GAC1C,IAAKze,KAAK0e,eAAgB,OAAOtG,EACjC,MAAMuG,EAAStM,EACb,IAAKrS,KAAKie,cACV/c,GAEI0d,EAAY,SAEhBpP,GAEA,MAAMtO,EAAKsO,EAAEmP,GACb,OAAO3e,KAAKmO,QAAQ9G,OAClBmI,EACAxP,KAAKie,aACLU,EACAzd,EAEJ,EAAEkU,KAAKpV,MAEP,OAAI8R,MAAMC,QAAQqG,GAAiBA,EAAQ7X,IAAIqe,GACxCA,EAAUxG,EAClB,EA9GDpO,EAAA,CADCjL,6FASAkS,GAAAhH,UAAA,SAAA,MAGDD,EAAA,CADCjL,+BAEW8f,EAAA,oBAAA,CAAC,mBAADC,uBAAAC,GAAAA,GAACD,GAAA7Z,wCAIZgM,GAAAhH,UAAA,WAAA,MAGDD,EAAA,CADCjL,+BAC0C8f,EAAA,oBAAA,CAAC,mBAADG,uBAAAD,GAAAA,GAACC,GAAA/Z,wCAG3CgM,GAAAhH,UAAA,MAAA,MAGDD,EAAA,CADCjL,+BAC0C8f,EAAA,oBAAA,CAAC,mBAADI,uBAAAF,GAAAA,GAACE,GAAAha,wCAG3CgM,GAAAhH,UAAA,MAAA,MAGDD,EAAA,CADCjL,+BAC6C8f,EAAA,oBAAA,CAAC,mBAADK,uBAAAH,GAAAA,GAACG,GAAAja,wCAG9CgM,GAAAhH,UAAA,QAAA,MAGMD,EAAA,CADNjL,8FAQAkS,GAAAhH,UAAA,OAAA,MAGMD,EAAA,CADNjL,sDACuBoM,oCAGvB8F,GAAAhH,UAAA,QAAA,MAGMD,EAAA,CADNjL,6FAMAkS,GAAAhH,UAAA,UAAA,MAGMD,EAAA,CADNjL,8FAIAkS,GAAAhH,UAAA,UAAA,MAGMD,EAAA,CADNjL,8FAIAkS,GAAAhH,UAAA,QAAA,MAGMD,EAAA,CADNjL,8FAIAkS,GAAAhH,UAAA,SAAA,MAGKD,EAAA,CADLjL,yFAQAkS,GAAAhH,UAAA,UAAA,MD/IH,CAAYwT,IACVA,EAAA,QAAA,SACAA,EAAA,OAAA,SACAA,EAAA,IAAA,MACAA,EAAA,GAAA,KACAA,EAAA,SAAA,UACAA,EAAA,SAAA,UACAA,EAAA,KAAA,OACAA,EAAA,QAAA,QACD,EATD,CAAYA,KAAAA,GASX,CAAA,IExBY,MAAA0B,GAA+C,CAC1DC,OAAQ,CAACnW,EAAG4J,IAAM1H,GAAUxI,UAAUsG,GAAUwD,GAAGoG,GACnDwM,KAAM,CAACpW,EAAG4J,IAAM1H,GAAUxI,UAAUsG,GAAU2D,IAAIiG,GAClDyM,SAAU,CAACrW,EAAG4J,IAAM1H,GAAUxI,UAAUsG,GAAU+D,GAAG6F,GACrD0M,cAAe,CAACtW,EAAG4J,IAAM1H,GAAUxI,UAAUsG,GAAUmE,IAAIyF,GAC3D2M,YAAa,CAACvW,EAAG4J,IAAM1H,GAAUxI,UAAUsG,GAAU6D,GAAG+F,GACxD4M,iBAAkB,CAACxW,EAAG4J,IAAM1H,GAAUxI,UAAUsG,GAAUiE,IAAI2F,GAC9D6M,QAAS,CAACzW,EAAG0W,EAAIC,IACfzU,GAAUxI,UAAUsG,GACjBiE,IAAIyS,GACJpU,IAAIJ,GAAUxI,UAAUsG,GAAUmE,IAAIwS,IAC3CC,GAAI,CAAC5W,EAAG4J,IAAM1H,GAAUxI,UAAUsG,GAAU6W,GAAGjN,GAC/CkN,QAAS,CAAC9W,EAAG4J,IAAM1H,GAAUxI,UAAUsG,GAAUuE,OAAOqF,ICjDpDmN,GAAcC,GAClBA,EAAIC,OAAO,GAAGjH,cAAgBgH,EAAIE,MAAM,SA6D7BC,GAeX,YAAO3Y,CAAM4Y,KAAuBrX,GAClC,IAAKqX,EAAWvN,WAAW2K,GAAY6C,SACrC,MAAUnhB,MAAM,sBAAsBkhB,GAGxC,MAAME,EAAOvgB,KAAKwgB,YAAYH,GACxBtP,EAAS/Q,KAAKygB,cAAcJ,GAC5BjC,EAAUpe,KAAK0gB,eAAeL,GAE9B3O,EAAQ1R,KAAK2gB,WAAWJ,EAAMvX,IAC9BoI,QAAEA,EAAOG,MAAEA,EAAKI,OAAEA,GAAW3R,KAAK4gB,wBACtCL,EACAvX,GAGF,MAAO,CACL6X,OAAQ,OACR9P,OAAQA,EACRW,QACA0M,UACAhN,UACAG,QACAI,SAEH,CAcO,kBAAO6O,CAAYH,GACzB,MAAMS,EAAcT,EAAWU,UAAUtD,GAAY6C,QAAQngB,QAEvD6gB,EAAQF,EAAYE,MADZ,4CAEd,OAAOA,EAAQF,EAAYC,UAAU,EAAGC,EAAMpgB,OAASkgB,CACxD,CAcO,oBAAOL,CAAcJ,GAC3B,MAAMY,EAAcZ,EAAW5f,QAAQgd,GAAYyD,QACnD,IAAqB,IAAjBD,EAAoB,OAExB,MAAME,EAAcd,EAAWU,UAC7BE,EAAcxD,GAAYyD,OAAO/gB,QAI7B6gB,EAAQG,EAAYH,MAAM,4CAMhC,OAJmBA,EACfG,EAAYJ,UAAU,EAAGC,EAAMpgB,OAC/BugB,GAEc7a,MAAMmX,GAAYnR,KAAK/L,IAAIyf,IAAY1f,OAAO8gB,QACjE,CAcO,qBAAOV,CAAeL,GAC5B,MAAMgB,EAAehB,EAAW5f,QAAQgd,GAAY6D,UACpD,IAAsB,IAAlBD,EAMJ,OAJchB,EAAWU,UACvBM,EAAe5D,GAAY6D,SAASnhB,QAEZmG,MAAMmX,GAAY8D,UAAU,GAEnDjb,MAAMmX,GAAY+D,SAClBjhB,IAAIyf,IACJ1f,OAAO8gB,QACX,CAuCO,iBAAOT,CAAWJ,EAAcvX,GACtC,MACMyY,GADQlB,EAAKja,MAAM,mBAAmB,IAAM,IACzBA,MAAM,UAEzBob,EAAYnB,EAAKS,MAAM,YAAc,GAE3C,IAAItP,EAqBJ,GAnBA+P,EAAW/f,QAAQ,CAACigB,EAAOC,KACzB,MAAMC,MAAEA,EAAKxW,SAAEA,GAAarL,KAAK8hB,sBAAsBH,GACjDI,EAAS1W,EAAW8T,GAAa9T,GAAY8T,GAAaC,OAChE,IAAK2C,EAAQ,MAAU5iB,MAAM,wBAAwBkM,GAErD,MAAM2W,EAAiBhZ,EAAO4Y,GAC9B,QAA8B,IAAnBI,EACT,MAAU7iB,MAAM,2BAA2B0iB,GAG7C,MAAMrW,EAAYuW,EAAOF,EAAOG,GAChCtQ,EACU,IAARkQ,EACIpW,EACAkW,EAAUE,EAAM,KAAOnE,GAAYnR,IACjCoF,EAAOnG,IAAIC,GACXkG,EAAOjG,GAAGD,MAGfkG,EAAO,MAAUvS,MAAM,sCAC5B,OAAOuS,CACR,CAcO,4BAAOoQ,CAAsB7B,GACnC,IAAK,MAAM5U,KAAYpG,OAAO0C,KAAKwX,IACjC,GAAIc,EAAIgC,SAAS5W,GAAW,CAC1B,MAAMwW,EAAQ5B,EAAIE,MAAM,GAAI9U,EAASlL,QACrC,MAAO,CAAE0hB,MAAO7B,GAAW6B,GAAQxW,WACpC,CAEH,MAAO,CAAEwW,MAAO7B,GAAWC,GAC5B,CAeO,8BAAOW,CACbL,EACAvX,GAEA,MAAMkZ,EAAiB3B,EAAKja,MAAM,UAAUnG,OACtCgiB,EAAYnZ,EAAOmX,MAAM+B,GAE/B,IAAI9Q,EACAG,EACAI,EAWJ,OATIwQ,EAAUhiB,QAAU,GAAK2R,MAAMC,QAAQoQ,EAAU,MACnD/Q,EAAU+Q,EAAU,IAEE,EAApBA,EAAUhiB,QAAuC,iBAAjBgiB,EAAU,KAC5C5Q,EAAQ4Q,EAAU,IAEI,EAApBA,EAAUhiB,QAAuC,iBAAjBgiB,EAAU,KAC5CxQ,EAASwQ,EAAU,IAEd,CAAE/Q,UAASG,QAAOI,SAC1B,EC9Sa,SAAAR,GAAM1G,EAAwB,IAC5C,MAAO,CACLzL,EACAC,EACAC,KAGA,MAAMmhB,EAAaphB,EAAYuC,WAC9BtC,EAA4CgI,MAAQ,YAChD/F,GAEH,MAAM4P,OAAEA,EAAMW,MAAEA,EAAK0M,QAAEA,EAAOhN,QAAEA,EAAOG,MAAEA,EAAKI,OAAEA,GAC9CyO,GAAmB3Y,MAAM4Y,KAAelf,GAE1C,IAAIihB,EAAQpiB,KAAa+Q,OAAOA,GAC5BW,IAAO0Q,EAAOA,EAAK1Q,MAAMA,IAQ7B,MAAM2Q,WAAEA,EAAUC,YAAEA,EAAWC,aAAEA,EAAYC,OAAEA,GAAW,CACxDH,YAAY,EACZE,cAAc,EACdD,aAAa,EACbE,QAAQ,KACL/X,GAGCgY,EAAS,CAEb,CAAEngB,IAAK,UAAW4E,OAAQkK,GAAW,IAAI,GAAIsR,QAASH,GACtD,CAAEjgB,IAAK,QAAS4E,MAAOqK,EAAOmR,QAASL,GACvC,CAAE/f,IAAK,SAAU4E,MAAOyK,EAAQ+Q,QAASJ,IAG3C,IAAK,MAAMK,KAASF,EAClB,QAAoB3X,IAAhB6X,EAAMzb,MAAqB,CAC7B,IAAKyb,EAAMD,SAAWF,EACpB,MAAM,IAAIvX,GACL0X,EAAMrgB,IAAI,GAAGsgB,cAAgBD,EAAMrgB,IAAI6d,MAAM,GAAhD,kCAEOwC,EAAMD,UACfN,EAAOA,EAAKO,EAAMrgB,KAAKqgB,EAAMzb,OAEhC,CAGH,OAAOkb,EAAKxQ,SACd,EAEJ,CC5CAmC,EAAY8O,YAAY,IAAIrP,IAoBrB,MAAMsP,GAAU,cAQVC,GAAe,cAE5Bpd,EAASqd,gBAAgBD,GAAcD"}
@@ -12,7 +12,6 @@ export * from "./interfaces";
12
12
  export * from "./model";
13
13
  export * from "./query";
14
14
  export * from "./utils";
15
- export * from "./ram/RamAdapter";
16
15
  export * from "./persistence";
17
16
  /**
18
17
  * @description Stores the current package version
@@ -20,7 +19,7 @@ export * from "./persistence";
20
19
  * @const VERSION
21
20
  * @memberOf module:core
22
21
  */
23
- export declare const VERSION = "0.5.43";
22
+ export declare const VERSION = "0.5.44";
24
23
  /**
25
24
  * @description Stores the current package version
26
25
  * @summary A constant representing the version of the core package
package/lib/esm/index.js CHANGED
@@ -18,7 +18,6 @@ export * from "./interfaces/index.js";
18
18
  export * from "./model/index.js";
19
19
  export * from "./query/index.js";
20
20
  export * from "./utils/index.js";
21
- export * from "./ram/RamAdapter.js";
22
21
  //left to last on purpose
23
22
  export * from "./persistence/index.js";
24
23
  /**
@@ -27,7 +26,7 @@ export * from "./persistence/index.js";
27
26
  * @const VERSION
28
27
  * @memberOf module:core
29
28
  */
30
- export const VERSION = "0.5.43";
29
+ export const VERSION = "0.5.44";
31
30
  /**
32
31
  * @description Stores the current package version
33
32
  * @summary A constant representing the version of the core package
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,mBAAmB,EAAE,oCAAiC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,kFAAkF;AAClF,WAAW,CAAC,WAAW,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;AAEnD,4BAA4B;AAC5B,qCAA4B;AAC5B,sCAA6B;AAE7B,oCAA2B;AAC3B,sCAA6B;AAC7B,iCAAwB;AACxB,iCAAwB;AACxB,iCAAwB;AACxB,oCAAiC;AACjC,yBAAyB;AACzB,uCAA8B;AAE9B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;AAErC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAE1C,QAAQ,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,mBAAmB,EAAE,oCAAiC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,kFAAkF;AAClF,WAAW,CAAC,WAAW,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;AAEnD,4BAA4B;AAC5B,qCAA4B;AAC5B,sCAA6B;AAE7B,oCAA2B;AAC3B,sCAA6B;AAC7B,iCAAwB;AACxB,iCAAwB;AACxB,iCAAwB;AACxB,yBAAyB;AACzB,uCAA8B;AAE9B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;AAErC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAE1C,QAAQ,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC"}
package/lib/index.cjs CHANGED
@@ -35,7 +35,6 @@ __exportStar(require("./interfaces/index.cjs"), exports);
35
35
  __exportStar(require("./model/index.cjs"), exports);
36
36
  __exportStar(require("./query/index.cjs"), exports);
37
37
  __exportStar(require("./utils/index.cjs"), exports);
38
- __exportStar(require("./ram/RamAdapter.cjs"), exports);
39
38
  //left to last on purpose
40
39
  __exportStar(require("./persistence/index.cjs"), exports);
41
40
  /**
@@ -44,7 +43,7 @@ __exportStar(require("./persistence/index.cjs"), exports);
44
43
  * @const VERSION
45
44
  * @memberOf module:core
46
45
  */
47
- exports.VERSION = "0.5.43";
46
+ exports.VERSION = "0.5.44";
48
47
  /**
49
48
  * @description Stores the current package version
50
49
  * @summary A constant representing the version of the core package