@decaf-ts/for-typeorm 0.0.24 → 0.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/for-typeorm.cjs +1 -1
- package/dist/for-typeorm.cjs.map +1 -1
- package/dist/for-typeorm.js +1 -1
- package/dist/for-typeorm.js.map +1 -1
- package/lib/TypeORMAdapter.cjs +1 -1
- package/lib/TypeORMAdapter.js.map +1 -1
- package/lib/esm/TypeORMAdapter.js +1 -1
- package/lib/esm/TypeORMAdapter.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/package.json +6 -32
package/dist/for-typeorm.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e,t;e=this,t=function(e,t,r,a,o,n,s,i,c,l){"use strict";const d=/^(select|from|where|and|or|insert|update|delete|drop|create|table|index|primary|key|foreign|references|constraint|unique|check|default|null|not|as|order|by|group|having|limit|offset|join|inner|outer|left|right|full|on|using|values|returning|set|into|case|when|then|else|end|cast|coalesce|exists|any|all|some|in|between|like|ilike|similar|to|is|true|false|asc|desc|distinct|union|intersect|except|natural|lateral|window|over|partition|range|rows|unbounded|preceding|following|current|row|with|recursive|materialized|view|function|trigger|procedure|language|returns|return|declare|begin|commit|rollback|savepoint|transaction|temporary|temp|if|loop|while|for|continue|exit|raise|exception|notice|info|log|debug|assert|execute|perform|get|diagnostics|call|do|alias|comment|vacuum|analyze|explain|copy|grant|revoke|privileges|public|usage|schema|sequence|owned|owner|tablespace|storage|inherits|type|operator|collate|collation|cascade|restrict|add|alter|column|rename|to|enable|disable|force|no|instead|of|before|after|each|statement|row|execute|also|only|exclude|nulls|others|ordinality|ties|nothing|cache|cycle|increment|minvalue|maxvalue|start|restart|by|called|returns|language|immutable|stable|volatile|strict|security|definer|invoker|cost|rows|support|handler|inline|validator|options|storage|inheritance|oids|without|data|dictionary|encoding|lc_collate|lc_ctype|connection|limit|password|valid|until|superuser|nosuperuser|createdb|nocreatedb|createrole|nocreaterole|inherit|noinherit|login|nologin|replication|noreplication|bypassrls|nobypassrls|encrypted|unencrypted|new|old|session_user|current_user|current_role|current_schema|current_catalog|current_date|current_time|current_timestamp|localtime|localtimestamp|current_database|inet|cidr|macaddr|macaddr8|bit|varbit|tsvector|tsquery|uuid|xml|json|jsonb|int|integer|smallint|bigint|decimal|numeric|real|double|precision|float|boolean|bool|char|character|varchar|text|bytea|date|time|timestamp|interval|point|line|lseg|box|path|polygon|circle|money|void)$/i,p="type-orm",u={SEPARATOR:".",ID:"id",VERSION:"version",DELETED:"deleted_at",TABLE:"table_name",SCHEMA:"schema_name",SEQUENCE:"sequence_name",INDEX:"index"};class y extends o.BaseError{constructor(e){super(y.name,e,404)}}var h;e.SQLOperator=void 0,(h=e.SQLOperator||(e.SQLOperator={})).EQUAL="=",h.NOT_EQUAL="<>",h.LESS_THAN="<",h.LESS_THAN_OR_EQUAL="<=",h.GREATER_THAN=">",h.GREATER_THAN_OR_EQUAL=">=",h.IN="IN",h.NOT_IN="NOT IN",h.LIKE="LIKE",h.ILIKE="ILIKE",h.BETWEEN="BETWEEN",h.IS_NULL="IS NULL",h.IS_NOT_NULL="IS NOT NULL",h.EXISTS="EXISTS",h.NOT_EXISTS="NOT EXISTS",h.ANY="ANY",h.ALL="ALL",h.SOME="SOME";const E={EQUAL:e.SQLOperator.EQUAL,DIFFERENT:e.SQLOperator.NOT_EQUAL,BIGGER:e.SQLOperator.GREATER_THAN,BIGGER_EQ:e.SQLOperator.GREATER_THAN_OR_EQUAL,SMALLER:e.SQLOperator.LESS_THAN,SMALLER_EQ:e.SQLOperator.LESS_THAN_OR_EQUAL,BETWEEN:e.SQLOperator.BETWEEN,NOT:"NOT",IN:e.SQLOperator.IN,IS_NULL:e.SQLOperator.IS_NULL,IS_NOT_NULL:e.SQLOperator.IS_NOT_NULL,REGEXP:"~",IREGEXP:"~*",LIKE:e.SQLOperator.LIKE,ILIKE:e.SQLOperator.ILIKE},f={AND:"AND",OR:"OR"};class g extends a.Paginator{get total(){return this._totalPages}get count(){return this._recordCount}get repo(){return this.__repo||(this.__repo=this.adapter.client.getRepository(this.clazz[s.ModelKeys.ANCHOR])),this.__repo}constructor(e,t,r,a){super(e,t,r,a)}prepare(e){return{...e}}async page(e=1){const t={...this.statement};this._recordCount&&this._totalPages||(this._totalPages=this._recordCount=0);const r=Object.assign(t,{skip:(this.current||0)*this.size,take:this.size}),n=await this.repo.findAndCount(r);if(this._recordCount=n[1],this._totalPages=Math.ceil(this._recordCount/this.size),!this.clazz)throw new a.PagingError("No statement target defined");const s=o.findPrimaryKey(new this.clazz),i=(n[0]||[]).map(e=>this.adapter.revert(e,this.clazz,s.id,e[s.id]));return this._currentPage=e,i}}function m(e){for(const t of[E,f]){const r=Object.keys(t).find(t=>t===e);if(r)return t[r]}throw new a.QueryError("Could not find adapter translation for operator "+e)}function A(e){const t=RegExp(/^\/(.+)\/(\w+)$/g);if("string"==typeof e){const r=t.exec(e);if(r){const[,t]=r;e=t}}return("string"==typeof e?RegExp(e):e).source}function O(e,t={}){let r;try{r=new e}catch(t){throw new o.InternalError(`Could not instantiate model ${e.name} for eager relation calculation: ${t}`)}const n=a.Repository.relations(e);if(t[e.name]=t[e.name]||void 0,t[e.name])return t[e.name];const c=n.reduce((n,c)=>{const l=i.Reflection.getPropertyDecorators(a.Repository.key(a.PersistenceKeys.RELATION),r,c,!0);if(!l||!l.decorators||!l.decorators.length)throw new o.InternalError(`No decorators found for property ${c} on model ${e.name}`);if(l.decorators.length>1)throw new o.InternalError(`Multiple decorators found for property ${c} on model ${e.name}`);const d=l.decorators[0],p=d.props.populate;let u=d.props.class;if("string"==typeof u&&(u=s.Model.get(u)),"function"!=typeof u||u.name||(u=u()),!u)throw new o.InternalError(`Could not find class for property ${c} on model ${e.name}`);if(p?n.relations.push(c):n.nonEager.push(c),n.relations.includes(c)){const{nonEager:e,relations:r}=O(u,t);if(e.length&&n.relations.includes(c)){const t=e.map(e=>`${c}.${e}`);n.nonEager.push(...t)}if(r.length){const e=r.map(e=>`${c}.${e}`);n.relations.push(...e)}}return n},{nonEager:[],relations:[]});return t[e.name]=c,c}class R extends a.Statement{constructor(e){super(e)}build(){const e=this.log.for(this.build),t=a.Repository.table(this.fromSelector),r=new this.fromSelector,n={query:this.adapter.client.getRepository(this.fromSelector[s.ModelKeys.ANCHOR]).createQueryBuilder(t)};let i;return this.selectSelector?n.query=n.query.select(this.selectSelector.map(e=>`${t}.${e}`)):n.query=n.query.select(),this.whereCondition&&(n.query=this.parseCondition(this.whereCondition,t,n.query).query),i=this.orderBySelector?[`${t}.${this.orderBySelector[0]}`,this.orderBySelector[1].toUpperCase()]:[`${t}.${o.findPrimaryKey(r).id}`,a.OrderDirection.ASC.toUpperCase()],n.query=n.query.orderBy(...i),this.limitSelector?n.query=n.query.limit(this.limitSelector):(e.debug("No limit selector defined. Using default limit of 250"),n.query=n.query.limit(250)),this.offsetSelector&&(n.query=n.query.skip(this.offsetSelector)),n}async paginate(e){try{const t={};return this.whereCondition&&(t.where=this.parseConditionForPagination(this.whereCondition,a.Repository.table(this.fromSelector))),this.orderBySelector&&(t.order={[this.orderBySelector[0]]:this.orderBySelector[1].toString()}),new g(this.adapter,t,e,this.fromSelector)}catch(e){throw new o.InternalError(e)}}processRecord(e,t){return void 0!==e[t]?this.adapter.revert(e,this.fromSelector,t,e[t]):e}async raw(e){this.log.for(this.raw).debug("Executing raw query: "+e.query.getSql());const{nonEager:t}=O(this.fromSelector);return e.query=e.query.setFindOptions({loadEagerRelations:!0,loadRelationIds:{relations:t}}),await e.query.getMany()}parseConditionForPagination(e,t,r=0,a){throw new o.InternalError("Not implemented")}parseCondition(e,t,r,o=0,n){const{attr1:s,operator:i,comparison:c}=e;if(-1===[a.GroupOperator.AND,a.GroupOperator.OR,a.Operator.NOT].indexOf(i))return(()=>{const e=m(i),l=`${s}${o}`,d=`${t}.${s} ${e} :${l}`,p={[l]:c};switch(n){case a.GroupOperator.AND:return{query:r.andWhere(d,p)};case a.GroupOperator.OR:return{query:r.orWhere(d,p)};case a.Operator.NOT:throw Error("NOT operator not implemented");default:return{query:r.where(d,p)}}})();if(i===a.Operator.NOT)throw Error("NOT operator not implemented");return r=this.parseCondition(s,t,r,++o).query,this.parseCondition(c,t,r,++o,i)}}class T extends a.Sequence{constructor(e,t){super(e),this.adapter=t}async current(){const{name:e}=this.options;try{const t=await this.adapter.raw({query:"SELECT sequence_name, start_value, minimum_value, increment FROM information_schema.sequences WHERE sequence_name = $1",values:[e]});if(!Array.isArray(t)||0===t.length)throw new o.InternalError(`Sequence ${e} not found`);const r=t[0],a=r.current_value??r.last_value??r.start_value;return this.parse(a)}catch(e){throw this.adapter.parseError(e)}}parse(e){return a.Sequence.parseValue(this.options.type,e)}async increment(e,t){const{type:r,incrementBy:a,name:n,startWith:s}=this.options;if("Number"!==r&&"BigInt"!==r)throw new o.InternalError(`Cannot increment sequence of type ${r} with ${t}`);try{const e=await this.adapter.raw({query:"SELECT nextval($1) AS nextval;",values:[n]});return Array.isArray(e)&&e[0]?e[0].nextval:e}catch(e){if(!(e instanceof o.NotFoundError))throw e;if(!n)throw new o.InternalError("Cannot increment sequence without a name: "+n);const t=`"${n.replace(/"/g,'""')}"`;await this.adapter.raw({query:`CREATE SEQUENCE IF NOT EXISTS ${t} START WITH ${s} INCREMENT BY ${a} NO CYCLE;`,values:[]});const r=await this.adapter.raw({query:"SELECT nextval($1) AS nextval;",values:[n]});return Array.isArray(r)&&r[0]?r[0].nextval:r}}async next(){const e=await this.current();return this.increment(e)}async range(e){const t=await this.current(),r=this.parse(this.options.incrementBy),a=await this.increment(t,this.parse(e)*r),n=[];for(let a=1;e>=a;a++)n.push(t+r*this.parse(a));if(n[n.length-1]!==a)throw new o.InternalError("Miscalculation of range");return n}}function w(e){const t=((e,t,r,a=o.DefaultSeparator)=>[...e.map(e=>e===u.TABLE?"table":e),...r||[],...t?[t]:[],u.INDEX].join(a))([u.TABLE]),r={};return r[t]={query:"",values:[]},e.forEach(e=>{const t=a.Repository.indexes(e);Object.entries(t).forEach(([t,n])=>{const s=Object.keys(n)[0];let{compositions:i}=n[s];const c=a.Repository.table(e);i=i||[],(()=>{const e=[t,...i,a.PersistenceKeys.INDEX].join(o.DefaultSeparator);r[e]={query:"CREATE INDEX $1 ON $2 ($3);",values:[e,c,t]}})()})}),Object.values(r)}async function N(e,t,r,n,c,l){async function d(e,r){const s=a.Repository.forModel(e.constructor);await N(s,t,e,r||n!==o.OperationKeys.UPDATE?n:o.OperationKeys.CREATE,c,r)}await o.enforceDBDecorators(e,t,r,n,c,l);for(const e of Object.keys(r))s.Model.isPropertyModel(r,e)&&void 0!==r[e]?await d(r[e],l?l[e]:void 0):i.Reflection.getPropertyDecorators(s.ValidationKeys.REFLECT,r,e,!0,!0).decorators.find(e=>e.key===s.ValidationKeys.LIST)&&r[e]&&Array.isArray(r[e])&&await Promise.all(r[e].map((t,r)=>d(t,l&&l[e]?l[e][r]:void 0)))}e.TypeORMRepository=class extends a.Repository{constructor(e,t,...r){super(e,t,...r)}queryBuilder(){return this.adapter.dataSource.getRepository(this.class[s.ModelKeys.ANCHOR]).createQueryBuilder()}typeormRepo(){return this.adapter.dataSource.getRepository(this.class[s.ModelKeys.ANCHOR])}async createPrefix(e,...t){const r=await o.Context.args(o.OperationKeys.CREATE,this.class,t,this.adapter,this._overrides||{});e=new this.class(e),await N(this,r.context,e,o.OperationKeys.CREATE,o.OperationKeys.ON);const a=await Promise.resolve(e.hasErrors(...r.context.get("ignoredValidationProperties")||[]));if(a)throw new o.ValidationError(a.toString());return[e,...r.args]}async create(e,...t){let r,{record:a,id:o,transient:n}=this.adapter.prepare(e,this.pk);return a=await this.adapter.create(this.class[s.ModelKeys.ANCHOR],o,e,this.pk,...t),t.length&&(r=t[t.length-1]),this.adapter.revert(a,this.class,this.pk,o,r&&r.get("rebuildWithTransient")?n:void 0)}async read(e,...t){const r=await this.adapter.read(this.class[s.ModelKeys.ANCHOR],e,this.pk);return this.adapter.revert(r,this.class,this.pk,e)}async updatePrefix(e,...t){const r=await o.Context.args(o.OperationKeys.UPDATE,this.class,t,this.adapter,this._overrides||{}),n=e[this.pk];if(!n)throw new o.InternalError("No value for the Id is defined under the property "+this.pk);const s=await this.read(n,...r.args);e=this.merge(s,e),await N(this,r.context,e,o.OperationKeys.UPDATE,o.OperationKeys.ON,s);const i=await Promise.resolve(e.hasErrors(s,...a.Repository.relations(this.class),...r.context.get("ignoredValidationProperties")||[]));if(i)throw new o.ValidationError(i.toString());return a.Repository.getMetadata(s)&&(a.Repository.getMetadata(e)||a.Repository.setMetadata(e,a.Repository.getMetadata(s))),[e,...r.args]}async update(e,...t){let{record:r,id:a,transient:o}=this.adapter.prepare(e,this.pk);return r=await this.adapter.update(this.class[s.ModelKeys.ANCHOR],a,e,this.pk,...t),this.adapter.revert(r,this.class,this.pk,a,o)}async delete(e,...t){const r=await this.adapter.delete(this.class[s.ModelKeys.ANCHOR],e,this.pk,...t);return this.adapter.revert(r,this.class,this.pk,e)}async createAllPrefix(e,...t){const r=await o.Context.args(o.OperationKeys.CREATE,this.class,t,this.adapter,this._overrides||{});if(!e.length)return[e,...r.args];const a=(e=await Promise.all(e.map(async e=>(e=new this.class(e),await N(this,r.context,e,o.OperationKeys.CREATE,o.OperationKeys.ON),e)))).map(e=>e.hasErrors(...r.context.get("ignoredValidationProperties")||[])).reduce((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e),void 0);if(a)throw new o.ValidationError(a);return[e,...r.args]}async createAll(e,...t){if(!e.length)return e;const r=e.map(e=>this.adapter.prepare(e,this.pk)),a=r.map(e=>e.id);let o=r.map(e=>e.record);return o=await this.adapter.createAll(this.class[s.ModelKeys.ANCHOR],a,e,...t),o.map((e,t)=>this.adapter.revert(e,this.class,this.pk,a[t]))}async readAll(e,...t){return(await this.adapter.readAll(this.class[s.ModelKeys.ANCHOR],e,this.pk,...t)).map((t,r)=>this.adapter.revert(t,this.class,this.pk,e[r]))}async updateAll(e,...t){const r=e.map(e=>this.adapter.prepare(e,this.pk));return(await this.adapter.updateAll(this.class[s.ModelKeys.ANCHOR],r.map(e=>e.id),e,this.pk,...t)).map((e,t)=>this.adapter.revert(e,this.class,this.pk,r[t].id))}async deleteAll(e,...t){return(await this.adapter.deleteAll(this.class[s.ModelKeys.ANCHOR],e,this.pk,...t)).map((t,r)=>this.adapter.revert(t,this.class,this.pk,e[r]))}},e.TypeORMRepository=r.__decorate([a.uses(p),r.__metadata("design:paramtypes",[a.Adapter,Object,Object])],e.TypeORMRepository);let S=class{constructor(e){this.handler=e}afterInsert(e){const t=s.Model.get(e.entity.constructor.name);if(!t)throw new o.InternalError("No registered model found for "+e.entity.constructor.name);const r=a.Repository.table(t);this.handler(r,o.OperationKeys.CREATE,[e.entityId])}afterRemove(e){const t=s.Model.get(e.entity.constructor.name);if(!t)throw new o.InternalError("No registered model found for "+e.entity.constructor.name);const r=a.Repository.table(t);this.handler(r,o.OperationKeys.DELETE,[e.entityId])}afterUpdate(e){const t=s.Model.get(e.databaseEntity.constructor.name);if(!t)throw new o.InternalError("No registered model found for "+e.databaseEntity.constructor.name);const r=a.Repository.table(t);return this.handler(r,o.OperationKeys.UPDATE,[e.entity.id])}};S=r.__decorate([l.EventSubscriber(),r.__metadata("design:paramtypes",[Function])],S);class b extends a.Dispatch{constructor(e=5e3){super(),this.timeout=e,this.attemptCounter=0}async notificationHandler(e,t,r){const a=this.log.for(this.notificationHandler);try{await this.updateObservers(e,t,r),this.observerLastUpdate=(new Date).toISOString(),a.verbose(`Observer refresh dispatched by ${t} for ${e}`),a.debug("pks: "+r)}catch(e){a.error("Failed to process notification: "+e)}}async initialize(){(async function(){if(!this.adapter)throw new o.InternalError("No adapter/native observed for dispatch");try{this.adapter.client.isInitialized||await this.adapter.client.initialize(),this.adapter.client.subscribers.push(new S(this.notificationHandler.bind(this)))}catch(e){throw new o.InternalError(e)}}).call(this).then(()=>{this.log.info("Subscribed to TypeORM notifications")}).catch(e=>{throw new o.InternalError("Failed to subscribe to TypeORM notifications: "+e)})}async updateObservers(e,t,r){if(this.adapter)return super.updateObservers(e,t,r);this.log.verbose(`No adapter observed for dispatch; skipping observer update for ${e}:${t}`)}}function C(e,t,r){let o=0;const n=r.filter((r,a)=>(o=a,r.target===e&&r.propertyName===t));return n.length?(r.splice(o,1),Object.entries(n[0].options).reduce((e,[t,r])=>{switch(t){case"nullable":e[t]=r;break;case s.ValidationKeys.TYPE:break;default:throw new a.UnsupportedError("Unsupported option for a relation: "+t)}return e},{})):{}}function L(e,t,r,a={},n="regular",s,i){const c=r.filter(r=>r.target===e&&r.propertyName===t),l=s.filter(r=>r.target===e&&r.propertyName===t);if(i&&i.filter(r=>r.target===e&&r.columns.includes(t)).forEach(e=>{Object.assign(e,a)}),c.length>1)throw new o.InternalError(`Multiple columns for ${t} found for given target: ${r.map(e=>e.propertyName).join(", ")}`);if(l.length>1)throw new o.InternalError(`Multiple relations for ${t} found for given target: ${l.map(e=>e.propertyName).join(", ")}`);let d;0!==c.length||l.length?(l.length||(d=c[0],"regular"!==n&&Object.defineProperty(d,"mode",{value:n,writable:!0,enumerable:!0,configurable:!0})),l.length&&(a=Object.entries(a).reduce((e,[t,r])=>("nullable"===t&&(e[t]=r),e),{})),d=d||l[0],Object.defineProperty(d,"options",{value:{...d.options,...a},writable:!0,enumerable:!0,configurable:!0})):r.push({target:e,propertyName:t,mode:n,options:a})}function _(e,t){return(r,a)=>{let o;"string"==typeof e||"function"==typeof e?o=e:e&&(t=e,o=e.type),t||(t={});let n=Reflect&&Reflect.getMetadata?Reflect.getMetadata("design:type",r,a):void 0;!o&&n&&(o=n);const i=Reflect.getMetadata(s.Validation.key(s.ValidationKeys.TYPE),r,a);if(i){const{customTypes:e}=i,t=Array.isArray(e)?e[0]:e;let r;switch(t.toLowerCase()){case"string":r=String;break;case"number":r=Number;break;case"bigint":r=BigInt;break;case"date":r=Date;break;default:r=t}o=r,n=r}if(!t.type&&o&&(t.type=o),"hstore"!==t.type||t.hstoreType||(t.hstoreType=n===Object?"object":"string"),"function"==typeof e)l.getMetadataArgsStorage().embeddeds.push({target:r.constructor,propertyName:a,isArray:n===Array||!0===t.array,prefix:void 0!==t.prefix?t.prefix:void 0,type:e});else{if(!t.type)throw new l.ColumnTypeUndefinedError(r,a);!0===t.unique&&l.getMetadataArgsStorage().uniques.push({target:r.constructor,columns:[a]});const e=l.getMetadataArgsStorage();L(r.constructor,a,e.columns,t,"regular",e.relations,t.unique?e.indices:void 0),t.generated&&l.getMetadataArgsStorage().generations.push({target:r.constructor,propertyName:a,strategy:"string"==typeof t.generated?t.generated:"increment"})}}}class I{static isObject(e){return null!==e&&"object"==typeof e}static isObjectWithName(e){return null!==e&&"object"==typeof e&&void 0!==e.name}static assign(e,...t){for(const r of t)for(const t of Object.getOwnPropertyNames(r))e[t]=r[t]}}class M{static{this._metadata={}}static{this.splitter="."}static{this.baseKey="decaf"}static{this.mirror=!0}constructor(){}static getProperties(e){const t=this.get(e);if(t)return Object.keys(t.properties)}static pk(e){const t=this.get(e);if(t)return Object.keys(t.pk)[0]}static type(e,t){return this.types(e,t)[0]}static types(e,t){let r=this.get(e,"properties."+t);if(!r)throw Error(`Property ${t} not found in ${e.name}`);r=[r];const a=Symbol.for(e.toString());if(this._metadata[a]){const e=this._metadata[a];if(e.validation){const t=e.validation;t[s.ValidationKeys.TYPE]&&(r=r.concat(t[s.ValidationKeys.TYPE]))}}return r.filter(Boolean)}static get(e,t){const r=Symbol.for(e.toString());if(this._metadata[r])return t?((e,t,r=".")=>{const a=t.split(r);let o=e;for(const e of a){if(null==o||!Object.prototype.hasOwnProperty.call(o,e))return;o=o[e]}return o})(this._metadata[r],t,this.splitter):this._metadata[r]}static set(e,t,r){const a=Symbol.for(e.toString());this._metadata[a]||(this._metadata[a]={}),this.mirror&&!Object.prototype.hasOwnProperty.call(e,this.baseKey)&&Object.defineProperty(e,this.baseKey,{enumerable:!1,configurable:!1,writable:!1,value:this._metadata[a]}),((e,t,r,a=".")=>{const o=t.split(a);let n=e;for(const e of o)e in n||(n[e]={}),n=n[e];n[o[o.length-1]]=r})(this._metadata[a],t,r,this.splitter)}}function v(e,t){return(r,a,o)=>{M.set(r,e,t)}}async function D(e,t,r,a){try{const t=e.get("user");a[r]=t}catch(e){throw new o.InternalError("No User found in context. Please provide a user in the context")}}class K extends a.Adapter{getClient(){const e=a.Adapter.models(this.alias).map(e=>e[s.ModelKeys.ANCHOR]);return new l.DataSource(Object.assign({},this.config,{entities:e}))}constructor(e,t){super(e,p,t)}async shutdown(){await super.shutdown(),this._client&&await this._client.destroy()}async flags(e,t,r){return Object.assign(await super.flags(e,t,r),{user:this.config.username})}Dispatch(){return new b}repository(){return e.TypeORMRepository}Statement(){return new R(this)}async Sequence(e){return new T(e,this)}async initialize(){const e=this.client;try{await e.initialize()}catch(e){throw this.parseError(e)}this.log.for(this.initialize).verbose(this.toString()+" initialized")}async index(...e){const t=w(e);try{await this.client.query("BEGIN");for(const e of t)await this.client.query(e.query,e.values);await this.client.query("COMMIT")}catch(e){throw await this.client.query("ROLLBACK"),this.parseError(e)}}async raw(e){const t=this.log.for(this.raw);try{this.client.isInitialized||await this.client.initialize()}catch(e){throw this.parseError(e)}try{const{query:r,values:a}=e;return t.debug("executing query: "+r.getSql()),await this.client.query(r,a)}catch(e){throw this.parseError(e)}}prepare(e,t,r=!1){const n=super.prepare(e,t);n.record=Object.entries(n.record).reduce((e,[t,r])=>(t===a.PersistenceKeys.METADATA||this.isReserved(t)||void 0===r||(r instanceof Date?r=new Date(r.getTime()):s.Model.isModel(r)?r=this.prepare(r,o.findPrimaryKey(r).id,!0).record:"string"==typeof r&&(r=""+r),e[t]=r),e),{});const i=s.Model.get(e.constructor.name);if(!i)throw new o.InternalError(`Model ${e.constructor.name} not found in registry`);const c=r?new i[s.ModelKeys.ANCHOR]:new i;return r&&Object.defineProperty(c,"constructor",{configurable:!1,enumerable:!1,value:i[s.ModelKeys.ANCHOR],writable:!1}),Object.entries(n.record).forEach(([e,t])=>c[e]=t),n.record=c,n}revert(e,t,r,a,n){const s=this.log.for(this.revert);return n&&(s.verbose("re-adding transient properties: "+Object.keys(n).join(", ")),Object.entries(n).forEach(([r,a])=>{if(r in e)throw new o.InternalError(`Transient property ${r} already exists on model ${"string"==typeof t?t:t.name}. should be impossible`);e[r]=a})),new t(e)}async create(e,t,r,n,...s){const i=e,c=this.client.getRepository(i);if(void 0!==t&&await c.findOne({where:{[n]:t}}))throw new o.ConflictError(`Record already exists in table ${a.Repository.table(i)} with id: ${t}`);try{return await c.save(r)}catch(e){throw this.parseError(e)}}async read(e,t,r){const a=e;let o;try{const e=this.client.getRepository(a),{nonEager:n,relations:s}=O(a),i={where:{[r]:t},relations:s,loadRelationIds:{relations:n}};o=await e.findOneOrFail(i)}catch(e){throw this.parseError(e)}return o}async update(e,t,r,a,...o){await this.read(e,t,a);const n=e;try{return this.client.getRepository(n).save(r)}catch(e){throw this.parseError(e)}}async delete(e,t,r,...a){const o=e,n=await this.read(e,t,r);try{const e=this.client.getRepository(o);return await e.delete(t),n}catch(e){throw this.parseError(e)}}async createAll(e,t,r,...a){const o=e;try{const t=this.client.getRepository(o),a=await t.insert(r);return this.readAll(e,a.identifiers.map(e=>e.id),"id")}catch(e){throw this.parseError(e)}}async readAll(e,t,r,...a){if(!t.length)return[];const o=e;try{return this.client.getRepository(o).findBy({[r]:l.In(t)})}catch(e){throw this.parseError(e)}}async updateAll(e,t,r,a,...o){const n=[];for(const t of r)n.push(await this.update(e,t[a],t,a,...o));return n}async deleteAll(e,t,r,...a){if(!t.length)return[];const o=e;try{const a=this.client.getRepository(o),n=await this.readAll(e,t,r);return await a.delete(t),n}catch(e){throw this.parseError(e)}}parseError(e,t){return K.parseError(e,t)}isReserved(e){return!!e.match(d)}static parseError(e,t){if(e instanceof o.BaseError)return e;const r="string"==typeof e?e:e.message;if(r.match(/duplicate key|already exists/g))return new o.ConflictError(r);if(r.match(/does not exist|not found|Could not find/g))return new o.NotFoundError(r);switch(r.toString()){case"23505":case"23503":case"42P07":return new o.ConflictError(t);case"42P01":case"42703":return new o.NotFoundError(t);case"42P16":return new y(e);default:return r.toString().match(/ECONNREFUSED/g)?new a.ConnectionError(e):new o.InternalError(e)}}static async connect(e){const t=new l.DataSource(e);return t.isInitialized||await t.initialize(),t}static async createDatabase(e,t){const r=c.Logging.for(this.createDatabase);r.verbose("Creating database "+t);try{await e.query("CREATE DATABASE "+t),r.info("Created database "+t)}catch(e){throw this.parseError(e)}}static async createNotifyFunction(e,t){const r=c.Logging.for(this.createNotifyFunction);r.verbose("Creating notify function");try{await e.query("CREATE OR REPLACE FUNCTION notify_table_changes()\nRETURNS trigger AS $$\nBEGIN\n PERFORM pg_notify(\n 'table_changes',\n json_build_object(\n 'table', TG_TABLE_NAME,\n 'action', TG_OP,\n 'data', row_to_json(NEW),\n 'old_data', row_to_json(OLD)\n )::text\n );\n RETURN NEW;\nEND;\n$$ LANGUAGE plpgsql SECURITY DEFINER\n;"),await e.query(`ALTER FUNCTION notify_table_changes() OWNER TO ${t};`),await e.query("\n GRANT EXECUTE ON FUNCTION notify_table_changes() TO public;\n "),r.info("Created notify function")}catch(e){throw this.parseError(e)}}static async deleteDatabase(e,t,r){try{r&&await e.query(`DROP OWNED BY ${r} CASCADE;`),await e.query("DROP DATABASE "+t)}catch(e){throw this.parseError(e)}}static async createUser(e,t,r,a){try{await e.query(`CREATE USER ${r} WITH PASSWORD '${a}'`),await e.query(`GRANT CONNECT ON DATABASE ${t} TO ${r}`),await e.query("GRANT USAGE ON SCHEMA public TO "+r),await e.query("GRANT CREATE ON SCHEMA public TO "+r),await e.query("GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "+r),await e.query("GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO "+r),await e.query("GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public TO "+r),await e.query("ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON TABLES TO "+r),await e.query("ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON SEQUENCES TO "+r)}catch(e){throw this.parseError(e)}}static async deleteUser(e,t,r){try{await e.query(`REASSIGN OWNED BY ${t} TO ${r}`),await e.query("REVOKE ALL ON ALL TABLES IN SCHEMA public FROM "+t),await e.query("REVOKE ALL ON SCHEMA public FROM "+t),await e.query("REVOKE ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public FROM "+t),await e.query("REVOKE ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public FROM "+t),await e.query(`ALTER DEFAULT PRIVILEGES FOR ROLE ${r} IN SCHEMA public REVOKE ALL ON TABLES FROM ${t}`),await e.query(`ALTER DEFAULT PRIVILEGES FOR ROLE ${r} IN SCHEMA public REVOKE ALL ON SEQUENCES FROM ${t};`),await e.query(`ALTER DEFAULT PRIVILEGES FOR ROLE ${r} IN SCHEMA public REVOKE ALL ON FUNCTIONS FROM ${t}`),await e.query(`DROP OWNED BY ${t} CASCADE`),await e.query(`DROP USER IF EXISTS "${t}"`)}catch(e){throw this.parseError(e)}}static parseTypeToPostgres(e,t,r=!1){switch(e.toLowerCase()){case"string":return t?"TEXT PRIMARY KEY":r?"TEXT":"VARCHAR";case"number":return t?"SERIAL PRIMARY KEY":"INTEGER";case"boolean":return"BOOLEAN";case"date":return"TIMESTAMP";case"bigint":return t?"BIGINT PRIMARY KEY":"BIGINT";default:{const t=s.Model.get(e);if(t){const e=new t;return{model:t,pkType:i.Reflection.getTypeFromDecorator(e,o.findPrimaryKey(e).id)}}throw new o.InternalError("Unsupported type: "+e)}}}static parseValidationToPostgres(e,t,r,a,n){switch(a){case s.ValidationKeys.REQUIRED:return"NOT NULL";case s.ValidationKeys.MAX_LENGTH:return r||!n||"string"!==t.toLowerCase()?"":`(${n[s.ValidationKeys.MAX_LENGTH]})`;case s.ValidationKeys.MIN_LENGTH:return`CONSTRAINT ${e}_min_length_check CHECK (LENGTH(${e}) >= ${n[s.ValidationKeys.MIN_LENGTH]})`;case s.ValidationKeys.PATTERN:case s.ValidationKeys.URL:case s.ValidationKeys.EMAIL:return`CONSTRAINT ${e}_pattern_check CHECK (${e} ~ '${A(n[s.ValidationKeys.PATTERN])}')`;case s.ValidationKeys.TYPE:case s.ValidationKeys.DATE:return"";case s.ValidationKeys.MIN:return`CONSTRAINT ${e}_${a}_check CHECK (${e} >= ${n[s.ValidationKeys.MIN]})`;case s.ValidationKeys.MAX:return`CONSTRAINT ${e}_${a}_check CHECK (${e} <= ${n[s.ValidationKeys.MAX]})`;case s.ValidationKeys.PASSWORD:default:throw new o.InternalError("Unsupported type: "+a)}}static parseRelationsToPostgres(e,t,r,n,s){const i=a.Repository.table(t),{cascade:c}=s,l=`${c.update?" ON UPDATE CASCADE":""}${c.delete?" ON DELETE CASCADE":""}`;if("relations"+n===a.PersistenceKeys.ONE_TO_ONE)return`FOREIGN KEY (${e}) REFERENCES ${i}(${r})${l}`;throw new o.InternalError("Unsupported operation: "+n)}static async createTable(e,t){const r={},n=new t({}),c=a.Repository.table(t),{id:l}=o.findPrimaryKey(n);let d,p;const u=Object.getOwnPropertyNames(n);for(const t of u){if("function"==typeof this[t]||t.toString().startsWith("_")||"constructor"===t)continue;d=t===l,p=a.Repository.column(n,t.toString());const c=i.Reflection.getPropertyDecorators(s.ValidationKeys.REFLECT,n,t.toString(),!1,!0).decorators.reduce((e,t)=>{const{key:r,props:a}=t;return r!==s.ModelKeys.TYPE||e[s.ValidationKeys.TYPE]?r!==s.ValidationKeys.TYPE&&(e[r]=a):e[s.ValidationKeys.TYPE]={customTypes:[a.name],message:s.DEFAULT_ERROR_MESSAGES.TYPE,description:"defines the accepted types for the attribute"},e},{}),u=i.Reflection.getPropertyDecorators(a.Repository.key("relations"),n,t.toString(),!0,!0),y=[],h=[],E=[];let f,g,m;if(Object.keys(c).length){if(f=c[s.ValidationKeys.TYPE],!f)throw Error("Missing type information");let t=this.parseTypeToPostgres("function"==typeof f.customTypes[0]?f.customTypes[0]():f.customTypes[0],d);"string"==typeof t&&(t={model:t});let r=t.model;if("string"!=typeof r)try{g=t.model;const a=new g;m=o.findPrimaryKey(a),r=this.parseTypeToPostgres(t.pkType,!1,!0),await this.createTable(e,g)}catch(e){if(!(e instanceof o.ConflictError))throw e}let a=Array.isArray(f.customTypes)?f.customTypes[0]:f.customTypes;a="function"!=typeof a||a.name?a:a();const n=`${p} ${r}${this.parseValidationToPostgres(p,a,d,s.ValidationKeys.MAX_LENGTH,c[s.ValidationKeys.MAX_LENGTH]||{[s.ValidationKeys.MAX_LENGTH]:255})}`;d?y.unshift(n):y.push(n);for(const[e,t]of Object.entries(c).filter(([e])=>![s.ValidationKeys.TYPE,s.ValidationKeys.MAX_LENGTH].includes(e))){const r=this.parseValidationToPostgres(p,a,d,e,t);r.startsWith("CONSTRAINT")?h.push(r):r&&y.push(r)}}if(u&&u.decorators.length){if(!f)throw Error("Missing type information");for(const e of u.decorators){const{key:t,props:r}=e,a=this.parseRelationsToPostgres(p,g,m.id,t,r);if(!a.startsWith("FOREIGN"))throw new o.InternalError("Unsupported relation: "+t);E.push(a)}}r[t.toString()]={query:y.join(" "),values:[],primaryKey:d,constraints:h,foreignKeys:E}}const y=Object.values(r),h=y.map(e=>e.query).join(",\n"),E=y.filter(e=>!!e.constraints.length).map(e=>e.constraints).join(",\n"),f=y.filter(e=>!!e.foreignKeys.length).map(e=>e.foreignKeys).join(",\n"),g=[h,E];f&&g.push(f);const m=`CREATE TABLE ${c} (${g.filter(e=>!!e).join(",\n")})`;try{await e.query(m),await e.query(`CREATE TRIGGER notify_changes_${c}\nAFTER INSERT OR UPDATE OR DELETE ON ${c}\n FOR EACH ROW\n EXECUTE FUNCTION notify_table_changes();`)}catch(e){throw this.parseError(e)}return r}static async getCurrentUser(e){try{return(await e.query("SELECT CURRENT_USER;"))[0].current_user}catch(e){throw this.parseError(e)}}static decoration(){super.decoration();const e=a.Adapter.key(a.PersistenceKeys.TABLE);s.Decoration.flavouredAs(p).for(e).extend(e=>(e=>{const t=(I.isObject(e)?e:void 0)||{},r=t.name;return e=>{l.getMetadataArgsStorage().tables.push({target:e,name:r,type:"regular",orderBy:t.orderBy?t.orderBy:void 0,engine:t.engine?t.engine:void 0,database:t.database?t.database:void 0,schema:t.schema?t.schema:void 0,synchronize:t.synchronize,withoutRowid:t.withoutRowid,comment:t.comment?t.comment:void 0})}})()(e[s.ModelKeys.ANCHOR]||e)).apply();const t=a.Repository.key(o.DBKeys.ID);s.Decoration.flavouredAs(p).for(t).define({decorator:e=>(r,n)=>{const c=[s.required(),o.readonly(),s.propMetadata(t,e),v("pk."+n,e)];let d=e.type||i.Reflection.getTypeFromDecorator(r,n);if(!d)throw new o.InternalError(`Missing type information for property ${n} of ${r.name}`);if(e.generated){const t=e.name||a.sequenceNameForModel(r,"pk");c.push(((e,t)=>{const r={};let a;return e?I.isObject(e)&&(a="increment",Object.assign(r,e)):a="increment",I.isObject(t)&&Object.assign(r,t),(e,t)=>{r.type||("increment"===a||"identity"===a?r.type=Number:"uuid"===a?r.type="uuid":"rowid"===a&&(r.type="int")),r.primary=!0;const o=l.getMetadataArgsStorage();L(e.constructor,t,o.columns,r,"regular",o.relations),l.getMetadataArgsStorage().generations.push({target:e.constructor,propertyName:t,strategy:a})}})({name:t}),a.noValidateOnCreate())}else{switch(d.toLowerCase()){case"number":d="numeric";break;case"string":d="varchar";break;case"bigint":d="bigint";break;default:throw new o.InternalError("Unsupported type: "+d)}c.push(((e,t)=>(r,a)=>{let o;e===String||e===Boolean||e===Number?o=e:t=Object.assign({},e),t||(t={});const n=Reflect&&Reflect.getMetadata?Reflect.getMetadata("design:type",r,a):void 0;if(!o&&n&&(o=n),!t.type&&o&&(t.type=o),!t.type)throw new l.ColumnTypeUndefinedError(r,a);if(t.nullable)throw new l.PrimaryColumnCannotBeNullableError(r,a);t.primary=!0;const s=l.getMetadataArgsStorage();L(r.constructor,a,s.columns,t,"regular",s.relations),t.generated&&l.getMetadataArgsStorage().generations.push({target:r.constructor,propertyName:a,strategy:"string"==typeof t.generated?t.generated:"increment"})})({type:d,unique:!0}))}return i.apply(...c)(r,n)}}).apply(),s.Decoration.flavouredAs(p).for(s.ModelKeys.ATTRIBUTE).extend((e,t)=>v("property."+t,Reflect.getOwnMetadata(s.ModelKeys.TYPE,e,t))(e,t)).apply();const r=a.Adapter.key(a.PersistenceKeys.COLUMN);s.Decoration.flavouredAs(p).for(r).extend({decorator:e=>(t,r)=>{const a={};return e&&(a.name=e),M.get(t,"pk")!==r&&(a.nullable=!0),_(a)(t,r)},transform:e=>[e[1]]}).apply();const n=a.Adapter.key(a.PersistenceKeys.UNIQUE);s.Decoration.flavouredAs(p).for(n).define(s.propMetadata(n,{})).extend(_({unique:!0})).apply();const c=s.Validation.key(s.ValidationKeys.REQUIRED);s.Decoration.flavouredAs(p).for(c).extend(_({nullable:!1})).apply();const d=a.Repository.key(o.DBKeys.VERSION);s.Decoration.flavouredAs(p).for(d).define(s.type(Number.name),l.VersionColumn(),a.noValidateOnCreate()).apply();const u=(y=o.DBKeys.TIMESTAMP,o.UpdateValidationKeys.REFLECT+y);var y;s.Decoration.flavouredAs(p).for(u).define({decorator:(e,t)=>{const r=[s.date(t,o.DEFAULT_ERROR_MESSAGES.TIMESTAMP.DATE),s.required(o.DEFAULT_ERROR_MESSAGES.TIMESTAMP.REQUIRED),s.propMetadata(s.Validation.key(o.DBKeys.TIMESTAMP),{operation:e,format:t}),a.noValidateOnCreate()];return-1!==e.indexOf(o.OperationKeys.UPDATE)?r.push(s.propMetadata(u,{message:o.DEFAULT_ERROR_MESSAGES.TIMESTAMP.INVALID}),a.noValidateOnCreateUpdate()):r.push(o.readonly()),i.apply(...r)}}).extend({decorator:(...e)=>(t,r)=>-1!==e.indexOf(o.OperationKeys.UPDATE)?((e,t)=>{const r=l.getMetadataArgsStorage();L(e.constructor,t,r.columns,{},"updateDate",r.relations)})(t,r):((e,t)=>{const r=l.getMetadataArgsStorage();L(e.constructor,t,r.columns,{},"createDate",r.relations)})(t,r),transform:e=>e[0]}).apply();const h=a.Repository.key(a.PersistenceKeys.ONE_TO_ONE);s.Decoration.flavouredAs(p).for(h).define({decorator:(e,t,r,n,c)=>{const d={class:e.name?e.name:e,cascade:t,populate:r};n&&(d.joinTable=n),c&&(d.name=c);const p={cascade:t.update===a.Cascade.CASCADE||t.delete===a.Cascade.CASCADE,onDelete:t.delete?"CASCADE":"DEFAULT",onUpdate:t.update?"CASCADE":"DEFAULT",nullable:!0,eager:r};return i.apply(s.prop(a.PersistenceKeys.RELATIONS),s.type(["function"!=typeof e||e.name?e.name:e,String.name,Number.name,BigInt.name]),s.propMetadata(h,d),((e,t,r)=>{let a;return I.isObject(t)?r=t:a=t,(t,o)=>{r||(r={});let n=!(!r||!0!==r.lazy);if(!n&&Reflect&&Reflect.getMetadata){const e=Reflect.getMetadata("design:type",t,o);e&&"string"==typeof e.name&&"promise"===e.name.toLowerCase()&&(n=!0)}const s=l.getMetadataArgsStorage();r=Object.assign(r,C(t.constructor,o,s.columns)),s.relations.push({target:t.constructor,propertyName:o,isLazy:n,relationType:"one-to-one",type:e,inverseSideProperty:a,options:r})}})(()=>{if(e.name||(e=e()),!e[s.ModelKeys.ANCHOR])throw new o.InternalError("Original Model not found in constructor");return e[s.ModelKeys.ANCHOR]},t=>t[o.findPrimaryKey(new e).id],p),l.JoinColumn(n||d.name?{foreignKeyConstraintName:d.name}:void 0))}}).apply();const E=a.Repository.key(a.PersistenceKeys.ONE_TO_MANY);s.Decoration.flavouredAs(p).for(E).define({decorator:(e,t,r,n,c)=>{const d={class:e.name?e.name:e,cascade:t,populate:r};n&&(d.joinTable=n),c&&(d.name=c);const p=[s.prop(a.PersistenceKeys.RELATIONS),s.list(e),s.propMetadata(E,d),(n,c)=>{const d={cascade:t.update===a.Cascade.CASCADE||t.delete===a.Cascade.CASCADE,onDelete:t.delete?"CASCADE":"DEFAULT",onUpdate:t.update?"CASCADE":"DEFAULT",nullable:!0,eager:r};return(p=()=>{if(e.name||(e=e()),!e[s.ModelKeys.ANCHOR])throw new o.InternalError("Original Model not found in constructor");return e[s.ModelKeys.ANCHOR]},u=t=>{e.name||(e=e());const r=new e,s=Object.keys(r).find(e=>{const t=i.Reflection.getPropertyDecorators(a.Repository.key(a.PersistenceKeys.MANY_TO_ONE),r,e,!0);if(!t||!t.decorators||!t.decorators.length)return!1;const o=t.decorators[0];return("function"!=typeof o.props.class||o.props.class.name?o.props.class:o.props.class()).name===n.constructor.name});if(!s)throw new o.InternalError(`Cross relation not found. Did you use @manyToOne on the ${e.name}?`);return t[s]},y=d,(e,t)=>{y||(y={});let r=y&&!0===y.lazy;if(!r&&Reflect&&Reflect.getMetadata){const a=Reflect.getMetadata("design:type",e,t);a&&"string"==typeof a.name&&"promise"===a.name.toLowerCase()&&(r=!0)}const a=l.getMetadataArgsStorage();y=Object.assign(y,C(e.constructor,t,a.columns)),a.relations.push({target:e.constructor,propertyName:t,isLazy:r,relationType:"one-to-many",type:p,inverseSideProperty:u,options:y})})(n,c);var p,u,y}];return i.apply(...p)}}).apply();const f=a.Repository.key(a.PersistenceKeys.MANY_TO_ONE);s.Decoration.flavouredAs(p).for(f).define({decorator:(e,t,r,n,c)=>{const d={class:e.name?e.name:e,cascade:t,populate:r};n&&(d.joinTable=n),c&&(d.name=c);const p={cascade:t.update===a.Cascade.CASCADE||t.delete===a.Cascade.CASCADE,onDelete:t.delete?"CASCADE":"NO ACTION",onUpdate:t.update?"CASCADE":"NO ACTION",nullable:!0,eager:r};return i.apply(s.prop(a.PersistenceKeys.RELATIONS),s.type(["function"!=typeof e||e.name?e.name:e,String.name,Number.name,BigInt.name]),s.propMetadata(f,d),(t,r)=>((e,t,r)=>{let a;return I.isObject(t)?r=t:a=t,(t,o)=>{r||(r={});let n=r&&!0===r.lazy;if(!n&&Reflect&&Reflect.getMetadata){const e=Reflect.getMetadata("design:type",t,o);e&&"string"==typeof e.name&&"promise"===e.name.toLowerCase()&&(n=!0)}const s=l.getMetadataArgsStorage();r=Object.assign(r,C(t.constructor,o,s.columns)),s.relations.push({target:t.constructor,propertyName:o,relationType:"many-to-one",isLazy:n,type:e,inverseSideProperty:a,options:r})}})(()=>{if(e.name||(e=e()),!e[s.ModelKeys.ANCHOR])throw new o.InternalError("Original Model not found in constructor");return e[s.ModelKeys.ANCHOR]},r=>{e.name||(e=e());const n=new e;let c=Object.keys(n).find(e=>{const r=i.Reflection.getPropertyDecorators(a.Repository.key(a.PersistenceKeys.ONE_TO_MANY),n,e,!0);if(!r||!r.decorators||!r.decorators.length)return!1;const c=Reflect.getMetadata(s.Validation.key(s.ValidationKeys.LIST),n,e);if(!c)throw new o.InternalError(`No Type Definition found for ${e} in ${n.constructor.name}`);return c.clazz[0]().name===t.constructor.name});return c||(c=o.findPrimaryKey(new e).id),r[c]},p)(t,r))}}).apply();const g=a.Repository.key(a.PersistenceKeys.MANY_TO_MANY);s.Decoration.flavouredAs(p).for(g).define({decorator:(e,t,r,n,c)=>{const d={class:e.name?e.name:e,cascade:t,populate:r};n&&(d.joinTable=n),c&&(d.name=c);const p={cascade:t.update===a.Cascade.CASCADE||t.delete===a.Cascade.CASCADE,onDelete:t.delete?"CASCADE":"DEFAULT",onUpdate:t.update?"CASCADE":"DEFAULT",nullable:!0,eager:r};return i.apply(s.prop(a.PersistenceKeys.RELATIONS),s.list(e),s.propMetadata(g,d),((e,t,r)=>{let a;return I.isObject(t)?r=t:a=t,(t,o)=>{r||(r={});let n=!0===r.lazy;if(!n&&Reflect&&Reflect.getMetadata){const e=Reflect.getMetadata("design:type",t,o);e&&"string"==typeof e.name&&"promise"===e.name.toLowerCase()&&(n=!0)}const s=l.getMetadataArgsStorage();r=Object.assign(r,C(t.constructor,o,s.columns)),s.relations.push({target:t.constructor,propertyName:o,relationType:"many-to-many",isLazy:n,type:e,inverseSideProperty:a,options:r})}})(()=>{if(e.name||(e=e()),!e[s.ModelKeys.ANCHOR])throw new o.InternalError("Original Model not found in constructor");return e[s.ModelKeys.ANCHOR]},t=>(e.name||(e=e()),t[o.findPrimaryKey(new e).id]),p),l.JoinTable(n))}}).apply(),s.Decoration.flavouredAs(p).for(a.PersistenceKeys.INDEX).extend({decorator:(e,t,r)=>(r,o)=>("string"==typeof e&&(e=void 0,t=void 0),"string"==typeof t&&(t=void 0),!t&&e&&e.find(e=>![a.OrderDirection.ASC,a.OrderDirection.DSC].includes(e))&&(t=e,e=void 0),t&&t.length?l.Index([o,...t])(r):l.Index()(r,o))}).apply();const m=a.Repository.key(a.PersistenceKeys.CREATED_BY),A=a.Repository.key(a.PersistenceKeys.UPDATED_BY);s.Decoration.flavouredAs(p).for(m).define(o.onCreate(D,{}),s.required(),s.propMetadata(m,{}),a.noValidateOnCreate()).apply(),s.Decoration.flavouredAs(p).for(A).define(o.onCreateUpdate(D,{}),s.required(),s.propMetadata(A,{}),a.noValidateOnCreateUpdate()).apply()}}r.__decorate([a.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[]),r.__metadata("design:returntype",b)],K.prototype,"Dispatch",null),r.__decorate([a.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[]),r.__metadata("design:returntype",Object)],K.prototype,"repository",null),r.__decorate([a.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[]),r.__metadata("design:returntype",R)],K.prototype,"Statement",null),r.__decorate([a.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Object]),r.__metadata("design:returntype",Promise)],K.prototype,"Sequence",null),r.__decorate([a.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Object]),r.__metadata("design:returntype",Promise)],K.prototype,"index",null),K.decoration(),a.Adapter.setCurrent(p);const P="##VERSION##",$="##PACKAGE##";t.Metadata.registerLibrary($,P),e.IndexError=y,e.PACKAGE_NAME=$,e.TypeORMAdapter=K,e.TypeORMConst={NULL:"NULL"},e.TypeORMDispatch=b,e.TypeORMFlavour=p,e.TypeORMGroupOperator=f,e.TypeORMKeys=u,e.TypeORMOperator=E,e.TypeORMPaginator=g,e.TypeORMQueryLimit=250,e.TypeORMSequence=T,e.TypeORMStatement=R,e.VERSION=P,e.convertJsRegexToPostgres=A,e.enforceDbDecoratorsRecursive=N,e.generateIndexes=w,e.reservedAttributes=d,e.splitEagerRelations=O,e.translateOperators=m},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("tslib"),require("@decaf-ts/core"),require("@decaf-ts/db-decorators"),require("reflect-metadata"),require("@decaf-ts/decorator-validation"),require("@decaf-ts/reflection"),require("@decaf-ts/logging"),require("typeorm")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","tslib","@decaf-ts/core","@decaf-ts/db-decorators","reflect-metadata","@decaf-ts/decorator-validation","@decaf-ts/reflection","@decaf-ts/logging","typeorm"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-typeorm"]={},e.decafTsDecoration,e.tslib,e.decafTsCore,e.decafTsDbDecorators,e.reflectMetadata,e.decafTsDecoratorValidation,e.decafTsReflection,e.decafTsLogging,e.typeorm);
|
|
1
|
+
var e,t;e=this,t=function(e,t,r,a,o,n,s,i,c,l){"use strict";const d=/^(select|from|where|and|or|insert|update|delete|drop|create|table|index|primary|key|foreign|references|constraint|unique|check|default|null|not|as|order|by|group|having|limit|offset|join|inner|outer|left|right|full|on|using|values|returning|set|into|case|when|then|else|end|cast|coalesce|exists|any|all|some|in|between|like|ilike|similar|to|is|true|false|asc|desc|distinct|union|intersect|except|natural|lateral|window|over|partition|range|rows|unbounded|preceding|following|current|row|with|recursive|materialized|view|function|trigger|procedure|language|returns|return|declare|begin|commit|rollback|savepoint|transaction|temporary|temp|if|loop|while|for|continue|exit|raise|exception|notice|info|log|debug|assert|execute|perform|get|diagnostics|call|do|alias|comment|vacuum|analyze|explain|copy|grant|revoke|privileges|public|usage|schema|sequence|owned|owner|tablespace|storage|inherits|type|operator|collate|collation|cascade|restrict|add|alter|column|rename|to|enable|disable|force|no|instead|of|before|after|each|statement|row|execute|also|only|exclude|nulls|others|ordinality|ties|nothing|cache|cycle|increment|minvalue|maxvalue|start|restart|by|called|returns|language|immutable|stable|volatile|strict|security|definer|invoker|cost|rows|support|handler|inline|validator|options|storage|inheritance|oids|without|data|dictionary|encoding|lc_collate|lc_ctype|connection|limit|password|valid|until|superuser|nosuperuser|createdb|nocreatedb|createrole|nocreaterole|inherit|noinherit|login|nologin|replication|noreplication|bypassrls|nobypassrls|encrypted|unencrypted|new|old|session_user|current_user|current_role|current_schema|current_catalog|current_date|current_time|current_timestamp|localtime|localtimestamp|current_database|inet|cidr|macaddr|macaddr8|bit|varbit|tsvector|tsquery|uuid|xml|json|jsonb|int|integer|smallint|bigint|decimal|numeric|real|double|precision|float|boolean|bool|char|character|varchar|text|bytea|date|time|timestamp|interval|point|line|lseg|box|path|polygon|circle|money|void)$/i,p="type-orm",u={SEPARATOR:".",ID:"id",VERSION:"version",DELETED:"deleted_at",TABLE:"table_name",SCHEMA:"schema_name",SEQUENCE:"sequence_name",INDEX:"index"};class y extends o.BaseError{constructor(e){super(y.name,e,404)}}var h;e.SQLOperator=void 0,(h=e.SQLOperator||(e.SQLOperator={})).EQUAL="=",h.NOT_EQUAL="<>",h.LESS_THAN="<",h.LESS_THAN_OR_EQUAL="<=",h.GREATER_THAN=">",h.GREATER_THAN_OR_EQUAL=">=",h.IN="IN",h.NOT_IN="NOT IN",h.LIKE="LIKE",h.ILIKE="ILIKE",h.BETWEEN="BETWEEN",h.IS_NULL="IS NULL",h.IS_NOT_NULL="IS NOT NULL",h.EXISTS="EXISTS",h.NOT_EXISTS="NOT EXISTS",h.ANY="ANY",h.ALL="ALL",h.SOME="SOME";const E={EQUAL:e.SQLOperator.EQUAL,DIFFERENT:e.SQLOperator.NOT_EQUAL,BIGGER:e.SQLOperator.GREATER_THAN,BIGGER_EQ:e.SQLOperator.GREATER_THAN_OR_EQUAL,SMALLER:e.SQLOperator.LESS_THAN,SMALLER_EQ:e.SQLOperator.LESS_THAN_OR_EQUAL,BETWEEN:e.SQLOperator.BETWEEN,NOT:"NOT",IN:e.SQLOperator.IN,IS_NULL:e.SQLOperator.IS_NULL,IS_NOT_NULL:e.SQLOperator.IS_NOT_NULL,REGEXP:"~",IREGEXP:"~*",LIKE:e.SQLOperator.LIKE,ILIKE:e.SQLOperator.ILIKE},f={AND:"AND",OR:"OR"};class g extends a.Paginator{get total(){return this._totalPages}get count(){return this._recordCount}get repo(){return this.__repo||(this.__repo=this.adapter.client.getRepository(this.clazz[s.ModelKeys.ANCHOR])),this.__repo}constructor(e,t,r,a){super(e,t,r,a)}prepare(e){return{...e}}async page(e=1){const t={...this.statement};this._recordCount&&this._totalPages||(this._totalPages=this._recordCount=0);const r=Object.assign(t,{skip:(this.current||0)*this.size,take:this.size}),n=await this.repo.findAndCount(r);if(this._recordCount=n[1],this._totalPages=Math.ceil(this._recordCount/this.size),!this.clazz)throw new a.PagingError("No statement target defined");const s=o.findPrimaryKey(new this.clazz),i=(n[0]||[]).map(e=>this.adapter.revert(e,this.clazz,s.id,e[s.id]));return this._currentPage=e,i}}function m(e){for(const t of[E,f]){const r=Object.keys(t).find(t=>t===e);if(r)return t[r]}throw new a.QueryError("Could not find adapter translation for operator "+e)}function A(e){const t=RegExp(/^\/(.+)\/(\w+)$/g);if("string"==typeof e){const r=t.exec(e);if(r){const[,t]=r;e=t}}return("string"==typeof e?RegExp(e):e).source}function O(e,t={}){let r;try{r=new e}catch(t){throw new o.InternalError(`Could not instantiate model ${e.name} for eager relation calculation: ${t}`)}const n=a.Repository.relations(e);if(t[e.name]=t[e.name]||void 0,t[e.name])return t[e.name];const c=n.reduce((n,c)=>{const l=i.Reflection.getPropertyDecorators(a.Repository.key(a.PersistenceKeys.RELATION),r,c,!0);if(!l||!l.decorators||!l.decorators.length)throw new o.InternalError(`No decorators found for property ${c} on model ${e.name}`);if(l.decorators.length>1)throw new o.InternalError(`Multiple decorators found for property ${c} on model ${e.name}`);const d=l.decorators[0],p=d.props.populate;let u=d.props.class;if("string"==typeof u&&(u=s.Model.get(u)),"function"!=typeof u||u.name||(u=u()),!u)throw new o.InternalError(`Could not find class for property ${c} on model ${e.name}`);if(p?n.relations.push(c):n.nonEager.push(c),n.relations.includes(c)){const{nonEager:e,relations:r}=O(u,t);if(e.length&&n.relations.includes(c)){const t=e.map(e=>`${c}.${e}`);n.nonEager.push(...t)}if(r.length){const e=r.map(e=>`${c}.${e}`);n.relations.push(...e)}}return n},{nonEager:[],relations:[]});return t[e.name]=c,c}class R extends a.Statement{constructor(e){super(e)}build(){const e=this.log.for(this.build),t=a.Repository.table(this.fromSelector),r=new this.fromSelector,n={query:this.adapter.client.getRepository(this.fromSelector[s.ModelKeys.ANCHOR]).createQueryBuilder(t)};let i;return this.selectSelector?n.query=n.query.select(this.selectSelector.map(e=>`${t}.${e}`)):n.query=n.query.select(),this.whereCondition&&(n.query=this.parseCondition(this.whereCondition,t,n.query).query),i=this.orderBySelector?[`${t}.${this.orderBySelector[0]}`,this.orderBySelector[1].toUpperCase()]:[`${t}.${o.findPrimaryKey(r).id}`,a.OrderDirection.ASC.toUpperCase()],n.query=n.query.orderBy(...i),this.limitSelector?n.query=n.query.limit(this.limitSelector):(e.debug("No limit selector defined. Using default limit of 250"),n.query=n.query.limit(250)),this.offsetSelector&&(n.query=n.query.skip(this.offsetSelector)),n}async paginate(e){try{const t={};return this.whereCondition&&(t.where=this.parseConditionForPagination(this.whereCondition,a.Repository.table(this.fromSelector))),this.orderBySelector&&(t.order={[this.orderBySelector[0]]:this.orderBySelector[1].toString()}),new g(this.adapter,t,e,this.fromSelector)}catch(e){throw new o.InternalError(e)}}processRecord(e,t){return void 0!==e[t]?this.adapter.revert(e,this.fromSelector,t,e[t]):e}async raw(e){this.log.for(this.raw).debug("Executing raw query: "+e.query.getSql());const{nonEager:t}=O(this.fromSelector);return e.query=e.query.setFindOptions({loadEagerRelations:!0,loadRelationIds:{relations:t}}),await e.query.getMany()}parseConditionForPagination(e,t,r=0,a){throw new o.InternalError("Not implemented")}parseCondition(e,t,r,o=0,n){const{attr1:s,operator:i,comparison:c}=e;if(-1===[a.GroupOperator.AND,a.GroupOperator.OR,a.Operator.NOT].indexOf(i))return(()=>{const e=m(i),l=`${s}${o}`,d=`${t}.${s} ${e} :${l}`,p={[l]:c};switch(n){case a.GroupOperator.AND:return{query:r.andWhere(d,p)};case a.GroupOperator.OR:return{query:r.orWhere(d,p)};case a.Operator.NOT:throw Error("NOT operator not implemented");default:return{query:r.where(d,p)}}})();if(i===a.Operator.NOT)throw Error("NOT operator not implemented");return r=this.parseCondition(s,t,r,++o).query,this.parseCondition(c,t,r,++o,i)}}class T extends a.Sequence{constructor(e,t){super(e),this.adapter=t}async current(){const{name:e}=this.options;try{const t=await this.adapter.raw({query:"SELECT sequence_name, start_value, minimum_value, increment FROM information_schema.sequences WHERE sequence_name = $1",values:[e]});if(!Array.isArray(t)||0===t.length)throw new o.InternalError(`Sequence ${e} not found`);const r=t[0],a=r.current_value??r.last_value??r.start_value;return this.parse(a)}catch(e){throw this.adapter.parseError(e)}}parse(e){return a.Sequence.parseValue(this.options.type,e)}async increment(e,t){const{type:r,incrementBy:a,name:n,startWith:s}=this.options;if("Number"!==r&&"BigInt"!==r)throw new o.InternalError(`Cannot increment sequence of type ${r} with ${t}`);try{const e=await this.adapter.raw({query:"SELECT nextval($1) AS nextval;",values:[n]});return Array.isArray(e)&&e[0]?e[0].nextval:e}catch(e){if(!(e instanceof o.NotFoundError))throw e;if(!n)throw new o.InternalError("Cannot increment sequence without a name: "+n);const t=`"${n.replace(/"/g,'""')}"`;await this.adapter.raw({query:`CREATE SEQUENCE IF NOT EXISTS ${t} START WITH ${s} INCREMENT BY ${a} NO CYCLE;`,values:[]});const r=await this.adapter.raw({query:"SELECT nextval($1) AS nextval;",values:[n]});return Array.isArray(r)&&r[0]?r[0].nextval:r}}async next(){const e=await this.current();return this.increment(e)}async range(e){const t=await this.current(),r=this.parse(this.options.incrementBy),a=await this.increment(t,this.parse(e)*r),n=[];for(let a=1;e>=a;a++)n.push(t+r*this.parse(a));if(n[n.length-1]!==a)throw new o.InternalError("Miscalculation of range");return n}}function w(e){const t=((e,t,r,a=o.DefaultSeparator)=>[...e.map(e=>e===u.TABLE?"table":e),...r||[],...t?[t]:[],u.INDEX].join(a))([u.TABLE]),r={};return r[t]={query:"",values:[]},e.forEach(e=>{const t=a.Repository.indexes(e);Object.entries(t).forEach(([t,n])=>{const s=Object.keys(n)[0];let{compositions:i}=n[s];const c=a.Repository.table(e);i=i||[],(()=>{const e=[t,...i,a.PersistenceKeys.INDEX].join(o.DefaultSeparator);r[e]={query:"CREATE INDEX $1 ON $2 ($3);",values:[e,c,t]}})()})}),Object.values(r)}async function N(e,t,r,n,c,l){async function d(e,r){const s=a.Repository.forModel(e.constructor);await N(s,t,e,r||n!==o.OperationKeys.UPDATE?n:o.OperationKeys.CREATE,c,r)}await o.enforceDBDecorators(e,t,r,n,c,l);for(const e of Object.keys(r))s.Model.isPropertyModel(r,e)&&void 0!==r[e]?await d(r[e],l?l[e]:void 0):i.Reflection.getPropertyDecorators(s.ValidationKeys.REFLECT,r,e,!0,!0).decorators.find(e=>e.key===s.ValidationKeys.LIST)&&r[e]&&Array.isArray(r[e])&&await Promise.all(r[e].map((t,r)=>d(t,l&&l[e]?l[e][r]:void 0)))}e.TypeORMRepository=class extends a.Repository{constructor(e,t,...r){super(e,t,...r)}queryBuilder(){return this.adapter.dataSource.getRepository(this.class[s.ModelKeys.ANCHOR]).createQueryBuilder()}typeormRepo(){return this.adapter.dataSource.getRepository(this.class[s.ModelKeys.ANCHOR])}async createPrefix(e,...t){const r=await o.Context.args(o.OperationKeys.CREATE,this.class,t,this.adapter,this._overrides||{});e=new this.class(e),await N(this,r.context,e,o.OperationKeys.CREATE,o.OperationKeys.ON);const a=await Promise.resolve(e.hasErrors(...r.context.get("ignoredValidationProperties")||[]));if(a)throw new o.ValidationError(a.toString());return[e,...r.args]}async create(e,...t){let r,{record:a,id:o,transient:n}=this.adapter.prepare(e,this.pk);return a=await this.adapter.create(this.class[s.ModelKeys.ANCHOR],o,e,this.pk,...t),t.length&&(r=t[t.length-1]),this.adapter.revert(a,this.class,this.pk,o,r&&r.get("rebuildWithTransient")?n:void 0)}async read(e,...t){const r=await this.adapter.read(this.class[s.ModelKeys.ANCHOR],e,this.pk);return this.adapter.revert(r,this.class,this.pk,e)}async updatePrefix(e,...t){const r=await o.Context.args(o.OperationKeys.UPDATE,this.class,t,this.adapter,this._overrides||{}),n=e[this.pk];if(!n)throw new o.InternalError("No value for the Id is defined under the property "+this.pk);const s=await this.read(n,...r.args);e=this.merge(s,e),await N(this,r.context,e,o.OperationKeys.UPDATE,o.OperationKeys.ON,s);const i=await Promise.resolve(e.hasErrors(s,...a.Repository.relations(this.class),...r.context.get("ignoredValidationProperties")||[]));if(i)throw new o.ValidationError(i.toString());return a.Repository.getMetadata(s)&&(a.Repository.getMetadata(e)||a.Repository.setMetadata(e,a.Repository.getMetadata(s))),[e,...r.args]}async update(e,...t){let{record:r,id:a,transient:o}=this.adapter.prepare(e,this.pk);return r=await this.adapter.update(this.class[s.ModelKeys.ANCHOR],a,e,this.pk,...t),this.adapter.revert(r,this.class,this.pk,a,o)}async delete(e,...t){const r=await this.adapter.delete(this.class[s.ModelKeys.ANCHOR],e,this.pk,...t);return this.adapter.revert(r,this.class,this.pk,e)}async createAllPrefix(e,...t){const r=await o.Context.args(o.OperationKeys.CREATE,this.class,t,this.adapter,this._overrides||{});if(!e.length)return[e,...r.args];const a=(e=await Promise.all(e.map(async e=>(e=new this.class(e),await N(this,r.context,e,o.OperationKeys.CREATE,o.OperationKeys.ON),e)))).map(e=>e.hasErrors(...r.context.get("ignoredValidationProperties")||[])).reduce((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e),void 0);if(a)throw new o.ValidationError(a);return[e,...r.args]}async createAll(e,...t){if(!e.length)return e;const r=e.map(e=>this.adapter.prepare(e,this.pk)),a=r.map(e=>e.id);let o=r.map(e=>e.record);return o=await this.adapter.createAll(this.class[s.ModelKeys.ANCHOR],a,e,...t),o.map((e,t)=>this.adapter.revert(e,this.class,this.pk,a[t]))}async readAll(e,...t){return(await this.adapter.readAll(this.class[s.ModelKeys.ANCHOR],e,this.pk,...t)).map((t,r)=>this.adapter.revert(t,this.class,this.pk,e[r]))}async updateAll(e,...t){const r=e.map(e=>this.adapter.prepare(e,this.pk));return(await this.adapter.updateAll(this.class[s.ModelKeys.ANCHOR],r.map(e=>e.id),e,this.pk,...t)).map((e,t)=>this.adapter.revert(e,this.class,this.pk,r[t].id))}async deleteAll(e,...t){return(await this.adapter.deleteAll(this.class[s.ModelKeys.ANCHOR],e,this.pk,...t)).map((t,r)=>this.adapter.revert(t,this.class,this.pk,e[r]))}},e.TypeORMRepository=r.__decorate([a.uses(p),r.__metadata("design:paramtypes",[a.Adapter,Object,Object])],e.TypeORMRepository);let S=class{constructor(e){this.handler=e}afterInsert(e){const t=s.Model.get(e.entity.constructor.name);if(!t)throw new o.InternalError("No registered model found for "+e.entity.constructor.name);const r=a.Repository.table(t);this.handler(r,o.OperationKeys.CREATE,[e.entityId])}afterRemove(e){const t=s.Model.get(e.entity.constructor.name);if(!t)throw new o.InternalError("No registered model found for "+e.entity.constructor.name);const r=a.Repository.table(t);this.handler(r,o.OperationKeys.DELETE,[e.entityId])}afterUpdate(e){const t=s.Model.get(e.databaseEntity.constructor.name);if(!t)throw new o.InternalError("No registered model found for "+e.databaseEntity.constructor.name);const r=a.Repository.table(t);return this.handler(r,o.OperationKeys.UPDATE,[e.entity.id])}};S=r.__decorate([l.EventSubscriber(),r.__metadata("design:paramtypes",[Function])],S);class b extends a.Dispatch{constructor(e=5e3){super(),this.timeout=e,this.attemptCounter=0}async notificationHandler(e,t,r){const a=this.log.for(this.notificationHandler);try{await this.updateObservers(e,t,r),this.observerLastUpdate=(new Date).toISOString(),a.verbose(`Observer refresh dispatched by ${t} for ${e}`),a.debug("pks: "+r)}catch(e){a.error("Failed to process notification: "+e)}}async initialize(){(async function(){if(!this.adapter)throw new o.InternalError("No adapter/native observed for dispatch");try{this.adapter.client.isInitialized||await this.adapter.client.initialize(),this.adapter.client.subscribers.push(new S(this.notificationHandler.bind(this)))}catch(e){throw new o.InternalError(e)}}).call(this).then(()=>{this.log.info("Subscribed to TypeORM notifications")}).catch(e=>{throw new o.InternalError("Failed to subscribe to TypeORM notifications: "+e)})}async updateObservers(e,t,r){if(this.adapter)return super.updateObservers(e,t,r);this.log.verbose(`No adapter observed for dispatch; skipping observer update for ${e}:${t}`)}}function C(e,t,r){let o=0;const n=r.filter((r,a)=>(o=a,r.target===e&&r.propertyName===t));return n.length?(r.splice(o,1),Object.entries(n[0].options).reduce((e,[t,r])=>{switch(t){case"nullable":e[t]=r;break;case s.ValidationKeys.TYPE:break;default:throw new a.UnsupportedError("Unsupported option for a relation: "+t)}return e},{})):{}}function L(e,t,r,a={},n="regular",s,i){const c=r.filter(r=>r.target===e&&r.propertyName===t),l=s.filter(r=>r.target===e&&r.propertyName===t);if(i&&i.filter(r=>r.target===e&&r.columns.includes(t)).forEach(e=>{Object.assign(e,a)}),c.length>1)throw new o.InternalError(`Multiple columns for ${t} found for given target: ${r.map(e=>e.propertyName).join(", ")}`);if(l.length>1)throw new o.InternalError(`Multiple relations for ${t} found for given target: ${l.map(e=>e.propertyName).join(", ")}`);let d;0!==c.length||l.length?(l.length||(d=c[0],"regular"!==n&&Object.defineProperty(d,"mode",{value:n,writable:!0,enumerable:!0,configurable:!0})),l.length&&(a=Object.entries(a).reduce((e,[t,r])=>("nullable"===t&&(e[t]=r),e),{})),d=d||l[0],Object.defineProperty(d,"options",{value:{...d.options,...a},writable:!0,enumerable:!0,configurable:!0})):r.push({target:e,propertyName:t,mode:n,options:a})}function _(e,t){return(r,a)=>{let o;"string"==typeof e||"function"==typeof e?o=e:e&&(t=e,o=e.type),t||(t={});let n=Reflect&&Reflect.getMetadata?Reflect.getMetadata("design:type",r,a):void 0;!o&&n&&(o=n);const i=Reflect.getMetadata(s.Validation.key(s.ValidationKeys.TYPE),r,a);if(i){const{customTypes:e}=i,t=Array.isArray(e)?e[0]:e;let r;switch(t.toLowerCase()){case"string":r=String;break;case"number":r=Number;break;case"bigint":r=BigInt;break;case"date":r=Date;break;default:r=t}o=r,n=r}if(!t.type&&o&&(t.type=o),"hstore"!==t.type||t.hstoreType||(t.hstoreType=n===Object?"object":"string"),"function"==typeof e)l.getMetadataArgsStorage().embeddeds.push({target:r.constructor,propertyName:a,isArray:n===Array||!0===t.array,prefix:void 0!==t.prefix?t.prefix:void 0,type:e});else{if(!t.type)throw new l.ColumnTypeUndefinedError(r,a);!0===t.unique&&l.getMetadataArgsStorage().uniques.push({target:r.constructor,columns:[a]});const e=l.getMetadataArgsStorage();L(r.constructor,a,e.columns,t,"regular",e.relations,t.unique?e.indices:void 0),t.generated&&l.getMetadataArgsStorage().generations.push({target:r.constructor,propertyName:a,strategy:"string"==typeof t.generated?t.generated:"increment"})}}}class I{static isObject(e){return null!==e&&"object"==typeof e}static isObjectWithName(e){return null!==e&&"object"==typeof e&&void 0!==e.name}static assign(e,...t){for(const r of t)for(const t of Object.getOwnPropertyNames(r))e[t]=r[t]}}class M{static{this._metadata={}}static{this.splitter="."}static{this.baseKey="decaf"}static{this.mirror=!0}constructor(){}static getProperties(e){const t=this.get(e);if(t)return Object.keys(t.properties)}static pk(e){const t=this.get(e);if(t)return Object.keys(t.pk)[0]}static type(e,t){return this.types(e,t)[0]}static types(e,t){let r=this.get(e,"properties."+t);if(!r)throw Error(`Property ${t} not found in ${e.name}`);r=[r];const a=Symbol.for(e.toString());if(this._metadata[a]){const e=this._metadata[a];if(e.validation){const t=e.validation;t[s.ValidationKeys.TYPE]&&(r=r.concat(t[s.ValidationKeys.TYPE]))}}return r.filter(Boolean)}static get(e,t){const r=Symbol.for(e.toString());if(this._metadata[r])return t?((e,t,r=".")=>{const a=t.split(r);let o=e;for(const e of a){if(null==o||!Object.prototype.hasOwnProperty.call(o,e))return;o=o[e]}return o})(this._metadata[r],t,this.splitter):this._metadata[r]}static set(e,t,r){const a=Symbol.for(e.toString());this._metadata[a]||(this._metadata[a]={}),this.mirror&&!Object.prototype.hasOwnProperty.call(e,this.baseKey)&&Object.defineProperty(e,this.baseKey,{enumerable:!1,configurable:!1,writable:!1,value:this._metadata[a]}),((e,t,r,a=".")=>{const o=t.split(a);let n=e;for(const e of o)e in n||(n[e]={}),n=n[e];n[o[o.length-1]]=r})(this._metadata[a],t,r,this.splitter)}}function v(e,t){return(r,a,o)=>{M.set(r,e,t)}}async function D(e,t,r,a){try{const t=e.get("user");a[r]=t}catch(e){throw new o.InternalError("No User found in context. Please provide a user in the context")}}class K extends a.Adapter{getClient(){const e=a.Adapter.models(this.alias).map(e=>e[s.ModelKeys.ANCHOR]);return new l.DataSource(Object.assign({},this.config,{entities:e}))}constructor(e,t){super(e,p,t)}async shutdown(){await super.shutdown(),this._client&&await this._client.destroy()}async flags(e,t,r){return Object.assign(await super.flags(e,t,r),{user:this.config.username})}Dispatch(){return new b}repository(){return e.TypeORMRepository}Statement(){return new R(this)}async Sequence(e){return new T(e,this)}async initialize(){const e=this.client;try{await e.initialize()}catch(e){throw this.parseError(e)}this.log.for(this.initialize).verbose(this.toString()+" initialized")}async index(...e){const t=w(e);try{await this.client.query("BEGIN");for(const e of t)await this.client.query(e.query,e.values);await this.client.query("COMMIT")}catch(e){throw await this.client.query("ROLLBACK"),this.parseError(e)}}async raw(e){const t=this.log.for(this.raw);try{this.client.isInitialized||await this.client.initialize()}catch(e){throw this.parseError(e)}try{const{query:r,values:a}=e;return t.debug("executing query: "+r.getSql()),await this.client.query(r,a)}catch(e){throw this.parseError(e)}}prepare(e,t,r=!1){const n=super.prepare(e,t);n.record=Object.entries(n.record).reduce((e,[t,r])=>(t===a.PersistenceKeys.METADATA||this.isReserved(t)||void 0===r||(r instanceof Date?r=new Date(r.getTime()):s.Model.isModel(r)?r=this.prepare(r,o.findPrimaryKey(r).id,!0).record:"string"==typeof r&&(r=""+r),e[t]=r),e),{});const i=s.Model.get(e.constructor.name);if(!i)throw new o.InternalError(`Model ${e.constructor.name} not found in registry`);const c=r?new i[s.ModelKeys.ANCHOR]:new i;return r&&Object.defineProperty(c,"constructor",{configurable:!1,enumerable:!1,value:i[s.ModelKeys.ANCHOR],writable:!1}),Object.entries(n.record).forEach(([e,t])=>c[e]=t),n.record=c,n}revert(e,t,r,a,n){const s=this.log.for(this.revert);return n&&(s.verbose("re-adding transient properties: "+Object.keys(n).join(", ")),Object.entries(n).forEach(([r,a])=>{if(r in e)throw new o.InternalError(`Transient property ${r} already exists on model ${"string"==typeof t?t:t.name}. should be impossible`);e[r]=a})),new t(e)}async create(e,t,r,n,...s){const i=e,c=this.client.getRepository(i);if(void 0!==t&&await c.findOne({where:{[n]:t}}))throw new o.ConflictError(`Record already exists in table ${a.Repository.table(i)} with id: ${t}`);try{return await c.save(r)}catch(e){throw this.parseError(e)}}async read(e,t,r){const a=e;let o;try{const e=this.client.getRepository(a),{nonEager:n,relations:s}=O(a),i={where:{[r]:t},relations:s,loadRelationIds:{relations:n}};o=await e.findOneOrFail(i)}catch(e){throw this.parseError(e)}return o}async update(e,t,r,a,...o){await this.read(e,t,a);const n=e;try{return this.client.getRepository(n).save(r)}catch(e){throw this.parseError(e)}}async delete(e,t,r,...a){const o=e,n=await this.read(e,t,r);try{const e=this.client.getRepository(o);return await e.delete(t),n}catch(e){throw this.parseError(e)}}async createAll(e,t,r,...a){const o=e;try{const t=this.client.getRepository(o),a=await t.insert(r);return this.readAll(e,a.identifiers.map(e=>e.id),"id")}catch(e){throw this.parseError(e)}}async readAll(e,t,r,...a){if(!t.length)return[];const o=e;try{return this.client.getRepository(o).findBy({[r]:l.In(t)})}catch(e){throw this.parseError(e)}}async updateAll(e,t,r,a,...o){const n=[];for(const t of r)n.push(await this.update(e,t[a],t,a,...o));return n}async deleteAll(e,t,r,...a){if(!t.length)return[];const o=e;try{const a=this.client.getRepository(o),n=await this.readAll(e,t,r);return await a.delete(t),n}catch(e){throw this.parseError(e)}}parseError(e,t){return K.parseError(e,t)}isReserved(e){return!!e.match(d)}static parseError(e,t){if(e instanceof o.BaseError)return e;const r="string"==typeof e?e:e.message;if(r.match(/duplicate key|already exists/g))return new o.ConflictError(r);if(r.match(/does not exist|not found|Could not find/g))return new o.NotFoundError(r);switch(r.toString()){case"23505":case"23503":case"42P07":return new o.ConflictError(t);case"42P01":case"42703":return new o.NotFoundError(t);case"42P16":return new y(e);default:return r.toString().match(/ECONNREFUSED/g)?new a.ConnectionError(e):new o.InternalError(e)}}static async connect(e){const t=new l.DataSource(e);return t.isInitialized||await t.initialize(),t}static async createDatabase(e,t){const r=c.Logging.for(this.createDatabase);r.verbose("Creating database "+t);try{await e.query("CREATE DATABASE "+t),r.info("Created database "+t)}catch(e){throw this.parseError(e)}}static async createNotifyFunction(e,t){const r=c.Logging.for(this.createNotifyFunction);r.verbose("Creating notify function");try{await e.query("CREATE OR REPLACE FUNCTION notify_table_changes()\nRETURNS trigger AS $$\nBEGIN\n PERFORM pg_notify(\n 'table_changes',\n json_build_object(\n 'table', TG_TABLE_NAME,\n 'action', TG_OP,\n 'data', row_to_json(NEW),\n 'old_data', row_to_json(OLD)\n )::text\n );\n RETURN NEW;\nEND;\n$$ LANGUAGE plpgsql SECURITY DEFINER\n;"),await e.query(`ALTER FUNCTION notify_table_changes() OWNER TO ${t};`),await e.query("\n GRANT EXECUTE ON FUNCTION notify_table_changes() TO public;\n "),r.info("Created notify function")}catch(e){throw this.parseError(e)}}static async deleteDatabase(e,t,r){try{r&&await e.query(`DROP OWNED BY ${r} CASCADE;`),await e.query("DROP DATABASE "+t)}catch(e){throw this.parseError(e)}}static async createUser(e,t,r,a){try{await e.query(`CREATE USER ${r} WITH PASSWORD '${a}'`),await e.query(`GRANT CONNECT ON DATABASE ${t} TO ${r}`),await e.query("GRANT USAGE ON SCHEMA public TO "+r),await e.query("GRANT CREATE ON SCHEMA public TO "+r),await e.query("GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "+r),await e.query("GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO "+r),await e.query("GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public TO "+r),await e.query("ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON TABLES TO "+r),await e.query("ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON SEQUENCES TO "+r)}catch(e){throw this.parseError(e)}}static async deleteUser(e,t,r){try{await e.query(`REASSIGN OWNED BY ${t} TO ${r}`),await e.query("REVOKE ALL ON ALL TABLES IN SCHEMA public FROM "+t),await e.query("REVOKE ALL ON SCHEMA public FROM "+t),await e.query("REVOKE ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public FROM "+t),await e.query("REVOKE ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public FROM "+t),await e.query(`ALTER DEFAULT PRIVILEGES FOR ROLE ${r} IN SCHEMA public REVOKE ALL ON TABLES FROM ${t}`),await e.query(`ALTER DEFAULT PRIVILEGES FOR ROLE ${r} IN SCHEMA public REVOKE ALL ON SEQUENCES FROM ${t};`),await e.query(`ALTER DEFAULT PRIVILEGES FOR ROLE ${r} IN SCHEMA public REVOKE ALL ON FUNCTIONS FROM ${t}`),await e.query(`DROP OWNED BY ${t} CASCADE`),await e.query(`DROP USER IF EXISTS "${t}"`)}catch(e){throw this.parseError(e)}}static parseTypeToPostgres(e,t,r=!1){switch(e.toLowerCase()){case"string":return t?"TEXT PRIMARY KEY":r?"TEXT":"VARCHAR";case"number":return t?"SERIAL PRIMARY KEY":"INTEGER";case"boolean":return"BOOLEAN";case"date":return"TIMESTAMP";case"bigint":return t?"BIGINT PRIMARY KEY":"BIGINT";default:{const t=s.Model.get(e);if(t){const e=new t;return{model:t,pkType:i.Reflection.getTypeFromDecorator(e,o.findPrimaryKey(e).id)}}throw new o.InternalError("Unsupported type: "+e)}}}static parseValidationToPostgres(e,t,r,a,n){switch(a){case s.ValidationKeys.REQUIRED:return"NOT NULL";case s.ValidationKeys.MAX_LENGTH:return r||!n||"string"!==t.toLowerCase()?"":`(${n[s.ValidationKeys.MAX_LENGTH]})`;case s.ValidationKeys.MIN_LENGTH:return`CONSTRAINT ${e}_min_length_check CHECK (LENGTH(${e}) >= ${n[s.ValidationKeys.MIN_LENGTH]})`;case s.ValidationKeys.PATTERN:case s.ValidationKeys.URL:case s.ValidationKeys.EMAIL:return`CONSTRAINT ${e}_pattern_check CHECK (${e} ~ '${A(n[s.ValidationKeys.PATTERN])}')`;case s.ValidationKeys.TYPE:case s.ValidationKeys.DATE:return"";case s.ValidationKeys.MIN:return`CONSTRAINT ${e}_${a}_check CHECK (${e} >= ${n[s.ValidationKeys.MIN]})`;case s.ValidationKeys.MAX:return`CONSTRAINT ${e}_${a}_check CHECK (${e} <= ${n[s.ValidationKeys.MAX]})`;case s.ValidationKeys.PASSWORD:default:throw new o.InternalError("Unsupported type: "+a)}}static parseRelationsToPostgres(e,t,r,n,s){const i=a.Repository.table(t),{cascade:c}=s,l=`${c.update?" ON UPDATE CASCADE":""}${c.delete?" ON DELETE CASCADE":""}`;if("relations"+n===a.PersistenceKeys.ONE_TO_ONE)return`FOREIGN KEY (${e}) REFERENCES ${i}(${r})${l}`;throw new o.InternalError("Unsupported operation: "+n)}static async createTable(e,t){const r={},n=new t({}),c=a.Repository.table(t),{id:l}=o.findPrimaryKey(n);let d,p;const u=Object.getOwnPropertyNames(n);for(const t of u){if("function"==typeof this[t]||t.toString().startsWith("_")||"constructor"===t)continue;d=t===l,p=a.Repository.column(n,t.toString());const c=i.Reflection.getPropertyDecorators(s.ValidationKeys.REFLECT,n,t.toString(),!1,!0).decorators.reduce((e,t)=>{const{key:r,props:a}=t;return r!==s.ModelKeys.TYPE||e[s.ValidationKeys.TYPE]?r!==s.ValidationKeys.TYPE&&(e[r]=a):e[s.ValidationKeys.TYPE]={customTypes:[a.name],message:s.DEFAULT_ERROR_MESSAGES.TYPE,description:"defines the accepted types for the attribute"},e},{}),u=i.Reflection.getPropertyDecorators(a.Repository.key("relations"),n,t.toString(),!0,!0),y=[],h=[],E=[];let f,g,m;if(Object.keys(c).length){if(f=c[s.ValidationKeys.TYPE],!f)throw Error("Missing type information");let t=this.parseTypeToPostgres("function"==typeof f.customTypes[0]?f.customTypes[0]():f.customTypes[0],d);"string"==typeof t&&(t={model:t});let r=t.model;if("string"!=typeof r)try{g=t.model;const a=new g;m=o.findPrimaryKey(a),r=this.parseTypeToPostgres(t.pkType,!1,!0),await this.createTable(e,g)}catch(e){if(!(e instanceof o.ConflictError))throw e}let a=Array.isArray(f.customTypes)?f.customTypes[0]:f.customTypes;a="function"!=typeof a||a.name?a:a();const n=`${p} ${r}${this.parseValidationToPostgres(p,a,d,s.ValidationKeys.MAX_LENGTH,c[s.ValidationKeys.MAX_LENGTH]||{[s.ValidationKeys.MAX_LENGTH]:255})}`;d?y.unshift(n):y.push(n);for(const[e,t]of Object.entries(c).filter(([e])=>![s.ValidationKeys.TYPE,s.ValidationKeys.MAX_LENGTH].includes(e))){const r=this.parseValidationToPostgres(p,a,d,e,t);r.startsWith("CONSTRAINT")?h.push(r):r&&y.push(r)}}if(u&&u.decorators.length){if(!f)throw Error("Missing type information");for(const e of u.decorators){const{key:t,props:r}=e,a=this.parseRelationsToPostgres(p,g,m.id,t,r);if(!a.startsWith("FOREIGN"))throw new o.InternalError("Unsupported relation: "+t);E.push(a)}}r[t.toString()]={query:y.join(" "),values:[],primaryKey:d,constraints:h,foreignKeys:E}}const y=Object.values(r),h=y.map(e=>e.query).join(",\n"),E=y.filter(e=>!!e.constraints.length).map(e=>e.constraints).join(",\n"),f=y.filter(e=>!!e.foreignKeys.length).map(e=>e.foreignKeys).join(",\n"),g=[h,E];f&&g.push(f);const m=`CREATE TABLE ${c} (${g.filter(e=>!!e).join(",\n")})`;try{await e.query(m),await e.query(`CREATE TRIGGER notify_changes_${c}\nAFTER INSERT OR UPDATE OR DELETE ON ${c}\n FOR EACH ROW\n EXECUTE FUNCTION notify_table_changes();`)}catch(e){throw this.parseError(e)}return r}static async getCurrentUser(e){try{return(await e.query("SELECT CURRENT_USER;"))[0].current_user}catch(e){throw this.parseError(e)}}static decoration(){super.decoration();const e=a.Adapter.key(a.PersistenceKeys.TABLE);s.Decoration.flavouredAs(p).for(e).extend(e=>(e=>{const t=(I.isObject(e)?e:void 0)||{},r=t.name;return e=>{l.getMetadataArgsStorage().tables.push({target:e,name:r,type:"regular",orderBy:t.orderBy?t.orderBy:void 0,engine:t.engine?t.engine:void 0,database:t.database?t.database:void 0,schema:t.schema?t.schema:void 0,synchronize:t.synchronize,withoutRowid:t.withoutRowid,comment:t.comment?t.comment:void 0})}})()(e[s.ModelKeys.ANCHOR]||e)).apply();const t=a.Repository.key(o.DBKeys.ID);s.Decoration.flavouredAs(p).for(t).define({decorator:e=>(r,n)=>{const c=[s.required(),o.readonly(),s.propMetadata(t,e),v("pk."+n,e)];let d=e.type||i.Reflection.getTypeFromDecorator(r,n);if(!d)throw new o.InternalError(`Missing type information for property ${n} of ${r.name}`);if(e.generated){const t=e.name||a.sequenceNameForModel(r.constructor,"pk");c.push(((e,t)=>{const r={};let a;return e?I.isObject(e)&&(a="increment",Object.assign(r,e)):a="increment",I.isObject(t)&&Object.assign(r,t),(e,t)=>{r.type||("increment"===a||"identity"===a?r.type=Number:"uuid"===a?r.type="uuid":"rowid"===a&&(r.type="int")),r.primary=!0;const o=l.getMetadataArgsStorage();L(e.constructor,t,o.columns,r,"regular",o.relations),l.getMetadataArgsStorage().generations.push({target:e.constructor,propertyName:t,strategy:a})}})({name:t}),a.noValidateOnCreate())}else{switch(d.toLowerCase()){case"number":d="numeric";break;case"string":d="varchar";break;case"bigint":d="bigint";break;default:throw new o.InternalError("Unsupported type: "+d)}c.push(((e,t)=>(r,a)=>{let o;e===String||e===Boolean||e===Number?o=e:t=Object.assign({},e),t||(t={});const n=Reflect&&Reflect.getMetadata?Reflect.getMetadata("design:type",r,a):void 0;if(!o&&n&&(o=n),!t.type&&o&&(t.type=o),!t.type)throw new l.ColumnTypeUndefinedError(r,a);if(t.nullable)throw new l.PrimaryColumnCannotBeNullableError(r,a);t.primary=!0;const s=l.getMetadataArgsStorage();L(r.constructor,a,s.columns,t,"regular",s.relations),t.generated&&l.getMetadataArgsStorage().generations.push({target:r.constructor,propertyName:a,strategy:"string"==typeof t.generated?t.generated:"increment"})})({type:d,unique:!0}))}return i.apply(...c)(r,n)}}).apply(),s.Decoration.flavouredAs(p).for(s.ModelKeys.ATTRIBUTE).extend((e,t)=>v("property."+t,Reflect.getOwnMetadata(s.ModelKeys.TYPE,e,t))(e,t)).apply();const r=a.Adapter.key(a.PersistenceKeys.COLUMN);s.Decoration.flavouredAs(p).for(r).extend({decorator:e=>(t,r)=>{const a={};return e&&(a.name=e),M.get(t,"pk")!==r&&(a.nullable=!0),_(a)(t,r)},transform:e=>[e[1]]}).apply();const n=a.Adapter.key(a.PersistenceKeys.UNIQUE);s.Decoration.flavouredAs(p).for(n).define(s.propMetadata(n,{})).extend(_({unique:!0})).apply();const c=s.Validation.key(s.ValidationKeys.REQUIRED);s.Decoration.flavouredAs(p).for(c).extend(_({nullable:!1})).apply();const d=a.Repository.key(o.DBKeys.VERSION);s.Decoration.flavouredAs(p).for(d).define(s.type(Number.name),l.VersionColumn(),a.noValidateOnCreate()).apply();const u=(y=o.DBKeys.TIMESTAMP,o.UpdateValidationKeys.REFLECT+y);var y;s.Decoration.flavouredAs(p).for(u).define({decorator:(e,t)=>{const r=[s.date(t,o.DEFAULT_ERROR_MESSAGES.TIMESTAMP.DATE),s.required(o.DEFAULT_ERROR_MESSAGES.TIMESTAMP.REQUIRED),s.propMetadata(s.Validation.key(o.DBKeys.TIMESTAMP),{operation:e,format:t}),a.noValidateOnCreate()];return-1!==e.indexOf(o.OperationKeys.UPDATE)?r.push(s.propMetadata(u,{message:o.DEFAULT_ERROR_MESSAGES.TIMESTAMP.INVALID}),a.noValidateOnCreateUpdate()):r.push(o.readonly()),i.apply(...r)}}).extend({decorator:(...e)=>(t,r)=>-1!==e.indexOf(o.OperationKeys.UPDATE)?((e,t)=>{const r=l.getMetadataArgsStorage();L(e.constructor,t,r.columns,{},"updateDate",r.relations)})(t,r):((e,t)=>{const r=l.getMetadataArgsStorage();L(e.constructor,t,r.columns,{},"createDate",r.relations)})(t,r),transform:e=>e[0]}).apply();const h=a.Repository.key(a.PersistenceKeys.ONE_TO_ONE);s.Decoration.flavouredAs(p).for(h).define({decorator:(e,t,r,n,c)=>{const d={class:e.name?e.name:e,cascade:t,populate:r};n&&(d.joinTable=n),c&&(d.name=c);const p={cascade:t.update===a.Cascade.CASCADE||t.delete===a.Cascade.CASCADE,onDelete:t.delete?"CASCADE":"DEFAULT",onUpdate:t.update?"CASCADE":"DEFAULT",nullable:!0,eager:r};return i.apply(s.prop(a.PersistenceKeys.RELATIONS),s.type(["function"!=typeof e||e.name?e.name:e,String.name,Number.name,BigInt.name]),s.propMetadata(h,d),((e,t,r)=>{let a;return I.isObject(t)?r=t:a=t,(t,o)=>{r||(r={});let n=!(!r||!0!==r.lazy);if(!n&&Reflect&&Reflect.getMetadata){const e=Reflect.getMetadata("design:type",t,o);e&&"string"==typeof e.name&&"promise"===e.name.toLowerCase()&&(n=!0)}const s=l.getMetadataArgsStorage();r=Object.assign(r,C(t.constructor,o,s.columns)),s.relations.push({target:t.constructor,propertyName:o,isLazy:n,relationType:"one-to-one",type:e,inverseSideProperty:a,options:r})}})(()=>{if(e.name||(e=e()),!e[s.ModelKeys.ANCHOR])throw new o.InternalError("Original Model not found in constructor");return e[s.ModelKeys.ANCHOR]},t=>t[o.findPrimaryKey(new e).id],p),l.JoinColumn(n||d.name?{foreignKeyConstraintName:d.name}:void 0))}}).apply();const E=a.Repository.key(a.PersistenceKeys.ONE_TO_MANY);s.Decoration.flavouredAs(p).for(E).define({decorator:(e,t,r,n,c)=>{const d={class:e.name?e.name:e,cascade:t,populate:r};n&&(d.joinTable=n),c&&(d.name=c);const p=[s.prop(a.PersistenceKeys.RELATIONS),s.list(e),s.propMetadata(E,d),(n,c)=>{const d={cascade:t.update===a.Cascade.CASCADE||t.delete===a.Cascade.CASCADE,onDelete:t.delete?"CASCADE":"DEFAULT",onUpdate:t.update?"CASCADE":"DEFAULT",nullable:!0,eager:r};return(p=()=>{if(e.name||(e=e()),!e[s.ModelKeys.ANCHOR])throw new o.InternalError("Original Model not found in constructor");return e[s.ModelKeys.ANCHOR]},u=t=>{e.name||(e=e());const r=new e,s=Object.keys(r).find(e=>{const t=i.Reflection.getPropertyDecorators(a.Repository.key(a.PersistenceKeys.MANY_TO_ONE),r,e,!0);if(!t||!t.decorators||!t.decorators.length)return!1;const o=t.decorators[0];return("function"!=typeof o.props.class||o.props.class.name?o.props.class:o.props.class()).name===n.constructor.name});if(!s)throw new o.InternalError(`Cross relation not found. Did you use @manyToOne on the ${e.name}?`);return t[s]},y=d,(e,t)=>{y||(y={});let r=y&&!0===y.lazy;if(!r&&Reflect&&Reflect.getMetadata){const a=Reflect.getMetadata("design:type",e,t);a&&"string"==typeof a.name&&"promise"===a.name.toLowerCase()&&(r=!0)}const a=l.getMetadataArgsStorage();y=Object.assign(y,C(e.constructor,t,a.columns)),a.relations.push({target:e.constructor,propertyName:t,isLazy:r,relationType:"one-to-many",type:p,inverseSideProperty:u,options:y})})(n,c);var p,u,y}];return i.apply(...p)}}).apply();const f=a.Repository.key(a.PersistenceKeys.MANY_TO_ONE);s.Decoration.flavouredAs(p).for(f).define({decorator:(e,t,r,n,c)=>{const d={class:e.name?e.name:e,cascade:t,populate:r};n&&(d.joinTable=n),c&&(d.name=c);const p={cascade:t.update===a.Cascade.CASCADE||t.delete===a.Cascade.CASCADE,onDelete:t.delete?"CASCADE":"NO ACTION",onUpdate:t.update?"CASCADE":"NO ACTION",nullable:!0,eager:r};return i.apply(s.prop(a.PersistenceKeys.RELATIONS),s.type(["function"!=typeof e||e.name?e.name:e,String.name,Number.name,BigInt.name]),s.propMetadata(f,d),(t,r)=>((e,t,r)=>{let a;return I.isObject(t)?r=t:a=t,(t,o)=>{r||(r={});let n=r&&!0===r.lazy;if(!n&&Reflect&&Reflect.getMetadata){const e=Reflect.getMetadata("design:type",t,o);e&&"string"==typeof e.name&&"promise"===e.name.toLowerCase()&&(n=!0)}const s=l.getMetadataArgsStorage();r=Object.assign(r,C(t.constructor,o,s.columns)),s.relations.push({target:t.constructor,propertyName:o,relationType:"many-to-one",isLazy:n,type:e,inverseSideProperty:a,options:r})}})(()=>{if(e.name||(e=e()),!e[s.ModelKeys.ANCHOR])throw new o.InternalError("Original Model not found in constructor");return e[s.ModelKeys.ANCHOR]},r=>{e.name||(e=e());const n=new e;let c=Object.keys(n).find(e=>{const r=i.Reflection.getPropertyDecorators(a.Repository.key(a.PersistenceKeys.ONE_TO_MANY),n,e,!0);if(!r||!r.decorators||!r.decorators.length)return!1;const c=Reflect.getMetadata(s.Validation.key(s.ValidationKeys.LIST),n,e);if(!c)throw new o.InternalError(`No Type Definition found for ${e} in ${n.constructor.name}`);return c.clazz[0]().name===t.constructor.name});return c||(c=o.findPrimaryKey(new e).id),r[c]},p)(t,r))}}).apply();const g=a.Repository.key(a.PersistenceKeys.MANY_TO_MANY);s.Decoration.flavouredAs(p).for(g).define({decorator:(e,t,r,n,c)=>{const d={class:e.name?e.name:e,cascade:t,populate:r};n&&(d.joinTable=n),c&&(d.name=c);const p={cascade:t.update===a.Cascade.CASCADE||t.delete===a.Cascade.CASCADE,onDelete:t.delete?"CASCADE":"DEFAULT",onUpdate:t.update?"CASCADE":"DEFAULT",nullable:!0,eager:r};return i.apply(s.prop(a.PersistenceKeys.RELATIONS),s.list(e),s.propMetadata(g,d),((e,t,r)=>{let a;return I.isObject(t)?r=t:a=t,(t,o)=>{r||(r={});let n=!0===r.lazy;if(!n&&Reflect&&Reflect.getMetadata){const e=Reflect.getMetadata("design:type",t,o);e&&"string"==typeof e.name&&"promise"===e.name.toLowerCase()&&(n=!0)}const s=l.getMetadataArgsStorage();r=Object.assign(r,C(t.constructor,o,s.columns)),s.relations.push({target:t.constructor,propertyName:o,relationType:"many-to-many",isLazy:n,type:e,inverseSideProperty:a,options:r})}})(()=>{if(e.name||(e=e()),!e[s.ModelKeys.ANCHOR])throw new o.InternalError("Original Model not found in constructor");return e[s.ModelKeys.ANCHOR]},t=>(e.name||(e=e()),t[o.findPrimaryKey(new e).id]),p),l.JoinTable(n))}}).apply(),s.Decoration.flavouredAs(p).for(a.PersistenceKeys.INDEX).extend({decorator:(e,t,r)=>(r,o)=>("string"==typeof e&&(e=void 0,t=void 0),"string"==typeof t&&(t=void 0),!t&&e&&e.find(e=>![a.OrderDirection.ASC,a.OrderDirection.DSC].includes(e))&&(t=e,e=void 0),t&&t.length?l.Index([o,...t])(r):l.Index()(r,o))}).apply();const m=a.Repository.key(a.PersistenceKeys.CREATED_BY),A=a.Repository.key(a.PersistenceKeys.UPDATED_BY);s.Decoration.flavouredAs(p).for(m).define(o.onCreate(D,{}),s.required(),s.propMetadata(m,{}),a.noValidateOnCreate()).apply(),s.Decoration.flavouredAs(p).for(A).define(o.onCreateUpdate(D,{}),s.required(),s.propMetadata(A,{}),a.noValidateOnCreateUpdate()).apply()}}r.__decorate([a.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[]),r.__metadata("design:returntype",b)],K.prototype,"Dispatch",null),r.__decorate([a.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[]),r.__metadata("design:returntype",Object)],K.prototype,"repository",null),r.__decorate([a.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[]),r.__metadata("design:returntype",R)],K.prototype,"Statement",null),r.__decorate([a.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Object]),r.__metadata("design:returntype",Promise)],K.prototype,"Sequence",null),r.__decorate([a.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Object]),r.__metadata("design:returntype",Promise)],K.prototype,"index",null),K.decoration(),a.Adapter.setCurrent(p);const P="##VERSION##",$="##PACKAGE##";t.Metadata.registerLibrary($,P),e.IndexError=y,e.PACKAGE_NAME=$,e.TypeORMAdapter=K,e.TypeORMConst={NULL:"NULL"},e.TypeORMDispatch=b,e.TypeORMFlavour=p,e.TypeORMGroupOperator=f,e.TypeORMKeys=u,e.TypeORMOperator=E,e.TypeORMPaginator=g,e.TypeORMQueryLimit=250,e.TypeORMSequence=T,e.TypeORMStatement=R,e.VERSION=P,e.convertJsRegexToPostgres=A,e.enforceDbDecoratorsRecursive=N,e.generateIndexes=w,e.reservedAttributes=d,e.splitEagerRelations=O,e.translateOperators=m},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("tslib"),require("@decaf-ts/core"),require("@decaf-ts/db-decorators"),require("reflect-metadata"),require("@decaf-ts/decorator-validation"),require("@decaf-ts/reflection"),require("@decaf-ts/logging"),require("typeorm")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","tslib","@decaf-ts/core","@decaf-ts/db-decorators","reflect-metadata","@decaf-ts/decorator-validation","@decaf-ts/reflection","@decaf-ts/logging","typeorm"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-typeorm"]={},e.decafTsDecoration,e.tslib,e.decafTsCore,e.decafTsDbDecorators,e.reflectMetadata,e.decafTsDecoratorValidation,e.decafTsReflection,e.decafTsLogging,e.typeorm);
|
|
2
2
|
//# sourceMappingURL=for-typeorm.cjs.map
|
package/dist/for-typeorm.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for-typeorm.cjs","sources":["../src/constants.ts","../src/errors.ts","../src/types.ts","../src/query/constants.ts","../src/query/Paginator.ts","../src/query/translate.ts","../src/utils.ts","../src/query/Statement.ts","../src/sequences/Sequence.ts","../src/indexes/generator.ts","../src/TypeORMRepository.ts","../src/TypeORMEventSubscriber.ts","../src/TypeORMDispatch.ts","../src/overrides/utils.ts","../src/overrides/Column.ts","../src/overrides/ObjectUtils.ts","../src/decorators.ts","../src/TypeORMAdapter.ts","../src/overrides/Entity.ts","../src/overrides/PrimaryGeneratedColumn.ts","../src/overrides/PrimaryColumn.ts","../src/overrides/UpdateDateColumn.ts","../src/overrides/CreateDateColumn.ts","../src/overrides/OneToOne.ts","../src/overrides/OneToMany.ts","../src/overrides/ManyToOne.ts","../src/overrides/ManyToMany.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],"names":["reservedAttributes","TypeORMFlavour","TypeORMKeys","SEPARATOR","ID","VERSION","DELETED","TABLE","SCHEMA","SEQUENCE","INDEX","IndexError","BaseError","constructor","msg","super","name","SQLOperator","exports","TypeORMOperator","EQUAL","DIFFERENT","NOT_EQUAL","BIGGER","GREATER_THAN","BIGGER_EQ","GREATER_THAN_OR_EQUAL","SMALLER","LESS_THAN","SMALLER_EQ","LESS_THAN_OR_EQUAL","BETWEEN","NOT","IN","IS_NULL","IS_NOT_NULL","REGEXP","IREGEXP","LIKE","ILIKE","TypeORMGroupOperator","AND","OR","TypeORMPaginator","Paginator","total","this","_totalPages","count","_recordCount","repo","__repo","adapter","client","getRepository","clazz","ModelKeys","ANCHOR","query","size","prepare","rawStatement","page","statement","opts","Object","assign","skip","current","take","result","findAndCount","Math","ceil","PagingError","pkDef","findPrimaryKey","results","map","row","revert","id","_currentPage","translateOperators","operator","operators","el","keys","find","k","QueryError","convertJsRegexToPostgres","jsRegex","rxp","RegExp","match","exec","p","source","splitEagerRelations","m","cache","instance","e","InternalError","rels","Repository","relations","undefined","reduce","accum","attr","decorators","Reflection","getPropertyDecorators","key","PersistenceKeys","RELATION","length","decorator","eager","props","populate","class","Model","get","push","nonEager","includes","nonEagerRelations","ne","TypeORMStatement","Statement","build","log","for","tableName","table","fromSelector","q","createQueryBuilder","orderByArgs","selectSelector","select","s","whereCondition","parseCondition","orderBySelector","toUpperCase","OrderDirection","ASC","orderBy","limitSelector","limit","debug","offsetSelector","paginate","transformedQuery","where","parseConditionForPagination","order","toString","processRecord","r","pkAttr","raw","rawInput","getSql","setFindOptions","loadEagerRelations","loadRelationIds","getMany","condition","counter","conditionalOp","qb","attr1","comparison","GroupOperator","Operator","indexOf","sqlOperator","attrRef","queryStr","values","andWhere","orWhere","Error","parse","TypeORMSequence","Sequence","options","rows","Array","isArray","candidate","parseError","value","parseValue","type","increment","incrementBy","startWith","NotFoundError","quoted","replace","next","range","i","generateIndexes","models","direction","compositions","separator","DefaultSeparator","n","join","generateIndexName","indexes","forEach","ind","entries","generate","async","enforceDbDecoratorsRecursive","context","model","operation","prefix","oldModel","innerLoop","forModel","OperationKeys","UPDATE","CREATE","enforceDBDecorators","isPropertyModel","ValidationKeys","REFLECT","d","LIST","Promise","all","TypeORMRepository","args","queryBuilder","dataSource","typeormRepo","createPrefix","contextArgs","Context","_overrides","ON","errors","resolve","hasErrors","ValidationError","create","c","record","transient","pk","read","updatePrefix","merge","getMetadata","setMetadata","update","delete","createAllPrefix","createAll","prepared","ids","records","readAll","updateAll","u","deleteAll","__decorate","uses","Adapter","TypeORMEventSubscriber","handler","afterInsert","event","entity","entityId","afterRemove","DELETE","afterUpdate","databaseEntity","EventSubscriber","TypeORMDispatch","Dispatch","timeout","attemptCounter","notificationHandler","updateObservers","observerLastUpdate","Date","toISOString","verbose","error","initialize","isInitialized","subscribers","bind","call","then","info","catch","extractForRelations","target","property","columns","index","cols","filter","propertyName","splice","val","TYPE","UnsupportedError","aggregateOrNewColumn","mode","column","defineProperty","writable","enumerable","configurable","Column","typeOrOptions","object","reflectMetadataType","Reflect","forceTypes","Validation","customTypes","primaryType","dbType","toLowerCase","String","Number","BigInt","hstoreType","getMetadataArgsStorage","embeddeds","array","ColumnTypeUndefinedError","unique","uniques","metadata","indices","generated","generations","strategy","ObjectUtils","isObject","isObjectWithName","sources","prop","getOwnPropertyNames","Metadata","_metadata","splitter","baseKey","mirror","getProperties","meta","properties","types","designType","symbol","Symbol","validation","concat","Boolean","obj","path","split","prototype","hasOwnProperty","getValueBySplitter","set","setValueBySplitter","descriptor","createdByOnTypeORMCreateUpdate","data","user","TypeORMAdapter","getClient","entities","alias","DataSource","config","shutdown","_client","destroy","flags","username","repository","ds","child","METADATA","isReserved","getTime","isModel","constr","findOne","ConflictError","save","findOneOrFail","insert","identifiers","findBy","In","err","reason","code","message","ConnectionError","connect","con","createDatabase","dbName","Logging","createNotifyFunction","deleteDatabase","createUser","password","deleteUser","admin","parseTypeToPostgres","isPk","isFk","mm","pkType","getTypeFromDecorator","parseValidationToPostgres","REQUIRED","MAX_LENGTH","MIN_LENGTH","PATTERN","URL","EMAIL","DATE","MIN","MAX","PASSWORD","parseRelationsToPostgres","cascade","cascadeStr","ONE_TO_ONE","createTable","startsWith","decoratorData","DEFAULT_ERROR_MESSAGES","description","dbDecs","constraints","foreignKeys","typeData","childClass","childPk","parsedType","typeStr","tp","unshift","primaryKey","vals","queryString","v","getCurrentUser","current_user","decoration","tableKey","Decoration","flavouredAs","extend","original","nameOrOptions","Entity","tables","engine","database","schema","synchronize","withoutRowid","comment","apply","pkKey","DBKeys","define","required","readonly","propMetadata","sequenceNameForModel","strategyOrOptions","maybeOptions","primary","PrimaryGeneratedColumn","noValidateOnCreate","nullable","PrimaryColumnCannotBeNullableError","PrimaryColumn","ATTRIBUTE","getOwnMetadata","columnKey","COLUMN","transform","uniqueKey","UNIQUE","requiredKey","versionKey","VersionColumn","timestampKey","TIMESTAMP","UpdateValidationKeys","format","date","DB_DEFAULT_ERROR_MESSAGES","INVALID","noValidateOnCreateUpdate","ops","UpdateDateColumn","CreateDateColumn","oneToOneKey","joinColumnOpts","fk","joinTable","ormMeta","Cascade","CASCADE","onDelete","onUpdate","RELATIONS","typeFunctionOrTarget","inverseSideOrOptions","inverseSideProperty","isLazy","lazy","reflectedType","relationType","OneToOne","JoinColumn","foreignKeyConstraintName","oneToManyKey","ONE_TO_MANY","joinTableOpts","list","inverseSide","crossRelationKey","decs","MANY_TO_ONE","dec","manyToOneKey","ManyToOne","listDec","manyToManyKey","MANY_TO_MANY","ManyToMany","JoinTable","directions","DSC","Index","createdByKey","CREATED_BY","updatedByKey","UPDATED_BY","onCreate","onCreateUpdate","final","setCurrent","PACKAGE_NAME","registerLibrary","NULL"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"for-typeorm.cjs","sources":["../src/constants.ts","../src/errors.ts","../src/types.ts","../src/query/constants.ts","../src/query/Paginator.ts","../src/query/translate.ts","../src/utils.ts","../src/query/Statement.ts","../src/sequences/Sequence.ts","../src/indexes/generator.ts","../src/TypeORMRepository.ts","../src/TypeORMEventSubscriber.ts","../src/TypeORMDispatch.ts","../src/overrides/utils.ts","../src/overrides/Column.ts","../src/overrides/ObjectUtils.ts","../src/decorators.ts","../src/TypeORMAdapter.ts","../src/overrides/Entity.ts","../src/overrides/PrimaryGeneratedColumn.ts","../src/overrides/PrimaryColumn.ts","../src/overrides/UpdateDateColumn.ts","../src/overrides/CreateDateColumn.ts","../src/overrides/OneToOne.ts","../src/overrides/OneToMany.ts","../src/overrides/ManyToOne.ts","../src/overrides/ManyToMany.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],"names":["reservedAttributes","TypeORMFlavour","TypeORMKeys","SEPARATOR","ID","VERSION","DELETED","TABLE","SCHEMA","SEQUENCE","INDEX","IndexError","BaseError","constructor","msg","super","name","SQLOperator","exports","TypeORMOperator","EQUAL","DIFFERENT","NOT_EQUAL","BIGGER","GREATER_THAN","BIGGER_EQ","GREATER_THAN_OR_EQUAL","SMALLER","LESS_THAN","SMALLER_EQ","LESS_THAN_OR_EQUAL","BETWEEN","NOT","IN","IS_NULL","IS_NOT_NULL","REGEXP","IREGEXP","LIKE","ILIKE","TypeORMGroupOperator","AND","OR","TypeORMPaginator","Paginator","total","this","_totalPages","count","_recordCount","repo","__repo","adapter","client","getRepository","clazz","ModelKeys","ANCHOR","query","size","prepare","rawStatement","page","statement","opts","Object","assign","skip","current","take","result","findAndCount","Math","ceil","PagingError","pkDef","findPrimaryKey","results","map","row","revert","id","_currentPage","translateOperators","operator","operators","el","keys","find","k","QueryError","convertJsRegexToPostgres","jsRegex","rxp","RegExp","match","exec","p","source","splitEagerRelations","m","cache","instance","e","InternalError","rels","Repository","relations","undefined","reduce","accum","attr","decorators","Reflection","getPropertyDecorators","key","PersistenceKeys","RELATION","length","decorator","eager","props","populate","class","Model","get","push","nonEager","includes","nonEagerRelations","ne","TypeORMStatement","Statement","build","log","for","tableName","table","fromSelector","q","createQueryBuilder","orderByArgs","selectSelector","select","s","whereCondition","parseCondition","orderBySelector","toUpperCase","OrderDirection","ASC","orderBy","limitSelector","limit","debug","offsetSelector","paginate","transformedQuery","where","parseConditionForPagination","order","toString","processRecord","r","pkAttr","raw","rawInput","getSql","setFindOptions","loadEagerRelations","loadRelationIds","getMany","condition","counter","conditionalOp","qb","attr1","comparison","GroupOperator","Operator","indexOf","sqlOperator","attrRef","queryStr","values","andWhere","orWhere","Error","parse","TypeORMSequence","Sequence","options","rows","Array","isArray","candidate","parseError","value","parseValue","type","increment","incrementBy","startWith","NotFoundError","quoted","replace","next","range","i","generateIndexes","models","direction","compositions","separator","DefaultSeparator","n","join","generateIndexName","indexes","forEach","ind","entries","generate","async","enforceDbDecoratorsRecursive","context","model","operation","prefix","oldModel","innerLoop","forModel","OperationKeys","UPDATE","CREATE","enforceDBDecorators","isPropertyModel","ValidationKeys","REFLECT","d","LIST","Promise","all","TypeORMRepository","args","queryBuilder","dataSource","typeormRepo","createPrefix","contextArgs","Context","_overrides","ON","errors","resolve","hasErrors","ValidationError","create","c","record","transient","pk","read","updatePrefix","merge","getMetadata","setMetadata","update","delete","createAllPrefix","createAll","prepared","ids","records","readAll","updateAll","u","deleteAll","__decorate","uses","Adapter","TypeORMEventSubscriber","handler","afterInsert","event","entity","entityId","afterRemove","DELETE","afterUpdate","databaseEntity","EventSubscriber","TypeORMDispatch","Dispatch","timeout","attemptCounter","notificationHandler","updateObservers","observerLastUpdate","Date","toISOString","verbose","error","initialize","isInitialized","subscribers","bind","call","then","info","catch","extractForRelations","target","property","columns","index","cols","filter","propertyName","splice","val","TYPE","UnsupportedError","aggregateOrNewColumn","mode","column","defineProperty","writable","enumerable","configurable","Column","typeOrOptions","object","reflectMetadataType","Reflect","forceTypes","Validation","customTypes","primaryType","dbType","toLowerCase","String","Number","BigInt","hstoreType","getMetadataArgsStorage","embeddeds","array","ColumnTypeUndefinedError","unique","uniques","metadata","indices","generated","generations","strategy","ObjectUtils","isObject","isObjectWithName","sources","prop","getOwnPropertyNames","Metadata","_metadata","splitter","baseKey","mirror","getProperties","meta","properties","types","designType","symbol","Symbol","validation","concat","Boolean","obj","path","split","prototype","hasOwnProperty","getValueBySplitter","set","setValueBySplitter","descriptor","createdByOnTypeORMCreateUpdate","data","user","TypeORMAdapter","getClient","entities","alias","DataSource","config","shutdown","_client","destroy","flags","username","repository","ds","child","METADATA","isReserved","getTime","isModel","constr","findOne","ConflictError","save","findOneOrFail","insert","identifiers","findBy","In","err","reason","code","message","ConnectionError","connect","con","createDatabase","dbName","Logging","createNotifyFunction","deleteDatabase","createUser","password","deleteUser","admin","parseTypeToPostgres","isPk","isFk","mm","pkType","getTypeFromDecorator","parseValidationToPostgres","REQUIRED","MAX_LENGTH","MIN_LENGTH","PATTERN","URL","EMAIL","DATE","MIN","MAX","PASSWORD","parseRelationsToPostgres","cascade","cascadeStr","ONE_TO_ONE","createTable","startsWith","decoratorData","DEFAULT_ERROR_MESSAGES","description","dbDecs","constraints","foreignKeys","typeData","childClass","childPk","parsedType","typeStr","tp","unshift","primaryKey","vals","queryString","v","getCurrentUser","current_user","decoration","tableKey","Decoration","flavouredAs","extend","original","nameOrOptions","Entity","tables","engine","database","schema","synchronize","withoutRowid","comment","apply","pkKey","DBKeys","define","required","readonly","propMetadata","sequenceNameForModel","strategyOrOptions","maybeOptions","primary","PrimaryGeneratedColumn","noValidateOnCreate","nullable","PrimaryColumnCannotBeNullableError","PrimaryColumn","ATTRIBUTE","getOwnMetadata","columnKey","COLUMN","transform","uniqueKey","UNIQUE","requiredKey","versionKey","VersionColumn","timestampKey","TIMESTAMP","UpdateValidationKeys","format","date","DB_DEFAULT_ERROR_MESSAGES","INVALID","noValidateOnCreateUpdate","ops","UpdateDateColumn","CreateDateColumn","oneToOneKey","joinColumnOpts","fk","joinTable","ormMeta","Cascade","CASCADE","onDelete","onUpdate","RELATIONS","typeFunctionOrTarget","inverseSideOrOptions","inverseSideProperty","isLazy","lazy","reflectedType","relationType","OneToOne","JoinColumn","foreignKeyConstraintName","oneToManyKey","ONE_TO_MANY","joinTableOpts","list","inverseSide","crossRelationKey","decs","MANY_TO_ONE","dec","manyToOneKey","ManyToOne","listDec","manyToManyKey","MANY_TO_MANY","ManyToMany","JoinTable","directions","DSC","Index","createdByKey","CREATED_BY","updatedByKey","UPDATED_BY","onCreate","onCreateUpdate","final","setCurrent","PACKAGE_NAME","registerLibrary","NULL"],"mappings":"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"}
|