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