@decaf-ts/core 0.5.47 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/lib/esm/identity/utils.js +1 -1
- package/lib/esm/identity/utils.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/overrides/Metadata.d.ts +3 -1
- package/lib/esm/overrides/overrides.js +9 -1
- package/lib/esm/overrides/overrides.js.map +1 -1
- package/lib/esm/persistence/Adapter.d.ts +3 -1
- package/lib/esm/persistence/Adapter.js +16 -0
- package/lib/esm/persistence/Adapter.js.map +1 -1
- package/lib/esm/persistence/constants.d.ts +3 -1
- package/lib/esm/persistence/constants.js +2 -0
- package/lib/esm/persistence/constants.js.map +1 -1
- package/lib/esm/persistence/errors.d.ts +6 -0
- package/lib/esm/persistence/errors.js +10 -0
- package/lib/esm/persistence/errors.js.map +1 -1
- package/lib/esm/persistence/index.d.ts +1 -0
- package/lib/esm/persistence/index.js +1 -0
- package/lib/esm/persistence/index.js.map +1 -1
- package/lib/esm/persistence/migrations.d.ts +21 -0
- package/lib/esm/persistence/migrations.js +104 -0
- package/lib/esm/persistence/migrations.js.map +1 -0
- package/lib/esm/persistence/types.d.ts +7 -1
- package/lib/identity/utils.cjs +2 -2
- package/lib/identity/utils.js.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/overrides/Metadata.d.ts +3 -1
- package/lib/overrides/overrides.cjs +8 -0
- package/lib/overrides/overrides.js.map +1 -1
- package/lib/persistence/Adapter.cjs +16 -0
- package/lib/persistence/Adapter.d.ts +3 -1
- package/lib/persistence/Adapter.js.map +1 -1
- package/lib/persistence/constants.cjs +2 -0
- package/lib/persistence/constants.d.ts +3 -1
- package/lib/persistence/constants.js.map +1 -1
- package/lib/persistence/errors.cjs +13 -1
- package/lib/persistence/errors.d.ts +6 -0
- package/lib/persistence/errors.js.map +1 -1
- package/lib/persistence/index.cjs +1 -0
- package/lib/persistence/index.d.ts +1 -0
- package/lib/persistence/index.js.map +1 -1
- package/lib/persistence/migrations.cjs +110 -0
- package/lib/persistence/migrations.d.ts +21 -0
- package/lib/persistence/migrations.js.map +1 -0
- package/lib/persistence/types.d.ts +7 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ Decaf Core provides the foundational building blocks for the Decaf TypeScript ec
|
|
|
27
27
|
|
|
28
28
|
Documentation [here](https://decaf-ts.github.io/injectable-decorators/), Test results [here](https://decaf-ts.github.io/injectable-decorators/workdocs/reports/html/test-report.html) and Coverage [here](https://decaf-ts.github.io/injectable-decorators/workdocs/reports/coverage/lcov-report/index.html)
|
|
29
29
|
|
|
30
|
-
Minimal size: 11.
|
|
30
|
+
Minimal size: 11.9 KB kb gzipped
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
# Core Package — Detailed Description
|
package/dist/core.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e,t;e=this,t=function(e,t,r,a,s,n,o,i){"use strict";var c,d,l;function p(){return(e,t,r)=>{if(!r)throw Error("final decorator can only be used on methods");return r?.configurable&&(r.configurable=!1),r}}e.PersistenceKeys=void 0,(c=e.PersistenceKeys||(e.PersistenceKeys={})).INDEX="index",c.UNIQUE="unique",c.ADAPTER="adapter",c.INJECTABLE="decaf_{0}_adapter_for_{1}",c.TABLE="table",c.COLUMN="column",c.METADATA="__metadata",c.OWNERSHIP="ownership",c.CREATED_BY="ownership.created-by",c.UPDATED_BY="ownership.updated-by",c.RELATIONS="__relations",c.RELATION="relation",c.ONE_TO_ONE="relation.one-to-one",c.ONE_TO_MANY="relation.one-to-many",c.MANY_TO_ONE="relation.many-to-one",c.MANY_TO_MANY="relation.many-to-many",c.POPULATE="populate",c.NO_VALIDATE="no-validate";class u extends a.BadRequestError{constructor(e,t=u.name,r=401){super(e,t,r)}}class h extends u{constructor(e,t=h.name){super(e,t,403)}}class y extends a.InternalError{constructor(e){super(e,y.name,503)}}class f{constructor(){this.observers=[]}count(){return this.observers.length}observe(e,t){if(-1!==this.observers.map(e=>e.observer).indexOf(e))throw new a.InternalError("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 a.InternalError("Failed to find Observer");this.observers.splice(t,1)}async updateObservers(e,t,r,a,...s){(await Promise.allSettled(this.observers.filter(s=>{const{filter:n}=s;if(!n)return!0;try{return n(t,r,a)}catch(t){return e.error(`Failed to filter observer ${s.observer.toString()}: ${t}`),!1}}).map(e=>{e.observer.refresh(t,r,a,...s)}))).forEach((t,r)=>{"rejected"===t.status&&e.error(`Failed to update observable ${this.observers[r].toString()}: ${t.reason}`)})}}class g extends a.InternalError{constructor(e){super(e,g.name,500)}}class m extends n.LoggedClass{constructor(){super()}async initialize(){if(!this.adapter)return void this.log.verbose("No adapter observed for dispatch; skipping initialization");const e=this.adapter;[a.OperationKeys.CREATE,a.OperationKeys.UPDATE,a.OperationKeys.DELETE,a.BulkCrudOperationKeys.CREATE_ALL,a.BulkCrudOperationKeys.UPDATE_ALL,a.BulkCrudOperationKeys.DELETE_ALL].forEach(t=>{if(!e[t])throw new a.InternalError(`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[n,o]=s,i=await e.apply(r,s);return this.updateObservers(n,(e=>{switch(e){case a.BulkCrudOperationKeys.CREATE_ALL:return a.OperationKeys.CREATE;case a.BulkCrudOperationKeys.UPDATE_ALL:return a.OperationKeys.UPDATE;case a.BulkCrudOperationKeys.DELETE_ALL:return a.OperationKeys.DELETE;default:return e}})(t),o).then(()=>{this.log.verbose(`Observer refresh dispatched by ${t} for ${n}`),this.log.debug("pks: "+o)}).catch(e=>this.log.error(`Failed to dispatch observer refresh for ${t} on ${n}: ${e}`)),i}}):this.log.error(`Could not find method ${t} to bind Observables Dispatch`)})}async close(){}observe(e){if(!(e instanceof E))throw new g("Only Adapters can be observed by dispatch");this.adapter=e,this.models=E.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 g("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 a.InternalError("Failed to refresh dispatch: "+e)}else this.log.verbose(`No adapter observed for dispatch; skipping observer update for ${e}:${t}`)}}function b(t){return r=>o.apply(o.metadata(E.key(e.PersistenceKeys.ADAPTER),t))(r)}E&&(E._baseDispatch=m);class O{get log(){return this.logger||(this.logger=n.Logging.for(this)),this.logger}constructor(e){this.options=e}static pk(e){return w(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 g(`Unsupported sequence type: ${e} for adapter ${this}`)}}}function _(t){const r=t instanceof s.Model?s.Model.get(t.constructor.name):t;if(!r)throw new a.InternalError("Unable to find model "+t);return Reflect.getOwnMetadata(E.key(e.PersistenceKeys.TABLE),r[s.ModelKeys.MODEL]||r)||(t instanceof s.Model?t.constructor.name:t.name)}function v(t,r){return Reflect.getMetadata(a.Repository.key(e.PersistenceKeys.COLUMN),t,r)||r}function w(e,...t){return[_(e),...t].join("_")}s.Decoration.setFlavourResolver(e=>{try{return E.flavourOf(s.Model.isModel(e)?e.constructor:e)||E.currentFlavour||s.DefaultFlavour}catch(e){}try{return E.currentFlavour||s.DefaultFlavour}catch(e){return s.DefaultFlavour}});class E extends n.LoggedClass{static{this._cache={}}get config(){return this._config}get alias(){return this._alias||this.flavour}repository(){if(!E._baseRepository)throw new a.InternalError("This should be overridden when necessary. Otherwise it will be replaced lazily");return E._baseRepository}async shutdownProxies(e){if(this.proxies){if(e&&!(e in this.proxies))throw new a.InternalError("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=a.Context,this.alias in E._cache)throw new a.InternalError(`${this.alias} persistence adapter ${this._alias?`(${this.flavour}) `:""} already registered`);E._cache[this.alias]=this,this.log.info(`Created ${this.alias} persistence adapter ${this._alias?`(${this.flavour}) `:""} persistence adapter`),E._currentFlavour||(this.log.verbose(`Defined ${this.alias} persistence adapter as current`),E._currentFlavour=this.alias)}Dispatch(){return new E._baseDispatch}ObserverHandler(){return new f}isReserved(e){return!e}async initialize(...e){}async flags(e,t,r,...s){return Object.assign({},a.DefaultRepositoryFlags,r,{affectedTables:_(t),writeOperation:e!==a.OperationKeys.READ,timestamp:new Date,operation:e,ignoredValidationProperties:i.Metadata.validationExceptions(t,e)})}async context(e,t,r,...a){this.log.for(this.context).debug(`Creating new context for ${e} operation on ${r.name} model with flag overrides: ${JSON.stringify(t)}`);const s=await this.flags(e,r,t,...a);return(new this.Context).accumulate(s)}prepare(t,r){const s=this.log.for(this.prepare),n=a.modelToTransient(t),o=Object.entries(n.model).reduce((e,[r,s])=>{if(void 0===s)return e;const n=v(t,r);if(this.isReserved(n))throw new a.InternalError(`Property name ${n} is reserved`);return e[n]=s,e},{});return t[e.PersistenceKeys.METADATA]&&(s.silly("Passing along persistence metadata for "+t[e.PersistenceKeys.METADATA]),Object.defineProperty(o,e.PersistenceKeys.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:t[e.PersistenceKeys.METADATA]})),{record:o,id:t[r],transient:n.transient}}revert(t,r,n,o,i){const c=this.log.for(this.revert),d={};d[n]=o;const l="string"==typeof r?s.Model.build(d,r):new r(d);c.silly(`Rebuilding model ${l.constructor.name} id ${o}`);const p=t[e.PersistenceKeys.METADATA],u=Object.keys(l).reduce((e,r)=>(r===n||(e[r]=t[v(e,r)]),e),l);return i&&(c.verbose("re-adding transient properties: "+Object.keys(i).join(", ")),Object.entries(i).forEach(([e,t])=>{if(e in u)throw new a.InternalError(`Transient property ${e} already exists on model ${l.constructor.name}. should be impossible`);u[e]=t})),p&&(c.silly(`Passing along ${this.flavour} persistence metadata for ${l.constructor.name} id ${o}: ${p}`),Object.defineProperty(u,e.PersistenceKeys.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:p})),u}async createAll(e,t,r,...s){if(t.length!==r.length)throw new a.InternalError("Ids and models must have the same length");const n=this.log.for(this.createAll);return n.verbose(`Creating ${t.length} entries ${e} table`),n.debug("pks: "+t),Promise.all(t.map((t,a)=>this.create(e,t,r[a],...s)))}async readAll(e,t,...r){const a=this.log.for(this.readAll);return a.verbose(`Reading ${t.length} entries ${e} table`),a.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 a.InternalError("Ids and models must have the same length");const n=this.log.for(this.updateAll);return n.verbose(`Updating ${t.length} entries ${e} table`),n.debug("pks: "+t),Promise.all(t.map((t,a)=>this.update(e,t,r[a],...s)))}async deleteAll(e,t,...r){const a=this.log.for(this.createAll);return a.verbose(`Deleting ${t.length} entries ${e} table`),a.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 a.InternalError("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 a.InternalError("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,...a){return this.updateObservers(e,t,r,...a)}toString(){return this.flavour+" persistence Adapter"}static flavourOf(t){return Reflect.getMetadata(this.key(e.PersistenceKeys.ADAPTER),t)||this.current?.flavour}static get currentFlavour(){if(!E._currentFlavour)throw new a.InternalError("No persistence flavour set. Please initialize your adapter");return E._currentFlavour}static get current(){return E.get(this.currentFlavour)}static get(e){if(!e)return E.get(this._currentFlavour);if(e in this._cache)return this._cache[e];throw new a.InternalError(`No Adapter registered under ${e}.`)}static setCurrent(e){this._currentFlavour=e}static key(e){return a.Repository.key(e)}static models(t){try{const r=s.Model.getRegistry().cache;return Object.values(r).map(r=>{let s=Reflect.getMetadata(E.key(e.PersistenceKeys.ADAPTER),r);if(s&&s===t)return r;if(!s){if(!Reflect.getMetadata(a.Repository.key(a.DBKeys.REPOSITORY),r))return;const t=this._baseRepository.forModel(r);return s=Reflect.getMetadata(E.key(e.PersistenceKeys.ADAPTER),t),s}}).filter(e=>!!e)}catch(e){throw new a.InternalError(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} - ${s.hashObj(e)}`;if(r in this.proxies)return this.proxies[r];let a;const n=new Proxy(this,{get:(t,r,s)=>{if("_config"===r){const a=Reflect.get(t,r,s);return Object.assign({},a,e)}return"_client"===r?a:Reflect.get(t,r,s)},set:(e,t,r,s)=>"_client"===t?(a=r,!0):Reflect.set(e,t,r,s)});return this.proxies[r]=n,n}}r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[String]),r.__metadata("design:returntype",Promise)],E.prototype,"shutdownProxies",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[String,Object,Object,Object]),r.__metadata("design:returntype",Promise)],E.prototype,"context",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Object,Function]),r.__metadata("design:returntype",void 0)],E.prototype,"observe",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Object]),r.__metadata("design:returntype",void 0)],E.prototype,"unObserve",null),r.__decorate([p(),r.__metadata("design:type",Object),r.__metadata("design:paramtypes",[])],E.prototype,"client",null),e.OrderDirection=void 0,(d=e.OrderDirection||(e.OrderDirection={})).ASC="asc",d.DSC="desc",e.Cascade=void 0,(l=e.Cascade||(e.Cascade={})).CASCADE="cascade",l.NONE="none";const A={update:e.Cascade.CASCADE,delete:e.Cascade.NONE};var D,P;e.Operator=void 0,(D=e.Operator||(e.Operator={})).EQUAL="EQUAL",D.DIFFERENT="DIFFERENT",D.BIGGER="BIGGER",D.BIGGER_EQ="BIGGER_EQ",D.SMALLER="SMALLER",D.SMALLER_EQ="SMALLER_EQ",D.NOT="NOT",D.IN="IN",D.REGEXP="REGEXP",e.GroupOperator=void 0,(P=e.GroupOperator||(e.GroupOperator={})).AND="AND",P.OR="OR";class T extends a.InternalError{constructor(e){super(e,T.name,500)}}class C extends a.InternalError{constructor(e){super(e,C.name,500)}}class N extends s.Model{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 N.and(this,e)}or(e){return N.or(this,e)}not(t){return new N(this,e.Operator.NOT,t)}hasErrors(...t){const r=()=>{const t=`Invalid operator ${this.operator}}`;if("string"==typeof this.attr1){if(this.comparison instanceof N)return{comparison:{condition:"Both sides of the comparison must be of the same type"}};if(-1===Object.values(e.Operator).indexOf(this.operator))return{operator:{condition:t}}}if(this.attr1 instanceof N){if(!(this.comparison instanceof N)&&this.operator!==e.Operator.NOT)return{comparison:{condition:t}};if(-1===Object.values(e.GroupOperator).indexOf(this.operator)&&this.operator!==e.Operator.NOT)return{operator:{condition:t}}}},a=super.hasErrors(...t);return this.isAsync()?(async()=>await Promise.resolve(a)??r())():a??r()}static and(t,r){return N.group(t,e.GroupOperator.AND,r)}static or(t,r){return N.group(t,e.GroupOperator.OR,r)}static group(e,t,r){return new N(e,t,r)}static attribute(e){return(new N.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(t){return this.setOp(e.Operator.EQUAL,t)}dif(t){return this.setOp(e.Operator.DIFFERENT,t)}gt(t){return this.setOp(e.Operator.BIGGER,t)}lt(t){return this.setOp(e.Operator.SMALLER,t)}gte(t){return this.setOp(e.Operator.BIGGER_EQ,t)}lte(t){return this.setOp(e.Operator.SMALLER_EQ,t)}in(t){return this.setOp(e.Operator.IN,t)}regexp(t){return this.setOp(e.Operator.REGEXP,RegExp(t).source)}setOp(e,t){return this.operator=e,this.comparison=t,this.build()}build(){try{return new N(this.attr1,this.operator,this.comparison)}catch(e){throw new T(e)}}}}static builder(){return new N.Builder}}r.__decorate([s.required(),r.__metadata("design:type",Object)],N.prototype,"attr1",void 0),r.__decorate([s.required(),r.__metadata("design:type",String)],N.prototype,"operator",void 0),r.__decorate([s.required(),r.__metadata("design:type",Object)],N.prototype,"comparison",void 0);class M extends a.Repository{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 a.InternalError("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=M.table(this.class)),this._tableName}get pkProps(){return super.pkProps}constructor(t,r,...s){if(super(r),this.observers=[],t&&(this._adapter=t),r&&(M.register(r,this,this.adapter.alias),t)){const s=Reflect.getMetadata(E.key(e.PersistenceKeys.ADAPTER),r);if(s&&s!==t.flavour)throw new a.InternalError("Incompatible flavours");b(t.flavour)(r)}[this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(e=>{const t=e.name;a.wrapMethodWithContext(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,a)=>{const s=Reflect.get(t,r,a);return"_overrides"!==r?s:Object.assign({},s,e)}})}for(e,...t){return new Proxy(this,{get:(r,a,s)=>"adapter"===a?this.adapter.for(e,...t):Reflect.get(r,a,s)})}ObserverHandler(){return new f}async createPrefix(e,...t){const r=await a.Context.args(a.OperationKeys.CREATE,this.class,t,this.adapter,this._overrides||{});e=new this.class(e),await a.enforceDBDecorators(this,r.context,e,a.OperationKeys.CREATE,a.OperationKeys.ON);const s=await Promise.resolve(e.hasErrors(...r.context.get("ignoredValidationProperties")||[]));if(s)throw new a.ValidationError(s.toString());return[e,...r.args]}async create(e,...t){let r,{record:a,id:s,transient:n}=this.adapter.prepare(e,this.pk);return a=await this.adapter.create(this.tableName,s,a,...t),t.length&&(r=t[t.length-1]),this.adapter.revert(a,this.class,this.pk,s,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)),a=r.map(e=>e.id);let s=r.map(e=>e.record);return s=await this.adapter.createAll(this.tableName,a,s,...t),s.map((e,t)=>this.adapter.revert(e,this.class,this.pk,a[t]))}async createAllPrefix(e,...t){const r=await a.Context.args(a.OperationKeys.CREATE,this.class,t,this.adapter,this._overrides||{});if(!e.length)return[e,...r.args];const s=M.getSequenceOptions(e[0]);let n=[];s.type?(s.name||(s.name=O.pk(e[0])),n=await(await this.adapter.Sequence(s)).range(e.length)):n=e.map((e,t)=>{if(void 0===e[this.pk])throw new a.InternalError("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?n[t]:""+e[this.pk]),await a.enforceDBDecorators(this,r.context,e,a.OperationKeys.CREATE,a.OperationKeys.ON),e)));const o=r.context.get("ignoredValidationProperties")||[],i=(await Promise.all(e.map(e=>Promise.resolve(e.hasErrors(...o))))).reduce((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e),void 0);if(i)throw new a.ValidationError(i);return[e,...r.args]}async readPrefix(e,...t){const r=await a.Context.args(a.OperationKeys.READ,this.class,t,this.adapter,this._overrides||{}),s=new this.class;return s[this.pk]=e,await a.enforceDBDecorators(this,r.context,s,a.OperationKeys.READ,a.OperationKeys.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 a.Context.args(a.OperationKeys.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,a.enforceDBDecorators(this,r.context,t,a.OperationKeys.READ,a.OperationKeys.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:a,transient:s}=this.adapter.prepare(e,this.pk);return r=await this.adapter.update(this.tableName,a,r,...t),this.adapter.revert(r,this.class,this.pk,a,s)}async updatePrefix(e,...t){const r=await a.Context.args(a.OperationKeys.UPDATE,this.class,t,this.adapter,this._overrides||{}),s=e[this.pk];if(!s)throw new a.InternalError("No value for the Id is defined under the property "+this.pk);const n=await this.read(s,...r.args);e=this.merge(n,e),await a.enforceDBDecorators(this,r.context,e,a.OperationKeys.UPDATE,a.OperationKeys.ON,n);const o=await Promise.resolve(e.hasErrors(n,...M.relations(this.class),...r.context.get("ignoredValidationProperties")||[]));if(o)throw new a.ValidationError(o.toString());return M.getMetadata(n)&&(M.getMetadata(e)||M.setMetadata(e,M.getMetadata(n))),[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 a.Context.args(a.OperationKeys.UPDATE,this.class,t,this.adapter,this._overrides||{}),s=e.map(e=>{const t=e[this.pk];if(!t)throw new a.InternalError("missing id on update operation");return t}),n=await this.readAll(s,...r.args);e=e.map((e,t)=>(e=this.merge(n[t],e),M.getMetadata(n[t])&&(M.getMetadata(e)||M.setMetadata(e,M.getMetadata(n[t]))),e)),await Promise.all(e.map((e,t)=>a.enforceDBDecorators(this,r.context,e,a.OperationKeys.UPDATE,a.OperationKeys.ON,n[t])));const o=r.context.get("ignoredValidationProperties")||[],i=(await Promise.all(e.map((e,t)=>Promise.resolve(e.hasErrors(n[t],e,...o))))).reduce((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e),void 0);if(i)throw new a.ValidationError(i);return e.forEach((e,t)=>{M.getMetadata(n[t])&&(M.getMetadata(e)||M.setMetadata(e,M.getMetadata(n[t])))}),[e,...r.args]}async deletePrefix(e,...t){const r=await a.Context.args(a.OperationKeys.DELETE,this.class,t,this.adapter,this._overrides||{}),s=await this.read(e,...r.args);return await a.enforceDBDecorators(this,r.context,s,a.OperationKeys.DELETE,a.OperationKeys.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 a.Context.args(a.OperationKeys.DELETE,this.class,t,this.adapter,this._overrides||{}),s=await this.readAll(e,...r.args);return await Promise.all(s.map(async e=>a.enforceDBDecorators(this,r.context,e,a.OperationKeys.DELETE,a.OperationKeys.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(t,r,a=e.OrderDirection.ASC,s,n){const o=[r,a],i=this.select().where(t).orderBy(o);return s&&i.limit(s),n&&i.offset(n),i.execute()}attr(e){return N.attr(e)}observe(e,t){this.observerHandler||Object.defineProperty(this,"observerHandler",{value:this.ObserverHandler(),writable:!1});const r=this.log.for(this.observe),a=M.table(this.class);this.adapter.observe(this,e=>a===e),r.verbose(`now observing ${this.adapter} filtering on table === ${a}`),this.observerHandler.observe(e,t),r.verbose("Registered new observer "+e.toString())}unObserve(e){if(!this.observerHandler)throw new a.InternalError("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 a.InternalError("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=>O.parseValue(this.pkProps.type,e)):O.parseValue(this.pkProps.type,r),...s)}async refresh(e,t,r,...a){return this.updateObservers(e,t,r,...a)}static forModel(t,r,...s){let n;const o=r||Reflect.getMetadata(E.key(e.PersistenceKeys.ADAPTER),t)||E.currentFlavour;try{n=this.get(t,o)}catch(e){n=void 0}if(n instanceof M)return n;const i=r||Reflect.getMetadata(E.key(e.PersistenceKeys.ADAPTER),t)||n&&Reflect.getMetadata(E.key(e.PersistenceKeys.ADAPTER),n)||E.currentFlavour,c=i?E.get(i):void 0;if(!c)throw new a.InternalError("No registered persistence adapter found flavour "+i);return n=n||c.repository(),new n(c,t,...s)}static get(e,t){const r=M.table(e);let s=r;if(t&&(s=[r,t].join(a.DefaultSeparator)),s in this._cache)return this._cache[s];if(r in this._cache)return this._cache[r];throw new a.InternalError("Could not find repository registered under "+r)}static register(e,t,r){let s=M.table(e);if(r&&(s=[s,r].join(a.DefaultSeparator)),s in this._cache&&this._cache[s]instanceof M)throw new a.InternalError(s+" already has a registered instance");this._cache[s]=t}static setMetadata(t,r){Object.defineProperty(t,e.PersistenceKeys.METADATA,{enumerable:!1,configurable:!0,writable:!1,value:r})}static getMetadata(t){const r=Object.getOwnPropertyDescriptor(t,e.PersistenceKeys.METADATA);return r?r.value:void 0}static removeMetadata(t){Object.getOwnPropertyDescriptor(t,e.PersistenceKeys.METADATA)&&delete t[e.PersistenceKeys.METADATA]}static getSequenceOptions(e){const t=a.findPrimaryKey(e).id,r=Reflect.getMetadata(M.key(a.DBKeys.ID),e,t);if(!r)throw new a.InternalError("No sequence options defined for model. did you use the @pk decorator?");return r}static indexes(t){const r=o.Reflection.getAllPropertyDecorators(t instanceof s.Model?t:new t,a.DBKeys.REFLECT);return Object.entries(r||{}).reduce((t,[r,a])=>{const s=a.filter(t=>t.key.startsWith(e.PersistenceKeys.INDEX));if(s&&s.length)for(const e of s){const{key:a,props:s}=e;t[r]=t[r]||{},t[r][a]=s}return t},{})}static relations(t){const r=[];let a=t instanceof s.Model?Object.getPrototypeOf(t):t.prototype;for(;null!=a;){const t=a[e.PersistenceKeys.RELATIONS];t&&r.push(...t),a=Object.getPrototypeOf(a)}return r}static table(e){return _(e)}static column(e,t){return v(e,t)}}function R(t,r){if(!r){const n=E.key(e.PersistenceKeys.ADAPTER);if(!(r=Reflect.getMetadata(n,t instanceof s.Model?t.constructor:t)))throw new a.InternalError("Could not retrieve flavour from model "+(t instanceof s.Model?t.constructor.name:t.name))}return s.sf(e.PersistenceKeys.INJECTABLE,r,_(t))}r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Object,Function]),r.__metadata("design:returntype",void 0)],M.prototype,"observe",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Object]),r.__metadata("design:returntype",void 0)],M.prototype,"unObserve",null),E&&(E._baseRepository=M);class x extends t.InjectableRegistryImp{get log(){return this.logger||(this.logger=n.Logging.for(this)),this.logger}constructor(){super()}get(r,a){const n=this.log.for(this.get);let o;try{o=super.get(r)}catch{}if(!o){let i;if("function"==typeof r?i=r:"symbol"!=typeof r&&"string"!=typeof r||(i=s.Model.get(r.toString())),!i)return;const c=E.key(e.PersistenceKeys.ADAPTER),d=a||Reflect.getMetadata(c,i);try{let e=d;try{d&&E.get(d)}catch{const t=E.current;t&&t.flavour===d&&(e=t.alias)}if(o=M.forModel(i,e),o instanceof M)return o;const r=d||Reflect.getMetadata(c,o.constructor)||Reflect.getMetadata(c,i);t.Injectables.register(o,R(i,r))}catch(e){n.debug("No registered repository or adapter found. falling back to default adapter. Error: "+(e?.message||JSON.stringify(e)));const t=M.get(i,d);if("function"==typeof t){const e=d?E.get(d):E.current;if(!e)return;return new t(e,i)}}}return o}}i.Metadata.validationExceptions=((t,r)=>{const a=i.Metadata.get(t,e.PersistenceKeys.NO_VALIDATE);return a?Object.entries(a).filter(([,e])=>e.includes(r)).map(([e])=>e):[]}).bind(i.Metadata);class I extends a.InternalError{constructor(e){super(e,I.name,500)}}const K={type:void 0,generated:!1,startWith:0,incrementBy:1,cycle:!1},B=K,k={type:"Number",generated:!0,startWith:0,incrementBy:1,cycle:!1},j=Object.assign({},k,{type:"BigInt"});async function L(e,t,r,n){if(!n){const t=s.Model.get(e.constructor.name);if(!t)throw new a.InternalError("Could not find model "+e.constructor.name);n=M.forModel(t,r)}if(void 0===e[n.pk])return n.create(e,t);try{return n.update(e,t)}catch(r){if(!(r instanceof a.NotFoundError))throw r;return n.create(e,t)}}async function $(e,t,r,n){const o=n[r];if(!o)return;if("object"!=typeof o){const t=W(n,r,this.adapter.alias),a=await t.read(o);return await V(e,n,r,o,a),void(n[r]=o)}t.class="string"==typeof t.class?t.class:t.class().name;const i=s.Model.get(t.class);if(!i)throw new a.InternalError("Could not find model "+t.class);const c=M.forModel(i,this.adapter.alias),d=await c.create(o),l=a.findPrimaryKey(d).id;await V(e,n,r,d[l],d),n[r]=d[l]}async function F(t,r,s,n){const o=n[s];if(!o)return;if(r.cascade.update!==e.Cascade.CASCADE)return;if("object"!=typeof o){const e=W(n,s,this.adapter.alias),r=await e.read(o);return await V(t,n,s,o,r),void(n[s]=o)}const i=await L(n[s],t,this.adapter.alias),c=a.findPrimaryKey(i).id;await V(t,n,s,i[c],i),n[s]=i[c]}async function U(t,r,a,n){const o=n[a];if(!o)return;if(r.cascade.update!==e.Cascade.CASCADE)return;const i=W(n,a,this.adapter.alias);let c;c=o instanceof s.Model?await i.delete(n[a][i.pk]):await i.delete(n[a]),await V(t,n,a,c[i.pk],c)}async function q(e,t,r,s){const n=s[r];if(!n||!n.length)return;const o=typeof n[0];if(!n.every(e=>typeof e===o))throw new a.InternalError(`Invalid operation. All elements of property ${r} must match the same type.`);const i=new Set([...n]);if("object"!==o){const t=W(s,r,this.adapter.alias);for(const a of i){const n=await t.read(a);await V(e,s,r,a,n)}return void(s[r]=[...i])}const c=a.findPrimaryKey(n[0]).id,d=new Set;for(const t of n){const a=await L(t,e,this.adapter.alias);await V(e,s,r,a[c],a),d.add(a[c])}s[r]=[...d]}async function G(t,r,a,s){const{cascade:n}=r;if(n.update===e.Cascade.CASCADE)return q.call(this,t,r,a,s)}async function H(t,r,s,n){if(r.cascade.delete!==e.Cascade.CASCADE)return;const o=n[s];if(!o||!o.length)return;const i=typeof o[0];if(!o.every(e=>typeof e===i))throw new a.InternalError(`Invalid operation. All elements of property ${s} must match the same type.`);const c="object"===i,d=c?M.forModel(o[0],this.adapter.alias):W(n,s,this.adapter.alias),l=new Set([...c?o.map(e=>e[d.pk]):o]);for(const e of l.values()){const r=await d.delete(e);await V(t,n,s,e,r)}n[s]=[...l]}function Q(t,r,a){return[e.PersistenceKeys.POPULATE,t,r,a].join(".")}async function V(e,t,r,a,s){const n=Q(t.constructor.name,r,a);return e.accumulate({[n]:s})}async function Y(e,t,r,s){if(!t.populate)return;const n=s[r],o=Array.isArray(n);if(void 0===n||o&&0===n.length)return;const i=await(async(e,t,r,s,n)=>{let o,i;const c=[];for(const d of s){o=Q(t.constructor.name,r,d);try{i=await e.get(o)}catch(e){const s=W(t,r,n);if(!s)throw new a.InternalError("Could not find repo");i=await s.read(d)}c.push(i)}return c})(e,s,r,o?n:[n],this.adapter.alias);s[r]=o?i:i[0]}const z=["array","string","number","boolean","symbol","function","object","undefined","null","bigint"];function W(e,t,r){const n=Reflect.getMetadata(s.Validation.key(Array.isArray(e[t])?s.ValidationKeys.LIST:s.ValidationKeys.TYPE),e,t),o=Array.isArray(e[t])?n.clazz:n.customTypes;if(!n||!o)throw new a.InternalError("Failed to find types decorators for property "+t);const i=(Array.isArray(o)?[...o]:[o]).map(e=>"function"==typeof e?e():e).find(e=>!z.includes((""+e).toLowerCase()));if(!i)throw new a.InternalError(`Property key ${t} does not have a valid constructor type`);const c=s.Model.get(i);if(!c)throw new a.InternalError("No registered model found for "+i);return M.forModel(c,r)}function X(t,r,a){return s.Decoration.for(e.PersistenceKeys.INDEX).define({decorator:(t,r,a)=>("string"==typeof t&&(a=t,t=void 0,r=void 0),"string"==typeof r&&(a=r,r=void 0),!r&&t&&t.find(t=>![e.OrderDirection.ASC,e.OrderDirection.DSC].includes(t))&&(r=t,t=void 0),s.propMetadata(M.key(`${e.PersistenceKeys.INDEX}${r&&r.length?"."+r.join("."):""}`),{directions:t,compositions:r,name:a})),args:[t,r,a]}).apply()}async function J(e,t,r,s){if(s[r]&&(await this.select().where(N.attribute(r).eq(s[r])).execute()).length)throw new a.ConflictError(`model already exists with property ${r} equal to ${JSON.stringify(s[r],void 0,2)}`)}async function Z(e,t,r,a){throw new u("This adapter does not support user identification")}function ee(){return a.timestamp([a.OperationKeys.CREATE])}function te(){return a.timestamp()}function re(...t){return(r,a)=>{const s=i.Metadata.get(r,i.Metadata.key(e.PersistenceKeys.NO_VALIDATE,a))||[],n=[...new Set([...s,...t])];return i.apply(i.metadata(i.Metadata.key(e.PersistenceKeys.NO_VALIDATE,a),n))(r,a)}}async function ae(e,t,r,s){if(!t.type||!t.generated||s[r])return;let n;t.name||(t.name=w(s,"pk"));try{n=await this.adapter.Sequence(t)}catch(e){throw new a.InternalError(`Failed to instantiate Sequence ${t.name}: ${e}`)}const o=await n.next();Object.defineProperty(s,r,{enumerable:!0,writable:!1,configurable:!0,value:o})}class se extends s.Model{constructor(e){super(e)}}var ne,oe,ie,ce,de;r.__decorate([ee(),r.__metadata("design:type",Date)],se.prototype,"createdOn",void 0),r.__decorate([te(),r.__metadata("design:type",Date)],se.prototype,"updatedOn",void 0);class le extends n.LoggedClass{constructor(e){super(),this.adapter=e}get log(){return this.adapter.log.for(le)}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?s.Model.get(e):e,!this.fromSelector)throw new T("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 a.InternalError(e)}}async raw(e){const t=await this.adapter.raw(e);if(!this.selectSelector)return t;const r=a.findPrimaryKey(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)}}r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Array]),r.__metadata("design:returntype",Object)],le.prototype,"select",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",["function"==typeof(ne="undefined"!=typeof S&&S)?ne:Object]),r.__metadata("design:returntype",Object)],le.prototype,"distinct",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",["function"==typeof(oe="undefined"!=typeof S&&S)?oe:Object]),r.__metadata("design:returntype",Object)],le.prototype,"max",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",["function"==typeof(ie="undefined"!=typeof S&&S)?ie:Object]),r.__metadata("design:returntype",Object)],le.prototype,"min",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",["function"==typeof(ce="undefined"!=typeof S&&S)?ce:Object]),r.__metadata("design:returntype",Object)],le.prototype,"count",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Object]),r.__metadata("design:returntype",Object)],le.prototype,"from",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[N]),r.__metadata("design:returntype",Object)],le.prototype,"where",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Array]),r.__metadata("design:returntype",Object)],le.prototype,"orderBy",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Object]),r.__metadata("design:returntype",Object)],le.prototype,"groupBy",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Number]),r.__metadata("design:returntype",Object)],le.prototype,"limit",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Number]),r.__metadata("design:returntype",Object)],le.prototype,"offset",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[]),r.__metadata("design:returntype",Promise)],le.prototype,"execute",null),e.QueryClause=void 0,(de=e.QueryClause||(e.QueryClause={})).FIND_BY="findBy",de.SELECT="Select",de.AND="And",de.OR="Or",de.GROUP_BY="GroupBy",de.ORDER_BY="OrderBy",de.THEN="Then",de.THEN_BY="ThenBy";const pe={Equals:(e,t)=>N.attribute(e).eq(t),Diff:(e,t)=>N.attribute(e).dif(t),LessThan:(e,t)=>N.attribute(e).lt(t),LessThanEqual:(e,t)=>N.attribute(e).lte(t),GreaterThan:(e,t)=>N.attribute(e).gt(t),GreaterThanEqual:(e,t)=>N.attribute(e).gte(t),Between:(e,t,r)=>N.attribute(e).gte(t).and(N.attribute(e).lte(r)),In:(e,t)=>N.attribute(e).in(t),Matches:(e,t)=>N.attribute(e).regexp(t)},ue=e=>e.charAt(0).toLowerCase()+e.slice(1);class he{static build(t,...r){if(!t.startsWith(e.QueryClause.FIND_BY))throw Error("Unsupported method "+t);const a=this.extractCore(t),s=this.extractSelect(t),n=this.extractGroupBy(t),o=this.buildWhere(a,r),{orderBy:i,limit:c,offset:d}=this.extractOrderLimitOffset(a,r);return{action:"find",select:s,where:o,groupBy:n,orderBy:i,limit:c,offset:d}}static extractCore(t){const r=t.substring(e.QueryClause.FIND_BY.length),a=r.match(/(Then[A-Z]|OrderBy|GroupBy|Limit|Offset)/);return a?r.substring(0,a.index):r}static extractSelect(t){const r=t.indexOf(e.QueryClause.SELECT);if(-1===r)return;const a=t.substring(r+e.QueryClause.SELECT.length),s=a.match(/(Then[A-Z]|OrderBy|GroupBy|Limit|Offset)/);return(s?a.substring(0,s.index):a).split(e.QueryClause.AND).map(ue).filter(Boolean)}static extractGroupBy(t){const r=t.indexOf(e.QueryClause.GROUP_BY);if(-1!==r)return t.substring(r+e.QueryClause.GROUP_BY.length).split(e.QueryClause.ORDER_BY)[0].split(e.QueryClause.THEN_BY).map(ue).filter(Boolean)}static buildWhere(t,r){const a=(t.split(/OrderBy|GroupBy/)[0]||"").split(/And|Or/),s=t.match(/And|Or/g)||[];let n;if(a.forEach((t,a)=>{const{field:o,operator:i}=this.parseFieldAndOperator(t),c=i?pe[i]:pe.Equals;if(!c)throw Error("Unsupported operator "+i);const d=r[a];if(void 0===d)throw Error("Invalid value for field "+o);const l=c(o,d);n=0===a?l:s[a-1]===e.QueryClause.AND?n.and(l):n.or(l)}),!n)throw Error("No conditions found in method name");return n}static parseFieldAndOperator(e){for(const t of Object.keys(pe))if(e.endsWith(t)){const r=e.slice(0,-t.length);return{field:ue(r),operator:t}}return{field:ue(e)}}static extractOrderLimitOffset(e,t){const r=e.split(/And|Or/).length,a=t.slice(r);let s,n,o;return a.length>=1&&Array.isArray(a[0])&&(s=a[0]),2>a.length||"number"!=typeof a[1]||(n=a[1]),3>a.length||"number"!=typeof a[2]||(o=a[2]),{orderBy:s,limit:n,offset:o}}}t.Injectables.setRegistry(new x);const ye="##VERSION##",fe="##PACKAGE##";i.Metadata.registerLibrary(fe,ye),e.Adapter=E,e.AuthorizationError=u,e.BaseModel=se,e.BigIntSequence=j,e.Condition=N,e.ConnectionError=y,e.DefaultCascade=A,e.DefaultSequenceOptions=B,e.Dispatch=m,e.ForbiddenError=h,e.InjectablesRegistry=x,e.MethodQueryBuilder=he,e.NoneSequenceOptions=K,e.NumericSequence=k,e.ObserverError=I,e.ObserverHandler=f,e.OperatorsMap=pe,e.PACKAGE_NAME=fe,e.Paginator=class{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,a){this.adapter=e,this.query=t,this.size=r,this.clazz=a}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 C("Page number cannot be under 1 and must be an integer");if(void 0!==this._totalPages&&e>this._totalPages)throw new C(`Only ${this._totalPages} are available. Cannot go to page ${e}`);return e}},e.PagingError=C,e.QueryError=T,e.Repository=M,e.Sequence=O,e.Statement=le,e.UnsupportedError=g,e.VERSION=ye,e.cacheModelForPopulate=V,e.column=t=>{const r=E.key(e.PersistenceKeys.COLUMN);return s.Decoration.for(r).define({decorator:(e,t)=>(r,a)=>s.propMetadata(e,t||a)(r,a),args:[r,t]}).apply()},e.createOrUpdate=L,e.createdAt=ee,e.createdBy=()=>{const t=M.key(e.PersistenceKeys.CREATED_BY);return s.Decoration.for(t).define(a.onCreate(Z),s.propMetadata(t,{})).apply()},e.createdByOnCreateUpdate=Z,e.final=p,e.generateInjectableNameForRepository=R,e.getColumnName=v,e.getPopulateKey=Q,e.getTableName=_,e.index=X,e.manyToMany=(t,r=A,a=!0,n,i)=>{const c=M.key(e.PersistenceKeys.MANY_TO_MANY);return s.Decoration.for(c).define({decorator:(t,r,a,n,i)=>{const d={class:t.name?t.name:t,cascade:r,populate:a};return n&&(d.joinTable=n),i&&(d.name=i),o.apply(s.prop(e.PersistenceKeys.RELATIONS),s.list([t.name?t.name:t,String.name,Number.name,BigInt.name]),s.propMetadata(c,d))},args:[t,r,a,n,i]}).apply()},e.manyToOne=(t,r=A,a=!0,n,i)=>{const c=M.key(e.PersistenceKeys.MANY_TO_ONE);return s.Decoration.for(c).define({decorator:(t,r,a,n,i)=>{const d={class:t?.name?t.name:t,cascade:r,populate:a};return n&&(d.joinTable=n),i&&(d.name=i),o.apply(s.prop(e.PersistenceKeys.RELATIONS),s.type([()=>(t?.name?t:t()).name,String.name,Number.name,BigInt.name]),s.propMetadata(c,d))},args:[t,r,a,n,i]}).apply()},e.noValidateOn=re,e.noValidateOnCreate=()=>re(a.OperationKeys.CREATE),e.noValidateOnCreateUpdate=()=>re(a.OperationKeys.UPDATE,a.OperationKeys.CREATE),e.noValidateOnUpdate=()=>re(a.OperationKeys.UPDATE),e.oneToMany=(t,r=A,n=!0,i,c)=>{const d=M.key(e.PersistenceKeys.ONE_TO_MANY);return s.Decoration.for(d).define({decorator:(t,r,n,i,c)=>{const l={class:t.name?t.name:t,cascade:r,populate:n};return i&&(l.joinTable=i),c&&(l.name=c),o.apply(s.prop(e.PersistenceKeys.RELATIONS),s.list([t,String,Number,BigInt]),a.onCreate(q,l),a.onUpdate(G,l),a.onDelete(H,l),a.afterAny(Y,l),s.propMetadata(d,l))},args:[t,r,n,i,c]}).apply()},e.oneToManyOnCreate=q,e.oneToManyOnDelete=H,e.oneToManyOnUpdate=G,e.oneToOne=(t,r=A,n=!0,i,c)=>{const d=M.key(e.PersistenceKeys.ONE_TO_ONE);return s.Decoration.for(d).define({decorator:(t,r,n,i,c)=>{const l={class:t.name?t.name:t,cascade:r,populate:n};return i&&(l.joinTable=i),c&&(l.name=c),o.apply(s.prop(e.PersistenceKeys.RELATIONS),s.type([t.name?t.name:t,String.name,Number.name,BigInt.name]),a.onCreate($,l),a.onUpdate(F,l),a.onDelete(U,l),a.afterAny(Y,l),s.propMetadata(d,l))},args:[t,r,n,i,c]}).apply()},e.oneToOneOnCreate=$,e.oneToOneOnDelete=U,e.oneToOneOnUpdate=F,e.pk=(t=B)=>{t=Object.assign({},B,t,{generated:!(!t.type||void 0!==t.generated)||t.generated||B.generated});const r=M.key(a.DBKeys.ID);return s.Decoration.for(r).define({decorator:(t,n)=>(i,c)=>o.apply(X([e.OrderDirection.ASC,e.OrderDirection.DSC]),s.required(),a.readonly(),s.propMetadata(r,t),a.onCreate(ae,t,n),s.propMetadata(a.DBKeys.ID,c))(i,c),args:[t,{priority:60}]}).apply()},e.pkOnCreate=ae,e.populate=Y,e.query=function(e={}){return(t,r,a)=>{const s=r.toString();a.value=function(...t){const{select:r,where:a,groupBy:n,orderBy:o,limit:i,offset:c}=he.build(s,...t);let d=this.select(r);a&&(d=d.where(a));const{allowLimit:l,allowOffset:p,allowOrderBy:u,throws:h}={allowLimit:!0,allowOrderBy:!0,allowOffset:!0,throws:!0,...e},y=[{key:"orderBy",value:(o||[])[0],allowed:u},{key:"limit",value:i,allowed:l},{key:"offset",value:c,allowed:p}];for(const e of y)if(void 0!==e.value){if(!e.allowed&&h)throw new T(e.key[0].toUpperCase()+e.key.slice(1)+" is not allowed for this query");e.allowed&&(d=d[e.key](e.value))}return d.execute()}}},e.repository=(r,n)=>(i,c)=>c?t.inject(r[s.ModelKeys.ANCHOR]||r)(i,c):(o.metadata(M.key(a.DBKeys.REPOSITORY),i.name)(r),n=n||Reflect.getMetadata(E.key(e.PersistenceKeys.ADAPTER),i),M.register(r[s.ModelKeys.ANCHOR]||r,i,n),t.injectable(r[s.ModelKeys.ANCHOR]||r,{callback:e=>(Object.defineProperty(e,a.DBKeys.CLASS,{enumerable:!1,configurable:!1,writable:!1,value:r}),e)})(i)),e.repositoryFromTypeMetadata=W,e.sequenceNameForModel=w,e.table=t=>r=>{const a=E.key(e.PersistenceKeys.TABLE);return s.Decoration.for(a).define({decorator:o.metadata,args:[a,t||r.name.toLowerCase()]}).apply()(r)},e.unique=()=>{const t=M.key(e.PersistenceKeys.UNIQUE);return s.Decoration.for(t).define(a.onCreateUpdate(J),s.propMetadata(t,{})).apply()},e.uniqueOnCreateUpdate=J,e.updatedAt=te,e.updatedBy=()=>{const t=M.key(e.PersistenceKeys.UPDATED_BY);return s.Decoration.for(t).define(a.onCreateUpdate(Z),s.propMetadata(t,{})).apply()},e.uses=b},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/injectable-decorators"),require("tslib"),require("@decaf-ts/db-decorators"),require("@decaf-ts/decorator-validation"),require("@decaf-ts/logging"),require("@decaf-ts/reflection"),require("@decaf-ts/decoration")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/injectable-decorators","tslib","@decaf-ts/db-decorators","@decaf-ts/decorator-validation","@decaf-ts/logging","@decaf-ts/reflection","@decaf-ts/decoration"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).core={},e.decafTsInjectableDecorators,e.tslib,e.decafTsDbDecorators,e.decafTsDecoratorValidation,e.decafTsLogging,e.decafTsReflection,e.decafTsDecoration);
|
|
1
|
+
var e,t;e=this,t=function(e,t,r,a,s,n,o,i){"use strict";var c,d,l;function p(){return(e,t,r)=>{if(!r)throw Error("final decorator can only be used on methods");return r?.configurable&&(r.configurable=!1),r}}e.PersistenceKeys=void 0,(c=e.PersistenceKeys||(e.PersistenceKeys={})).INDEX="index",c.UNIQUE="unique",c.ADAPTER="adapter",c.INJECTABLE="decaf_{0}_adapter_for_{1}",c.TABLE="table",c.COLUMN="column",c.METADATA="__metadata",c.OWNERSHIP="ownership",c.CREATED_BY="ownership.created-by",c.UPDATED_BY="ownership.updated-by",c.RELATIONS="__relations",c.RELATION="relation",c.ONE_TO_ONE="relation.one-to-one",c.ONE_TO_MANY="relation.one-to-many",c.MANY_TO_ONE="relation.many-to-one",c.MANY_TO_MANY="relation.many-to-many",c.POPULATE="populate",c.NO_VALIDATE="no-validate",c.MIGRATION="migration";class u extends a.BadRequestError{constructor(e,t=u.name,r=401){super(e,t,r)}}class h extends u{constructor(e,t=h.name){super(e,t,403)}}class y extends a.InternalError{constructor(e){super(e,y.name,503)}}class f{constructor(){this.observers=[]}count(){return this.observers.length}observe(e,t){if(-1!==this.observers.map(e=>e.observer).indexOf(e))throw new a.InternalError("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 a.InternalError("Failed to find Observer");this.observers.splice(t,1)}async updateObservers(e,t,r,a,...s){(await Promise.allSettled(this.observers.filter(s=>{const{filter:n}=s;if(!n)return!0;try{return n(t,r,a)}catch(t){return e.error(`Failed to filter observer ${s.observer.toString()}: ${t}`),!1}}).map(e=>{e.observer.refresh(t,r,a,...s)}))).forEach((t,r)=>{"rejected"===t.status&&e.error(`Failed to update observable ${this.observers[r].toString()}: ${t.reason}`)})}}function g(t){const r=t instanceof s.Model?s.Model.get(t.constructor.name):t;if(!r)throw new a.InternalError("Unable to find model "+t);return Reflect.getOwnMetadata(_.key(e.PersistenceKeys.TABLE),r[s.ModelKeys.MODEL]||r)||(t instanceof s.Model?t.constructor.name:t.name)}function m(t,r){return Reflect.getMetadata(a.Repository.key(e.PersistenceKeys.COLUMN),t,r)||r}function b(e,...t){return[g(e),...t].join("_")}class O extends a.InternalError{constructor(e){super(e,O.name,500)}}class w extends a.InternalError{constructor(e,t=w.name){super(e,t,500)}}class v extends w{constructor(e){super(e,v.name)}}s.Decoration.setFlavourResolver(e=>{try{return _.flavourOf(s.Model.isModel(e)?e.constructor:e)||_.currentFlavour||s.DefaultFlavour}catch(e){}try{return _.currentFlavour||s.DefaultFlavour}catch(e){return s.DefaultFlavour}});class _ extends n.LoggedClass{static{this._cache={}}get config(){return this._config}get alias(){return this._alias||this.flavour}repository(){if(!_._baseRepository)throw new a.InternalError("This should be overridden when necessary. Otherwise it will be replaced lazily");return _._baseRepository}async shutdownProxies(e){if(this.proxies){if(e&&!(e in this.proxies))throw new a.InternalError("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=a.Context,this.alias in _._cache)throw new a.InternalError(`${this.alias} persistence adapter ${this._alias?`(${this.flavour}) `:""} already registered`);_._cache[this.alias]=this,this.log.info(`Created ${this.alias} persistence adapter ${this._alias?`(${this.flavour}) `:""} persistence adapter`),_._currentFlavour||(this.log.verbose(`Defined ${this.alias} persistence adapter as current`),_._currentFlavour=this.alias)}Dispatch(){return new _._baseDispatch}ObserverHandler(){return new f}isReserved(e){return!e}async initialize(...e){}async flags(e,t,r,...s){return Object.assign({},a.DefaultRepositoryFlags,r,{affectedTables:g(t),writeOperation:e!==a.OperationKeys.READ,timestamp:new Date,operation:e,ignoredValidationProperties:o.Metadata.validationExceptions(t,e)})}async context(e,t,r,...a){this.log.for(this.context).debug(`Creating new context for ${e} operation on ${r.name} model with flag overrides: ${JSON.stringify(t)}`);const s=await this.flags(e,r,t,...a);return(new this.Context).accumulate(s)}prepare(t,r){const s=this.log.for(this.prepare),n=a.modelToTransient(t),o=Object.entries(n.model).reduce((e,[r,s])=>{if(void 0===s)return e;const n=m(t,r);if(this.isReserved(n))throw new a.InternalError(`Property name ${n} is reserved`);return e[n]=s,e},{});return t[e.PersistenceKeys.METADATA]&&(s.silly("Passing along persistence metadata for "+t[e.PersistenceKeys.METADATA]),Object.defineProperty(o,e.PersistenceKeys.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:t[e.PersistenceKeys.METADATA]})),{record:o,id:t[r],transient:n.transient}}revert(t,r,n,o,i){const c=this.log.for(this.revert),d={};d[n]=o;const l="string"==typeof r?s.Model.build(d,r):new r(d);c.silly(`Rebuilding model ${l.constructor.name} id ${o}`);const p=t[e.PersistenceKeys.METADATA],u=Object.keys(l).reduce((e,r)=>(r===n||(e[r]=t[m(e,r)]),e),l);return i&&(c.verbose("re-adding transient properties: "+Object.keys(i).join(", ")),Object.entries(i).forEach(([e,t])=>{if(e in u)throw new a.InternalError(`Transient property ${e} already exists on model ${l.constructor.name}. should be impossible`);u[e]=t})),p&&(c.silly(`Passing along ${this.flavour} persistence metadata for ${l.constructor.name} id ${o}: ${p}`),Object.defineProperty(u,e.PersistenceKeys.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:p})),u}async createAll(e,t,r,...s){if(t.length!==r.length)throw new a.InternalError("Ids and models must have the same length");const n=this.log.for(this.createAll);return n.verbose(`Creating ${t.length} entries ${e} table`),n.debug("pks: "+t),Promise.all(t.map((t,a)=>this.create(e,t,r[a],...s)))}async readAll(e,t,...r){const a=this.log.for(this.readAll);return a.verbose(`Reading ${t.length} entries ${e} table`),a.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 a.InternalError("Ids and models must have the same length");const n=this.log.for(this.updateAll);return n.verbose(`Updating ${t.length} entries ${e} table`),n.debug("pks: "+t),Promise.all(t.map((t,a)=>this.update(e,t,r[a],...s)))}async deleteAll(e,t,...r){const a=this.log.for(this.createAll);return a.verbose(`Deleting ${t.length} entries ${e} table`),a.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 a.InternalError("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 a.InternalError("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,...a){return this.updateObservers(e,t,r,...a)}toString(){return this.flavour+" persistence Adapter"}static flavourOf(t){return Reflect.getMetadata(this.key(e.PersistenceKeys.ADAPTER),t)||this.current?.flavour}static get currentFlavour(){if(!_._currentFlavour)throw new a.InternalError("No persistence flavour set. Please initialize your adapter");return _._currentFlavour}static get current(){return _.get(this.currentFlavour)}static get(e){if(!e)return _.get(this._currentFlavour);if(e in this._cache)return this._cache[e];throw new a.InternalError(`No Adapter registered under ${e}.`)}static setCurrent(e){this._currentFlavour=e}static key(e){return a.Repository.key(e)}static models(t){try{const r=s.Model.getRegistry().cache;return Object.values(r).map(r=>{let s=Reflect.getMetadata(_.key(e.PersistenceKeys.ADAPTER),r);if(s&&s===t)return r;if(!s){if(!Reflect.getMetadata(a.Repository.key(a.DBKeys.REPOSITORY),r))return;const t=this._baseRepository.forModel(r);return s=Reflect.getMetadata(_.key(e.PersistenceKeys.ADAPTER),t),s}}).filter(e=>!!e)}catch(e){throw new a.InternalError(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} - ${s.hashObj(e)}`;if(r in this.proxies)return this.proxies[r];let a;const n=new Proxy(this,{get:(t,r,s)=>{if("_config"===r){const a=Reflect.get(t,r,s);return Object.assign({},a,e)}return"_client"===r?a:Reflect.get(t,r,s)},set:(e,t,r,s)=>"_client"===t?(a=r,!0):Reflect.set(e,t,r,s)});return this.proxies[r]=n,n}migrations(){return o.Metadata.migrationsFor(this)}async migrate(e=this.migrations()){for(const t of e)try{const e=new t;await e.up(this,this,this.log),await e.down(this,this,this.log)}catch(e){throw new w(e)}}}r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[String]),r.__metadata("design:returntype",Promise)],_.prototype,"shutdownProxies",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[String,Object,Object,Object]),r.__metadata("design:returntype",Promise)],_.prototype,"context",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Object,Function]),r.__metadata("design:returntype",void 0)],_.prototype,"observe",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Object]),r.__metadata("design:returntype",void 0)],_.prototype,"unObserve",null),r.__decorate([p(),r.__metadata("design:type",Object),r.__metadata("design:paramtypes",[])],_.prototype,"client",null),e.OrderDirection=void 0,(d=e.OrderDirection||(e.OrderDirection={})).ASC="asc",d.DSC="desc",e.Cascade=void 0,(l=e.Cascade||(e.Cascade={})).CASCADE="cascade",l.NONE="none";const E={update:e.Cascade.CASCADE,delete:e.Cascade.NONE};class A{get log(){return this.logger||(this.logger=n.Logging.for(this)),this.logger}constructor(e){this.options=e}static pk(e){return b(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 O(`Unsupported sequence type: ${e} for adapter ${this}`)}}}var P,D;e.Operator=void 0,(P=e.Operator||(e.Operator={})).EQUAL="EQUAL",P.DIFFERENT="DIFFERENT",P.BIGGER="BIGGER",P.BIGGER_EQ="BIGGER_EQ",P.SMALLER="SMALLER",P.SMALLER_EQ="SMALLER_EQ",P.NOT="NOT",P.IN="IN",P.REGEXP="REGEXP",e.GroupOperator=void 0,(D=e.GroupOperator||(e.GroupOperator={})).AND="AND",D.OR="OR";class T extends a.InternalError{constructor(e){super(e,T.name,500)}}class M extends a.InternalError{constructor(e){super(e,M.name,500)}}class R extends s.Model{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 R.and(this,e)}or(e){return R.or(this,e)}not(t){return new R(this,e.Operator.NOT,t)}hasErrors(...t){const r=()=>{const t=`Invalid operator ${this.operator}}`;if("string"==typeof this.attr1){if(this.comparison instanceof R)return{comparison:{condition:"Both sides of the comparison must be of the same type"}};if(-1===Object.values(e.Operator).indexOf(this.operator))return{operator:{condition:t}}}if(this.attr1 instanceof R){if(!(this.comparison instanceof R)&&this.operator!==e.Operator.NOT)return{comparison:{condition:t}};if(-1===Object.values(e.GroupOperator).indexOf(this.operator)&&this.operator!==e.Operator.NOT)return{operator:{condition:t}}}},a=super.hasErrors(...t);return this.isAsync()?(async()=>await Promise.resolve(a)??r())():a??r()}static and(t,r){return R.group(t,e.GroupOperator.AND,r)}static or(t,r){return R.group(t,e.GroupOperator.OR,r)}static group(e,t,r){return new R(e,t,r)}static attribute(e){return(new R.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(t){return this.setOp(e.Operator.EQUAL,t)}dif(t){return this.setOp(e.Operator.DIFFERENT,t)}gt(t){return this.setOp(e.Operator.BIGGER,t)}lt(t){return this.setOp(e.Operator.SMALLER,t)}gte(t){return this.setOp(e.Operator.BIGGER_EQ,t)}lte(t){return this.setOp(e.Operator.SMALLER_EQ,t)}in(t){return this.setOp(e.Operator.IN,t)}regexp(t){return this.setOp(e.Operator.REGEXP,RegExp(t).source)}setOp(e,t){return this.operator=e,this.comparison=t,this.build()}build(){try{return new R(this.attr1,this.operator,this.comparison)}catch(e){throw new T(e)}}}}static builder(){return new R.Builder}}function N(t){return r=>i.apply(i.metadata(_.key(e.PersistenceKeys.ADAPTER),t))(r)}r.__decorate([s.required(),r.__metadata("design:type",Object)],R.prototype,"attr1",void 0),r.__decorate([s.required(),r.__metadata("design:type",String)],R.prototype,"operator",void 0),r.__decorate([s.required(),r.__metadata("design:type",Object)],R.prototype,"comparison",void 0);class I extends a.Repository{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 a.InternalError("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=I.table(this.class)),this._tableName}get pkProps(){return super.pkProps}constructor(t,r,...s){if(super(r),this.observers=[],t&&(this._adapter=t),r&&(I.register(r,this,this.adapter.alias),t)){const s=Reflect.getMetadata(_.key(e.PersistenceKeys.ADAPTER),r);if(s&&s!==t.flavour)throw new a.InternalError("Incompatible flavours");N(t.flavour)(r)}[this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(e=>{const t=e.name;a.wrapMethodWithContext(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,a)=>{const s=Reflect.get(t,r,a);return"_overrides"!==r?s:Object.assign({},s,e)}})}for(e,...t){return new Proxy(this,{get:(r,a,s)=>"adapter"===a?this.adapter.for(e,...t):Reflect.get(r,a,s)})}ObserverHandler(){return new f}async createPrefix(e,...t){const r=await a.Context.args(a.OperationKeys.CREATE,this.class,t,this.adapter,this._overrides||{});e=new this.class(e),await a.enforceDBDecorators(this,r.context,e,a.OperationKeys.CREATE,a.OperationKeys.ON);const s=await Promise.resolve(e.hasErrors(...r.context.get("ignoredValidationProperties")||[]));if(s)throw new a.ValidationError(s.toString());return[e,...r.args]}async create(e,...t){let r,{record:a,id:s,transient:n}=this.adapter.prepare(e,this.pk);return a=await this.adapter.create(this.tableName,s,a,...t),t.length&&(r=t[t.length-1]),this.adapter.revert(a,this.class,this.pk,s,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)),a=r.map(e=>e.id);let s=r.map(e=>e.record);return s=await this.adapter.createAll(this.tableName,a,s,...t),s.map((e,t)=>this.adapter.revert(e,this.class,this.pk,a[t]))}async createAllPrefix(e,...t){const r=await a.Context.args(a.OperationKeys.CREATE,this.class,t,this.adapter,this._overrides||{});if(!e.length)return[e,...r.args];const s=I.getSequenceOptions(e[0]);let n=[];s.type?(s.name||(s.name=A.pk(e[0])),n=await(await this.adapter.Sequence(s)).range(e.length)):n=e.map((e,t)=>{if(void 0===e[this.pk])throw new a.InternalError("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?n[t]:""+e[this.pk]),await a.enforceDBDecorators(this,r.context,e,a.OperationKeys.CREATE,a.OperationKeys.ON),e)));const o=r.context.get("ignoredValidationProperties")||[],i=(await Promise.all(e.map(e=>Promise.resolve(e.hasErrors(...o))))).reduce((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e),void 0);if(i)throw new a.ValidationError(i);return[e,...r.args]}async readPrefix(e,...t){const r=await a.Context.args(a.OperationKeys.READ,this.class,t,this.adapter,this._overrides||{}),s=new this.class;return s[this.pk]=e,await a.enforceDBDecorators(this,r.context,s,a.OperationKeys.READ,a.OperationKeys.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 a.Context.args(a.OperationKeys.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,a.enforceDBDecorators(this,r.context,t,a.OperationKeys.READ,a.OperationKeys.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:a,transient:s}=this.adapter.prepare(e,this.pk);return r=await this.adapter.update(this.tableName,a,r,...t),this.adapter.revert(r,this.class,this.pk,a,s)}async updatePrefix(e,...t){const r=await a.Context.args(a.OperationKeys.UPDATE,this.class,t,this.adapter,this._overrides||{}),s=e[this.pk];if(!s)throw new a.InternalError("No value for the Id is defined under the property "+this.pk);const n=await this.read(s,...r.args);e=this.merge(n,e),await a.enforceDBDecorators(this,r.context,e,a.OperationKeys.UPDATE,a.OperationKeys.ON,n);const o=await Promise.resolve(e.hasErrors(n,...I.relations(this.class),...r.context.get("ignoredValidationProperties")||[]));if(o)throw new a.ValidationError(o.toString());return I.getMetadata(n)&&(I.getMetadata(e)||I.setMetadata(e,I.getMetadata(n))),[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 a.Context.args(a.OperationKeys.UPDATE,this.class,t,this.adapter,this._overrides||{}),s=e.map(e=>{const t=e[this.pk];if(!t)throw new a.InternalError("missing id on update operation");return t}),n=await this.readAll(s,...r.args);e=e.map((e,t)=>(e=this.merge(n[t],e),I.getMetadata(n[t])&&(I.getMetadata(e)||I.setMetadata(e,I.getMetadata(n[t]))),e)),await Promise.all(e.map((e,t)=>a.enforceDBDecorators(this,r.context,e,a.OperationKeys.UPDATE,a.OperationKeys.ON,n[t])));const o=r.context.get("ignoredValidationProperties")||[],i=(await Promise.all(e.map((e,t)=>Promise.resolve(e.hasErrors(n[t],e,...o))))).reduce((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e),void 0);if(i)throw new a.ValidationError(i);return e.forEach((e,t)=>{I.getMetadata(n[t])&&(I.getMetadata(e)||I.setMetadata(e,I.getMetadata(n[t])))}),[e,...r.args]}async deletePrefix(e,...t){const r=await a.Context.args(a.OperationKeys.DELETE,this.class,t,this.adapter,this._overrides||{}),s=await this.read(e,...r.args);return await a.enforceDBDecorators(this,r.context,s,a.OperationKeys.DELETE,a.OperationKeys.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 a.Context.args(a.OperationKeys.DELETE,this.class,t,this.adapter,this._overrides||{}),s=await this.readAll(e,...r.args);return await Promise.all(s.map(async e=>a.enforceDBDecorators(this,r.context,e,a.OperationKeys.DELETE,a.OperationKeys.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(t,r,a=e.OrderDirection.ASC,s,n){const o=[r,a],i=this.select().where(t).orderBy(o);return s&&i.limit(s),n&&i.offset(n),i.execute()}attr(e){return R.attr(e)}observe(e,t){this.observerHandler||Object.defineProperty(this,"observerHandler",{value:this.ObserverHandler(),writable:!1});const r=this.log.for(this.observe),a=I.table(this.class);this.adapter.observe(this,e=>a===e),r.verbose(`now observing ${this.adapter} filtering on table === ${a}`),this.observerHandler.observe(e,t),r.verbose("Registered new observer "+e.toString())}unObserve(e){if(!this.observerHandler)throw new a.InternalError("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 a.InternalError("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=>A.parseValue(this.pkProps.type,e)):A.parseValue(this.pkProps.type,r),...s)}async refresh(e,t,r,...a){return this.updateObservers(e,t,r,...a)}static forModel(t,r,...s){let n;const o=r||Reflect.getMetadata(_.key(e.PersistenceKeys.ADAPTER),t)||_.currentFlavour;try{n=this.get(t,o)}catch(e){n=void 0}if(n instanceof I)return n;const i=r||Reflect.getMetadata(_.key(e.PersistenceKeys.ADAPTER),t)||n&&Reflect.getMetadata(_.key(e.PersistenceKeys.ADAPTER),n)||_.currentFlavour,c=i?_.get(i):void 0;if(!c)throw new a.InternalError("No registered persistence adapter found flavour "+i);return n=n||c.repository(),new n(c,t,...s)}static get(e,t){const r=I.table(e);let s=r;if(t&&(s=[r,t].join(a.DefaultSeparator)),s in this._cache)return this._cache[s];if(r in this._cache)return this._cache[r];throw new a.InternalError("Could not find repository registered under "+r)}static register(e,t,r){let s=I.table(e);if(r&&(s=[s,r].join(a.DefaultSeparator)),s in this._cache&&this._cache[s]instanceof I)throw new a.InternalError(s+" already has a registered instance");this._cache[s]=t}static setMetadata(t,r){Object.defineProperty(t,e.PersistenceKeys.METADATA,{enumerable:!1,configurable:!0,writable:!1,value:r})}static getMetadata(t){const r=Object.getOwnPropertyDescriptor(t,e.PersistenceKeys.METADATA);return r?r.value:void 0}static removeMetadata(t){Object.getOwnPropertyDescriptor(t,e.PersistenceKeys.METADATA)&&delete t[e.PersistenceKeys.METADATA]}static getSequenceOptions(e){const t=a.findPrimaryKey(e).id,r=Reflect.getMetadata(I.key(a.DBKeys.ID),e,t);if(!r)throw new a.InternalError("No sequence options defined for model. did you use the @pk decorator?");return r}static indexes(t){const r=i.Reflection.getAllPropertyDecorators(t instanceof s.Model?t:new t,a.DBKeys.REFLECT);return Object.entries(r||{}).reduce((t,[r,a])=>{const s=a.filter(t=>t.key.startsWith(e.PersistenceKeys.INDEX));if(s&&s.length)for(const e of s){const{key:a,props:s}=e;t[r]=t[r]||{},t[r][a]=s}return t},{})}static relations(t){const r=[];let a=t instanceof s.Model?Object.getPrototypeOf(t):t.prototype;for(;null!=a;){const t=a[e.PersistenceKeys.RELATIONS];t&&r.push(...t),a=Object.getPrototypeOf(a)}return r}static table(e){return g(e)}static column(e,t){return m(e,t)}}function C(t,r){if(!r){const n=_.key(e.PersistenceKeys.ADAPTER);if(!(r=Reflect.getMetadata(n,t instanceof s.Model?t.constructor:t)))throw new a.InternalError("Could not retrieve flavour from model "+(t instanceof s.Model?t.constructor.name:t.name))}return s.sf(e.PersistenceKeys.INJECTABLE,r,g(t))}r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Object,Function]),r.__metadata("design:returntype",void 0)],I.prototype,"observe",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Object]),r.__metadata("design:returntype",void 0)],I.prototype,"unObserve",null),_&&(_._baseRepository=I);class x extends t.InjectableRegistryImp{get log(){return this.logger||(this.logger=n.Logging.for(this)),this.logger}constructor(){super()}get(r,a){const n=this.log.for(this.get);let o;try{o=super.get(r)}catch{}if(!o){let i;if("function"==typeof r?i=r:"symbol"!=typeof r&&"string"!=typeof r||(i=s.Model.get(r.toString())),!i)return;const c=_.key(e.PersistenceKeys.ADAPTER),d=a||Reflect.getMetadata(c,i);try{let e=d;try{d&&_.get(d)}catch{const t=_.current;t&&t.flavour===d&&(e=t.alias)}if(o=I.forModel(i,e),o instanceof I)return o;const r=d||Reflect.getMetadata(c,o.constructor)||Reflect.getMetadata(c,i);t.Injectables.register(o,C(i,r))}catch(e){n.debug("No registered repository or adapter found. falling back to default adapter. Error: "+(e?.message||JSON.stringify(e)));const t=I.get(i,d);if("function"==typeof t){const e=d?_.get(d):_.current;if(!e)return;return new t(e,i)}}}return o}}class K extends n.LoggedClass{constructor(){super()}async initialize(){if(!this.adapter)return void this.log.verbose("No adapter observed for dispatch; skipping initialization");const e=this.adapter;[a.OperationKeys.CREATE,a.OperationKeys.UPDATE,a.OperationKeys.DELETE,a.BulkCrudOperationKeys.CREATE_ALL,a.BulkCrudOperationKeys.UPDATE_ALL,a.BulkCrudOperationKeys.DELETE_ALL].forEach(t=>{if(!e[t])throw new a.InternalError(`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[n,o]=s,i=await e.apply(r,s);return this.updateObservers(n,(e=>{switch(e){case a.BulkCrudOperationKeys.CREATE_ALL:return a.OperationKeys.CREATE;case a.BulkCrudOperationKeys.UPDATE_ALL:return a.OperationKeys.UPDATE;case a.BulkCrudOperationKeys.DELETE_ALL:return a.OperationKeys.DELETE;default:return e}})(t),o).then(()=>{this.log.verbose(`Observer refresh dispatched by ${t} for ${n}`),this.log.debug("pks: "+o)}).catch(e=>this.log.error(`Failed to dispatch observer refresh for ${t} on ${n}: ${e}`)),i}}):this.log.error(`Could not find method ${t} to bind Observables Dispatch`)})}async close(){}observe(e){if(!(e instanceof _))throw new O("Only Adapters can be observed by dispatch");this.adapter=e,this.models=_.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 O("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 a.InternalError("Failed to refresh dispatch: "+e)}else this.log.verbose(`No adapter observed for dispatch; skipping observer update for ${e}:${t}`)}}function k(e,t,r,a){const s=async function(...e){let a;try{a=await Promise.resolve(r.call(this,...e))}catch(e){if(e instanceof v)return;throw e}return Promise.resolve(t.apply(this,a))}.bind(e),n=a||t.name;Object.defineProperty(s,"name",{enumerable:!0,configurable:!0,writable:!1,value:n}),e[n]=s}_&&(_._baseDispatch=K);class B extends n.LoggedClass{constructor(){super(),this.transaction=!0,[this.up,this.down].forEach(e=>{const t=e.name;k(this,e,this.prefix(t))})}get adapter(){const t=o.Metadata.get(this.constructor,e.PersistenceKeys.MIGRATION);if(!t)throw new a.InternalError("No migration metadata for "+this.constructor.name);const r=t.flavour;return _.get(r)}async enforceRules(t,r,a){const s=o.Metadata.get(this.constructor,e.PersistenceKeys.MIGRATION)?.rules;if(!s||!s.length)return!0;let n;for(const e of s)if(n=a.for(e),!await e(t,r,n))return!1;return!0}prefix(e){return async function(t){let r;t instanceof _?r=this.getQueryRunner(t.client):(r=t,t=this.adapter);const a=this.log.for(e);if(!await this.enforceRules(r,t,a))throw a.verbose(`Skipping migration ${this.constructor.name} due to rules`),new v("Migration skipped for rule enforcement");return[r,t,a]}.bind(this)}}o.Metadata.validationExceptions=((t,r)=>{const a=o.Metadata.get(t,e.PersistenceKeys.NO_VALIDATE);return a?Object.entries(a).filter(([,e])=>e.includes(r)).map(([e])=>e):[]}).bind(o.Metadata),o.Metadata.migrationsFor=(t=>{if(!(t=t??_.current))throw new a.InternalError("Could not get adapter for migrations");return o.Metadata.innerGet(Symbol.for(e.PersistenceKeys.MIGRATION),t.alias).map(e=>e.class)}).bind(o.Metadata);class j extends a.InternalError{constructor(e){super(e,j.name,500)}}const L={type:void 0,generated:!1,startWith:0,incrementBy:1,cycle:!1},$=L,F={type:"Number",generated:!0,startWith:0,incrementBy:1,cycle:!1},U=Object.assign({},F,{type:"BigInt"});async function G(e,t,r,n){if(!n){const t=s.Model.get(e.constructor.name);if(!t)throw new a.InternalError("Could not find model "+e.constructor.name);n=I.forModel(t,r)}if(void 0===e[n.pk])return n.create(e,t);try{return n.update(e,t)}catch(r){if(!(r instanceof a.NotFoundError))throw r;return n.create(e,t)}}async function q(e,t,r,n){const o=n[r];if(!o)return;if("object"!=typeof o){const t=ee(n,r,this.adapter.alias),a=await t.read(o);return await X(e,n,r,o,a),void(n[r]=o)}t.class="string"==typeof t.class?t.class:t.class().name;const i=s.Model.get(t.class);if(!i)throw new a.InternalError("Could not find model "+t.class);const c=I.forModel(i,this.adapter.alias),d=await c.create(o),l=a.findPrimaryKey(d).id;await X(e,n,r,d[l],d),n[r]=d[l]}async function H(t,r,s,n){const o=n[s];if(!o)return;if(r.cascade.update!==e.Cascade.CASCADE)return;if("object"!=typeof o){const e=ee(n,s,this.adapter.alias),r=await e.read(o);return await X(t,n,s,o,r),void(n[s]=o)}const i=await G(n[s],t,this.adapter.alias),c=a.findPrimaryKey(i).id;await X(t,n,s,i[c],i),n[s]=i[c]}async function Q(t,r,a,n){const o=n[a];if(!o)return;if(r.cascade.update!==e.Cascade.CASCADE)return;const i=ee(n,a,this.adapter.alias);let c;c=o instanceof s.Model?await i.delete(n[a][i.pk]):await i.delete(n[a]),await X(t,n,a,c[i.pk],c)}async function V(e,t,r,s){const n=s[r];if(!n||!n.length)return;const o=typeof n[0];if(!n.every(e=>typeof e===o))throw new a.InternalError(`Invalid operation. All elements of property ${r} must match the same type.`);const i=new Set([...n]);if("object"!==o){const t=ee(s,r,this.adapter.alias);for(const a of i){const n=await t.read(a);await X(e,s,r,a,n)}return void(s[r]=[...i])}const c=a.findPrimaryKey(n[0]).id,d=new Set;for(const t of n){const a=await G(t,e,this.adapter.alias);await X(e,s,r,a[c],a),d.add(a[c])}s[r]=[...d]}async function Y(t,r,a,s){const{cascade:n}=r;if(n.update===e.Cascade.CASCADE)return V.call(this,t,r,a,s)}async function z(t,r,s,n){if(r.cascade.delete!==e.Cascade.CASCADE)return;const o=n[s];if(!o||!o.length)return;const i=typeof o[0];if(!o.every(e=>typeof e===i))throw new a.InternalError(`Invalid operation. All elements of property ${s} must match the same type.`);const c="object"===i,d=c?I.forModel(o[0],this.adapter.alias):ee(n,s,this.adapter.alias),l=new Set([...c?o.map(e=>e[d.pk]):o]);for(const e of l.values()){const r=await d.delete(e);await X(t,n,s,e,r)}n[s]=[...l]}function W(t,r,a){return[e.PersistenceKeys.POPULATE,t,r,a].join(".")}async function X(e,t,r,a,s){const n=W(t.constructor.name,r,a);return e.accumulate({[n]:s})}async function J(e,t,r,s){if(!t.populate)return;const n=s[r],o=Array.isArray(n);if(void 0===n||o&&0===n.length)return;const i=await(async(e,t,r,s,n)=>{let o,i;const c=[];for(const d of s){o=W(t.constructor.name,r,d);try{i=await e.get(o)}catch(e){const s=ee(t,r,n);if(!s)throw new a.InternalError("Could not find repo");i=await s.read(d)}c.push(i)}return c})(e,s,r,o?n:[n],this.adapter.alias);s[r]=o?i:i[0]}const Z=["array","string","number","boolean","symbol","function","object","undefined","null","bigint"];function ee(e,t,r){const n=Reflect.getMetadata(s.Validation.key(Array.isArray(e[t])?s.ValidationKeys.LIST:s.ValidationKeys.TYPE),e,t),o=Array.isArray(e[t])?n.clazz:n.customTypes;if(!n||!o)throw new a.InternalError("Failed to find types decorators for property "+t);const i=(Array.isArray(o)?[...o]:[o]).map(e=>"function"==typeof e?e():e).find(e=>!Z.includes((""+e).toLowerCase()));if(!i)throw new a.InternalError(`Property key ${t} does not have a valid constructor type`);const c=s.Model.get(i);if(!c)throw new a.InternalError("No registered model found for "+i);return I.forModel(c,r)}function te(t,r,a){return s.Decoration.for(e.PersistenceKeys.INDEX).define({decorator:(t,r,a)=>("string"==typeof t&&(a=t,t=void 0,r=void 0),"string"==typeof r&&(a=r,r=void 0),!r&&t&&t.find(t=>![e.OrderDirection.ASC,e.OrderDirection.DSC].includes(t))&&(r=t,t=void 0),s.propMetadata(I.key(`${e.PersistenceKeys.INDEX}${r&&r.length?"."+r.join("."):""}`),{directions:t,compositions:r,name:a})),args:[t,r,a]}).apply()}async function re(e,t,r,s){if(s[r]&&(await this.select().where(R.attribute(r).eq(s[r])).execute()).length)throw new a.ConflictError(`model already exists with property ${r} equal to ${JSON.stringify(s[r],void 0,2)}`)}async function ae(e,t,r,a){throw new u("This adapter does not support user identification")}function se(){return a.timestamp([a.OperationKeys.CREATE])}function ne(){return a.timestamp()}function oe(...t){return(r,a)=>{const s=o.Metadata.get(r,o.Metadata.key(e.PersistenceKeys.NO_VALIDATE,a))||[],n=[...new Set([...s,...t])];return o.apply(o.metadata(o.Metadata.key(e.PersistenceKeys.NO_VALIDATE,a),n))(r,a)}}async function ie(e,t,r,s){if(!t.type||!t.generated||s[r])return;let n;t.name||(t.name=b(s,"pk"));try{n=await this.adapter.Sequence(t)}catch(e){throw new a.InternalError(`Failed to instantiate Sequence ${t.name}: ${e}`)}const o=await n.next();Object.defineProperty(s,r,{enumerable:!0,writable:!1,configurable:!0,value:o})}class ce extends s.Model{constructor(e){super(e)}}var de,le,pe,ue,he;r.__decorate([se(),r.__metadata("design:type",Date)],ce.prototype,"createdOn",void 0),r.__decorate([ne(),r.__metadata("design:type",Date)],ce.prototype,"updatedOn",void 0);class ye extends n.LoggedClass{constructor(e){super(),this.adapter=e}get log(){return this.adapter.log.for(ye)}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?s.Model.get(e):e,!this.fromSelector)throw new T("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 a.InternalError(e)}}async raw(e){const t=await this.adapter.raw(e);if(!this.selectSelector)return t;const r=a.findPrimaryKey(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)}}r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Array]),r.__metadata("design:returntype",Object)],ye.prototype,"select",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",["function"==typeof(de="undefined"!=typeof S&&S)?de:Object]),r.__metadata("design:returntype",Object)],ye.prototype,"distinct",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",["function"==typeof(le="undefined"!=typeof S&&S)?le:Object]),r.__metadata("design:returntype",Object)],ye.prototype,"max",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",["function"==typeof(pe="undefined"!=typeof S&&S)?pe:Object]),r.__metadata("design:returntype",Object)],ye.prototype,"min",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",["function"==typeof(ue="undefined"!=typeof S&&S)?ue:Object]),r.__metadata("design:returntype",Object)],ye.prototype,"count",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Object]),r.__metadata("design:returntype",Object)],ye.prototype,"from",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[R]),r.__metadata("design:returntype",Object)],ye.prototype,"where",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Array]),r.__metadata("design:returntype",Object)],ye.prototype,"orderBy",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Object]),r.__metadata("design:returntype",Object)],ye.prototype,"groupBy",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Number]),r.__metadata("design:returntype",Object)],ye.prototype,"limit",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Number]),r.__metadata("design:returntype",Object)],ye.prototype,"offset",null),r.__decorate([p(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[]),r.__metadata("design:returntype",Promise)],ye.prototype,"execute",null),e.QueryClause=void 0,(he=e.QueryClause||(e.QueryClause={})).FIND_BY="findBy",he.SELECT="Select",he.AND="And",he.OR="Or",he.GROUP_BY="GroupBy",he.ORDER_BY="OrderBy",he.THEN="Then",he.THEN_BY="ThenBy";const fe={Equals:(e,t)=>R.attribute(e).eq(t),Diff:(e,t)=>R.attribute(e).dif(t),LessThan:(e,t)=>R.attribute(e).lt(t),LessThanEqual:(e,t)=>R.attribute(e).lte(t),GreaterThan:(e,t)=>R.attribute(e).gt(t),GreaterThanEqual:(e,t)=>R.attribute(e).gte(t),Between:(e,t,r)=>R.attribute(e).gte(t).and(R.attribute(e).lte(r)),In:(e,t)=>R.attribute(e).in(t),Matches:(e,t)=>R.attribute(e).regexp(t)},ge=e=>e.charAt(0).toLowerCase()+e.slice(1);class me{static build(t,...r){if(!t.startsWith(e.QueryClause.FIND_BY))throw Error("Unsupported method "+t);const a=this.extractCore(t),s=this.extractSelect(t),n=this.extractGroupBy(t),o=this.buildWhere(a,r),{orderBy:i,limit:c,offset:d}=this.extractOrderLimitOffset(a,r);return{action:"find",select:s,where:o,groupBy:n,orderBy:i,limit:c,offset:d}}static extractCore(t){const r=t.substring(e.QueryClause.FIND_BY.length),a=r.match(/(Then[A-Z]|OrderBy|GroupBy|Limit|Offset)/);return a?r.substring(0,a.index):r}static extractSelect(t){const r=t.indexOf(e.QueryClause.SELECT);if(-1===r)return;const a=t.substring(r+e.QueryClause.SELECT.length),s=a.match(/(Then[A-Z]|OrderBy|GroupBy|Limit|Offset)/);return(s?a.substring(0,s.index):a).split(e.QueryClause.AND).map(ge).filter(Boolean)}static extractGroupBy(t){const r=t.indexOf(e.QueryClause.GROUP_BY);if(-1!==r)return t.substring(r+e.QueryClause.GROUP_BY.length).split(e.QueryClause.ORDER_BY)[0].split(e.QueryClause.THEN_BY).map(ge).filter(Boolean)}static buildWhere(t,r){const a=(t.split(/OrderBy|GroupBy/)[0]||"").split(/And|Or/),s=t.match(/And|Or/g)||[];let n;if(a.forEach((t,a)=>{const{field:o,operator:i}=this.parseFieldAndOperator(t),c=i?fe[i]:fe.Equals;if(!c)throw Error("Unsupported operator "+i);const d=r[a];if(void 0===d)throw Error("Invalid value for field "+o);const l=c(o,d);n=0===a?l:s[a-1]===e.QueryClause.AND?n.and(l):n.or(l)}),!n)throw Error("No conditions found in method name");return n}static parseFieldAndOperator(e){for(const t of Object.keys(fe))if(e.endsWith(t)){const r=e.slice(0,-t.length);return{field:ge(r),operator:t}}return{field:ge(e)}}static extractOrderLimitOffset(e,t){const r=e.split(/And|Or/).length,a=t.slice(r);let s,n,o;return a.length>=1&&Array.isArray(a[0])&&(s=a[0]),2>a.length||"number"!=typeof a[1]||(n=a[1]),3>a.length||"number"!=typeof a[2]||(o=a[2]),{orderBy:s,limit:n,offset:o}}}t.Injectables.setRegistry(new x);const be="##VERSION##",Oe="##PACKAGE##";o.Metadata.registerLibrary(Oe,be),e.AbsMigration=B,e.Adapter=_,e.AuthorizationError=u,e.BaseModel=ce,e.BigIntSequence=U,e.Condition=R,e.ConnectionError=y,e.DefaultCascade=E,e.DefaultSequenceOptions=$,e.Dispatch=K,e.ForbiddenError=h,e.InjectablesRegistry=x,e.MethodQueryBuilder=me,e.MigrationError=w,e.MigrationRuleError=v,e.NoneSequenceOptions=L,e.NumericSequence=F,e.ObserverError=j,e.ObserverHandler=f,e.OperatorsMap=fe,e.PACKAGE_NAME=Oe,e.Paginator=class{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,a){this.adapter=e,this.query=t,this.size=r,this.clazz=a}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 M("Page number cannot be under 1 and must be an integer");if(void 0!==this._totalPages&&e>this._totalPages)throw new M(`Only ${this._totalPages} are available. Cannot go to page ${e}`);return e}},e.PagingError=M,e.QueryError=T,e.Repository=I,e.Sequence=A,e.Statement=ye,e.UnsupportedError=O,e.VERSION=be,e.cacheModelForPopulate=X,e.column=t=>{const r=_.key(e.PersistenceKeys.COLUMN);return s.Decoration.for(r).define({decorator:(e,t)=>(r,a)=>s.propMetadata(e,t||a)(r,a),args:[r,t]}).apply()},e.createOrUpdate=G,e.createdAt=se,e.createdBy=()=>{const t=I.key(e.PersistenceKeys.CREATED_BY);return s.Decoration.for(t).define(a.onCreate(ae),s.propMetadata(t,{})).apply()},e.createdByOnCreateUpdate=ae,e.final=p,e.generateInjectableNameForRepository=C,e.getColumnName=m,e.getPopulateKey=W,e.getTableName=g,e.index=te,e.manyToMany=(t,r=E,a=!0,n,o)=>{const c=I.key(e.PersistenceKeys.MANY_TO_MANY);return s.Decoration.for(c).define({decorator:(t,r,a,n,o)=>{const d={class:t.name?t.name:t,cascade:r,populate:a};return n&&(d.joinTable=n),o&&(d.name=o),i.apply(s.prop(e.PersistenceKeys.RELATIONS),s.list([t.name?t.name:t,String.name,Number.name,BigInt.name]),s.propMetadata(c,d))},args:[t,r,a,n,o]}).apply()},e.manyToOne=(t,r=E,a=!0,n,o)=>{const c=I.key(e.PersistenceKeys.MANY_TO_ONE);return s.Decoration.for(c).define({decorator:(t,r,a,n,o)=>{const d={class:t?.name?t.name:t,cascade:r,populate:a};return n&&(d.joinTable=n),o&&(d.name=o),i.apply(s.prop(e.PersistenceKeys.RELATIONS),s.type([()=>(t?.name?t:t()).name,String.name,Number.name,BigInt.name]),s.propMetadata(c,d))},args:[t,r,a,n,o]}).apply()},e.migration=(t,r)=>s.Decoration.for(e.PersistenceKeys.MIGRATION).define({decorator:(t,r)=>a=>{const s=o.Metadata.innerGet(Symbol.for(e.PersistenceKeys.MIGRATION),t)||[];return o.Metadata.set(e.PersistenceKeys.MIGRATION,t,[...s,{class:a}]),o.metadata(e.PersistenceKeys.MIGRATION,{flavour:t,rules:r})(a)},args:[t,r]}).apply(),e.noValidateOn=oe,e.noValidateOnCreate=()=>oe(a.OperationKeys.CREATE),e.noValidateOnCreateUpdate=()=>oe(a.OperationKeys.UPDATE,a.OperationKeys.CREATE),e.noValidateOnUpdate=()=>oe(a.OperationKeys.UPDATE),e.oneToMany=(t,r=E,n=!0,o,c)=>{const d=I.key(e.PersistenceKeys.ONE_TO_MANY);return s.Decoration.for(d).define({decorator:(t,r,n,o,c)=>{const l={class:t.name?t.name:t,cascade:r,populate:n};return o&&(l.joinTable=o),c&&(l.name=c),i.apply(s.prop(e.PersistenceKeys.RELATIONS),s.list([t,String,Number,BigInt]),a.onCreate(V,l),a.onUpdate(Y,l),a.onDelete(z,l),a.afterAny(J,l),s.propMetadata(d,l))},args:[t,r,n,o,c]}).apply()},e.oneToManyOnCreate=V,e.oneToManyOnDelete=z,e.oneToManyOnUpdate=Y,e.oneToOne=(t,r=E,n=!0,o,c)=>{const d=I.key(e.PersistenceKeys.ONE_TO_ONE);return s.Decoration.for(d).define({decorator:(t,r,n,o,c)=>{const l={class:t.name?t.name:t,cascade:r,populate:n};return o&&(l.joinTable=o),c&&(l.name=c),i.apply(s.prop(e.PersistenceKeys.RELATIONS),s.type([t.name?t.name:t,String.name,Number.name,BigInt.name]),a.onCreate(q,l),a.onUpdate(H,l),a.onDelete(Q,l),a.afterAny(J,l),s.propMetadata(d,l))},args:[t,r,n,o,c]}).apply()},e.oneToOneOnCreate=q,e.oneToOneOnDelete=Q,e.oneToOneOnUpdate=H,e.pk=(t=$)=>{t=Object.assign({},$,t,{generated:!(!t.type||void 0!==t.generated)||t.generated||$.generated});const r=I.key(a.DBKeys.ID);return s.Decoration.for(r).define({decorator:(t,n)=>(o,c)=>i.apply(te([e.OrderDirection.ASC,e.OrderDirection.DSC]),s.required(),a.readonly(),s.propMetadata(r,t),a.onCreate(ie,t,n),s.propMetadata(a.DBKeys.ID,c))(o,c),args:[t,{priority:60}]}).apply()},e.pkOnCreate=ie,e.populate=J,e.prefixMethod=k,e.query=function(e={}){return(t,r,a)=>{const s=r.toString();a.value=function(...t){const{select:r,where:a,groupBy:n,orderBy:o,limit:i,offset:c}=me.build(s,...t);let d=this.select(r);a&&(d=d.where(a));const{allowLimit:l,allowOffset:p,allowOrderBy:u,throws:h}={allowLimit:!0,allowOrderBy:!0,allowOffset:!0,throws:!0,...e},y=[{key:"orderBy",value:(o||[])[0],allowed:u},{key:"limit",value:i,allowed:l},{key:"offset",value:c,allowed:p}];for(const e of y)if(void 0!==e.value){if(!e.allowed&&h)throw new T(e.key[0].toUpperCase()+e.key.slice(1)+" is not allowed for this query");e.allowed&&(d=d[e.key](e.value))}return d.execute()}}},e.repository=(r,n)=>(o,c)=>c?t.inject(r[s.ModelKeys.ANCHOR]||r)(o,c):(i.metadata(I.key(a.DBKeys.REPOSITORY),o.name)(r),n=n||Reflect.getMetadata(_.key(e.PersistenceKeys.ADAPTER),o),I.register(r[s.ModelKeys.ANCHOR]||r,o,n),t.injectable(r[s.ModelKeys.ANCHOR]||r,{callback:e=>(Object.defineProperty(e,a.DBKeys.CLASS,{enumerable:!1,configurable:!1,writable:!1,value:r}),e)})(o)),e.repositoryFromTypeMetadata=ee,e.sequenceNameForModel=b,e.table=t=>r=>{const a=_.key(e.PersistenceKeys.TABLE);return s.Decoration.for(a).define({decorator:i.metadata,args:[a,t||r.name.toLowerCase()]}).apply()(r)},e.unique=()=>{const t=I.key(e.PersistenceKeys.UNIQUE);return s.Decoration.for(t).define(a.onCreateUpdate(re),s.propMetadata(t,{})).apply()},e.uniqueOnCreateUpdate=re,e.updatedAt=ne,e.updatedBy=()=>{const t=I.key(e.PersistenceKeys.UPDATED_BY);return s.Decoration.for(t).define(a.onCreateUpdate(ae),s.propMetadata(t,{})).apply()},e.uses=N},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/injectable-decorators"),require("tslib"),require("@decaf-ts/db-decorators"),require("@decaf-ts/decorator-validation"),require("@decaf-ts/logging"),require("@decaf-ts/decoration"),require("@decaf-ts/reflection")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/injectable-decorators","tslib","@decaf-ts/db-decorators","@decaf-ts/decorator-validation","@decaf-ts/logging","@decaf-ts/decoration","@decaf-ts/reflection"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).core={},e.decafTsInjectableDecorators,e.tslib,e.decafTsDbDecorators,e.decafTsDecoratorValidation,e.decafTsLogging,e.decafTsDecoration,e.decafTsReflection);
|
|
2
2
|
//# sourceMappingURL=core.cjs.map
|
package/dist/core.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.cjs","sources":["../src/persistence/constants.ts","../src/repository/constants.ts","../src/utils/decorators.ts","../src/utils/errors.ts","../src/persistence/ObserverHandler.ts","../src/persistence/errors.ts","../src/persistence/Dispatch.ts","../src/persistence/decorators.ts","../src/persistence/Sequence.ts","../src/identity/utils.ts","../src/persistence/Adapter.ts","../src/query/constants.ts","../src/query/errors.ts","../src/query/Condition.ts","../src/repository/Repository.ts","../src/repository/utils.ts","../src/repository/injectables.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/types.ts","../src/query/Statement.ts","../src/query/utils.ts","../src/query/MethodQueryBuilder.ts","../src/index.ts","../src/query/Paginator.ts","../src/query/decorators.ts","../src/repository/decorators.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["PersistenceKeys","OrderDirection","Cascade","final","target","propertyKey","descriptor","Error","configurable","exports","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","UnsupportedError","Dispatch","LoggedClass","initialize","adapter","verbose","OperationKeys","CREATE","UPDATE","DELETE","BulkCrudOperationKeys","CREATE_ALL","UPDATE_ALL","DELETE_ALL","method","alias","Object","getOwnPropertyDescriptor","proto","prototype","getPrototypeOf","writable","Proxy","apply","async","thisArg","argArray","tableName","ids","bulkToSingle","then","debug","catch","close","Adapter","models","undefined","uses","flavour","original","metadata","key","ADAPTER","Sequence","logger","Logging","for","options","pk","model","sequenceNameForModel","parseValue","type","value","parseInt","BigInt","getTableName","obj","Model","get","Reflect","getOwnMetadata","TABLE","ModelKeys","MODEL","getColumnName","attribute","getMetadata","Repository","COLUMN","join","Decoration","setFlavourResolver","flavourOf","isModel","currentFlavour","DefaultFlavour","_cache","config","_config","_alias","repository","_baseRepository","shutdownProxies","k","proxies","shutdown","dispatch","Context","info","_currentFlavour","_baseDispatch","isReserved","attr","flags","operation","assign","DefaultRepositoryFlags","affectedTables","writeOperation","READ","timestamp","Date","ignoredValidationProperties","Metadata","validationExceptions","context","overrides","JSON","stringify","accumulate","prepare","split","modelToTransient","entries","reduce","accum","val","mappedProp","METADATA","silly","defineProperty","enumerable","record","transient","revert","clazz","ob","m","build","keys","createAll","all","create","readAll","read","updateAll","update","deleteAll","delete","observerHandler","current","setCurrent","Repo","cache","getRegistry","values","f","DBKeys","REPOSITORY","forModel","decoration","client","_client","getClient","hashObj","proxy","p","receiver","originalConf","set","__decorate","DefaultCascade","CASCADE","NONE","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","required","Rep","_adapter","_tableName","class","pkProps","register","wrapMethodWithContext","override","conf","createPrefix","contextArgs","_overrides","enforceDBDecorators","ON","ValidationError","c","createSuffix","prepared","records","r","createAllPrefix","opts","getSequenceOptions","range","generated","ignoredProps","errorMessages","readPrefix","readAllPrefix","updatePrefix","oldModel","merge","relations","setMetadata","u","updateAllPrefix","oldModels","deletePrefix","deleteAllPrefix","select","selector","Statement","from","query","orderBy","order","ASC","limit","skip","sort","where","offset","execute","prop","Array","isArray","repo","registryName","DefaultSeparator","removeMetadata","findPrimaryKey","ID","indexes","indexDecorators","Reflection","getAllPropertyDecorators","REFLECT","decs","v","startsWith","INDEX","dec","props","RELATIONS","column","generateInjectableNameForRepository","sf","INJECTABLE","InjectablesRegistry","InjectableRegistryImp","injectable","modelCtor","metaKey","resolvedFlavour","aliasToUse","Injectables","message","repoCtor","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","directions","compositions","define","decorator","d","DSC","propMetadata","uniqueOnCreateUpdate","ConflictError","createdByOnCreateUpdate","createdAt","updatedAt","noValidateOn","ops","currentMeta","newMeta","newApply","newMetadata","pkOnCreate","sequence","next","BaseModel","arg","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","setRegistry","VERSION","PACKAGE_NAME","registerLibrary","_currentPage","total","_totalPages","_recordCount","statement","_statement","size","page","previous","validatePage","Number","isInteger","columnName","CREATED_BY","onCreate","cascadeOptions","joinTableOpts","fk","MANY_TO_MANY","joinTable","list","String","MANY_TO_ONE","ONE_TO_MANY","onUpdate","onDelete","afterAny","pop","joinColumnOpts","ONE_TO_ONE","meta","groupsort","readonly","priority","stmt","allowLimit","allowOffset","allowOrderBy","throws","params","allowed","param","toUpperCase","inject","ANCHOR","callback","instance","CLASS","UNIQUE","onCreateUpdate","UPDATED_BY"],"mappings":"wDAOA,IAAYA,ECEAC,EAeAC,WChBIC,IACd,MAAO,CACLC,EACAC,EACAC,KAEA,IAAKA,EACH,MAAUC,MAAM,+CAIlB,OAHID,GAAYE,eACdF,EAAWE,cAAe,GAErBF,EAEX,CFyCCG,EAAAT,qBAAA,GAvDWA,EAAAA,EAAeA,kBAAfA,kBAuDX,CAAA,IArDC,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,cG7CI,MAAOU,UAA2BC,EAAAA,gBACtC,WAAAC,CAAYC,EAAqBC,EAAOJ,EAAmBI,KAAMC,EAAO,KACtEC,MAAMH,EAAKC,EAAMC,EAClB,EAkBG,MAAOE,UAAuBP,EAClC,WAAAE,CAAYC,EAAqBC,EAAOG,EAAeH,MACrDE,MAAMH,EAAKC,EAAM,IAClB,EAoBG,MAAOI,UAAwBC,EAAAA,cACnC,WAAAP,CAAYC,GACVG,MAAMH,EAAKK,EAAgBJ,KAAM,IAClC,QCzBUM,EAAb,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,EAAAA,cAAc,+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,EAAAA,cAAc,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,ECpIG,MAAOC,UAAyBjC,EAAAA,cACpC,WAAAP,CAAYC,GACVG,MAAMH,EAAKuC,EAAiBtC,KAAM,IACnC,ECUG,MAAOuC,UAAiBC,EAAAA,YAiB5B,WAAA1C,GACEI,OACD,CAsCS,gBAAMuC,GACd,IAAKlC,KAAKmC,QAOR,YAHAnC,KAAKe,IAAIqB,QACP,6DAIJ,MAAMD,EAAUnC,KAAKmC,QAEnB,CACEE,EAAAA,cAAcC,OACdD,EAAAA,cAAcE,OACdF,EAAAA,cAAcG,OACdC,EAAAA,sBAAsBC,WACtBD,EAAAA,sBAAsBE,WACtBF,EAAAA,sBAAsBG,YAExBlB,QAASmB,IACT,IAAKV,EAAQU,GACX,MAAM,IAAI/C,EAAAA,cACR,UAAU+C,kBAAuBV,EAAQW,8CAG7C,IAAI7D,EAAa8D,OAAOC,yBAAyBb,EAASU,GACtDI,EAAad,EACjB,MAAQlD,GAAcgE,IAAUF,OAAOG,WACrCD,EAAQF,OAAOI,eAAeF,GAC9BhE,EAAa8D,OAAOC,yBAAyBC,EAAOJ,GAGjD5D,GAAeA,EAAWmE,SAmB/BjB,EAAQU,GAAU,IAAIQ,MAAMlB,EAAQU,GAAS,CAC3CS,MAAOC,MAAOxE,EAAayE,EAASC,KAClC,MAAOC,EAAWC,GAAOF,EACnB9B,QAAe5C,EAAOuE,MAAME,EAASC,GAa3C,OAZAzD,KAAKc,gBAAgB4C,EAjBzB,CAAsBb,IACpB,OAAQA,GACN,KAAKJ,EAAqBA,sBAACC,WACzB,OAAOL,EAAAA,cAAcC,OACvB,KAAKG,EAAqBA,sBAACE,WACzB,OAAON,EAAAA,cAAcE,OACvB,KAAKE,EAAqBA,sBAACG,WACzB,OAAOP,EAAAA,cAAcG,OACvB,QACE,OAAOK,EAEZ,EAMmCe,CAAaf,GAASc,GACnDE,KAAK,KACJ7D,KAAKe,IAAIqB,QACP,kCAAkCS,SAAca,KAElD1D,KAAKe,IAAI+C,MAAM,QAAQH,KAExBI,MAAOzC,GACNtB,KAAKe,IAAIQ,MACP,2CAA2CsB,QAAaa,MAAcpC,MAGrEK,KAlCT3B,KAAKe,IAAIQ,MACP,yBAAyBsB,mCAqChC,CAOD,WAAMmB,GAEL,CAQD,OAAA5D,CAAQC,GACN,KAAMA,aAAoB4D,GACxB,MAAM,IAAIlC,EAAiB,6CAC7B/B,KAAKmC,QAAU9B,EACfL,KAAKkE,OAASD,EAAQC,OAAOlE,KAAKmC,QAAQW,OAC1C9C,KAAKkC,aAAa2B,KAAK,IACrB7D,KAAKe,IAAIqB,QACP,4BAA4BpC,KAAKmC,QAASW,iBAG/C,CAQD,SAAAnC,CAAUN,GACR,GAAIL,KAAKmC,UAAY9B,EACnB,MAAM,IAAI0B,EACR,+DAEJ/B,KAAKmC,aAAUgC,CAChB,CAUD,qBAAMrD,CACJE,EACAC,EACAC,GAEA,GAAKlB,KAAKmC,QAMV,UACQnC,KAAKmC,QAAQV,QAAQT,EAAOC,EAAOC,EAC1C,CAAC,MAAOI,GACP,MAAM,IAAIxB,EAAAA,cAAc,+BAA+BwB,EACxD,MATCtB,KAAKe,IAAIqB,QACP,kEAAkEpB,KAASC,IAShF,EC5NG,SAAUmD,EAAKC,GACnB,OAAqBC,GACZhB,QAAMiB,EAAAA,SAASN,EAAQO,IAAI7F,EAAAA,gBAAgB8F,SAAUJ,GAArDf,CACLgB,EAGN,CDyNIL,IAASA,EAAuB,cAAIjC,SEzLlB0C,EAYpB,OAAc3D,GAEZ,OADKf,KAAK2E,SAAQ3E,KAAK2E,OAASC,EAAAA,QAAQC,IAAI7E,OACrCA,KAAK2E,MACb,CAMD,WAAApF,CAAyCuF,GAAA9E,KAAO8E,QAAPA,CAA4B,CA+BrE,SAAOC,CAAoBC,GACzB,OAAOC,EAAqBD,EAAO,KACpC,CASD,iBAAOE,CACLC,EACAC,GAEA,OAAQD,GACN,IAAK,SACH,MAAwB,iBAAVC,EACVC,SAASD,GACQ,iBAAVA,EACLA,EACAE,OAAOF,GACf,IAAK,SACH,OAAOE,OAAOF,GAChB,UAAKjB,EACL,IAAK,SACH,OAAOiB,EACT,QACE,MAAM,IAAIrD,EACR,8BAA8BoD,iBAAoBnF,QAGzD,EC1HG,SAAUuF,EACdP,GAEA,MAAMQ,EACJR,aAAiBS,EAAAA,MAAQA,EAAKA,MAACC,IAAIV,EAAMzF,YAAYE,MAAQuF,EAE/D,IAAKQ,EAAK,MAAM,IAAI1F,EAAAA,cAAc,wBAAwBkF,GAO1D,OALiBW,QAAQC,eACvB3B,EAAQO,IAAI7F,EAAAA,gBAAgBkH,OAC5BL,EAAIM,EAAAA,UAAUC,QAAyCP,KAMrDR,aAAiBS,EAAAA,MACZT,EAAMzF,YAAYE,KAEpBuF,EAAMvF,KACf,CAEgB,SAAAuG,EACdhB,EACAiB,GAOA,OALiBN,QAAQO,YACvBC,aAAW3B,IAAI7F,EAAeA,gBAACyH,QAC/BpB,EACAiB,IAE2BA,CAC/B,UAYgBhB,EACdD,KACG7D,GAEH,MAAO,CAACoE,EAAaP,MAAW7D,GAAMkF,KAAK,IAC7C,CCvBAC,EAAAA,WAAWC,mBAAoBf,IAC7B,IACE,OACEvB,EAAQuC,UAAUf,QAAMgB,QAAQjB,GAAOA,EAAIjG,YAAeiG,IAC1DvB,EAAQyC,gBACRC,gBAGH,CAAC,MAAOrF,GAER,CACD,IACE,OAAO2C,EAAQyC,gBAAkBC,gBAElC,CAAC,MAAOrF,GACP,OAAOqF,gBACR,IA+FG,MAAgB1C,UAOZhC,EAAAA,mBASOjC,KAAM4G,OAAqD,CAAA,CAAG,CAkB7E,UAAIC,GACF,OAAO7G,KAAK8G,OACb,CAOD,SAAIhE,GACF,OAAO9C,KAAK+G,QAAU/G,KAAKqE,OAC5B,CAQD,UAAA2C,GASE,IAAK/C,EAAQgD,gBACX,MAAM,IAAInH,EAAaA,cACrB,kFAEJ,OAAOmE,EAAQgD,eAChB,CAGS,qBAAMC,CAAgBC,GAC9B,GAAKnH,KAAKoH,QAAV,CACA,GAAID,KAAOA,KAAKnH,KAAKoH,SACnB,MAAM,IAAItH,EAAAA,cAAc,sBAAsBqH,GAChD,GAAKA,EAWH,UACQnH,KAAKoH,QAAQD,GAAGE,kBACfrH,KAAKoH,QAAQD,EACrB,CAAC,MAAO7F,GACPtB,KAAKe,IAAIQ,MAAM,sCAAsC4F,MAAM7F,IAC5D,MAfD,IAAK,MAAMkD,KAAOxE,KAAKoH,QAAS,CAC9B,UACQpH,KAAKoH,QAAQ5C,GAAK6C,UACzB,CAAC,MAAO/F,GACPtB,KAAKe,IAAIQ,MAAM,sCAAsCiD,MAAQlD,KAC7D,QACD,QACMtB,KAAKoH,QAAQ5C,EACrB,CAZuB,CAqB3B,CAQD,cAAM6C,SACErH,KAAKkH,kBACPlH,KAAKsH,gBAAgBtH,KAAKsH,SAAStD,OACxC,CAMD,WAAAzE,CACmBuH,EACRzC,EACQ0C,GAGjB,GADApH,QAJiBK,KAAO8G,QAAPA,EACR9G,KAAOqE,QAAPA,EACQrE,KAAM+G,OAANA,EAgHT/G,KAAAuH,QAAUA,EAAc,QA7G5BvH,KAAK8C,SAASmB,EAAQ2C,OACxB,MAAM,IAAI9G,EAAaA,cACrB,GAAGE,KAAK8C,6BAA6B9C,KAAK+G,OAAS,IAAI/G,KAAKqE,YAAc,yBAE9EJ,EAAQ2C,OAAO5G,KAAK8C,OAAS9C,KAC7BA,KAAKe,IAAIyG,KACP,WAAWxH,KAAK8C,6BAA6B9C,KAAK+G,OAAS,IAAI/G,KAAKqE,YAAc,0BAE/EJ,EAAQwD,kBACXzH,KAAKe,IAAIqB,QAAQ,WAAWpC,KAAK8C,wCACjCmB,EAAQwD,gBAAkBzH,KAAK8C,MAElC,CAeS,QAAAd,GACR,OAAO,IAAIiC,EAAQyD,aACpB,CAOS,eAAA3H,GACR,OAAO,IAAIA,CACZ,CAQS,UAAA4H,CAAWC,GACnB,OAAQA,CACT,CAiBD,gBAAM1F,IAAcf,GAA8B,CAqBxC,WAAM0G,CACdC,EACA9C,EACA6C,KAEG1G,GAEH,OAAO4B,OAAOgF,OAAO,GAAIC,EAAAA,uBAAwBH,EAAO,CACtDI,eAAgB1C,EAAaP,GAC7BkD,eAAgBJ,IAAczF,EAAAA,cAAc8F,KAC5CC,UAAW,IAAIC,KACfP,UAAWA,EACXQ,4BAA6BC,EAAQA,SAACC,qBACpCxD,EACA8C,IAGL,CAoBK,aAAAW,CACJX,EAKAY,EACA1D,KACG7D,GAESnB,KAAKe,IAAI8D,IAAI7E,KAAKyI,SAC1B3E,MACF,4BAA4BgE,kBAA0B9C,EAAMvF,mCAAmCkJ,KAAKC,UAAUF,MAEhH,MAAMb,QAAc7H,KAAK6H,MAAMC,EAAW9C,EAAO0D,KAAcvH,GAC/D,OAAO,IAAInB,KAAKuH,SAAUsB,WAAWhB,EACtC,CAWD,OAAAiB,CACE9D,EACAD,GAMA,MAAMhE,EAAMf,KAAKe,IAAI8D,IAAI7E,KAAK8I,SACxBC,EAAQC,mBAAiBhE,GACzBrD,EAASoB,OAAOkG,QAAQF,EAAM/D,OAAOkE,OACzC,CAACC,GAA6B3E,EAAK4E,MACjC,QAAmB,IAARA,EAAqB,OAAOD,EACvC,MAAME,EAAarD,EAAchB,EAAOR,GACxC,GAAIxE,KAAK2H,WAAW0B,GAClB,MAAM,IAAIvJ,EAAaA,cAAC,iBAAiBuJ,iBAE3C,OADAF,EAAME,GAAcD,EACbD,GAET,CAAE,GAcJ,OAZKnE,EAAcrG,kBAAgB2K,YACjCvI,EAAIwI,MACF,0CAA2CvE,EAAcrG,EAAAA,gBAAgB2K,WAE3EvG,OAAOyG,eAAe7H,EAAQhD,EAAAA,gBAAgB2K,SAAU,CACtDG,YAAY,EACZrG,UAAU,EACVjE,cAAc,EACdiG,MAAQJ,EAAcrG,EAAeA,gBAAC2K,aAInC,CACLI,OAAQ/H,EACRT,GAAI8D,EAAMD,GACV4E,UAAWZ,EAAMY,UAEpB,CAcD,MAAAC,CACEpE,EACAqE,EACA9E,EACA7D,EACAyI,GAEA,MAAM5I,EAAMf,KAAKe,IAAI8D,IAAI7E,KAAK4J,QACxBE,EAA0B,CAAA,EAChCA,EAAG/E,GAAgB7D,EACnB,MAAM6I,EACa,iBAAVF,EAAqBpE,EAAAA,MAAMuE,MAAMF,EAAID,GAAS,IAAIA,EAAMC,GAEjE/I,EAAIwI,MAAM,oBAAoBQ,EAAExK,YAAYE,WAAWyB,KACvD,MAAMqD,EAAWiB,EAAI7G,EAAeA,gBAAC2K,UAC/B3H,EAASoB,OAAOkH,KAAKF,GAAGb,OAAO,CAACC,EAAU3E,KAC1CA,IAAQO,IACXoE,EAA8B3E,GAAOgB,EAAIQ,EAAcmD,EAAO3E,KADxC2E,GAGtBY,GA2BH,OAzBIJ,IACF5I,EAAIqB,QACF,mCAAmCW,OAAOkH,KAAKN,GAAWtD,KAAK,OAEjEtD,OAAOkG,QAAQU,GAAWjI,QAAQ,EAAE8C,EAAK4E,MACvC,GAAI5E,KAAO7C,EACT,MAAM,IAAI7B,EAAaA,cACrB,sBAAsB0E,6BAA+BuF,EAAExK,YAAYE,8BAEvEkC,EAAO6C,GAAkB4E,KAIzB7E,IACFxD,EAAIwI,MACF,iBAAiBvJ,KAAKqE,oCAAoC0F,EAAExK,YAAYE,WAAWyB,MAAOqD,KAE5FxB,OAAOyG,eAAe7H,EAAQhD,EAAAA,gBAAgB2K,SAAU,CACtDG,YAAY,EACZtK,cAAc,EACdiE,UAAU,EACVgC,MAAOb,KAIJ5C,CACR,CA2BD,eAAMuI,CACJxG,EACAxC,EACA8D,KACG7D,GAEH,GAAID,EAAGf,SAAW6E,EAAM7E,OACtB,MAAM,IAAIL,EAAAA,cAAc,4CAC1B,MAAMiB,EAAMf,KAAKe,IAAI8D,IAAI7E,KAAKkK,WAG9B,OAFAnJ,EAAIqB,QAAQ,YAAYlB,EAAGf,kBAAkBuD,WAC7C3C,EAAI+C,MAAM,QAAQ5C,GACXE,QAAQ+I,IACbjJ,EAAGX,IAAI,CAACqB,EAAG1B,IAAUF,KAAKoK,OAAO1G,EAAW9B,EAAGoD,EAAM9E,MAAWiB,IAEnE,CAwBD,aAAMkJ,CACJ3G,EACAxC,KACGC,GAEH,MAAMJ,EAAMf,KAAKe,IAAI8D,IAAI7E,KAAKqK,SAG9B,OAFAtJ,EAAIqB,QAAQ,WAAWlB,EAAGf,kBAAkBuD,WAC5C3C,EAAI+C,MAAM,QAAQ5C,GACXE,QAAQ+I,IAAIjJ,EAAGX,IAAKqB,GAAM5B,KAAKsK,KAAK5G,EAAW9B,KAAMT,IAC7D,CA2BD,eAAMoJ,CACJ7G,EACAxC,EACA8D,KACG7D,GAEH,GAAID,EAAGf,SAAW6E,EAAM7E,OACtB,MAAM,IAAIL,EAAAA,cAAc,4CAC1B,MAAMiB,EAAMf,KAAKe,IAAI8D,IAAI7E,KAAKuK,WAG9B,OAFAxJ,EAAIqB,QAAQ,YAAYlB,EAAGf,kBAAkBuD,WAC7C3C,EAAI+C,MAAM,QAAQ5C,GACXE,QAAQ+I,IACbjJ,EAAGX,IAAI,CAACqB,EAAG1B,IAAUF,KAAKwK,OAAO9G,EAAW9B,EAAGoD,EAAM9E,MAAWiB,IAEnE,CAwBD,eAAMsJ,CACJ/G,EACAxC,KACGC,GAEH,MAAMJ,EAAMf,KAAKe,IAAI8D,IAAI7E,KAAKkK,WAG9B,OAFAnJ,EAAIqB,QAAQ,YAAYlB,EAAGf,kBAAkBuD,WAC7C3C,EAAI+C,MAAM,QAAQ5C,GACXE,QAAQ+I,IAAIjJ,EAAGX,IAAKqB,GAAM5B,KAAK0K,OAAOhH,EAAW9B,KAAMT,IAC/D,CAsBD,OAAAf,CAAQC,EAAoBC,GACrBN,KAAK2K,iBACR5H,OAAOyG,eAAexJ,KAAM,kBAAmB,CAC7CoF,MAAOpF,KAAKD,kBACZqD,UAAU,IAEdpD,KAAK2K,gBAAiBvK,QAAQC,EAAUC,GACxCN,KAAKe,IACF8D,IAAI7E,KAAKI,SACTgC,QAAQ,4BAA4B/B,EAASmB,YAC3CxB,KAAKsH,WACRtH,KAAKe,IAAI8D,IAAI7E,KAAKI,SAASoH,KAAK,yBAAyBxH,KAAK8C,OAC9D9C,KAAKsH,SAAWtH,KAAKgC,WACrBhC,KAAKsH,SAASlH,QAAQJ,MAEzB,CASD,SAAAW,CAAUN,GACR,IAAKL,KAAK2K,gBACR,MAAM,IAAI7K,EAAAA,cACR,sEAEJE,KAAK2K,gBAAgBhK,UAAUN,GAC/BL,KAAKe,IACF8D,IAAI7E,KAAKW,WACTyB,QAAQ,YAAY/B,EAASmB,qBACjC,CAYD,qBAAMV,CACJE,EACAC,EACAC,KACGC,GAEH,IAAKnB,KAAK2K,gBACR,MAAM,IAAI7K,EAAAA,cACR,sEAEQE,KAAKe,IAAI8D,IAAI7E,KAAKc,iBAC1BsB,QACF,YAAYpC,KAAK2K,gBAAgBzK,iCAAiCF,KAAK8C,eAEnE9C,KAAK2K,gBAAgB7J,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,KAAKqE,QAAR,sBACR,CASD,gBAAOmC,CAA2BxB,GAChC,OACEW,QAAQO,YAAYlG,KAAKwE,IAAI7F,kBAAgB8F,SAAUO,IACvDhF,KAAK4K,SAASvG,OAEjB,CAED,yBAAWqC,GACT,IAAKzC,EAAQwD,gBACX,MAAM,IAAI3H,EAAaA,cACrB,8DAEJ,OAAOmE,EAAQwD,eAChB,CAOD,kBAAWmD,GACT,OAAO3G,EAAQyB,IAAI1F,KAAK0G,eACzB,CAaD,UAAOhB,CAMLrB,GACA,IAAKA,EAAS,OAAOJ,EAAQyB,IAAI1F,KAAKyH,iBACtC,GAAIpD,KAAWrE,KAAK4G,OAAQ,OAAO5G,KAAK4G,OAAOvC,GAC/C,MAAM,IAAIvE,EAAaA,cAAC,+BAA+BuE,KACxD,CAQD,iBAAOwG,CAAWxG,GAChBrE,KAAKyH,gBAAkBpD,CACxB,CAQD,UAAOG,CAAIA,GACT,OAAOsG,EAAI3E,WAAC3B,IAAIA,EACjB,CASD,aAAON,CAAwBG,GAC7B,IACE,MACM0G,EADYtF,QAAcuF,cAG9BD,MAwBF,OAvB+ChI,OAAOkI,OAAOF,GAC1DxK,IAAKwJ,IACJ,IAAImB,EAAIvF,QAAQO,YACdjC,EAAQO,IAAI7F,kBAAgB8F,SAC5BsF,GAEF,GAAImB,GAAKA,IAAM7G,EAAS,OAAO0F,EAC/B,IAAKmB,EAAG,CAKN,IAJavF,QAAQO,YACnB4E,EAAI3E,WAAC3B,IAAI2G,SAAOC,YAChBrB,GAES,OACX,MAAM/C,EAAchH,KAAKiH,gBAAwBoE,SAAStB,GAM1D,OAJAmB,EAAIvF,QAAQO,YACVjC,EAAQO,IAAI7F,kBAAgB8F,SAC5BuC,GAEKkE,CACR,IAEF5K,OAAQyJ,KAAQA,EAEpB,CAAC,MAAOzI,GACP,MAAM,IAAIxB,EAAAA,cAAcwB,EACzB,CACF,CAED,iBAAOgK,GAAqB,CAiB5B,UACIC,GAIF,OAHKvL,KAAKwL,UACRxL,KAAKwL,QAAUxL,KAAKyL,aAEfzL,KAAKwL,OACb,CAGD,IAAI3E,KAA0B1F,GACvBnB,KAAKoH,UAASpH,KAAKoH,QAAU,IAClC,MAAM5C,EAAM,GAAGxE,KAAK8C,WAAW4I,EAAOA,QAAC7E,KACvC,GAAIrC,KAAOxE,KAAKoH,QAAS,OAAOpH,KAAKoH,QAAQ5C,GAE7C,IAAI+G,EACJ,MAAMI,EAAQ,IAAItI,MAAMrD,KAAM,CAC5B0F,IAAK,CAAC3G,EAAqB6M,EAAoBC,KAC7C,GAAU,YAAND,EAAiB,CACnB,MAAME,EAAqBnG,QAAQD,IAAI3G,EAAQ6M,EAAGC,GAClD,OAAO9I,OAAOgF,OAAO,CAAE,EAAE+D,EAAcjF,EACxC,CACD,MAAU,YAAN+E,EACKL,EAEF5F,QAAQD,IAAI3G,EAAQ6M,EAAGC,IAEhCE,IAAK,CAAChN,EAAa6M,EAAoBxG,EAAYyG,IACvC,YAAND,GACFL,EAASnG,GACF,GAEFO,QAAQoG,IAAIhN,EAAQ6M,EAAGxG,EAAOyG,KAIzC,OADA7L,KAAKoH,QAAQ5C,GAAOmH,EACbA,CACR,EAxtBeK,EAAAA,WAAA,CADflN,+HAuBAmF,EAAAf,UAAA,kBAAA,MAkJK8I,EAAAA,WAAA,CADLlN,oJAiBAmF,EAAAf,UAAA,UAAA,MAwRD8I,EAAAA,WAAA,CADClN,uIAgBAmF,EAAAf,UAAA,UAAA,MASD8I,EAAAA,WAAA,CADClN,8HAUAmF,EAAAf,UAAA,YAAA,MAmMD8I,EAAAA,WAAA,CAAClN,6EAMAmF,EAAAf,UAAA,SAAA,MTx4BF9D,EAAAR,oBAAA,GANWA,EAAAA,mBAAAA,EAAAA,eAMX,CAAA,IAJC,IAAA,MAGAA,EAAA,IAAA,OAeDQ,EAAAP,aAAA,GALWA,EAAAA,YAAAA,EAAAA,QAKX,CAAA,IAHC,QAAA,UAEAA,EAAA,KAAA,OAWW,MAAAoN,EAAkC,CAC7CzB,OAAQ3L,EAAOA,QAACqN,QAChBxB,OAAQ7L,EAAOA,QAACsN,MUlClB,IAAYC,EA8BAC,EATXjN,EAAAgN,cAAA,GArBWA,EAAAA,aAAAA,EAAAA,SAqBX,CAAA,IAnBC,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,SAeDhN,EAAAiN,mBAAA,GALWA,EAAAA,EAAaA,gBAAbA,gBAKX,CAAA,IAHC,IAAA,MAEAA,EAAA,GAAA,KChCI,MAAOC,UAAmBxM,EAAAA,cAC9B,WAAAP,CAAYC,GACVG,MAAMH,EAAK8M,EAAW7M,KAAM,IAC7B,EAUG,MAAO8M,UAAoBzM,EAAAA,cAC/B,WAAAP,CAAYC,GACVG,MAAMH,EAAK+M,EAAY9M,KAAM,IAC9B,ECkBG,MAAO+M,UAAwC/G,EAAAA,MAQnD,WAAAlG,CACEkN,EACAC,EACAC,GAEAhN,QAXQK,KAAKyM,WAA2BtI,EAEhCnE,KAAQ0M,cAA8BvI,EAEtCnE,KAAU2M,gBAASxI,EAQ3BnE,KAAKyM,MAAQA,EACbzM,KAAK0M,SAAWA,EAChB1M,KAAK2M,WAAaA,CACnB,CAQD,GAAAC,CAAIC,GACF,OAAOL,EAAUI,IAAI5M,KAAM6M,EAC5B,CAQD,EAAAC,CAAGD,GACD,OAAOL,EAAUM,GAAG9M,KAAM6M,EAC3B,CAQD,GAAAE,CAAI3D,GACF,OAAO,IAAIoD,EAAUxM,KAAMoM,EAAQA,SAACY,IAAK5D,EAC1C,CAQQ,SAAA6D,IACJC,GAEH,MAAMC,EAAiB,KACrB,MAAMC,EAAmB,oBAAoBpN,KAAK0M,YAElD,GAA0B,iBAAf1M,KAAKyM,MAAoB,CAClC,GAAIzM,KAAK2M,sBAAsBH,EAC7B,MAAO,CACLG,WAAY,CACVE,UACE,0DAGR,IAAoE,IAAhE9J,OAAOkI,OAAOmB,YAAU3L,QAAQT,KAAK0M,UACvC,MAAO,CACLA,SAAU,CACRG,UAAWO,GAGlB,CAED,GAAIpN,KAAKyM,iBAAiBD,EAAW,CACnC,KACIxM,KAAK2M,sBAAsBH,IAC7BxM,KAAK0M,WAAaN,EAAAA,SAASY,IAE3B,MAAO,CACLL,WAAY,CACVE,UAAWO,IAGjB,IAGS,IAFPrK,OAAOkI,OAAOoB,iBAAe5L,QAC3BT,KAAK0M,WAEP1M,KAAK0M,WAAaN,EAAAA,SAASY,IAE3B,MAAO,CACLN,SAAU,CACRG,UAAWO,GAGlB,GAGGC,EAAS1N,MAAMsN,aAAaC,GAClC,OAAKlN,KAAKsN,UAMH,gBACkBlM,QAAQmM,QAC7BF,IAEiBF,IAJd,GAJFE,GACAF,GASN,CAUD,UAAOP,CACLY,EACAC,GAEA,OAAOjB,EAAUkB,MAAMF,EAAYnB,EAAAA,cAAcsB,IAAKF,EACvD,CAUD,SAAOX,CACLU,EACAC,GAEA,OAAOjB,EAAUkB,MAAMF,EAAYnB,EAAAA,cAAcuB,GAAIH,EACtD,CAWO,YAAOC,CACbF,EACAd,EACAe,GAEA,OAAO,IAAIjB,EAAUgB,EAAYd,EAAUe,EAC5C,CASD,gBAAOxH,CAA2B2B,GAChC,OAAO,IAAI4E,EAAUqB,SAAa5H,UAAU2B,EAC7C,CASD,WAAOA,CAAsBA,GAC3B,OAAO5H,KAAKiG,UAAU2B,EACvB,QASc5H,KAAO6N,QAAG,MAAA,WAAAtO,GAGvBS,KAAKyM,WAA4BtI,EACjCnE,KAAQ0M,cAA8BvI,EACtCnE,KAAU2M,gBAASxI,CAqIpB,CA7HC,SAAA8B,CAAU2B,GAER,OADA5H,KAAKyM,MAAQ7E,EACN5H,IACR,CAQD,IAAA4H,CAAKA,GACH,OAAO5H,KAAKiG,UAAU2B,EACvB,CAQD,EAAAkG,CAAG1E,GACD,OAAOpJ,KAAK+N,MAAM3B,EAAQA,SAAC4B,MAAO5E,EACnC,CAQD,GAAA6E,CAAI7E,GACF,OAAOpJ,KAAK+N,MAAM3B,EAAQA,SAAC8B,UAAW9E,EACvC,CAQD,EAAA+E,CAAG/E,GACD,OAAOpJ,KAAK+N,MAAM3B,EAAQA,SAACgC,OAAQhF,EACpC,CAQD,EAAAiF,CAAGjF,GACD,OAAOpJ,KAAK+N,MAAM3B,EAAQA,SAACkC,QAASlF,EACrC,CAQD,GAAAmF,CAAInF,GACF,OAAOpJ,KAAK+N,MAAM3B,EAAQA,SAACoC,UAAWpF,EACvC,CAQD,GAAAqF,CAAIrF,GACF,OAAOpJ,KAAK+N,MAAM3B,EAAQA,SAACsC,WAAYtF,EACxC,CAQD,GAAGuF,GACD,OAAO3O,KAAK+N,MAAM3B,EAAQA,SAACwC,GAAID,EAChC,CAQD,MAAAE,CAAOzF,GACL,OAAOpJ,KAAK+N,MAAM3B,WAAS0C,OAAYC,OAAO3F,GAAK4F,OACpD,CASO,KAAAjB,CAAMkB,EAAc7F,GAG1B,OAFApJ,KAAK0M,SAAWuC,EAChBjP,KAAK2M,WAAavD,EACXpJ,KAAKgK,OACb,CAQO,KAAAA,GACN,IACE,OAAO,IAAIwC,EACTxM,KAAKyM,MACLzM,KAAK0M,SACL1M,KAAK2M,WAER,CAAC,MAAOrL,GACP,MAAM,IAAIgL,EAAWhL,EACtB,CACF,EACD,CAQF,cAAO4N,GACL,OAAO,IAAI1C,EAAUqB,OACtB,EAlVS7B,EAAAA,WAAA,CADTmD,iDACmD3C,EAAAtJ,UAAA,aAAA,GAE1C8I,EAAAA,WAAA,CADTmD,iDACyD3C,EAAAtJ,UAAA,gBAAA,GAEhD8I,EAAAA,WAAA,CADTmD,iDACsC3C,EAAAtJ,UAAA,kBAAA,GC+DnC,MAAOiD,UAOHiJ,EAAAA,kBAGOpP,KAAM4G,OAGjB,CAAA,CAAG,CAiBP,OAAI7F,GAKF,OAJKf,KAAK2E,SACR3E,KAAK2E,OACH3E,KAAKmC,QAA0C,IAC/C0C,IAAI7E,KAAKwB,aACNxB,KAAK2E,MACb,CASD,WAAcxC,GACZ,IAAKnC,KAAKqP,SACR,MAAM,IAAIvP,EAAaA,cACrB,wGAEJ,OAAOE,KAAKqP,QACb,CAOD,aAAc3L,GAEZ,OADK1D,KAAKsP,aAAYtP,KAAKsP,WAAanJ,EAAWnF,MAAMhB,KAAKuP,QACvDvP,KAAKsP,UACb,CAOD,WAAuBE,GACrB,OAAO7P,MAAM6P,OACd,CAGD,WAAAjQ,CAAY4C,EAAa0H,KAA2B1I,GAGlD,GAFAxB,MAAMkK,GA3DE7J,KAASC,UAAe,GA4D5BkC,IAASnC,KAAKqP,SAAWlN,GACzB0H,IACF1D,EAAWsJ,SAAS5F,EAAO7J,KAAMA,KAAKmC,QAAQW,OAC1CX,GAAS,CACX,MAAMkC,EAAUsB,QAAQO,YACtBjC,EAAQO,IAAI7F,kBAAgB8F,SAC5BoF,GAEF,GAAIxF,GAAWA,IAAYlC,EAAQkC,QACjC,MAAM,IAAIvE,EAAAA,cAAc,yBAC1BsE,EAAKjC,EAAQkC,QAAbD,CAAsByF,EACvB,CAEH,CAAC7J,KAAKkK,UAAWlK,KAAKqK,QAASrK,KAAKuK,UAAWvK,KAAKyK,WAAW/I,QAC5DqI,IACC,MAAMtK,EAAOsK,EAAEtK,KACfiQ,EAAAA,sBACE1P,KACCA,KAAaP,EAAO,UACrBsK,EACC/J,KAAaP,EAAO,YAI5B,CAQD,QAAAkQ,CAAS9H,GAIP,OAHA7H,KAAKe,IACF8D,IAAI7E,KAAK2P,UACT7L,MAAM,oCAAoC6E,KAAKC,UAAUf,IACrD,IAAIxE,MAAMrD,KAAM,CACrB0F,IAAK,CAAC3G,EAAqB6M,EAAoBC,KAC7C,MAAMlK,EAASgE,QAAQD,IAAI3G,EAAQ6M,EAAGC,GACtC,MAAU,eAAND,EAA2BjK,EACxBoB,OAAOgF,OAAO,CAAE,EAAEpG,EAAQkG,KAGtC,CAeD,IACE+H,KACGzO,GAEH,OAAO,IAAIkC,MAAMrD,KAAM,CACrB0F,IAAK,CAAC3G,EAAa6M,EAAoBC,IAC3B,YAAND,EACK5L,KAAKmC,QAAQ0C,IAAI+K,KAASzO,GAE5BwE,QAAQD,IAAI3G,EAAQ6M,EAAGC,IAGnC,CAOS,eAAA9L,GACR,OAAO,IAAIA,CACZ,CAWkB,kBAAM8P,CACvB7K,KACG7D,GAEH,MAAM2O,QAAoBvI,EAAOA,QAACpG,KAChCkB,EAAaA,cAACC,OACdtC,KAAKuP,MACLpO,EACAnB,KAAKmC,QACLnC,KAAK+P,YAAc,CAAE,GAEvB/K,EAAQ,IAAIhF,KAAKuP,MAAMvK,SACjBgL,EAAmBA,oBACvBhQ,KACA8P,EAAYrH,QACZzD,EACA3C,EAAAA,cAAcC,OACdD,gBAAc4N,IAGhB,MAAM5C,QAAejM,QAAQmM,QAC3BvI,EAAMiI,aACA6C,EAAYrH,QAAQ/C,IAAI,gCAAkC,KAGlE,GAAI2H,EAAQ,MAAM,IAAI6C,EAAeA,gBAAC7C,EAAO7L,YAE7C,MAAO,CAACwD,KAAU8K,EAAY3O,KAC/B,CASD,YAAMiJ,CAAOpF,KAAa7D,GAExB,IAEIgP,GAFAzG,OAAEA,EAAMxI,GAAEA,EAAEyI,UAAEA,GAAc3J,KAAKmC,QAAQ2G,QAAQ9D,EAAOhF,KAAK+E,IAIjE,OAHA2E,QAAe1J,KAAKmC,QAAQiI,OAAOpK,KAAK0D,UAAWxC,EAAIwI,KAAWvI,GAE9DA,EAAKhB,SAAQgQ,EAAIhP,EAAKA,EAAKhB,OAAS,IACjCH,KAAKmC,QAAQyH,OAClBF,EACA1J,KAAKuP,MACLvP,KAAK+E,GACL7D,EACAiP,GAAKA,EAAEzK,IAAI,wBAA0BiE,OAAYxF,EAEpD,CASQ,kBAAMiM,CAAapL,EAAUyD,GACpC,OAAO9I,MAAMyQ,aAAapL,EAAOyD,EAClC,CASQ,eAAMyB,CAAUhG,KAAgB/C,GACvC,IAAK+C,EAAO/D,OAAQ,OAAO+D,EAC3B,MAAMmM,EAAWnM,EAAO3D,IAAKwJ,GAAM/J,KAAKmC,QAAQ2G,QAAQiB,EAAG/J,KAAK+E,KAC1DpB,EAAM0M,EAAS9P,IAAKqL,GAAMA,EAAE1K,IAClC,IAAIoP,EAAUD,EAAS9P,IAAKqL,GAAMA,EAAElC,QAOpC,OANA4G,QAAgBtQ,KAAKmC,QAAQ+H,UAC3BlK,KAAK0D,UACLC,EACA2M,KACGnP,GAEEmP,EAAQ/P,IAAI,CAACgQ,EAAG3O,IACrB5B,KAAKmC,QAAQyH,OAAO2G,EAAGvQ,KAAKuP,MAAOvP,KAAK+E,GAAIpB,EAAI/B,IAEnD,CAUkB,qBAAM4O,CAAgBtM,KAAgB/C,GACvD,MAAM2O,QAAoBvI,EAAOA,QAACpG,KAChCkB,EAAaA,cAACC,OACdtC,KAAKuP,MACLpO,EACAnB,KAAKmC,QACLnC,KAAK+P,YAAc,CAAE,GAEvB,IAAK7L,EAAO/D,OAAQ,MAAO,CAAC+D,KAAW4L,EAAY3O,MACnD,MAAMsP,EAAOtK,EAAWuK,mBAAmBxM,EAAO,IAClD,IAAIP,EAAgD,GAChD8M,EAAKtL,MACFsL,EAAKhR,OAAMgR,EAAKhR,KAAOiF,EAASK,GAAGb,EAAO,KAC/CP,cAAmB3D,KAAKmC,QAAQuC,SAAS+L,IAAOE,MAAMzM,EAAO/D,SAE7DwD,EAAMO,EAAO3D,IAAI,CAACwJ,EAAGnI,KACnB,QAA0B,IAAfmI,EAAE/J,KAAK+E,IAChB,MAAM,IAAIjF,EAAAA,cACR,oDAAoD8B,GAExD,OAAOmI,EAAE/J,KAAK+E,MAIlBb,QAAe9C,QAAQ+I,IACrBjG,EAAO3D,IAAIgD,MAAOwG,EAAGnI,KACnBmI,EAAI,IAAI/J,KAAKuP,MAAMxF,GACf0G,EAAKtL,OACP4E,EAAE/J,KAAK+E,IACS,WAAd0L,EAAKtL,MAEDsL,EAAKG,UADLjN,EAAI/B,GAGF,GAAGmI,EAAE/J,KAAK+E,WAIdiL,EAAmBA,oBACvBhQ,KACA8P,EAAYrH,QACZsB,EACA1H,EAAAA,cAAcC,OACdD,gBAAc4N,IAETlG,KAIX,MAAM8G,EACJf,EAAYrH,QAAQ/C,IAAI,gCAAkC,GAMtDoL,SAJe1P,QAAQ+I,IAC3BjG,EAAO3D,IAAKwJ,GAAM3I,QAAQmM,QAAQxD,EAAEkD,aAAa4D,OAGtB3H,OAAO,CAACC,EAA2B7H,EAAGM,KAC7DN,IACF6H,EACmB,iBAAVA,EACHA,EAAQ,QAAQvH,MAAMN,EAAEE,aACxB,MAAMI,MAAMN,EAAEE,cACf2H,QACNhF,GAEH,GAAI2M,EAAe,MAAM,IAAIZ,EAAAA,gBAAgBY,GAC7C,MAAO,CAAC5M,KAAW4L,EAAY3O,KAChC,CASkB,gBAAM4P,CAAWvM,KAAgBrD,GAClD,MAAM2O,QAAoBvI,EAAOA,QAACpG,KAChCkB,EAAaA,cAAC8F,KACdnI,KAAKuP,MACLpO,EACAnB,KAAKmC,QACLnC,KAAK+P,YAAc,CAAE,GAEjB/K,EAAW,IAAIhF,KAAKuP,MAS1B,OARAvK,EAAMhF,KAAK+E,IAAMP,QACXwL,EAAmBA,oBACvBhQ,KACA8P,EAAYrH,QACZzD,EACA3C,EAAAA,cAAc8F,KACd9F,gBAAc4N,IAET,CAACzL,KAAQsL,EAAY3O,KAC7B,CASD,UAAMmJ,CAAKpJ,KAAiCC,GAC1C,MAAM4I,QAAU/J,KAAKmC,QAAQmI,KAAKtK,KAAK0D,UAAWxC,KAAOC,GACzD,OAAOnB,KAAKmC,QAAQyH,OAAUG,EAAG/J,KAAKuP,MAAOvP,KAAK+E,GAAI7D,EACvD,CASkB,mBAAM8P,CACvB/G,KACG9I,GAEH,MAAM2O,QAAoBvI,EAAOA,QAACpG,KAChCkB,EAAaA,cAAC8F,KACdnI,KAAKuP,MACLpO,EACAnB,KAAKmC,QACLnC,KAAK+P,YAAc,CAAE,GAevB,aAbM3O,QAAQ+I,IACZF,EAAK1J,IAAIgD,MAAO4D,IACd,MAAM4C,EAAI,IAAI/J,KAAKuP,MAEnB,OADAxF,EAAE/J,KAAK+E,IAAMoC,EACN6I,EAAmBA,oBACxBhQ,KACA8P,EAAYrH,QACZsB,EACA1H,EAAAA,cAAc8F,KACd9F,gBAAc4N,OAIb,CAAChG,KAAS6F,EAAY3O,KAC9B,CASQ,aAAMkJ,CACbJ,KACG9I,GAGH,aADsBnB,KAAKmC,QAAQkI,QAAQrK,KAAK0D,UAAWuG,KAAS9I,IACrDZ,IAAI,CAACgQ,EAAG3O,IACrB5B,KAAKmC,QAAQyH,OAAO2G,EAAGvQ,KAAKuP,MAAOvP,KAAK+E,GAAIkF,EAAKrI,IAEpD,CASD,YAAM4I,CAAOxF,KAAa7D,GAExB,IAAIuI,OAAEA,EAAMxI,GAAEA,EAAEyI,UAAEA,GAAc3J,KAAKmC,QAAQ2G,QAAQ9D,EAAOhF,KAAK+E,IAEjE,OADA2E,QAAe1J,KAAKmC,QAAQqI,OAAOxK,KAAK0D,UAAWxC,EAAIwI,KAAWvI,GAC3DnB,KAAKmC,QAAQyH,OAAUF,EAAQ1J,KAAKuP,MAAOvP,KAAK+E,GAAI7D,EAAIyI,EAChE,CAWkB,kBAAMsH,CACvBjM,KACG7D,GAEH,MAAM2O,QAAoBvI,EAAOA,QAACpG,KAChCkB,EAAaA,cAACE,OACdvC,KAAKuP,MACLpO,EACAnB,KAAKmC,QACLnC,KAAK+P,YAAc,CAAE,GAEjBhL,EAAKC,EAAMhF,KAAK+E,IACtB,IAAKA,EACH,MAAM,IAAIjF,EAAaA,cACrB,qDAAqDE,KAAK+E,IAE9D,MAAMmM,QAAiBlR,KAAKsK,KAAKvF,KAAO+K,EAAY3O,MACpD6D,EAAQhF,KAAKmR,MAAMD,EAAUlM,SACvBgL,sBACJhQ,KACA8P,EAAYrH,QACZzD,EACA3C,EAAaA,cAACE,OACdF,EAAAA,cAAc4N,GACdiB,GAGF,MAAM7D,QAAejM,QAAQmM,QAC3BvI,EAAMiI,UACJiE,KACG/K,EAAWiL,UAAUpR,KAAKuP,UACzBO,EAAYrH,QAAQ/C,IAAI,gCAAkC,KAGlE,GAAI2H,EAAQ,MAAM,IAAI6C,EAAeA,gBAAC7C,EAAO7L,YAK7C,OAJI2E,EAAWD,YAAYgL,KACpB/K,EAAWD,YAAYlB,IAC1BmB,EAAWkL,YAAYrM,EAAOmB,EAAWD,YAAYgL,KAElD,CAAClM,KAAU8K,EAAY3O,KAC/B,CASQ,eAAMoJ,CAAUrG,KAAgB/C,GACvC,MAAMmP,EAAUpM,EAAO3D,IAAKwJ,GAAM/J,KAAKmC,QAAQ2G,QAAQiB,EAAG/J,KAAK+E,KAO/D,aANsB/E,KAAKmC,QAAQoI,UACjCvK,KAAK0D,UACL4M,EAAQ/P,IAAKgQ,GAAMA,EAAErP,IACrBoP,EAAQ/P,IAAKgQ,GAAMA,EAAE7G,WAClBvI,IAEUZ,IAAI,CAAC+Q,EAAG1P,IACrB5B,KAAKmC,QAAQyH,OAAO0H,EAAGtR,KAAKuP,MAAOvP,KAAK+E,GAAIuL,EAAQ1O,GAAGV,IAE1D,CAWkB,qBAAMqQ,CACvBrN,KACG/C,GAEH,MAAM2O,QAAoBvI,EAAOA,QAACpG,KAChCkB,EAAaA,cAACE,OACdvC,KAAKuP,MACLpO,EACAnB,KAAKmC,QACLnC,KAAK+P,YAAc,CAAE,GAEjBpM,EAAMO,EAAO3D,IAAKwJ,IACtB,MAAM7I,EAAK6I,EAAE/J,KAAK+E,IAClB,IAAK7D,EAAI,MAAM,IAAIpB,EAAAA,cAAc,kCACjC,OAAOoB,IAEHsQ,QAAkBxR,KAAKqK,QAAQ1G,KAAQmM,EAAY3O,MACzD+C,EAASA,EAAO3D,IAAI,CAACwJ,EAAGnI,KACtBmI,EAAI/J,KAAKmR,MAAMK,EAAU5P,GAAImI,GACzB5D,EAAWD,YAAYsL,EAAU5P,MAC9BuE,EAAWD,YAAY6D,IAC1B5D,EAAWkL,YAAYtH,EAAG5D,EAAWD,YAAYsL,EAAU5P,MAExDmI,UAEH3I,QAAQ+I,IACZjG,EAAO3D,IAAI,CAACwJ,EAAGnI,IACboO,EAAmBA,oBACjBhQ,KACA8P,EAAYrH,QACZsB,EACA1H,gBAAcE,OACdF,EAAaA,cAAC4N,GACduB,EAAU5P,MAKhB,MAAMiP,EACJf,EAAYrH,QAAQ/C,IAAI,gCAAkC,GAQtDoL,SANe1P,QAAQ+I,IAC3BjG,EAAO3D,IAAI,CAACwJ,EAAGnI,IACbR,QAAQmM,QAAQxD,EAAEkD,UAAUuE,EAAU5P,GAAImI,KAAM8G,OAIvB3H,OAAO,CAACC,EAA2B7H,EAAGM,KAC7DN,IACF6H,EACmB,iBAAVA,EACHA,EAAQ,QAAQvH,MAAMN,EAAEE,aACxB,MAAMI,MAAMN,EAAEE,cACf2H,QACNhF,GAEH,GAAI2M,EAAe,MAAM,IAAIZ,EAAAA,gBAAgBY,GAQ7C,OANA5M,EAAOxC,QAAQ,CAACqI,EAAGnI,KACbuE,EAAWD,YAAYsL,EAAU5P,MAC9BuE,EAAWD,YAAY6D,IAC1B5D,EAAWkL,YAAYtH,EAAG5D,EAAWD,YAAYsL,EAAU5P,QAG1D,CAACsC,KAAW4L,EAAY3O,KAChC,CASkB,kBAAMsQ,CAAajN,KAAarD,GACjD,MAAM2O,QAAoBvI,EAAOA,QAACpG,KAChCkB,EAAaA,cAACG,OACdxC,KAAKuP,MACLpO,EACAnB,KAAKmC,QACLnC,KAAK+P,YAAc,CAAE,GAEjB/K,QAAchF,KAAKsK,KAAK9F,KAAQsL,EAAY3O,MAQlD,aAPM6O,EAAmBA,oBACvBhQ,KACA8P,EAAYrH,QACZzD,EACA3C,EAAAA,cAAcG,OACdH,gBAAc4N,IAET,CAACzL,KAAQsL,EAAY3O,KAC7B,CASD,YAAM,CAAOD,KAAiCC,GAC5C,MAAM4I,QAAU/J,KAAKmC,QAAQuI,OAAO1K,KAAK0D,UAAWxC,KAAOC,GAC3D,OAAOnB,KAAKmC,QAAQyH,OAAUG,EAAG/J,KAAKuP,MAAOvP,KAAK+E,GAAI7D,EACvD,CASkB,qBAAMwQ,CACvBzH,KACG9I,GAEH,MAAM2O,QAAoBvI,EAAOA,QAACpG,KAChCkB,EAAaA,cAACG,OACdxC,KAAKuP,MACLpO,EACAnB,KAAKmC,QACLnC,KAAK+P,YAAc,CAAE,GAEjB7L,QAAelE,KAAKqK,QAAQJ,KAAS6F,EAAY3O,MAYvD,aAXMC,QAAQ+I,IACZjG,EAAO3D,IAAIgD,MAAOwG,GACTiG,EAAmBA,oBACxBhQ,KACA8P,EAAYrH,QACZsB,EACA1H,EAAAA,cAAcG,OACdH,gBAAc4N,MAIb,CAAChG,KAAS6F,EAAY3O,KAC9B,CASQ,eAAMsJ,CACbR,KACG9I,GAGH,aADsBnB,KAAKmC,QAAQsI,UAAUzK,KAAK0D,UAAWuG,KAAS9I,IACvDZ,IAAI,CAACgQ,EAAG3O,IACrB5B,KAAKmC,QAAQyH,OAAO2G,EAAGvQ,KAAKuP,MAAOvP,KAAK+E,GAAIkF,EAAKrI,IAEpD,CA8BD,MAAA+P,CACEC,GAEA,OAAO5R,KAAKmC,QACT0P,YACAF,OAAOC,GACPE,KAAK9R,KAAKuP,MACd,CAYD,WAAMwC,CACJlF,EACAmF,EACAC,EAAwBrT,EAAAA,eAAesT,IACvCC,EACAC,GAEA,MAAMC,EAA2B,CAACL,EAASC,GACrCF,EAAQ/R,KAAK2R,SAASW,MAAMzF,GAAWmF,QAAQK,GAGrD,OAFIF,GAAOJ,EAAMI,MAAMA,GACnBC,GAAML,EAAMQ,OAAOH,GAChBL,EAAMS,SACd,CAED,IAAA5K,CAAK6K,GACH,OAAOjG,EAAU5E,KAAQ6K,EAC1B,CAWD,OAAArS,CAAQC,EAAoBC,GACrBN,KAAK2K,iBACR5H,OAAOyG,eAAexJ,KAAM,kBAAmB,CAC7CoF,MAAOpF,KAAKD,kBACZqD,UAAU,IAEd,MAAMrC,EAAMf,KAAKe,IAAI8D,IAAI7E,KAAKI,SACxBsD,EAAYyC,EAAWnF,MAAMhB,KAAKuP,OACxCvP,KAAKmC,QAAQ/B,QAAQJ,KAAOgB,GAAkB0C,IAAc1C,GAC5DD,EAAIqB,QACF,iBAAiBpC,KAAKmC,kCAAkCuB,KAE1D1D,KAAK2K,gBAAiBvK,QAAQC,EAAUC,GACxCS,EAAIqB,QAAQ,2BAA2B/B,EAASmB,WACjD,CAWD,SAAAb,CAAUN,GACR,IAAKL,KAAK2K,gBACR,MAAM,IAAI7K,EAAAA,cACR,sEAEJE,KAAK2K,gBAAgBhK,UAAUN,GAC/BL,KAAKe,IACF8D,IAAI7E,KAAKW,WACTyB,QAAQ,YAAY/B,EAASmB,sBAC3BxB,KAAK2K,gBAAgBzK,UACxBF,KAAKe,IAAIqB,QACP,oCAAoCpC,KAAKmC,0BAE3CnC,KAAKmC,QAAQxB,UAAUX,MACvBA,KAAKe,IAAIqB,QAAQ,+BAA+BpC,KAAKmC,QAAQkC,SAEhE,CAYD,qBAAMvD,CACJE,EACAC,EACAC,KACGC,GAEH,IAAKnB,KAAK2K,gBACR,MAAM,IAAI7K,EAAAA,cACR,sEAEJE,KAAKe,IACF8D,IAAI7E,KAAKc,iBACTsB,QACC,YAAYpC,KAAK2K,gBAAgBzK,yBAAyBF,cAExDA,KAAK2K,gBAAgB7J,gBACzBd,KAAKe,IACLC,EACAC,EACAyR,MAAMC,QAAQzR,GACVA,EAAGX,IAAKqB,GAAM8C,EAASQ,WAAWlF,KAAKwP,QAAQrK,KAAMvD,IACpD8C,EAASQ,WAAWlF,KAAKwP,QAAQrK,KAAMjE,MACzCC,EAEN,CAWD,aAAMM,CACJT,EACAC,EACAC,KACGC,GAEH,OAAOnB,KAAKc,gBAAgBE,EAAOC,EAAOC,KAAOC,EAClD,CAaD,eAAOkK,CACLrG,EACAlC,KACG3B,GAEH,IAAIyR,EAEJ,MAAM7L,EACJjE,GACA6C,QAAQO,YAAYjC,EAAQO,IAAI7F,EAAAA,gBAAgB8F,SAAUO,IAC1Df,EAAQyC,eACV,IACEkM,EAAO5S,KAAK0F,IAAIV,EAAO+B,EAExB,CAAC,MAAOzF,GACPsR,OAAOzO,CACR,CAED,GAAIyO,aAAgBzM,EAAY,OAAOyM,EAEvC,MAAMvO,EACJvB,GACA6C,QAAQO,YAAYjC,EAAQO,IAAI7F,EAAAA,gBAAgB8F,SAAUO,IACzD4N,GACCjN,QAAQO,YAAYjC,EAAQO,IAAI7F,EAAAA,gBAAgB8F,SAAUmO,IAC5D3O,EAAQyC,eACJvE,EAAmDkC,EACrDJ,EAAQyB,IAAIrB,QACZF,EAEJ,IAAKhC,EACH,MAAM,IAAIrC,EAAAA,cACR,mDAAmDuE,GAIvD,OADAuO,EAAOA,GAASzQ,EAAQ6E,aACjB,IAAI4L,EAAKzQ,EAAS6C,KAAU7D,EACpC,CAWO,UAAOuE,CACbV,EACAlC,GAEA,MAAMrD,EAAe0G,EAAWnF,MAAMgE,GACtC,IAAI6N,EAAuBpT,EAI3B,GAHIqD,IACF+P,EAAe,CAACpT,EAAMqD,GAAOuD,KAAKyM,EAAgBA,mBAEhDD,KAAgB7S,KAAK4G,OACvB,OAAO5G,KAAK4G,OAAOiM,GAGrB,GAAIpT,KAAQO,KAAK4G,OACf,OAAO5G,KAAK4G,OAAOnH,GACrB,MAAM,IAAIK,EAAAA,cACR,8CAA8CL,EAEjD,CAWD,eAAOgQ,CACLzK,EACA4N,EACA9P,GAEA,IAAIrD,EAAO0G,EAAWnF,MAAMgE,GAI5B,GAHIlC,IACFrD,EAAO,CAACA,EAAMqD,GAAOuD,KAAKyM,EAAgBA,mBAExCrT,KAAQO,KAAK4G,QACX5G,KAAK4G,OAAOnH,aAAiB0G,EAC/B,MAAM,IAAIrG,EAAAA,cAAiBL,EAAH,sCAE5BO,KAAK4G,OAAOnH,GAAQmT,CACrB,CASD,kBAAOvB,CAA6BrM,EAAUT,GAC5CxB,OAAOyG,eAAexE,EAAOrG,EAAAA,gBAAgB2K,SAAU,CACrDG,YAAY,EACZtK,cAAc,EACdiE,UAAU,EACVgC,MAAOb,GAEV,CASD,kBAAO2B,CAA6BlB,GAClC,MAAM/F,EAAa8D,OAAOC,yBACxBgC,EACArG,EAAAA,gBAAgB2K,UAElB,OAAOrK,EAAaA,EAAWmG,WAAQjB,CACxC,CAQD,qBAAO4O,CAAgC/N,GAClBjC,OAAOC,yBACxBgC,EACArG,EAAAA,gBAAgB2K,kBAEMtE,EAAcrG,kBAAgB2K,SACvD,CAUD,yBAAOoH,CAAoC1L,GACzC,MAAMD,EAAKiO,EAAAA,eAAehO,GAAO9D,GAC3BqD,EAAWoB,QAAQO,YACvBC,EAAW3B,IAAI2G,EAAMA,OAAC8H,IACtBjO,EACAD,GAEF,IAAKR,EACH,MAAM,IAAIzE,EAAAA,cACR,yEAEJ,OAAOyE,CACR,CASD,cAAO2O,CAAyBlO,GAC9B,MAAMmO,EAAkBC,EAAAA,WAAWC,yBACjCrO,aAAiBS,EAAAA,MAAQT,EAAQ,IAAIA,EACrCmG,EAAMA,OAACmI,SAET,OAAOvQ,OAAOkG,QAAQkK,GAAmB,IAAIjK,OAC3C,CAACC,GAAuDhC,EAAGiC,MACzD,MAAMmK,EAAOnK,EAAI9I,OAAQkT,GAAMA,EAAEhP,IAAIiP,WAAW9U,kBAAgB+U,QAChE,GAAIH,GAAQA,EAAKpT,OACf,IAAK,MAAMwT,KAAOJ,EAAM,CACtB,MAAM/O,IAAEA,EAAGoP,MAAEA,GAAUD,EACvBxK,EAAMhC,GAAKgC,EAAMhC,IAAM,CAAA,EACvBgC,EAAMhC,GAAG3C,GAAOoP,CACjB,CAEH,OAAOzK,GAET,CAAE,EAEL,CASD,gBAAOiI,CAA2BpM,GAChC,MAAMrD,EAAmB,GACzB,IAAIuB,EACF8B,aAAiBS,EAAKA,MAClB1C,OAAOI,eAAe6B,GACrBA,EAAc9B,UACrB,KAAoB,MAAbA,GAAmB,CACxB,MAAM0Q,EAAkB1Q,EAAUvE,EAAeA,gBAACkV,WAC9CD,GACFjS,EAAOjB,QAAQkT,GAEjB1Q,EAAYH,OAAOI,eAAeD,EACnC,CACD,OAAOvB,CACR,CASD,YAAOX,CAAuBgE,GAC5B,OAAOO,EAAaP,EACrB,CAUD,aAAO8O,CAAwB9O,EAAUiB,GACvC,OAAOD,EAAchB,EAAOiB,EAC7B,EChoCa,SAAA8N,EACd/O,EACAX,GAEA,IAAKA,EAAS,CACZ,MAAMG,EAAMP,EAAQO,IAAI7F,EAAeA,gBAAC8F,SAKxC,KAJAJ,EAAUsB,QAAQO,YAChB1B,EACAQ,aAAiBS,EAAAA,MAAQT,EAAMzF,YAAcyF,IAG7C,MAAM,IAAIlF,EAAaA,cACrB,0CAAyCkF,aAAiBS,EAAKA,MAAGT,EAAMzF,YAAYE,KAAOuF,EAAMvF,MAEtG,CACD,OAAOuU,EAAAA,GAAGrV,EAAAA,gBAAgBsV,WAAY5P,EAASkB,EAAaP,GAC9D,CD4xBEgH,EAAAA,WAAA,CADClN,uIAeAqH,EAAAjD,UAAA,UAAA,MAWD8I,EAAAA,WAAA,CADClN,8HAiBAqH,EAAAjD,UAAA,YAAA,MA8SCe,IAASA,EAAyB,gBAAIkC,GEzmCpC,MAAO+N,UAA4BC,EAAAA,sBAGvC,OAAcpT,GAEZ,OADKf,KAAK2E,SAAQ3E,KAAK2E,OAASC,EAAAA,QAAQC,IAAI7E,OACrCA,KAAK2E,MACb,CAED,WAAApF,GACEI,OACD,CAqCQ,GAAA+F,CACPjG,EACA4E,GAEA,MAAMtD,EAAMf,KAAKe,IAAI8D,IAAI7E,KAAK0F,KAE9B,IAAI0O,EACJ,IACEA,EAAazU,MAAM+F,IAAIjG,EACxB,CAAC,MAED,CAED,IAAK2U,EAAY,CACf,IAAIC,EAMJ,GALoB,mBAAT5U,EAAqB4U,EAAY5U,EACnB,iBAATA,GAAqC,iBAATA,IAC1C4U,EAAY5O,EAAAA,MAAMC,IAAIjG,EAAK+B,cAGxB6S,EAAW,OAGhB,MAAMC,EAAUrQ,EAAQO,IAAI7F,EAAeA,gBAAC8F,SACtC8P,EACJlQ,GACCsB,QAAQO,YAAYoO,EAASD,GAEhC,IAGE,IAAIG,EAAaD,EACjB,IACMA,GAAiBtQ,EAAQyB,IAAI6O,EAClC,CAAC,MACA,MAAM3J,EAAU3G,EAAQ2G,QACpBA,GAAWA,EAAQvG,UAAYkQ,IACjCC,EAAa5J,EAAQ9H,MACxB,CAMD,GAJAsR,EAAajO,EAAWkF,SACtBgJ,EACAG,GAEEJ,aAAsBjO,EAAY,OAAOiO,EAG7C,MAAMlJ,EACJqJ,GACC5O,QAAQO,YAAYoO,EAAUF,EAAmB7U,cAGjDoG,QAAQO,YAAYoO,EAASD,GAChCI,EAAWA,YAAChF,SACV2E,EACAL,EACEM,EACAnJ,GAGL,CAAC,MAAO5J,GACPP,EAAI+C,MACF,uFAAuFxC,GAAaoT,SAAW/L,KAAKC,UAAUtH,KAEhI,MAAMqT,EAAYxO,EAAwB,IAAEkO,EAAWE,GACvD,GAAwB,mBAAbI,EAAyB,CAClC,MAAMxS,EAAUoS,EACXtQ,EAAQyB,IAAI6O,GACZtQ,EAAQ2G,QACb,IAAKzI,EAAS,OAEd,OADiB,IAAIwS,EAASxS,EAASkS,EAExC,CACF,CACF,CAED,OAAOD,CACR,ECzLF7L,EAAAA,SAAiBC,sBAAuB,CAEvCxD,EACAiK,KAEA,MAAM2F,EACJrM,EAAAA,SAAS7C,IAAIV,EAAOrG,EAAAA,gBAAgBkW,aACtC,OAAKD,EAEE7R,OAAOkG,QAAQ2L,GACnBtU,OAAO,EAAC,CAAG8I,KAASA,EAAI0L,SAAS7F,IACjC1O,IAAI,EAAEiE,KAASA,GAJQ,EAK5B,GAAEuQ,KAAKxM,EAAAA,UCAD,MAAOyM,UAAsBlV,EAAAA,cACjC,WAAAP,CAAYC,GACVG,MAAMH,EAAKwV,EAAcvV,KAAM,IAChC,ECwCU,MAAAwV,EAAuC,CAClD9P,UAAMhB,EACNyM,WAAW,EACXsE,UAAW,EACXC,YAAa,EACbC,OAAO,GASIC,EAA0CJ,EAQ1CK,EAAmC,CAC9CnQ,KAAM,SACNyL,WAAW,EACXsE,UAAW,EACXC,YAAa,EACbC,OAAO,GASIG,EAAkCxS,OAAOgF,OACpD,CAAA,EACAuN,EACA,CACEnQ,KAAM,WCxCH5B,eAAeiS,EAIpBxQ,EACAyD,EACA3F,EACAkE,GAEA,IAAKA,EAAY,CACf,MAAMzH,EAAckG,EAAAA,MAAMC,IAAIV,EAAMzF,YAAYE,MAChD,IAAKF,EACH,MAAM,IAAIO,EAAaA,cAAC,wBAAwBkF,EAAMzF,YAAYE,MACpEuH,EAAab,EAAWkF,SACtB9L,EACAuD,EAEH,CACD,QAAoC,IAAzBkC,EAAMgC,EAAWjC,IAC1B,OAAOiC,EAAWoD,OAAOpF,EAAOyD,GAEhC,IACE,OAAOzB,EAAWwD,OAAOxF,EAAOyD,EACjC,CAAC,MAAOnH,GACP,KAAMA,aAAamU,iBAAgB,MAAMnU,EACzC,OAAO0F,EAAWoD,OAAOpF,EAAOyD,EACjC,CAEL,CAoDOlF,eAAemS,EAQpBjN,EACAkN,EACAnR,EACAQ,GAEA,MAAM4Q,EAAqB5Q,EAAMR,GACjC,IAAKoR,EAAe,OAEpB,GAA6B,iBAAlBA,EAA4B,CACrC,MAAMC,EAAYC,EAChB9Q,EACAR,EACAxE,KAAKmC,QAAQW,OAETwH,QAAauL,EAAUvL,KAAKsL,GAGlC,aAFMG,EAAsBtN,EAASzD,EAAOR,EAAKoR,EAAetL,QAC/DtF,EAAcR,GAAOoR,EAEvB,CAEDD,EAAKpG,MACmB,iBAAfoG,EAAKpG,MAAqBoG,EAAKpG,MAASoG,EAAKpG,QAAgB9P,KAEtE,MAAMF,EAAckG,EAAKA,MAACC,IAAIiQ,EAAKpG,OACnC,IAAKhQ,EACH,MAAM,IAAIO,EAAaA,cAAC,wBAAwB6V,EAAKpG,OACvD,MAAMqD,EAAkBzM,EAAWkF,SAAS9L,EAAaS,KAAKmC,QAAQW,OAChEkT,QAAgBpD,EAAKxI,OAAOwL,GAC5B7Q,EAAKiO,EAAAA,eAAegD,GAAS9U,SAC7B6U,EAAsBtN,EAASzD,EAAOR,EAAKwR,EAAQjR,GAAKiR,GAC7DhR,EAAcR,GAAOwR,EAAQjR,EAChC,CAiDOxB,eAAe0S,EAQpBxN,EACAkN,EACAnR,EACAQ,GAEA,MAAM4Q,EAAqB5Q,EAAMR,GACjC,IAAKoR,EAAe,OACpB,GAAID,EAAKO,QAAQ1L,SAAW3L,EAAOA,QAACqN,QAAS,OAE7C,GAA6B,iBAAlB0J,EAA4B,CACrC,MAAMC,EAAYC,EAChB9Q,EACAR,EACAxE,KAAKmC,QAAQW,OAETwH,QAAauL,EAAUvL,KAAKsL,GAGlC,aAFMG,EAAsBtN,EAASzD,EAAOR,EAAKoR,EAAetL,QAC/DtF,EAAcR,GAAOoR,EAEvB,CAED,MAAMO,QAAgBX,EACpBxQ,EAAMR,GACNiE,EACAzI,KAAKmC,QAAQW,OAETiC,EAAKiO,EAAAA,eAAemD,GAASjV,SAC7B6U,EACJtN,EACAzD,EACAR,EACA2R,EAAQpR,GACRoR,GAEFnR,EAAMR,GAAO2R,EAAQpR,EACvB,CA2COxB,eAAe6S,EAQpB3N,EACAkN,EACAnR,EACAQ,GAEA,MAAM4Q,EAAqB5Q,EAAMR,GACjC,IAAKoR,EAAe,OACpB,GAAID,EAAKO,QAAQ1L,SAAW3L,EAAOA,QAACqN,QAAS,OAC7C,MAAM2J,EAAqBC,EACzB9Q,EACAR,EACAxE,KAAKmC,QAAQW,OAEf,IAAIuT,EAIFA,EAHIT,aAAyBnQ,cAGboQ,EAAUnL,OACvB1F,EAAMR,GAAWqR,EAAU9Q,WAHd8Q,EAAUnL,OAAO1F,EAAMR,UAKnCuR,EACJtN,EACAzD,EACAR,EACA6R,EAAQR,EAAU9Q,IAClBsR,EAEJ,CAwDO9S,eAAe+S,EAQpB7N,EACAkN,EACAnR,EACAQ,GAEA,MAAMuR,EAAsBvR,EAAMR,GAClC,IAAK+R,IAAmBA,EAAepW,OAAQ,OAC/C,MAAMqW,SAAmBD,EAAe,GACxC,IAAKA,EAAeE,MAAOC,UAAqBA,IAASF,GACvD,MAAM,IAAI1W,EAAaA,cACrB,+CAA+C0E,+BAEnD,MAAMmS,EAAe,IAAIC,IAAI,IAAIL,IACjC,GAAkB,WAAdC,EAAwB,CAC1B,MAAM5D,EAAOkD,EAA2B9Q,EAAOR,EAAKxE,KAAKmC,QAAQW,OACjE,IAAK,MAAM5B,KAAMyV,EAAc,CAC7B,MAAMrM,QAAasI,EAAKtI,KAAKpJ,SACvB6U,EAAsBtN,EAASzD,EAAOR,EAAKtD,EAAIoJ,EACtD,CAED,YADCtF,EAAcR,GAAO,IAAImS,GAE3B,CAED,MAAME,EAAS7D,EAAAA,eAAeuD,EAAe,IAAIrV,GAE3CS,EAAsB,IAAIiV,IAEhC,IAAK,MAAM7M,KAAKwM,EAAgB,CAC9B,MAAM7M,QAAe8L,EAAezL,EAAGtB,EAASzI,KAAKmC,QAAQW,aACvDiT,EAAsBtN,EAASzD,EAAOR,EAAKkF,EAAOmN,GAASnN,GACjE/H,EAAOmV,IAAIpN,EAAOmN,GACnB,CAEA7R,EAAcR,GAAO,IAAI7C,EAC5B,CAkCO4B,eAAewT,EAQpBtO,EACAkN,EACAnR,EACAQ,GAEA,MAAMkR,QAAEA,GAAYP,EACpB,GAAIO,EAAQ1L,SAAW3L,EAAAA,QAAQqN,QAC/B,OAAOoK,EAAkBhT,KAAMtD,KAC7ByI,EACAkN,EACAnR,EACAQ,EAEJ,CAkDOzB,eAAeyT,EAQpBvO,EACAkN,EACAnR,EACAQ,GAEA,GAAI2Q,EAAKO,QAAQxL,SAAW7L,EAAOA,QAACqN,QAAS,OAC7C,MAAMjB,EAASjG,EAAMR,GACrB,IAAKyG,IAAWA,EAAO9K,OAAQ,OAC/B,MAAMqW,SAAmBvL,EAAO,GAEhC,IADuBA,EAAOwL,MAAOC,UAAqBA,IAASF,GAEjE,MAAM,IAAI1W,EAAaA,cACrB,+CAA+C0E,+BAEnD,MAAMyS,EAA+B,WAAdT,EACjB5D,EAAOqE,EACT9Q,EAAWkF,SAASJ,EAAO,GAAIjL,KAAKmC,QAAQW,OAC5CgT,EAA2B9Q,EAAOR,EAAKxE,KAAKmC,QAAQW,OAElD6T,EAAe,IAAIC,IAAI,IACvBK,EACAhM,EAAO1K,IAAKiT,GAA2BA,EAAEZ,EAAK7N,KAC9CkG,IAGN,IAAK,MAAM/J,KAAMyV,EAAa1L,SAAU,CACtC,MAAMoL,QAAgBzD,EAAKlI,OAAOxJ,SAC5B6U,EAAsBtN,EAASzD,EAAOR,EAAKtD,EAAImV,EACtD,CACArR,EAAcR,GAAO,IAAImS,EAC5B,UAYgBO,EACdxT,EACAyT,EACAjW,GAEA,MAAO,CAACvC,EAAAA,gBAAgByY,SAAU1T,EAAWyT,EAAWjW,GAAImF,KAAK,IACnE,CAgBO9C,eAAewS,EAIpBtN,EACA4O,EACArY,EACAsY,EACAC,GAEA,MAAMC,EAAWN,EACfG,EAAY9X,YAAYE,KACxBT,EACAsY,GAEF,OAAO7O,EAAQI,WAAW,CAAE2O,CAACA,GAAWD,GAC1C,CAwDOhU,eAAekU,EAQpBhP,EACAkN,EACAnR,EACAQ,GAEA,IAAK2Q,EAAK8B,SAAU,OACpB,MAAMC,EAAc1S,EAAMR,GACpBmT,EAAQjF,MAAMC,QAAQ+E,GAC5B,QAAsB,IAAXA,GAA2BC,GAA2B,IAAlBD,EAAOvX,OAAe,OA0BrE,MAAMyX,OAxBNrU,OACE4M,EACAnL,EACA6S,EACAC,EACAhV,KAEA,IAAI0U,EACApO,EACJ,MAAM2O,EAAe,GACrB,IAAK,MAAMC,KAAeF,EAAe,CACvCN,EAAWN,EAAelS,EAAMzF,YAAYE,KAAMoY,EAAUG,GAC5D,IACE5O,QAAY+G,EAAEzK,IAAI8R,EAEnB,CAAC,MAAOlW,GACP,MAAMsR,EAAOkD,EAA2B9Q,EAAO6S,EAAU/U,GACzD,IAAK8P,EAAM,MAAM,IAAI9S,EAAAA,cAAc,uBACnCsJ,QAAYwJ,EAAKtI,KAAK0N,EACvB,CACDD,EAAQrX,KAAK0I,EACd,CACD,OAAO2O,CACR,EACiBE,CAChBxP,EACAzD,EACAR,EACAmT,EAAQD,EAAS,CAACA,GAClB1X,KAAKmC,QAAQW,OAEdkC,EAAcR,GAAOmT,EAAQC,EAAMA,EAAI,EAC1C,CAQA,MAAMM,EAAc,CAClB,QACA,SACA,SACA,UACA,SACA,WACA,SACA,YACA,OACA,mBA6CcpC,EACd9Q,EACAhG,EACA8D,GAEA,MAAMqV,EAAQxS,QAAQO,YACpBkS,EAAUA,WAAC5T,IACTkO,MAAMC,QAAQ3N,EAAMhG,IAChBqZ,EAAAA,eAAeC,KACfD,EAAAA,eAAeE,MAErBvT,EACAhG,GAEIwZ,EAAmB9F,MAAMC,QAAQ3N,EAAMhG,IACzCmZ,EAAMtO,MACNsO,EAAMK,YACV,IAAKL,IAAUK,EACb,MAAM,IAAI1Y,EAAAA,cACR,gDAAgDd,GAGpD,MAGMyZ,GAFJ/F,MAAMC,QAAQ6F,GAAe,IAAIA,GAAe,CAACA,IACjDjY,IAAKmY,GAAoB,mBAANA,EAAmBA,IAAMA,GACTC,KAClCD,IAAOR,EAAYpD,UAAS,GAAG4D,GAAIE,gBAEtC,IAAKH,EACH,MAAM,IAAI3Y,EAAaA,cACrB,gBAAgBd,4CAEpB,MAAMO,EAA0CkG,EAAAA,MAAMC,IAAI+S,GAC1D,IAAKlZ,EACH,MAAM,IAAIO,EAAAA,cAAc,iCAAiC2Y,GAE3D,OAAOtS,EAAWkF,SAAS9L,EAAauD,EAC1C,UC1tBgBlC,EACdiY,EACAC,EACArZ,GAuCA,OAAO6G,aAAWzB,IAAIlG,EAAeA,gBAAC+U,OACnCqF,OAAO,CACNC,UAvCJ,CACEH,EACAC,EACArZ,KAE0B,iBAAfoZ,IACTpZ,EAAOoZ,EACPA,OAAa1U,EACb2U,OAAe3U,GAEW,iBAAjB2U,IACTrZ,EAAOqZ,EACPA,OAAe3U,IAEZ2U,GAAgBD,GAEjBA,EAAWF,KACRM,IAAO,CAACra,EAAcA,eAACsT,IAAKtT,EAAAA,eAAesa,KAAKpE,SAASmE,MAG5DH,EAAeD,EACfA,OAAa1U,GAIVgV,EAAYA,aACjBhT,EAAW3B,IACT,GAAG7F,EAAAA,gBAAgB+U,QAAQoF,GAAgBA,EAAa3Y,OAAS,IAAI2Y,EAAazS,KAAK,KAAS,MAElG,CACEwS,WAAYA,EACZC,aAAcA,EACdrZ,KAAMA,KAQR0B,KAAM,CAAC0X,EAAYC,EAAcrZ,KAElC6D,OACL,CAmBOC,eAAe6V,EAQpB3Q,EACAkN,EACAnR,EACAQ,GAEA,GAAMA,EAAcR,WACGxE,KAAK2R,SACzBW,MAAM9F,EAAUvG,UAAUzB,GAAKsJ,GAAG9I,EAAMR,KACxCgO,WACUrS,OACX,MAAM,IAAIkZ,EAAAA,cACR,sCAAsC7U,cAA0BmE,KAAKC,UAAW5D,EAAcR,QAAML,EAAW,KAErH,CAyCOZ,eAAe+V,EASpB7Q,EAEAkN,EAEAnR,EAEAQ,GAEA,MAAM,IAAI3F,EACR,oDAEJ,UA4CgBka,KACd,OAAOnR,YAAU,CAAC/F,gBAAcC,QAClC,UAEgBkX,KACd,OAAOpR,EAASA,WAClB,CA4SgB,SAAAqR,MAAgBC,GAC9B,MAAO,CAAsB3a,EAAaC,KACxC,MAAM2a,EACJpR,EAAAA,SAAS7C,IACP3G,EACAwJ,EAAQA,SAAC/D,IAAI7F,EAAAA,gBAAgBkW,YAAa7V,KACvC,GACD4a,EAAU,IAAI,IAAIhD,IAAI,IAAI+C,KAAgBD,KAChD,OAAOG,EAAQvW,MACbwW,EAAWvV,SACTgE,WAAS/D,IAAI7F,EAAAA,gBAAgBkW,YAAa7V,GAC1C4a,GAHGC,CAKL9a,EAAQC,EACZ,CACF,CCtjBOuE,eAAewW,GAQpBtR,EACAkN,EACAnR,EACAQ,GAEA,IAAK2Q,EAAKxQ,OAASwQ,EAAK/E,WAAa5L,EAAMR,GACzC,OAiBF,IAAIwV,EADCrE,EAAKlW,OAAMkW,EAAKlW,KAAOwF,EAAqBD,EAAO,OAExD,IACEgV,QAAiBha,KAAKmC,QAAQuC,SAASiR,EACxC,CAAC,MAAOrU,GACP,MAAM,IAAIxB,EAAAA,cACR,kCAAkC6V,EAAKlW,SAAS6B,IAEnD,CAED,MAAM2Y,QAAaD,EAASC,OAlB1BlX,OAAOyG,eAmBUxE,EAAOR,EAnBmB,CACzCiF,YAAY,EACZrG,UAAU,EACVjE,cAAc,EACdiG,MAeqC6U,GAC3C,CChFM,MAAgBC,WAAkBzU,EAAAA,MAetC,WAAAlG,CAAsB4a,GACpBxa,MAAMwa,EACP,kBCaSC,GDxBVpO,EAAAA,WAAA,CADCuN,gCACWlR,OAAK6R,GAAAhX,UAAA,iBAAA,GAOjB8I,EAAAA,WAAA,CADCwN,gCACWnR,OAAK6R,GAAAhX,UAAA,iBAAA,GEyCb,MAAgB2O,WACZ5P,EAAAA,YAeR,WAAA1C,CAAgC4C,GAC9BxC,QAD8BK,KAAOmC,QAAPA,CAE/B,CAED,OAAuBpB,GACrB,OAAQf,KAAKmC,QAAgBpB,IAAI8D,IAAIgN,GACtC,CAWD,MAAAF,CACEC,GAMA,OAJA7O,OAAOyG,eAAexJ,KAAM,iBAAkB,CAC5CoF,MAAOwM,EACPxO,UAAU,IAELpD,IACR,CAGD,QAAAqa,CACEzI,GAGA,OADA5R,KAAKsa,iBAAmB1I,EACjB5R,IACR,CAGD,GAAAua,CAAiC3I,GAE/B,OADA5R,KAAKwa,YAAc5I,EACZ5R,IACR,CAGD,GAAAya,CAAiC7I,GAE/B,OADA5R,KAAK0a,YAAc9I,EACZ5R,IACR,CAGD,KAAAE,CAAmC0R,GAEjC,OADA5R,KAAK2a,cAAgB/I,EACd5R,IACR,CAGM,IAAA8R,CAAKF,GAIV,GAHA5R,KAAK4a,aACiB,iBAAbhJ,EAAwBnM,EAAKA,MAACC,IAAIkM,GAAYA,GAElD5R,KAAK4a,aACR,MAAM,IAAItO,EAAW,kCAAkCsF,GACzD,OAAO5R,IACR,CAGM,KAAAsS,CAAMzF,GAEX,OADA7M,KAAK6a,eAAiBhO,EACf7M,IACR,CAGM,OAAAgS,CACLJ,GAGA,OADA5R,KAAK8a,gBAAkBlJ,EAChB5R,IACR,CAGM,OAAA+a,CAAQnJ,GAEb,OADA5R,KAAKgb,gBAAkBpJ,EAChB5R,IACR,CAGM,KAAAmS,CAAM/M,GAEX,OADApF,KAAKib,cAAgB7V,EACdpF,IACR,CAGM,MAAAuS,CAAOnN,GAEZ,OADApF,KAAKkb,eAAiB9V,EACfpF,IACR,CAGK,aAAAwS,GACJ,IACE,MAAMT,EAAW/R,KAAKgK,QACtB,aAAchK,KAAKmb,IAAIpJ,EACxB,CAAC,MAAOzQ,GACP,MAAM,IAAIxB,EAAAA,cAAcwB,EACzB,CACF,CAED,SAAM6Z,CAAOC,GACX,MAAMrD,QAAgB/X,KAAKmC,QAAQgZ,IAAOC,GAC1C,IAAKpb,KAAKqb,eAAgB,OAAOtD,EACjC,MAAMuD,EAAStI,EAAAA,eACb,IAAKhT,KAAK4a,cACV1Z,GAEIqa,EAAY,SAEhBhL,GAEA,MAAMrP,EAAKqP,EAAE+K,GACb,OAAOtb,KAAKmC,QAAQyH,OAClB2G,EACAvQ,KAAK4a,aACLU,EACApa,EAEJ,EAAE6T,KAAK/U,MAEP,OAAI0S,MAAMC,QAAQoF,GAAiBA,EAAQxX,IAAIgb,GACxCA,EAAUxD,EAClB,EA9GD/L,EAAAA,WAAA,CADClN,6HASA+S,GAAA3O,UAAA,SAAA,MAGD8I,EAAAA,WAAA,CADClN,yCAEW0c,EAAAA,WAAA,oBAAA,CAAC,mBAADC,uBAAAC,GAAAA,GAACD,GAAA1Y,mDAIZ8O,GAAA3O,UAAA,WAAA,MAGD8I,EAAAA,WAAA,CADClN,yCAC0C0c,EAAAA,WAAA,oBAAA,CAAC,mBAADG,uBAAAD,GAAAA,GAACC,GAAA5Y,mDAG3C8O,GAAA3O,UAAA,MAAA,MAGD8I,EAAAA,WAAA,CADClN,yCAC0C0c,EAAAA,WAAA,oBAAA,CAAC,mBAADI,uBAAAF,GAAAA,GAACE,GAAA7Y,mDAG3C8O,GAAA3O,UAAA,MAAA,MAGD8I,EAAAA,WAAA,CADClN,yCAC6C0c,EAAAA,WAAA,oBAAA,CAAC,mBAADK,uBAAAH,GAAAA,GAACG,GAAA9Y,mDAG9C8O,GAAA3O,UAAA,QAAA,MAGM8I,EAAAA,WAAA,CADNlN,8HAQA+S,GAAA3O,UAAA,OAAA,MAGM8I,EAAAA,WAAA,CADNlN,2EACuB0N,8CAGvBqF,GAAA3O,UAAA,QAAA,MAGM8I,EAAAA,WAAA,CADNlN,6HAMA+S,GAAA3O,UAAA,UAAA,MAGM8I,EAAAA,WAAA,CADNlN,8HAIA+S,GAAA3O,UAAA,UAAA,MAGM8I,EAAAA,WAAA,CADNlN,8HAIA+S,GAAA3O,UAAA,QAAA,MAGM8I,EAAAA,WAAA,CADNlN,8HAIA+S,GAAA3O,UAAA,SAAA,MAGK8I,EAAAA,WAAA,CADLlN,yHAQA+S,GAAA3O,UAAA,UAAA,MDtIF9D,EAAAgb,iBAAA,GATWA,GAAAA,EAAWA,cAAXA,cASX,CAAA,IARC,QAAA,SACAA,GAAA,OAAA,SACAA,GAAA,IAAA,MACAA,GAAA,GAAA,KACAA,GAAA,SAAA,UACAA,GAAA,SAAA,UACAA,GAAA,KAAA,OACAA,GAAA,QAAA,SEvBW,MAAA0B,GAA+C,CAC1DC,OAAQ,CAAC7Q,EAAGsI,IAAMhH,EAAUvG,UAAUiF,GAAU4C,GAAG0F,GACnDwI,KAAM,CAAC9Q,EAAGsI,IAAMhH,EAAUvG,UAAUiF,GAAU+C,IAAIuF,GAClDyI,SAAU,CAAC/Q,EAAGsI,IAAMhH,EAAUvG,UAAUiF,GAAUmD,GAAGmF,GACrD0I,cAAe,CAAChR,EAAGsI,IAAMhH,EAAUvG,UAAUiF,GAAUuD,IAAI+E,GAC3D2I,YAAa,CAACjR,EAAGsI,IAAMhH,EAAUvG,UAAUiF,GAAUiD,GAAGqF,GACxD4I,iBAAkB,CAAClR,EAAGsI,IAAMhH,EAAUvG,UAAUiF,GAAUqD,IAAIiF,GAC9D6I,QAAS,CAACnR,EAAGoR,EAAIC,IACf/P,EAAUvG,UAAUiF,GACjBqD,IAAI+N,GACJ1P,IAAIJ,EAAUvG,UAAUiF,GAAUuD,IAAI8N,IAC3CC,GAAI,CAACtR,EAAGsI,IAAMhH,EAAUvG,UAAUiF,GAAUuR,GAAGjJ,GAC/CkJ,QAAS,CAACxR,EAAGsI,IAAMhH,EAAUvG,UAAUiF,GAAU2D,OAAO2E,ICjDpDmJ,GAAcC,GAClBA,EAAIC,OAAO,GAAGjE,cAAgBgE,EAAIE,MAAM,SA6D7BC,GAeX,YAAO/S,CAAMgT,KAAuB/R,GAClC,IAAK+R,EAAWvJ,WAAW2G,EAAWA,YAAC6C,SACrC,MAAU/d,MAAM,sBAAsB8d,GAGxC,MAAME,EAAOld,KAAKmd,YAAYH,GACxBrL,EAAS3R,KAAKod,cAAcJ,GAC5BjC,EAAU/a,KAAKqd,eAAeL,GAE9B1K,EAAQtS,KAAKsd,WAAWJ,EAAMjS,IAC9B+G,QAAEA,EAAOG,MAAEA,EAAKI,OAAEA,GAAWvS,KAAKud,wBACtCL,EACAjS,GAGF,MAAO,CACLuS,OAAQ,OACR7L,OAAQA,EACRW,QACAyI,UACA/I,UACAG,QACAI,SAEH,CAcO,kBAAO4K,CAAYH,GACzB,MAAMS,EAAcT,EAAWU,UAAUtD,EAAAA,YAAY6C,QAAQ9c,QAEvDwd,EAAQF,EAAYE,MADZ,4CAEd,OAAOA,EAAQF,EAAYC,UAAU,EAAGC,EAAM/c,OAAS6c,CACxD,CAcO,oBAAOL,CAAcJ,GAC3B,MAAMY,EAAcZ,EAAWvc,QAAQ2Z,EAAWA,YAACyD,QACnD,IAAqB,IAAjBD,EAAoB,OAExB,MAAME,EAAcd,EAAWU,UAC7BE,EAAcxD,cAAYyD,OAAO1d,QAI7Bwd,EAAQG,EAAYH,MAAM,4CAMhC,OAJmBA,EACfG,EAAYJ,UAAU,EAAGC,EAAM/c,OAC/Bkd,GAEc/U,MAAMqR,EAAAA,YAAYzM,KAAKpN,IAAIoc,IAAYrc,OAAOyd,QACjE,CAcO,qBAAOV,CAAeL,GAC5B,MAAMgB,EAAehB,EAAWvc,QAAQ2Z,EAAWA,YAAC6D,UACpD,IAAsB,IAAlBD,EAMJ,OAJchB,EAAWU,UACvBM,EAAe5D,cAAY6D,SAAS9d,QAEZ4I,MAAMqR,EAAWA,YAAC8D,UAAU,GAEnDnV,MAAMqR,EAAWA,YAAC+D,SAClB5d,IAAIoc,IACJrc,OAAOyd,QACX,CAuCO,iBAAOT,CAAWJ,EAAcjS,GACtC,MACMmT,GADQlB,EAAKnU,MAAM,mBAAmB,IAAM,IACzBA,MAAM,UAEzBsV,EAAYnB,EAAKS,MAAM,YAAc,GAE3C,IAAIrL,EAqBJ,GAnBA8L,EAAW1c,QAAQ,CAAC4c,EAAOC,KACzB,MAAMC,MAAEA,EAAK9R,SAAEA,GAAa1M,KAAKye,sBAAsBH,GACjDI,EAAShS,EAAWoP,GAAapP,GAAYoP,GAAaC,OAChE,IAAK2C,EAAQ,MAAUxf,MAAM,wBAAwBwN,GAErD,MAAMiS,EAAiB1T,EAAOsT,GAC9B,QAA8B,IAAnBI,EACT,MAAUzf,MAAM,2BAA2Bsf,GAG7C,MAAM3R,EAAY6R,EAAOF,EAAOG,GAChCrM,EACU,IAARiM,EACI1R,EACAwR,EAAUE,EAAM,KAAOnE,EAAWA,YAACzM,IACjC2E,EAAO1F,IAAIC,GACXyF,EAAOxF,GAAGD,MAGfyF,EAAO,MAAUpT,MAAM,sCAC5B,OAAOoT,CACR,CAcO,4BAAOmM,CAAsB7B,GACnC,IAAK,MAAMlQ,KAAY3J,OAAOkH,KAAK6R,IACjC,GAAIc,EAAIgC,SAASlS,GAAW,CAC1B,MAAM8R,EAAQ5B,EAAIE,MAAM,GAAIpQ,EAASvM,QACrC,MAAO,CAAEqe,MAAO7B,GAAW6B,GAAQ9R,WACpC,CAEH,MAAO,CAAE8R,MAAO7B,GAAWC,GAC5B,CAeO,8BAAOW,CACbL,EACAjS,GAEA,MAAM4T,EAAiB3B,EAAKnU,MAAM,UAAU5I,OACtC2e,EAAY7T,EAAO6R,MAAM+B,GAE/B,IAAI7M,EACAG,EACAI,EAWJ,OATIuM,EAAU3e,QAAU,GAAKuS,MAAMC,QAAQmM,EAAU,MACnD9M,EAAU8M,EAAU,IAEE,EAApBA,EAAU3e,QAAuC,iBAAjB2e,EAAU,KAC5C3M,EAAQ2M,EAAU,IAEI,EAApBA,EAAU3e,QAAuC,iBAAjB2e,EAAU,KAC5CvM,EAASuM,EAAU,IAEd,CAAE9M,UAASG,QAAOI,SAC1B,ECrSHkC,EAAAA,YAAYsK,YAAY,IAAI7K,GAoBf,MAAA8K,GAAU,cAQVC,GAAe,cAE5B1W,EAAAA,SAAS2W,gBAAgBD,GAAcD,iXCyBrC,WAAIpU,GACF,OAAO5K,KAAKmf,YACb,CAED,SAAIC,GACF,OAAOpf,KAAKqf,WACb,CAED,SAAInf,GACF,OAAOF,KAAKsf,YACb,CAED,aAAcC,GAEZ,OADKvf,KAAKwf,aAAYxf,KAAKwf,WAAaxf,KAAK8I,QAAQ9I,KAAK+R,QACnD/R,KAAKwf,UACb,CAED,WAAAjgB,CACqB4C,EACA4P,EACV0N,EACU5V,GAHA7J,KAAOmC,QAAPA,EACAnC,KAAK+R,MAALA,EACV/R,KAAIyf,KAAJA,EACUzf,KAAK6J,MAALA,CACjB,CAIJ,UAAMoQ,GACJ,OAAOja,KAAK0f,KAAK1f,KAAK4K,QAAU,EACjC,CAED,cAAM+U,GACJ,OAAO3f,KAAK0f,KAAK1f,KAAK4K,QAAU,EACjC,CAES,YAAAgV,CAAaF,GACrB,GAAW,EAAPA,IAAaG,OAAOC,UAAUJ,GAChC,MAAM,IAAInT,EACR,wDAEJ,QAAgC,IAArBvM,KAAKqf,aAA+BK,EAAO1f,KAAKqf,YACzD,MAAM,IAAI9S,EACR,QAAQvM,KAAKqf,gDAAgDK,KAEjE,OAAOA,CACR,kJRjCmCK,IACpC,MAAMvb,EAAMP,EAAQO,IAAI7F,EAAeA,gBAACyH,QACxC,OAAOE,EAAUA,WAACzB,IAAIL,GACnBuU,OAAO,CACNC,UAAW,CAAgB7R,EAAGgJ,IACrB,CAAgB3K,EAAUoC,IACxBuR,EAAAA,aAAahS,EAAGgJ,GAAKvI,EAArBuR,CAA2B3T,EAAKoC,GAG3CzG,KAAM,CAACqD,EAAKub,KAEbzc,OACL,qDA+LE,MAAMkB,EAAM2B,EAAW3B,IAAI7F,EAAeA,gBAACqhB,YAC3C,OAAO1Z,EAAUA,WAACzB,IAAIL,GACnBuU,OAAOkH,EAAQA,SAAC3G,GAA0BH,EAAAA,aAAa3U,EAAK,CAAA,IAC5DlB,OACL,6JA0RgB,CACduG,EACAqW,EAAkCjU,EAClCwL,GAAW,EACX0I,EACAC,KAGA,MAAM5b,EAAM2B,EAAW3B,IAAI7F,EAAeA,gBAAC0hB,cA+B3C,OAAO/Z,EAAUA,WAACzB,IAAIL,GACnBuU,OAAO,CACNC,UA/BJ,CACEnP,EACAqM,EACAuB,EACA0I,EACAC,KAEA,MAAM7b,EAA8B,CAClCgL,MAAO1F,EAAMpK,KAAOoK,EAAMpK,KAAQoK,EAClCqM,QAASA,EACTuB,SAAUA,GAIZ,OAFI0I,IAAe5b,EAAS+b,UAAYH,GACpCC,IAAI7b,EAAS9E,KAAO2gB,GACjB9c,EAAKA,MACVmP,EAAIA,KAAC9T,EAAeA,gBAACkV,WACrB0M,EAAAA,KAAK,CACH1W,EAAMpK,KAAOoK,EAAMpK,KAAQoK,EAC3B2W,OAAO/gB,KACPogB,OAAOpgB,KACP6F,OAAO7F,OAMT0Z,eAAa3U,EAAKD,GAErB,EAIGpD,KAAM,CAAC0I,EAAOqW,EAAgBzI,EAAU0I,EAAeC,KAExD9c,OACL,cAvHgB,CACduG,EACAqW,EAAkCjU,EAClCwL,GAAW,EACX0I,EACAC,KAGA,MAAM5b,EAAM2B,EAAW3B,IAAI7F,EAAeA,gBAAC8hB,aA8B3C,OAAOna,EAAUA,WAACzB,IAAIL,GACnBuU,OAAO,CACNC,UA9BJ,CACEnP,EACAqM,EACAuB,EACA0I,EACAC,KAEA,MAGM7b,EAA8B,CAClCgL,MAAO1F,GAAOpK,KAAOoK,EAAMpK,KAAQoK,EACnCqM,QAASA,EACTuB,SAAUA,GAIZ,OAFI0I,IAAe5b,EAAS+b,UAAYH,GACpCC,IAAI7b,EAAS9E,KAAO2gB,GACjB9c,EAAKA,MACVmP,EAAIA,KAAC9T,EAAeA,gBAACkV,WACrB1O,EAAAA,KAAK,CAZW,KACf0E,GAAOpK,KAAOoK,EAASA,KAAkCpK,KAWzC+gB,OAAO/gB,KAAMogB,OAAOpgB,KAAM6F,OAAO7F,OAKlD0Z,eAAa3U,EAAKD,GAErB,EAKGpD,KAAM,CAAC0I,EAAOqW,EAAgBzI,EAAU0I,EAAeC,KAExD9c,OACL,6CA+FSmW,GAAapX,gBAAcC,uCAQ3BmX,GAAapX,EAAaA,cAACE,OAAQF,EAAaA,cAACC,iCAJjDmX,GAAapX,gBAAcE,oBA3NpB,CACdsH,EACAqW,EAAkCjU,EAClCwL,GAAoB,EACpB0I,EACAC,KAEA,MAAM5b,EAAM2B,EAAW3B,IAAI7F,EAAeA,gBAAC+hB,aAiC3C,OAAOpa,EAAUA,WAACzB,IAAIL,GACnBuU,OAAO,CACNC,UAjCJ,CACEnP,EACAqM,EACAuB,EACA0I,EACAC,KAEA,MAAM7b,EAA8B,CAClCgL,MAAO1F,EAAMpK,KAAOoK,EAAMpK,KAAQoK,EAClCqM,QAASA,EACTuB,SAAUA,GAIZ,OAFI0I,IAAe5b,EAAS+b,UAAYH,GACpCC,IAAI7b,EAAS9E,KAAO2gB,GACjB9c,EAAKA,MACVmP,EAAIA,KAAC9T,EAAeA,gBAACkV,WACrB0M,EAAAA,KAAK,CACH1W,EACA2W,OACAX,OAEAva,SAEF2a,EAAAA,SAAS3J,EAAmB/R,GAC5Boc,EAAAA,SAAS5J,EAAmBxS,GAC5Bqc,EAAQA,SAAC5J,EAAmBzS,GAC5Bsc,EAAQA,SAACC,EAAKvc,GACd4U,eAAa3U,EAAKD,GAErB,EAKGpD,KAAM,CAAC0I,EAAOqW,EAAgBzI,EAAU0I,EAAeC,KAExD9c,OACL,+EA1HgB,CACduG,EACAqW,EAAkCjU,EAClCwL,GAAoB,EACpBsJ,EACAX,KAEA,MAAM5b,EAAM2B,EAAW3B,IAAI7F,EAAeA,gBAACqiB,YAiC3C,OAAO1a,EAAUA,WAACzB,IAAIL,GACnBuU,OAAO,CACNC,UAhCJ,CACEnP,EACAqM,EACAuB,EACAsJ,EACAX,KAEA,MAAMa,EAA0B,CAC9B1R,MAAO1F,EAAMpK,KAAOoK,EAAMpK,KAAQoK,EAClCqM,QAASA,EACTuB,SAAUA,GAIZ,OAFIsJ,IAAgBE,EAAKX,UAAYS,GACjCX,IAAIa,EAAKxhB,KAAO2gB,GACb9c,EAAKA,MACVmP,EAAIA,KAAC9T,EAAeA,gBAACkV,WACrB1O,EAAAA,KAAK,CACH0E,EAAMpK,KAAOoK,EAAMpK,KAAQoK,EAC3B2W,OAAO/gB,KACPogB,OAAOpgB,KACP6F,OAAO7F,OAETwgB,EAAAA,SAASvK,EAAkBuL,GAC3BN,EAAAA,SAAS1K,EAAkBgL,GAC3BL,EAAQA,SAACxK,EAAkB6K,GAC3BJ,EAAQA,SAACC,EAAKG,GACd9H,eAAa3U,EAAKyc,GAErB,EAKG9f,KAAM,CAAC0I,EAAOqW,EAAgBzI,EAAUsJ,EAAgBX,KAEzD9c,OACL,sECpQgB,CACdmN,EAGI4E,KAEJ5E,EAAO1N,OAAOgF,OAAO,CAAA,EAAIsN,EAAwB5E,EAAM,CACrDG,aACEH,EAAKtL,WAAkC,IAAnBsL,EAAKG,YAErBH,EAAKG,WAAayE,EAAuBzE,YAGjD,MAAMpM,EAAM2B,EAAW3B,IAAI2G,EAAMA,OAAC8H,IAalC,OAAO3M,EAAUA,WAACzB,IAAIL,GACnBuU,OAAO,CACNC,UAdJ,CAAelU,EAA0Boc,IAChC,CAAe1b,EAAUoC,IACvBtE,EAAKA,MACV1C,EAAM,CAAChC,EAAcA,eAACsT,IAAKtT,EAAcA,eAACsa,MAC1C/J,EAAAA,WACAgS,aACAhI,EAAYA,aAAC3U,EAAKM,GAClBmb,EAAQA,SAAClG,GAAYjV,EAASoc,GAC9B/H,EAAYA,aAAChO,SAAO8H,GAAIrL,GANnBtE,CAOLkC,EAAKoC,GAMPzG,KAAM,CAACsP,EAAM,CAAE2Q,SAnIK,OAqIrB9d,OACL,uCQ5JgB,SAAMwB,EAAwB,IAC5C,MAAO,CACL/F,EACAC,EACAC,KAGA,MAAM+d,EAAahe,EAAYwC,WAC9BvC,EAA4CmG,MAAQ,YAChDjE,GAEH,MAAMwQ,OAAEA,EAAMW,MAAEA,EAAKyI,QAAEA,EAAO/I,QAAEA,EAAOG,MAAEA,EAAKI,OAAEA,GAC9CwK,GAAmB/S,MAAMgT,KAAe7b,GAE1C,IAAIkgB,EAAQrhB,KAAa2R,OAAOA,GAC5BW,IAAO+O,EAAOA,EAAK/O,MAAMA,IAQ7B,MAAMgP,WAAEA,EAAUC,YAAEA,EAAWC,aAAEA,EAAYC,OAAEA,GAAW,CACxDH,YAAY,EACZE,cAAc,EACdD,aAAa,EACbE,QAAQ,KACL3c,GAGC4c,EAAS,CAEb,CAAEld,IAAK,UAAWY,OAAQ4M,GAAW,IAAI,GAAI2P,QAASH,GACtD,CAAEhd,IAAK,QAASY,MAAO+M,EAAOwP,QAASL,GACvC,CAAE9c,IAAK,SAAUY,MAAOmN,EAAQoP,QAASJ,IAG3C,IAAK,MAAMK,KAASF,EAClB,QAAoBvd,IAAhByd,EAAMxc,MAAqB,CAC7B,IAAKwc,EAAMD,SAAWF,EACpB,MAAM,IAAInV,EACLsV,EAAMpd,IAAI,GAAGqd,cAAgBD,EAAMpd,IAAIsY,MAAM,GAAhD,kCAEO8E,EAAMD,UACfN,EAAOA,EAAKO,EAAMpd,KAAKod,EAAMxc,OAEhC,CAGH,OAAOic,EAAK7O,SACd,EAEJ,eCvBgB,CACdxN,EACAX,IAEQ,CAACC,EAAetF,IAClBA,EACK8iB,EAAMA,OAAC9c,EAAMc,YAAUic,SAAiC/c,EAAxD8c,CACLxd,EACAtF,IAIJuF,WAAS4B,EAAW3B,IAAI2G,SAAOC,YAAa9G,EAAS7E,KAArD8E,CAA2DS,GAC3DX,EACEA,GACAsB,QAAQO,YAAYjC,EAAQO,IAAI7F,EAAAA,gBAAgB8F,SAAUH,GAC5D6B,EAAWsJ,SACTzK,EAAMc,EAASA,UAACic,SAAiC/c,EACjDV,EACAD,GAEK+P,EAAUA,WAACpP,EAAMc,EAASA,UAACic,SAAiC/c,EAAO,CACxEgd,SAAWC,IACTlf,OAAOyG,eAAeyY,EAAU9W,EAAAA,OAAO+W,MAAO,CAC5CzY,YAAY,EACZtK,cAAc,EACdiE,UAAU,EACVgC,MAAOJ,IAEFid,IARJ7N,CAUJ9P,oEVN8BmM,GACb1R,IACpB,MAAMyF,EAAMP,EAAQO,IAAI7F,EAAeA,gBAACkH,OACxC,OAAOS,EAAUA,WAACzB,IAAIL,GACnBuU,OAAO,CACNC,UAAWzU,EAAQA,SACnBpD,KAAM,CAACqD,EAAKiM,GAAQ1R,EAAOU,KAAKmZ,iBAEjCtV,OALIgD,CAKIvH,EACb,gBA0JA,MAAMyF,EAAM2B,EAAW3B,IAAI7F,EAAeA,gBAACwjB,QAC3C,OAAO7b,EAAUA,WAACzB,IAAIL,GACnBuU,OAAOqJ,EAAcA,eAAChJ,GAAuBD,EAAAA,aAAa3U,EAAK,CAAA,IAC/DlB,OACL,2DA6EE,MAAMkB,EAAM2B,EAAW3B,IAAI7F,EAAeA,gBAAC0jB,YAC3C,OAAO/b,EAAUA,WAACzB,IAAIL,GACnBuU,OAAOqJ,EAAcA,eAAC9I,GAA0BH,EAAAA,aAAa3U,EAAK,CAAA,IAClElB,OACL"}
|
|
1
|
+
{"version":3,"file":"core.cjs","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/errors.ts","../src/persistence/Adapter.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/persistence/migrations.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/types.ts","../src/query/Statement.ts","../src/query/utils.ts","../src/query/MethodQueryBuilder.ts","../src/index.ts","../src/query/Paginator.ts","../src/query/decorators.ts","../src/repository/decorators.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["PersistenceKeys","OrderDirection","Cascade","final","target","propertyKey","descriptor","Error","configurable","exports","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","get","Reflect","getOwnMetadata","Adapter","key","TABLE","ModelKeys","MODEL","getColumnName","attribute","getMetadata","Repository","COLUMN","sequenceNameForModel","join","UnsupportedError","MigrationError","MigrationRuleError","Decoration","setFlavourResolver","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","setCurrent","Repo","models","cache","getRegistry","values","f","DBKeys","REPOSITORY","forModel","decoration","client","_client","getClient","hashObj","proxy","Proxy","p","receiver","originalConf","set","migrations","migrationsFor","migrate","migration","up","down","__decorate","prototype","DefaultCascade","CASCADE","NONE","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","prefixMethod","after","prefix","afterName","wrapped","results","call","bind","AbsMigration","transaction","meta","MIGRATION","enforceRules","qr","l","rules","rule","qrOrAdapter","getQueryRunner","noValidation","NO_VALIDATE","includes","Symbol","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","proKeyValue","fetchPopulateValues","commomTypes","types","Validation","ValidationKeys","LIST","TYPE","customTypes","constructorName","t","find","toLowerCase","directions","compositions","define","decorator","d","DSC","propMetadata","uniqueOnCreateUpdate","ConflictError","createdByOnCreateUpdate","createdAt","updatedAt","noValidateOn","ops","currentMeta","newMeta","newApply","newMetadata","pkOnCreate","sequence","next","BaseModel","arg","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","setRegistry","VERSION","PACKAGE_NAME","registerLibrary","_currentPage","total","_totalPages","_recordCount","statement","_statement","size","page","previous","validatePage","Number","isInteger","columnName","CREATED_BY","onCreate","cascadeOptions","joinTableOpts","fk","MANY_TO_MANY","joinTable","list","String","MANY_TO_ONE","ONE_TO_MANY","onUpdate","onDelete","afterAny","pop","joinColumnOpts","ONE_TO_ONE","groupsort","readonly","priority","stmt","allowLimit","allowOffset","allowOrderBy","throws","params","allowed","param","toUpperCase","inject","ANCHOR","callback","instance","CLASS","UNIQUE","onCreateUpdate","UPDATED_BY"],"mappings":"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"}
|