@decaf-ts/for-typeorm 0.2.8 → 0.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/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/TypeORMRepository.cjs +31 -18
- package/lib/TypeORMRepository.d.ts +3 -2
- package/lib/TypeORMRepository.js.map +1 -1
- package/lib/esm/TypeORMRepository.d.ts +3 -2
- package/lib/esm/TypeORMRepository.js +31 -18
- package/lib/esm/TypeORMRepository.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/sequences/Sequence.d.ts +1 -1
- package/lib/esm/sequences/Sequence.js +4 -5
- package/lib/esm/sequences/Sequence.js.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/sequences/Sequence.cjs +4 -5
- package/lib/sequences/Sequence.d.ts +1 -1
- package/lib/sequences/Sequence.js.map +1 -1
- package/package.json +3 -2
- package/workdocs/assets/slogans.json +198 -0
package/README.md
CHANGED
|
@@ -34,7 +34,7 @@ A thin, focused TypeORM-backed adapter that plugs Decaf.ts models, repositories
|
|
|
34
34
|
|
|
35
35
|
Documentation available [here](https://decaf-ts.github.io/ts-workspace/)
|
|
36
36
|
|
|
37
|
-
Minimal size: 11.
|
|
37
|
+
Minimal size: 11.6 KB kb gzipped
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
# Decaf.ts for TypeORM — Detailed Description
|
package/dist/for-typeorm.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e,t;e=this,t=function(e,t,r,a,n,o,s,i){"use strict";const c=/^(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,l="type-orm",d={SEPARATOR:".",ID:"id",VERSION:"version",DELETED:"deleted_at",TABLE:"table_name",SCHEMA:"schema_name",SEQUENCE:"sequence_name",INDEX:"index"};class p extends n.BaseError{constructor(e){super(p.name,e,404)}}var u;e.SQLOperator=void 0,(u=e.SQLOperator||(e.SQLOperator={})).EQUAL="=",u.NOT_EQUAL="<>",u.LESS_THAN="<",u.LESS_THAN_OR_EQUAL="<=",u.GREATER_THAN=">",u.GREATER_THAN_OR_EQUAL=">=",u.IN="IN",u.NOT_IN="NOT IN",u.LIKE="LIKE",u.ILIKE="ILIKE",u.BETWEEN="BETWEEN",u.IS_NULL="IS NULL",u.IS_NOT_NULL="IS NOT NULL",u.EXISTS="EXISTS",u.NOT_EXISTS="NOT EXISTS",u.ANY="ANY",u.ALL="ALL",u.SOME="SOME";const y={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},h={AND:"AND",OR:"OR"};class E extends a.Paginator{get total(){return this._totalPages}get count(){return this._recordCount}get repo(){return this.__repo||(this.__repo=this.adapter.client.getRepository(t.Metadata.constr(this.clazz))),this.__repo}constructor(e,t,r,a){super(e,t,r,a)}prepare(e){return{...e}}async page(e=1,...t){const{ctxArgs:r,ctx:n}=this.adapter.logCtx(t,this.page);if(this.isPreparedStatement())return this.pagePrepared(e,...r);const o={...this.statement};this._recordCount&&this._totalPages||(this._totalPages=this._recordCount=0);const i=Object.assign(o,{skip:(this.current||0)*this.size,take:this.size}),c=await this.repo.findAndCount(i);if(this._recordCount=c[1],this._totalPages=Math.ceil(this._recordCount/this.size),!this.clazz)throw new a.PagingError("No statement target defined");const l=s.Model.pk(this.clazz),d=(c[0]||[]).map((e=>this.adapter.revert(e,this.clazz,e[l],void 0,n)));return this._currentPage=e,d}}function g(e){for(const t of[y,h]){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 f(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 m(e,r={}){const a=s.Model.relations(e);if(r[e.name]=r[e.name]||void 0,r[e.name])return r[e.name];const i=a.reduce(((a,s)=>{const i=t.Metadata.relations(e,s),c=i.populate;let l=i.class;if(o.isClass(l)||(l=l()),!l)throw new n.InternalError(`Could not find class for property ${s} on model ${e.name}`);if(c?a.relations.push(s):a.nonEager.push(s),a.relations.includes(s)){const{nonEager:e,relations:t}=m(l,r);if(e.length&&a.relations.includes(s)){const t=e.map((e=>`${s}.${e}`));a.nonEager.push(...t)}if(t.length){const e=t.map((e=>`${s}.${e}`));a.relations.push(...e)}}return a}),{nonEager:[],relations:[]});return r[e.name]=i,i}class A extends a.Statement{constructor(e){super(e)}build(){const e=this.log.for(this.build),r=s.Model.tableName(this.fromSelector),n={query:this.adapter.client.getRepository(t.Metadata.constr(this.fromSelector)).createQueryBuilder(r)};let o;return this.selectSelector?n.query=n.query.select(this.selectSelector.map((e=>`${r}.${e}`))):n.query=n.query.select(),this.whereCondition&&(n.query=this.parseCondition(this.whereCondition,r,n.query).query),o=this.orderBySelector?[`${r}.${this.orderBySelector[0]}`,this.orderBySelector[1].toUpperCase()]:[`${r}.${s.Model.pk(this.fromSelector)}`,a.OrderDirection.ASC.toUpperCase()],n.query=n.query.orderBy(...o),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,s.Model.tableName(this.fromSelector))),this.orderBySelector&&(t.order={[this.orderBySelector[0]]:this.orderBySelector[1].toString()}),this.adapter.Paginator(t,e,this.fromSelector)}catch(e){throw new a.QueryError(e)}}async raw(e,...t){const{nonEager:r}=m(this.fromSelector);return e.query=e.query.setFindOptions({loadEagerRelations:!0,loadRelationIds:{relations:r}}),await e.query.getMany()}parseConditionForPagination(e,t,r=0,a){throw new n.InternalError("Not implemented")}parseCondition(e,t,r,n=0,o){const{attr1:s,operator:i,comparison:c}=e;if(-1===[a.GroupOperator.AND,a.GroupOperator.OR,a.Operator.NOT].indexOf(i))return(()=>{const e=g(i),l=`${s}${n}`,d=`${t}.${s} ${e} :${l}`,p={[l]:c};switch(o){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,++n).query,this.parseCondition(c,t,r,++n,i)}}class w extends a.Sequence{constructor(e,t){super(e,t)}async current(...e){const t=(await n.Context.args(n.OperationKeys.READ,s.Model,e,this.adapter)).context,{name:r}=this.options;try{const e=await this.adapter.raw({query:"SELECT sequence_name, start_value, minimum_value, increment FROM information_schema.sequences WHERE sequence_name = $1",values:[r]},!0,t);if(!Array.isArray(e)||0===e.length)throw new n.InternalError(`Sequence ${r} not found`);const a=e[0],o=a.current_value??a.last_value??a.start_value;return this.parse(o)}catch(e){throw this.adapter.parseError(e)}}async increment(e,t,r){const{type:a,incrementBy:o,name:s,startWith:i}=this.options;if("Number"!==a&&"BigInt"!==a)throw new n.InternalError(`Cannot increment sequence of type ${a} with ${t}`);try{const e=await this.adapter.raw({query:"SELECT nextval($1) AS nextval;",values:[s]},!0,r);return Array.isArray(e)&&e[0]?e[0].nextval:e}catch(e){if(!(e instanceof n.NotFoundError))throw e;if(!s)throw new n.InternalError("Cannot increment sequence without a name: "+s);const t=`"${s.replace(/"/g,'""')}"`;await this.adapter.raw({query:`CREATE SEQUENCE IF NOT EXISTS ${t} START WITH ${i} INCREMENT BY ${o} NO CYCLE;`,values:[]},!0,r);const a=await this.adapter.raw({query:"SELECT nextval($1) AS nextval;",values:[s]},!0,r);return Array.isArray(a)&&a[0]?a[0].nextval:a}}async next(...e){const t=await n.Context.args(n.OperationKeys.UPDATE,s.Model,e,this.adapter),{context:r,args:a}=t,o=await this.current(...a);return this.increment(o,void 0,r)}async range(e,...t){const r=await n.Context.args(n.OperationKeys.UPDATE,s.Model,t,this.adapter),{context:a}=r,o=await this.current(),i=this.parse(this.options.incrementBy),c=await this.increment(o,this.parse(e)*i,a),l=[];for(let t=1;e>=t;t++)l.push(o+i*this.parse(t));if(l[l.length-1]!==c)throw new n.InternalError("Miscalculation of range");return l}}function O(e){const t=((e,t,r,a=n.DefaultSeparator)=>[...e.map((e=>e===d.TABLE?"table":e)),...r||[],...t?[t]:[],d.INDEX].join(a))([d.TABLE]),r={};return r[t]={query:"",values:[]},e.forEach((e=>{const t=s.Model.indexes(e);Object.entries(t).forEach((([t,o])=>{const i=Object.keys(o)[0];let{compositions:c}=o[i];const l=s.Model.tableName(e);c=c||[],(()=>{const e=[t,...c,a.PersistenceKeys.INDEX].join(n.DefaultSeparator);r[e]={query:"CREATE INDEX $1 ON $2 ($3);",values:[e,l,t]}})()}))})),Object.values(r)}async function N(e,r,o,i,c,l){async function d(e,t){const o=a.Repository.forModel(e.constructor);await N(o,r,e,t||i!==n.OperationKeys.UPDATE?i:n.OperationKeys.CREATE,c,t)}await n.enforceDBDecorators(e,r,o,i,c,l);for(const e of Object.keys(o))s.Model.isPropertyModel(o,e)&&void 0!==o[e]?await d(o[e],l?l[e]:void 0):t.Metadata.validationFor(o.constructor,e,s.ValidationKeys.LIST)&&o[e]&&Array.isArray(o[e])&&await Promise.all(o[e].map(((t,r)=>d(t,l&&l[e]?l[e][r]:void 0))))}class T extends a.Repository{constructor(e,t,...r){super(e,t,...r),this._overrides=Object.assign({},super._overrides,{ignoreValidation:!1,ignoreHandlers:!1,allowRawStatements:!0,forcePrepareSimpleQueries:!1,forcePrepareComplexQueries:!1})}queryBuilder(){return this.nativeRepo().createQueryBuilder()}nativeRepo(){const e=t.Metadata.constr(this.class);return this.adapter.dataSource.getRepository(e)}async createPrefix(e,...t){const r=await n.Context.args(n.OperationKeys.CREATE,this.class,t,this.adapter,this._overrides||{}),a=r.context.get("ignoreHandlers"),o=r.context.get("ignoreValidation");if(e=new this.class(e),a||await N(this,r.context,e,n.OperationKeys.CREATE,n.OperationKeys.ON),!o){const t=await Promise.resolve(e.hasErrors(...r.context.get("ignoredValidationProperties")||[]));if(t)throw new n.ValidationError(t.toString())}return[e,...r.args]}async create(e,...r){const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.create);n.debug(`Creating new ${this.class.name} in table ${s.Model.tableName(this.class)}`);let{record:i,id:c,transient:l}=this.adapter.prepare(e,!1,a);return i=await this.adapter.create(t.Metadata.constr(this.class),c,e,...o),this.adapter.revert(i,this.class,c,l,a)}async read(e,...r){const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.create);n.debug(`reading ${this.class.name} from table ${s.Model.tableName(this.class)} with pk ${this.pk}`);const i=await this.adapter.read(t.Metadata.constr(this.class),e,...o);return this.adapter.revert(i,this.class,e,void 0,a)}async updatePrefix(e,...t){const r=await n.Context.args(n.OperationKeys.UPDATE,this.class,t,this.adapter,this._overrides||{}),a=r.context.get("ignoreHandlers"),o=r.context.get("ignoreValidation"),i=e[this.pk];if(!i)throw new n.InternalError("No value for the Id is defined under the property "+this.pk);const c=await this.read(i,...r.args);if(e=s.Model.merge(c,e,this.class),a&&await N(this,r.context,e,n.OperationKeys.UPDATE,n.OperationKeys.ON,c),o){const t=await Promise.resolve(e.hasErrors(c,...s.Model.relations(this.class),...r.context.get("ignoredValidationProperties")||[]));if(t)throw new n.ValidationError(t.toString())}return[e,...r.args]}async update(e,...r){const{ctxArgs:a,log:n,ctx:o}=this.logCtx(r,this.create);let{record:i,id:c,transient:l}=this.adapter.prepare(e,!1,o);return n.debug(`updating ${this.class.name} in table ${s.Model.tableName(this.class)} with id ${c}`),i=await this.adapter.update(t.Metadata.constr(this.class),c,e,...a),this.adapter.revert(i,this.class,c,l,o)}async delete(e,...r){const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.create);n.debug(`deleting new ${this.class.name} in table ${s.Model.tableName(this.class)} with pk ${e}`);const i=await this.adapter.delete(t.Metadata.constr(this.class),e,...o);return this.adapter.revert(i,this.class,e,void 0,a)}async createAllPrefix(e,...t){const r=await n.Context.args(n.OperationKeys.CREATE,this.class,t,this.adapter,this._overrides||{}),a=r.context.get("ignoreHandlers"),o=r.context.get("ignoreValidation");if(!e.length)return[e,...r.args];if(e=await Promise.all(e.map((async e=>(e=new this.class(e),a||await N(this,r.context,e,n.OperationKeys.CREATE,n.OperationKeys.ON),e)))),!o){const t=r.context.get("ignoredValidationProperties")||[],a=await Promise.all(e.map((e=>Promise.resolve(e.hasErrors(...t))))),o=n.reduceErrorsToPrint(a);if(o)throw new n.ValidationError(o)}return[e,...r.args]}async createAll(e,...r){if(!e.length)return e;const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.create);n.debug(`Creating ${e.length} new ${this.class.name} in table ${s.Model.tableName(this.class)}`);const i=e.map((e=>this.adapter.prepare(e,!1,a))),c=i.map((e=>e.id));let l=i.map((e=>e.record));return l=await this.adapter.createAll(t.Metadata.constr(this.class),c,e,...o),l.map(((e,t)=>this.adapter.revert(e,this.class,c[t],a.get("rebuildWithTransient")?i[t].transient:void 0,a)))}async readAll(e,...r){const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.create);return n.debug(`reading ${e.length} ${this.class.name} in table ${s.Model.tableName(this.class)}`),(await this.adapter.readAll(t.Metadata.constr(this.class),e,...o)).map(((t,r)=>this.adapter.revert(t,this.class,e[r],void 0,a)))}async updateAllPrefix(e,...t){const r=await n.Context.args(n.OperationKeys.UPDATE,this.class,t,this.adapter,this._overrides||{}),a=r.context.get("ignoreHandlers"),o=r.context.get("ignoreValidation"),i=e.map((e=>{const t=e[this.pk];if(!t)throw new n.InternalError("missing id on update operation");return t})),c=await this.readAll(i,...r.args);if(e=e.map(((e,t)=>s.Model.merge(c[t],e,this.class))),a||await Promise.all(e.map(((e,t)=>N(this,r.context,e,n.OperationKeys.UPDATE,n.OperationKeys.ON,c[t])))),!o){const t=r.context.get("ignoredValidationProperties")||[],a=await Promise.all(e.map(((e,r)=>Promise.resolve(e.hasErrors(c[r],e,...t))))),o=n.reduceErrorsToPrint(a);if(o)throw new n.ValidationError(o)}return[e,...r.args]}async updateAll(e,...r){const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.create);n.debug(`Updating ${e.length} new ${this.class.name} in table ${s.Model.tableName(this.class)}`);const i=e.map((e=>this.adapter.prepare(e,!1,a)));return(await this.adapter.updateAll(t.Metadata.constr(this.class),i.map((e=>e.id)),e,...o)).map(((e,t)=>this.adapter.revert(e,this.class,i[t].id,a.get("rebuildWithTransient")?i[t].transient:void 0,a)))}async deleteAll(e,...r){const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.create);return n.debug(`deleting ${e.length} ${this.class.name} in table ${s.Model.tableName(this.class)}`),(await this.adapter.deleteAll(t.Metadata.constr(this.class),e,...o)).map(((t,r)=>this.adapter.revert(t,this.class,e[r],void 0,a)))}}let S=class{constructor(e,t){if(this.adapter=e,this.handler=t,!this.adapter)throw new n.InternalError("Missing adapter. Should not be possible")}async afterInsert(e){const t=e.entity.constructor,r=await this.adapter.context(n.OperationKeys.CREATE,{},t);this.handler(t,n.OperationKeys.CREATE,e.entityId,e.entity,r)}async afterRemove(e){const t=e.metadata.target,r=await this.adapter.context(n.OperationKeys.DELETE,{},t);this.handler(t,n.OperationKeys.DELETE,"",{},r)}async afterUpdate(e){const t=e.databaseEntity.constructor,r=await this.adapter.context(n.OperationKeys.UPDATE,{},t);return this.handler(t,n.OperationKeys.UPDATE,e.entity[s.Model.pk(t)],e.entity,r)}};S=r.__decorate([i.EventSubscriber(),r.__metadata("design:paramtypes",[a.Adapter,Function])],S);class b extends a.Dispatch{constructor(){super()}async notificationHandler(e,t,r,...a){const{log:n,ctxArgs:o}=this.logCtx(a,this.notificationHandler);try{await this.updateObservers(e,t,r,...o),n.verbose(`Observer refresh dispatched by ${t} for ${e}`),n.debug("pks: "+r)}catch(e){n.error("Failed to process notification: "+e)}}async initialize(){(async function(){if(!this.adapter)throw new n.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.adapter,this.notificationHandler.bind(this)))}catch(e){throw new n.InternalError(e)}}).call(this).then((()=>{this.log.info("Subscribed to TypeORM notifications")})).catch((e=>{throw new n.InternalError("Failed to subscribe to TypeORM notifications: "+e)}))}async updateObservers(e,t,r,...a){if(this.adapter)return super.updateObservers(e,t,r,...a);this.log.verbose(`No adapter observed for dispatch; skipping observer update for ${e}:${t}`)}}function M(e,t,r){let n=0;const o=r.filter(((r,a)=>(n=a,r.target===e&&r.propertyName===t)));return o.length?(r.splice(n,1),Object.entries(o[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 R(e,t,r,a={},o="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 n.InternalError(`Multiple columns for ${t} found for given target: ${r.map((e=>e.propertyName)).join(", ")}`);if(l.length>1)throw new n.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"!==o&&Object.defineProperty(d,"mode",{value:o,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:o,options:a})}function C(e,r){return(a,n)=>{let o;"string"==typeof e||"function"==typeof e?o=e:e&&(r=e,o=e.type),r||(r={});let s=Reflect&&Reflect.getMetadata?Reflect.getMetadata("design:type",a,n):void 0;!o&&s&&(o=s);const c=t.Metadata.allowedTypes(a.constructor,n)[0];if(c!==s&&(o=c,s=c),!r.type&&o&&(r.type=o),"hstore"!==r.type||r.hstoreType||(r.hstoreType=s===Object?"object":"string"),"function"==typeof e)i.getMetadataArgsStorage().embeddeds.push({target:a.constructor,propertyName:n,isArray:s===Array||!0===r.array,prefix:void 0!==r.prefix?r.prefix:void 0,type:e});else{if(!r.type)throw new i.ColumnTypeUndefinedError(a,n);!0===r.unique&&i.getMetadataArgsStorage().uniques.push({target:a.constructor,columns:[n]});const e=i.getMetadataArgsStorage();R(a.constructor,n,e.columns,r,"regular",e.relations,r.unique?e.indices:void 0),r.generated&&i.getMetadataArgsStorage().generations.push({target:a.constructor,propertyName:n,strategy:"string"==typeof r.generated?r.generated:"increment"})}}}class _{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]}}function L(e,t){const r={};let a;return e?("string"==typeof e&&(a=e),_.isObject(e)&&(a="increment",Object.assign(r,e))):a="increment",_.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 n=i.getMetadataArgsStorage();R(e.constructor,t,n.columns,r,"regular",n.relations),i.getMetadataArgsStorage().generations.push({target:e.constructor,propertyName:t,strategy:a})}}function I(e,t){const r=(_.isObject(e)?e:t)||{},a="string"==typeof e?e:r.name;return e=>{i.getMetadataArgsStorage().tables.push({target:e,name:a,type:"regular",orderBy:r.orderBy?r.orderBy:void 0,engine:r.engine?r.engine:void 0,database:r.database?r.database:void 0,schema:r.schema?r.schema:void 0,synchronize:r.synchronize,withoutRowid:r.withoutRowid,comment:r.comment?r.comment:void 0})}}async function v(e,t,r,a){try{const t=e.get("user");a[r]=t}catch(e){throw new n.InternalError("No User found in context. Please provide a user in the context")}}class D extends a.Adapter{getClient(){const e=a.Adapter.models(this.alias).map(t.Metadata.constr);return new i.DataSource(Object.assign({},this.config,{entities:e}))}constructor(e,t){super(e,l,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 T}Statement(){return new A(this)}Paginator(e,t,r){return new E(this,e,t,r)}async Sequence(e){return new w(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=O(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,t=!0,...r){const{log:a}=this.logCtx(r,this.raw);try{this.client.isInitialized||await this.client.initialize()}catch(e){throw this.parseError(e)}try{const{query:t,values:r}=e;return a.debug("executing query: "+("string"!=typeof t?t.getSql():t)),await this.client.query(t,r)}catch(e){throw this.parseError(e)}}prepare(e,r=!1,o){const i=super.prepare(e,o);i.record=Object.entries(i.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,!0,o).record:"string"==typeof r&&(r=""+r),e[t]=r),e)),{});const c=s.Model.get(e.constructor.name);if(!c)throw new n.InternalError(`Model ${e.constructor.name} not found in registry`);const l=r?new(t.Metadata.constr(c)):new c;return r&&Object.defineProperty(l,"constructor",{configurable:!1,enumerable:!1,value:t.Metadata,writable:!1}),Object.entries(i.record).forEach((([e,t])=>l[e]=t)),i.record=l,i}revert(e,t,r,a,o){const s=o.logger.for(this.revert);return a&&(s.verbose("re-adding transient properties: "+Object.keys(a).join(", ")),Object.entries(a).forEach((([r,a])=>{if(r in e)throw new n.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,...a){const o=this.client.getRepository(e);if(void 0!==t){const r=s.Model.pk(e);if(await o.findOne({where:{[r]:t}}))throw new n.ConflictError(`Record already exists in table ${s.Model.tableName(e)} with id: ${t}`)}try{return await o.save(r)}catch(e){throw this.parseError(e)}}async read(e,t,...r){let a;try{const r=this.client.getRepository(e),{nonEager:n,relations:o}=m(e),i=s.Model.pk(e),c={where:{[i]:t},relations:o,loadRelationIds:{relations:n}};a=await r.findOneOrFail(c)}catch(e){throw this.parseError(e)}return a}async update(e,t,r,...a){const{ctx:n}=this.logCtx(a,this.update);await this.read(e,t,n);try{return this.client.getRepository(e).save(r)}catch(e){throw this.parseError(e)}}async delete(e,t,...r){const{ctx:a}=this.logCtx(r,this.delete),n=await this.read(e,t,a);try{const r=this.client.getRepository(e);return await r.delete(t),n}catch(e){throw this.parseError(e)}}async createAll(e,t,r,...a){const{ctx:n}=this.logCtx(a,this.createAll);try{const t=this.client.getRepository(e),a=await t.insert(r);return this.readAll(e,a.identifiers.map((e=>e.id)),n)}catch(e){throw this.parseError(e)}}async readAll(e,t,...r){if(!t.length)return[];try{const r=s.Model.pk(e);return this.client.getRepository(e).findBy({[r]:i.In(t)})}catch(e){throw this.parseError(e)}}async updateAll(e,t,r,...a){const n=[],o=s.Model.pk(e);for(const t of r)n.push(await this.update(e,t[o],t,...a));return n}async deleteAll(e,t,...r){if(!t.length)return[];const{ctx:a}=this.logCtx(r,this.deleteAll);try{const r=this.client.getRepository(e),n=await this.readAll(e,t,a),o=s.Model.pk(e);return await r.delete({[o]:i.In(t)}),n}catch(e){throw this.parseError(e)}}parseError(e,t){return D.parseError(e,t)}isReserved(e){return!!e.match(c)}static parseError(e,t){if(e instanceof n.BaseError)return e;const r="string"==typeof e?e:e.message;if(r.match(/duplicate key|already exists/g))return new n.ConflictError(r);if(r.match(/does not exist|not found|Could not find/g))return new n.NotFoundError(r);switch(r.toString()){case"23505":case"23503":case"42P07":return new n.ConflictError(t);case"42P01":case"42703":return new n.NotFoundError(t);case"42P16":return new p(e);default:return r.toString().match(/ECONNREFUSED/g)?new a.ConnectionError(e):new n.InternalError(e)}}static async connect(e){const t=new i.DataSource(e);return t.isInitialized||await t.initialize(),t}static async createDatabase(e,t){const r=o.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=o.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,r,a=!1){switch(e.toLowerCase()){case"string":return r?"TEXT PRIMARY KEY":a?"TEXT":"VARCHAR";case"number":return r?"SERIAL PRIMARY KEY":"INTEGER";case"boolean":return"BOOLEAN";case"date":return"TIMESTAMP";case"bigint":return r?"BIGINT PRIMARY KEY":"BIGINT";default:{const r=s.Model.get(e);if(r)return{model:r,pkType:t.Metadata.type(r,s.Model.pk(r))};throw new n.InternalError("Unsupported type: "+e)}}}static parseValidationToPostgres(e,t,r,a,o){switch(a){case s.ValidationKeys.REQUIRED:return"NOT NULL";case s.ValidationKeys.MAX_LENGTH:return r||!o||"string"!==t.toLowerCase()?"":`(${o[s.ValidationKeys.MAX_LENGTH]})`;case s.ValidationKeys.MIN_LENGTH:return`CONSTRAINT ${e}_min_length_check CHECK (LENGTH(${e}) >= ${o[s.ValidationKeys.MIN_LENGTH]})`;case s.ValidationKeys.PATTERN:case s.ValidationKeys.URL:case s.ValidationKeys.EMAIL:return`CONSTRAINT ${e}_pattern_check CHECK (${e} ~ '${f(o[s.ValidationKeys.PATTERN])}')`;case s.ValidationKeys.TYPE:case s.ValidationKeys.DATE:return"";case s.ValidationKeys.MIN:return`CONSTRAINT ${e}_${a}_check CHECK (${e} >= ${o[s.ValidationKeys.MIN]})`;case s.ValidationKeys.MAX:return`CONSTRAINT ${e}_${a}_check CHECK (${e} <= ${o[s.ValidationKeys.MAX]})`;case s.ValidationKeys.PASSWORD:default:throw new n.InternalError("Unsupported type: "+a)}}static parseRelationsToPostgres(e,t,r,o,i){const c=s.Model.tableName(t),{cascade:l}=i,d=`${l.update?" ON UPDATE CASCADE":""}${l.delete?" ON DELETE CASCADE":""}`;if("relations"+o===a.PersistenceKeys.ONE_TO_ONE)return`FOREIGN KEY (${e}) REFERENCES ${c}(${r})${d}`;throw new n.InternalError("Unsupported operation: "+o)}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(),t.Decoration.flavouredAs(l).for(a.PersistenceKeys.TABLE).extend({decorator:e=>r=>{const a=t.Metadata.constr(r),n=i.getMetadataArgsStorage().tables.find((e=>e.target===a));return n?(e&&(n.name=e),r):(I(e||(()=>{try{return s.Model.tableName(a)}catch{return a?.name}})())(a),r)}}).apply(),t.Decoration.flavouredAs(l).for(n.DBKeys.ID).define({decorator:e=>(r,o)=>{const c=t.Metadata.constr(r.constructor);i.getMetadataArgsStorage().tables.find((e=>e.target===c))||I((()=>{try{return s.Model.tableName(c)}catch{return c?.name}})()||c?.name)(c),t.prop()(r,o);const l=[s.required(),n.readonly(),t.propMetadata(t.Metadata.key(n.DBKeys.ID,o),e)];let d=e.type||t.Metadata.type(r.constructor,o);switch(d){case String.name||String.name.toLowerCase():case String:e.generated=!1;break;case Number.name||String.name.toLowerCase():case BigInt.name||BigInt.name.toLowerCase():case BigInt:case Number:case"uuid":case"serial":e.generated=!0;break;case!d:throw new n.InternalError(`Missing type information for property ${o} of ${r.name}`);default:throw Error("Unsupported type")}if(void 0===e.generated&&(e.generated=!0),e.generated){const t={name:e.name||s.Model.sequenceName(r.constructor,"pk")};"serial"===e.type||"uuid"===e.type?l.push(L("uuid"===e.type?e.type:"identity",t)):l.push(L(t)),l.push(a.noValidateOnCreate())}else{switch("function"==typeof d&&d?.name?d.name:d){case Number.name||Number.name.toLowerCase():d="numeric";break;case"serial":case"uuid":break;case String.name||String.name.toLowerCase():d="varchar";break;case BigInt.name||BigInt.name.toLowerCase():d="bigint";break;default:throw new n.InternalError("Unsupported type: "+d)}l.push(((e,t)=>(r,a)=>{let n;e===String||e===Boolean||e===Number?n=e:t=Object.assign({},e),t||(t={});const o=Reflect&&Reflect.getMetadata?Reflect.getMetadata("design:type",r,a):void 0;if(!n&&o&&(n=o),!t.type&&n&&(t.type=n),!t.type)throw new i.ColumnTypeUndefinedError(r,a);if(t.nullable)throw new i.PrimaryColumnCannotBeNullableError(r,a);t.primary=!0;const s=i.getMetadataArgsStorage();R(r.constructor,a,s.columns,t,"regular",s.relations),t.generated&&i.getMetadataArgsStorage().generations.push({target:r.constructor,propertyName:a,strategy:"string"==typeof t.generated?t.generated:"increment"})})({type:d,unique:!0}))}return e.generated&&l.push(a.generated()),t.apply(...l)(r,o)}}).apply(),t.Decoration.flavouredAs(l).for(a.PersistenceKeys.COLUMN).extend({decorator:e=>(t,r)=>{const a={};let n;e&&(a.name=e);try{n=s.Model.pk(t.constructor)}catch(e){n=void 0}return n!==r&&(a.nullable=!0),C(a)(t,r)}}).apply(),t.Decoration.flavouredAs(l).for(a.PersistenceKeys.UNIQUE).define(t.propMetadata(a.PersistenceKeys.UNIQUE,{})).extend(C({unique:!0})).apply();const e=s.Validation.key(s.ValidationKeys.REQUIRED);t.Decoration.flavouredAs(l).for(e).extend(C({nullable:!1})).apply(),t.Decoration.flavouredAs(l).for(n.DBKeys.VERSION).define(s.type(Number),i.VersionColumn(),a.noValidateOnCreate()).apply();const r=n.DBKeys.TIMESTAMP,o=(c=n.DBKeys.TIMESTAMP,n.UpdateValidationKeys.REFLECT+c);var c;t.Decoration.flavouredAs(l).for(r).define({decorator:(e,r)=>{const i=[s.date(r,n.DEFAULT_ERROR_MESSAGES.TIMESTAMP.DATE),s.required(n.DEFAULT_ERROR_MESSAGES.TIMESTAMP.REQUIRED),t.propMetadata(s.Validation.key(n.DBKeys.TIMESTAMP),{operation:e,format:r}),a.noValidateOnCreate()];return-1!==e.indexOf(n.OperationKeys.UPDATE)?i.push(t.propMetadata(o,{message:n.DEFAULT_ERROR_MESSAGES.TIMESTAMP.INVALID}),a.noValidateOnCreateUpdate()):i.push(n.readonly()),t.apply(...i)}}).extend({decorator:(e,t)=>(t,r)=>-1!==e.indexOf(n.OperationKeys.UPDATE)?((e,t)=>{const r=i.getMetadataArgsStorage();R(e.constructor,t,r.columns,{},"updateDate",r.relations)})(t,r):((e,t)=>{const r=i.getMetadataArgsStorage();R(e.constructor,t,r.columns,{},"createDate",r.relations)})(t,r)}).apply(),t.Decoration.flavouredAs(l).for(a.PersistenceKeys.ONE_TO_ONE).define({decorator:(e,r,o,c,l)=>{const d={class:e,cascade:r,populate:o};c&&(d.joinTable=c),l&&(d.name=l);const p={cascade:r.update===a.Cascade.CASCADE||r.delete===a.Cascade.CASCADE,onDelete:r.delete?"CASCADE":"DEFAULT",onUpdate:r.update?"CASCADE":"DEFAULT",nullable:!0,eager:o};return t.apply(t.prop(),a.relation(a.PersistenceKeys.ONE_TO_ONE,d),s.type([e,String,Number,BigInt]),t.propMetadata(a.PersistenceKeys.ONE_TO_ONE,d),((e,t,r)=>{let a;return _.isObject(t)?r=t:a=t,(t,n)=>{r||(r={});let o=!(!r||!0!==r.lazy);if(!o&&Reflect&&Reflect.getMetadata){const e=Reflect.getMetadata("design:type",t,n);e&&"string"==typeof e.name&&"promise"===e.name.toLowerCase()&&(o=!0)}const s=i.getMetadataArgsStorage();r=Object.assign(r,M(t.constructor,n,s.columns)),s.relations.push({target:t.constructor,propertyName:n,isLazy:o,relationType:"one-to-one",type:e,inverseSideProperty:a,options:r})}})((()=>{"function"!=typeof e||e.name||(e=e());const r=t.Metadata.constr(e);if(r===e)throw new n.InternalError("Original Model not found in constructor");return r}),(t=>("function"!=typeof e||e.name||(e=e()),t[s.Model.pk(e)])),p),i.JoinColumn(c||d.name?{foreignKeyConstraintName:d.name}:void 0))}}).apply(),t.Decoration.flavouredAs(l).for(a.PersistenceKeys.ONE_TO_MANY).define({decorator:(e,r,o,c,l)=>{const d={class:e,cascade:r,populate:o};c&&(d.joinTable=c),l&&(d.name=l);const p=[t.prop(),a.relation(a.PersistenceKeys.ONE_TO_MANY,d),s.list(e),t.propMetadata(a.PersistenceKeys.ONE_TO_MANY,d),(c,l)=>{const d={cascade:r.update===a.Cascade.CASCADE||r.delete===a.Cascade.CASCADE,onDelete:r.delete?"CASCADE":"DEFAULT",onUpdate:r.update?"CASCADE":"DEFAULT",nullable:!0,eager:o};return(p=()=>{"function"!=typeof e||e.name||(e=e());const r=t.Metadata.constr(e);if(r===e)throw new n.InternalError("Original Model not found in constructor");return r},u=r=>{"function"!=typeof e||e.name||(e=e());const o=t.Metadata.relations(e);if(!o)throw new n.InternalError("No relations found on model "+e.name);const i=o.find((r=>{const n=s.Model.relations(e,r);if(n.key!==a.PersistenceKeys.MANY_TO_ONE)return!1;const o="function"!=typeof n.class||n.class.name?n.class:n.class(),i=t.Metadata.constr(c.constructor);return o.name===i.name}));if(!i)throw new n.InternalError(`Cross relation not found. Did you use @manyToOne on the ${e.name}?`);return r[i]},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=i.getMetadataArgsStorage();y=Object.assign(y,M(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})})(c,l);var p,u,y}];return t.apply(...p)}}).apply(),t.Decoration.flavouredAs(l).for(a.PersistenceKeys.MANY_TO_ONE).define({decorator:(e,r,o,c,l)=>{const d={class:e,cascade:r,populate:o};c&&(d.joinTable=c),l&&(d.name=l);const p={cascade:r.update===a.Cascade.CASCADE||r.delete===a.Cascade.CASCADE,onDelete:r.delete?"CASCADE":"NO ACTION",onUpdate:r.update?"CASCADE":"NO ACTION",nullable:!0,eager:o};return t.apply(a.relation(a.PersistenceKeys.MANY_TO_ONE,d),s.type([e,String,Number,BigInt]),t.propMetadata(a.PersistenceKeys.MANY_TO_ONE,d),((r,o)=>((e,t,r)=>{let a;return _.isObject(t)?r=t:a=t,(t,n)=>{r||(r={});let o=r&&!0===r.lazy;if(!o&&Reflect&&Reflect.getMetadata){const e=Reflect.getMetadata("design:type",t,n);e&&"string"==typeof e.name&&"promise"===e.name.toLowerCase()&&(o=!0)}const s=i.getMetadataArgsStorage();r=Object.assign(r,M(t.constructor,n,s.columns)),s.relations.push({target:t.constructor,propertyName:n,relationType:"many-to-one",isLazy:o,type:e,inverseSideProperty:a,options:r})}})((()=>{"function"!=typeof e||e.name||(e=e());const r=t.Metadata.constr(e);if(r===e)throw new n.InternalError("Original Model not found in constructor");return r}),(n=>{"function"!=typeof e||e.name||(e=e());const o=t.Metadata.relations(e);let i=s.Model.pk(e);return o?(i=o.find((n=>{const o=s.Model.relations(e,n);if(o.key!==a.PersistenceKeys.ONE_TO_MANY)return!1;const i="function"!=typeof o.class||o.class.name?o.class:o.class(),c=t.Metadata.constr(r.constructor);return i.name===c.name}))||i,n[i]):n[i]}),p)(r,o)))}}).apply(),t.Decoration.flavouredAs(l).for(a.PersistenceKeys.MANY_TO_MANY).define({decorator:(e,r,o,c,l)=>{const d={class:e,cascade:r,populate:o};c&&(d.joinTable=c),l&&(d.name=l);const p={cascade:r.update===a.Cascade.CASCADE||r.delete===a.Cascade.CASCADE,onDelete:r.delete?"CASCADE":"DEFAULT",onUpdate:r.update?"CASCADE":"DEFAULT",nullable:!0,eager:o};return t.apply(a.relation(a.PersistenceKeys.MANY_TO_MANY,d),s.list(e),t.propMetadata(a.PersistenceKeys.MANY_TO_MANY,d),((e,t,r)=>{let a;return _.isObject(t)?r=t:a=t,(t,n)=>{r||(r={});let o=!0===r.lazy;if(!o&&Reflect&&Reflect.getMetadata){const e=Reflect.getMetadata("design:type",t,n);e&&"string"==typeof e.name&&"promise"===e.name.toLowerCase()&&(o=!0)}const s=i.getMetadataArgsStorage();r=Object.assign(r,M(t.constructor,n,s.columns)),s.relations.push({target:t.constructor,propertyName:n,relationType:"many-to-many",isLazy:o,type:e,inverseSideProperty:a,options:r})}})((()=>{"function"!=typeof e||e.name||(e=e());const r=t.Metadata.constr(e);if(r===e)throw new n.InternalError("Original Model not found in constructor");return r}),(t=>("function"!=typeof e||e.name||(e=e()),t[s.Model.pk(e)])),p),i.JoinTable(c))}}).apply(),t.Decoration.flavouredAs(l).for(a.PersistenceKeys.INDEX).extend({decorator:(e,t,r)=>(r,n)=>("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?i.Index([n,...t])(r):i.Index()(r,n))}).apply(),t.Decoration.flavouredAs(l).for(a.PersistenceKeys.CREATED_BY).define(n.onCreate(v,{}),s.required(),t.propMetadata(a.PersistenceKeys.CREATED_BY,{}),a.noValidateOnCreate()).apply(),t.Decoration.flavouredAs(l).for(a.PersistenceKeys.UPDATED_BY).define(n.onCreateUpdate(v,{}),s.required(),t.propMetadata(a.PersistenceKeys.UPDATED_BY,{}),a.noValidateOnCreateUpdate()).apply()}}r.__decorate([o.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[]),r.__metadata("design:returntype",b)],D.prototype,"Dispatch",null),r.__decorate([o.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[]),r.__metadata("design:returntype",Object)],D.prototype,"repository",null),r.__decorate([o.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[]),r.__metadata("design:returntype",A)],D.prototype,"Statement",null),r.__decorate([o.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Object]),r.__metadata("design:returntype",Promise)],D.prototype,"Sequence",null),r.__decorate([o.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Object]),r.__metadata("design:returntype",Promise)],D.prototype,"index",null),D.decoration(),a.Adapter.setCurrent(l);const P="##VERSION##",x="##PACKAGE##";t.Metadata.registerLibrary(x,P),e.IndexError=p,e.PACKAGE_NAME=x,e.TypeORMAdapter=D,e.TypeORMConst={NULL:"NULL"},e.TypeORMDispatch=b,e.TypeORMFlavour=l,e.TypeORMGroupOperator=h,e.TypeORMKeys=d,e.TypeORMOperator=y,e.TypeORMPaginator=E,e.TypeORMQueryLimit=250,e.TypeORMRepository=T,e.TypeORMSequence=w,e.TypeORMStatement=A,e.VERSION=P,e.convertJsRegexToPostgres=f,e.enforceDbDecoratorsRecursive=N,e.generateIndexes=O,e.reservedAttributes=c,e.splitEagerRelations=m,e.translateOperators=g},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("tslib"),require("@decaf-ts/core"),require("@decaf-ts/db-decorators"),require("@decaf-ts/logging"),require("@decaf-ts/decorator-validation"),require("typeorm")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","tslib","@decaf-ts/core","@decaf-ts/db-decorators","@decaf-ts/logging","@decaf-ts/decorator-validation","typeorm"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-typeorm"]={},e.decafTsDecoration,e.tslib,e.decafTsCore,e.decafTsDbDecorators,e.decafTsLogging,e.decafTsDecoratorValidation,e.typeorm);
|
|
1
|
+
var e,t;e=this,t=function(e,t,r,a,n,o,s,i){"use strict";const c=/^(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,l="type-orm",d={SEPARATOR:".",ID:"id",VERSION:"version",DELETED:"deleted_at",TABLE:"table_name",SCHEMA:"schema_name",SEQUENCE:"sequence_name",INDEX:"index"};class p extends n.BaseError{constructor(e){super(p.name,e,404)}}var u;e.SQLOperator=void 0,(u=e.SQLOperator||(e.SQLOperator={})).EQUAL="=",u.NOT_EQUAL="<>",u.LESS_THAN="<",u.LESS_THAN_OR_EQUAL="<=",u.GREATER_THAN=">",u.GREATER_THAN_OR_EQUAL=">=",u.IN="IN",u.NOT_IN="NOT IN",u.LIKE="LIKE",u.ILIKE="ILIKE",u.BETWEEN="BETWEEN",u.IS_NULL="IS NULL",u.IS_NOT_NULL="IS NOT NULL",u.EXISTS="EXISTS",u.NOT_EXISTS="NOT EXISTS",u.ANY="ANY",u.ALL="ALL",u.SOME="SOME";const y={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},h={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(t.Metadata.constr(this.clazz))),this.__repo}constructor(e,t,r,a){super(e,t,r,a)}prepare(e){return{...e}}async page(e=1,...t){const{ctxArgs:r,ctx:n}=this.adapter.logCtx(t,this.page);if(this.isPreparedStatement())return this.pagePrepared(e,...r);const o={...this.statement};this._recordCount&&this._totalPages||(this._totalPages=this._recordCount=0);const i=Object.assign(o,{skip:(this.current||0)*this.size,take:this.size}),c=await this.repo.findAndCount(i);if(this._recordCount=c[1],this._totalPages=Math.ceil(this._recordCount/this.size),!this.clazz)throw new a.PagingError("No statement target defined");const l=s.Model.pk(this.clazz),d=(c[0]||[]).map(e=>this.adapter.revert(e,this.clazz,e[l],void 0,n));return this._currentPage=e,d}}function E(e){for(const t of[y,h]){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 f(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 m(e,r={}){const a=s.Model.relations(e);if(r[e.name]=r[e.name]||void 0,r[e.name])return r[e.name];const i=a.reduce((a,s)=>{const i=t.Metadata.relations(e,s),c=i.populate;let l=i.class;if(o.isClass(l)||(l=l()),!l)throw new n.InternalError(`Could not find class for property ${s} on model ${e.name}`);if(c?a.relations.push(s):a.nonEager.push(s),a.relations.includes(s)){const{nonEager:e,relations:t}=m(l,r);if(e.length&&a.relations.includes(s)){const t=e.map(e=>`${s}.${e}`);a.nonEager.push(...t)}if(t.length){const e=t.map(e=>`${s}.${e}`);a.relations.push(...e)}}return a},{nonEager:[],relations:[]});return r[e.name]=i,i}class A extends a.Statement{constructor(e){super(e)}build(){const e=this.log.for(this.build),r=s.Model.tableName(this.fromSelector),n={query:this.adapter.client.getRepository(t.Metadata.constr(this.fromSelector)).createQueryBuilder(r)};let o;return this.selectSelector?n.query=n.query.select(this.selectSelector.map(e=>`${r}.${e}`)):n.query=n.query.select(),this.whereCondition&&(n.query=this.parseCondition(this.whereCondition,r,n.query).query),o=this.orderBySelector?[`${r}.${this.orderBySelector[0]}`,this.orderBySelector[1].toUpperCase()]:[`${r}.${s.Model.pk(this.fromSelector)}`,a.OrderDirection.ASC.toUpperCase()],n.query=n.query.orderBy(...o),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,s.Model.tableName(this.fromSelector))),this.orderBySelector&&(t.order={[this.orderBySelector[0]]:this.orderBySelector[1].toString()}),this.adapter.Paginator(t,e,this.fromSelector)}catch(e){throw new a.QueryError(e)}}async raw(e,...t){const{nonEager:r}=m(this.fromSelector);return e.query=e.query.setFindOptions({loadEagerRelations:!0,loadRelationIds:{relations:r}}),await e.query.getMany()}parseConditionForPagination(e,t,r=0,a){throw new n.InternalError("Not implemented")}parseCondition(e,t,r,n=0,o){const{attr1:s,operator:i,comparison:c}=e;if(-1===[a.GroupOperator.AND,a.GroupOperator.OR,a.Operator.NOT].indexOf(i))return(()=>{const e=E(i),l=`${s}${n}`,d=`${t}.${s} ${e} :${l}`,p={[l]:c};switch(o){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,++n).query,this.parseCondition(c,t,r,++n,i)}}class w extends a.Sequence{constructor(e,t){super(e,t)}async current(...e){const t=(await n.Context.args(n.OperationKeys.READ,s.Model,e,this.adapter)).context,{name:r}=this.options;try{const e=await this.adapter.raw({query:"SELECT sequence_name, start_value, minimum_value, increment FROM information_schema.sequences WHERE sequence_name = $1",values:[r]},!0,t);if(!Array.isArray(e)||0===e.length)throw new n.InternalError(`Sequence ${r} not found`);const a=e[0],o=a.current_value??a.last_value??a.start_value;return this.parse(o)}catch(e){throw this.adapter.parseError(e)}}async increment(e,t){const{type:r,incrementBy:a,name:o,startWith:s}=this.options;if("Number"!==r&&"BigInt"!==r)throw new n.InternalError(`Cannot increment sequence of type ${r} with ${e}`);try{const e=await this.adapter.raw({query:"SELECT nextval($1) AS nextval;",values:[o]},!0,t);return Array.isArray(e)&&e[0]?e[0].nextval:e}catch(e){if(!(e instanceof n.NotFoundError))throw e;if(!o)throw new n.InternalError("Cannot increment sequence without a name: "+o);const r=`"${o.replace(/"/g,'""')}"`;await this.adapter.raw({query:`CREATE SEQUENCE IF NOT EXISTS ${r} START WITH ${s} INCREMENT BY ${a} NO CYCLE;`,values:[]},!0,t);const i=await this.adapter.raw({query:"SELECT nextval($1) AS nextval;",values:[o]},!0,t);return Array.isArray(i)&&i[0]?i[0].nextval:i}}async next(...e){const t=await n.Context.args(n.OperationKeys.UPDATE,s.Model,e,this.adapter),{context:r}=t;return this.increment(void 0,r)}async range(e,...t){const r=await n.Context.args(n.OperationKeys.UPDATE,s.Model,t,this.adapter),{context:a}=r,o=await this.current(),i=this.parse(this.options.incrementBy),c=await this.increment(this.parse(e)*i,a),l=[];for(let t=1;e>=t;t++)l.push(o+i*this.parse(t));if(l[l.length-1]!==c)throw new n.InternalError("Miscalculation of range");return l}}function O(e){const t=((e,t,r,a=n.DefaultSeparator)=>[...e.map(e=>e===d.TABLE?"table":e),...r||[],...t?[t]:[],d.INDEX].join(a))([d.TABLE]),r={};return r[t]={query:"",values:[]},e.forEach(e=>{const t=s.Model.indexes(e);Object.entries(t).forEach(([t,o])=>{const i=Object.keys(o)[0];let{compositions:c}=o[i];const l=s.Model.tableName(e);c=c||[],(()=>{const e=[t,...c,a.PersistenceKeys.INDEX].join(n.DefaultSeparator);r[e]={query:"CREATE INDEX $1 ON $2 ($3);",values:[e,l,t]}})()})}),Object.values(r)}async function N(e,r,o,i,c,l){async function d(e,t){const o=a.Repository.forModel(e.constructor);await N(o,r,e,t||i!==n.OperationKeys.UPDATE?i:n.OperationKeys.CREATE,c,t)}await n.enforceDBDecorators(e,r,o,i,c,l);for(const e of Object.keys(o))s.Model.isPropertyModel(o,e)&&void 0!==o[e]?await d(o[e],l?l[e]:void 0):t.Metadata.validationFor(o.constructor,e,s.ValidationKeys.LIST)&&o[e]&&Array.isArray(o[e])&&await Promise.all(o[e].map((t,r)=>d(t,l&&l[e]?l[e][r]:void 0)))}class T extends a.Repository{constructor(e,t,...r){super(e,t,...r),this._overrides=Object.assign({},super._overrides,{ignoreValidation:!1,ignoreHandlers:!1,allowRawStatements:!0,forcePrepareSimpleQueries:!1,forcePrepareComplexQueries:!1})}queryBuilder(){return this.nativeRepo().createQueryBuilder()}nativeRepo(){const e=t.Metadata.constr(this.class);return this.adapter.dataSource.getRepository(e)}async createPrefix(e,...t){const r=await n.Context.args(n.OperationKeys.CREATE,this.class,t,this.adapter,this._overrides||{}),a=r.context.get("ignoreHandlers"),o=r.context.get("ignoreValidation");if(e=new this.class(e),a||await N(this,r.context,e,n.OperationKeys.CREATE,n.OperationKeys.ON),!o){const t=await Promise.resolve(e.hasErrors(...r.context.get("ignoredValidationProperties")||[]));if(t)throw new n.ValidationError(t.toString())}return[e,...r.args]}async create(e,...r){const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.create);n.debug(`Creating new ${this.class.name} in table ${s.Model.tableName(this.class)}`);let{record:i,id:c,transient:l}=this.adapter.prepare(e,!1,a);return i=await this.adapter.create(t.Metadata.constr(this.class),c,e,...o),this.adapter.revert(i,this.class,c,l,a)}async read(e,...r){const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.create);n.debug(`reading ${this.class.name} from table ${s.Model.tableName(this.class)} with pk ${this.pk}`);const i=await this.adapter.read(t.Metadata.constr(this.class),e,...o);return this.adapter.revert(i,this.class,e,void 0,a)}async updatePrefix(e,...t){const r=await n.Context.args(n.OperationKeys.UPDATE,this.class,t,this.adapter,this._overrides||{}),a=r.context,o=a.get("ignoreHandlers"),i=a.get("ignoreValidation"),c=e[this.pk];if(!c)throw new n.InternalError("No value for the Id is defined under the property "+this.pk);let l;if(a.get("applyUpdateValidation")&&(l=await this.read(c),a.get("mergeForUpdate")&&(e=s.Model.merge(l,e,this.class))),o&&await N(this,a,e,n.OperationKeys.UPDATE,n.OperationKeys.ON,l),i){const t=await Promise.resolve(e.hasErrors(l,...s.Model.relations(this.class),...r.context.get("ignoredValidationProperties")||[]));if(t)throw new n.ValidationError(t.toString())}return[e,...r.args,l]}async update(e,...r){const{ctxArgs:a,log:n,ctx:o}=this.logCtx(r,this.create);let{record:i,id:c,transient:l}=this.adapter.prepare(e,!1,o);return n.debug(`updating ${this.class.name} in table ${s.Model.tableName(this.class)} with id ${c}`),i=await this.adapter.update(t.Metadata.constr(this.class),c,e,...a),this.adapter.revert(i,this.class,c,l,o)}async delete(e,...r){const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.create);n.debug(`deleting new ${this.class.name} in table ${s.Model.tableName(this.class)} with pk ${e}`);const i=await this.adapter.delete(t.Metadata.constr(this.class),e,...o);return this.adapter.revert(i,this.class,e,void 0,a)}async createAllPrefix(e,...t){const r=await n.Context.args(n.OperationKeys.CREATE,this.class,t,this.adapter,this._overrides||{}),a=r.context.get("ignoreHandlers"),o=r.context.get("ignoreValidation");if(!e.length)return[e,...r.args];if(e=await Promise.all(e.map(async e=>(e=new this.class(e),a||await N(this,r.context,e,n.OperationKeys.CREATE,n.OperationKeys.ON),e))),!o){const t=r.context.get("ignoredValidationProperties")||[],a=await Promise.all(e.map(e=>Promise.resolve(e.hasErrors(...t)))),o=n.reduceErrorsToPrint(a);if(o)throw new n.ValidationError(o)}return[e,...r.args]}async createAll(e,...r){if(!e.length)return e;const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.create);n.debug(`Creating ${e.length} new ${this.class.name} in table ${s.Model.tableName(this.class)}`);const i=e.map(e=>this.adapter.prepare(e,!1,a)),c=i.map(e=>e.id);let l=i.map(e=>e.record);return l=await this.adapter.createAll(t.Metadata.constr(this.class),c,e,...o),l.map((e,t)=>this.adapter.revert(e,this.class,c[t],a.get("rebuildWithTransient")?i[t].transient:void 0,a))}async readAll(e,...r){const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.create);return n.debug(`reading ${e.length} ${this.class.name} in table ${s.Model.tableName(this.class)}`),(await this.adapter.readAll(t.Metadata.constr(this.class),e,...o)).map((t,r)=>this.adapter.revert(t,this.class,e[r],void 0,a))}async updateAllPrefix(e,...t){const r=await n.Context.args(n.OperationKeys.UPDATE,this.class,t,this.adapter,this._overrides||{}),a=r.context,o=a.get("ignoreHandlers"),i=a.get("ignoreValidation"),c=e.map(e=>{const t=e[this.pk];if(!t)throw new n.InternalError("missing id on update operation");return t});let l;if(a.get("applyUpdateValidation")&&(l=await this.readAll(c,a),a.get("mergeForUpdate")&&(e=e.map((e,t)=>s.Model.merge(l[t],e,this.class)))),o||await Promise.all(e.map((e,t)=>N(this,r.context,e,n.OperationKeys.UPDATE,n.OperationKeys.ON,l?l[t]:void 0))),!i){const t=a.get("ignoredValidationProperties")||[];let r;r=a.get("applyUpdateValidation")?await Promise.all(e.map((e,r)=>Promise.resolve(e.hasErrors(l[r],...t)))):await Promise.resolve(e.map(e=>e.hasErrors(...t)));const o=n.reduceErrorsToPrint(r);if(o)throw new n.ValidationError(o)}return[e,...r.args,l]}async updateAll(e,...r){const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.create);n.debug(`Updating ${e.length} new ${this.class.name} in table ${s.Model.tableName(this.class)}`);const i=e.map(e=>this.adapter.prepare(e,!1,a));return(await this.adapter.updateAll(t.Metadata.constr(this.class),i.map(e=>e.id),e,...o)).map((e,t)=>this.adapter.revert(e,this.class,i[t].id,a.get("rebuildWithTransient")?i[t].transient:void 0,a))}async deleteAll(e,...r){const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.create);return n.debug(`deleting ${e.length} ${this.class.name} in table ${s.Model.tableName(this.class)}`),(await this.adapter.deleteAll(t.Metadata.constr(this.class),e,...o)).map((t,r)=>this.adapter.revert(t,this.class,e[r],void 0,a))}}let S=class{constructor(e,t){if(this.adapter=e,this.handler=t,!this.adapter)throw new n.InternalError("Missing adapter. Should not be possible")}async afterInsert(e){const t=e.entity.constructor,r=await this.adapter.context(n.OperationKeys.CREATE,{},t);this.handler(t,n.OperationKeys.CREATE,e.entityId,e.entity,r)}async afterRemove(e){const t=e.metadata.target,r=await this.adapter.context(n.OperationKeys.DELETE,{},t);this.handler(t,n.OperationKeys.DELETE,"",{},r)}async afterUpdate(e){const t=e.databaseEntity.constructor,r=await this.adapter.context(n.OperationKeys.UPDATE,{},t);return this.handler(t,n.OperationKeys.UPDATE,e.entity[s.Model.pk(t)],e.entity,r)}};S=r.__decorate([i.EventSubscriber(),r.__metadata("design:paramtypes",[a.Adapter,Function])],S);class b extends a.Dispatch{constructor(){super()}async notificationHandler(e,t,r,...a){const{log:n,ctxArgs:o}=this.logCtx(a,this.notificationHandler);try{await this.updateObservers(e,t,r,...o),n.verbose(`Observer refresh dispatched by ${t} for ${e}`),n.debug("pks: "+r)}catch(e){n.error("Failed to process notification: "+e)}}async initialize(){(async function(){if(!this.adapter)throw new n.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.adapter,this.notificationHandler.bind(this)))}catch(e){throw new n.InternalError(e)}}).call(this).then(()=>{this.log.info("Subscribed to TypeORM notifications")}).catch(e=>{throw new n.InternalError("Failed to subscribe to TypeORM notifications: "+e)})}async updateObservers(e,t,r,...a){if(this.adapter)return super.updateObservers(e,t,r,...a);this.log.verbose(`No adapter observed for dispatch; skipping observer update for ${e}:${t}`)}}function M(e,t,r){let n=0;const o=r.filter((r,a)=>(n=a,r.target===e&&r.propertyName===t));return o.length?(r.splice(n,1),Object.entries(o[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 R(e,t,r,a={},o="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 n.InternalError(`Multiple columns for ${t} found for given target: ${r.map(e=>e.propertyName).join(", ")}`);if(l.length>1)throw new n.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"!==o&&Object.defineProperty(d,"mode",{value:o,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:o,options:a})}function C(e,r){return(a,n)=>{let o;"string"==typeof e||"function"==typeof e?o=e:e&&(r=e,o=e.type),r||(r={});let s=Reflect&&Reflect.getMetadata?Reflect.getMetadata("design:type",a,n):void 0;!o&&s&&(o=s);const c=t.Metadata.allowedTypes(a.constructor,n)[0];if(c!==s&&(o=c,s=c),!r.type&&o&&(r.type=o),"hstore"!==r.type||r.hstoreType||(r.hstoreType=s===Object?"object":"string"),"function"==typeof e)i.getMetadataArgsStorage().embeddeds.push({target:a.constructor,propertyName:n,isArray:s===Array||!0===r.array,prefix:void 0!==r.prefix?r.prefix:void 0,type:e});else{if(!r.type)throw new i.ColumnTypeUndefinedError(a,n);!0===r.unique&&i.getMetadataArgsStorage().uniques.push({target:a.constructor,columns:[n]});const e=i.getMetadataArgsStorage();R(a.constructor,n,e.columns,r,"regular",e.relations,r.unique?e.indices:void 0),r.generated&&i.getMetadataArgsStorage().generations.push({target:a.constructor,propertyName:n,strategy:"string"==typeof r.generated?r.generated:"increment"})}}}class _{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]}}function L(e,t){const r={};let a;return e?("string"==typeof e&&(a=e),_.isObject(e)&&(a="increment",Object.assign(r,e))):a="increment",_.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 n=i.getMetadataArgsStorage();R(e.constructor,t,n.columns,r,"regular",n.relations),i.getMetadataArgsStorage().generations.push({target:e.constructor,propertyName:t,strategy:a})}}function I(e,t){const r=(_.isObject(e)?e:t)||{},a="string"==typeof e?e:r.name;return e=>{i.getMetadataArgsStorage().tables.push({target:e,name:a,type:"regular",orderBy:r.orderBy?r.orderBy:void 0,engine:r.engine?r.engine:void 0,database:r.database?r.database:void 0,schema:r.schema?r.schema:void 0,synchronize:r.synchronize,withoutRowid:r.withoutRowid,comment:r.comment?r.comment:void 0})}}async function v(e,t,r,a){try{const t=e.get("user");a[r]=t}catch(e){throw new n.InternalError("No User found in context. Please provide a user in the context")}}class D extends a.Adapter{getClient(){const e=a.Adapter.models(this.alias).map(t.Metadata.constr);return new i.DataSource(Object.assign({},this.config,{entities:e}))}constructor(e,t){super(e,l,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 T}Statement(){return new A(this)}Paginator(e,t,r){return new g(this,e,t,r)}async Sequence(e){return new w(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=O(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,t=!0,...r){const{log:a}=this.logCtx(r,this.raw);try{this.client.isInitialized||await this.client.initialize()}catch(e){throw this.parseError(e)}try{const{query:t,values:r}=e;return a.debug("executing query: "+("string"!=typeof t?t.getSql():t)),await this.client.query(t,r)}catch(e){throw this.parseError(e)}}prepare(e,r=!1,o){const i=super.prepare(e,o);i.record=Object.entries(i.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,!0,o).record:"string"==typeof r&&(r=""+r),e[t]=r),e),{});const c=s.Model.get(e.constructor.name);if(!c)throw new n.InternalError(`Model ${e.constructor.name} not found in registry`);const l=r?new(t.Metadata.constr(c)):new c;return r&&Object.defineProperty(l,"constructor",{configurable:!1,enumerable:!1,value:t.Metadata,writable:!1}),Object.entries(i.record).forEach(([e,t])=>l[e]=t),i.record=l,i}revert(e,t,r,a,o){const s=o.logger.for(this.revert);return a&&(s.verbose("re-adding transient properties: "+Object.keys(a).join(", ")),Object.entries(a).forEach(([r,a])=>{if(r in e)throw new n.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,...a){const o=this.client.getRepository(e);if(void 0!==t){const r=s.Model.pk(e);if(await o.findOne({where:{[r]:t}}))throw new n.ConflictError(`Record already exists in table ${s.Model.tableName(e)} with id: ${t}`)}try{return await o.save(r)}catch(e){throw this.parseError(e)}}async read(e,t,...r){let a;try{const r=this.client.getRepository(e),{nonEager:n,relations:o}=m(e),i=s.Model.pk(e),c={where:{[i]:t},relations:o,loadRelationIds:{relations:n}};a=await r.findOneOrFail(c)}catch(e){throw this.parseError(e)}return a}async update(e,t,r,...a){const{ctx:n}=this.logCtx(a,this.update);await this.read(e,t,n);try{return this.client.getRepository(e).save(r)}catch(e){throw this.parseError(e)}}async delete(e,t,...r){const{ctx:a}=this.logCtx(r,this.delete),n=await this.read(e,t,a);try{const r=this.client.getRepository(e);return await r.delete(t),n}catch(e){throw this.parseError(e)}}async createAll(e,t,r,...a){const{ctx:n}=this.logCtx(a,this.createAll);try{const t=this.client.getRepository(e),a=await t.insert(r);return this.readAll(e,a.identifiers.map(e=>e.id),n)}catch(e){throw this.parseError(e)}}async readAll(e,t,...r){if(!t.length)return[];try{const r=s.Model.pk(e);return this.client.getRepository(e).findBy({[r]:i.In(t)})}catch(e){throw this.parseError(e)}}async updateAll(e,t,r,...a){const n=[],o=s.Model.pk(e);for(const t of r)n.push(await this.update(e,t[o],t,...a));return n}async deleteAll(e,t,...r){if(!t.length)return[];const{ctx:a}=this.logCtx(r,this.deleteAll);try{const r=this.client.getRepository(e),n=await this.readAll(e,t,a),o=s.Model.pk(e);return await r.delete({[o]:i.In(t)}),n}catch(e){throw this.parseError(e)}}parseError(e,t){return D.parseError(e,t)}isReserved(e){return!!e.match(c)}static parseError(e,t){if(e instanceof n.BaseError)return e;const r="string"==typeof e?e:e.message;if(r.match(/duplicate key|already exists/g))return new n.ConflictError(r);if(r.match(/does not exist|not found|Could not find/g))return new n.NotFoundError(r);switch(r.toString()){case"23505":case"23503":case"42P07":return new n.ConflictError(t);case"42P01":case"42703":return new n.NotFoundError(t);case"42P16":return new p(e);default:return r.toString().match(/ECONNREFUSED/g)?new a.ConnectionError(e):new n.InternalError(e)}}static async connect(e){const t=new i.DataSource(e);return t.isInitialized||await t.initialize(),t}static async createDatabase(e,t){const r=o.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=o.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,r,a=!1){switch(e.toLowerCase()){case"string":return r?"TEXT PRIMARY KEY":a?"TEXT":"VARCHAR";case"number":return r?"SERIAL PRIMARY KEY":"INTEGER";case"boolean":return"BOOLEAN";case"date":return"TIMESTAMP";case"bigint":return r?"BIGINT PRIMARY KEY":"BIGINT";default:{const r=s.Model.get(e);if(r)return{model:r,pkType:t.Metadata.type(r,s.Model.pk(r))};throw new n.InternalError("Unsupported type: "+e)}}}static parseValidationToPostgres(e,t,r,a,o){switch(a){case s.ValidationKeys.REQUIRED:return"NOT NULL";case s.ValidationKeys.MAX_LENGTH:return r||!o||"string"!==t.toLowerCase()?"":`(${o[s.ValidationKeys.MAX_LENGTH]})`;case s.ValidationKeys.MIN_LENGTH:return`CONSTRAINT ${e}_min_length_check CHECK (LENGTH(${e}) >= ${o[s.ValidationKeys.MIN_LENGTH]})`;case s.ValidationKeys.PATTERN:case s.ValidationKeys.URL:case s.ValidationKeys.EMAIL:return`CONSTRAINT ${e}_pattern_check CHECK (${e} ~ '${f(o[s.ValidationKeys.PATTERN])}')`;case s.ValidationKeys.TYPE:case s.ValidationKeys.DATE:return"";case s.ValidationKeys.MIN:return`CONSTRAINT ${e}_${a}_check CHECK (${e} >= ${o[s.ValidationKeys.MIN]})`;case s.ValidationKeys.MAX:return`CONSTRAINT ${e}_${a}_check CHECK (${e} <= ${o[s.ValidationKeys.MAX]})`;case s.ValidationKeys.PASSWORD:default:throw new n.InternalError("Unsupported type: "+a)}}static parseRelationsToPostgres(e,t,r,o,i){const c=s.Model.tableName(t),{cascade:l}=i,d=`${l.update?" ON UPDATE CASCADE":""}${l.delete?" ON DELETE CASCADE":""}`;if("relations"+o===a.PersistenceKeys.ONE_TO_ONE)return`FOREIGN KEY (${e}) REFERENCES ${c}(${r})${d}`;throw new n.InternalError("Unsupported operation: "+o)}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(),t.Decoration.flavouredAs(l).for(a.PersistenceKeys.TABLE).extend({decorator:e=>r=>{const a=t.Metadata.constr(r),n=i.getMetadataArgsStorage().tables.find(e=>e.target===a);return n?(e&&(n.name=e),r):(I(e||(()=>{try{return s.Model.tableName(a)}catch{return a?.name}})())(a),r)}}).apply(),t.Decoration.flavouredAs(l).for(n.DBKeys.ID).define({decorator:e=>(r,o)=>{const c=t.Metadata.constr(r.constructor);i.getMetadataArgsStorage().tables.find(e=>e.target===c)||I((()=>{try{return s.Model.tableName(c)}catch{return c?.name}})()||c?.name)(c),t.prop()(r,o);const l=[s.required(),n.readonly(),t.propMetadata(t.Metadata.key(n.DBKeys.ID,o),e)];let d=e.type||t.Metadata.type(r.constructor,o);switch(d){case String.name||String.name.toLowerCase():case String:e.generated=!1;break;case Number.name||String.name.toLowerCase():case BigInt.name||BigInt.name.toLowerCase():case BigInt:case Number:case"uuid":case"serial":e.generated=!0;break;case!d:throw new n.InternalError(`Missing type information for property ${o} of ${r.name}`);default:throw Error("Unsupported type")}if(void 0===e.generated&&(e.generated=!0),e.generated){const t={name:e.name||s.Model.sequenceName(r.constructor,"pk")};"serial"===e.type||"uuid"===e.type?l.push(L("uuid"===e.type?e.type:"identity",t)):l.push(L(t)),l.push(a.noValidateOnCreate())}else{switch("function"==typeof d&&d?.name?d.name:d){case Number.name||Number.name.toLowerCase():d="numeric";break;case"serial":case"uuid":break;case String.name||String.name.toLowerCase():d="varchar";break;case BigInt.name||BigInt.name.toLowerCase():d="bigint";break;default:throw new n.InternalError("Unsupported type: "+d)}l.push(((e,t)=>(r,a)=>{let n;e===String||e===Boolean||e===Number?n=e:t=Object.assign({},e),t||(t={});const o=Reflect&&Reflect.getMetadata?Reflect.getMetadata("design:type",r,a):void 0;if(!n&&o&&(n=o),!t.type&&n&&(t.type=n),!t.type)throw new i.ColumnTypeUndefinedError(r,a);if(t.nullable)throw new i.PrimaryColumnCannotBeNullableError(r,a);t.primary=!0;const s=i.getMetadataArgsStorage();R(r.constructor,a,s.columns,t,"regular",s.relations),t.generated&&i.getMetadataArgsStorage().generations.push({target:r.constructor,propertyName:a,strategy:"string"==typeof t.generated?t.generated:"increment"})})({type:d,unique:!0}))}return e.generated&&l.push(a.generated()),t.apply(...l)(r,o)}}).apply(),t.Decoration.flavouredAs(l).for(a.PersistenceKeys.COLUMN).extend({decorator:e=>(t,r)=>{const a={};let n;e&&(a.name=e);try{n=s.Model.pk(t.constructor)}catch(e){n=void 0}return n!==r&&(a.nullable=!0),C(a)(t,r)}}).apply(),t.Decoration.flavouredAs(l).for(a.PersistenceKeys.UNIQUE).define(t.propMetadata(a.PersistenceKeys.UNIQUE,{})).extend(C({unique:!0})).apply();const e=s.Validation.key(s.ValidationKeys.REQUIRED);t.Decoration.flavouredAs(l).for(e).extend(C({nullable:!1})).apply(),t.Decoration.flavouredAs(l).for(n.DBKeys.VERSION).define(s.type(Number),i.VersionColumn(),a.noValidateOnCreate()).apply();const r=n.DBKeys.TIMESTAMP,o=(c=n.DBKeys.TIMESTAMP,n.UpdateValidationKeys.REFLECT+c);var c;t.Decoration.flavouredAs(l).for(r).define({decorator:(e,r)=>{const i=[s.date(r,n.DEFAULT_ERROR_MESSAGES.TIMESTAMP.DATE),s.required(n.DEFAULT_ERROR_MESSAGES.TIMESTAMP.REQUIRED),t.propMetadata(s.Validation.key(n.DBKeys.TIMESTAMP),{operation:e,format:r}),a.noValidateOnCreate()];return-1!==e.indexOf(n.OperationKeys.UPDATE)?i.push(t.propMetadata(o,{message:n.DEFAULT_ERROR_MESSAGES.TIMESTAMP.INVALID}),a.noValidateOnCreateUpdate()):i.push(n.readonly()),t.apply(...i)}}).extend({decorator:(e,t)=>(t,r)=>-1!==e.indexOf(n.OperationKeys.UPDATE)?((e,t)=>{const r=i.getMetadataArgsStorage();R(e.constructor,t,r.columns,{},"updateDate",r.relations)})(t,r):((e,t)=>{const r=i.getMetadataArgsStorage();R(e.constructor,t,r.columns,{},"createDate",r.relations)})(t,r)}).apply(),t.Decoration.flavouredAs(l).for(a.PersistenceKeys.ONE_TO_ONE).define({decorator:(e,r,o,c,l)=>{const d={class:e,cascade:r,populate:o};c&&(d.joinTable=c),l&&(d.name=l);const p={cascade:r.update===a.Cascade.CASCADE||r.delete===a.Cascade.CASCADE,onDelete:r.delete?"CASCADE":"DEFAULT",onUpdate:r.update?"CASCADE":"DEFAULT",nullable:!0,eager:o};return t.apply(t.prop(),a.relation(a.PersistenceKeys.ONE_TO_ONE,d),s.type([e,String,Number,BigInt]),t.propMetadata(a.PersistenceKeys.ONE_TO_ONE,d),((e,t,r)=>{let a;return _.isObject(t)?r=t:a=t,(t,n)=>{r||(r={});let o=!(!r||!0!==r.lazy);if(!o&&Reflect&&Reflect.getMetadata){const e=Reflect.getMetadata("design:type",t,n);e&&"string"==typeof e.name&&"promise"===e.name.toLowerCase()&&(o=!0)}const s=i.getMetadataArgsStorage();r=Object.assign(r,M(t.constructor,n,s.columns)),s.relations.push({target:t.constructor,propertyName:n,isLazy:o,relationType:"one-to-one",type:e,inverseSideProperty:a,options:r})}})(()=>{"function"!=typeof e||e.name||(e=e());const r=t.Metadata.constr(e);if(r===e)throw new n.InternalError("Original Model not found in constructor");return r},t=>("function"!=typeof e||e.name||(e=e()),t[s.Model.pk(e)]),p),i.JoinColumn(c||d.name?{foreignKeyConstraintName:d.name}:void 0))}}).apply(),t.Decoration.flavouredAs(l).for(a.PersistenceKeys.ONE_TO_MANY).define({decorator:(e,r,o,c,l)=>{const d={class:e,cascade:r,populate:o};c&&(d.joinTable=c),l&&(d.name=l);const p=[t.prop(),a.relation(a.PersistenceKeys.ONE_TO_MANY,d),s.list(e),t.propMetadata(a.PersistenceKeys.ONE_TO_MANY,d),(c,l)=>{const d={cascade:r.update===a.Cascade.CASCADE||r.delete===a.Cascade.CASCADE,onDelete:r.delete?"CASCADE":"DEFAULT",onUpdate:r.update?"CASCADE":"DEFAULT",nullable:!0,eager:o};return(p=()=>{"function"!=typeof e||e.name||(e=e());const r=t.Metadata.constr(e);if(r===e)throw new n.InternalError("Original Model not found in constructor");return r},u=r=>{"function"!=typeof e||e.name||(e=e());const o=t.Metadata.relations(e);if(!o)throw new n.InternalError("No relations found on model "+e.name);const i=o.find(r=>{const n=s.Model.relations(e,r);if(n.key!==a.PersistenceKeys.MANY_TO_ONE)return!1;const o="function"!=typeof n.class||n.class.name?n.class:n.class(),i=t.Metadata.constr(c.constructor);return o.name===i.name});if(!i)throw new n.InternalError(`Cross relation not found. Did you use @manyToOne on the ${e.name}?`);return r[i]},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=i.getMetadataArgsStorage();y=Object.assign(y,M(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})})(c,l);var p,u,y}];return t.apply(...p)}}).apply(),t.Decoration.flavouredAs(l).for(a.PersistenceKeys.MANY_TO_ONE).define({decorator:(e,r,o,c,l)=>{const d={class:e,cascade:r,populate:o};c&&(d.joinTable=c),l&&(d.name=l);const p={cascade:r.update===a.Cascade.CASCADE||r.delete===a.Cascade.CASCADE,onDelete:r.delete?"CASCADE":"NO ACTION",onUpdate:r.update?"CASCADE":"NO ACTION",nullable:!0,eager:o};return t.apply(a.relation(a.PersistenceKeys.MANY_TO_ONE,d),s.type([e,String,Number,BigInt]),t.propMetadata(a.PersistenceKeys.MANY_TO_ONE,d),(r,o)=>((e,t,r)=>{let a;return _.isObject(t)?r=t:a=t,(t,n)=>{r||(r={});let o=r&&!0===r.lazy;if(!o&&Reflect&&Reflect.getMetadata){const e=Reflect.getMetadata("design:type",t,n);e&&"string"==typeof e.name&&"promise"===e.name.toLowerCase()&&(o=!0)}const s=i.getMetadataArgsStorage();r=Object.assign(r,M(t.constructor,n,s.columns)),s.relations.push({target:t.constructor,propertyName:n,relationType:"many-to-one",isLazy:o,type:e,inverseSideProperty:a,options:r})}})(()=>{"function"!=typeof e||e.name||(e=e());const r=t.Metadata.constr(e);if(r===e)throw new n.InternalError("Original Model not found in constructor");return r},n=>{"function"!=typeof e||e.name||(e=e());const o=t.Metadata.relations(e);let i=s.Model.pk(e);return o?(i=o.find(n=>{const o=s.Model.relations(e,n);if(o.key!==a.PersistenceKeys.ONE_TO_MANY)return!1;const i="function"!=typeof o.class||o.class.name?o.class:o.class(),c=t.Metadata.constr(r.constructor);return i.name===c.name})||i,n[i]):n[i]},p)(r,o))}}).apply(),t.Decoration.flavouredAs(l).for(a.PersistenceKeys.MANY_TO_MANY).define({decorator:(e,r,o,c,l)=>{const d={class:e,cascade:r,populate:o};c&&(d.joinTable=c),l&&(d.name=l);const p={cascade:r.update===a.Cascade.CASCADE||r.delete===a.Cascade.CASCADE,onDelete:r.delete?"CASCADE":"DEFAULT",onUpdate:r.update?"CASCADE":"DEFAULT",nullable:!0,eager:o};return t.apply(a.relation(a.PersistenceKeys.MANY_TO_MANY,d),s.list(e),t.propMetadata(a.PersistenceKeys.MANY_TO_MANY,d),((e,t,r)=>{let a;return _.isObject(t)?r=t:a=t,(t,n)=>{r||(r={});let o=!0===r.lazy;if(!o&&Reflect&&Reflect.getMetadata){const e=Reflect.getMetadata("design:type",t,n);e&&"string"==typeof e.name&&"promise"===e.name.toLowerCase()&&(o=!0)}const s=i.getMetadataArgsStorage();r=Object.assign(r,M(t.constructor,n,s.columns)),s.relations.push({target:t.constructor,propertyName:n,relationType:"many-to-many",isLazy:o,type:e,inverseSideProperty:a,options:r})}})(()=>{"function"!=typeof e||e.name||(e=e());const r=t.Metadata.constr(e);if(r===e)throw new n.InternalError("Original Model not found in constructor");return r},t=>("function"!=typeof e||e.name||(e=e()),t[s.Model.pk(e)]),p),i.JoinTable(c))}}).apply(),t.Decoration.flavouredAs(l).for(a.PersistenceKeys.INDEX).extend({decorator:(e,t,r)=>(r,n)=>("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?i.Index([n,...t])(r):i.Index()(r,n))}).apply(),t.Decoration.flavouredAs(l).for(a.PersistenceKeys.CREATED_BY).define(n.onCreate(v,{}),s.required(),t.propMetadata(a.PersistenceKeys.CREATED_BY,{}),a.noValidateOnCreate()).apply(),t.Decoration.flavouredAs(l).for(a.PersistenceKeys.UPDATED_BY).define(n.onCreateUpdate(v,{}),s.required(),t.propMetadata(a.PersistenceKeys.UPDATED_BY,{}),a.noValidateOnCreateUpdate()).apply()}}r.__decorate([o.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[]),r.__metadata("design:returntype",b)],D.prototype,"Dispatch",null),r.__decorate([o.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[]),r.__metadata("design:returntype",Object)],D.prototype,"repository",null),r.__decorate([o.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[]),r.__metadata("design:returntype",A)],D.prototype,"Statement",null),r.__decorate([o.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Object]),r.__metadata("design:returntype",Promise)],D.prototype,"Sequence",null),r.__decorate([o.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Object]),r.__metadata("design:returntype",Promise)],D.prototype,"index",null),D.decoration(),a.Adapter.setCurrent(l);const P="##VERSION##",x="##PACKAGE##";t.Metadata.registerLibrary(x,P),e.IndexError=p,e.PACKAGE_NAME=x,e.TypeORMAdapter=D,e.TypeORMConst={NULL:"NULL"},e.TypeORMDispatch=b,e.TypeORMFlavour=l,e.TypeORMGroupOperator=h,e.TypeORMKeys=d,e.TypeORMOperator=y,e.TypeORMPaginator=g,e.TypeORMQueryLimit=250,e.TypeORMRepository=T,e.TypeORMSequence=w,e.TypeORMStatement=A,e.VERSION=P,e.convertJsRegexToPostgres=f,e.enforceDbDecoratorsRecursive=N,e.generateIndexes=O,e.reservedAttributes=c,e.splitEagerRelations=m,e.translateOperators=E},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("tslib"),require("@decaf-ts/core"),require("@decaf-ts/db-decorators"),require("@decaf-ts/logging"),require("@decaf-ts/decorator-validation"),require("typeorm")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","tslib","@decaf-ts/core","@decaf-ts/db-decorators","@decaf-ts/logging","@decaf-ts/decorator-validation","typeorm"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-typeorm"]={},e.decafTsDecoration,e.tslib,e.decafTsCore,e.decafTsDbDecorators,e.decafTsLogging,e.decafTsDecoratorValidation,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/overrides/PrimaryGeneratedColumn.ts","../src/overrides/Entity.ts","../src/TypeORMAdapter.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],"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","Metadata","constr","clazz","query","size","prepare","rawStatement","page","args","ctxArgs","ctx","isPreparedStatement","pagePrepared","statement","opts","Object","assign","skip","current","take","result","findAndCount","Math","ceil","PagingError","pkDef","Model","pk","results","map","row","revert","undefined","_currentPage","translateOperators","operator","operators","el","keys","find","k","QueryError","convertJsRegexToPostgres","jsRegex","rxp","RegExp","match","exec","p","source","splitEagerRelations","m","cache","rels","relations","reduce","accum","attr","decorator","eager","populate","class","isClass","InternalError","push","nonEager","includes","length","nonEagerRelations","ne","TypeORMStatement","Statement","build","log","for","tableName","fromSelector","q","createQueryBuilder","orderByArgs","selectSelector","select","s","whereCondition","parseCondition","orderBySelector","toUpperCase","OrderDirection","ASC","orderBy","limitSelector","limit","debug","offsetSelector","paginate","transformedQuery","where","parseConditionForPagination","order","toString","e","raw","rawInput","setFindOptions","loadEagerRelations","loadRelationIds","getMany","condition","counter","conditionalOp","qb","attr1","comparison","GroupOperator","Operator","indexOf","sqlOperator","attrRef","queryStr","values","andWhere","orWhere","Error","parse","TypeORMSequence","Sequence","options","Context","OperationKeys","READ","context","rows","Array","isArray","candidate","parseError","increment","type","incrementBy","startWith","NotFoundError","quoted","replace","next","argz","contextArgs","UPDATE","range","i","generateIndexes","models","direction","compositions","separator","DefaultSeparator","n","join","generateIndexName","indexes","forEach","ind","entries","key","value","PersistenceKeys","generate","async","enforceDbDecoratorsRecursive","model","operation","prefix","oldModel","innerLoop","r","Repository","forModel","CREATE","enforceDBDecorators","isPropertyModel","validationFor","ValidationKeys","LIST","Promise","all","TypeORMRepository","_overrides","ignoreValidation","ignoreHandlers","allowRawStatements","forcePrepareSimpleQueries","forcePrepareComplexQueries","queryBuilder","nativeRepo","dataSource","createPrefix","get","ignoreValidate","ON","errors","resolve","hasErrors","ValidationError","create","logCtx","record","id","transient","read","updatePrefix","merge","update","delete","createAllPrefix","ignoredProps","errorMessages","reduceErrorsToPrint","createAll","prepared","ids","records","readAll","updateAllPrefix","oldModels","updateAll","u","deleteAll","TypeORMEventSubscriber","handler","afterInsert","event","entity","entityId","afterRemove","metadata","target","DELETE","afterUpdate","databaseEntity","__decorate","EventSubscriber","Adapter","Function","TypeORMDispatch","Dispatch","notificationHandler","table","updateObservers","verbose","error","initialize","isInitialized","subscribers","bind","call","then","info","catch","extractForRelations","property","columns","index","cols","filter","c","propertyName","splice","val","TYPE","UnsupportedError","aggregateOrNewColumn","mode","column","defineProperty","writable","enumerable","configurable","Column","typeOrOptions","object","reflectMetadataType","Reflect","getMetadata","primaryType","allowedTypes","hstoreType","getMetadataArgsStorage","embeddeds","array","ColumnTypeUndefinedError","unique","uniques","indices","generated","generations","strategy","ObjectUtils","isObject","isObjectWithName","sources","prop","getOwnPropertyNames","PrimaryGeneratedColumn","strategyOrOptions","maybeOptions","Number","primary","Entity","nameOrOptions","tables","engine","database","schema","synchronize","withoutRowid","comment","createdByOnTypeORMCreateUpdate","data","user","TypeORMAdapter","getClient","entities","alias","DataSource","config","shutdown","_client","destroy","flags","username","repository","ds","docsOnly","getSql","child","METADATA","isReserved","Date","getTime","isModel","obj","logger","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","toLowerCase","pkType","parseValidationToPostgres","REQUIRED","MAX_LENGTH","MIN_LENGTH","PATTERN","URL","EMAIL","DATE","MIN","MAX","PASSWORD","parseRelationsToPostgres","cascade","cascadeStr","ONE_TO_ONE","getCurrentUser","current_user","decoration","Decoration","flavouredAs","extend","ctor","existing","apply","DBKeys","define","original","propertyKey","decorators","required","readonly","propMetadata","String","BigInt","conf","sequenceName","noValidateOnCreate","Boolean","nullable","PrimaryColumnCannotBeNullableError","PrimaryColumn","COLUMN","UNIQUE","requiredKey","Validation","VersionColumn","timestampDecorationKey","TIMESTAMP","timestampUpdateKey","UpdateValidationKeys","REFLECT","format","date","DB_DEFAULT_ERROR_MESSAGES","INVALID","noValidateOnCreateUpdate","ops","UpdateDateColumn","CreateDateColumn","joinColumnOpts","fk","joinTable","ormMeta","Cascade","CASCADE","onDelete","onUpdate","relation","typeFunctionOrTarget","inverseSideOrOptions","inverseSideProperty","isLazy","lazy","reflectedType","meta","relationType","OneToOne","JoinColumn","foreignKeyConstraintName","ONE_TO_MANY","joinTableOpts","list","inverseSide","crossRelationKey","MANY_TO_ONE","ref","ManyToOne","MANY_TO_MANY","ManyToMany","JoinTable","directions","d","DSC","Index","CREATED_BY","onCreate","UPDATED_BY","onCreateUpdate","final","prototype","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/overrides/PrimaryGeneratedColumn.ts","../src/overrides/Entity.ts","../src/TypeORMAdapter.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],"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","Metadata","constr","clazz","query","size","prepare","rawStatement","page","args","ctxArgs","ctx","isPreparedStatement","pagePrepared","statement","opts","Object","assign","skip","current","take","result","findAndCount","Math","ceil","PagingError","pkDef","Model","pk","results","map","row","revert","undefined","_currentPage","translateOperators","operator","operators","el","keys","find","k","QueryError","convertJsRegexToPostgres","jsRegex","rxp","RegExp","match","exec","p","source","splitEagerRelations","m","cache","rels","relations","reduce","accum","attr","decorator","eager","populate","class","isClass","InternalError","push","nonEager","includes","length","nonEagerRelations","ne","TypeORMStatement","Statement","build","log","for","tableName","fromSelector","q","createQueryBuilder","orderByArgs","selectSelector","select","s","whereCondition","parseCondition","orderBySelector","toUpperCase","OrderDirection","ASC","orderBy","limitSelector","limit","debug","offsetSelector","paginate","transformedQuery","where","parseConditionForPagination","order","toString","e","raw","rawInput","setFindOptions","loadEagerRelations","loadRelationIds","getMany","condition","counter","conditionalOp","qb","attr1","comparison","GroupOperator","Operator","indexOf","sqlOperator","attrRef","queryStr","values","andWhere","orWhere","Error","parse","TypeORMSequence","Sequence","options","Context","OperationKeys","READ","context","rows","Array","isArray","candidate","parseError","increment","type","incrementBy","startWith","NotFoundError","quoted","replace","next","argz","contextArgs","UPDATE","range","i","generateIndexes","models","direction","compositions","separator","DefaultSeparator","n","join","generateIndexName","indexes","forEach","ind","entries","key","value","PersistenceKeys","generate","async","enforceDbDecoratorsRecursive","model","operation","prefix","oldModel","innerLoop","r","Repository","forModel","CREATE","enforceDBDecorators","isPropertyModel","validationFor","ValidationKeys","LIST","Promise","all","TypeORMRepository","_overrides","ignoreValidation","ignoreHandlers","allowRawStatements","forcePrepareSimpleQueries","forcePrepareComplexQueries","queryBuilder","nativeRepo","dataSource","createPrefix","get","ignoreValidate","ON","errors","resolve","hasErrors","ValidationError","create","logCtx","record","id","transient","read","updatePrefix","merge","update","delete","createAllPrefix","ignoredProps","errorMessages","reduceErrorsToPrint","createAll","prepared","ids","records","readAll","updateAllPrefix","oldModels","modelsValidation","updateAll","u","deleteAll","TypeORMEventSubscriber","handler","afterInsert","event","entity","entityId","afterRemove","metadata","target","DELETE","afterUpdate","databaseEntity","__decorate","EventSubscriber","Adapter","Function","TypeORMDispatch","Dispatch","notificationHandler","table","updateObservers","verbose","error","initialize","isInitialized","subscribers","bind","call","then","info","catch","extractForRelations","property","columns","index","cols","filter","c","propertyName","splice","val","TYPE","UnsupportedError","aggregateOrNewColumn","mode","column","defineProperty","writable","enumerable","configurable","Column","typeOrOptions","object","reflectMetadataType","Reflect","getMetadata","primaryType","allowedTypes","hstoreType","getMetadataArgsStorage","embeddeds","array","ColumnTypeUndefinedError","unique","uniques","indices","generated","generations","strategy","ObjectUtils","isObject","isObjectWithName","sources","prop","getOwnPropertyNames","PrimaryGeneratedColumn","strategyOrOptions","maybeOptions","Number","primary","Entity","nameOrOptions","tables","engine","database","schema","synchronize","withoutRowid","comment","createdByOnTypeORMCreateUpdate","data","user","TypeORMAdapter","getClient","entities","alias","DataSource","config","shutdown","_client","destroy","flags","username","repository","ds","docsOnly","getSql","child","METADATA","isReserved","Date","getTime","isModel","obj","logger","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","toLowerCase","pkType","parseValidationToPostgres","REQUIRED","MAX_LENGTH","MIN_LENGTH","PATTERN","URL","EMAIL","DATE","MIN","MAX","PASSWORD","parseRelationsToPostgres","cascade","cascadeStr","ONE_TO_ONE","getCurrentUser","current_user","decoration","Decoration","flavouredAs","extend","ctor","existing","apply","DBKeys","define","original","propertyKey","decorators","required","readonly","propMetadata","String","BigInt","conf","sequenceName","noValidateOnCreate","Boolean","nullable","PrimaryColumnCannotBeNullableError","PrimaryColumn","COLUMN","UNIQUE","requiredKey","Validation","VersionColumn","timestampDecorationKey","TIMESTAMP","timestampUpdateKey","UpdateValidationKeys","REFLECT","format","date","DB_DEFAULT_ERROR_MESSAGES","INVALID","noValidateOnCreateUpdate","ops","UpdateDateColumn","CreateDateColumn","joinColumnOpts","fk","joinTable","ormMeta","Cascade","CASCADE","onDelete","onUpdate","relation","typeFunctionOrTarget","inverseSideOrOptions","inverseSideProperty","isLazy","lazy","reflectedType","meta","relationType","OneToOne","JoinColumn","foreignKeyConstraintName","ONE_TO_MANY","joinTableOpts","list","inverseSide","crossRelationKey","MANY_TO_ONE","ref","ManyToOne","MANY_TO_MANY","ManyToMany","JoinTable","directions","d","DSC","Index","CREATED_BY","onCreate","UPDATED_BY","onCreateUpdate","final","prototype","setCurrent","PACKAGE_NAME","registerLibrary","NULL"],"mappings":"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"}
|