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