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