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