@decaf-ts/core 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/lib/esm/identity/decorators.js +6 -5
- package/lib/esm/identity/decorators.js.map +1 -1
- package/lib/esm/identity/utils.d.ts +3 -2
- package/lib/esm/identity/utils.js +7 -7
- package/lib/esm/identity/utils.js.map +1 -1
- package/lib/esm/index.d.ts +2 -1
- package/lib/esm/index.js +2 -1
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/model/construction.d.ts +2 -11
- package/lib/esm/model/construction.js +21 -33
- package/lib/esm/model/construction.js.map +1 -1
- package/lib/esm/model/decorators.d.ts +11 -2
- package/lib/esm/model/decorators.js +91 -69
- package/lib/esm/model/decorators.js.map +1 -1
- package/lib/esm/model/types.d.ts +6 -2
- package/lib/esm/overrides/Metadata.d.ts +14 -2
- package/lib/esm/overrides/overrides.js +31 -0
- package/lib/esm/overrides/overrides.js.map +1 -1
- package/lib/esm/persistence/Adapter.d.ts +3 -9
- package/lib/esm/persistence/Adapter.js +27 -46
- package/lib/esm/persistence/Adapter.js.map +1 -1
- package/lib/esm/persistence/Sequence.d.ts +2 -1
- package/lib/esm/persistence/Sequence.js.map +1 -1
- package/lib/esm/persistence/index.d.ts +0 -1
- package/lib/esm/persistence/index.js +0 -1
- package/lib/esm/persistence/index.js.map +1 -1
- package/lib/esm/persistence/migrations.js +1 -2
- package/lib/esm/persistence/migrations.js.map +1 -1
- package/lib/esm/query/Paginator.d.ts +4 -2
- package/lib/esm/query/Paginator.js +3 -1
- package/lib/esm/query/Paginator.js.map +1 -1
- package/lib/esm/query/Statement.d.ts +2 -1
- package/lib/esm/query/Statement.js +2 -2
- package/lib/esm/query/Statement.js.map +1 -1
- package/lib/esm/query/options.d.ts +2 -1
- package/lib/esm/query/selectors.d.ts +2 -1
- package/lib/esm/ram/RamAdapter.d.ts +2 -1
- package/lib/esm/ram/RamAdapter.js +7 -5
- package/lib/esm/ram/RamAdapter.js.map +1 -1
- package/lib/esm/ram/RamPaginator.d.ts +2 -1
- package/lib/esm/ram/RamPaginator.js +1 -1
- package/lib/esm/ram/RamPaginator.js.map +1 -1
- package/lib/esm/ram/RamStatement.js +3 -3
- package/lib/esm/ram/RamStatement.js.map +1 -1
- package/lib/esm/ram/types.d.ts +2 -1
- package/lib/esm/repository/Repository.d.ts +2 -1
- package/lib/esm/repository/Repository.js +30 -40
- package/lib/esm/repository/Repository.js.map +1 -1
- package/lib/esm/repository/decorators.d.ts +2 -1
- package/lib/esm/repository/decorators.js +7 -8
- package/lib/esm/repository/decorators.js.map +1 -1
- package/lib/esm/repository/injectables.d.ts +1 -2
- package/lib/esm/repository/injectables.js +6 -6
- package/lib/esm/repository/injectables.js.map +1 -1
- package/lib/esm/repository/utils.d.ts +2 -2
- package/lib/esm/repository/utils.js +4 -5
- package/lib/esm/repository/utils.js.map +1 -1
- package/lib/identity/decorators.cjs +6 -5
- package/lib/identity/decorators.js.map +1 -1
- package/lib/identity/utils.cjs +5 -5
- package/lib/identity/utils.d.ts +3 -2
- package/lib/identity/utils.js.map +1 -1
- package/lib/index.cjs +2 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js.map +1 -1
- package/lib/model/construction.cjs +19 -31
- package/lib/model/construction.d.ts +2 -11
- package/lib/model/construction.js.map +1 -1
- package/lib/model/decorators.cjs +99 -76
- package/lib/model/decorators.d.ts +11 -2
- package/lib/model/decorators.js.map +1 -1
- package/lib/model/types.d.ts +6 -2
- package/lib/overrides/Metadata.d.ts +14 -2
- package/lib/overrides/overrides.cjs +31 -0
- package/lib/overrides/overrides.js.map +1 -1
- package/lib/persistence/Adapter.cjs +25 -44
- package/lib/persistence/Adapter.d.ts +3 -9
- package/lib/persistence/Adapter.js.map +1 -1
- package/lib/persistence/Sequence.d.ts +2 -1
- package/lib/persistence/Sequence.js.map +1 -1
- package/lib/persistence/index.cjs +0 -1
- package/lib/persistence/index.d.ts +0 -1
- package/lib/persistence/index.js.map +1 -1
- package/lib/persistence/migrations.cjs +1 -2
- package/lib/persistence/migrations.js.map +1 -1
- package/lib/query/Paginator.cjs +3 -1
- package/lib/query/Paginator.d.ts +4 -2
- package/lib/query/Paginator.js.map +1 -1
- package/lib/query/Statement.cjs +1 -1
- package/lib/query/Statement.d.ts +2 -1
- package/lib/query/Statement.js.map +1 -1
- package/lib/query/options.d.ts +2 -1
- package/lib/query/selectors.d.ts +2 -1
- package/lib/ram/RamAdapter.cjs +9 -7
- package/lib/ram/RamAdapter.d.ts +2 -1
- package/lib/ram/RamAdapter.js.map +1 -1
- package/lib/ram/RamPaginator.cjs +1 -1
- package/lib/ram/RamPaginator.d.ts +2 -1
- package/lib/ram/RamPaginator.js.map +1 -1
- package/lib/ram/RamStatement.cjs +3 -3
- package/lib/ram/RamStatement.js.map +1 -1
- package/lib/ram/types.d.ts +2 -1
- package/lib/repository/Repository.cjs +29 -39
- package/lib/repository/Repository.d.ts +2 -1
- package/lib/repository/Repository.js.map +1 -1
- package/lib/repository/decorators.cjs +5 -6
- package/lib/repository/decorators.d.ts +2 -1
- package/lib/repository/decorators.js.map +1 -1
- package/lib/repository/injectables.cjs +5 -5
- package/lib/repository/injectables.d.ts +1 -2
- package/lib/repository/injectables.js.map +1 -1
- package/lib/repository/utils.cjs +4 -5
- package/lib/repository/utils.d.ts +2 -2
- package/lib/repository/utils.js.map +1 -1
- package/package.json +2 -4
- package/lib/esm/persistence/decorators.d.ts +0 -11
- package/lib/esm/persistence/decorators.js +0 -19
- package/lib/esm/persistence/decorators.js.map +0 -1
- package/lib/persistence/decorators.cjs +0 -22
- package/lib/persistence/decorators.d.ts +0 -11
- package/lib/persistence/decorators.js.map +0 -1
package/dist/core.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{InjectableRegistryImp as t,Injectables as e,inject as r,injectable as s}from"@decaf-ts/injectable-decorators";import{__decorate as i,__metadata as a}from"tslib";import{BadRequestError as n,InternalError as o,Repository as c,Context as l,DefaultRepositoryFlags as d,OperationKeys as u,modelToTransient as h,DBKeys as p,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 R,afterAny as _,readonly as P}from"@decaf-ts/db-decorators";import{Model as D,ModelKeys as x,Decoration as k,DefaultFlavour as $,hashObj as M,required as I,sf as j,Validation as L,ValidationKeys as C,propMetadata as B,prop as F,type as G,list as U}from"@decaf-ts/decorator-validation";import{LoggedClass as H,Logging as Y}from"@decaf-ts/logging";import{Metadata as q,metadata as z,apply 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 tt(){return(t,e,r)=>{if(!r)throw Error("final decorator can only be used on methods");return r?.configurable&&(r.configurable=!1),r}}(t=>{t.INDEX="index",t.UNIQUE="unique",t.ADAPTER="adapter",t.INJECTABLE="decaf_{0}_adapter_for_{1}",t.TABLE="table",t.COLUMN="column",t.METADATA="__metadata",t.OWNERSHIP="ownership",t.CREATED_BY="ownership.created-by",t.UPDATED_BY="ownership.updated-by",t.RELATIONS="__relations",t.RELATION="relation",t.ONE_TO_ONE="relation.one-to-one",t.ONE_TO_MANY="relation.one-to-many",t.MANY_TO_ONE="relation.many-to-one",t.MANY_TO_MANY="relation.many-to-many",t.POPULATE="populate",t.NO_VALIDATE="no-validate",t.MIGRATION="migration"})(J||(J={}));class et extends n{constructor(t,e=et.name,r=401){super(t,e,r)}}class rt extends et{constructor(t,e=rt.name){super(t,e,403)}}class st extends o{constructor(t){super(t,st.name,503)}}class it{constructor(){this.observers=[]}count(){return this.observers.length}observe(t,e){if(-1!==this.observers.map(t=>t.observer).indexOf(t))throw new o("Observer already registered");this.observers.push({observer:t,filter:e})}unObserve(t){const e=this.observers.map(t=>t.observer).indexOf(t);if(-1===e)throw new o("Failed to find Observer");this.observers.splice(e,1)}async updateObservers(t,e,r,s,...i){(await Promise.allSettled(this.observers.filter(i=>{const{filter:a}=i;if(!a)return!0;try{return a(e,r,s)}catch(e){return t.error(`Failed to filter observer ${i.observer.toString()}: ${e}`),!1}}).map(t=>{t.observer.refresh(e,r,s,...i)}))).forEach((e,r)=>{"rejected"===e.status&&t.error(`Failed to update observable ${this.observers[r].toString()}: ${e.reason}`)})}}function at(t){const e=t instanceof D?D.get(t.constructor.name):t;if(!e)throw new o("Unable to find model "+t);return Reflect.getOwnMetadata(ut.key(J.TABLE),e[x.MODEL]||e)||(t instanceof D?t.constructor.name:t.name)}function nt(t,e){return Reflect.getMetadata(c.key(J.COLUMN),t,e)||e}function ot(t,...e){return[at(t),...e].join("_")}class ct extends o{constructor(t){super(t,ct.name,500)}}class lt extends o{constructor(t,e=lt.name){super(t,e,500)}}class dt extends lt{constructor(t){super(t,dt.name)}}k.setFlavourResolver(t=>{try{return ut.flavourOf(D.isModel(t)?t.constructor:t)||ut.currentFlavour||$}catch(t){}try{return ut.currentFlavour||$}catch(t){return $}});class ut extends H{static{this._cache={}}get config(){return this._config}get alias(){return this._alias||this.flavour}repository(){if(!ut._baseRepository)throw new o("This should be overridden when necessary. Otherwise it will be replaced lazily");return ut._baseRepository}async shutdownProxies(t){if(this.proxies){if(t&&!(t in this.proxies))throw new o("No proxy found for "+t);if(t)try{await this.proxies[t].shutdown(),delete this.proxies[t]}catch(e){this.log.error(`Failed to shutdown proxied adapter ${t}: ${e}`)}else for(const t in this.proxies){try{await this.proxies[t].shutdown()}catch(e){this.log.error(`Failed to shutdown proxied adapter ${t}: ${e}`);continue}delete this.proxies[t]}}}async shutdown(){await this.shutdownProxies(),this.dispatch&&await this.dispatch.close()}constructor(t,e,r){if(super(),this._config=t,this.flavour=e,this._alias=r,this.Context=l,this.alias in ut._cache)throw new o(`${this.alias} persistence adapter ${this._alias?`(${this.flavour}) `:""} already registered`);ut._cache[this.alias]=this,this.log.info(`Created ${this.alias} persistence adapter ${this._alias?`(${this.flavour}) `:""} persistence adapter`),ut._currentFlavour||(this.log.verbose(`Defined ${this.alias} persistence adapter as current`),ut._currentFlavour=this.alias)}Dispatch(){return new ut._baseDispatch}ObserverHandler(){return new it}isReserved(t){return!t}async initialize(...t){}async flags(t,e,r,...s){return Object.assign({},d,r,{affectedTables:at(e),writeOperation:t!==u.READ,timestamp:new Date,operation:t,ignoredValidationProperties:q.validationExceptions(e,t)})}async context(t,e,r,...s){this.log.for(this.context).debug(`Creating new context for ${t} operation on ${r.name} model with flag overrides: ${JSON.stringify(e)}`);const i=await this.flags(t,r,e,...s);return(new this.Context).accumulate(i)}prepare(t,e){const r=this.log.for(this.prepare),s=h(t),i=Object.entries(s.model).reduce((e,[r,s])=>{if(void 0===s)return e;const i=nt(t,r);if(this.isReserved(i))throw new o(`Property name ${i} is reserved`);return e[i]=s,e},{});return t[J.METADATA]&&(r.silly("Passing along persistence metadata for "+t[J.METADATA]),Object.defineProperty(i,J.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:t[J.METADATA]})),{record:i,id:t[e],transient:s.transient}}revert(t,e,r,s,i){const a=this.log.for(this.revert),n={};n[r]=s;const c="string"==typeof e?D.build(n,e):new e(n);a.silly(`Rebuilding model ${c.constructor.name} id ${s}`);const l=t[J.METADATA],d=Object.keys(c).reduce((e,s)=>(s===r||(e[s]=t[nt(e,s)]),e),c);return i&&(a.verbose("re-adding transient properties: "+Object.keys(i).join(", ")),Object.entries(i).forEach(([t,e])=>{if(t in d)throw new o(`Transient property ${t} already exists on model ${c.constructor.name}. should be impossible`);d[t]=e})),l&&(a.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(t,e,r,...s){if(e.length!==r.length)throw new o("Ids and models must have the same length");const i=this.log.for(this.createAll);return i.verbose(`Creating ${e.length} entries ${t} table`),i.debug("pks: "+e),Promise.all(e.map((e,i)=>this.create(t,e,r[i],...s)))}async readAll(t,e,...r){const s=this.log.for(this.readAll);return s.verbose(`Reading ${e.length} entries ${t} table`),s.debug("pks: "+e),Promise.all(e.map(e=>this.read(t,e,...r)))}async updateAll(t,e,r,...s){if(e.length!==r.length)throw new o("Ids and models must have the same length");const i=this.log.for(this.updateAll);return i.verbose(`Updating ${e.length} entries ${t} table`),i.debug("pks: "+e),Promise.all(e.map((e,i)=>this.update(t,e,r[i],...s)))}async deleteAll(t,e,...r){const s=this.log.for(this.createAll);return s.verbose(`Deleting ${e.length} entries ${t} table`),s.debug("pks: "+e),Promise.all(e.map(e=>this.delete(t,e,...r)))}observe(t,e){this.observerHandler||Object.defineProperty(this,"observerHandler",{value:this.ObserverHandler(),writable:!1}),this.observerHandler.observe(t,e),this.log.for(this.observe).verbose("Registering new observer "+t.toString()),this.dispatch||(this.log.for(this.observe).info("Creating dispatch for "+this.alias),this.dispatch=this.Dispatch(),this.dispatch.observe(this))}unObserve(t){if(!this.observerHandler)throw new o("ObserverHandler not initialized. Did you register any observables?");this.observerHandler.unObserve(t),this.log.for(this.unObserve).verbose(`Observer ${t.toString()} removed`)}async updateObservers(t,e,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,t,e,r,...s)}async refresh(t,e,r,...s){return this.updateObservers(t,e,r,...s)}toString(){return this.flavour+" persistence Adapter"}static flavourOf(t){return Reflect.getMetadata(this.key(J.ADAPTER),t)||this.current?.flavour}static get currentFlavour(){if(!ut._currentFlavour)throw new o("No persistence flavour set. Please initialize your adapter");return ut._currentFlavour}static get current(){return ut.get(this.currentFlavour)}static get(t){if(!t)return ut.get(this._currentFlavour);if(t in this._cache)return this._cache[t];throw new o(`No Adapter registered under ${t}.`)}static setCurrent(t){this._currentFlavour=t}static key(t){return c.key(t)}static models(t){try{const e=D.getRegistry().cache,r=Object.values(e).map(e=>{let r=Reflect.getMetadata(ut.key(J.ADAPTER),e);if(r&&r===t)return e;if(!r){if(!Reflect.getMetadata(c.key(p.REPOSITORY),e))return;const t=this._baseRepository.forModel(e);return r=Reflect.getMetadata(ut.key(J.ADAPTER),t),r}}).filter(t=>!!t);return r}catch(t){throw new o(t)}}static decoration(){}get client(){return this._client||(this._client=this.getClient()),this._client}for(t,...e){this.proxies||(this.proxies={});const r=`${this.alias} - ${M(t)}`;if(r in this.proxies)return this.proxies[r];let s;const i=new Proxy(this,{get:(e,r,i)=>{if("_config"===r){const s=Reflect.get(e,r,i);return Object.assign({},s,t)}return"_client"===r?s:Reflect.get(e,r,i)},set:(t,e,r,i)=>"_client"===e?(s=r,!0):Reflect.set(t,e,r,i)});return this.proxies[r]=i,i}migrations(){return q.migrationsFor(this)}async migrate(t=this.migrations()){for(const e of t)try{const t=new e;await t.up(this,this,this.log),await t.down(this,this,this.log)}catch(t){throw new lt(t)}}}i([tt(),a("design:type",Function),a("design:paramtypes",[String]),a("design:returntype",Promise)],ut.prototype,"shutdownProxies",null),i([tt(),a("design:type",Function),a("design:paramtypes",[String,Object,Object,Object]),a("design:returntype",Promise)],ut.prototype,"context",null),i([tt(),a("design:type",Function),a("design:paramtypes",[Object,Function]),a("design:returntype",void 0)],ut.prototype,"observe",null),i([tt(),a("design:type",Function),a("design:paramtypes",[Object]),a("design:returntype",void 0)],ut.prototype,"unObserve",null),i([tt(),a("design:type",Object),a("design:paramtypes",[])],ut.prototype,"client",null),(t=>{t.ASC="asc",t.DSC="desc"})(Z||(Z={})),(t=>{t.CASCADE="cascade",t.NONE="none"})(K||(K={}));const ht={update:K.CASCADE,delete:K.NONE};class pt{get log(){return this.logger||(this.logger=Y.for(this)),this.logger}constructor(t){this.options=t}static pk(t){return ot(t,"pk")}static parseValue(t,e){switch(t){case"Number":return"string"==typeof e?parseInt(e):"number"==typeof e?e:BigInt(e);case"BigInt":return BigInt(e);case void 0:case"String":return e;default:throw new ct(`Unsupported sequence type: ${t} for adapter ${this}`)}}}var ft,gt;(t=>{t.EQUAL="EQUAL",t.DIFFERENT="DIFFERENT",t.BIGGER="BIGGER",t.BIGGER_EQ="BIGGER_EQ",t.SMALLER="SMALLER",t.SMALLER_EQ="SMALLER_EQ",t.NOT="NOT",t.IN="IN",t.REGEXP="REGEXP"})(ft||(ft={})),(t=>{t.AND="AND",t.OR="OR"})(gt||(gt={}));class yt extends o{constructor(t){super(t,yt.name,500)}}class bt extends o{constructor(t){super(t,bt.name,500)}}class mt extends D{constructor(t,e,r){super(),this.attr1=void 0,this.operator=void 0,this.comparison=void 0,this.attr1=t,this.operator=e,this.comparison=r}and(t){return mt.and(this,t)}or(t){return mt.or(this,t)}not(t){return new mt(this,ft.NOT,t)}hasErrors(...t){const e=()=>{const t=`Invalid operator ${this.operator}}`;if("string"==typeof this.attr1){if(this.comparison instanceof mt)return{comparison:{condition:"Both sides of the comparison must be of the same type"}};if(-1===Object.values(ft).indexOf(this.operator))return{operator:{condition:t}}}if(this.attr1 instanceof mt){if(!(this.comparison instanceof mt)&&this.operator!==ft.NOT)return{comparison:{condition:t}};if(-1===Object.values(gt).indexOf(this.operator)&&this.operator!==ft.NOT)return{operator:{condition:t}}}},r=super.hasErrors(...t);return this.isAsync()?(async()=>await Promise.resolve(r)??e())():r??e()}static and(t,e){return mt.group(t,gt.AND,e)}static or(t,e){return mt.group(t,gt.OR,e)}static group(t,e,r){return new mt(t,e,r)}static attribute(t){return(new mt.Builder).attribute(t)}static attr(t){return this.attribute(t)}static{this.Builder=class{constructor(){this.attr1=void 0,this.operator=void 0,this.comparison=void 0}attribute(t){return this.attr1=t,this}attr(t){return this.attribute(t)}eq(t){return this.setOp(ft.EQUAL,t)}dif(t){return this.setOp(ft.DIFFERENT,t)}gt(t){return this.setOp(ft.BIGGER,t)}lt(t){return this.setOp(ft.SMALLER,t)}gte(t){return this.setOp(ft.BIGGER_EQ,t)}lte(t){return this.setOp(ft.SMALLER_EQ,t)}in(t){return this.setOp(ft.IN,t)}regexp(t){return this.setOp(ft.REGEXP,RegExp(t).source)}setOp(t,e){return this.operator=t,this.comparison=e,this.build()}build(){try{return new mt(this.attr1,this.operator,this.comparison)}catch(t){throw new yt(t)}}}}static builder(){return new mt.Builder}}function wt(t){return e=>Q(W(ut.key(J.ADAPTER),t))(e)}i([I(),a("design:type",Object)],mt.prototype,"attr1",void 0),i([I(),a("design:type",String)],mt.prototype,"operator",void 0),i([I(),a("design:type",Object)],mt.prototype,"comparison",void 0);class vt 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=vt.table(this.class)),this._tableName}get pkProps(){return super.pkProps}constructor(t,e,...r){if(super(e),this.observers=[],t&&(this._adapter=t),e&&(vt.register(e,this,this.adapter.alias),t)){const r=Reflect.getMetadata(ut.key(J.ADAPTER),e);if(r&&r!==t.flavour)throw new o("Incompatible flavours");wt(t.flavour)(e)}[this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(t=>{const e=t.name;f(this,this[e+"Prefix"],t,this[e+"Suffix"])})}override(t){return this.log.for(this.override).debug("Overriding repository flags with "+JSON.stringify(t)),new Proxy(this,{get:(e,r,s)=>{const i=Reflect.get(e,r,s);return"_overrides"!==r?i:Object.assign({},i,t)}})}for(t,...e){return new Proxy(this,{get:(r,s,i)=>"adapter"===s?this.adapter.for(t,...e):Reflect.get(r,s,i)})}ObserverHandler(){return new it}async createPrefix(t,...e){const r=await l.args(u.CREATE,this.class,e,this.adapter,this._overrides||{});t=new this.class(t),await g(this,r.context,t,u.CREATE,u.ON);const s=await Promise.resolve(t.hasErrors(...r.context.get("ignoredValidationProperties")||[]));if(s)throw new y(s.toString());return[t,...r.args]}async create(t,...e){let r,{record:s,id:i,transient:a}=this.adapter.prepare(t,this.pk);return s=await this.adapter.create(this.tableName,i,s,...e),e.length&&(r=e[e.length-1]),this.adapter.revert(s,this.class,this.pk,i,r&&r.get("rebuildWithTransient")?a:void 0)}async createSuffix(t,e){return super.createSuffix(t,e)}async createAll(t,...e){if(!t.length)return t;const r=t.map(t=>this.adapter.prepare(t,this.pk)),s=r.map(t=>t.id);let i=r.map(t=>t.record);return i=await this.adapter.createAll(this.tableName,s,i,...e),i.map((t,e)=>this.adapter.revert(t,this.class,this.pk,s[e]))}async createAllPrefix(t,...e){const r=await l.args(u.CREATE,this.class,e,this.adapter,this._overrides||{});if(!t.length)return[t,...r.args];const s=vt.getSequenceOptions(t[0]);let i=[];s.type?(s.name||(s.name=pt.pk(t[0])),i=await(await this.adapter.Sequence(s)).range(t.length)):i=t.map((t,e)=>{if(void 0===t[this.pk])throw new o("Primary key is not defined for model in position "+e);return t[this.pk]}),t=await Promise.all(t.map(async(t,e)=>(t=new this.class(t),s.type&&(t[this.pk]="String"!==s.type||s.generated?i[e]:""+t[this.pk]),await g(this,r.context,t,u.CREATE,u.ON),t)));const a=r.context.get("ignoredValidationProperties")||[],n=(await Promise.all(t.map(t=>Promise.resolve(t.hasErrors(...a))))).reduce((t,e,r)=>(e&&(t="string"==typeof t?t+`\n - ${r}: ${e.toString()}`:` - ${r}: ${e.toString()}`),t),void 0);if(n)throw new y(n);return[t,...r.args]}async readPrefix(t,...e){const r=await l.args(u.READ,this.class,e,this.adapter,this._overrides||{}),s=new this.class;return s[this.pk]=t,await g(this,r.context,s,u.READ,u.ON),[t,...r.args]}async read(t,...e){const r=await this.adapter.read(this.tableName,t,...e);return this.adapter.revert(r,this.class,this.pk,t)}async readAllPrefix(t,...e){const r=await l.args(u.READ,this.class,e,this.adapter,this._overrides||{});return await Promise.all(t.map(async t=>{const e=new this.class;return e[this.pk]=t,g(this,r.context,e,u.READ,u.ON)})),[t,...r.args]}async readAll(t,...e){return(await this.adapter.readAll(this.tableName,t,...e)).map((e,r)=>this.adapter.revert(e,this.class,this.pk,t[r]))}async update(t,...e){let{record:r,id:s,transient:i}=this.adapter.prepare(t,this.pk);return r=await this.adapter.update(this.tableName,s,r,...e),this.adapter.revert(r,this.class,this.pk,s,i)}async updatePrefix(t,...e){const r=await l.args(u.UPDATE,this.class,e,this.adapter,this._overrides||{}),s=t[this.pk];if(!s)throw new o("No value for the Id is defined under the property "+this.pk);const i=await this.read(s,...r.args);t=this.merge(i,t),await g(this,r.context,t,u.UPDATE,u.ON,i);const a=await Promise.resolve(t.hasErrors(i,...vt.relations(this.class),...r.context.get("ignoredValidationProperties")||[]));if(a)throw new y(a.toString());return vt.getMetadata(i)&&(vt.getMetadata(t)||vt.setMetadata(t,vt.getMetadata(i))),[t,...r.args]}async updateAll(t,...e){const r=t.map(t=>this.adapter.prepare(t,this.pk));return(await this.adapter.updateAll(this.tableName,r.map(t=>t.id),r.map(t=>t.record),...e)).map((t,e)=>this.adapter.revert(t,this.class,this.pk,r[e].id))}async updateAllPrefix(t,...e){const r=await l.args(u.UPDATE,this.class,e,this.adapter,this._overrides||{}),s=t.map(t=>{const e=t[this.pk];if(!e)throw new o("missing id on update operation");return e}),i=await this.readAll(s,...r.args);t=t.map((t,e)=>(t=this.merge(i[e],t),vt.getMetadata(i[e])&&(vt.getMetadata(t)||vt.setMetadata(t,vt.getMetadata(i[e]))),t)),await Promise.all(t.map((t,e)=>g(this,r.context,t,u.UPDATE,u.ON,i[e])));const a=r.context.get("ignoredValidationProperties")||[],n=(await Promise.all(t.map((t,e)=>Promise.resolve(t.hasErrors(i[e],t,...a))))).reduce((t,e,r)=>(e&&(t="string"==typeof t?t+`\n - ${r}: ${e.toString()}`:` - ${r}: ${e.toString()}`),t),void 0);if(n)throw new y(n);return t.forEach((t,e)=>{vt.getMetadata(i[e])&&(vt.getMetadata(t)||vt.setMetadata(t,vt.getMetadata(i[e])))}),[t,...r.args]}async deletePrefix(t,...e){const r=await l.args(u.DELETE,this.class,e,this.adapter,this._overrides||{}),s=await this.read(t,...r.args);return await g(this,r.context,s,u.DELETE,u.ON),[t,...r.args]}async delete(t,...e){const r=await this.adapter.delete(this.tableName,t,...e);return this.adapter.revert(r,this.class,this.pk,t)}async deleteAllPrefix(t,...e){const r=await l.args(u.DELETE,this.class,e,this.adapter,this._overrides||{}),s=await this.readAll(t,...r.args);return await Promise.all(s.map(async t=>g(this,r.context,t,u.DELETE,u.ON))),[t,...r.args]}async deleteAll(t,...e){return(await this.adapter.deleteAll(this.tableName,t,...e)).map((e,r)=>this.adapter.revert(e,this.class,this.pk,t[r]))}select(t){return this.adapter.Statement().select(t).from(this.class)}async query(t,e,r=Z.ASC,s,i){const a=[e,r],n=this.select().where(t).orderBy(a);return s&&n.limit(s),i&&n.offset(i),n.execute()}attr(t){return mt.attr(t)}observe(t,e){this.observerHandler||Object.defineProperty(this,"observerHandler",{value:this.ObserverHandler(),writable:!1});const r=this.log.for(this.observe),s=vt.table(this.class);this.adapter.observe(this,t=>s===t),r.verbose(`now observing ${this.adapter} filtering on table === ${s}`),this.observerHandler.observe(t,e),r.verbose("Registered new observer "+t.toString())}unObserve(t){if(!this.observerHandler)throw new o("ObserverHandler not initialized. Did you register any observables?");this.observerHandler.unObserve(t),this.log.for(this.unObserve).verbose(`Observer ${t.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(t,e,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,t,e,Array.isArray(r)?r.map(t=>pt.parseValue(this.pkProps.type,t)):pt.parseValue(this.pkProps.type,r),...s)}async refresh(t,e,r,...s){return this.updateObservers(t,e,r,...s)}static forModel(t,e,...r){let s;const i=e||Reflect.getMetadata(ut.key(J.ADAPTER),t)||ut.currentFlavour;try{s=this.get(t,i)}catch(t){s=void 0}if(s instanceof vt)return s;const a=e||Reflect.getMetadata(ut.key(J.ADAPTER),t)||s&&Reflect.getMetadata(ut.key(J.ADAPTER),s)||ut.currentFlavour,n=a?ut.get(a):void 0;if(!n)throw new o("No registered persistence adapter found flavour "+a);return s=s||n.repository(),new s(n,t,...r)}static get(t,e){const r=vt.table(t);let s=r;if(e&&(s=[r,e].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(t,e,r){let s=vt.table(t);if(r&&(s=[s,r].join(m)),s in this._cache&&this._cache[s]instanceof vt)throw new o(s+" already has a registered instance");this._cache[s]=e}static setMetadata(t,e){Object.defineProperty(t,J.METADATA,{enumerable:!1,configurable:!0,writable:!1,value:e})}static getMetadata(t){const e=Object.getOwnPropertyDescriptor(t,J.METADATA);return e?e.value:void 0}static removeMetadata(t){Object.getOwnPropertyDescriptor(t,J.METADATA)&&delete t[J.METADATA]}static getSequenceOptions(t){const e=b(t).id,r=Reflect.getMetadata(vt.key(p.ID),t,e);if(!r)throw new o("No sequence options defined for model. did you use the @pk decorator?");return r}static indexes(t){const e=X.getAllPropertyDecorators(t instanceof D?t:new t,p.REFLECT);return Object.entries(e||{}).reduce((t,[e,r])=>{const s=r.filter(t=>t.key.startsWith(J.INDEX));if(s&&s.length)for(const r of s){const{key:s,props:i}=r;t[e]=t[e]||{},t[e][s]=i}return t},{})}static relations(t){const e=[];let r=t instanceof D?Object.getPrototypeOf(t):t.prototype;for(;null!=r;){const t=r[J.RELATIONS];t&&e.push(...t),r=Object.getPrototypeOf(r)}return e}static table(t){return at(t)}static column(t,e){return nt(t,e)}}function Ot(t,e){if(!e){const r=ut.key(J.ADAPTER);if(!(e=Reflect.getMetadata(r,t instanceof D?t.constructor:t)))throw new o("Could not retrieve flavour from model "+(t instanceof D?t.constructor.name:t.name))}return j(J.INJECTABLE,e,at(t))}i([tt(),a("design:type",Function),a("design:paramtypes",[Object,Function]),a("design:returntype",void 0)],vt.prototype,"observe",null),i([tt(),a("design:type",Function),a("design:paramtypes",[Object]),a("design:returntype",void 0)],vt.prototype,"unObserve",null),ut&&(ut._baseRepository=vt);class At extends t{get log(){return this.logger||(this.logger=Y.for(this)),this.logger}constructor(){super()}get(t,r){const s=this.log.for(this.get);let i;try{i=super.get(t)}catch{}if(!i){let a;if("function"==typeof t?a=t:"symbol"!=typeof t&&"string"!=typeof t||(a=D.get(t.toString())),!a)return;const n=ut.key(J.ADAPTER),o=r||Reflect.getMetadata(n,a);try{let t=o;try{o&&ut.get(o)}catch{const e=ut.current;e&&e.flavour===o&&(t=e.alias)}if(i=vt.forModel(a,t),i instanceof vt)return i;const r=o||Reflect.getMetadata(n,i.constructor)||Reflect.getMetadata(n,a);e.register(i,Ot(a,r))}catch(t){s.debug("No registered repository or adapter found. falling back to default adapter. Error: "+(t?.message||JSON.stringify(t)));const e=vt.get(a,o);if("function"==typeof e){const t=o?ut.get(o):ut.current;if(!t)return;return new e(t,a)}}}return i}}class Et extends H{constructor(){super()}async initialize(){if(!this.adapter)return void this.log.verbose("No adapter observed for dispatch; skipping initialization");const t=this.adapter;[u.CREATE,u.UPDATE,u.DELETE,w.CREATE_ALL,w.UPDATE_ALL,w.DELETE_ALL].forEach(e=>{if(!t[e])throw new o(`Method ${e} not found in ${t.alias} adapter to bind Observables Dispatch`);let r=Object.getOwnPropertyDescriptor(t,e),s=t;for(;!r&&s!==Object.prototype;)s=Object.getPrototypeOf(s),r=Object.getOwnPropertyDescriptor(s,e);r&&r.writable?t[e]=new Proxy(t[e],{apply:async(t,r,s)=>{const[i,a]=s,n=await t.apply(r,s);return this.updateObservers(i,(t=>{switch(t){case w.CREATE_ALL:return u.CREATE;case w.UPDATE_ALL:return u.UPDATE;case w.DELETE_ALL:return u.DELETE;default:return t}})(e),a).then(()=>{this.log.verbose(`Observer refresh dispatched by ${e} for ${i}`),this.log.debug("pks: "+a)}).catch(t=>this.log.error(`Failed to dispatch observer refresh for ${e} on ${i}: ${t}`)),n}}):this.log.error(`Could not find method ${e} to bind Observables Dispatch`)})}async close(){}observe(t){if(!(t instanceof ut))throw new ct("Only Adapters can be observed by dispatch");this.adapter=t,this.models=ut.models(this.adapter.alias),this.initialize().then(()=>this.log.verbose(`Dispatch initialized for ${this.adapter.alias} adapter`))}unObserve(t){if(this.adapter!==t)throw new ct("Only the adapter that was used to observe can be unobserved");this.adapter=void 0}async updateObservers(t,e,r){if(this.adapter)try{await this.adapter.refresh(t,e,r)}catch(t){throw new o("Failed to refresh dispatch: "+t)}else this.log.verbose(`No adapter observed for dispatch; skipping observer update for ${t}:${e}`)}}function Tt(t,e,r,s){const i=async function(...t){let s;try{s=await Promise.resolve(r.call(this,...t))}catch(t){if(t instanceof dt)return;throw t}return Promise.resolve(e.apply(this,s))}.bind(t),a=s||e.name;Object.defineProperty(i,"name",{enumerable:!0,configurable:!0,writable:!1,value:a}),t[a]=i}ut&&(ut._baseDispatch=Et);class Nt extends H{constructor(){super(),this.transaction=!0,[this.up,this.down].forEach(t=>{const e=t.name;Tt(this,t,this.prefix(e))})}get adapter(){const t=q.get(this.constructor,J.MIGRATION);if(!t)throw new o("No migration metadata for "+this.constructor.name);const e=t.flavour;return ut.get(e)}async enforceRules(t,e,r){const s=q.get(this.constructor,J.MIGRATION)?.rules;if(!s||!s.length)return!0;let i;for(const a of s)if(i=r.for(a),!await a(t,e,i))return!1;return!0}prefix(t){return async function(e){let r;e instanceof ut?r=this.getQueryRunner(e.client):(r=e,e=this.adapter);const s=this.log.for(t);if(!await this.enforceRules(r,e,s))throw s.verbose(`Skipping migration ${this.constructor.name} due to rules`),new dt("Migration skipped for rule enforcement");return[r,e,s]}.bind(this)}}function Rt(t,e){return k.for(J.MIGRATION).define({decorator:(t,e)=>r=>{const s=q.innerGet(Symbol.for(J.MIGRATION),t)||[];return q.set(J.MIGRATION,t,[...s,{class:r}]),z(J.MIGRATION,{flavour:t,rules:e})(r)},args:[t,e]}).apply()}function _t(t,e){return(i,a)=>a?r(t[x.ANCHOR]||t)(i,a):(W(vt.key(p.REPOSITORY),i.name)(t),e=e||Reflect.getMetadata(ut.key(J.ADAPTER),i),vt.register(t[x.ANCHOR]||t,i,e),s(t[x.ANCHOR]||t,{callback:e=>(Object.defineProperty(e,p.CLASS,{enumerable:!1,configurable:!1,writable:!1,value:t}),e)})(i))}q.validationExceptions=((t,e)=>{const r=q.get(t,J.NO_VALIDATE);return r?Object.entries(r).filter(([,t])=>t.includes(e)).map(([t])=>t):[]}).bind(q),q.migrationsFor=(t=>{if(!(t=t??ut.current))throw new o("Could not get adapter for migrations");return q.innerGet(Symbol.for(J.MIGRATION),t.alias).map(t=>t.class)}).bind(q);class Pt extends o{constructor(t){super(t,Pt.name,500)}}const Dt={type:void 0,generated:!1,startWith:0,incrementBy:1,cycle:!1},xt=Dt,St={type:"Number",generated:!0,startWith:0,incrementBy:1,cycle:!1},kt=Object.assign({},St,{type:"BigInt"});async function $t(t,e,r,s){if(!s){const e=D.get(t.constructor.name);if(!e)throw new o("Could not find model "+t.constructor.name);s=vt.forModel(e,r)}if(void 0===t[s.pk])return s.create(t,e);try{return s.update(t,e)}catch(r){if(!(r instanceof v))throw r;return s.create(t,e)}}async function Mt(t,e,r,s){const i=s[r];if(!i)return;if("object"!=typeof i){const e=Yt(s,r,this.adapter.alias),a=await e.read(i);return await Gt(t,s,r,i,a),void(s[r]=i)}e.class="string"==typeof e.class?e.class:e.class().name;const a=D.get(e.class);if(!a)throw new o("Could not find model "+e.class);const n=vt.forModel(a,this.adapter.alias),c=await n.create(i),l=b(c).id;await Gt(t,s,r,c[l],c),s[r]=c[l]}async function It(t,e,r,s){const i=s[r];if(!i)return;if(e.cascade.update!==K.CASCADE)return;if("object"!=typeof i){const e=Yt(s,r,this.adapter.alias),a=await e.read(i);return await Gt(t,s,r,i,a),void(s[r]=i)}const a=await $t(s[r],t,this.adapter.alias),n=b(a).id;await Gt(t,s,r,a[n],a),s[r]=a[n]}async function jt(t,e,r,s){const i=s[r];if(!i)return;if(e.cascade.update!==K.CASCADE)return;const a=Yt(s,r,this.adapter.alias);let n;n=i instanceof D?await a.delete(s[r][a.pk]):await a.delete(s[r]),await Gt(t,s,r,n[a.pk],n)}async function Lt(t,e,r,s){const i=s[r];if(!i||!i.length)return;const a=typeof i[0];if(!i.every(t=>typeof t===a))throw new o(`Invalid operation. All elements of property ${r} must match the same type.`);const n=new Set([...i]);if("object"!==a){const e=Yt(s,r,this.adapter.alias);for(const i of n){const a=await e.read(i);await Gt(t,s,r,i,a)}return void(s[r]=[...n])}const c=b(i[0]).id,l=new Set;for(const e of i){const i=await $t(e,t,this.adapter.alias);await Gt(t,s,r,i[c],i),l.add(i[c])}s[r]=[...l]}async function Ct(t,e,r,s){const{cascade:i}=e;if(i.update===K.CASCADE)return Lt.call(this,t,e,r,s)}async function Bt(t,e,r,s){if(e.cascade.delete!==K.CASCADE)return;const i=s[r];if(!i||!i.length)return;const a=typeof i[0];if(!i.every(t=>typeof t===a))throw new o(`Invalid operation. All elements of property ${r} must match the same type.`);const n="object"===a,c=n?vt.forModel(i[0],this.adapter.alias):Yt(s,r,this.adapter.alias),l=new Set([...n?i.map(t=>t[c.pk]):i]);for(const e of l.values()){const i=await c.delete(e);await Gt(t,s,r,e,i)}s[r]=[...l]}function Ft(t,e,r){return[J.POPULATE,t,e,r].join(".")}async function Gt(t,e,r,s,i){const a=Ft(e.constructor.name,r,s);return t.accumulate({[a]:i})}async function Ut(t,e,r,s){if(!e.populate)return;const i=s[r],a=Array.isArray(i);if(void 0===i||a&&0===i.length)return;const n=await(async(t,e,r,s,i)=>{let a,n;const c=[];for(const l of s){a=Ft(e.constructor.name,r,l);try{n=await t.get(a)}catch(t){const s=Yt(e,r,i);if(!s)throw new o("Could not find repo");n=await s.read(l)}c.push(n)}return c})(t,s,r,a?i:[i],this.adapter.alias);s[r]=a?n:n[0]}const Ht=["array","string","number","boolean","symbol","function","object","undefined","null","bigint"];function Yt(t,e,r){const s=Reflect.getMetadata(L.key(Array.isArray(t[e])?C.LIST:C.TYPE),t,e),i=Array.isArray(t[e])?s.clazz:s.customTypes;if(!s||!i)throw new o("Failed to find types decorators for property "+e);const a=(Array.isArray(i)?[...i]:[i]).map(t=>"function"==typeof t?t():t).find(t=>!Ht.includes((""+t).toLowerCase()));if(!a)throw new o(`Property key ${e} does not have a valid constructor type`);const n=D.get(a);if(!n)throw new o("No registered model found for "+a);return vt.forModel(n,r)}function qt(t){return e=>{const r=ut.key(J.TABLE);return k.for(r).define({decorator:W,args:[r,t||e.name.toLowerCase()]}).apply()(e)}}function zt(t){const e=ut.key(J.COLUMN);return k.for(e).define({decorator:(t,e)=>(r,s)=>B(t,e||s)(r,s),args:[e,t]}).apply()}function Vt(t,e,r){return k.for(J.INDEX).define({decorator:(t,e,r)=>("string"==typeof t&&(r=t,t=void 0,e=void 0),"string"==typeof e&&(r=e,e=void 0),!e&&t&&t.find(t=>![Z.ASC,Z.DSC].includes(t))&&(e=t,t=void 0),B(vt.key(`${J.INDEX}${e&&e.length?"."+e.join("."):""}`),{directions:t,compositions:e,name:r})),args:[t,e,r]}).apply()}async function Qt(t,e,r,s){if(s[r]&&(await this.select().where(mt.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 Wt(){const t=vt.key(J.UNIQUE);return k.for(t).define(A(Qt),B(t,{})).apply()}async function Xt(t,e,r,s){throw new et("This adapter does not support user identification")}function Jt(){const t=vt.key(J.CREATED_BY);return k.for(t).define(E(Xt),B(t,{})).apply()}function Zt(){const t=vt.key(J.UPDATED_BY);return k.for(t).define(A(Xt),B(t,{})).apply()}function Kt(){return T([u.CREATE])}function te(){return T()}function ee(t,e=ht,r=!0,s,i){const a=vt.key(J.ONE_TO_ONE);return k.for(a).define({decorator:(t,e,r,s,i)=>{const n={class:t.name?t.name:t,cascade:e,populate:r};return s&&(n.joinTable=s),i&&(n.name=i),Q(F(J.RELATIONS),G([t.name?t.name:t,String.name,Number.name,BigInt.name]),E(Mt,n),N(It,n),R(jt,n),_(Ut,n),B(a,n))},args:[t,e,r,s,i]}).apply()}function re(t,e=ht,r=!0,s,i){const a=vt.key(J.ONE_TO_MANY);return k.for(a).define({decorator:(t,e,r,s,i)=>{const n={class:t.name?t.name:t,cascade:e,populate:r};return s&&(n.joinTable=s),i&&(n.name=i),Q(F(J.RELATIONS),U([t,String,Number,BigInt]),E(Lt,n),N(Ct,n),R(Bt,n),_(Ut,n),B(a,n))},args:[t,e,r,s,i]}).apply()}function se(t,e=ht,r=!0,s,i){const a=vt.key(J.MANY_TO_ONE);return k.for(a).define({decorator:(t,e,r,s,i)=>{const n={class:t?.name?t.name:t,cascade:e,populate:r};return s&&(n.joinTable=s),i&&(n.name=i),Q(F(J.RELATIONS),G([()=>(t?.name?t:t()).name,String.name,Number.name,BigInt.name]),B(a,n))},args:[t,e,r,s,i]}).apply()}function ie(t,e=ht,r=!0,s,i){const a=vt.key(J.MANY_TO_MANY);return k.for(a).define({decorator:(t,e,r,s,i)=>{const n={class:t.name?t.name:t,cascade:e,populate:r};return s&&(n.joinTable=s),i&&(n.name=i),Q(F(J.RELATIONS),U([t.name?t.name:t,String.name,Number.name,BigInt.name]),B(a,n))},args:[t,e,r,s,i]}).apply()}function ae(...t){return(e,r)=>{const s=q.get(e,q.key(J.NO_VALIDATE,r))||[],i=[...new Set([...s,...t])];return V(z(q.key(J.NO_VALIDATE,r),i))(e,r)}}function ne(){return ae(u.CREATE)}function oe(){return ae(u.UPDATE)}function ce(){return ae(u.UPDATE,u.CREATE)}async function le(t,e,r,s){if(!e.type||!e.generated||s[r])return;let i;e.name||(e.name=ot(s,"pk"));try{i=await this.adapter.Sequence(e)}catch(t){throw new o(`Failed to instantiate Sequence ${e.name}: ${t}`)}const a=await i.next();Object.defineProperty(s,r,{enumerable:!0,writable:!1,configurable:!0,value:a})}function de(t=xt){t=Object.assign({},xt,t,{generated:!(!t.type||void 0!==t.generated)||t.generated||xt.generated});const e=vt.key(p.ID);return k.for(e).define({decorator:(t,r)=>(s,i)=>Q(Vt([Z.ASC,Z.DSC]),I(),P(),B(e,t),E(le,t,r),B(p.ID,i))(s,i),args:[t,{priority:60}]}).apply()}class ue extends D{constructor(t){super(t)}}i([Kt(),a("design:type",Date)],ue.prototype,"createdOn",void 0),i([te(),a("design:type",Date)],ue.prototype,"updatedOn",void 0);class he{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(t,e,r,s){this.adapter=t,this.query=e,this.size=r,this.clazz=s}async next(){return this.page(this.current+1)}async previous(){return this.page(this.current-1)}validatePage(t){if(1>t||!Number.isInteger(t))throw new bt("Page number cannot be under 1 and must be an integer");if(void 0!==this._totalPages&&t>this._totalPages)throw new bt(`Only ${this._totalPages} are available. Cannot go to page ${t}`);return t}}var pe,fe,ge,ye,be;class me extends H{constructor(t){super(),this.adapter=t}get log(){return this.adapter.log.for(me)}select(t){return Object.defineProperty(this,"selectSelector",{value:t,writable:!1}),this}distinct(t){return this.distinctSelector=t,this}max(t){return this.maxSelector=t,this}min(t){return this.minSelector=t,this}count(t){return this.countSelector=t,this}from(t){if(this.fromSelector="string"==typeof t?D.get(t):t,!this.fromSelector)throw new yt("Could not find selector model: "+t);return this}where(t){return this.whereCondition=t,this}orderBy(t){return this.orderBySelector=t,this}groupBy(t){return this.groupBySelector=t,this}limit(t){return this.limitSelector=t,this}offset(t){return this.offsetSelector=t,this}async execute(){try{const t=this.build();return await this.raw(t)}catch(t){throw new o(t)}}async raw(t){const e=await this.adapter.raw(t);if(!this.selectSelector)return e;const r=b(new this.fromSelector).id,s=function(t){const e=t[r];return this.adapter.revert(t,this.fromSelector,r,e)}.bind(this);return Array.isArray(e)?e.map(s):s(e)}}i([tt(),a("design:type",Function),a("design:paramtypes",[Array]),a("design:returntype",Object)],me.prototype,"select",null),i([tt(),a("design:type",Function),a("design:paramtypes",["function"==typeof(pe="undefined"!=typeof S&&S)?pe:Object]),a("design:returntype",Object)],me.prototype,"distinct",null),i([tt(),a("design:type",Function),a("design:paramtypes",["function"==typeof(fe="undefined"!=typeof S&&S)?fe:Object]),a("design:returntype",Object)],me.prototype,"max",null),i([tt(),a("design:type",Function),a("design:paramtypes",["function"==typeof(ge="undefined"!=typeof S&&S)?ge:Object]),a("design:returntype",Object)],me.prototype,"min",null),i([tt(),a("design:type",Function),a("design:paramtypes",["function"==typeof(ye="undefined"!=typeof S&&S)?ye:Object]),a("design:returntype",Object)],me.prototype,"count",null),i([tt(),a("design:type",Function),a("design:paramtypes",[Object]),a("design:returntype",Object)],me.prototype,"from",null),i([tt(),a("design:type",Function),a("design:paramtypes",[mt]),a("design:returntype",Object)],me.prototype,"where",null),i([tt(),a("design:type",Function),a("design:paramtypes",[Array]),a("design:returntype",Object)],me.prototype,"orderBy",null),i([tt(),a("design:type",Function),a("design:paramtypes",[Object]),a("design:returntype",Object)],me.prototype,"groupBy",null),i([tt(),a("design:type",Function),a("design:paramtypes",[Number]),a("design:returntype",Object)],me.prototype,"limit",null),i([tt(),a("design:type",Function),a("design:paramtypes",[Number]),a("design:returntype",Object)],me.prototype,"offset",null),i([tt(),a("design:type",Function),a("design:paramtypes",[]),a("design:returntype",Promise)],me.prototype,"execute",null),(t=>{t.FIND_BY="findBy",t.SELECT="Select",t.AND="And",t.OR="Or",t.GROUP_BY="GroupBy",t.ORDER_BY="OrderBy",t.THEN="Then",t.THEN_BY="ThenBy"})(be||(be={}));const we={Equals:(t,e)=>mt.attribute(t).eq(e),Diff:(t,e)=>mt.attribute(t).dif(e),LessThan:(t,e)=>mt.attribute(t).lt(e),LessThanEqual:(t,e)=>mt.attribute(t).lte(e),GreaterThan:(t,e)=>mt.attribute(t).gt(e),GreaterThanEqual:(t,e)=>mt.attribute(t).gte(e),Between:(t,e,r)=>mt.attribute(t).gte(e).and(mt.attribute(t).lte(r)),In:(t,e)=>mt.attribute(t).in(e),Matches:(t,e)=>mt.attribute(t).regexp(e)},ve=t=>t.charAt(0).toLowerCase()+t.slice(1);class Oe{static build(t,...e){if(!t.startsWith(be.FIND_BY))throw Error("Unsupported method "+t);const r=this.extractCore(t),s=this.extractSelect(t),i=this.extractGroupBy(t),a=this.buildWhere(r,e),{orderBy:n,limit:o,offset:c}=this.extractOrderLimitOffset(r,e);return{action:"find",select:s,where:a,groupBy:i,orderBy:n,limit:o,offset:c}}static extractCore(t){const e=t.substring(be.FIND_BY.length),r=e.match(/(Then[A-Z]|OrderBy|GroupBy|Limit|Offset)/);return r?e.substring(0,r.index):e}static extractSelect(t){const e=t.indexOf(be.SELECT);if(-1===e)return;const r=t.substring(e+be.SELECT.length),s=r.match(/(Then[A-Z]|OrderBy|GroupBy|Limit|Offset)/);return(s?r.substring(0,s.index):r).split(be.AND).map(ve).filter(Boolean)}static extractGroupBy(t){const e=t.indexOf(be.GROUP_BY);if(-1!==e)return t.substring(e+be.GROUP_BY.length).split(be.ORDER_BY)[0].split(be.THEN_BY).map(ve).filter(Boolean)}static buildWhere(t,e){const r=(t.split(/OrderBy|GroupBy/)[0]||"").split(/And|Or/),s=t.match(/And|Or/g)||[];let i;if(r.forEach((t,r)=>{const{field:a,operator:n}=this.parseFieldAndOperator(t),o=n?we[n]:we.Equals;if(!o)throw Error("Unsupported operator "+n);const c=e[r];if(void 0===c)throw Error("Invalid value for field "+a);const l=o(a,c);i=0===r?l:s[r-1]===be.AND?i.and(l):i.or(l)}),!i)throw Error("No conditions found in method name");return i}static parseFieldAndOperator(t){for(const e of Object.keys(we))if(t.endsWith(e)){const r=t.slice(0,-e.length);return{field:ve(r),operator:e}}return{field:ve(t)}}static extractOrderLimitOffset(t,e){const r=t.split(/And|Or/).length,s=e.slice(r);let i,a,n;return s.length>=1&&Array.isArray(s[0])&&(i=s[0]),2>s.length||"number"!=typeof s[1]||(a=s[1]),3>s.length||"number"!=typeof s[2]||(n=s[2]),{orderBy:i,limit:a,offset:n}}}function Ae(t={}){return(e,r,s)=>{const i=r.toString();s.value=function(...e){const{select:r,where:s,groupBy:a,orderBy:n,limit:o,offset:c}=Oe.build(i,...e);let l=this.select(r);s&&(l=l.where(s));const{allowLimit:d,allowOffset:u,allowOrderBy:h,throws:p}={allowLimit:!0,allowOrderBy:!0,allowOffset:!0,throws:!0,...t},f=[{key:"orderBy",value:(n||[])[0],allowed:h},{key:"limit",value:o,allowed:d},{key:"offset",value:c,allowed:u}];for(const t of f)if(void 0!==t.value){if(!t.allowed&&p)throw new yt(t.key[0].toUpperCase()+t.key.slice(1)+" is not allowed for this query");t.allowed&&(l=l[t.key](t.value))}return l.execute()}}}e.setRegistry(new At);const Ee="##VERSION##",Te="##PACKAGE##";q.registerLibrary(Te,Ee);export{Nt as AbsMigration,ut as Adapter,et as AuthorizationError,ue as BaseModel,kt as BigIntSequence,K as Cascade,mt as Condition,st as ConnectionError,ht as DefaultCascade,xt as DefaultSequenceOptions,Et as Dispatch,rt as ForbiddenError,gt as GroupOperator,At as InjectablesRegistry,Oe as MethodQueryBuilder,lt as MigrationError,dt as MigrationRuleError,Dt as NoneSequenceOptions,St as NumericSequence,Pt as ObserverError,it as ObserverHandler,ft as Operator,we as OperatorsMap,Z as OrderDirection,Te as PACKAGE_NAME,he as Paginator,bt as PagingError,J as PersistenceKeys,be as QueryClause,yt as QueryError,vt as Repository,pt as Sequence,me as Statement,ct as UnsupportedError,Ee as VERSION,Gt as cacheModelForPopulate,zt as column,$t as createOrUpdate,Kt as createdAt,Jt as createdBy,Xt as createdByOnCreateUpdate,tt as final,Ot as generateInjectableNameForRepository,nt as getColumnName,Ft as getPopulateKey,at as getTableName,Vt as index,ie as manyToMany,se as manyToOne,Rt as migration,ae as noValidateOn,ne as noValidateOnCreate,ce as noValidateOnCreateUpdate,oe as noValidateOnUpdate,re as oneToMany,Lt as oneToManyOnCreate,Bt as oneToManyOnDelete,Ct as oneToManyOnUpdate,ee as oneToOne,Mt as oneToOneOnCreate,jt as oneToOneOnDelete,It as oneToOneOnUpdate,de as pk,le as pkOnCreate,Ut as populate,Tt as prefixMethod,Ae as query,_t as repository,Yt as repositoryFromTypeMetadata,ot as sequenceNameForModel,qt as table,Wt as unique,Qt as uniqueOnCreateUpdate,te as updatedAt,Zt as updatedBy,wt as uses};
|
|
1
|
+
import{InjectableRegistryImp as t,Injectables as e,inject as r,injectable as s}from"@decaf-ts/injectable-decorators";import{__decorate as i,__metadata as n}from"tslib";import{BadRequestError as a,InternalError as o,Context as c,DefaultRepositoryFlags as l,OperationKeys as u,Repository as d,wrapMethodWithContext as h,enforceDBDecorators as p,ValidationError as f,DBKeys as g,DefaultSeparator as y,BulkCrudOperationKeys as w,NotFoundError as b,ConflictError as m,onCreateUpdate as v,timestamp as O,onCreate as A,onUpdate as E,onDelete as T,afterAny as N,readonly as _,BaseError as x}from"@decaf-ts/db-decorators";import{Model as D,hashObj as P,required as R,sf as $,ModelKeys as k,ValidationKeys as I,type as C,list as j,model as B}from"@decaf-ts/decorator-validation";import{LoggedClass as L,Logging as M,isClass as F}from"@decaf-ts/logging";import{Metadata as U,Decoration as G,DefaultFlavour as H,DecorationKeys as q,uses as Y,metadata as z,propMetadata as V,apply as Q,prop as W}from"@decaf-ts/decoration";import{Lock as X}from"@decaf-ts/transactional-decorators";var J;function Z(){return(t,e,r)=>{if(!r)throw Error("final decorator can only be used on methods");return r?.configurable&&(r.configurable=!1),r}}(t=>{t.INDEX="index",t.UNIQUE="unique",t.ADAPTER="adapter",t.INJECTABLE="decaf_{0}_adapter_for_{1}",t.TABLE="table",t.COLUMN="column",t.METADATA="__metadata",t.OWNERSHIP="ownership",t.CREATED_BY="ownership.created-by",t.UPDATED_BY="ownership.updated-by",t.RELATIONS="__relations",t.RELATION="relation",t.ONE_TO_ONE="relation.one-to-one",t.ONE_TO_MANY="relation.one-to-many",t.MANY_TO_ONE="relation.many-to-one",t.MANY_TO_MANY="relation.many-to-many",t.POPULATE="populate",t.NO_VALIDATE="no-validate",t.MIGRATION="migration"})(J||(J={}));class K extends a{constructor(t,e=K.name,r=401){super(t,e,r)}}class tt extends K{constructor(t,e=tt.name){super(t,e,403)}}class et extends o{constructor(t){super(t,et.name,503)}}class rt{constructor(){this.observers=[]}count(){return this.observers.length}observe(t,e){if(-1!==this.observers.map(t=>t.observer).indexOf(t))throw new o("Observer already registered");this.observers.push({observer:t,filter:e})}unObserve(t){const e=this.observers.map(t=>t.observer).indexOf(t);if(-1===e)throw new o("Failed to find Observer");this.observers.splice(e,1)}async updateObservers(t,e,r,s,...i){(await Promise.allSettled(this.observers.filter(i=>{const{filter:n}=i;if(!n)return!0;try{return n(e,r,s)}catch(e){return t.error(`Failed to filter observer ${i.observer.toString()}: ${e}`),!1}}).map(t=>{t.observer.refresh(e,r,s,...i)}))).forEach((e,r)=>{"rejected"===e.status&&t.error(`Failed to update observable ${this.observers[r].toString()}: ${e.reason}`)})}}function st(t){if(!(t instanceof D?D.get(t.constructor.name):t))throw new o("Unable to find model "+t);return U.get(t instanceof D?t.constructor:t,J.TABLE)||(t instanceof D?t.constructor.name:t.name)}function it(t,e){return U.get(t instanceof D?t.constructor:t,U.key(J.COLUMN,e))||e}function nt(t,...e){return[st(t),...e].join("_")}class at extends o{constructor(t){super(t,at.name,500)}}class ot extends o{constructor(t,e=ot.name){super(t,e,500)}}class ct extends ot{constructor(t){super(t,ct.name)}}const lt=G.flavourResolver.bind(G);G.flavourResolver=t=>{try{const e=lt(t);if(e&&e!==H)return e;const r="function"==typeof t?t:t?.constructor,s=r&&"function"==typeof U.registeredFlavour?U.registeredFlavour(r):void 0;if(s&&s!==H)return s;const i=ut._currentFlavour;if(i){const t=ut._cache?.[i];return t?.flavour?t.flavour:i}}catch(t){return H}};class ut extends L{static{this._cache={}}get config(){return this._config}get alias(){return this._alias||this.flavour}repository(){if(!ut._baseRepository)throw new o("This should be overridden when necessary. Otherwise it will be replaced lazily");return ut._baseRepository}async shutdownProxies(t){if(this.proxies){if(t&&!(t in this.proxies))throw new o("No proxy found for "+t);if(t)try{await this.proxies[t].shutdown(),delete this.proxies[t]}catch(e){this.log.error(`Failed to shutdown proxied adapter ${t}: ${e}`)}else for(const t in this.proxies){try{await this.proxies[t].shutdown()}catch(e){this.log.error(`Failed to shutdown proxied adapter ${t}: ${e}`);continue}delete this.proxies[t]}}}async shutdown(){await this.shutdownProxies(),this.dispatch&&await this.dispatch.close()}constructor(t,e,r){if(super(),this._config=t,this.flavour=e,this._alias=r,this.Context=c,this.alias in ut._cache)throw new o(`${this.alias} persistence adapter ${this._alias?`(${this.flavour}) `:""} already registered`);ut._cache[this.alias]=this,this.log.info(`Created ${this.alias} persistence adapter ${this._alias?`(${this.flavour}) `:""} persistence adapter`),ut._currentFlavour||(this.log.verbose(`Defined ${this.alias} persistence adapter as current`),ut._currentFlavour=this.alias)}Dispatch(){return new ut._baseDispatch}ObserverHandler(){return new rt}isReserved(t){return!t}async initialize(...t){}async flags(t,e,r,...s){return Object.assign({},l,r,{affectedTables:st(e),writeOperation:t!==u.READ,timestamp:new Date,operation:t,ignoredValidationProperties:U.validationExceptions(e,t)})}async context(t,e,r,...s){this.log.for(this.context).debug(`Creating new context for ${t} operation on ${r.name} model with flag overrides: ${JSON.stringify(e)}`);const i=await this.flags(t,r,e,...s);return(new this.Context).accumulate(i)}prepare(t,e){const r=this.log.for(this.prepare),s=t.toTransient(),i=Object.entries(s.model).reduce((e,[r,s])=>{if(void 0===s)return e;const i=it(t,r);if(this.isReserved(i))throw new o(`Property name ${i} is reserved`);return e[i]=s,e},{});return t[J.METADATA]&&(r.silly("Passing along persistence metadata for "+t[J.METADATA]),Object.defineProperty(i,J.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:t[J.METADATA]})),{record:i,id:t[e],transient:s.transient}}revert(t,e,r,s,i){const n=this.log.for(this.revert),a={};a[r]=s;const c="string"==typeof e?D.build(a,e):new e(a);n.silly(`Rebuilding model ${c.constructor.name} id ${s}`);const l=t[J.METADATA],u=Object.keys(c).reduce((e,s)=>(s===r||(e[s]=t[it(e,s)]),e),c);return i&&(n.verbose("re-adding transient properties: "+Object.keys(i).join(", ")),Object.entries(i).forEach(([t,e])=>{if(t in u)throw new o(`Transient property ${t} already exists on model ${c.constructor.name}. should be impossible`);u[t]=e})),l&&(n.silly(`Passing along ${this.flavour} persistence metadata for ${c.constructor.name} id ${s}: ${l}`),Object.defineProperty(u,J.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:l})),u}async createAll(t,e,r,...s){if(e.length!==r.length)throw new o("Ids and models must have the same length");const i=this.log.for(this.createAll);return i.verbose(`Creating ${e.length} entries ${t} table`),i.debug("pks: "+e),Promise.all(e.map((e,i)=>this.create(t,e,r[i],...s)))}async readAll(t,e,...r){const s=this.log.for(this.readAll);return s.verbose(`Reading ${e.length} entries ${t} table`),s.debug("pks: "+e),Promise.all(e.map(e=>this.read(t,e,...r)))}async updateAll(t,e,r,...s){if(e.length!==r.length)throw new o("Ids and models must have the same length");const i=this.log.for(this.updateAll);return i.verbose(`Updating ${e.length} entries ${t} table`),i.debug("pks: "+e),Promise.all(e.map((e,i)=>this.update(t,e,r[i],...s)))}async deleteAll(t,e,...r){const s=this.log.for(this.createAll);return s.verbose(`Deleting ${e.length} entries ${t} table`),s.debug("pks: "+e),Promise.all(e.map(e=>this.delete(t,e,...r)))}observe(t,e){this.observerHandler||Object.defineProperty(this,"observerHandler",{value:this.ObserverHandler(),writable:!1}),this.observerHandler.observe(t,e),this.log.for(this.observe).verbose("Registering new observer "+t.toString()),this.dispatch||(this.log.for(this.observe).info("Creating dispatch for "+this.alias),this.dispatch=this.Dispatch(),this.dispatch.observe(this))}unObserve(t){if(!this.observerHandler)throw new o("ObserverHandler not initialized. Did you register any observables?");this.observerHandler.unObserve(t),this.log.for(this.unObserve).verbose(`Observer ${t.toString()} removed`)}async updateObservers(t,e,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,t,e,r,...s)}async refresh(t,e,r,...s){return this.updateObservers(t,e,r,...s)}toString(){return this.flavour+" persistence Adapter"}static flavourOf(t){return U.flavourOf(t)}static get currentFlavour(){if(!ut._currentFlavour)throw new o("No persistence flavour set. Please initialize your adapter");return ut._currentFlavour}static get current(){return ut.get(this.currentFlavour)}static get(t){if(!t)return ut.get(this._currentFlavour);if(t in this._cache)return this._cache[t];throw new o(`No Adapter registered under ${t}.`)}static setCurrent(t){this._currentFlavour=t}static models(t){try{return U.flavouredAs(t)}catch(t){throw new o(t)}}static decoration(){}get client(){return this._client||(this._client=this.getClient()),this._client}for(t,...e){this.proxies||(this.proxies={});const r=`${this.alias} - ${P(t)}`;if(r in this.proxies)return this.proxies[r];let s;const i=new Proxy(this,{get:(e,r,i)=>{if("_config"===r){const s=Reflect.get(e,r,i);return Object.assign({},s,t)}return"_client"===r?s:Reflect.get(e,r,i)},set:(t,e,r,i)=>"_client"===e?(s=r,!0):Reflect.set(t,e,r,i)});return this.proxies[r]=i,i}migrations(){return U.migrationsFor(this)}async migrate(t=this.migrations()){for(const e of t)try{const t=new e;await t.up(this,this,this.log),await t.down(this,this,this.log)}catch(t){throw new ot(t)}}}var dt,ht;i([Z(),n("design:type",Function),n("design:paramtypes",[String]),n("design:returntype",Promise)],ut.prototype,"shutdownProxies",null),i([Z(),n("design:type",Function),n("design:paramtypes",[String,Object,Object,Object]),n("design:returntype",Promise)],ut.prototype,"context",null),i([Z(),n("design:type",Function),n("design:paramtypes",[Object,Function]),n("design:returntype",void 0)],ut.prototype,"observe",null),i([Z(),n("design:type",Function),n("design:paramtypes",[Object]),n("design:returntype",void 0)],ut.prototype,"unObserve",null),i([Z(),n("design:type",Object),n("design:paramtypes",[])],ut.prototype,"client",null),(t=>{t.ASC="asc",t.DSC="desc"})(dt||(dt={})),(t=>{t.CASCADE="cascade",t.NONE="none"})(ht||(ht={}));const pt={update:ht.CASCADE,delete:ht.NONE};class ft{get log(){return this.logger||(this.logger=M.for(this)),this.logger}constructor(t){this.options=t}static pk(t){return nt(t,"pk")}static parseValue(t,e){switch(t){case"Number":return"string"==typeof e?parseInt(e):"number"==typeof e?e:BigInt(e);case"BigInt":return BigInt(e);case void 0:case"String":return e;default:throw new at(`Unsupported sequence type: ${t} for adapter ${this}`)}}}var gt,yt;(t=>{t.EQUAL="EQUAL",t.DIFFERENT="DIFFERENT",t.BIGGER="BIGGER",t.BIGGER_EQ="BIGGER_EQ",t.SMALLER="SMALLER",t.SMALLER_EQ="SMALLER_EQ",t.NOT="NOT",t.IN="IN",t.REGEXP="REGEXP"})(gt||(gt={})),(t=>{t.AND="AND",t.OR="OR"})(yt||(yt={}));class wt extends o{constructor(t){super(t,wt.name,500)}}class bt extends o{constructor(t){super(t,bt.name,500)}}class mt extends D{constructor(t,e,r){super(),this.attr1=void 0,this.operator=void 0,this.comparison=void 0,this.attr1=t,this.operator=e,this.comparison=r}and(t){return mt.and(this,t)}or(t){return mt.or(this,t)}not(t){return new mt(this,gt.NOT,t)}hasErrors(...t){const e=()=>{const t=`Invalid operator ${this.operator}}`;if("string"==typeof this.attr1){if(this.comparison instanceof mt)return{comparison:{condition:"Both sides of the comparison must be of the same type"}};if(-1===Object.values(gt).indexOf(this.operator))return{operator:{condition:t}}}if(this.attr1 instanceof mt){if(!(this.comparison instanceof mt)&&this.operator!==gt.NOT)return{comparison:{condition:t}};if(-1===Object.values(yt).indexOf(this.operator)&&this.operator!==gt.NOT)return{operator:{condition:t}}}},r=super.hasErrors(...t);return this.isAsync()?(async()=>await Promise.resolve(r)??e())():r??e()}static and(t,e){return mt.group(t,yt.AND,e)}static or(t,e){return mt.group(t,yt.OR,e)}static group(t,e,r){return new mt(t,e,r)}static attribute(t){return(new mt.Builder).attribute(t)}static attr(t){return this.attribute(t)}static{this.Builder=class{constructor(){this.attr1=void 0,this.operator=void 0,this.comparison=void 0}attribute(t){return this.attr1=t,this}attr(t){return this.attribute(t)}eq(t){return this.setOp(gt.EQUAL,t)}dif(t){return this.setOp(gt.DIFFERENT,t)}gt(t){return this.setOp(gt.BIGGER,t)}lt(t){return this.setOp(gt.SMALLER,t)}gte(t){return this.setOp(gt.BIGGER_EQ,t)}lte(t){return this.setOp(gt.SMALLER_EQ,t)}in(t){return this.setOp(gt.IN,t)}regexp(t){return this.setOp(gt.REGEXP,RegExp(t).source)}setOp(t,e){return this.operator=t,this.comparison=e,this.build()}build(){try{return new mt(this.attr1,this.operator,this.comparison)}catch(t){throw new wt(t)}}}}static builder(){return new mt.Builder}}i([R(),n("design:type",Object)],mt.prototype,"attr1",void 0),i([R(),n("design:type",String)],mt.prototype,"operator",void 0),i([R(),n("design:type",Object)],mt.prototype,"comparison",void 0);class vt 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=vt.table(this.class)),this._tableName}get pkProps(){return super.pkProps}constructor(t,e,...r){super(e),this.observers=[],t&&(this._adapter=t),e&&(vt.register(e,this,this.adapter.alias),t)&&U.get(e,q.FLAVOUR)===H&&Y(t.flavour)(e),[this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(t=>{const e=t.name;h(this,this[e+"Prefix"],t,this[e+"Suffix"])})}override(t){return this.log.for(this.override).debug("Overriding repository flags with "+JSON.stringify(t)),new Proxy(this,{get:(e,r,s)=>{const i=Reflect.get(e,r,s);return"_overrides"!==r?i:Object.assign({},i,t)}})}for(t,...e){return new Proxy(this,{get:(r,s,i)=>"adapter"===s?this.adapter.for(t,...e):Reflect.get(r,s,i)})}ObserverHandler(){return new rt}async createPrefix(t,...e){const r=await c.args(u.CREATE,this.class,e,this.adapter,this._overrides||{});t=new this.class(t),await p(this,r.context,t,u.CREATE,u.ON);const s=await Promise.resolve(t.hasErrors(...r.context.get("ignoredValidationProperties")||[]));if(s)throw new f(s.toString());return[t,...r.args]}async create(t,...e){let r,{record:s,id:i,transient:n}=this.adapter.prepare(t,this.pk);return s=await this.adapter.create(this.tableName,i,s,...e),e.length&&(r=e[e.length-1]),this.adapter.revert(s,this.class,this.pk,i,r&&r.get("rebuildWithTransient")?n:void 0)}async createSuffix(t,e){return super.createSuffix(t,e)}async createAll(t,...e){if(!t.length)return t;const r=t.map(t=>this.adapter.prepare(t,this.pk)),s=r.map(t=>t.id);let i=r.map(t=>t.record);return i=await this.adapter.createAll(this.tableName,s,i,...e),i.map((t,e)=>this.adapter.revert(t,this.class,this.pk,s[e]))}async createAllPrefix(t,...e){const r=await c.args(u.CREATE,this.class,e,this.adapter,this._overrides||{});if(!t.length)return[t,...r.args];const s=vt.getSequenceOptions(t[0]);let i=[];s.type?(s.name||(s.name=ft.pk(t[0])),i=await(await this.adapter.Sequence(s)).range(t.length)):i=t.map((t,e)=>{if(void 0===t[this.pk])throw new o("Primary key is not defined for model in position "+e);return t[this.pk]}),t=await Promise.all(t.map(async(t,e)=>(t=new this.class(t),s.type&&(t[this.pk]="String"!==s.type||s.generated?i[e]:""+t[this.pk]),await p(this,r.context,t,u.CREATE,u.ON),t)));const n=r.context.get("ignoredValidationProperties")||[],a=(await Promise.all(t.map(t=>Promise.resolve(t.hasErrors(...n))))).reduce((t,e,r)=>(e&&(t="string"==typeof t?t+`\n - ${r}: ${e.toString()}`:` - ${r}: ${e.toString()}`),t),void 0);if(a)throw new f(a);return[t,...r.args]}async readPrefix(t,...e){const r=await c.args(u.READ,this.class,e,this.adapter,this._overrides||{}),s=new this.class;return s[this.pk]=t,await p(this,r.context,s,u.READ,u.ON),[t,...r.args]}async read(t,...e){const r=await this.adapter.read(this.tableName,t,...e);return this.adapter.revert(r,this.class,this.pk,t)}async readAllPrefix(t,...e){const r=await c.args(u.READ,this.class,e,this.adapter,this._overrides||{});return await Promise.all(t.map(async t=>{const e=new this.class;return e[this.pk]=t,p(this,r.context,e,u.READ,u.ON)})),[t,...r.args]}async readAll(t,...e){return(await this.adapter.readAll(this.tableName,t,...e)).map((e,r)=>this.adapter.revert(e,this.class,this.pk,t[r]))}async update(t,...e){let{record:r,id:s,transient:i}=this.adapter.prepare(t,this.pk);return r=await this.adapter.update(this.tableName,s,r,...e),this.adapter.revert(r,this.class,this.pk,s,i)}async updatePrefix(t,...e){const r=await c.args(u.UPDATE,this.class,e,this.adapter,this._overrides||{}),s=t[this.pk];if(!s)throw new o("No value for the Id is defined under the property "+this.pk);const i=await this.read(s,...r.args);t=this.merge(i,t),await p(this,r.context,t,u.UPDATE,u.ON,i);const n=await Promise.resolve(t.hasErrors(i,...vt.relations(this.class),...r.context.get("ignoredValidationProperties")||[]));if(n)throw new f(n.toString());return vt.getMetadata(i)&&(vt.getMetadata(t)||vt.setMetadata(t,vt.getMetadata(i))),[t,...r.args]}async updateAll(t,...e){const r=t.map(t=>this.adapter.prepare(t,this.pk));return(await this.adapter.updateAll(this.tableName,r.map(t=>t.id),r.map(t=>t.record),...e)).map((t,e)=>this.adapter.revert(t,this.class,this.pk,r[e].id))}async updateAllPrefix(t,...e){const r=await c.args(u.UPDATE,this.class,e,this.adapter,this._overrides||{}),s=t.map(t=>{const e=t[this.pk];if(!e)throw new o("missing id on update operation");return e}),i=await this.readAll(s,...r.args);t=t.map((t,e)=>(t=this.merge(i[e],t),vt.getMetadata(i[e])&&(vt.getMetadata(t)||vt.setMetadata(t,vt.getMetadata(i[e]))),t)),await Promise.all(t.map((t,e)=>p(this,r.context,t,u.UPDATE,u.ON,i[e])));const n=r.context.get("ignoredValidationProperties")||[],a=(await Promise.all(t.map((t,e)=>Promise.resolve(t.hasErrors(i[e],t,...n))))).reduce((t,e,r)=>(e&&(t="string"==typeof t?t+`\n - ${r}: ${e.toString()}`:` - ${r}: ${e.toString()}`),t),void 0);if(a)throw new f(a);return t.forEach((t,e)=>{vt.getMetadata(i[e])&&(vt.getMetadata(t)||vt.setMetadata(t,vt.getMetadata(i[e])))}),[t,...r.args]}async deletePrefix(t,...e){const r=await c.args(u.DELETE,this.class,e,this.adapter,this._overrides||{}),s=await this.read(t,...r.args);return await p(this,r.context,s,u.DELETE,u.ON),[t,...r.args]}async delete(t,...e){const r=await this.adapter.delete(this.tableName,t,...e);return this.adapter.revert(r,this.class,this.pk,t)}async deleteAllPrefix(t,...e){const r=await c.args(u.DELETE,this.class,e,this.adapter,this._overrides||{}),s=await this.readAll(t,...r.args);return await Promise.all(s.map(async t=>p(this,r.context,t,u.DELETE,u.ON))),[t,...r.args]}async deleteAll(t,...e){return(await this.adapter.deleteAll(this.tableName,t,...e)).map((e,r)=>this.adapter.revert(e,this.class,this.pk,t[r]))}select(t){return this.adapter.Statement().select(t).from(this.class)}async query(t,e,r=dt.ASC,s,i){const n=[e,r],a=this.select().where(t).orderBy(n);return s&&a.limit(s),i&&a.offset(i),a.execute()}attr(t){return mt.attr(t)}observe(t,e){this.observerHandler||Object.defineProperty(this,"observerHandler",{value:this.ObserverHandler(),writable:!1});const r=this.log.for(this.observe),s=vt.table(this.class);this.adapter.observe(this,t=>s===t),r.verbose(`now observing ${this.adapter} filtering on table === ${s}`),this.observerHandler.observe(t,e),r.verbose("Registered new observer "+t.toString())}unObserve(t){if(!this.observerHandler)throw new o("ObserverHandler not initialized. Did you register any observables?");this.observerHandler.unObserve(t),this.log.for(this.unObserve).verbose(`Observer ${t.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(t,e,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,t,e,Array.isArray(r)?r.map(t=>ft.parseValue(this.pkProps?.type,t)):ft.parseValue(this.pkProps?.type,r),...s)}async refresh(t,e,r,...s){return this.updateObservers(t,e,r,...s)}static forModel(t,e,...r){let s;const i=e||U.flavourOf(t)||ut.currentFlavour;try{s=this.get(t,i)}catch(t){s=void 0}if(s instanceof vt)return s;const n=e||U.flavourOf(t)||s&&U.get(s,J.ADAPTER)||ut.currentFlavour,a=n?ut.get(n):void 0;if(!a)throw new o("No registered persistence adapter found flavour "+n);return s=s||a.repository(),new s(a,t,...r)}static get(t,e){const r=vt.table(t);let s=r;if(e&&(s=[r,e].join(y)),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(t,e,r){let s=vt.table(t);if(r&&(s=[s,r].join(y)),s in this._cache&&this._cache[s]instanceof vt)throw new o(s+" already has a registered instance");this._cache[s]=e}static setMetadata(t,e){Object.defineProperty(t,J.METADATA,{enumerable:!1,configurable:!0,writable:!1,value:e})}static getMetadata(t){const e=Object.getOwnPropertyDescriptor(t,J.METADATA);return e?e.value:void 0}static removeMetadata(t){Object.getOwnPropertyDescriptor(t,J.METADATA)&&delete t[J.METADATA]}static getSequenceOptions(t){const e=D.pk(t.constructor),r=U.key(g.ID,e),s=U.get(t.constructor,r);if(!s)throw new o("No sequence options defined for model. did you use the @pk decorator?");return s}static indexes(t){const e=U.get(t instanceof D?t.constructor:t,J.INDEX);return Object.keys(e||{}).reduce((t,r)=>(t[r]={[J.INDEX]:e[r]},t),{})}static relations(t){return U.relations(t instanceof D?t.constructor:t)||[]}static table(t){return st(t)}static column(t,e){return it(t,e)}}function Ot(t,e){if(!(e||(e=G.flavourResolver(t instanceof D?t.constructor:t))&&e!==H))throw new o("Could not retrieve flavour from model "+(t instanceof D?t.constructor.name:t.name));return $(J.INJECTABLE,e,st(t))}i([Z(),n("design:type",Function),n("design:paramtypes",[Object,Function]),n("design:returntype",void 0)],vt.prototype,"observe",null),i([Z(),n("design:type",Function),n("design:paramtypes",[Object]),n("design:returntype",void 0)],vt.prototype,"unObserve",null),ut&&(ut._baseRepository=vt);class At extends t{get log(){return this.logger||(this.logger=M.for(this)),this.logger}constructor(){super()}get(t,r){const s=this.log.for(this.get);let i;try{i=super.get(t)}catch{}if(!i){let n;if("function"==typeof t?n=t:"symbol"!=typeof t&&"string"!=typeof t||(n=D.get(t.toString())),!n)return;const a=J.ADAPTER,o=r||U.get(n,a);try{let t=o;try{o&&ut.get(o)}catch{const e=ut.current;e&&e.flavour===o&&(t=e.alias)}if(i=vt.forModel(n,t),i instanceof vt)return i;const r=o||U.get(i.constructor,a)||U.get(n,a);e.register(i,Ot(n,r))}catch(t){s.debug("No registered repository or adapter found. falling back to default adapter. Error: "+(t?.message||JSON.stringify(t)));const e=vt.get(n,o);if("function"==typeof e){const t=o?ut.get(o):ut.current;if(!t)return;return new e(t,n)}}}return i}}class Et extends L{constructor(){super()}async initialize(){if(!this.adapter)return void this.log.verbose("No adapter observed for dispatch; skipping initialization");const t=this.adapter;[u.CREATE,u.UPDATE,u.DELETE,w.CREATE_ALL,w.UPDATE_ALL,w.DELETE_ALL].forEach(e=>{if(!t[e])throw new o(`Method ${e} not found in ${t.alias} adapter to bind Observables Dispatch`);let r=Object.getOwnPropertyDescriptor(t,e),s=t;for(;!r&&s!==Object.prototype;)s=Object.getPrototypeOf(s),r=Object.getOwnPropertyDescriptor(s,e);r&&r.writable?t[e]=new Proxy(t[e],{apply:async(t,r,s)=>{const[i,n]=s,a=await t.apply(r,s);return this.updateObservers(i,(t=>{switch(t){case w.CREATE_ALL:return u.CREATE;case w.UPDATE_ALL:return u.UPDATE;case w.DELETE_ALL:return u.DELETE;default:return t}})(e),n).then(()=>{this.log.verbose(`Observer refresh dispatched by ${e} for ${i}`),this.log.debug("pks: "+n)}).catch(t=>this.log.error(`Failed to dispatch observer refresh for ${e} on ${i}: ${t}`)),a}}):this.log.error(`Could not find method ${e} to bind Observables Dispatch`)})}async close(){}observe(t){if(!(t instanceof ut))throw new at("Only Adapters can be observed by dispatch");this.adapter=t,this.models=ut.models(this.adapter.alias),this.initialize().then(()=>this.log.verbose(`Dispatch initialized for ${this.adapter.alias} adapter`))}unObserve(t){if(this.adapter!==t)throw new at("Only the adapter that was used to observe can be unobserved");this.adapter=void 0}async updateObservers(t,e,r){if(this.adapter)try{await this.adapter.refresh(t,e,r)}catch(t){throw new o("Failed to refresh dispatch: "+t)}else this.log.verbose(`No adapter observed for dispatch; skipping observer update for ${t}:${e}`)}}function Tt(t,e,r,s){const i=async function(...t){let s;try{s=await Promise.resolve(r.call(this,...t))}catch(t){if(t instanceof ct)return;throw t}return Promise.resolve(e.apply(this,s))}.bind(t),n=s||e.name;Object.defineProperty(i,"name",{enumerable:!0,configurable:!0,writable:!1,value:n}),t[n]=i}ut&&(ut._baseDispatch=Et);class Nt extends L{constructor(){super(),this.transaction=!0,[this.up,this.down].forEach(t=>{const e=t.name;Tt(this,t,this.prefix(e))})}get adapter(){const t=U.get(this.constructor,J.MIGRATION);if(!t)throw new o("No migration metadata for "+this.constructor.name);const e=t.flavour;return ut.get(e)}async enforceRules(t,e,r){const s=U.get(this.constructor,J.MIGRATION)?.rules;if(!s||!s.length)return!0;let i;for(const n of s)if(i=r.for(n),!await n(t,e,i))return!1;return!0}prefix(t){return async function(e){let r;e instanceof ut?r=this.getQueryRunner(e.client):(r=e,e=this.adapter);const s=this.log.for(t);if(!await this.enforceRules(r,e,s))throw s.verbose(`Skipping migration ${this.constructor.name} due to rules`),new ct("Migration skipped for rule enforcement");return[r,e,s]}.bind(this)}}function _t(t,e){return G.for(J.MIGRATION).define({decorator:(t,e)=>r=>{const s=U.innerGet(Symbol.for(J.MIGRATION),t)||[];return U.set(J.MIGRATION,t,[...s,{class:r}]),z(J.MIGRATION,{flavour:t,rules:e})(r)},args:[t,e]}).apply()}function xt(t,e){return(i,n)=>n?r(t[k.ANCHOR]||t)(i,n):(z(g.REPOSITORY,i.name)(t),e=e||U.get(i.constructor,J.ADAPTER),vt.register(U.constr(t),i,e),s(U.constr(t),{callback:e=>(Object.defineProperty(e,g.CLASS,{enumerable:!1,configurable:!1,writable:!1,value:t}),e)})(i))}U.validationExceptions=((t,e)=>{const r=U.get(t,J.NO_VALIDATE);return r?Object.entries(r).filter(([,t])=>t.includes(e)).map(([t])=>t):[]}).bind(U),D.shouldValidateNestedHandler=((t,e)=>{const r=U.get(t.constructor);if(!r)return!1;const s=r[J.RELATIONS],i=r[J.RELATION];if(Array.isArray(s)&&s?.includes(e)){const r=Object.keys(i)[0],s=D.isPropertyModel(t,e);return i[r]?.class!==s}return!0}).bind(D),U.migrationsFor=(t=>{if(!(t=t??ut.current))throw new o("Could not get adapter for migrations");return U.innerGet(Symbol.for(J.MIGRATION),t.alias).map(t=>t.class)}).bind(U),U.relations=((t,e)=>{const r=U.get(t,J.RELATIONS);if(r){if(!e)return Object.keys(r);if(!r[e])throw new o("No relations metadata found for property "+e);return r[e]}}).bind(U),D.relations=(t,e)=>U.relations(t,e)||[];class St extends o{constructor(t){super(t,St.name,500)}}const Dt={type:void 0,generated:!1,startWith:0,incrementBy:1,cycle:!1},Pt=Dt,Rt={type:"Number",generated:!0,startWith:0,incrementBy:1,cycle:!1},$t=Object.assign({},Rt,{type:"BigInt"});async function kt(t,e,r,s){if(!s){const e=D.get(t.constructor.name);if(!e)throw new o("Could not find model "+t.constructor.name);s=vt.forModel(e,r)}if(void 0===t[s.pk])return s.create(t,e);try{return s.update(t,e)}catch(r){if(!(r instanceof b))throw r;return s.create(t,e)}}async function It(t,e,r,s){const i=s[r];if(!i)return;if("object"!=typeof i){const e=qt(s,r,this.adapter.alias),n=await e.read(i);return await Ut(t,s,r,i,n),void(s[r]=i)}const n=F(e.class)?e.class:e.class();if(!n)throw new o("Could not find model "+e.class);const a=vt.forModel(n,this.adapter.alias),c=await a.create(i),l=D.pk(c);await Ut(t,s,r,c[l],c),s[r]=c[l]}async function Ct(t,e,r,s){const i=s[r];if(!i)return;if(e.cascade.update!==ht.CASCADE)return;if("object"!=typeof i){const e=qt(s,r,this.adapter.alias),n=await e.read(i);return await Ut(t,s,r,i,n),void(s[r]=i)}const n=await kt(s[r],t,this.adapter.alias),a=D.pk(n);await Ut(t,s,r,n[a],n),s[r]=n[a]}async function jt(t,e,r,s){const i=s[r];if(!i)return;if(e.cascade.update!==ht.CASCADE)return;const n=qt(s,r,this.adapter.alias);let a;a=i instanceof D?await n.delete(s[r][n.pk]):await n.delete(s[r]),await Ut(t,s,r,a[n.pk],a)}async function Bt(t,e,r,s){const i=s[r];if(!i||!i.length)return;const n=typeof i[0];if(!i.every(t=>typeof t===n))throw new o(`Invalid operation. All elements of property ${r} must match the same type.`);const a=new Set([...i]);if("object"!==n){const e=qt(s,r,this.adapter.alias);for(const i of a){const n=await e.read(i);await Ut(t,s,r,i,n)}return void(s[r]=[...a])}const c=D.pk(i[0]),l=new Set;for(const e of i){const i=await kt(e,t,this.adapter.alias);await Ut(t,s,r,i[c],i),l.add(i[c])}s[r]=[...l]}async function Lt(t,e,r,s){const{cascade:i}=e;if(i.update===ht.CASCADE)return Bt.call(this,t,e,r,s)}async function Mt(t,e,r,s){if(e.cascade.delete!==ht.CASCADE)return;const i=s[r];if(!i||!i.length)return;const n=typeof i[0];if(!i.every(t=>typeof t===n))throw new o(`Invalid operation. All elements of property ${r} must match the same type.`);const a="object"===n,c=a?vt.forModel(i[0],this.adapter.alias):qt(s,r,this.adapter.alias),l=new Set([...a?i.map(t=>t[c.pk]):i]);for(const e of l.values()){const i=await c.delete(e);await Ut(t,s,r,e,i)}s[r]=[...l]}function Ft(t,e,r){return[J.POPULATE,t,e,r].join(".")}async function Ut(t,e,r,s,i){const n=Ft(e.constructor.name,r,s);return t.accumulate({[n]:i})}async function Gt(t,e,r,s){if(!e.populate)return;const i=s[r],n=Array.isArray(i);if(void 0===i||n&&0===i.length)return;const a=await(async(t,e,r,s,i)=>{let n,a;const c=[];for(const l of s){n=Ft(e.constructor.name,r,l);try{a=await t.get(n)}catch(t){const s=qt(e,r,i);if(!s)throw new o("Could not find repo");a=await s.read(l)}c.push(a)}return c})(t,s,r,n?i:[i],this.adapter.alias);s[r]=n?a:a[0]}const Ht=["array","string","number","boolean","symbol","function","object","undefined","null","bigint"];function qt(t,e,r){if(!t)throw Error("No model was provided to get repository");let s;if(Array.isArray(t[e])||t[e]instanceof Set){const r=U.get(t instanceof D?t.constructor:t,U.key(I.REFLECT,e,I.LIST))?.clazz;if(!r)throw new o("Failed to find types decorators for property "+e);s=(Array.isArray(r)?[...r]:[r]).map(t=>"function"!=typeof t||t.name?t:t())}else s=U.getPropDesignTypes(t instanceof D?t.constructor:t,e)?.designTypes;const i=s?.find(t=>!Ht.includes((""+t.name).toLowerCase()));return vt.forModel(i,r)}function Yt(t){return G.for(J.TABLE).define({decorator:t=>e=>z(J.TABLE,t||e.name.toLowerCase())(e),args:[t]}).apply()}function zt(t){return G.for(J.COLUMN).define({decorator:t=>(e,r)=>V(U.key(J.COLUMN,r),t||r)(e,r),args:[t]}).apply()}function Vt(t,e,r){return G.for(J.INDEX).define({decorator:(t,e,r)=>(s,i)=>("string"==typeof t&&(r=t,t=void 0,e=void 0),"string"==typeof e&&(r=e,e=void 0),!e&&t&&t.find(t=>![dt.ASC,dt.DSC].includes(t))&&(e=t,t=void 0),V(U.key(`${J.INDEX}${e&&e?.length?"."+e.join("."):""}`,i),{directions:t,compositions:e,name:r})(s,i)),args:[t,e,r]}).apply()}async function Qt(t,e,r,s){if(s[r]&&(await this.select().where(mt.attribute(r).eq(s[r])).execute()).length)throw new m(`model already exists with property ${r} equal to ${JSON.stringify(s[r],void 0,2)}`)}function Wt(){const t=J.UNIQUE;return G.for(t).define(v(Qt),V(t,{})).apply()}async function Xt(t,e,r,s){throw new K("This adapter does not support user identification")}function Jt(){const t=J.CREATED_BY;return G.for(t).define({decorator:()=>Q(A(Xt),V(t,{})),args:[]}).apply()}function Zt(){const t=J.UPDATED_BY;return G.for(t).define({decorator:()=>Q(E(Xt),V(t,{})),args:[]}).apply()}function Kt(){return O([u.CREATE])}function te(){return O()}function ee(t,e=pt,r=!0,s,i){const n=J.ONE_TO_ONE;return G.for(n).define({decorator:(t,e,r,s,i)=>{const a={class:t,cascade:e,populate:r};return s&&(a.joinTable=s),i&&(a.name=i),Q(W(),le(n,a),C([t,String,Number,BigInt]),A(It,a),E(Ct,a),T(jt,a),N(Gt,a))},args:[t,e,r,s,i]}).apply()}function re(t,e=pt,r=!0,s,i){const n=J.ONE_TO_MANY;return G.for(n).define({decorator:(t,e,r,s,i)=>{const a={class:t,cascade:e,populate:r};return s&&(a.joinTable=s),i&&(a.name=i),Q(W(),le(n,a),j([t,String,Number,BigInt]),A(Bt,a),E(Lt,a),T(Mt,a),N(Gt,a))},args:[t,e,r,s,i]}).apply()}function se(t,e=pt,r=!0,s,i){const n=J.MANY_TO_ONE;return G.for(n).define({decorator:(t,e,r,s,i)=>{const a={class:t,cascade:e,populate:r};return s&&(a.joinTable=s),i&&(a.name=i),Q(W(),le(n,a),C([t,String,Number,BigInt]))},args:[t,e,r,s,i]}).apply()}function ie(t,e=pt,r=!0,s,i){const n=J.MANY_TO_MANY;return G.for(n).define({decorator:(t,e,r,s,i)=>{const a={class:t,cascade:e,populate:r};return s&&(a.joinTable=s),i&&(a.name=i),Q(W(),le(n,a),j([t,String,Number,BigInt]))},args:[t,e,r,s,i]}).apply()}function ne(...t){return(e,r)=>{const s=U.get(e,U.key(J.NO_VALIDATE,r))||[],i=[...new Set([...s,...t])];return Q(z(U.key(J.NO_VALIDATE,r),i))(e,r)}}function ae(){return ne(u.CREATE)}function oe(){return ne(u.UPDATE)}function ce(){return ne(u.UPDATE,u.CREATE)}function le(t,e){return G.for(J.RELATIONS).define({decorator:(t,e)=>(r,s)=>(V(t,e)(r,s),V(U.key(J.RELATIONS,s),Object.assign({},e,{key:t}))(r,s)),args:[t,e]}).apply()}async function ue(t,e,r,s){if(!e.type||!e.generated||s[r])return;let i;e.name||(e.name=nt(s,"pk"));try{i=await this.adapter.Sequence(e)}catch(t){throw new o(`Failed to instantiate Sequence ${e.name}: ${t}`)}const n=await i.next();Object.defineProperty(s,r,{enumerable:!0,writable:!1,configurable:!0,value:n})}function de(t=Pt){t=Object.assign({},Pt,t,{generated:!(!t.type||void 0!==t.generated)||t.generated||Pt.generated});const e=g.ID;return G.for(e).define({decorator:(t,e)=>(r,s)=>Q(Vt([dt.ASC,dt.DSC]),R(),_(),V(U.key(g.ID,s),t),A(ue,t,e))(r,s),args:[t,{priority:60}]}).apply()}class he extends D{constructor(t){super(t)}}i([Kt(),n("design:type",Date)],he.prototype,"createdOn",void 0),i([te(),n("design:type",Date)],he.prototype,"updatedOn",void 0);class pe extends L{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(t,e,r,s){super(),this.adapter=t,this.query=e,this.size=r,this.clazz=s}async next(){return this.page(this.current+1)}async previous(){return this.page(this.current-1)}validatePage(t){if(1>t||!Number.isInteger(t))throw new bt("Page number cannot be under 1 and must be an integer");if(void 0!==this._totalPages&&t>this._totalPages)throw new bt(`Only ${this._totalPages} are available. Cannot go to page ${t}`);return t}}var fe,ge,ye,we,be;class me extends L{constructor(t){super(),this.adapter=t}get log(){return this.adapter.log.for(me)}select(t){return Object.defineProperty(this,"selectSelector",{value:t,writable:!1}),this}distinct(t){return this.distinctSelector=t,this}max(t){return this.maxSelector=t,this}min(t){return this.minSelector=t,this}count(t){return this.countSelector=t,this}from(t){if(this.fromSelector="string"==typeof t?D.get(t):t,!this.fromSelector)throw new wt("Could not find selector model: "+t);return this}where(t){return this.whereCondition=t,this}orderBy(t){return this.orderBySelector=t,this}groupBy(t){return this.groupBySelector=t,this}limit(t){return this.limitSelector=t,this}offset(t){return this.offsetSelector=t,this}async execute(){try{const t=this.build();return await this.raw(t)}catch(t){throw new o(t)}}async raw(t){const e=await this.adapter.raw(t);if(!this.selectSelector)return e;const r=D.pk(this.fromSelector),s=function(t){const e=t[r];return this.adapter.revert(t,this.fromSelector,r,e)}.bind(this);return Array.isArray(e)?e.map(s):s(e)}}i([Z(),n("design:type",Function),n("design:paramtypes",[Array]),n("design:returntype",Object)],me.prototype,"select",null),i([Z(),n("design:type",Function),n("design:paramtypes",["function"==typeof(fe="undefined"!=typeof S&&S)?fe:Object]),n("design:returntype",Object)],me.prototype,"distinct",null),i([Z(),n("design:type",Function),n("design:paramtypes",["function"==typeof(ge="undefined"!=typeof S&&S)?ge:Object]),n("design:returntype",Object)],me.prototype,"max",null),i([Z(),n("design:type",Function),n("design:paramtypes",["function"==typeof(ye="undefined"!=typeof S&&S)?ye:Object]),n("design:returntype",Object)],me.prototype,"min",null),i([Z(),n("design:type",Function),n("design:paramtypes",["function"==typeof(we="undefined"!=typeof S&&S)?we:Object]),n("design:returntype",Object)],me.prototype,"count",null),i([Z(),n("design:type",Function),n("design:paramtypes",[Object]),n("design:returntype",Object)],me.prototype,"from",null),i([Z(),n("design:type",Function),n("design:paramtypes",[mt]),n("design:returntype",Object)],me.prototype,"where",null),i([Z(),n("design:type",Function),n("design:paramtypes",[Array]),n("design:returntype",Object)],me.prototype,"orderBy",null),i([Z(),n("design:type",Function),n("design:paramtypes",[Object]),n("design:returntype",Object)],me.prototype,"groupBy",null),i([Z(),n("design:type",Function),n("design:paramtypes",[Number]),n("design:returntype",Object)],me.prototype,"limit",null),i([Z(),n("design:type",Function),n("design:paramtypes",[Number]),n("design:returntype",Object)],me.prototype,"offset",null),i([Z(),n("design:type",Function),n("design:paramtypes",[]),n("design:returntype",Promise)],me.prototype,"execute",null),(t=>{t.FIND_BY="findBy",t.SELECT="Select",t.AND="And",t.OR="Or",t.GROUP_BY="GroupBy",t.ORDER_BY="OrderBy",t.THEN="Then",t.THEN_BY="ThenBy"})(be||(be={}));const ve={Equals:(t,e)=>mt.attribute(t).eq(e),Diff:(t,e)=>mt.attribute(t).dif(e),LessThan:(t,e)=>mt.attribute(t).lt(e),LessThanEqual:(t,e)=>mt.attribute(t).lte(e),GreaterThan:(t,e)=>mt.attribute(t).gt(e),GreaterThanEqual:(t,e)=>mt.attribute(t).gte(e),Between:(t,e,r)=>mt.attribute(t).gte(e).and(mt.attribute(t).lte(r)),In:(t,e)=>mt.attribute(t).in(e),Matches:(t,e)=>mt.attribute(t).regexp(e)},Oe=t=>t.charAt(0).toLowerCase()+t.slice(1);class Ae{static build(t,...e){if(!t.startsWith(be.FIND_BY))throw Error("Unsupported method "+t);const r=this.extractCore(t),s=this.extractSelect(t),i=this.extractGroupBy(t),n=this.buildWhere(r,e),{orderBy:a,limit:o,offset:c}=this.extractOrderLimitOffset(r,e);return{action:"find",select:s,where:n,groupBy:i,orderBy:a,limit:o,offset:c}}static extractCore(t){const e=t.substring(be.FIND_BY.length),r=e.match(/(Then[A-Z]|OrderBy|GroupBy|Limit|Offset)/);return r?e.substring(0,r.index):e}static extractSelect(t){const e=t.indexOf(be.SELECT);if(-1===e)return;const r=t.substring(e+be.SELECT.length),s=r.match(/(Then[A-Z]|OrderBy|GroupBy|Limit|Offset)/);return(s?r.substring(0,s.index):r).split(be.AND).map(Oe).filter(Boolean)}static extractGroupBy(t){const e=t.indexOf(be.GROUP_BY);if(-1!==e)return t.substring(e+be.GROUP_BY.length).split(be.ORDER_BY)[0].split(be.THEN_BY).map(Oe).filter(Boolean)}static buildWhere(t,e){const r=(t.split(/OrderBy|GroupBy/)[0]||"").split(/And|Or/),s=t.match(/And|Or/g)||[];let i;if(r.forEach((t,r)=>{const{field:n,operator:a}=this.parseFieldAndOperator(t),o=a?ve[a]:ve.Equals;if(!o)throw Error("Unsupported operator "+a);const c=e[r];if(void 0===c)throw Error("Invalid value for field "+n);const l=o(n,c);i=0===r?l:s[r-1]===be.AND?i.and(l):i.or(l)}),!i)throw Error("No conditions found in method name");return i}static parseFieldAndOperator(t){for(const e of Object.keys(ve))if(t.endsWith(e)){const r=t.slice(0,-e.length);return{field:Oe(r),operator:e}}return{field:Oe(t)}}static extractOrderLimitOffset(t,e){const r=t.split(/And|Or/).length,s=e.slice(r);let i,n,a;return s.length>=1&&Array.isArray(s[0])&&(i=s[0]),2>s.length||"number"!=typeof s[1]||(n=s[1]),3>s.length||"number"!=typeof s[2]||(a=s[2]),{orderBy:i,limit:n,offset:a}}}function Ee(t={}){return(e,r,s)=>{const i=r.toString();s.value=function(...e){const{select:r,where:s,groupBy:n,orderBy:a,limit:o,offset:c}=Ae.build(i,...e);let l=this.select(r);s&&(l=l.where(s));const{allowLimit:u,allowOffset:d,allowOrderBy:h,throws:p}={allowLimit:!0,allowOrderBy:!0,allowOffset:!0,throws:!0,...t},f=[{key:"orderBy",value:(a||[])[0],allowed:h},{key:"limit",value:o,allowed:u},{key:"offset",value:c,allowed:d}];for(const t of f)if(void 0!==t.value){if(!t.allowed&&p)throw new wt(t.key[0].toUpperCase()+t.key.slice(1)+" is not allowed for this query");t.allowed&&(l=l[t.key](t.value))}return l.execute()}}}class Te extends pe{constructor(t,e,r,s){super(t,e,r,s)}prepare(t){const e=Object.assign({},t);return e.limit=this.size,e}async page(t=1){const e=this.prepare(this.statement);if(!this._recordCount||!this._totalPages){this._totalPages=this._recordCount=0;const t=await this.adapter.raw({...e,limit:void 0})||[];if(this._recordCount=t.length,this._recordCount>0){const t=e?.limit||this.size;this._totalPages=Math.ceil(this._recordCount/t)}}t=this.validatePage(t),e.skip=(t-1)*this.size;const r=await this.adapter.raw(e);return this._currentPage=t,r}}class Ne extends me{constructor(t){super(t)}getSort(){return(t,e)=>{if(!this.orderBySelector)throw new o("orderBySelector not set. Should be impossible");const r=this.orderBySelector,[s,i]=r,{designType:n}=U.getPropDesignTypes(t.constructor,s);if(!n)throw new wt("type not compatible with sorting: "+n);switch(n.name){case"string":case"String":return("asc"===i?1:-1)*t[s].localeCompare(e[s]);case"number":case"Number":return("asc"===i?1:-1)*(t[s]-e[s]);case"object":case"Object":if(t[s]instanceof Date&&e[s]instanceof Date)return("asc"===i?1:-1)*(t[s].valueOf()-e[s].valueOf());throw new wt("Sorting not supported for not date classes");default:throw new wt("sorting not supported for type "+n)}}}build(){const t={select:this.selectSelector,from:this.fromSelector,where:this.whereCondition?this.parseCondition(this.whereCondition).where:t=>!0,limit:this.limitSelector,skip:this.offsetSelector};return this.orderBySelector&&(t.sort=this.getSort()),t}async paginate(t){try{const e=this.build();return new Te(this.adapter,e,t,this.fromSelector)}catch(t){throw new o(t)}}parseCondition(t){return{where:e=>{const{attr1:r,operator:s,comparison:i}=t;if(-1===[yt.AND,yt.OR,gt.NOT].indexOf(s))switch(s){case gt.BIGGER:return e[r]>i;case gt.BIGGER_EQ:return e[r]>=i;case gt.DIFFERENT:return e[r]!==i;case gt.EQUAL:return e[r]===i;case gt.REGEXP:if("string"!=typeof e[r])throw new wt("Invalid regexp comparison on a non string attribute: "+e[r]);return!!e[r].match(RegExp(i,"g"));case gt.SMALLER:return e[r]<i;case gt.SMALLER_EQ:return e[r]<=i;default:throw new o("Invalid operator for standard comparisons: "+s)}else{if(s===gt.NOT)throw new o("Not implemented");{const t=this.parseCondition(r),n=this.parseCondition(i);switch(s){case yt.AND:return t.where(e)&&n.where(e);case yt.OR:return t.where(e)||n.where(e);default:throw new o("Invalid operator for And/Or comparisons: "+s)}}}}}}}class _e extends c{constructor(){super()}}let xe=class extends he{constructor(t){super(t)}};i([de(),n("design:type",String)],xe.prototype,"id",void 0),i([R(),Vt(),n("design:type",Object)],xe.prototype,"current",void 0),xe=i([Yt("__RamSequence"),B(),n("design:paramtypes",[Object])],xe);class Se extends ft{constructor(t,e){super(t),this.repo=vt.forModel(xe,e.alias)}async current(){const{name:t,startWith:e}=this.options;try{const e=await this.repo.read(t);return this.parse(e.current)}catch(r){if(r instanceof b){if(void 0===e)throw new o("Starting value is not defined for a non existing sequence");try{return this.parse(e)}catch(t){throw new o(`Failed to parse initial value for sequence ${e}: ${t}`)}}throw new o(`Failed to retrieve current value for sequence ${t}: ${r}`)}}parse(t){return ft.parseValue(this.options.type,t)}async increment(t,e){const{type:r,incrementBy:s,name:i}=this.options;let n;const a=e||s;if(a%s!==0)throw new o("Value to increment does not consider the incrementBy setting: "+s);switch(r){case"Number":n=this.parse(t)+a;break;case"BigInt":n=this.parse(t)+BigInt(a);break;case"String":n=this.parse(t);break;default:throw new o("Should never happen")}let c;const l=this.repo.override({ignoredValidationProperties:["updatedOn"]});try{c=await l.update(new xe({id:i,current:n}))}catch(t){if(!(t instanceof b))throw t;c=await l.create(new xe({id:i,current:n}))}return c.current}async next(){const t=await this.current();return this.increment(t)}async range(t){const e=await this.current(),r=this.parse(this.options.incrementBy),s=await this.increment(e,this.parse(t)*r),i=[];for(let s=1;t>=s;s++)i.push(e+r*this.parse(s));if(i[i.length-1]!==s&&"String"!==this.options.type)throw new o("Miscalculation of range");return i}}async function De(t,e,r,s){const i=t.get("UUID");if(!i)throw new at("This adapter does not support user identification");s[r]=i}const Pe="ram";class Re extends ut{constructor(t={},e){super(t,Pe,e),this.Context=_e,this.indexes={},this.lock=new X}repository(){return super.repository()}async flags(t,e,r){return Object.assign(await super.flags(t,e,r),{UUID:this.config.user||""+Date.now()})}Dispatch(){return super.Dispatch()}async index(...t){return Promise.resolve(void 0)}prepare(t,e){const r=super.prepare(t,e);return delete r.record[e],r}revert(t,e,r,s){return super.revert(t,e,r,s)}async create(t,e,r){if(await this.lock.acquire(),this.client.has(t)||this.client.set(t,new Map),this.client.get(t)&&this.client.get(t)?.has(e))throw new m(`Record with id ${e} already exists in table ${t}`);return this.client.get(t)?.set(e,r),this.lock.release(),r}async read(t,e){if(!this.client.has(t))throw new b(`Table ${t} not found`);if(!this.client.get(t)?.has(e))throw new b(`Record with id ${e} not found in table ${t}`);return this.client.get(t)?.get(e)}async update(t,e,r){if(await this.lock.acquire(),!this.client.has(t))throw new b(`Table ${t} not found`);if(!this.client.get(t)?.has(e))throw new b(`Record with id ${e} not found in table ${t}`);return this.client.get(t)?.set(e,r),this.lock.release(),r}async delete(t,e){if(await this.lock.acquire(),!this.client.has(t))throw new b(`Table ${t} not found`);if(!this.client.get(t)?.has(e))throw new b(`Record with id ${e} not found in table ${t}`);const r=this.client.get(t)?.get(e);return this.client.get(t)?.delete(e),this.lock.release(),r}tableFor(t){"string"==typeof t&&(t=D.get(t));const e=vt.table(t);return this.client.has(e)||this.client.set(e,new Map),this.client.get(e)}async raw(t){const{where:e,sort:r,limit:s,skip:i,from:n}=t;let{select:a}=t;const c=this.tableFor(n);if(!c)throw new o(`Table ${n} not found in RamAdapter`);const l=D.pk(n),u=U.get(n,U.key(g.ID,l));let d=Array.from(c.entries()).map(([t,e])=>this.revert(e,n,l,ft.parseValue(u.type,t)));return d=e?d.filter(e):d,r&&(d=d.sort(r)),i&&(d=d.slice(i)),s&&(d=d.slice(0,s)),a&&(a=Array.isArray(a)?a:[a],d=d.map(t=>Object.entries(t).reduce((t,[e,r])=>(a.includes(e)&&(t[e]=r),t),{}))),d}parseError(t){return t instanceof x?t:new o(t)}Statement(){return new Ne(this)}async Sequence(t){return new Se(t,this)}for(t,...e){this.proxies||(this.proxies={});const r=`${this.alias} - ${P(t)}`;if(r in this.proxies)return this.proxies[r];const s=new Proxy(this,{get:(e,r,s)=>{if("_config"===r){const i=Reflect.get(e,r,s);return Object.assign({},i,t)}return Reflect.get(e,r,s)}});return this.proxies[r]=s,s}static decoration(){super.decoration();const t=J.CREATED_BY,e=J.UPDATED_BY;G.flavouredAs(Pe).for(t).define(A(De),V(t,{})).apply(),G.flavouredAs(Pe).for(e).define(v(De),V(e,{})).apply()}getClient(){return new Map}}Re.decoration(),e.setRegistry(new At);const $e="##VERSION##",ke="##PACKAGE##";U.registerLibrary(ke,$e);export{Nt as AbsMigration,ut as Adapter,K as AuthorizationError,he as BaseModel,$t as BigIntSequence,ht as Cascade,mt as Condition,et as ConnectionError,pt as DefaultCascade,Pt as DefaultSequenceOptions,Et as Dispatch,tt as ForbiddenError,yt as GroupOperator,At as InjectablesRegistry,Ae as MethodQueryBuilder,ot as MigrationError,ct as MigrationRuleError,Dt as NoneSequenceOptions,Rt as NumericSequence,St as ObserverError,rt as ObserverHandler,gt as Operator,ve as OperatorsMap,dt as OrderDirection,ke as PACKAGE_NAME,pe as Paginator,bt as PagingError,J as PersistenceKeys,be as QueryClause,wt as QueryError,Re as RamAdapter,_e as RamContext,Pe as RamFlavour,Te as RamPaginator,Se as RamSequence,xe as RamSequenceModel,Ne as RamStatement,vt as Repository,ft as Sequence,me as Statement,at as UnsupportedError,$e as VERSION,Ut as cacheModelForPopulate,zt as column,kt as createOrUpdate,Kt as createdAt,Jt as createdBy,Xt as createdByOnCreateUpdate,De as createdByOnRamCreateUpdate,Z as final,Ot as generateInjectableNameForRepository,it as getColumnName,Ft as getPopulateKey,st as getTableName,Vt as index,ie as manyToMany,se as manyToOne,_t as migration,ne as noValidateOn,ae as noValidateOnCreate,ce as noValidateOnCreateUpdate,oe as noValidateOnUpdate,re as oneToMany,Bt as oneToManyOnCreate,Mt as oneToManyOnDelete,Lt as oneToManyOnUpdate,ee as oneToOne,It as oneToOneOnCreate,jt as oneToOneOnDelete,Ct as oneToOneOnUpdate,de as pk,ue as pkOnCreate,Gt as populate,Tt as prefixMethod,Ee as query,le as relation,xt as repository,qt as repositoryFromTypeMetadata,nt as sequenceNameForModel,Yt as table,Wt as unique,Qt as uniqueOnCreateUpdate,te as updatedAt,Zt as updatedBy};
|
|
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/errors.ts","../src/persistence/Adapter.ts","../src/persistence/Sequence.ts","../src/query/constants.ts","../src/query/errors.ts","../src/query/Condition.ts","../src/persistence/decorators.ts","../src/repository/Repository.ts","../src/repository/utils.ts","../src/repository/injectables.ts","../src/persistence/Dispatch.ts","../src/persistence/migrations.ts","../src/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,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","get","Reflect","getOwnMetadata","Adapter","key","TABLE","ModelKeys","MODEL","getColumnName","attribute","getMetadata","Repository","COLUMN","sequenceNameForModel","join","UnsupportedError","MigrationError","MigrationRuleError","Decoration","setFlavourResolver","flavourOf","isModel","currentFlavour","DefaultFlavour","LoggedClass","_cache","config","_config","alias","_alias","flavour","repository","_baseRepository","shutdownProxies","k","proxies","shutdown","dispatch","close","Context","info","_currentFlavour","verbose","Dispatch","_baseDispatch","isReserved","attr","initialize","flags","operation","Object","assign","DefaultRepositoryFlags","affectedTables","writeOperation","OperationKeys","READ","timestamp","Date","ignoredValidationProperties","Metadata","validationExceptions","context","overrides","for","debug","JSON","stringify","accumulate","prepare","pk","split","modelToTransient","entries","reduce","accum","val","mappedProp","METADATA","silly","defineProperty","enumerable","writable","value","record","transient","revert","clazz","ob","m","build","metadata","keys","createAll","tableName","all","create","readAll","read","updateAll","update","deleteAll","delete","observerHandler","ADAPTER","current","setCurrent","Repo","models","cache","getRegistry","managedModels","values","f","DBKeys","REPOSITORY","forModel","decoration","client","_client","getClient","hashObj","proxy","Proxy","p","receiver","originalConf","set","migrations","migrationsFor","migrate","migration","up","down","__decorate","prototype","DefaultCascade","CASCADE","NONE","Sequence","logger","Logging","options","parseValue","type","parseInt","BigInt","undefined","Operator","GroupOperator","QueryError","PagingError","Condition","attr1","operator","comparison","and","condition","or","not","NOT","hasErrors","exceptions","conditionCheck","invalidOpMessage","errors","isAsync","resolve","condition1","condition2","group","AND","OR","Builder","eq","setOp","EQUAL","dif","DIFFERENT","gt","BIGGER","lt","SMALLER","gte","BIGGER_EQ","lte","SMALLER_EQ","arr","IN","regexp","REGEXP","RegExp","source","op","builder","uses","original","apply","required","Rep","adapter","_adapter","_tableName","class","pkProps","register","wrapMethodWithContext","override","conf","createPrefix","contextArgs","CREATE","_overrides","enforceDBDecorators","ON","ValidationError","c","createSuffix","prepared","ids","records","r","createAllPrefix","opts","getSequenceOptions","range","async","generated","ignoredProps","errorMessages","readPrefix","readAllPrefix","updatePrefix","UPDATE","oldModel","merge","relations","setMetadata","u","updateAllPrefix","oldModels","deletePrefix","DELETE","deleteAllPrefix","select","selector","Statement","from","query","orderBy","order","ASC","limit","skip","sort","where","offset","execute","prop","Array","isArray","repo","registryName","DefaultSeparator","getOwnPropertyDescriptor","removeMetadata","findPrimaryKey","ID","indexes","indexDecorators","Reflection","getAllPropertyDecorators","REFLECT","decs","v","startsWith","INDEX","dec","props","getPrototypeOf","RELATIONS","column","generateInjectableNameForRepository","sf","INJECTABLE","InjectablesRegistry","InjectableRegistryImp","injectable","modelCtor","metaKey","resolvedFlavour","aliasToUse","Injectables","message","repoCtor","BulkCrudOperationKeys","CREATE_ALL","UPDATE_ALL","DELETE_ALL","method","proto","thisArg","argArray","bulkToSingle","then","catch","prefixMethod","after","prefix","afterName","wrapped","results","call","bind","AbsMigration","transaction","meta","MIGRATION","enforceRules","qr","l","rules","rule","qrOrAdapter","getQueryRunner","define","decorator","Symbol","inject","ANCHOR","callback","instance","CLASS","noValidation","NO_VALIDATE","includes","ObserverError","NoneSequenceOptions","startWith","incrementBy","cycle","DefaultSequenceOptions","NumericSequence","BigIntSequence","createOrUpdate","NotFoundError","oneToOneOnCreate","data","propertyValue","innerRepo","repositoryFromTypeMetadata","cacheModelForPopulate","created","oneToOneOnUpdate","cascade","updated","oneToOneOnDelete","deleted","oneToManyOnCreate","propertyValues","arrayType","every","item","uniqueValues","Set","pkName","add","oneToManyOnUpdate","oneToManyOnDelete","isInstantiated","getPopulateKey","fieldName","POPULATE","parentModel","pkValue","cacheValue","cacheKey","populate","nested","isArr","res","propName","propKeyValues","proKeyValue","fetchPopulateValues","commomTypes","types","Validation","ValidationKeys","LIST","TYPE","customTypes","constructorName","t","find","toLowerCase","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","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/utils/decorators.ts","../src/utils/errors.ts","../src/persistence/ObserverHandler.ts","../src/identity/utils.ts","../src/persistence/errors.ts","../src/persistence/Adapter.ts","../src/repository/constants.ts","../src/persistence/Sequence.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/persistence/Dispatch.ts","../src/persistence/migrations.ts","../src/repository/decorators.ts","../src/overrides/overrides.ts","../src/repository/errors.ts","../src/interfaces/SequenceOptions.ts","../src/model/construction.ts","../src/model/decorators.ts","../src/identity/decorators.ts","../src/model/BaseModel.ts","../src/query/Paginator.ts","../src/query/types.ts","../src/query/Statement.ts","../src/query/utils.ts","../src/query/MethodQueryBuilder.ts","../src/query/decorators.ts","../src/ram/RamPaginator.ts","../src/ram/RamStatement.ts","../src/ram/RamContext.ts","../src/ram/model/RamSequenceModel.ts","../src/ram/RamSequence.ts","../src/ram/handlers.ts","../src/ram/constants.ts","../src/ram/RamAdapter.ts","../src/ram/index.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["PersistenceKeys","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","Model","get","Metadata","TABLE","getColumnName","attribute","key","COLUMN","sequenceNameForModel","join","UnsupportedError","MigrationError","MigrationRuleError","flavourResolver","Decoration","bind","obj","DefaultFlavour","targetCtor","registeredFlavour","undefined","currentFlavour","Adapter","cachedAdapter","flavour","LoggedClass","_cache","config","_config","alias","_alias","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","validationExceptions","context","overrides","for","debug","JSON","stringify","accumulate","prepare","pk","split","toTransient","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","flavourOf","current","setCurrent","models","flavouredAs","decoration","client","_client","getClient","hashObj","proxy","Proxy","p","receiver","originalConf","Reflect","set","migrations","migrationsFor","migrate","migration","up","down","OrderDirection","Cascade","__decorate","prototype","DefaultCascade","CASCADE","NONE","Sequence","logger","Logging","options","parseValue","type","parseInt","BigInt","Operator","GroupOperator","QueryError","PagingError","Condition","attr1","operator","comparison","and","condition","or","not","NOT","hasErrors","exceptions","conditionCheck","invalidOpMessage","values","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","Repository","Rep","adapter","_adapter","_tableName","class","pkProps","register","DecorationKeys","FLAVOUR","uses","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","getMetadata","setMetadata","u","updateAllPrefix","oldModels","deletePrefix","DELETE","deleteAllPrefix","select","selector","Statement","from","query","orderBy","order","ASC","limit","skip","sort","where","offset","execute","prop","Array","isArray","forModel","repo","ADAPTER","registryName","DefaultSeparator","getOwnPropertyDescriptor","removeMetadata","pkName","DBKeys","ID","indexes","indexDecorators","INDEX","acum","t","column","generateInjectableNameForRepository","sf","INJECTABLE","InjectablesRegistry","InjectableRegistryImp","injectable","modelCtor","metaKey","resolvedFlavour","aliasToUse","f","Injectables","message","repoCtor","BulkCrudOperationKeys","CREATE_ALL","UPDATE_ALL","DELETE_ALL","method","proto","getPrototypeOf","apply","thisArg","argArray","bulkToSingle","then","catch","prefixMethod","after","prefix","afterName","wrapped","results","call","AbsMigration","transaction","meta","MIGRATION","enforceRules","qr","l","rules","rule","qrOrAdapter","getQueryRunner","define","decorator","original","Symbol","inject","ModelKeys","ANCHOR","REPOSITORY","constr","callback","instance","CLASS","noValidation","NO_VALIDATE","includes","shouldValidateNestedHandler","property","RELATIONS","relation","RELATION","relationName","relationClassName","isPropertyModel","ObserverError","NoneSequenceOptions","startWith","incrementBy","cycle","DefaultSequenceOptions","NumericSequence","BigIntSequence","createOrUpdate","NotFoundError","oneToOneOnCreate","data","propertyValue","innerRepo","repositoryFromTypeMetadata","cacheModelForPopulate","isClass","created","oneToOneOnUpdate","cascade","updated","oneToOneOnDelete","deleted","oneToManyOnCreate","propertyValues","arrayType","every","item","uniqueValues","Set","add","oneToManyOnUpdate","oneToManyOnDelete","isInstantiated","v","getPopulateKey","fieldName","POPULATE","parentModel","pkValue","cacheValue","cacheKey","populate","nested","isArr","res","propName","propKeyValues","proKeyValue","fetchPopulateValues","commomTypes","allowedTypes","customTypes","ValidationKeys","REFLECT","LIST","getPropDesignTypes","designTypes","find","toLowerCase","columnName","propMetadata","directions","compositions","d","DSC","uniqueOnCreateUpdate","ConflictError","unique","UNIQUE","onCreateUpdate","createdByOnCreateUpdate","createdBy","CREATED_BY","onCreate","updatedBy","UPDATED_BY","onUpdate","createdAt","updatedAt","oneToOne","cascadeOptions","joinColumnOpts","fk","ONE_TO_ONE","joinTable","String","Number","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","relationKey","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","startsWith","FIND_BY","core","extractCore","extractSelect","extractGroupBy","buildWhere","extractOrderLimitOffset","action","afterFindBy","substring","match","selectIndex","SELECT","afterSelect","Boolean","groupByIndex","GROUP_BY","ORDER_BY","THEN_BY","conditions","operators","token","idx","field","parseFieldAndOperator","parser","conditionValue","endsWith","conditionCount","extraArgs","stmt","allowLimit","allowOffset","allowOrderBy","throws","params","allowed","param","toUpperCase","RamPaginator","rawStatement","Math","ceil","RamStatement","getSort","el1","el2","direction","designType","localeCompare","valueOf","parseCondition","el","paginate","op1","op2","RamContext","RamSequenceModel","seq","RamSequence","parse","increment","toIncrementBy","createdByOnRamCreateUpdate","uuid","RamFlavour","RamAdapter","lock","Lock","UUID","user","now","acquire","has","Map","release","natived","tableFor","collection","props","acc","parseError","err","BaseError","createdByKey","updatedByKey","setRegistry","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { required } from "@decaf-ts/decorator-validation";
|
|
2
2
|
import { DefaultSequenceOptions, } from "./../interfaces/SequenceOptions.js";
|
|
3
3
|
import { DBKeys, InternalError, onCreate, readonly, } from "@decaf-ts/db-decorators";
|
|
4
|
-
import { Repository } from "./../repository/Repository.js";
|
|
5
4
|
import { index } from "./../model/decorators.js";
|
|
6
5
|
import { sequenceNameForModel } from "./utils.js";
|
|
7
6
|
import { OrderDirection } from "./../repository/index.js";
|
|
8
|
-
import { apply } from "@decaf-ts/
|
|
7
|
+
import { apply, Decoration, Metadata, propMetadata, } from "@decaf-ts/decoration";
|
|
9
8
|
const defaultPkPriority = 60; // Default priority for primary key to run latter than other properties
|
|
10
9
|
/**
|
|
11
10
|
* @description Callback function for primary key creation
|
|
@@ -93,10 +92,12 @@ export function pk(opts = DefaultSequenceOptions) {
|
|
|
93
92
|
? true
|
|
94
93
|
: opts.generated || DefaultSequenceOptions.generated,
|
|
95
94
|
});
|
|
96
|
-
const key =
|
|
95
|
+
const key = DBKeys.ID;
|
|
97
96
|
function pkDec(options, groupsort) {
|
|
98
97
|
return function pkDec(obj, attr) {
|
|
99
|
-
return apply(index([OrderDirection.ASC, OrderDirection.DSC]), required(), readonly(),
|
|
98
|
+
return apply(index([OrderDirection.ASC, OrderDirection.DSC]), required(), readonly(),
|
|
99
|
+
// Model.pk neeeds to get the pk property name from the first property of Metatada[DBKeys.ID] ---> { [DBKeys.ID]: { [attr]:options }}
|
|
100
|
+
propMetadata(Metadata.key(DBKeys.ID, attr), options), onCreate(pkOnCreate, options, groupsort))(obj, attr);
|
|
100
101
|
};
|
|
101
102
|
}
|
|
102
103
|
return Decoration.for(key)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/identity/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/identity/decorators.ts"],"names":[],"mappings":"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"}
|