@decaf-ts/core 0.5.45 → 0.5.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/core.js CHANGED
@@ -1,2 +1,2 @@
1
- import{InjectableRegistryImp as e,Injectables as t,inject as r,injectable as s}from"@decaf-ts/injectable-decorators";import{__decorate as a,__metadata as i}from"tslib";import{BadRequestError as n,InternalError as o,Repository as c,Context as l,DefaultRepositoryFlags as d,OperationKeys as u,modelToTransient as p,DBKeys as h,wrapMethodWithContext as f,enforceDBDecorators as g,ValidationError as y,findPrimaryKey as b,DefaultSeparator as m,BulkCrudOperationKeys as w,NotFoundError as v,ConflictError as O,onCreateUpdate as A,onCreate as E,timestamp as T,onUpdate as N,onDelete as _,afterAny as R,readonly as P}from"@decaf-ts/db-decorators";import{Model as D,ModelKeys as x,Decoration as k,DefaultFlavour as $,hashObj as j,required as L,sf as C,Validation as B,ValidationKeys as M,propMetadata as I,prop as F,type as U,list as H}from"@decaf-ts/decorator-validation";import{LoggedClass as G,Logging as Y}from"@decaf-ts/logging";import{Metadata as q,apply as z,metadata as V}from"@decaf-ts/decoration";import{apply as Q,metadata as W,Reflection as X}from"@decaf-ts/reflection";var J,Z,K;function ee(){return(e,t,r)=>{if(!r)throw Error("final decorator can only be used on methods");return r?.configurable&&(r.configurable=!1),r}}(e=>{e.INDEX="index",e.UNIQUE="unique",e.ADAPTER="adapter",e.INJECTABLE="decaf_{0}_adapter_for_{1}",e.TABLE="table",e.COLUMN="column",e.METADATA="__metadata",e.OWNERSHIP="ownership",e.CREATED_BY="ownership.created-by",e.UPDATED_BY="ownership.updated-by",e.RELATIONS="__relations",e.RELATION="relation",e.ONE_TO_ONE="relation.one-to-one",e.ONE_TO_MANY="relation.one-to-many",e.MANY_TO_ONE="relation.many-to-one",e.MANY_TO_MANY="relation.many-to-many",e.POPULATE="populate",e.NO_VALIDATE="no-validate"})(J||(J={}));class te extends n{constructor(e,t=te.name,r=401){super(e,t,r)}}class re extends te{constructor(e,t=re.name){super(e,t,403)}}class se extends o{constructor(e){super(e,se.name,503)}}class ae{constructor(){this.observers=[]}count(){return this.observers.length}observe(e,t){if(-1!==this.observers.map(e=>e.observer).indexOf(e))throw new o("Observer already registered");this.observers.push({observer:e,filter:t})}unObserve(e){const t=this.observers.map(e=>e.observer).indexOf(e);if(-1===t)throw new o("Failed to find Observer");this.observers.splice(t,1)}async updateObservers(e,t,r,s,...a){(await Promise.allSettled(this.observers.filter(a=>{const{filter:i}=a;if(!i)return!0;try{return i(t,r,s)}catch(t){return e.error(`Failed to filter observer ${a.observer.toString()}: ${t}`),!1}}).map(e=>{e.observer.refresh(t,r,s,...a)}))).forEach((t,r)=>{"rejected"===t.status&&e.error(`Failed to update observable ${this.observers[r].toString()}: ${t.reason}`)})}}function ie(e){const t=e instanceof D?e.constructor:e;return Reflect.getOwnMetadata(c.key(J.TABLE),t[x.ANCHOR]||t)||(e instanceof D?e.constructor.name:e.name)}function ne(e,t){return Reflect.getMetadata(c.key(J.COLUMN),e,t)||t}function oe(e,...t){return[ie(e),...t].join("_")}k.setFlavourResolver(e=>{try{return ce.flavourOf(D.isModel(e)?e.constructor:e)||ce.currentFlavour||$}catch(e){}try{return ce.currentFlavour||$}catch(e){return $}});class ce extends G{static{this._cache={}}get config(){return this._config}get alias(){return this._alias||this.flavour}repository(){if(!ce._baseRepository)throw new o("This should be overridden when necessary. Otherwise it will be replaced lazily");return ce._baseRepository}async shutdownProxies(e){if(this.proxies){if(e&&!(e in this.proxies))throw new o("No proxy found for "+e);if(e)try{await this.proxies[e].shutdown(),delete this.proxies[e]}catch(t){this.log.error(`Failed to shutdown proxied adapter ${e}: ${t}`)}else for(const e in this.proxies){try{await this.proxies[e].shutdown()}catch(t){this.log.error(`Failed to shutdown proxied adapter ${e}: ${t}`);continue}delete this.proxies[e]}}}async shutdown(){await this.shutdownProxies(),this.dispatch&&await this.dispatch.close()}constructor(e,t,r){if(super(),this._config=e,this.flavour=t,this._alias=r,this.Context=l,this.alias in ce._cache)throw new o(`${this.alias} persistence adapter ${this._alias?`(${this.flavour}) `:""} already registered`);ce._cache[this.alias]=this,this.log.info(`Created ${this.alias} persistence adapter ${this._alias?`(${this.flavour}) `:""} persistence adapter`),ce._currentFlavour||(this.log.verbose(`Defined ${this.alias} persistence adapter as current`),ce._currentFlavour=this.alias)}Dispatch(){return new ce._baseDispatch}ObserverHandler(){return new ae}isReserved(e){return!e}async initialize(...e){}async flags(e,t,r,...s){return Object.assign({},d,r,{affectedTables:ie(t),writeOperation:e!==u.READ,timestamp:new Date,operation:e,ignoredValidationProperties:q.validationExceptions(t,e)})}async context(e,t,r,...s){this.log.for(this.context).debug(`Creating new context for ${e} operation on ${r.name} model with flag overrides: ${JSON.stringify(t)}`);const a=await this.flags(e,r,t,...s);return(new this.Context).accumulate(a)}prepare(e,t){const r=this.log.for(this.prepare),s=p(e),a=Object.entries(s.model).reduce((t,[r,s])=>{if(void 0===s)return t;const a=ne(e,r);if(this.isReserved(a))throw new o(`Property name ${a} is reserved`);return t[a]=s,t},{});return e[J.METADATA]&&(r.silly("Passing along persistence metadata for "+e[J.METADATA]),Object.defineProperty(a,J.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:e[J.METADATA]})),{record:a,id:e[t],transient:s.transient}}revert(e,t,r,s,a){const i=this.log.for(this.revert),n={};n[r]=s;const c="string"==typeof t?D.build(n,t):new t(n);i.silly(`Rebuilding model ${c.constructor.name} id ${s}`);const l=e[J.METADATA],d=Object.keys(c).reduce((t,s)=>(s===r||(t[s]=e[ne(t,s)]),t),c);return a&&(i.verbose("re-adding transient properties: "+Object.keys(a).join(", ")),Object.entries(a).forEach(([e,t])=>{if(e in d)throw new o(`Transient property ${e} already exists on model ${c.constructor.name}. should be impossible`);d[e]=t})),l&&(i.silly(`Passing along ${this.flavour} persistence metadata for ${c.constructor.name} id ${s}: ${l}`),Object.defineProperty(d,J.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:l})),d}async createAll(e,t,r,...s){if(t.length!==r.length)throw new o("Ids and models must have the same length");const a=this.log.for(this.createAll);return a.verbose(`Creating ${t.length} entries ${e} table`),a.debug("pks: "+t),Promise.all(t.map((t,a)=>this.create(e,t,r[a],...s)))}async readAll(e,t,...r){const s=this.log.for(this.readAll);return s.verbose(`Reading ${t.length} entries ${e} table`),s.debug("pks: "+t),Promise.all(t.map(t=>this.read(e,t,...r)))}async updateAll(e,t,r,...s){if(t.length!==r.length)throw new o("Ids and models must have the same length");const a=this.log.for(this.updateAll);return a.verbose(`Updating ${t.length} entries ${e} table`),a.debug("pks: "+t),Promise.all(t.map((t,a)=>this.update(e,t,r[a],...s)))}async deleteAll(e,t,...r){const s=this.log.for(this.createAll);return s.verbose(`Deleting ${t.length} entries ${e} table`),s.debug("pks: "+t),Promise.all(t.map(t=>this.delete(e,t,...r)))}observe(e,t){this.observerHandler||Object.defineProperty(this,"observerHandler",{value:this.ObserverHandler(),writable:!1}),this.observerHandler.observe(e,t),this.log.for(this.observe).verbose("Registering new observer "+e.toString()),this.dispatch||(this.log.for(this.observe).info("Creating dispatch for "+this.alias),this.dispatch=this.Dispatch(),this.dispatch.observe(this))}unObserve(e){if(!this.observerHandler)throw new o("ObserverHandler not initialized. Did you register any observables?");this.observerHandler.unObserve(e),this.log.for(this.unObserve).verbose(`Observer ${e.toString()} removed`)}async updateObservers(e,t,r,...s){if(!this.observerHandler)throw new o("ObserverHandler not initialized. Did you register any observables?");this.log.for(this.updateObservers).verbose(`Updating ${this.observerHandler.count()} observers for adapter ${this.alias}`),await this.observerHandler.updateObservers(this.log,e,t,r,...s)}async refresh(e,t,r,...s){return this.updateObservers(e,t,r,...s)}toString(){return this.flavour+" persistence Adapter"}static flavourOf(e){return Reflect.getMetadata(this.key(J.ADAPTER),e)||this.current?.flavour}static get currentFlavour(){if(!ce._currentFlavour)throw new o("No persistence flavour set. Please initialize your adapter");return ce._currentFlavour}static get current(){return ce.get(this.currentFlavour)}static get(e){if(!e)return ce.get(this._currentFlavour);if(e in this._cache)return this._cache[e];throw new o(`No Adapter registered under ${e}.`)}static setCurrent(e){this._currentFlavour=e}static key(e){return c.key(e)}static models(e){try{const t=D.getRegistry().cache,r=Object.values(t).map(t=>{let r=Reflect.getMetadata(ce.key(J.ADAPTER),t);if(r&&r===e)return t;if(!r){if(!Reflect.getMetadata(c.key(h.REPOSITORY),t))return;const e=this._baseRepository.forModel(t);return r=Reflect.getMetadata(ce.key(J.ADAPTER),e),r}}).filter(e=>!!e);return r}catch(e){throw new o(e)}}static decoration(){}get client(){return this._client||(this._client=this.getClient()),this._client}for(e,...t){this.proxies||(this.proxies={});const r=`${this.alias} - ${j(e)}`;if(r in this.proxies)return this.proxies[r];let s;const a=new Proxy(this,{get:(t,r,a)=>{if("_config"===r){const s=Reflect.get(t,r,a);return Object.assign({},s,e)}return"_client"===r?s:Reflect.get(t,r,a)},set:(e,t,r,a)=>"_client"===t?(s=r,!0):Reflect.set(e,t,r,a)});return this.proxies[r]=a,a}}a([ee(),i("design:type",Function),i("design:paramtypes",[String]),i("design:returntype",Promise)],ce.prototype,"shutdownProxies",null),a([ee(),i("design:type",Function),i("design:paramtypes",[String,Object,Object,Object]),i("design:returntype",Promise)],ce.prototype,"context",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Object,Function]),i("design:returntype",void 0)],ce.prototype,"observe",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",void 0)],ce.prototype,"unObserve",null),a([ee(),i("design:type",Object),i("design:paramtypes",[])],ce.prototype,"client",null),(e=>{e.ASC="asc",e.DSC="desc"})(Z||(Z={})),(e=>{e.CASCADE="cascade",e.NONE="none"})(K||(K={}));const le={update:K.CASCADE,delete:K.NONE};class de extends o{constructor(e){super(e,de.name,500)}}class ue{get log(){return this.logger||(this.logger=Y.for(this)),this.logger}constructor(e){this.options=e}static pk(e){return oe(e,"pk")}static parseValue(e,t){switch(e){case"Number":return"string"==typeof t?parseInt(t):"number"==typeof t?t:BigInt(t);case"BigInt":return BigInt(t);case void 0:case"String":return t;default:throw new de(`Unsupported sequence type: ${e} for adapter ${this}`)}}}var pe,he;(e=>{e.EQUAL="EQUAL",e.DIFFERENT="DIFFERENT",e.BIGGER="BIGGER",e.BIGGER_EQ="BIGGER_EQ",e.SMALLER="SMALLER",e.SMALLER_EQ="SMALLER_EQ",e.NOT="NOT",e.IN="IN",e.REGEXP="REGEXP"})(pe||(pe={})),(e=>{e.AND="AND",e.OR="OR"})(he||(he={}));class fe extends o{constructor(e){super(e,fe.name,500)}}class ge extends o{constructor(e){super(e,ge.name,500)}}class ye extends D{constructor(e,t,r){super(),this.attr1=void 0,this.operator=void 0,this.comparison=void 0,this.attr1=e,this.operator=t,this.comparison=r}and(e){return ye.and(this,e)}or(e){return ye.or(this,e)}not(e){return new ye(this,pe.NOT,e)}hasErrors(...e){const t=()=>{const e=`Invalid operator ${this.operator}}`;if("string"==typeof this.attr1){if(this.comparison instanceof ye)return{comparison:{condition:"Both sides of the comparison must be of the same type"}};if(-1===Object.values(pe).indexOf(this.operator))return{operator:{condition:e}}}if(this.attr1 instanceof ye){if(!(this.comparison instanceof ye)&&this.operator!==pe.NOT)return{comparison:{condition:e}};if(-1===Object.values(he).indexOf(this.operator)&&this.operator!==pe.NOT)return{operator:{condition:e}}}},r=super.hasErrors(...e);return this.isAsync()?(async()=>await Promise.resolve(r)??t())():r??t()}static and(e,t){return ye.group(e,he.AND,t)}static or(e,t){return ye.group(e,he.OR,t)}static group(e,t,r){return new ye(e,t,r)}static attribute(e){return(new ye.Builder).attribute(e)}static attr(e){return this.attribute(e)}static{this.Builder=class{constructor(){this.attr1=void 0,this.operator=void 0,this.comparison=void 0}attribute(e){return this.attr1=e,this}attr(e){return this.attribute(e)}eq(e){return this.setOp(pe.EQUAL,e)}dif(e){return this.setOp(pe.DIFFERENT,e)}gt(e){return this.setOp(pe.BIGGER,e)}lt(e){return this.setOp(pe.SMALLER,e)}gte(e){return this.setOp(pe.BIGGER_EQ,e)}lte(e){return this.setOp(pe.SMALLER_EQ,e)}in(e){return this.setOp(pe.IN,e)}regexp(e){return this.setOp(pe.REGEXP,RegExp(e).source)}setOp(e,t){return this.operator=e,this.comparison=t,this.build()}build(){try{return new ye(this.attr1,this.operator,this.comparison)}catch(e){throw new fe(e)}}}}static builder(){return new ye.Builder}}function be(e){return t=>Q(W(ce.key(J.ADAPTER),e))(t)}a([L(),i("design:type",Object)],ye.prototype,"attr1",void 0),a([L(),i("design:type",String)],ye.prototype,"operator",void 0),a([L(),i("design:type",Object)],ye.prototype,"comparison",void 0);class me extends c{static{this._cache={}}get log(){return this.logger||(this.logger=this.adapter.log.for(this.toString())),this.logger}get adapter(){if(!this._adapter)throw new o("No adapter found for this repository. did you use the @uses decorator or pass it in the constructor?");return this._adapter}get tableName(){return this._tableName||(this._tableName=me.table(this.class)),this._tableName}get pkProps(){return super.pkProps}constructor(e,t,...r){if(super(t),this.observers=[],e&&(this._adapter=e),t&&(me.register(t,this,this.adapter.alias),e)){const r=Reflect.getMetadata(ce.key(J.ADAPTER),t);if(r&&r!==e.flavour)throw new o("Incompatible flavours");be(e.flavour)(t)}[this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(e=>{const t=e.name;f(this,this[t+"Prefix"],e,this[t+"Suffix"])})}override(e){return this.log.for(this.override).debug("Overriding repository flags with "+JSON.stringify(e)),new Proxy(this,{get:(t,r,s)=>{const a=Reflect.get(t,r,s);return"_overrides"!==r?a:Object.assign({},a,e)}})}for(e,...t){return new Proxy(this,{get:(r,s,a)=>"adapter"===s?this.adapter.for(e,...t):Reflect.get(r,s,a)})}ObserverHandler(){return new ae}async createPrefix(e,...t){const r=await l.args(u.CREATE,this.class,t,this.adapter,this._overrides||{});e=new this.class(e),await g(this,r.context,e,u.CREATE,u.ON);const s=await Promise.resolve(e.hasErrors(...r.context.get("ignoredValidationProperties")||[]));if(s)throw new y(s.toString());return[e,...r.args]}async create(e,...t){let r,{record:s,id:a,transient:i}=this.adapter.prepare(e,this.pk);return s=await this.adapter.create(this.tableName,a,s,...t),t.length&&(r=t[t.length-1]),this.adapter.revert(s,this.class,this.pk,a,r&&r.get("rebuildWithTransient")?i:void 0)}async createSuffix(e,t){return super.createSuffix(e,t)}async createAll(e,...t){if(!e.length)return e;const r=e.map(e=>this.adapter.prepare(e,this.pk)),s=r.map(e=>e.id);let a=r.map(e=>e.record);return a=await this.adapter.createAll(this.tableName,s,a,...t),a.map((e,t)=>this.adapter.revert(e,this.class,this.pk,s[t]))}async createAllPrefix(e,...t){const r=await l.args(u.CREATE,this.class,t,this.adapter,this._overrides||{});if(!e.length)return[e,...r.args];const s=me.getSequenceOptions(e[0]);let a=[];s.type?(s.name||(s.name=ue.pk(e[0])),a=await(await this.adapter.Sequence(s)).range(e.length)):a=e.map((e,t)=>{if(void 0===e[this.pk])throw new o("Primary key is not defined for model in position "+t);return e[this.pk]}),e=await Promise.all(e.map(async(e,t)=>(e=new this.class(e),s.type&&(e[this.pk]="String"!==s.type||s.generated?a[t]:""+e[this.pk]),await g(this,r.context,e,u.CREATE,u.ON),e)));const i=r.context.get("ignoredValidationProperties")||[],n=(await Promise.all(e.map(e=>Promise.resolve(e.hasErrors(...i))))).reduce((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e),void 0);if(n)throw new y(n);return[e,...r.args]}async readPrefix(e,...t){const r=await l.args(u.READ,this.class,t,this.adapter,this._overrides||{}),s=new this.class;return s[this.pk]=e,await g(this,r.context,s,u.READ,u.ON),[e,...r.args]}async read(e,...t){const r=await this.adapter.read(this.tableName,e,...t);return this.adapter.revert(r,this.class,this.pk,e)}async readAllPrefix(e,...t){const r=await l.args(u.READ,this.class,t,this.adapter,this._overrides||{});return await Promise.all(e.map(async e=>{const t=new this.class;return t[this.pk]=e,g(this,r.context,t,u.READ,u.ON)})),[e,...r.args]}async readAll(e,...t){return(await this.adapter.readAll(this.tableName,e,...t)).map((t,r)=>this.adapter.revert(t,this.class,this.pk,e[r]))}async update(e,...t){let{record:r,id:s,transient:a}=this.adapter.prepare(e,this.pk);return r=await this.adapter.update(this.tableName,s,r,...t),this.adapter.revert(r,this.class,this.pk,s,a)}async updatePrefix(e,...t){const r=await l.args(u.UPDATE,this.class,t,this.adapter,this._overrides||{}),s=e[this.pk];if(!s)throw new o("No value for the Id is defined under the property "+this.pk);const a=await this.read(s,...r.args);e=this.merge(a,e),await g(this,r.context,e,u.UPDATE,u.ON,a);const i=await Promise.resolve(e.hasErrors(a,...me.relations(this.class),...r.context.get("ignoredValidationProperties")||[]));if(i)throw new y(i.toString());return me.getMetadata(a)&&(me.getMetadata(e)||me.setMetadata(e,me.getMetadata(a))),[e,...r.args]}async updateAll(e,...t){const r=e.map(e=>this.adapter.prepare(e,this.pk));return(await this.adapter.updateAll(this.tableName,r.map(e=>e.id),r.map(e=>e.record),...t)).map((e,t)=>this.adapter.revert(e,this.class,this.pk,r[t].id))}async updateAllPrefix(e,...t){const r=await l.args(u.UPDATE,this.class,t,this.adapter,this._overrides||{}),s=e.map(e=>{const t=e[this.pk];if(!t)throw new o("missing id on update operation");return t}),a=await this.readAll(s,...r.args);e=e.map((e,t)=>(e=this.merge(a[t],e),me.getMetadata(a[t])&&(me.getMetadata(e)||me.setMetadata(e,me.getMetadata(a[t]))),e)),await Promise.all(e.map((e,t)=>g(this,r.context,e,u.UPDATE,u.ON,a[t])));const i=r.context.get("ignoredValidationProperties")||[],n=(await Promise.all(e.map((e,t)=>Promise.resolve(e.hasErrors(a[t],e,...i))))).reduce((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e),void 0);if(n)throw new y(n);return e.forEach((e,t)=>{me.getMetadata(a[t])&&(me.getMetadata(e)||me.setMetadata(e,me.getMetadata(a[t])))}),[e,...r.args]}async deletePrefix(e,...t){const r=await l.args(u.DELETE,this.class,t,this.adapter,this._overrides||{}),s=await this.read(e,...r.args);return await g(this,r.context,s,u.DELETE,u.ON),[e,...r.args]}async delete(e,...t){const r=await this.adapter.delete(this.tableName,e,...t);return this.adapter.revert(r,this.class,this.pk,e)}async deleteAllPrefix(e,...t){const r=await l.args(u.DELETE,this.class,t,this.adapter,this._overrides||{}),s=await this.readAll(e,...r.args);return await Promise.all(s.map(async e=>g(this,r.context,e,u.DELETE,u.ON))),[e,...r.args]}async deleteAll(e,...t){return(await this.adapter.deleteAll(this.tableName,e,...t)).map((t,r)=>this.adapter.revert(t,this.class,this.pk,e[r]))}select(e){return this.adapter.Statement().select(e).from(this.class)}async query(e,t,r=Z.ASC,s,a){const i=[t,r],n=this.select().where(e).orderBy(i);return s&&n.limit(s),a&&n.offset(a),n.execute()}attr(e){return ye.attr(e)}observe(e,t){this.observerHandler||Object.defineProperty(this,"observerHandler",{value:this.ObserverHandler(),writable:!1});const r=this.log.for(this.observe),s=me.table(this.class);this.adapter.observe(this,e=>s===e),r.verbose(`now observing ${this.adapter} filtering on table === ${s}`),this.observerHandler.observe(e,t),r.verbose("Registered new observer "+e.toString())}unObserve(e){if(!this.observerHandler)throw new o("ObserverHandler not initialized. Did you register any observables?");this.observerHandler.unObserve(e),this.log.for(this.unObserve).verbose(`Observer ${e.toString()} removed`),this.observerHandler.count()||(this.log.verbose(`No more observers registered for ${this.adapter}, unsubscribing`),this.adapter.unObserve(this),this.log.verbose("No longer observing adapter "+this.adapter.flavour))}async updateObservers(e,t,r,...s){if(!this.observerHandler)throw new o("ObserverHandler not initialized. Did you register any observables?");this.log.for(this.updateObservers).verbose(`Updating ${this.observerHandler.count()} observers for ${this}`),await this.observerHandler.updateObservers(this.log,e,t,Array.isArray(r)?r.map(e=>ue.parseValue(this.pkProps.type,e)):ue.parseValue(this.pkProps.type,r),...s)}async refresh(e,t,r,...s){return this.updateObservers(e,t,r,...s)}static forModel(e,t,...r){let s;const a=t||Reflect.getMetadata(ce.key(J.ADAPTER),e)||ce.currentFlavour;try{s=this.get(e,a)}catch(e){s=void 0}if(s instanceof me)return s;const i=t||Reflect.getMetadata(ce.key(J.ADAPTER),e)||s&&Reflect.getMetadata(ce.key(J.ADAPTER),s)||ce.currentFlavour,n=i?ce.get(i):void 0;if(!n)throw new o("No registered persistence adapter found flavour "+i);return s=s||n.repository(),new s(n,e,...r)}static get(e,t){const r=me.table(e);let s=r;if(t&&(s=[r,t].join(m)),s in this._cache)return this._cache[s];if(r in this._cache)return this._cache[r];throw new o("Could not find repository registered under "+r)}static register(e,t,r){let s=me.table(e);if(r&&(s=[s,r].join(m)),s in this._cache&&this._cache[s]instanceof me)throw new o(s+" already has a registered instance");this._cache[s]=t}static setMetadata(e,t){Object.defineProperty(e,J.METADATA,{enumerable:!1,configurable:!0,writable:!1,value:t})}static getMetadata(e){const t=Object.getOwnPropertyDescriptor(e,J.METADATA);return t?t.value:void 0}static removeMetadata(e){Object.getOwnPropertyDescriptor(e,J.METADATA)&&delete e[J.METADATA]}static getSequenceOptions(e){const t=b(e).id,r=Reflect.getMetadata(me.key(h.ID),e,t);if(!r)throw new o("No sequence options defined for model. did you use the @pk decorator?");return r}static indexes(e){const t=X.getAllPropertyDecorators(e instanceof D?e:new e,h.REFLECT);return Object.entries(t||{}).reduce((e,[t,r])=>{const s=r.filter(e=>e.key.startsWith(J.INDEX));if(s&&s.length)for(const r of s){const{key:s,props:a}=r;e[t]=e[t]||{},e[t][s]=a}return e},{})}static relations(e){const t=[];let r=e instanceof D?Object.getPrototypeOf(e):e.prototype;for(;null!=r;){const e=r[J.RELATIONS];e&&t.push(...e),r=Object.getPrototypeOf(r)}return t}static table(e){return ie(e)}static column(e,t){return ne(e,t)}}function we(e,t){if(!t){const r=ce.key(J.ADAPTER);if(!(t=Reflect.getMetadata(r,e instanceof D?e.constructor:e)))throw new o("Could not retrieve flavour from model "+(e instanceof D?e.constructor.name:e.name))}return C(J.INJECTABLE,t,ie(e))}a([ee(),i("design:type",Function),i("design:paramtypes",[Object,Function]),i("design:returntype",void 0)],me.prototype,"observe",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",void 0)],me.prototype,"unObserve",null),ce&&(ce._baseRepository=me);class ve extends e{get log(){return this.logger||(this.logger=Y.for(this)),this.logger}constructor(){super()}get(e,r){const s=this.log.for(this.get);let a;try{a=super.get(e)}catch{}if(!a){let i;if("function"==typeof e?i=e:"symbol"!=typeof e&&"string"!=typeof e||(i=D.get(e.toString())),!i)return;const n=ce.key(J.ADAPTER),o=r||Reflect.getMetadata(n,i);try{let e=o;try{o&&ce.get(o)}catch{const t=ce.current;t&&t.flavour===o&&(e=t.alias)}if(a=me.forModel(i,e),a instanceof me)return a;const r=o||Reflect.getMetadata(n,a.constructor)||Reflect.getMetadata(n,i);t.register(a,we(i,r))}catch(e){s.debug("No registered repository or adapter found. falling back to default adapter. Error: "+(e?.message||JSON.stringify(e)));const t=me.get(i,o);if("function"==typeof t){const e=o?ce.get(o):ce.current;if(!e)return;return new t(e,i)}}}return a}}class Oe extends G{constructor(){super()}async initialize(){if(!this.adapter)return void this.log.verbose("No adapter observed for dispatch; skipping initialization");const e=this.adapter;[u.CREATE,u.UPDATE,u.DELETE,w.CREATE_ALL,w.UPDATE_ALL,w.DELETE_ALL].forEach(t=>{if(!e[t])throw new o(`Method ${t} not found in ${e.alias} adapter to bind Observables Dispatch`);let r=Object.getOwnPropertyDescriptor(e,t),s=e;for(;!r&&s!==Object.prototype;)s=Object.getPrototypeOf(s),r=Object.getOwnPropertyDescriptor(s,t);r&&r.writable?e[t]=new Proxy(e[t],{apply:async(e,r,s)=>{const[a,i]=s,n=await e.apply(r,s);return this.updateObservers(a,(e=>{switch(e){case w.CREATE_ALL:return u.CREATE;case w.UPDATE_ALL:return u.UPDATE;case w.DELETE_ALL:return u.DELETE;default:return e}})(t),i).then(()=>{this.log.verbose(`Observer refresh dispatched by ${t} for ${a}`),this.log.debug("pks: "+i)}).catch(e=>this.log.error(`Failed to dispatch observer refresh for ${t} on ${a}: ${e}`)),n}}):this.log.error(`Could not find method ${t} to bind Observables Dispatch`)})}async close(){}observe(e){if(!(e instanceof ce))throw new de("Only Adapters can be observed by dispatch");this.adapter=e,this.models=ce.models(this.adapter.alias),this.initialize().then(()=>this.log.verbose(`Dispatch initialized for ${this.adapter.alias} adapter`))}unObserve(e){if(this.adapter!==e)throw new de("Only the adapter that was used to observe can be unobserved");this.adapter=void 0}async updateObservers(e,t,r){if(this.adapter)try{await this.adapter.refresh(e,t,r)}catch(e){throw new o("Failed to refresh dispatch: "+e)}else this.log.verbose(`No adapter observed for dispatch; skipping observer update for ${e}:${t}`)}}function Ae(e,t){return(a,i)=>i?r(e[x.ANCHOR]||e)(a,i):(W(me.key(h.REPOSITORY),a.name)(e),t=t||Reflect.getMetadata(ce.key(J.ADAPTER),a),me.register(e[x.ANCHOR]||e,a,t),s(e[x.ANCHOR]||e,{callback:t=>(Object.defineProperty(t,h.CLASS,{enumerable:!1,configurable:!1,writable:!1,value:e}),t)})(a))}ce&&(ce._baseDispatch=Oe),q.validationExceptions=((e,t)=>{const r=q.get(e,J.NO_VALIDATE);return r?Object.entries(r).filter(([,e])=>e.includes(t)).map(([e])=>e):[]}).bind(q);class Ee extends o{constructor(e){super(e,Ee.name,500)}}const Te={type:void 0,generated:!1,startWith:0,incrementBy:1,cycle:!1},Ne=Te,_e={type:"Number",generated:!0,startWith:0,incrementBy:1,cycle:!1},Re=Object.assign({},_e,{type:"BigInt"});async function Pe(e,t,r,s){if(!s){const t=D.get(e.constructor.name);if(!t)throw new o("Could not find model "+e.constructor.name);s=me.forModel(t,r)}if(void 0===e[s.pk])return s.create(e,t);try{return s.update(e,t)}catch(r){if(!(r instanceof v))throw r;return s.create(e,t)}}async function De(e,t,r,s){const a=s[r];if(!a)return;if("object"!=typeof a){const t=Ie(s,r,this.adapter.alias),i=await t.read(a);return await Ce(e,s,r,a,i),void(s[r]=a)}t.class="string"==typeof t.class?t.class:t.class().name;const i=D.get(t.class);if(!i)throw new o("Could not find model "+t.class);const n=me.forModel(i,this.adapter.alias),c=await n.create(a),l=b(c).id;await Ce(e,s,r,c[l],c),s[r]=c[l]}async function Se(e,t,r,s){const a=s[r];if(!a)return;if(t.cascade.update!==K.CASCADE)return;if("object"!=typeof a){const t=Ie(s,r,this.adapter.alias),i=await t.read(a);return await Ce(e,s,r,a,i),void(s[r]=a)}const i=await Pe(s[r],e,this.adapter.alias),n=b(i).id;await Ce(e,s,r,i[n],i),s[r]=i[n]}async function xe(e,t,r,s){const a=s[r];if(!a)return;if(t.cascade.update!==K.CASCADE)return;const i=Ie(s,r,this.adapter.alias);let n;n=a instanceof D?await i.delete(s[r][i.pk]):await i.delete(s[r]),await Ce(e,s,r,n[i.pk],n)}async function ke(e,t,r,s){const a=s[r];if(!a||!a.length)return;const i=typeof a[0];if(!a.every(e=>typeof e===i))throw new o(`Invalid operation. All elements of property ${r} must match the same type.`);const n=new Set([...a]);if("object"!==i){const t=Ie(s,r,this.adapter.alias);for(const a of n){const i=await t.read(a);await Ce(e,s,r,a,i)}return void(s[r]=[...n])}const c=b(a[0]).id,l=new Set;for(const t of a){const a=await Pe(t,e,this.adapter.alias);await Ce(e,s,r,a[c],a),l.add(a[c])}s[r]=[...l]}async function $e(e,t,r,s){const{cascade:a}=t;if(a.update===K.CASCADE)return ke.call(this,e,t,r,s)}async function je(e,t,r,s){if(t.cascade.delete!==K.CASCADE)return;const a=s[r];if(!a||!a.length)return;const i=typeof a[0];if(!a.every(e=>typeof e===i))throw new o(`Invalid operation. All elements of property ${r} must match the same type.`);const n="object"===i,c=n?me.forModel(a[0],this.adapter.alias):Ie(s,r,this.adapter.alias),l=new Set([...n?a.map(e=>e[c.pk]):a]);for(const t of l.values()){const a=await c.delete(t);await Ce(e,s,r,t,a)}s[r]=[...l]}function Le(e,t,r){return[J.POPULATE,e,t,r].join(".")}async function Ce(e,t,r,s,a){const i=Le(t.constructor.name,r,s);return e.accumulate({[i]:a})}async function Be(e,t,r,s){if(!t.populate)return;const a=s[r],i=Array.isArray(a);if(void 0===a||i&&0===a.length)return;const n=await(async(e,t,r,s,a)=>{let i,n;const c=[];for(const l of s){i=Le(t.constructor.name,r,l);try{n=await e.get(i)}catch(e){const s=Ie(t,r,a);if(!s)throw new o("Could not find repo");n=await s.read(l)}c.push(n)}return c})(e,s,r,i?a:[a],this.adapter.alias);s[r]=i?n:n[0]}const Me=["array","string","number","boolean","symbol","function","object","undefined","null","bigint"];function Ie(e,t,r){const s=Reflect.getMetadata(B.key(Array.isArray(e[t])?M.LIST:M.TYPE),e,t),a=Array.isArray(e[t])?s.clazz:s.customTypes;if(!s||!a)throw new o("Failed to find types decorators for property "+t);const i=(Array.isArray(a)?[...a]:[a]).map(e=>"function"==typeof e?e():e).find(e=>!Me.includes((""+e).toLowerCase()));if(!i)throw new o(`Property key ${t} does not have a valid constructor type`);const n=D.get(i);if(!n)throw new o("No registered model found for "+i);return me.forModel(n,r)}function Fe(e){return t=>{const r=ce.key(J.TABLE);return k.for(r).define({decorator:W,args:[r,e||t.name.toLowerCase()]}).apply()(t)}}function Ue(e){const t=ce.key(J.COLUMN);return k.for(t).define({decorator:(e,t)=>(r,s)=>I(e,t||s)(r,s),args:[t,e]}).apply()}function He(e,t,r){return k.for(J.INDEX).define({decorator:(e,t,r)=>("string"==typeof e&&(r=e,e=void 0,t=void 0),"string"==typeof t&&(r=t,t=void 0),!t&&e&&e.find(e=>![Z.ASC,Z.DSC].includes(e))&&(t=e,e=void 0),I(me.key(`${J.INDEX}${t&&t.length?"."+t.join("."):""}`),{directions:e,compositions:t,name:r})),args:[e,t,r]}).apply()}async function Ge(e,t,r,s){if(s[r]&&(await this.select().where(ye.attribute(r).eq(s[r])).execute()).length)throw new O(`model already exists with property ${r} equal to ${JSON.stringify(s[r],void 0,2)}`)}function Ye(){const e=me.key(J.UNIQUE);return k.for(e).define(A(Ge),I(e,{})).apply()}async function qe(e,t,r,s){throw new te("This adapter does not support user identification")}function ze(){const e=me.key(J.CREATED_BY);return k.for(e).define(E(qe),I(e,{})).apply()}function Ve(){const e=me.key(J.UPDATED_BY);return k.for(e).define(A(qe),I(e,{})).apply()}function Qe(){return T([u.CREATE])}function We(){return T()}function Xe(e,t=le,r=!0,s,a){const i=me.key(J.ONE_TO_ONE);return k.for(i).define({decorator:(e,t,r,s,a)=>{const n={class:e.name?e.name:e,cascade:t,populate:r};return s&&(n.joinTable=s),a&&(n.name=a),Q(F(J.RELATIONS),U([e.name?e.name:e,String.name,Number.name,BigInt.name]),E(De,n),N(Se,n),_(xe,n),R(Be,n),I(i,n))},args:[e,t,r,s,a]}).apply()}function Je(e,t=le,r=!0,s,a){const i=me.key(J.ONE_TO_MANY);return k.for(i).define({decorator:(e,t,r,s,a)=>{const n={class:e.name?e.name:e,cascade:t,populate:r};return s&&(n.joinTable=s),a&&(n.name=a),Q(F(J.RELATIONS),H([e,String,Number,BigInt]),E(ke,n),N($e,n),_(je,n),R(Be,n),I(i,n))},args:[e,t,r,s,a]}).apply()}function Ze(e,t=le,r=!0,s,a){const i=me.key(J.MANY_TO_ONE);return k.for(i).define({decorator:(e,t,r,s,a)=>{const n={class:e?.name?e.name:e,cascade:t,populate:r};return s&&(n.joinTable=s),a&&(n.name=a),Q(F(J.RELATIONS),U([()=>(e?.name?e:e()).name,String.name,Number.name,BigInt.name]),I(i,n))},args:[e,t,r,s,a]}).apply()}function Ke(e,t=le,r=!0,s,a){const i=me.key(J.MANY_TO_MANY);return k.for(i).define({decorator:(e,t,r,s,a)=>{const n={class:e.name?e.name:e,cascade:t,populate:r};return s&&(n.joinTable=s),a&&(n.name=a),Q(F(J.RELATIONS),H([e.name?e.name:e,String.name,Number.name,BigInt.name]),I(i,n))},args:[e,t,r,s,a]}).apply()}function et(...e){return(t,r)=>{const s=q.get(t,q.key(J.NO_VALIDATE,r))||[],a=[...new Set([...s,...e])];return z(V(q.key(J.NO_VALIDATE,r),a))(t,r)}}function tt(){return et(u.CREATE)}function rt(){return et(u.UPDATE)}function st(){return et(u.UPDATE,u.CREATE)}async function at(e,t,r,s){if(!t.type||!t.generated||s[r])return;let a;t.name||(t.name=oe(s,"pk"));try{a=await this.adapter.Sequence(t)}catch(e){throw new o(`Failed to instantiate Sequence ${t.name}: ${e}`)}const i=await a.next();Object.defineProperty(s,r,{enumerable:!0,writable:!1,configurable:!0,value:i})}function it(e=Ne){e=Object.assign({},Ne,e,{generated:!(!e.type||void 0!==e.generated)||e.generated||Ne.generated});const t=me.key(h.ID);return k.for(t).define({decorator:(e,r)=>(s,a)=>Q(He([Z.ASC,Z.DSC]),L(),P(),I(t,e),E(at,e,r),I(h.ID,a))(s,a),args:[e,{priority:60}]}).apply()}class nt extends D{constructor(e){super(e)}}a([Qe(),i("design:type",Date)],nt.prototype,"createdOn",void 0),a([We(),i("design:type",Date)],nt.prototype,"updatedOn",void 0);class ot{get current(){return this._currentPage}get total(){return this._totalPages}get count(){return this._recordCount}get statement(){return this._statement||(this._statement=this.prepare(this.query)),this._statement}constructor(e,t,r,s){this.adapter=e,this.query=t,this.size=r,this.clazz=s}async next(){return this.page(this.current+1)}async previous(){return this.page(this.current-1)}validatePage(e){if(1>e||!Number.isInteger(e))throw new ge("Page number cannot be under 1 and must be an integer");if(void 0!==this._totalPages&&e>this._totalPages)throw new ge(`Only ${this._totalPages} are available. Cannot go to page ${e}`);return e}}var ct,lt,dt,ut,pt;class ht extends G{constructor(e){super(),this.adapter=e}get log(){return this.adapter.log.for(ht)}select(e){return Object.defineProperty(this,"selectSelector",{value:e,writable:!1}),this}distinct(e){return this.distinctSelector=e,this}max(e){return this.maxSelector=e,this}min(e){return this.minSelector=e,this}count(e){return this.countSelector=e,this}from(e){if(this.fromSelector="string"==typeof e?D.get(e):e,!this.fromSelector)throw new fe("Could not find selector model: "+e);return this}where(e){return this.whereCondition=e,this}orderBy(e){return this.orderBySelector=e,this}groupBy(e){return this.groupBySelector=e,this}limit(e){return this.limitSelector=e,this}offset(e){return this.offsetSelector=e,this}async execute(){try{const e=this.build();return await this.raw(e)}catch(e){throw new o(e)}}async raw(e){const t=await this.adapter.raw(e);if(!this.selectSelector)return t;const r=b(new this.fromSelector).id,s=function(e){const t=e[r];return this.adapter.revert(e,this.fromSelector,r,t)}.bind(this);return Array.isArray(t)?t.map(s):s(t)}}a([ee(),i("design:type",Function),i("design:paramtypes",[Array]),i("design:returntype",Object)],ht.prototype,"select",null),a([ee(),i("design:type",Function),i("design:paramtypes",["function"==typeof(ct="undefined"!=typeof S&&S)?ct:Object]),i("design:returntype",Object)],ht.prototype,"distinct",null),a([ee(),i("design:type",Function),i("design:paramtypes",["function"==typeof(lt="undefined"!=typeof S&&S)?lt:Object]),i("design:returntype",Object)],ht.prototype,"max",null),a([ee(),i("design:type",Function),i("design:paramtypes",["function"==typeof(dt="undefined"!=typeof S&&S)?dt:Object]),i("design:returntype",Object)],ht.prototype,"min",null),a([ee(),i("design:type",Function),i("design:paramtypes",["function"==typeof(ut="undefined"!=typeof S&&S)?ut:Object]),i("design:returntype",Object)],ht.prototype,"count",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",Object)],ht.prototype,"from",null),a([ee(),i("design:type",Function),i("design:paramtypes",[ye]),i("design:returntype",Object)],ht.prototype,"where",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Array]),i("design:returntype",Object)],ht.prototype,"orderBy",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",Object)],ht.prototype,"groupBy",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Number]),i("design:returntype",Object)],ht.prototype,"limit",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Number]),i("design:returntype",Object)],ht.prototype,"offset",null),a([ee(),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",Promise)],ht.prototype,"execute",null),(e=>{e.FIND_BY="findBy",e.SELECT="Select",e.AND="And",e.OR="Or",e.GROUP_BY="GroupBy",e.ORDER_BY="OrderBy",e.THEN="Then",e.THEN_BY="ThenBy"})(pt||(pt={}));const ft={Equals:(e,t)=>ye.attribute(e).eq(t),Diff:(e,t)=>ye.attribute(e).dif(t),LessThan:(e,t)=>ye.attribute(e).lt(t),LessThanEqual:(e,t)=>ye.attribute(e).lte(t),GreaterThan:(e,t)=>ye.attribute(e).gt(t),GreaterThanEqual:(e,t)=>ye.attribute(e).gte(t),Between:(e,t,r)=>ye.attribute(e).gte(t).and(ye.attribute(e).lte(r)),In:(e,t)=>ye.attribute(e).in(t),Matches:(e,t)=>ye.attribute(e).regexp(t)},gt=e=>e.charAt(0).toLowerCase()+e.slice(1);class yt{static build(e,...t){if(!e.startsWith(pt.FIND_BY))throw Error("Unsupported method "+e);const r=this.extractCore(e),s=this.extractSelect(e),a=this.extractGroupBy(e),i=this.buildWhere(r,t),{orderBy:n,limit:o,offset:c}=this.extractOrderLimitOffset(r,t);return{action:"find",select:s,where:i,groupBy:a,orderBy:n,limit:o,offset:c}}static extractCore(e){const t=e.substring(pt.FIND_BY.length),r=t.match(/(Then[A-Z]|OrderBy|GroupBy|Limit|Offset)/);return r?t.substring(0,r.index):t}static extractSelect(e){const t=e.indexOf(pt.SELECT);if(-1===t)return;const r=e.substring(t+pt.SELECT.length),s=r.match(/(Then[A-Z]|OrderBy|GroupBy|Limit|Offset)/);return(s?r.substring(0,s.index):r).split(pt.AND).map(gt).filter(Boolean)}static extractGroupBy(e){const t=e.indexOf(pt.GROUP_BY);if(-1!==t)return e.substring(t+pt.GROUP_BY.length).split(pt.ORDER_BY)[0].split(pt.THEN_BY).map(gt).filter(Boolean)}static buildWhere(e,t){const r=(e.split(/OrderBy|GroupBy/)[0]||"").split(/And|Or/),s=e.match(/And|Or/g)||[];let a;if(r.forEach((e,r)=>{const{field:i,operator:n}=this.parseFieldAndOperator(e),o=n?ft[n]:ft.Equals;if(!o)throw Error("Unsupported operator "+n);const c=t[r];if(void 0===c)throw Error("Invalid value for field "+i);const l=o(i,c);a=0===r?l:s[r-1]===pt.AND?a.and(l):a.or(l)}),!a)throw Error("No conditions found in method name");return a}static parseFieldAndOperator(e){for(const t of Object.keys(ft))if(e.endsWith(t)){const r=e.slice(0,-t.length);return{field:gt(r),operator:t}}return{field:gt(e)}}static extractOrderLimitOffset(e,t){const r=e.split(/And|Or/).length,s=t.slice(r);let a,i,n;return s.length>=1&&Array.isArray(s[0])&&(a=s[0]),2>s.length||"number"!=typeof s[1]||(i=s[1]),3>s.length||"number"!=typeof s[2]||(n=s[2]),{orderBy:a,limit:i,offset:n}}}function bt(e={}){return(t,r,s)=>{const a=r.toString();s.value=function(...t){const{select:r,where:s,groupBy:i,orderBy:n,limit:o,offset:c}=yt.build(a,...t);let l=this.select(r);s&&(l=l.where(s));const{allowLimit:d,allowOffset:u,allowOrderBy:p,throws:h}={allowLimit:!0,allowOrderBy:!0,allowOffset:!0,throws:!0,...e},f=[{key:"orderBy",value:(n||[])[0],allowed:p},{key:"limit",value:o,allowed:d},{key:"offset",value:c,allowed:u}];for(const e of f)if(void 0!==e.value){if(!e.allowed&&h)throw new fe(e.key[0].toUpperCase()+e.key.slice(1)+" is not allowed for this query");e.allowed&&(l=l[e.key](e.value))}return l.execute()}}}t.setRegistry(new ve);const mt="##VERSION##",wt="##PACKAGE##";q.registerLibrary(wt,mt);export{ce as Adapter,te as AuthorizationError,nt as BaseModel,Re as BigIntSequence,K as Cascade,ye as Condition,se as ConnectionError,le as DefaultCascade,Ne as DefaultSequenceOptions,Oe as Dispatch,re as ForbiddenError,he as GroupOperator,ve as InjectablesRegistry,yt as MethodQueryBuilder,Te as NoneSequenceOptions,_e as NumericSequence,Ee as ObserverError,ae as ObserverHandler,pe as Operator,ft as OperatorsMap,Z as OrderDirection,wt as PACKAGE_NAME,ot as Paginator,ge as PagingError,J as PersistenceKeys,pt as QueryClause,fe as QueryError,me as Repository,ue as Sequence,ht as Statement,de as UnsupportedError,mt as VERSION,Ce as cacheModelForPopulate,Ue as column,Pe as createOrUpdate,Qe as createdAt,ze as createdBy,qe as createdByOnCreateUpdate,ee as final,we as generateInjectableNameForRepository,ne as getColumnName,Le as getPopulateKey,ie as getTableName,He as index,Ke as manyToMany,Ze as manyToOne,et as noValidateOn,tt as noValidateOnCreate,st as noValidateOnCreateUpdate,rt as noValidateOnUpdate,Je as oneToMany,ke as oneToManyOnCreate,je as oneToManyOnDelete,$e as oneToManyOnUpdate,Xe as oneToOne,De as oneToOneOnCreate,xe as oneToOneOnDelete,Se as oneToOneOnUpdate,it as pk,at as pkOnCreate,Be as populate,bt as query,Ae as repository,Ie as repositoryFromTypeMetadata,oe as sequenceNameForModel,Fe as table,Ye as unique,Ge as uniqueOnCreateUpdate,We as updatedAt,Ve as updatedBy,be as uses};
1
+ import{InjectableRegistryImp as e,Injectables as t,inject as r,injectable as s}from"@decaf-ts/injectable-decorators";import{__decorate as a,__metadata as i}from"tslib";import{BadRequestError as n,InternalError as o,OperationKeys as c,BulkCrudOperationKeys as l,Repository as d,Context as u,DefaultRepositoryFlags as p,modelToTransient as h,DBKeys as f,wrapMethodWithContext as g,enforceDBDecorators as y,ValidationError as b,findPrimaryKey as m,DefaultSeparator as w,NotFoundError as v,ConflictError as O,onCreateUpdate as A,onCreate as E,timestamp as T,onUpdate as N,onDelete as _,afterAny as R,readonly as P}from"@decaf-ts/db-decorators";import{Model as D,ModelKeys as x,Decoration as k,DefaultFlavour as $,hashObj as j,required as L,sf as M,Validation as B,ValidationKeys as C,propMetadata as I,prop as F,type as U,list as H}from"@decaf-ts/decorator-validation";import{LoggedClass as G,Logging as Y}from"@decaf-ts/logging";import{apply as q,metadata as z,Reflection as V}from"@decaf-ts/reflection";import{Metadata as Q,apply as W,metadata as X}from"@decaf-ts/decoration";var J,Z,K;function ee(){return(e,t,r)=>{if(!r)throw Error("final decorator can only be used on methods");return r?.configurable&&(r.configurable=!1),r}}(e=>{e.INDEX="index",e.UNIQUE="unique",e.ADAPTER="adapter",e.INJECTABLE="decaf_{0}_adapter_for_{1}",e.TABLE="table",e.COLUMN="column",e.METADATA="__metadata",e.OWNERSHIP="ownership",e.CREATED_BY="ownership.created-by",e.UPDATED_BY="ownership.updated-by",e.RELATIONS="__relations",e.RELATION="relation",e.ONE_TO_ONE="relation.one-to-one",e.ONE_TO_MANY="relation.one-to-many",e.MANY_TO_ONE="relation.many-to-one",e.MANY_TO_MANY="relation.many-to-many",e.POPULATE="populate",e.NO_VALIDATE="no-validate"})(J||(J={}));class te extends n{constructor(e,t=te.name,r=401){super(e,t,r)}}class re extends te{constructor(e,t=re.name){super(e,t,403)}}class se extends o{constructor(e){super(e,se.name,503)}}class ae{constructor(){this.observers=[]}count(){return this.observers.length}observe(e,t){if(-1!==this.observers.map(e=>e.observer).indexOf(e))throw new o("Observer already registered");this.observers.push({observer:e,filter:t})}unObserve(e){const t=this.observers.map(e=>e.observer).indexOf(e);if(-1===t)throw new o("Failed to find Observer");this.observers.splice(t,1)}async updateObservers(e,t,r,s,...a){(await Promise.allSettled(this.observers.filter(a=>{const{filter:i}=a;if(!i)return!0;try{return i(t,r,s)}catch(t){return e.error(`Failed to filter observer ${a.observer.toString()}: ${t}`),!1}}).map(e=>{e.observer.refresh(t,r,s,...a)}))).forEach((t,r)=>{"rejected"===t.status&&e.error(`Failed to update observable ${this.observers[r].toString()}: ${t.reason}`)})}}class ie extends o{constructor(e){super(e,ie.name,500)}}class ne extends G{constructor(){super()}async initialize(){if(!this.adapter)return void this.log.verbose("No adapter observed for dispatch; skipping initialization");const e=this.adapter;[c.CREATE,c.UPDATE,c.DELETE,l.CREATE_ALL,l.UPDATE_ALL,l.DELETE_ALL].forEach(t=>{if(!e[t])throw new o(`Method ${t} not found in ${e.alias} adapter to bind Observables Dispatch`);let r=Object.getOwnPropertyDescriptor(e,t),s=e;for(;!r&&s!==Object.prototype;)s=Object.getPrototypeOf(s),r=Object.getOwnPropertyDescriptor(s,t);r&&r.writable?e[t]=new Proxy(e[t],{apply:async(e,r,s)=>{const[a,i]=s,n=await e.apply(r,s);return this.updateObservers(a,(e=>{switch(e){case l.CREATE_ALL:return c.CREATE;case l.UPDATE_ALL:return c.UPDATE;case l.DELETE_ALL:return c.DELETE;default:return e}})(t),i).then(()=>{this.log.verbose(`Observer refresh dispatched by ${t} for ${a}`),this.log.debug("pks: "+i)}).catch(e=>this.log.error(`Failed to dispatch observer refresh for ${t} on ${a}: ${e}`)),n}}):this.log.error(`Could not find method ${t} to bind Observables Dispatch`)})}async close(){}observe(e){if(!(e instanceof pe))throw new ie("Only Adapters can be observed by dispatch");this.adapter=e,this.models=pe.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 ie("Only the adapter that was used to observe can be unobserved");this.adapter=void 0}async updateObservers(e,t,r){if(this.adapter)try{await this.adapter.refresh(e,t,r)}catch(e){throw new o("Failed to refresh dispatch: "+e)}else this.log.verbose(`No adapter observed for dispatch; skipping observer update for ${e}:${t}`)}}function oe(e){return t=>q(z(pe.key(J.ADAPTER),e))(t)}pe&&(pe._baseDispatch=ne);class ce{get log(){return this.logger||(this.logger=Y.for(this)),this.logger}constructor(e){this.options=e}static pk(e){return ue(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 ie(`Unsupported sequence type: ${e} for adapter ${this}`)}}}function le(e){const t=e instanceof D?D.get(e.constructor.name):e;if(!t)throw new o("Unable to find model "+e);return Reflect.getOwnMetadata(pe.key(J.TABLE),t[x.MODEL]||t)||(e instanceof D?e.constructor.name:e.name)}function de(e,t){return Reflect.getMetadata(d.key(J.COLUMN),e,t)||t}function ue(e,...t){return[le(e),...t].join("_")}k.setFlavourResolver(e=>{try{return pe.flavourOf(D.isModel(e)?e.constructor:e)||pe.currentFlavour||$}catch(e){}try{return pe.currentFlavour||$}catch(e){return $}});class pe extends G{static{this._cache={}}get config(){return this._config}get alias(){return this._alias||this.flavour}repository(){if(!pe._baseRepository)throw new o("This should be overridden when necessary. Otherwise it will be replaced lazily");return pe._baseRepository}async shutdownProxies(e){if(this.proxies){if(e&&!(e in this.proxies))throw new o("No proxy found for "+e);if(e)try{await this.proxies[e].shutdown(),delete this.proxies[e]}catch(t){this.log.error(`Failed to shutdown proxied adapter ${e}: ${t}`)}else for(const e in this.proxies){try{await this.proxies[e].shutdown()}catch(t){this.log.error(`Failed to shutdown proxied adapter ${e}: ${t}`);continue}delete this.proxies[e]}}}async shutdown(){await this.shutdownProxies(),this.dispatch&&await this.dispatch.close()}constructor(e,t,r){if(super(),this._config=e,this.flavour=t,this._alias=r,this.Context=u,this.alias in pe._cache)throw new o(`${this.alias} persistence adapter ${this._alias?`(${this.flavour}) `:""} already registered`);pe._cache[this.alias]=this,this.log.info(`Created ${this.alias} persistence adapter ${this._alias?`(${this.flavour}) `:""} persistence adapter`),pe._currentFlavour||(this.log.verbose(`Defined ${this.alias} persistence adapter as current`),pe._currentFlavour=this.alias)}Dispatch(){return new pe._baseDispatch}ObserverHandler(){return new ae}isReserved(e){return!e}async initialize(...e){}async flags(e,t,r,...s){return Object.assign({},p,r,{affectedTables:le(t),writeOperation:e!==c.READ,timestamp:new Date,operation:e,ignoredValidationProperties:Q.validationExceptions(t,e)})}async context(e,t,r,...s){this.log.for(this.context).debug(`Creating new context for ${e} operation on ${r.name} model with flag overrides: ${JSON.stringify(t)}`);const a=await this.flags(e,r,t,...s);return(new this.Context).accumulate(a)}prepare(e,t){const r=this.log.for(this.prepare),s=h(e),a=Object.entries(s.model).reduce((t,[r,s])=>{if(void 0===s)return t;const a=de(e,r);if(this.isReserved(a))throw new o(`Property name ${a} is reserved`);return t[a]=s,t},{});return e[J.METADATA]&&(r.silly("Passing along persistence metadata for "+e[J.METADATA]),Object.defineProperty(a,J.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:e[J.METADATA]})),{record:a,id:e[t],transient:s.transient}}revert(e,t,r,s,a){const i=this.log.for(this.revert),n={};n[r]=s;const c="string"==typeof t?D.build(n,t):new t(n);i.silly(`Rebuilding model ${c.constructor.name} id ${s}`);const l=e[J.METADATA],d=Object.keys(c).reduce((t,s)=>(s===r||(t[s]=e[de(t,s)]),t),c);return a&&(i.verbose("re-adding transient properties: "+Object.keys(a).join(", ")),Object.entries(a).forEach(([e,t])=>{if(e in d)throw new o(`Transient property ${e} already exists on model ${c.constructor.name}. should be impossible`);d[e]=t})),l&&(i.silly(`Passing along ${this.flavour} persistence metadata for ${c.constructor.name} id ${s}: ${l}`),Object.defineProperty(d,J.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:l})),d}async createAll(e,t,r,...s){if(t.length!==r.length)throw new o("Ids and models must have the same length");const a=this.log.for(this.createAll);return a.verbose(`Creating ${t.length} entries ${e} table`),a.debug("pks: "+t),Promise.all(t.map((t,a)=>this.create(e,t,r[a],...s)))}async readAll(e,t,...r){const s=this.log.for(this.readAll);return s.verbose(`Reading ${t.length} entries ${e} table`),s.debug("pks: "+t),Promise.all(t.map(t=>this.read(e,t,...r)))}async updateAll(e,t,r,...s){if(t.length!==r.length)throw new o("Ids and models must have the same length");const a=this.log.for(this.updateAll);return a.verbose(`Updating ${t.length} entries ${e} table`),a.debug("pks: "+t),Promise.all(t.map((t,a)=>this.update(e,t,r[a],...s)))}async deleteAll(e,t,...r){const s=this.log.for(this.createAll);return s.verbose(`Deleting ${t.length} entries ${e} table`),s.debug("pks: "+t),Promise.all(t.map(t=>this.delete(e,t,...r)))}observe(e,t){this.observerHandler||Object.defineProperty(this,"observerHandler",{value:this.ObserverHandler(),writable:!1}),this.observerHandler.observe(e,t),this.log.for(this.observe).verbose("Registering new observer "+e.toString()),this.dispatch||(this.log.for(this.observe).info("Creating dispatch for "+this.alias),this.dispatch=this.Dispatch(),this.dispatch.observe(this))}unObserve(e){if(!this.observerHandler)throw new o("ObserverHandler not initialized. Did you register any observables?");this.observerHandler.unObserve(e),this.log.for(this.unObserve).verbose(`Observer ${e.toString()} removed`)}async updateObservers(e,t,r,...s){if(!this.observerHandler)throw new o("ObserverHandler not initialized. Did you register any observables?");this.log.for(this.updateObservers).verbose(`Updating ${this.observerHandler.count()} observers for adapter ${this.alias}`),await this.observerHandler.updateObservers(this.log,e,t,r,...s)}async refresh(e,t,r,...s){return this.updateObservers(e,t,r,...s)}toString(){return this.flavour+" persistence Adapter"}static flavourOf(e){return Reflect.getMetadata(this.key(J.ADAPTER),e)||this.current?.flavour}static get currentFlavour(){if(!pe._currentFlavour)throw new o("No persistence flavour set. Please initialize your adapter");return pe._currentFlavour}static get current(){return pe.get(this.currentFlavour)}static get(e){if(!e)return pe.get(this._currentFlavour);if(e in this._cache)return this._cache[e];throw new o(`No Adapter registered under ${e}.`)}static setCurrent(e){this._currentFlavour=e}static key(e){return d.key(e)}static models(e){try{const t=D.getRegistry().cache,r=Object.values(t).map(t=>{let r=Reflect.getMetadata(pe.key(J.ADAPTER),t);if(r&&r===e)return t;if(!r){if(!Reflect.getMetadata(d.key(f.REPOSITORY),t))return;const e=this._baseRepository.forModel(t);return r=Reflect.getMetadata(pe.key(J.ADAPTER),e),r}}).filter(e=>!!e);return r}catch(e){throw new o(e)}}static decoration(){}get client(){return this._client||(this._client=this.getClient()),this._client}for(e,...t){this.proxies||(this.proxies={});const r=`${this.alias} - ${j(e)}`;if(r in this.proxies)return this.proxies[r];let s;const a=new Proxy(this,{get:(t,r,a)=>{if("_config"===r){const s=Reflect.get(t,r,a);return Object.assign({},s,e)}return"_client"===r?s:Reflect.get(t,r,a)},set:(e,t,r,a)=>"_client"===t?(s=r,!0):Reflect.set(e,t,r,a)});return this.proxies[r]=a,a}}a([ee(),i("design:type",Function),i("design:paramtypes",[String]),i("design:returntype",Promise)],pe.prototype,"shutdownProxies",null),a([ee(),i("design:type",Function),i("design:paramtypes",[String,Object,Object,Object]),i("design:returntype",Promise)],pe.prototype,"context",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Object,Function]),i("design:returntype",void 0)],pe.prototype,"observe",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",void 0)],pe.prototype,"unObserve",null),a([ee(),i("design:type",Object),i("design:paramtypes",[])],pe.prototype,"client",null),(e=>{e.ASC="asc",e.DSC="desc"})(Z||(Z={})),(e=>{e.CASCADE="cascade",e.NONE="none"})(K||(K={}));const he={update:K.CASCADE,delete:K.NONE};var fe,ge;(e=>{e.EQUAL="EQUAL",e.DIFFERENT="DIFFERENT",e.BIGGER="BIGGER",e.BIGGER_EQ="BIGGER_EQ",e.SMALLER="SMALLER",e.SMALLER_EQ="SMALLER_EQ",e.NOT="NOT",e.IN="IN",e.REGEXP="REGEXP"})(fe||(fe={})),(e=>{e.AND="AND",e.OR="OR"})(ge||(ge={}));class ye extends o{constructor(e){super(e,ye.name,500)}}class be extends o{constructor(e){super(e,be.name,500)}}class me extends D{constructor(e,t,r){super(),this.attr1=void 0,this.operator=void 0,this.comparison=void 0,this.attr1=e,this.operator=t,this.comparison=r}and(e){return me.and(this,e)}or(e){return me.or(this,e)}not(e){return new me(this,fe.NOT,e)}hasErrors(...e){const t=()=>{const e=`Invalid operator ${this.operator}}`;if("string"==typeof this.attr1){if(this.comparison instanceof me)return{comparison:{condition:"Both sides of the comparison must be of the same type"}};if(-1===Object.values(fe).indexOf(this.operator))return{operator:{condition:e}}}if(this.attr1 instanceof me){if(!(this.comparison instanceof me)&&this.operator!==fe.NOT)return{comparison:{condition:e}};if(-1===Object.values(ge).indexOf(this.operator)&&this.operator!==fe.NOT)return{operator:{condition:e}}}},r=super.hasErrors(...e);return this.isAsync()?(async()=>await Promise.resolve(r)??t())():r??t()}static and(e,t){return me.group(e,ge.AND,t)}static or(e,t){return me.group(e,ge.OR,t)}static group(e,t,r){return new me(e,t,r)}static attribute(e){return(new me.Builder).attribute(e)}static attr(e){return this.attribute(e)}static{this.Builder=class{constructor(){this.attr1=void 0,this.operator=void 0,this.comparison=void 0}attribute(e){return this.attr1=e,this}attr(e){return this.attribute(e)}eq(e){return this.setOp(fe.EQUAL,e)}dif(e){return this.setOp(fe.DIFFERENT,e)}gt(e){return this.setOp(fe.BIGGER,e)}lt(e){return this.setOp(fe.SMALLER,e)}gte(e){return this.setOp(fe.BIGGER_EQ,e)}lte(e){return this.setOp(fe.SMALLER_EQ,e)}in(e){return this.setOp(fe.IN,e)}regexp(e){return this.setOp(fe.REGEXP,RegExp(e).source)}setOp(e,t){return this.operator=e,this.comparison=t,this.build()}build(){try{return new me(this.attr1,this.operator,this.comparison)}catch(e){throw new ye(e)}}}}static builder(){return new me.Builder}}a([L(),i("design:type",Object)],me.prototype,"attr1",void 0),a([L(),i("design:type",String)],me.prototype,"operator",void 0),a([L(),i("design:type",Object)],me.prototype,"comparison",void 0);class we extends d{static{this._cache={}}get log(){return this.logger||(this.logger=this.adapter.log.for(this.toString())),this.logger}get adapter(){if(!this._adapter)throw new o("No adapter found for this repository. did you use the @uses decorator or pass it in the constructor?");return this._adapter}get tableName(){return this._tableName||(this._tableName=we.table(this.class)),this._tableName}get pkProps(){return super.pkProps}constructor(e,t,...r){if(super(t),this.observers=[],e&&(this._adapter=e),t&&(we.register(t,this,this.adapter.alias),e)){const r=Reflect.getMetadata(pe.key(J.ADAPTER),t);if(r&&r!==e.flavour)throw new o("Incompatible flavours");oe(e.flavour)(t)}[this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(e=>{const t=e.name;g(this,this[t+"Prefix"],e,this[t+"Suffix"])})}override(e){return this.log.for(this.override).debug("Overriding repository flags with "+JSON.stringify(e)),new Proxy(this,{get:(t,r,s)=>{const a=Reflect.get(t,r,s);return"_overrides"!==r?a:Object.assign({},a,e)}})}for(e,...t){return new Proxy(this,{get:(r,s,a)=>"adapter"===s?this.adapter.for(e,...t):Reflect.get(r,s,a)})}ObserverHandler(){return new ae}async createPrefix(e,...t){const r=await u.args(c.CREATE,this.class,t,this.adapter,this._overrides||{});e=new this.class(e),await y(this,r.context,e,c.CREATE,c.ON);const s=await Promise.resolve(e.hasErrors(...r.context.get("ignoredValidationProperties")||[]));if(s)throw new b(s.toString());return[e,...r.args]}async create(e,...t){let r,{record:s,id:a,transient:i}=this.adapter.prepare(e,this.pk);return s=await this.adapter.create(this.tableName,a,s,...t),t.length&&(r=t[t.length-1]),this.adapter.revert(s,this.class,this.pk,a,r&&r.get("rebuildWithTransient")?i:void 0)}async createSuffix(e,t){return super.createSuffix(e,t)}async createAll(e,...t){if(!e.length)return e;const r=e.map(e=>this.adapter.prepare(e,this.pk)),s=r.map(e=>e.id);let a=r.map(e=>e.record);return a=await this.adapter.createAll(this.tableName,s,a,...t),a.map((e,t)=>this.adapter.revert(e,this.class,this.pk,s[t]))}async createAllPrefix(e,...t){const r=await u.args(c.CREATE,this.class,t,this.adapter,this._overrides||{});if(!e.length)return[e,...r.args];const s=we.getSequenceOptions(e[0]);let a=[];s.type?(s.name||(s.name=ce.pk(e[0])),a=await(await this.adapter.Sequence(s)).range(e.length)):a=e.map((e,t)=>{if(void 0===e[this.pk])throw new o("Primary key is not defined for model in position "+t);return e[this.pk]}),e=await Promise.all(e.map(async(e,t)=>(e=new this.class(e),s.type&&(e[this.pk]="String"!==s.type||s.generated?a[t]:""+e[this.pk]),await y(this,r.context,e,c.CREATE,c.ON),e)));const i=r.context.get("ignoredValidationProperties")||[],n=(await Promise.all(e.map(e=>Promise.resolve(e.hasErrors(...i))))).reduce((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e),void 0);if(n)throw new b(n);return[e,...r.args]}async readPrefix(e,...t){const r=await u.args(c.READ,this.class,t,this.adapter,this._overrides||{}),s=new this.class;return s[this.pk]=e,await y(this,r.context,s,c.READ,c.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 u.args(c.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,y(this,r.context,t,c.READ,c.ON)})),[e,...r.args]}async readAll(e,...t){return(await this.adapter.readAll(this.tableName,e,...t)).map((t,r)=>this.adapter.revert(t,this.class,this.pk,e[r]))}async update(e,...t){let{record:r,id:s,transient:a}=this.adapter.prepare(e,this.pk);return r=await this.adapter.update(this.tableName,s,r,...t),this.adapter.revert(r,this.class,this.pk,s,a)}async updatePrefix(e,...t){const r=await u.args(c.UPDATE,this.class,t,this.adapter,this._overrides||{}),s=e[this.pk];if(!s)throw new o("No value for the Id is defined under the property "+this.pk);const a=await this.read(s,...r.args);e=this.merge(a,e),await y(this,r.context,e,c.UPDATE,c.ON,a);const i=await Promise.resolve(e.hasErrors(a,...we.relations(this.class),...r.context.get("ignoredValidationProperties")||[]));if(i)throw new b(i.toString());return we.getMetadata(a)&&(we.getMetadata(e)||we.setMetadata(e,we.getMetadata(a))),[e,...r.args]}async updateAll(e,...t){const r=e.map(e=>this.adapter.prepare(e,this.pk));return(await this.adapter.updateAll(this.tableName,r.map(e=>e.id),r.map(e=>e.record),...t)).map((e,t)=>this.adapter.revert(e,this.class,this.pk,r[t].id))}async updateAllPrefix(e,...t){const r=await u.args(c.UPDATE,this.class,t,this.adapter,this._overrides||{}),s=e.map(e=>{const t=e[this.pk];if(!t)throw new o("missing id on update operation");return t}),a=await this.readAll(s,...r.args);e=e.map((e,t)=>(e=this.merge(a[t],e),we.getMetadata(a[t])&&(we.getMetadata(e)||we.setMetadata(e,we.getMetadata(a[t]))),e)),await Promise.all(e.map((e,t)=>y(this,r.context,e,c.UPDATE,c.ON,a[t])));const i=r.context.get("ignoredValidationProperties")||[],n=(await Promise.all(e.map((e,t)=>Promise.resolve(e.hasErrors(a[t],e,...i))))).reduce((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e),void 0);if(n)throw new b(n);return e.forEach((e,t)=>{we.getMetadata(a[t])&&(we.getMetadata(e)||we.setMetadata(e,we.getMetadata(a[t])))}),[e,...r.args]}async deletePrefix(e,...t){const r=await u.args(c.DELETE,this.class,t,this.adapter,this._overrides||{}),s=await this.read(e,...r.args);return await y(this,r.context,s,c.DELETE,c.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 u.args(c.DELETE,this.class,t,this.adapter,this._overrides||{}),s=await this.readAll(e,...r.args);return await Promise.all(s.map(async e=>y(this,r.context,e,c.DELETE,c.ON))),[e,...r.args]}async deleteAll(e,...t){return(await this.adapter.deleteAll(this.tableName,e,...t)).map((t,r)=>this.adapter.revert(t,this.class,this.pk,e[r]))}select(e){return this.adapter.Statement().select(e).from(this.class)}async query(e,t,r=Z.ASC,s,a){const i=[t,r],n=this.select().where(e).orderBy(i);return s&&n.limit(s),a&&n.offset(a),n.execute()}attr(e){return me.attr(e)}observe(e,t){this.observerHandler||Object.defineProperty(this,"observerHandler",{value:this.ObserverHandler(),writable:!1});const r=this.log.for(this.observe),s=we.table(this.class);this.adapter.observe(this,e=>s===e),r.verbose(`now observing ${this.adapter} filtering on table === ${s}`),this.observerHandler.observe(e,t),r.verbose("Registered new observer "+e.toString())}unObserve(e){if(!this.observerHandler)throw new o("ObserverHandler not initialized. Did you register any observables?");this.observerHandler.unObserve(e),this.log.for(this.unObserve).verbose(`Observer ${e.toString()} removed`),this.observerHandler.count()||(this.log.verbose(`No more observers registered for ${this.adapter}, unsubscribing`),this.adapter.unObserve(this),this.log.verbose("No longer observing adapter "+this.adapter.flavour))}async updateObservers(e,t,r,...s){if(!this.observerHandler)throw new o("ObserverHandler not initialized. Did you register any observables?");this.log.for(this.updateObservers).verbose(`Updating ${this.observerHandler.count()} observers for ${this}`),await this.observerHandler.updateObservers(this.log,e,t,Array.isArray(r)?r.map(e=>ce.parseValue(this.pkProps.type,e)):ce.parseValue(this.pkProps.type,r),...s)}async refresh(e,t,r,...s){return this.updateObservers(e,t,r,...s)}static forModel(e,t,...r){let s;const a=t||Reflect.getMetadata(pe.key(J.ADAPTER),e)||pe.currentFlavour;try{s=this.get(e,a)}catch(e){s=void 0}if(s instanceof we)return s;const i=t||Reflect.getMetadata(pe.key(J.ADAPTER),e)||s&&Reflect.getMetadata(pe.key(J.ADAPTER),s)||pe.currentFlavour,n=i?pe.get(i):void 0;if(!n)throw new o("No registered persistence adapter found flavour "+i);return s=s||n.repository(),new s(n,e,...r)}static get(e,t){const r=we.table(e);let s=r;if(t&&(s=[r,t].join(w)),s in this._cache)return this._cache[s];if(r in this._cache)return this._cache[r];throw new o("Could not find repository registered under "+r)}static register(e,t,r){let s=we.table(e);if(r&&(s=[s,r].join(w)),s in this._cache&&this._cache[s]instanceof we)throw new o(s+" already has a registered instance");this._cache[s]=t}static setMetadata(e,t){Object.defineProperty(e,J.METADATA,{enumerable:!1,configurable:!0,writable:!1,value:t})}static getMetadata(e){const t=Object.getOwnPropertyDescriptor(e,J.METADATA);return t?t.value:void 0}static removeMetadata(e){Object.getOwnPropertyDescriptor(e,J.METADATA)&&delete e[J.METADATA]}static getSequenceOptions(e){const t=m(e).id,r=Reflect.getMetadata(we.key(f.ID),e,t);if(!r)throw new o("No sequence options defined for model. did you use the @pk decorator?");return r}static indexes(e){const t=V.getAllPropertyDecorators(e instanceof D?e:new e,f.REFLECT);return Object.entries(t||{}).reduce((e,[t,r])=>{const s=r.filter(e=>e.key.startsWith(J.INDEX));if(s&&s.length)for(const r of s){const{key:s,props:a}=r;e[t]=e[t]||{},e[t][s]=a}return e},{})}static relations(e){const t=[];let r=e instanceof D?Object.getPrototypeOf(e):e.prototype;for(;null!=r;){const e=r[J.RELATIONS];e&&t.push(...e),r=Object.getPrototypeOf(r)}return t}static table(e){return le(e)}static column(e,t){return de(e,t)}}function ve(e,t){if(!t){const r=pe.key(J.ADAPTER);if(!(t=Reflect.getMetadata(r,e instanceof D?e.constructor:e)))throw new o("Could not retrieve flavour from model "+(e instanceof D?e.constructor.name:e.name))}return M(J.INJECTABLE,t,le(e))}a([ee(),i("design:type",Function),i("design:paramtypes",[Object,Function]),i("design:returntype",void 0)],we.prototype,"observe",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",void 0)],we.prototype,"unObserve",null),pe&&(pe._baseRepository=we);class Oe extends e{get log(){return this.logger||(this.logger=Y.for(this)),this.logger}constructor(){super()}get(e,r){const s=this.log.for(this.get);let a;try{a=super.get(e)}catch{}if(!a){let i;if("function"==typeof e?i=e:"symbol"!=typeof e&&"string"!=typeof e||(i=D.get(e.toString())),!i)return;const n=pe.key(J.ADAPTER),o=r||Reflect.getMetadata(n,i);try{let e=o;try{o&&pe.get(o)}catch{const t=pe.current;t&&t.flavour===o&&(e=t.alias)}if(a=we.forModel(i,e),a instanceof we)return a;const r=o||Reflect.getMetadata(n,a.constructor)||Reflect.getMetadata(n,i);t.register(a,ve(i,r))}catch(e){s.debug("No registered repository or adapter found. falling back to default adapter. Error: "+(e?.message||JSON.stringify(e)));const t=we.get(i,o);if("function"==typeof t){const e=o?pe.get(o):pe.current;if(!e)return;return new t(e,i)}}}return a}}function Ae(e,t){return(a,i)=>i?r(e[x.ANCHOR]||e)(a,i):(z(we.key(f.REPOSITORY),a.name)(e),t=t||Reflect.getMetadata(pe.key(J.ADAPTER),a),we.register(e[x.ANCHOR]||e,a,t),s(e[x.ANCHOR]||e,{callback:t=>(Object.defineProperty(t,f.CLASS,{enumerable:!1,configurable:!1,writable:!1,value:e}),t)})(a))}Q.validationExceptions=((e,t)=>{const r=Q.get(e,J.NO_VALIDATE);return r?Object.entries(r).filter(([,e])=>e.includes(t)).map(([e])=>e):[]}).bind(Q);class Ee extends o{constructor(e){super(e,Ee.name,500)}}const Te={type:void 0,generated:!1,startWith:0,incrementBy:1,cycle:!1},Ne=Te,_e={type:"Number",generated:!0,startWith:0,incrementBy:1,cycle:!1},Re=Object.assign({},_e,{type:"BigInt"});async function Pe(e,t,r,s){if(!s){const t=D.get(e.constructor.name);if(!t)throw new o("Could not find model "+e.constructor.name);s=we.forModel(t,r)}if(void 0===e[s.pk])return s.create(e,t);try{return s.update(e,t)}catch(r){if(!(r instanceof v))throw r;return s.create(e,t)}}async function De(e,t,r,s){const a=s[r];if(!a)return;if("object"!=typeof a){const t=Ie(s,r,this.adapter.alias),i=await t.read(a);return await Me(e,s,r,a,i),void(s[r]=a)}t.class="string"==typeof t.class?t.class:t.class().name;const i=D.get(t.class);if(!i)throw new o("Could not find model "+t.class);const n=we.forModel(i,this.adapter.alias),c=await n.create(a),l=m(c).id;await Me(e,s,r,c[l],c),s[r]=c[l]}async function Se(e,t,r,s){const a=s[r];if(!a)return;if(t.cascade.update!==K.CASCADE)return;if("object"!=typeof a){const t=Ie(s,r,this.adapter.alias),i=await t.read(a);return await Me(e,s,r,a,i),void(s[r]=a)}const i=await Pe(s[r],e,this.adapter.alias),n=m(i).id;await Me(e,s,r,i[n],i),s[r]=i[n]}async function xe(e,t,r,s){const a=s[r];if(!a)return;if(t.cascade.update!==K.CASCADE)return;const i=Ie(s,r,this.adapter.alias);let n;n=a instanceof D?await i.delete(s[r][i.pk]):await i.delete(s[r]),await Me(e,s,r,n[i.pk],n)}async function ke(e,t,r,s){const a=s[r];if(!a||!a.length)return;const i=typeof a[0];if(!a.every(e=>typeof e===i))throw new o(`Invalid operation. All elements of property ${r} must match the same type.`);const n=new Set([...a]);if("object"!==i){const t=Ie(s,r,this.adapter.alias);for(const a of n){const i=await t.read(a);await Me(e,s,r,a,i)}return void(s[r]=[...n])}const c=m(a[0]).id,l=new Set;for(const t of a){const a=await Pe(t,e,this.adapter.alias);await Me(e,s,r,a[c],a),l.add(a[c])}s[r]=[...l]}async function $e(e,t,r,s){const{cascade:a}=t;if(a.update===K.CASCADE)return ke.call(this,e,t,r,s)}async function je(e,t,r,s){if(t.cascade.delete!==K.CASCADE)return;const a=s[r];if(!a||!a.length)return;const i=typeof a[0];if(!a.every(e=>typeof e===i))throw new o(`Invalid operation. All elements of property ${r} must match the same type.`);const n="object"===i,c=n?we.forModel(a[0],this.adapter.alias):Ie(s,r,this.adapter.alias),l=new Set([...n?a.map(e=>e[c.pk]):a]);for(const t of l.values()){const a=await c.delete(t);await Me(e,s,r,t,a)}s[r]=[...l]}function Le(e,t,r){return[J.POPULATE,e,t,r].join(".")}async function Me(e,t,r,s,a){const i=Le(t.constructor.name,r,s);return e.accumulate({[i]:a})}async function Be(e,t,r,s){if(!t.populate)return;const a=s[r],i=Array.isArray(a);if(void 0===a||i&&0===a.length)return;const n=await(async(e,t,r,s,a)=>{let i,n;const c=[];for(const l of s){i=Le(t.constructor.name,r,l);try{n=await e.get(i)}catch(e){const s=Ie(t,r,a);if(!s)throw new o("Could not find repo");n=await s.read(l)}c.push(n)}return c})(e,s,r,i?a:[a],this.adapter.alias);s[r]=i?n:n[0]}const Ce=["array","string","number","boolean","symbol","function","object","undefined","null","bigint"];function Ie(e,t,r){const s=Reflect.getMetadata(B.key(Array.isArray(e[t])?C.LIST:C.TYPE),e,t),a=Array.isArray(e[t])?s.clazz:s.customTypes;if(!s||!a)throw new o("Failed to find types decorators for property "+t);const i=(Array.isArray(a)?[...a]:[a]).map(e=>"function"==typeof e?e():e).find(e=>!Ce.includes((""+e).toLowerCase()));if(!i)throw new o(`Property key ${t} does not have a valid constructor type`);const n=D.get(i);if(!n)throw new o("No registered model found for "+i);return we.forModel(n,r)}function Fe(e){return t=>{const r=pe.key(J.TABLE);return k.for(r).define({decorator:z,args:[r,e||t.name.toLowerCase()]}).apply()(t)}}function Ue(e){const t=pe.key(J.COLUMN);return k.for(t).define({decorator:(e,t)=>(r,s)=>I(e,t||s)(r,s),args:[t,e]}).apply()}function He(e,t,r){return k.for(J.INDEX).define({decorator:(e,t,r)=>("string"==typeof e&&(r=e,e=void 0,t=void 0),"string"==typeof t&&(r=t,t=void 0),!t&&e&&e.find(e=>![Z.ASC,Z.DSC].includes(e))&&(t=e,e=void 0),I(we.key(`${J.INDEX}${t&&t.length?"."+t.join("."):""}`),{directions:e,compositions:t,name:r})),args:[e,t,r]}).apply()}async function Ge(e,t,r,s){if(s[r]&&(await this.select().where(me.attribute(r).eq(s[r])).execute()).length)throw new O(`model already exists with property ${r} equal to ${JSON.stringify(s[r],void 0,2)}`)}function Ye(){const e=we.key(J.UNIQUE);return k.for(e).define(A(Ge),I(e,{})).apply()}async function qe(e,t,r,s){throw new te("This adapter does not support user identification")}function ze(){const e=we.key(J.CREATED_BY);return k.for(e).define(E(qe),I(e,{})).apply()}function Ve(){const e=we.key(J.UPDATED_BY);return k.for(e).define(A(qe),I(e,{})).apply()}function Qe(){return T([c.CREATE])}function We(){return T()}function Xe(e,t=he,r=!0,s,a){const i=we.key(J.ONE_TO_ONE);return k.for(i).define({decorator:(e,t,r,s,a)=>{const n={class:e.name?e.name:e,cascade:t,populate:r};return s&&(n.joinTable=s),a&&(n.name=a),q(F(J.RELATIONS),U([e.name?e.name:e,String.name,Number.name,BigInt.name]),E(De,n),N(Se,n),_(xe,n),R(Be,n),I(i,n))},args:[e,t,r,s,a]}).apply()}function Je(e,t=he,r=!0,s,a){const i=we.key(J.ONE_TO_MANY);return k.for(i).define({decorator:(e,t,r,s,a)=>{const n={class:e.name?e.name:e,cascade:t,populate:r};return s&&(n.joinTable=s),a&&(n.name=a),q(F(J.RELATIONS),H([e,String,Number,BigInt]),E(ke,n),N($e,n),_(je,n),R(Be,n),I(i,n))},args:[e,t,r,s,a]}).apply()}function Ze(e,t=he,r=!0,s,a){const i=we.key(J.MANY_TO_ONE);return k.for(i).define({decorator:(e,t,r,s,a)=>{const n={class:e?.name?e.name:e,cascade:t,populate:r};return s&&(n.joinTable=s),a&&(n.name=a),q(F(J.RELATIONS),U([()=>(e?.name?e:e()).name,String.name,Number.name,BigInt.name]),I(i,n))},args:[e,t,r,s,a]}).apply()}function Ke(e,t=he,r=!0,s,a){const i=we.key(J.MANY_TO_MANY);return k.for(i).define({decorator:(e,t,r,s,a)=>{const n={class:e.name?e.name:e,cascade:t,populate:r};return s&&(n.joinTable=s),a&&(n.name=a),q(F(J.RELATIONS),H([e.name?e.name:e,String.name,Number.name,BigInt.name]),I(i,n))},args:[e,t,r,s,a]}).apply()}function et(...e){return(t,r)=>{const s=Q.get(t,Q.key(J.NO_VALIDATE,r))||[],a=[...new Set([...s,...e])];return W(X(Q.key(J.NO_VALIDATE,r),a))(t,r)}}function tt(){return et(c.CREATE)}function rt(){return et(c.UPDATE)}function st(){return et(c.UPDATE,c.CREATE)}async function at(e,t,r,s){if(!t.type||!t.generated||s[r])return;let a;t.name||(t.name=ue(s,"pk"));try{a=await this.adapter.Sequence(t)}catch(e){throw new o(`Failed to instantiate Sequence ${t.name}: ${e}`)}const i=await a.next();Object.defineProperty(s,r,{enumerable:!0,writable:!1,configurable:!0,value:i})}function it(e=Ne){e=Object.assign({},Ne,e,{generated:!(!e.type||void 0!==e.generated)||e.generated||Ne.generated});const t=we.key(f.ID);return k.for(t).define({decorator:(e,r)=>(s,a)=>q(He([Z.ASC,Z.DSC]),L(),P(),I(t,e),E(at,e,r),I(f.ID,a))(s,a),args:[e,{priority:60}]}).apply()}class nt extends D{constructor(e){super(e)}}a([Qe(),i("design:type",Date)],nt.prototype,"createdOn",void 0),a([We(),i("design:type",Date)],nt.prototype,"updatedOn",void 0);class ot{get current(){return this._currentPage}get total(){return this._totalPages}get count(){return this._recordCount}get statement(){return this._statement||(this._statement=this.prepare(this.query)),this._statement}constructor(e,t,r,s){this.adapter=e,this.query=t,this.size=r,this.clazz=s}async next(){return this.page(this.current+1)}async previous(){return this.page(this.current-1)}validatePage(e){if(1>e||!Number.isInteger(e))throw new be("Page number cannot be under 1 and must be an integer");if(void 0!==this._totalPages&&e>this._totalPages)throw new be(`Only ${this._totalPages} are available. Cannot go to page ${e}`);return e}}var ct,lt,dt,ut,pt;class ht extends G{constructor(e){super(),this.adapter=e}get log(){return this.adapter.log.for(ht)}select(e){return Object.defineProperty(this,"selectSelector",{value:e,writable:!1}),this}distinct(e){return this.distinctSelector=e,this}max(e){return this.maxSelector=e,this}min(e){return this.minSelector=e,this}count(e){return this.countSelector=e,this}from(e){if(this.fromSelector="string"==typeof e?D.get(e):e,!this.fromSelector)throw new ye("Could not find selector model: "+e);return this}where(e){return this.whereCondition=e,this}orderBy(e){return this.orderBySelector=e,this}groupBy(e){return this.groupBySelector=e,this}limit(e){return this.limitSelector=e,this}offset(e){return this.offsetSelector=e,this}async execute(){try{const e=this.build();return await this.raw(e)}catch(e){throw new o(e)}}async raw(e){const t=await this.adapter.raw(e);if(!this.selectSelector)return t;const r=m(new this.fromSelector).id,s=function(e){const t=e[r];return this.adapter.revert(e,this.fromSelector,r,t)}.bind(this);return Array.isArray(t)?t.map(s):s(t)}}a([ee(),i("design:type",Function),i("design:paramtypes",[Array]),i("design:returntype",Object)],ht.prototype,"select",null),a([ee(),i("design:type",Function),i("design:paramtypes",["function"==typeof(ct="undefined"!=typeof S&&S)?ct:Object]),i("design:returntype",Object)],ht.prototype,"distinct",null),a([ee(),i("design:type",Function),i("design:paramtypes",["function"==typeof(lt="undefined"!=typeof S&&S)?lt:Object]),i("design:returntype",Object)],ht.prototype,"max",null),a([ee(),i("design:type",Function),i("design:paramtypes",["function"==typeof(dt="undefined"!=typeof S&&S)?dt:Object]),i("design:returntype",Object)],ht.prototype,"min",null),a([ee(),i("design:type",Function),i("design:paramtypes",["function"==typeof(ut="undefined"!=typeof S&&S)?ut:Object]),i("design:returntype",Object)],ht.prototype,"count",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",Object)],ht.prototype,"from",null),a([ee(),i("design:type",Function),i("design:paramtypes",[me]),i("design:returntype",Object)],ht.prototype,"where",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Array]),i("design:returntype",Object)],ht.prototype,"orderBy",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",Object)],ht.prototype,"groupBy",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Number]),i("design:returntype",Object)],ht.prototype,"limit",null),a([ee(),i("design:type",Function),i("design:paramtypes",[Number]),i("design:returntype",Object)],ht.prototype,"offset",null),a([ee(),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",Promise)],ht.prototype,"execute",null),(e=>{e.FIND_BY="findBy",e.SELECT="Select",e.AND="And",e.OR="Or",e.GROUP_BY="GroupBy",e.ORDER_BY="OrderBy",e.THEN="Then",e.THEN_BY="ThenBy"})(pt||(pt={}));const ft={Equals:(e,t)=>me.attribute(e).eq(t),Diff:(e,t)=>me.attribute(e).dif(t),LessThan:(e,t)=>me.attribute(e).lt(t),LessThanEqual:(e,t)=>me.attribute(e).lte(t),GreaterThan:(e,t)=>me.attribute(e).gt(t),GreaterThanEqual:(e,t)=>me.attribute(e).gte(t),Between:(e,t,r)=>me.attribute(e).gte(t).and(me.attribute(e).lte(r)),In:(e,t)=>me.attribute(e).in(t),Matches:(e,t)=>me.attribute(e).regexp(t)},gt=e=>e.charAt(0).toLowerCase()+e.slice(1);class yt{static build(e,...t){if(!e.startsWith(pt.FIND_BY))throw Error("Unsupported method "+e);const r=this.extractCore(e),s=this.extractSelect(e),a=this.extractGroupBy(e),i=this.buildWhere(r,t),{orderBy:n,limit:o,offset:c}=this.extractOrderLimitOffset(r,t);return{action:"find",select:s,where:i,groupBy:a,orderBy:n,limit:o,offset:c}}static extractCore(e){const t=e.substring(pt.FIND_BY.length),r=t.match(/(Then[A-Z]|OrderBy|GroupBy|Limit|Offset)/);return r?t.substring(0,r.index):t}static extractSelect(e){const t=e.indexOf(pt.SELECT);if(-1===t)return;const r=e.substring(t+pt.SELECT.length),s=r.match(/(Then[A-Z]|OrderBy|GroupBy|Limit|Offset)/);return(s?r.substring(0,s.index):r).split(pt.AND).map(gt).filter(Boolean)}static extractGroupBy(e){const t=e.indexOf(pt.GROUP_BY);if(-1!==t)return e.substring(t+pt.GROUP_BY.length).split(pt.ORDER_BY)[0].split(pt.THEN_BY).map(gt).filter(Boolean)}static buildWhere(e,t){const r=(e.split(/OrderBy|GroupBy/)[0]||"").split(/And|Or/),s=e.match(/And|Or/g)||[];let a;if(r.forEach((e,r)=>{const{field:i,operator:n}=this.parseFieldAndOperator(e),o=n?ft[n]:ft.Equals;if(!o)throw Error("Unsupported operator "+n);const c=t[r];if(void 0===c)throw Error("Invalid value for field "+i);const l=o(i,c);a=0===r?l:s[r-1]===pt.AND?a.and(l):a.or(l)}),!a)throw Error("No conditions found in method name");return a}static parseFieldAndOperator(e){for(const t of Object.keys(ft))if(e.endsWith(t)){const r=e.slice(0,-t.length);return{field:gt(r),operator:t}}return{field:gt(e)}}static extractOrderLimitOffset(e,t){const r=e.split(/And|Or/).length,s=t.slice(r);let a,i,n;return s.length>=1&&Array.isArray(s[0])&&(a=s[0]),2>s.length||"number"!=typeof s[1]||(i=s[1]),3>s.length||"number"!=typeof s[2]||(n=s[2]),{orderBy:a,limit:i,offset:n}}}function bt(e={}){return(t,r,s)=>{const a=r.toString();s.value=function(...t){const{select:r,where:s,groupBy:i,orderBy:n,limit:o,offset:c}=yt.build(a,...t);let l=this.select(r);s&&(l=l.where(s));const{allowLimit:d,allowOffset:u,allowOrderBy:p,throws:h}={allowLimit:!0,allowOrderBy:!0,allowOffset:!0,throws:!0,...e},f=[{key:"orderBy",value:(n||[])[0],allowed:p},{key:"limit",value:o,allowed:d},{key:"offset",value:c,allowed:u}];for(const e of f)if(void 0!==e.value){if(!e.allowed&&h)throw new ye(e.key[0].toUpperCase()+e.key.slice(1)+" is not allowed for this query");e.allowed&&(l=l[e.key](e.value))}return l.execute()}}}t.setRegistry(new Oe);const mt="##VERSION##",wt="##PACKAGE##";Q.registerLibrary(wt,mt);export{pe as Adapter,te as AuthorizationError,nt as BaseModel,Re as BigIntSequence,K as Cascade,me as Condition,se as ConnectionError,he as DefaultCascade,Ne as DefaultSequenceOptions,ne as Dispatch,re as ForbiddenError,ge as GroupOperator,Oe as InjectablesRegistry,yt as MethodQueryBuilder,Te as NoneSequenceOptions,_e as NumericSequence,Ee as ObserverError,ae as ObserverHandler,fe as Operator,ft as OperatorsMap,Z as OrderDirection,wt as PACKAGE_NAME,ot as Paginator,be as PagingError,J as PersistenceKeys,pt as QueryClause,ye as QueryError,we as Repository,ce as Sequence,ht as Statement,ie as UnsupportedError,mt as VERSION,Me as cacheModelForPopulate,Ue as column,Pe as createOrUpdate,Qe as createdAt,ze as createdBy,qe as createdByOnCreateUpdate,ee as final,ve as generateInjectableNameForRepository,de as getColumnName,Le as getPopulateKey,le as getTableName,He as index,Ke as manyToMany,Ze as manyToOne,et as noValidateOn,tt as noValidateOnCreate,st as noValidateOnCreateUpdate,rt as noValidateOnUpdate,Je as oneToMany,ke as oneToManyOnCreate,je as oneToManyOnDelete,$e as oneToManyOnUpdate,Xe as oneToOne,De as oneToOneOnCreate,xe as oneToOneOnDelete,Se as oneToOneOnUpdate,it as pk,at as pkOnCreate,Be as populate,bt as query,Ae as repository,Ie as repositoryFromTypeMetadata,ue as sequenceNameForModel,Fe as table,Ye as unique,Ge as uniqueOnCreateUpdate,We as updatedAt,Ve as updatedBy,oe as uses};
2
2
  //# sourceMappingURL=core.js.map
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sources":["../src/persistence/constants.ts","../src/repository/constants.ts","../src/utils/decorators.ts","../src/utils/errors.ts","../src/persistence/ObserverHandler.ts","../src/identity/utils.ts","../src/persistence/Adapter.ts","../src/persistence/errors.ts","../src/persistence/Sequence.ts","../src/query/constants.ts","../src/query/errors.ts","../src/query/Condition.ts","../src/persistence/decorators.ts","../src/repository/Repository.ts","../src/repository/utils.ts","../src/repository/injectables.ts","../src/persistence/Dispatch.ts","../src/repository/decorators.ts","../src/overrides/overrides.ts","../src/repository/errors.ts","../src/interfaces/SequenceOptions.ts","../src/model/construction.ts","../src/model/decorators.ts","../src/identity/decorators.ts","../src/model/BaseModel.ts","../src/query/Paginator.ts","../src/query/types.ts","../src/query/Statement.ts","../src/query/utils.ts","../src/query/MethodQueryBuilder.ts","../src/query/decorators.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["PersistenceKeys","OrderDirection","Cascade","final","target","propertyKey","descriptor","Error","configurable","AuthorizationError","BadRequestError","constructor","msg","name","code","super","ForbiddenError","ConnectionError","InternalError","ObserverHandler","this","observers","count","length","observe","observer","filter","map","o","indexOf","push","unObserve","index","splice","updateObservers","log","table","event","id","args","Promise","allSettled","e","error","toString","refresh","forEach","result","i","status","reason","getTableName","model","obj","Model","Reflect","getOwnMetadata","Repository","key","TABLE","ModelKeys","ANCHOR","getColumnName","attribute","getMetadata","COLUMN","sequenceNameForModel","join","Decoration","setFlavourResolver","Adapter","flavourOf","isModel","currentFlavour","DefaultFlavour","LoggedClass","_cache","config","_config","alias","_alias","flavour","repository","_baseRepository","shutdownProxies","k","proxies","shutdown","dispatch","close","Context","info","_currentFlavour","verbose","Dispatch","_baseDispatch","isReserved","attr","initialize","flags","operation","Object","assign","DefaultRepositoryFlags","affectedTables","writeOperation","OperationKeys","READ","timestamp","Date","ignoredValidationProperties","Metadata","validationExceptions","context","overrides","for","debug","JSON","stringify","accumulate","prepare","pk","split","modelToTransient","entries","reduce","accum","val","mappedProp","METADATA","silly","defineProperty","enumerable","writable","value","record","transient","revert","clazz","ob","m","build","metadata","keys","createAll","tableName","all","create","readAll","read","updateAll","update","deleteAll","delete","observerHandler","ADAPTER","current","get","setCurrent","Repo","models","cache","getRegistry","managedModels","values","f","DBKeys","REPOSITORY","forModel","decoration","client","_client","getClient","hashObj","proxy","Proxy","p","receiver","originalConf","set","__decorate","prototype","DefaultCascade","CASCADE","NONE","UnsupportedError","Sequence","logger","Logging","options","parseValue","type","parseInt","BigInt","undefined","Operator","GroupOperator","QueryError","PagingError","Condition","attr1","operator","comparison","and","condition","or","not","NOT","hasErrors","exceptions","conditionCheck","invalidOpMessage","errors","isAsync","resolve","condition1","condition2","group","AND","OR","Builder","eq","setOp","EQUAL","dif","DIFFERENT","gt","BIGGER","lt","SMALLER","gte","BIGGER_EQ","lte","SMALLER_EQ","arr","IN","regexp","REGEXP","RegExp","source","op","builder","uses","original","apply","required","Rep","adapter","_adapter","_tableName","class","pkProps","register","wrapMethodWithContext","override","conf","createPrefix","contextArgs","CREATE","_overrides","enforceDBDecorators","ON","ValidationError","c","createSuffix","prepared","ids","records","r","createAllPrefix","opts","getSequenceOptions","range","async","generated","ignoredProps","errorMessages","readPrefix","readAllPrefix","updatePrefix","UPDATE","oldModel","merge","relations","setMetadata","u","updateAllPrefix","oldModels","deletePrefix","DELETE","deleteAllPrefix","select","selector","Statement","from","query","orderBy","order","ASC","limit","skip","sort","where","offset","execute","prop","Array","isArray","repo","registryName","DefaultSeparator","getOwnPropertyDescriptor","removeMetadata","findPrimaryKey","ID","indexes","indexDecorators","Reflection","getAllPropertyDecorators","REFLECT","decs","v","startsWith","INDEX","dec","props","getPrototypeOf","RELATIONS","column","generateInjectableNameForRepository","sf","INJECTABLE","InjectablesRegistry","InjectableRegistryImp","injectable","modelCtor","metaKey","resolvedFlavour","aliasToUse","Injectables","message","repoCtor","BulkCrudOperationKeys","CREATE_ALL","UPDATE_ALL","DELETE_ALL","method","proto","thisArg","argArray","bulkToSingle","then","catch","inject","callback","instance","CLASS","noValidation","NO_VALIDATE","includes","bind","ObserverError","NoneSequenceOptions","startWith","incrementBy","cycle","DefaultSequenceOptions","NumericSequence","BigIntSequence","createOrUpdate","NotFoundError","oneToOneOnCreate","data","propertyValue","innerRepo","repositoryFromTypeMetadata","cacheModelForPopulate","created","oneToOneOnUpdate","cascade","updated","oneToOneOnDelete","deleted","oneToManyOnCreate","propertyValues","arrayType","every","item","uniqueValues","Set","pkName","add","oneToManyOnUpdate","oneToManyOnDelete","isInstantiated","getPopulateKey","fieldName","POPULATE","parentModel","pkValue","cacheValue","cacheKey","populate","nested","isArr","res","propName","propKeyValues","results","proKeyValue","fetchPopulateValues","commomTypes","types","Validation","ValidationKeys","LIST","TYPE","customTypes","constructorName","t","find","toLowerCase","define","decorator","columnName","propMetadata","directions","compositions","d","DSC","uniqueOnCreateUpdate","ConflictError","unique","UNIQUE","onCreateUpdate","createdByOnCreateUpdate","createdBy","CREATED_BY","onCreate","updatedBy","UPDATED_BY","createdAt","updatedAt","oneToOne","cascadeOptions","joinColumnOpts","fk","ONE_TO_ONE","meta","joinTable","String","Number","onUpdate","onDelete","afterAny","pop","oneToMany","joinTableOpts","ONE_TO_MANY","list","manyToOne","MANY_TO_ONE","manyToMany","MANY_TO_MANY","noValidateOn","ops","currentMeta","newMeta","newApply","newMetadata","noValidateOnCreate","noValidateOnUpdate","noValidateOnCreateUpdate","pkOnCreate","sequence","next","groupsort","readonly","priority","BaseModel","arg","Paginator","_currentPage","total","_totalPages","_recordCount","statement","_statement","size","page","previous","validatePage","isInteger","QueryClause","distinct","distinctSelector","max","maxSelector","min","minSelector","countSelector","fromSelector","whereCondition","orderBySelector","groupBy","groupBySelector","limitSelector","offsetSelector","raw","rawInput","selectSelector","pkAttr","processor","__metadata","_a","S","_b","_c","_d","OperatorsMap","Equals","Diff","LessThan","LessThanEqual","GreaterThan","GreaterThanEqual","Between","v1","v2","In","in","Matches","lowerFirst","str","charAt","slice","MethodQueryBuilder","methodName","FIND_BY","core","extractCore","extractSelect","extractGroupBy","buildWhere","extractOrderLimitOffset","action","afterFindBy","substring","match","selectIndex","SELECT","afterSelect","Boolean","groupByIndex","GROUP_BY","ORDER_BY","THEN_BY","conditions","operators","token","idx","field","parseFieldAndOperator","parser","conditionValue","endsWith","conditionCount","extraArgs","stmt","allowLimit","allowOffset","allowOrderBy","throws","params","allowed","param","toUpperCase","setRegistry","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sources":["../src/persistence/constants.ts","../src/repository/constants.ts","../src/utils/decorators.ts","../src/utils/errors.ts","../src/persistence/ObserverHandler.ts","../src/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/repository/decorators.ts","../src/overrides/overrides.ts","../src/repository/errors.ts","../src/interfaces/SequenceOptions.ts","../src/model/construction.ts","../src/model/decorators.ts","../src/identity/decorators.ts","../src/model/BaseModel.ts","../src/query/Paginator.ts","../src/query/types.ts","../src/query/Statement.ts","../src/query/utils.ts","../src/query/MethodQueryBuilder.ts","../src/query/decorators.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["PersistenceKeys","OrderDirection","Cascade","final","target","propertyKey","descriptor","Error","configurable","AuthorizationError","BadRequestError","constructor","msg","name","code","super","ForbiddenError","ConnectionError","InternalError","ObserverHandler","this","observers","count","length","observe","observer","filter","map","o","indexOf","push","unObserve","index","splice","updateObservers","log","table","event","id","args","Promise","allSettled","e","error","toString","refresh","forEach","result","i","status","reason","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","managedModels","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","inject","ANCHOR","callback","instance","CLASS","noValidation","NO_VALIDATE","includes","bind","ObserverError","NoneSequenceOptions","startWith","incrementBy","cycle","DefaultSequenceOptions","NumericSequence","BigIntSequence","createOrUpdate","NotFoundError","oneToOneOnCreate","data","propertyValue","innerRepo","repositoryFromTypeMetadata","cacheModelForPopulate","created","oneToOneOnUpdate","cascade","updated","oneToOneOnDelete","deleted","oneToManyOnCreate","propertyValues","arrayType","every","item","uniqueValues","Set","pkName","add","oneToManyOnUpdate","oneToManyOnDelete","isInstantiated","getPopulateKey","fieldName","POPULATE","parentModel","pkValue","cacheValue","cacheKey","populate","nested","isArr","res","propName","propKeyValues","results","proKeyValue","fetchPopulateValues","commomTypes","types","Validation","ValidationKeys","LIST","TYPE","customTypes","constructorName","t","find","toLowerCase","define","decorator","columnName","propMetadata","directions","compositions","d","DSC","uniqueOnCreateUpdate","ConflictError","unique","UNIQUE","onCreateUpdate","createdByOnCreateUpdate","createdBy","CREATED_BY","onCreate","updatedBy","UPDATED_BY","createdAt","updatedAt","oneToOne","cascadeOptions","joinColumnOpts","fk","ONE_TO_ONE","meta","joinTable","String","Number","onUpdate","onDelete","afterAny","pop","oneToMany","joinTableOpts","ONE_TO_MANY","list","manyToOne","MANY_TO_ONE","manyToMany","MANY_TO_MANY","noValidateOn","ops","currentMeta","newMeta","newApply","newMetadata","noValidateOnCreate","noValidateOnUpdate","noValidateOnCreateUpdate","pkOnCreate","sequence","next","groupsort","readonly","priority","BaseModel","arg","Paginator","_currentPage","total","_totalPages","_recordCount","statement","_statement","size","page","previous","validatePage","isInteger","QueryClause","distinct","distinctSelector","max","maxSelector","min","minSelector","countSelector","fromSelector","whereCondition","orderBySelector","groupBy","groupBySelector","limitSelector","offsetSelector","raw","rawInput","selectSelector","pkAttr","processor","__metadata","_a","S","_b","_c","_d","OperatorsMap","Equals","Diff","LessThan","LessThanEqual","GreaterThan","GreaterThanEqual","Between","v1","v2","In","in","Matches","lowerFirst","str","charAt","slice","MethodQueryBuilder","methodName","FIND_BY","core","extractCore","extractSelect","extractGroupBy","buildWhere","extractOrderLimitOffset","action","afterFindBy","substring","match","selectIndex","SELECT","afterSelect","Boolean","groupByIndex","GROUP_BY","ORDER_BY","THEN_BY","conditions","operators","token","idx","field","parseFieldAndOperator","parser","conditionValue","endsWith","conditionCount","extraArgs","stmt","allowLimit","allowOffset","allowOrderBy","throws","params","allowed","param","toUpperCase","setRegistry","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { Model, ModelKeys } from "@decaf-ts/decorator-validation";
2
- import { Repository } from "@decaf-ts/db-decorators";
2
+ import { InternalError, Repository } from "@decaf-ts/db-decorators";
3
3
  import { PersistenceKeys } from "./../persistence/constants.js";
4
+ import { Adapter } from "./../persistence/index.js";
4
5
  /**
5
6
  * @description Gets the table name for a model
6
7
  * @summary Retrieves the table name associated with a model by checking metadata or falling back to the constructor name
@@ -11,8 +12,10 @@ import { PersistenceKeys } from "./../persistence/constants.js";
11
12
  * @memberOf module:core
12
13
  */
13
14
  export function getTableName(model) {
14
- const obj = model instanceof Model ? model.constructor : model;
15
- const metadata = Reflect.getOwnMetadata(Repository.key(PersistenceKeys.TABLE), obj[ModelKeys.ANCHOR] || obj);
15
+ const obj = model instanceof Model ? Model.get(model.constructor.name) : model;
16
+ if (!obj)
17
+ throw new InternalError(`Unable to find model ${model}`);
18
+ const metadata = Reflect.getOwnMetadata(Adapter.key(PersistenceKeys.TABLE), obj[ModelKeys.MODEL] || obj);
16
19
  if (metadata) {
17
20
  return metadata;
18
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/identity/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,sCAAiC;AAE3D;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAyB;IAEzB,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;IAE/D,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CACrC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,EACrC,GAAG,CAAC,SAAS,CAAC,MAAqC,CAAC,IAAI,GAAG,CAC5D,CAAC;IACF,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,KAAQ,EACR,SAAiB;IAEjB,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAClC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,EACtC,KAAK,EACL,SAAS,CACV,CAAC;IACF,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACzC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAyB,EACzB,GAAG,IAAc;IAEjB,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/identity/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,sCAAiC;AAC3D,OAAO,EAAE,OAAO,EAAE,kCAA6B;AAE/C;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAyB;IAEzB,MAAM,GAAG,GACP,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAErE,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,aAAa,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;IAEnE,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CACrC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,EAClC,GAAG,CAAC,SAAS,CAAC,KAAoC,CAAC,IAAI,GAAG,CAC3D,CAAC;IAEF,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,KAAQ,EACR,SAAiB;IAEjB,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAClC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,EACtC,KAAK,EACL,SAAS,CACV,CAAC;IACF,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACzC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAyB,EACzB,GAAG,IAAc;IAEjB,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC"}
@@ -19,7 +19,7 @@ export * from "./persistence";
19
19
  * @const VERSION
20
20
  * @memberOf module:core
21
21
  */
22
- export declare const VERSION = "0.5.44";
22
+ export declare const VERSION = "0.5.46";
23
23
  /**
24
24
  * @description Stores the current package version
25
25
  * @summary A constant representing the version of the core package
package/lib/esm/index.js CHANGED
@@ -26,7 +26,7 @@ export * from "./persistence/index.js";
26
26
  * @const VERSION
27
27
  * @memberOf module:core
28
28
  */
29
- export const VERSION = "0.5.44";
29
+ export const VERSION = "0.5.46";
30
30
  /**
31
31
  * @description Stores the current package version
32
32
  * @summary A constant representing the version of the core package
@@ -1 +1 @@
1
- {"version":3,"file":"construction.js","sourceRoot":"","sources":["../../../src/model/construction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"construction.js","sourceRoot":"","sources":["../../../src/model/construction.ts"],"names":[],"mappings":"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"}