@decaf-ts/for-typeorm 0.2.21 → 0.2.23
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/TypeORMAdapter.cjs +0 -13
- package/lib/TypeORMAdapter.d.ts +0 -1
- package/lib/TypeORMAdapter.js.map +1 -1
- package/lib/esm/TypeORMAdapter.d.ts +0 -1
- package/lib/esm/TypeORMAdapter.js +0 -12
- package/lib/esm/TypeORMAdapter.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/package.json +1 -1
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: 12.
|
|
37
|
+
Minimal size: 12.4 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 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{ctx:r}=this.logCtx(t,this.raw);if(!r.get("allowRawStatements"))throw new a.UnsupportedError("Raw statements are not allowed in the current configuration");const{nonEager:n}=m(this.fromSelector);return e.query=e.query.setFindOptions({loadEagerRelations:!0,loadRelationIds:{relations:n}}),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{ctx:t}=(await this.logCtx(e,n.OperationKeys.READ,!0)).for(this.current),{name:r,startWith:a}=this.options;try{if(!r)throw new n.InternalError("Sequence name is required to read current");const e=`"${r.replace(/"/g,'""')}"`,a=await this.adapter.raw({query:`SELECT last_value, is_called FROM ${e};`,values:[]},!0,t);if(!Array.isArray(a)||0===a.length)throw new n.InternalError("Failed to read current value for "+r);const o=a[0];return this.parse(o.last_value)}catch(e){if(e instanceof n.NotFoundError){if(void 0===a)throw new n.InternalError("Starting value is not defined for a non existing sequence");return this.parse(a)}throw this.adapter.parseError(e)}}async increment(e,t){const{type:r,incrementBy:a,name:o,startWith:s,minValue:i,maxValue:c,cycle:l}=this.options;if("Number"!==r&&"BigInt"!==r)throw new n.InternalError(`Cannot increment sequence of type ${r} with ${e}`);if(!o)throw new n.InternalError("Cannot increment sequence without a name: "+o);try{const s=e??a;if(s%a!=0)throw new n.InternalError("Value to increment does not consider the incrementBy setting: "+a);const i=await this.current(t),c="BigInt"===r?this.parse(i)+BigInt(s):this.parse(i)+s;return await this.adapter.raw({query:"SELECT setval($1::regclass, $2, true) AS nextval;",values:[o,c]},!0,t),c}catch(d){if(!(d instanceof n.NotFoundError))throw d;const p=`"${o.replace(/"/g,'""')}"`,u="number"==typeof s?s:a,y="number"==typeof i?" MINVALUE "+i:"number"==typeof s&&1>s?" MINVALUE "+s:"",h="number"==typeof c?" MAXVALUE "+c:"",g=l?" CYCLE":" NO CYCLE";await this.adapter.raw({query:`CREATE SEQUENCE IF NOT EXISTS ${p} START WITH ${u} INCREMENT BY ${a}${y}${h}${g};`,values:[]},!0,t);const E=e??a;if(E%a!=0)throw new n.InternalError("Value to increment does not consider the incrementBy setting: "+a);const f="number"==typeof s?s:this.parse(s),m="BigInt"===r?this.parse(f)+BigInt(E):this.parse(f)+E;return await this.adapter.raw({query:"SELECT setval($1::regclass, $2, true) AS nextval;",values:[o,m]},!0,t),m}}async next(...e){const{ctx:t}=(await this.logCtx(e,n.OperationKeys.UPDATE,!0)).for(this.next);return this.increment(void 0,t)}async range(e,...t){const{ctx:r}=(await this.logCtx(t,n.OperationKeys.UPDATE,!0)).for(this.range),a=await this.current(r),o=this.parse(this.options.incrementBy),s=await this.increment(this.parse(e)*o,r),i=[];for(let t=1;e>=t;t++)i.push(a+o*this.parse(t));if(i[i.length-1]!==s)throw new n.InternalError("Miscalculation of range");return i}}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{ctx:r,ctxArgs:a,log:o}=(await this.logCtx(t,n.OperationKeys.CREATE,!0)).for(this.createPrefix),s=r.get("ignoreHandlers"),i=r.get("ignoreValidation");if(o.silly(`handlerSetting: ${s}, validationSetting: ${i}`),e=new this.class(e),s||await N(this,r,e,n.OperationKeys.CREATE,n.OperationKeys.ON),!i){const t=r.get("ignoredValidationProperties")||[];o.silly("ignored validation properties: "+t);const a=await Promise.resolve(e.hasErrors(...t));if(a)throw new n.ValidationError(a.toString())}return[e,...a]}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 createSuffix(e,t){return t.get("ignoreHandlers")||await N(this,t,e,n.OperationKeys.CREATE,n.OperationKeys.AFTER),e}async readPrefix(e,...t){const{ctx:r,ctxArgs:a,log:o}=(await this.logCtx(t,n.OperationKeys.READ,!0)).for(this.readPrefix),s=r.get("ignoreHandlers");o.silly("handlerSetting: "+s);const i=new this.class;return i[this.pk]=e,s||await N(this,r,i,n.OperationKeys.READ,n.OperationKeys.ON),[e,...a]}async read(e,...r){const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.read);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 readSuffix(e,t){return t.get("ignoreHandlers")||await N(this,t,e,n.OperationKeys.READ,n.OperationKeys.AFTER),e}async updatePrefix(e,...t){const{ctx:r,ctxArgs:a,log:o}=(await this.logCtx(t,n.OperationKeys.UPDATE,!0)).for(this.updatePrefix),i=r.get("ignoreHandlers"),c=r.get("ignoreValidation");o.silly(`handlerSetting: ${i}, validationSetting: ${c}`);const l=e[this.pk];if(!l)throw new n.InternalError("No value for the Id is defined under the property "+this.pk);let d;if(r.get("applyUpdateValidation")&&(d=await this.read(l,r),r.get("mergeForUpdate")&&(e=s.Model.merge(d,e,this.class))),i||await N(this,r,e,n.OperationKeys.UPDATE,n.OperationKeys.ON,d),!c){const t=r.get("ignoredValidationProperties")||[];o.silly("ignored validation properties: "+t);const a=await Promise.resolve(e.hasErrors(d,...s.Model.relations(this.class),...t));if(a)throw new n.ValidationError(a.toString())}return[e,...a,d]}async update(e,...r){const{ctxArgs:a,log:n,ctx:o}=this.logCtx(r,this.update);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 updateSuffix(e,t,r){return r.get("ignoreHandlers")||await N(this,r,e,n.OperationKeys.UPDATE,n.OperationKeys.AFTER,t),e}async delete(e,...r){const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.delete);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 deleteSuffix(e,t){return t.get("ignoreHandlers")||await N(this,t,e,n.OperationKeys.DELETE,n.OperationKeys.AFTER),e}async createAllPrefix(e,...t){const{ctx:r,ctxArgs:a,log:o}=(await this.logCtx(t,n.BulkCrudOperationKeys.CREATE_ALL,!0)).for(this.createAllPrefix),i=r.get("ignoreHandlers"),c=r.get("ignoreValidation");if(o.silly(`handlerSetting: ${i}, validationSetting: ${c}`),!e.length)return[e,...a];const l=s.Model.sequenceFor(e[0]);let d=[];s.Model.generatedBySequence(this.class)?(l.name||(l.name=s.Model.sequenceName(e[0],"pk")),d=await(await this.adapter.Sequence(l)).range(e.length,...a)):s.Model.generated(this.class,this.pk)||(d=e.map(((e,t)=>{if(void 0===e[this.pk])throw new n.InternalError("Primary key is not defined for model in position "+t);return e[this.pk]}))),e=await Promise.all(e.map((async(e,t)=>(e=new this.class(e),l.type&&(e[this.pk]="String"!==l.type||l.generated?d[t]:""+e[this.pk]),i||await N(this,r,e,n.OperationKeys.CREATE,n.OperationKeys.ON),e))));const p=r.timestamp||new Date;if(e=e.map((e=>("createdAt"in e&&Object.assign(e,{createdAt:p}),"updatedAt"in e&&Object.assign(e,{updatedAt:p}),e))),!c){const t=r.get("ignoredValidationProperties")||[];o.silly("ignored validation properties: "+t);const a=await Promise.all(e.map((e=>Promise.resolve(e.hasErrors(...t))))),s=n.reduceErrorsToPrint(a);if(s)throw new n.ValidationError(s)}return[e,...a]}async createAll(e,...r){if(!e.length)return e;const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.createAll);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 createAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map((e=>N(this,t,e,n.OperationKeys.CREATE,n.OperationKeys.AFTER)))),e}async readAll(e,...r){const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.readAll);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 readAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map((e=>N(this,t,e,n.OperationKeys.READ,n.OperationKeys.AFTER)))),e}async updateAllPrefix(e,...t){const{ctx:r,ctxArgs:a,log:o}=(await this.logCtx(t,n.BulkCrudOperationKeys.UPDATE_ALL,!0)).for(this.updateAllPrefix),i=r.get("ignoreHandlers"),c=r.get("ignoreValidation");o.silly(`handlerSetting: ${i}, validationSetting: ${c}`);const l=e.map((e=>{const t=e[this.pk];if(!t)throw new n.InternalError("missing id on update operation");return t}));let d;if(r.get("applyUpdateValidation")&&(d=await this.readAll(l,r),r.get("mergeForUpdate")&&(e=e.map(((e,t)=>s.Model.merge(d[t],e,this.class))))),i||await Promise.all(e.map(((e,t)=>N(this,r,e,n.OperationKeys.UPDATE,n.OperationKeys.ON,d?d[t]:void 0)))),!c){const t=r.get("ignoredValidationProperties")||[];let a;o.silly("ignored validation properties: "+t),a=r.get("applyUpdateValidation")?await Promise.all(e.map(((e,r)=>Promise.resolve(e.hasErrors(d[r],...t))))):await Promise.resolve(e.map((e=>e.hasErrors(...t))));const s=n.reduceErrorsToPrint(a);if(s)throw new n.ValidationError(s)}return[e,...a,d]}async updateAll(e,...r){const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.updateAll);n.verbose(`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 updateAllSuffix(e,t,r){if(r.get("applyUpdateValidation")&&!r.get("ignoreDevSafeGuards")&&!t)throw new n.InternalError("No previous versions of models provided");return r.get("ignoreHandlers")||await Promise.all(e.map(((e,a)=>N(this,r,e,n.OperationKeys.UPDATE,n.OperationKeys.AFTER,t?t[a]:void 0)))),e}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(...e){const{log:t}=(await this.logCtx(e,a.PersistenceKeys.INITIALIZATION,!0)).for(this.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((()=>{t.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 C(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 M(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 I{static isObject(e){return null!==e&&"object"==typeof e}static isObjectWithName(e){return null!==e&&"object"==typeof e&&void 0!==e.name}static assign(e,...t){for(const r of t)for(const t of Object.getOwnPropertyNames(r))e[t]=r[t]}}function L(e,t){const r={};let a;return e?("string"==typeof e&&(a=e),I.isObject(e)&&(a="increment",Object.assign(r,e))):a="increment",I.isObject(t)&&Object.assign(r,t),(e,t)=>{r.type||("increment"===a||"identity"===a?r.type=Number:"uuid"===a?r.type="uuid":"rowid"===a&&(r.type="int")),r.primary=!0;const 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 _(e,t){const r=(I.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){}async function D(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 x 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 super.flags(e,t,Object.assign({user:this.config.username},r))}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(...e){const{log:t}=(await this.logCtx(e,a.PersistenceKeys.INITIALIZATION,!0)).for(this.initialize),r=this.client;try{await r.initialize()}catch(e){throw this.parseError(e)}t.verbose(this.toString()+" initialized")}async index(...e){(await this.logCtx(e,a.PersistenceKeys.INDEX,!0)).for(this.index);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{log:s}=this.logCtx(o,this.revert);return a&&(s.verbose("re-adding transient properties: "+Object.keys(a).join(", ")),Object.entries(a).forEach((([r,a])=>{if(r in e&&void 0!==e[r])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,log:o}=this.logCtx(a,this.createAll),i=s.Model.tableName(e);o.debug(`Creating ${t.length} entries ${i} table`);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[];const{log:a}=this.logCtx(r,this.readAll),n=s.Model.tableName(e);a.debug(`Reading ${t.length} entries ${n} table`);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{log:n,ctxArgs:o}=this.logCtx(a,this.updateAll),i=s.Model.tableName(e);n.debug(`Updating ${t.length} entries ${i} table`);const c=[],l=s.Model.pk(e);for(const t of r)c.push(await this.update(e,t[l],t,...o));return c}async deleteAll(e,t,...r){if(!t.length)return[];const{ctxArgs:a,log:n}=this.logCtx(r,this.deleteAll),o=s.Model.tableName(e);n.debug(`Deleting ${t.length} entries from ${o} table`);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 x.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):(_(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))||_((()=>{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),n.onCreate(v,e,{priority:60})];let d=e.type||t.Metadata.type(r.constructor,o);switch(d){case String.name||String.name.toLowerCase():case String:e.generated=void 0!==e.generated&&e.generated;break;case Number.name||String.name.toLowerCase():case BigInt.name||BigInt.name.toLowerCase():case BigInt:case Number:e.generated=void 0===e.generated||e.generated;break;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(n.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),M(a)(t,r)}}).apply(),t.Decoration.flavouredAs(l).for(a.PersistenceKeys.UNIQUE).define(t.propMetadata(a.PersistenceKeys.UNIQUE,{})).extend(M({unique:!0})).apply();const e=s.Validation.key(s.ValidationKeys.REQUIRED);t.Decoration.flavouredAs(l).for(e).extend(M({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 I.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,C(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,C(e.constructor,t,a.columns)),a.relations.push({target:e.constructor,propertyName:t,isLazy:r,relationType:"one-to-many",type:p,inverseSideProperty:u,options:y})})(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 I.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,C(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 I.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,C(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(D,{}),s.required(),t.propMetadata(a.PersistenceKeys.CREATED_BY,{}),a.noValidateOnCreate()).apply(),t.Decoration.flavouredAs(l).for(a.PersistenceKeys.UPDATED_BY).define(n.onCreateUpdate(D,{}),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)],x.prototype,"Dispatch",null),r.__decorate([o.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[]),r.__metadata("design:returntype",Object)],x.prototype,"repository",null),r.__decorate([o.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[]),r.__metadata("design:returntype",A)],x.prototype,"Statement",null),r.__decorate([o.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Object]),r.__metadata("design:returntype",Promise)],x.prototype,"Sequence",null),r.__decorate([o.final(),r.__metadata("design:type",Function),r.__metadata("design:paramtypes",[Object]),r.__metadata("design:returntype",Promise)],x.prototype,"index",null),x.decoration(),a.Adapter.setCurrent(l);const P="##VERSION##",$="##PACKAGE##";t.Metadata.registerLibrary($,P),e.IndexError=p,e.PACKAGE_NAME=$,e.TypeORMAdapter=x,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);
|
|
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{ctx:r}=this.logCtx(t,this.raw);if(!r.get("allowRawStatements"))throw new a.UnsupportedError("Raw statements are not allowed in the current configuration");const{nonEager:n}=m(this.fromSelector);return e.query=e.query.setFindOptions({loadEagerRelations:!0,loadRelationIds:{relations:n}}),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{ctx:t}=(await this.logCtx(e,n.OperationKeys.READ,!0)).for(this.current),{name:r,startWith:a}=this.options;try{if(!r)throw new n.InternalError("Sequence name is required to read current");const e=`"${r.replace(/"/g,'""')}"`,a=await this.adapter.raw({query:`SELECT last_value, is_called FROM ${e};`,values:[]},!0,t);if(!Array.isArray(a)||0===a.length)throw new n.InternalError("Failed to read current value for "+r);const o=a[0];return this.parse(o.last_value)}catch(e){if(e instanceof n.NotFoundError){if(void 0===a)throw new n.InternalError("Starting value is not defined for a non existing sequence");return this.parse(a)}throw this.adapter.parseError(e)}}async increment(e,t){const{type:r,incrementBy:a,name:o,startWith:s,minValue:i,maxValue:c,cycle:l}=this.options;if("Number"!==r&&"BigInt"!==r)throw new n.InternalError(`Cannot increment sequence of type ${r} with ${e}`);if(!o)throw new n.InternalError("Cannot increment sequence without a name: "+o);try{const s=e??a;if(s%a!==0)throw new n.InternalError("Value to increment does not consider the incrementBy setting: "+a);const i=await this.current(t),c="BigInt"===r?this.parse(i)+BigInt(s):this.parse(i)+s;return await this.adapter.raw({query:"SELECT setval($1::regclass, $2, true) AS nextval;",values:[o,c]},!0,t),c}catch(d){if(!(d instanceof n.NotFoundError))throw d;const p=`"${o.replace(/"/g,'""')}"`,u="number"==typeof s?s:a,y="number"==typeof i?" MINVALUE "+i:"number"==typeof s&&1>s?" MINVALUE "+s:"",h="number"==typeof c?" MAXVALUE "+c:"",g=l?" CYCLE":" NO CYCLE";await this.adapter.raw({query:`CREATE SEQUENCE IF NOT EXISTS ${p} START WITH ${u} INCREMENT BY ${a}${y}${h}${g};`,values:[]},!0,t);const E=e??a;if(E%a!==0)throw new n.InternalError("Value to increment does not consider the incrementBy setting: "+a);const f="number"==typeof s?s:this.parse(s),m="BigInt"===r?this.parse(f)+BigInt(E):this.parse(f)+E;return await this.adapter.raw({query:"SELECT setval($1::regclass, $2, true) AS nextval;",values:[o,m]},!0,t),m}}async next(...e){const{ctx:t}=(await this.logCtx(e,n.OperationKeys.UPDATE,!0)).for(this.next);return this.increment(void 0,t)}async range(e,...t){const{ctx:r}=(await this.logCtx(t,n.OperationKeys.UPDATE,!0)).for(this.range),a=await this.current(r),o=this.parse(this.options.incrementBy),s=await this.increment(this.parse(e)*o,r),i=[];for(let t=1;e>=t;t++)i.push(a+o*this.parse(t));if(i[i.length-1]!==s)throw new n.InternalError("Miscalculation of range");return i}}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{ctx:r,ctxArgs:a,log:o}=(await this.logCtx(t,n.OperationKeys.CREATE,!0)).for(this.createPrefix),s=r.get("ignoreHandlers"),i=r.get("ignoreValidation");if(o.silly(`handlerSetting: ${s}, validationSetting: ${i}`),e=new this.class(e),s||await N(this,r,e,n.OperationKeys.CREATE,n.OperationKeys.ON),!i){const t=r.get("ignoredValidationProperties")||[];o.silly("ignored validation properties: "+t);const a=await Promise.resolve(e.hasErrors(...t));if(a)throw new n.ValidationError(a.toString())}return[e,...a]}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 createSuffix(e,t){return t.get("ignoreHandlers")||await N(this,t,e,n.OperationKeys.CREATE,n.OperationKeys.AFTER),e}async readPrefix(e,...t){const{ctx:r,ctxArgs:a,log:o}=(await this.logCtx(t,n.OperationKeys.READ,!0)).for(this.readPrefix),s=r.get("ignoreHandlers");o.silly("handlerSetting: "+s);const i=new this.class;return i[this.pk]=e,s||await N(this,r,i,n.OperationKeys.READ,n.OperationKeys.ON),[e,...a]}async read(e,...r){const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.read);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 readSuffix(e,t){return t.get("ignoreHandlers")||await N(this,t,e,n.OperationKeys.READ,n.OperationKeys.AFTER),e}async updatePrefix(e,...t){const{ctx:r,ctxArgs:a,log:o}=(await this.logCtx(t,n.OperationKeys.UPDATE,!0)).for(this.updatePrefix),i=r.get("ignoreHandlers"),c=r.get("ignoreValidation");o.silly(`handlerSetting: ${i}, validationSetting: ${c}`);const l=e[this.pk];if(!l)throw new n.InternalError("No value for the Id is defined under the property "+this.pk);let d;if(r.get("applyUpdateValidation")&&(d=await this.read(l,r),r.get("mergeForUpdate")&&(e=s.Model.merge(d,e,this.class))),i||await N(this,r,e,n.OperationKeys.UPDATE,n.OperationKeys.ON,d),!c){const t=r.get("ignoredValidationProperties")||[];o.silly("ignored validation properties: "+t);const a=await Promise.resolve(e.hasErrors(d,...s.Model.relations(this.class),...t));if(a)throw new n.ValidationError(a.toString())}return[e,...a,d]}async update(e,...r){const{ctxArgs:a,log:n,ctx:o}=this.logCtx(r,this.update);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 updateSuffix(e,t,r){return r.get("ignoreHandlers")||await N(this,r,e,n.OperationKeys.UPDATE,n.OperationKeys.AFTER,t),e}async delete(e,...r){const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.delete);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 deleteSuffix(e,t){return t.get("ignoreHandlers")||await N(this,t,e,n.OperationKeys.DELETE,n.OperationKeys.AFTER),e}async createAllPrefix(e,...t){const{ctx:r,ctxArgs:a,log:o}=(await this.logCtx(t,n.BulkCrudOperationKeys.CREATE_ALL,!0)).for(this.createAllPrefix),i=r.get("ignoreHandlers"),c=r.get("ignoreValidation");if(o.silly(`handlerSetting: ${i}, validationSetting: ${c}`),!e.length)return[e,...a];const l=s.Model.sequenceFor(e[0]);let d=[];s.Model.generatedBySequence(this.class)?(l.name||(l.name=s.Model.sequenceName(e[0],"pk")),d=await(await this.adapter.Sequence(l)).range(e.length,...a)):s.Model.generated(this.class,this.pk)||(d=e.map((e,t)=>{if(void 0===e[this.pk])throw new n.InternalError("Primary key is not defined for model in position "+t);return e[this.pk]})),e=await Promise.all(e.map(async(e,t)=>(e=new this.class(e),l.type&&(e[this.pk]="String"!==l.type||l.generated?d[t]:""+e[this.pk]),i||await N(this,r,e,n.OperationKeys.CREATE,n.OperationKeys.ON),e)));const p=r.timestamp||new Date;if(e=e.map(e=>("createdAt"in e&&Object.assign(e,{createdAt:p}),"updatedAt"in e&&Object.assign(e,{updatedAt:p}),e)),!c){const t=r.get("ignoredValidationProperties")||[];o.silly("ignored validation properties: "+t);const a=await Promise.all(e.map(e=>Promise.resolve(e.hasErrors(...t)))),s=n.reduceErrorsToPrint(a);if(s)throw new n.ValidationError(s)}return[e,...a]}async createAll(e,...r){if(!e.length)return e;const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.createAll);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 createAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>N(this,t,e,n.OperationKeys.CREATE,n.OperationKeys.AFTER))),e}async readAll(e,...r){const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.readAll);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 readAllSuffix(e,t){return t.get("ignoreHandlers")||await Promise.all(e.map(e=>N(this,t,e,n.OperationKeys.READ,n.OperationKeys.AFTER))),e}async updateAllPrefix(e,...t){const{ctx:r,ctxArgs:a,log:o}=(await this.logCtx(t,n.BulkCrudOperationKeys.UPDATE_ALL,!0)).for(this.updateAllPrefix),i=r.get("ignoreHandlers"),c=r.get("ignoreValidation");o.silly(`handlerSetting: ${i}, validationSetting: ${c}`);const l=e.map(e=>{const t=e[this.pk];if(!t)throw new n.InternalError("missing id on update operation");return t});let d;if(r.get("applyUpdateValidation")&&(d=await this.readAll(l,r),r.get("mergeForUpdate")&&(e=e.map((e,t)=>s.Model.merge(d[t],e,this.class)))),i||await Promise.all(e.map((e,t)=>N(this,r,e,n.OperationKeys.UPDATE,n.OperationKeys.ON,d?d[t]:void 0))),!c){const t=r.get("ignoredValidationProperties")||[];let a;o.silly("ignored validation properties: "+t),a=r.get("applyUpdateValidation")?await Promise.all(e.map((e,r)=>Promise.resolve(e.hasErrors(d[r],...t)))):await Promise.resolve(e.map(e=>e.hasErrors(...t)));const s=n.reduceErrorsToPrint(a);if(s)throw new n.ValidationError(s)}return[e,...a,d]}async updateAll(e,...r){const{ctx:a,log:n,ctxArgs:o}=this.logCtx(r,this.updateAll);n.verbose(`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 updateAllSuffix(e,t,r){if(r.get("applyUpdateValidation")&&!r.get("ignoreDevSafeGuards")&&!t)throw new n.InternalError("No previous versions of models provided");return r.get("ignoreHandlers")||await Promise.all(e.map((e,a)=>N(this,r,e,n.OperationKeys.UPDATE,n.OperationKeys.AFTER,t?t[a]:void 0))),e}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(...e){const{log:t}=(await this.logCtx(e,a.PersistenceKeys.INITIALIZATION,!0)).for(this.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(()=>{t.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 R(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 C(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 M(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();C(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 I{static isObject(e){return null!==e&&"object"==typeof e}static isObjectWithName(e){return null!==e&&"object"==typeof e&&void 0!==e.name}static assign(e,...t){for(const r of t)for(const t of Object.getOwnPropertyNames(r))e[t]=r[t]}}function L(e,t){const r={};let a;return e?("string"==typeof e&&(a=e),I.isObject(e)&&(a="increment",Object.assign(r,e))):a="increment",I.isObject(t)&&Object.assign(r,t),(e,t)=>{r.type||("increment"===a||"identity"===a?r.type=Number:"uuid"===a?r.type="uuid":"rowid"===a&&(r.type="int")),r.primary=!0;const n=i.getMetadataArgsStorage();C(e.constructor,t,n.columns,r,"regular",n.relations),i.getMetadataArgsStorage().generations.push({target:e.constructor,propertyName:t,strategy:a})}}function _(e,t){const r=(I.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 super.flags(e,t,Object.assign({user:this.config.username},r))}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(...e){const{log:t}=(await this.logCtx(e,a.PersistenceKeys.INITIALIZATION,!0)).for(this.initialize),r=this.client;try{await r.initialize()}catch(e){throw this.parseError(e)}t.verbose(this.toString()+" initialized")}async index(...e){(await this.logCtx(e,a.PersistenceKeys.INDEX,!0)).for(this.index);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{log:s}=this.logCtx(o,this.revert);return a&&(s.verbose("re-adding transient properties: "+Object.keys(a).join(", ")),Object.entries(a).forEach(([r,a])=>{if(r in e&&void 0!==e[r])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,log:o}=this.logCtx(a,this.createAll),i=s.Model.tableName(e);o.debug(`Creating ${t.length} entries ${i} table`);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[];const{log:a}=this.logCtx(r,this.readAll),n=s.Model.tableName(e);a.debug(`Reading ${t.length} entries ${n} table`);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{log:n,ctxArgs:o}=this.logCtx(a,this.updateAll),i=s.Model.tableName(e);n.debug(`Updating ${t.length} entries ${i} table`);const c=[],l=s.Model.pk(e);for(const t of r)c.push(await this.update(e,t[l],t,...o));return c}async deleteAll(e,t,...r){if(!t.length)return[];const{ctxArgs:a,log:n}=this.logCtx(r,this.deleteAll),o=s.Model.tableName(e);n.debug(`Deleting ${t.length} entries from ${o} table`);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):(_(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)||_((()=>{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=void 0!==e.generated&&e.generated;break;case Number.name||String.name.toLowerCase():case BigInt.name||BigInt.name.toLowerCase():case BigInt:case Number:e.generated=void 0===e.generated||e.generated;break;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();C(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(n.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),M(a)(t,r)}}).apply(),t.Decoration.flavouredAs(l).for(a.PersistenceKeys.UNIQUE).define(t.propMetadata(a.PersistenceKeys.UNIQUE,{})).extend(M({unique:!0})).apply();const e=s.Validation.key(s.ValidationKeys.REQUIRED);t.Decoration.flavouredAs(l).for(e).extend(M({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();C(e.constructor,t,r.columns,{},"updateDate",r.relations)})(t,r):((e,t)=>{const r=i.getMetadataArgsStorage();C(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 I.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,R(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,R(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 I.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,R(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 I.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,R(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 x="##VERSION##",P="##PACKAGE##";t.Metadata.registerLibrary(P,x),e.IndexError=p,e.PACKAGE_NAME=P,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=x,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","logCtx","get","UnsupportedError","setFindOptions","loadEagerRelations","loadRelationIds","getMany","condition","counter","conditionalOp","qb","attr1","comparison","GroupOperator","Operator","indexOf","sqlOperator","attrRef","queryStr","values","andWhere","orWhere","Error","parse","TypeORMSequence","Sequence","options","OperationKeys","READ","startWith","quoted","replace","rows","Array","isArray","NotFoundError","parseError","increment","type","incrementBy","minValue","maxValue","cycle","toIncrementBy","next","BigInt","startValue","minValueClause","maxValueClause","cycleClause","argz","UPDATE","range","i","generateIndexes","models","direction","compositions","separator","DefaultSeparator","n","join","generateIndexName","indexes","forEach","ind","entries","key","value","PersistenceKeys","generate","async","enforceDbDecoratorsRecursive","context","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","ignoreValidate","silly","ON","propsToIgnore","errors","resolve","hasErrors","ValidationError","create","record","id","transient","createSuffix","AFTER","readPrefix","read","readSuffix","updatePrefix","merge","update","updateSuffix","delete","deleteSuffix","DELETE","createAllPrefix","BulkCrudOperationKeys","CREATE_ALL","sequenceFor","ids","generatedBySequence","sequenceName","generated","timestamp","Date","createdAt","updatedAt","ignoredProps","errorMessages","reduceErrorsToPrint","createAll","prepared","records","createAllSuffix","readAll","readAllSuffix","updateAllPrefix","UPDATE_ALL","oldModels","modelsValidation","updateAll","verbose","u","updateAllSuffix","deleteAll","TypeORMEventSubscriber","handler","afterInsert","event","entity","entityId","afterRemove","metadata","target","afterUpdate","databaseEntity","__decorate","EventSubscriber","Adapter","Function","TypeORMDispatch","Dispatch","notificationHandler","table","updateObservers","error","initialize","INITIALIZATION","isInitialized","subscribers","bind","call","then","info","catch","extractForRelations","property","columns","index","cols","filter","c","propertyName","splice","val","TYPE","aggregateOrNewColumn","mode","column","defineProperty","writable","enumerable","configurable","Column","typeOrOptions","object","reflectMetadataType","Reflect","getMetadata","primaryType","allowedTypes","hstoreType","getMetadataArgsStorage","embeddeds","array","ColumnTypeUndefinedError","unique","uniques","indices","generations","strategy","ObjectUtils","isObject","isObjectWithName","sources","prop","getOwnPropertyNames","PrimaryGeneratedColumn","strategyOrOptions","maybeOptions","Number","primary","Entity","nameOrOptions","tables","engine","database","schema","synchronize","withoutRowid","comment","pkOnTypeORMCreate","data","createdByOnTypeORMCreateUpdate","user","TypeORMAdapter","getClient","entities","alias","DataSource","config","shutdown","_client","destroy","flags","username","repository","ds","docsOnly","getSql","child","METADATA","isReserved","getTime","isModel","obj","findOne","ConflictError","save","findOneOrFail","tableLabel","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","onCreate","priority","String","conf","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","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","logCtx","get","UnsupportedError","setFindOptions","loadEagerRelations","loadRelationIds","getMany","condition","counter","conditionalOp","qb","attr1","comparison","GroupOperator","Operator","indexOf","sqlOperator","attrRef","queryStr","values","andWhere","orWhere","Error","parse","TypeORMSequence","Sequence","options","OperationKeys","READ","startWith","quoted","replace","rows","Array","isArray","NotFoundError","parseError","increment","type","incrementBy","minValue","maxValue","cycle","toIncrementBy","next","BigInt","startValue","minValueClause","maxValueClause","cycleClause","argz","UPDATE","range","i","generateIndexes","models","direction","compositions","separator","DefaultSeparator","n","join","generateIndexName","indexes","forEach","ind","entries","key","value","PersistenceKeys","generate","async","enforceDbDecoratorsRecursive","context","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","ignoreValidate","silly","ON","propsToIgnore","errors","resolve","hasErrors","ValidationError","create","record","id","transient","createSuffix","AFTER","readPrefix","read","readSuffix","updatePrefix","merge","update","updateSuffix","delete","deleteSuffix","DELETE","createAllPrefix","BulkCrudOperationKeys","CREATE_ALL","sequenceFor","ids","generatedBySequence","sequenceName","generated","timestamp","Date","createdAt","updatedAt","ignoredProps","errorMessages","reduceErrorsToPrint","createAll","prepared","records","createAllSuffix","readAll","readAllSuffix","updateAllPrefix","UPDATE_ALL","oldModels","modelsValidation","updateAll","verbose","u","updateAllSuffix","deleteAll","TypeORMEventSubscriber","handler","afterInsert","event","entity","entityId","afterRemove","metadata","target","afterUpdate","databaseEntity","__decorate","EventSubscriber","Adapter","Function","TypeORMDispatch","Dispatch","notificationHandler","table","updateObservers","error","initialize","INITIALIZATION","isInitialized","subscribers","bind","call","then","info","catch","extractForRelations","property","columns","index","cols","filter","c","propertyName","splice","val","TYPE","aggregateOrNewColumn","mode","column","defineProperty","writable","enumerable","configurable","Column","typeOrOptions","object","reflectMetadataType","Reflect","getMetadata","primaryType","allowedTypes","hstoreType","getMetadataArgsStorage","embeddeds","array","ColumnTypeUndefinedError","unique","uniques","indices","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","getTime","isModel","obj","findOne","ConflictError","save","findOneOrFail","tableLabel","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","conf","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":"wDAMa,MAAAA,EACX,69DAQWC,EAAiB,WAuBjBC,EAAc,CACzBC,UAAW,IACXC,GAAI,KACJC,QAAS,UACTC,QAAS,aACTC,MAAO,aACPC,OAAQ,cACRC,SAAU,gBACVC,MAAO,SC3BH,MAAOC,UAAmBC,EAAAA,UAC9B,WAAAC,CAAYC,GACVC,MAAMJ,EAAWK,KAAMF,EAAK,IAC7B,ECJH,IAAYG,EAqCXC,EAAAD,iBAAA,GArCWA,EAAAA,EAAWA,cAAXA,cAqCX,CAAA,IAnCC,MAAA,IAEAA,EAAA,UAAA,KAEAA,EAAA,UAAA,IAEAA,EAAA,mBAAA,KAEAA,EAAA,aAAA,IAEAA,EAAA,sBAAA,KAEAA,EAAA,GAAA,KAEAA,EAAA,OAAA,SAEAA,EAAA,KAAA,OAEAA,EAAA,MAAA,QAEAA,EAAA,QAAA,UAEAA,EAAA,QAAA,UAEAA,EAAA,YAAA,cAEAA,EAAA,OAAA,SAEAA,EAAA,WAAA,aAEAA,EAAA,IAAA,MAEAA,EAAA,IAAA,MAEAA,EAAA,KAAA,OC9CW,MAyBAE,EAAwD,CACnEC,MAAOH,EAAWA,YAACG,MACnBC,UAAWJ,EAAWA,YAACK,UACvBC,OAAQN,EAAWA,YAACO,aACpBC,UAAWR,EAAWA,YAACS,sBACvBC,QAASV,EAAWA,YAACW,UACrBC,WAAYZ,EAAWA,YAACa,mBACxBC,QAASd,EAAWA,YAACc,QACrBC,IAAK,MACLC,GAAIhB,EAAWA,YAACgB,GAChBC,QAASjB,EAAWA,YAACiB,QACrBC,YAAalB,EAAWA,YAACkB,YACzBC,OAAQ,IACRC,QAAS,KACTC,KAAMrB,EAAWA,YAACqB,KAClBC,MAAOtB,EAAWA,YAACsB,OAaRC,EAA+C,CAC1DC,IAAK,MACLC,GAAI,MCxCA,MAAOC,UAA0CC,EAAAA,UAUrD,SAAaC,GACX,OAAOC,KAAKC,WACb,CAOD,SAAaC,GACX,OAAOF,KAAKG,YACb,CAID,QAAcC,GAMZ,OALKJ,KAAKK,SACRL,KAAKK,OAAUL,KAAKM,QAA2BC,OAAOC,cACpDC,EAAAA,SAASC,OAAOV,KAAKW,SAGlBX,KAAKK,MACb,CAUD,WAAAtC,CACEuC,EACAM,EACAC,EACAF,GAEA1C,MAAMqC,EAASM,EAAOC,EAAMF,EAC7B,CAQS,OAAAG,CAAQC,GAEhB,MAD4B,IAAKA,EAElC,CAmCQ,UAAMC,CACbA,EAAe,KACZC,GAEH,MAAMC,QAAEA,EAAOC,IAAEA,GAAQnB,KAAKM,QAAgB,OAAEW,EAAMjB,KAAKgB,MAC3D,GAAIhB,KAAKoB,sBAAuB,OAAOpB,KAAKqB,aAAaL,KAASE,GAClE,MAAMI,EAAY,IAAKtB,KAAKsB,WAGvBtB,KAAKG,cAAiBH,KAAKC,cAC9BD,KAAKC,YAAcD,KAAKG,aAAe,GAGzC,MAAMoB,EAA2BC,OAAOC,OAAOH,EAAW,CACxDI,MAAO1B,KAAK2B,SAAW,GAAK3B,KAAKa,KACjCe,KAAM5B,KAAKa,OAKPgB,QAAe7B,KAAKI,KAAK0B,aAAaP,GAK5C,GAHAvB,KAAKG,aAAe0B,EAAO,GAC3B7B,KAAKC,YAAc8B,KAAKC,KAAKhC,KAAKG,aAAeH,KAAKa,OAEjDb,KAAKW,MAAO,MAAM,IAAIsB,EAAAA,YAAY,+BAEvC,MAAMC,EAAQC,EAAKA,MAACC,GAAGpC,KAAKW,OAGtB0B,GAFOR,EAAO,IAAM,IAKnBS,IAAKC,GACDvC,KAAKM,QAAQkC,OAAOD,EAAKvC,KAAKW,MAAO4B,EAAIL,QAAQO,EAAWtB,IAIvE,OADAnB,KAAK0C,aAAe1B,EACbqB,CACR,ECzHG,SAAUM,EACdC,GAEA,IAAK,MAAMC,IAAa,CAACxE,EAAiBqB,GAAuB,CAC/D,MAAMoD,EAAKtB,OAAOuB,KAAKF,GAAWG,KAAMC,GAAMA,IAAML,GACpD,GAAIE,EAAI,OAAOD,EAAUC,EAC1B,CACD,MAAM,IAAII,EAAAA,WACR,mDAAmDN,EAEvD,CCzBM,SAAUO,EAAyBC,GACvC,MAAMC,EAAUC,OAAO,oBACvB,GAAuB,iBAAZF,EAAsB,CAC/B,MAAMG,EAAQF,EAAIG,KAAKJ,GACvB,GAAIG,EAAO,CACT,MAAS,CAAAE,GAAKF,EACdH,EAAUK,CACX,CACF,CAKD,OAJiC,iBAAZL,EAA2BE,OAAOF,GAAWA,GAE5CM,MAGxB,UAEgBC,EACdC,EACAC,EAA6B,IAE7B,MAAMC,EAAO3B,EAAAA,MAAM4B,UAAUH,GAE7B,GADAC,EAAMD,EAAE1F,MAAQ2F,EAAMD,EAAE1F,YAASuE,EAC7BoB,EAAMD,EAAE1F,MACV,OAAO2F,EAAMD,EAAE1F,MAEjB,MAAM6F,EAAYD,EAAKE,OACrB,CAACC,EAAoDC,KACnD,MAAMC,EAAuC1D,EAAQA,SAACsD,UACpDH,EACAM,GAGIE,EAAQD,EAAUE,SACxB,IAAI1D,EAAQwD,EAAUG,MAEtB,GADKC,EAAOA,QAAC5D,KAAQA,EAAQA,MACxBA,EACH,MAAM,IAAI6D,EAAAA,cACR,qCAAqCN,cAAiBN,EAAE1F,QAS5D,GANKkG,EAGHH,EAAMF,UAAUU,KAAKP,GAFrBD,EAAMS,SAASD,KAAKP,GAKlBD,EAAMF,UAAUY,SAAST,GAAO,CAClC,MAAMQ,SAAEA,EAAQX,UAAEA,GAAcJ,EAAoBhD,EAAOkD,GAC3D,GAAIa,EAASE,QAAUX,EAAMF,UAAUY,SAAST,GAAO,CACrD,MAAMW,EAAoBH,EAASpC,IAAKwC,GAAO,GAAGZ,KAAQY,KAC1Db,EAAMS,SAASD,QAAQI,EACxB,CAED,GAAId,EAAUa,OAAQ,CACpB,MAAMd,EAAOC,EAAUzB,IAAKwC,GAAO,GAAGZ,KAAQY,KAC9Cb,EAAMF,UAAUU,QAAQX,EACzB,CACF,CAED,OAAOG,GAET,CAAES,SAAU,GAAIX,UAAW,KAG7B,OADAF,EAAMD,EAAE1F,MAAQ6F,EACTA,CACT,CC9CM,MAAOgB,UAA6CC,EAAAA,UAQxD,WAAAjH,CAAYuC,GACVrC,MAAMqC,EACP,CA8CS,KAAA2E,GACR,MAAMC,EAAMlF,KAAKkF,IAAIC,IAAInF,KAAKiF,OACxBG,EAAYjD,EAAKA,MAACiD,UAAUpF,KAAKqF,cAEjCC,EAA4C,CAChD1E,MAAOZ,KAAKM,QAAQC,OACjBC,cAAcC,EAAAA,SAASC,OAAOV,KAAKqF,eACnCE,mBAAmBH,IAgBxB,IAAII,EA0BJ,OAvCIxF,KAAKyF,eACPH,EAAE1E,MAAQ0E,EAAE1E,MAAM8E,OAChB1F,KAAKyF,eAAenD,IAAKqD,GAAM,GAAGP,KAAaO,MAE9CL,EAAE1E,MAAQ0E,EAAE1E,MAAM8E,SAEnB1F,KAAK4F,iBACPN,EAAE1E,MAAQZ,KAAK6F,eACb7F,KAAK4F,eACLR,EACAE,EAAE1E,OACFA,OASF4E,EANGxF,KAAK8F,gBAMM,CACZ,GAAGV,KAAapF,KAAK8F,gBAAgB,KACrC9F,KAAK8F,gBAAgB,GAAGC,eAPZ,CACZ,GAAGX,KAAajD,EAAAA,MAAMC,GAAGpC,KAAKqF,gBAC9BW,EAAcA,eAACC,IAAIF,eAQvBT,EAAE1E,MAAS0E,EAAE1E,MAAkCsF,WAAWV,GACtDxF,KAAKmG,cACPb,EAAE1E,MAAS0E,EAAE1E,MAAkCwF,MAAMpG,KAAKmG,gBAE1DjB,EAAImB,MACF,yDAEFf,EAAE1E,MAAS0E,EAAE1E,MAAkCwF,MJlIpB,MIsIzBpG,KAAKsG,iBACPhB,EAAE1E,MAAS0E,EAAE1E,MAAkCc,KAAK1B,KAAKsG,iBAEpDhB,CACR,CAUQ,cAAMiB,CACb1F,GAEA,IACE,MAAM2F,EAAuC,CAAA,EAY7C,OAXIxG,KAAK4F,iBACPY,EAAiBC,MAAQzG,KAAK0G,4BAC5B1G,KAAK4F,eACLzD,EAAAA,MAAMiD,UAAUpF,KAAKqF,gBAGrBrF,KAAK8F,kBACPU,EAAiBG,MAAQ,CACvB,CAAC3G,KAAK8F,gBAAgB,IAAK9F,KAAK8F,gBAAgB,GAAGc,aAGhD5G,KAAKM,QAAQR,UAClB0G,EACA3F,EACAb,KAAKqF,aAER,CAAC,MAAOwB,GACP,MAAM,IAAI3D,EAAAA,WAAW2D,EACtB,CACF,CAuBQ,SAAMC,CACbC,KACG9F,GAEH,MAAME,IAAEA,GAAQnB,KAAKgH,OAAO/F,EAAMjB,KAAK8G,KAEvC,IAD2B3F,EAAI8F,IAAI,sBAEjC,MAAM,IAAIC,EAAAA,iBACR,+DAEJ,MAAMxC,SAAEA,GAAaf,EAAoB3D,KAAKqF,cAW9C,OATA0B,EAASnG,MACPmG,EAASnG,MACTuG,eAAe,CACfC,oBAAoB,EACpBC,gBAAiB,CACftD,UAAWW,WAKbqC,EAASnG,MACT0G,SACH,CAES,2BAAAZ,CACRa,EACAnC,EAEAoC,EAAU,EAEVC,GAEA,MAAM,IAAIjD,EAAAA,cAAc,kBACzB,CAiCS,cAAAqB,CACR0B,EACAnC,EACAsC,EACAF,EAAU,EACVC,GAEA,MAAME,MAAEA,EAAK/E,SAAEA,EAAQgF,WAAEA,GAAeL,EA+BxC,IAGS,IAFP,CAACM,EAAaA,cAAClI,IAAKkI,EAAAA,cAAcjI,GAAIkI,EAAAA,SAAS5I,KAAK6I,QAClDnF,GAGF,MA9BF,MACE,MAAMoF,EAAcrF,EAAmBC,GACjCqF,EAAU,GAAGN,IAAQH,IACrBU,EAAW,GAAG9C,KAAauC,KAASK,MAAgBC,IACpDE,EAAS,CACbF,CAACA,GAAUL,GAEb,OAAQH,GACN,KAAKI,EAAaA,cAAClI,IACjB,MAAO,CACLiB,MAAO8G,EAAGU,SAASF,EAAUC,IAEjC,KAAKN,EAAaA,cAACjI,GACjB,MAAO,CACLgB,MAAO8G,EAAGW,QAAQH,EAAUC,IAEhC,KAAKL,EAAQA,SAAC5I,IACZ,MAAUoJ,MAAM,gCAClB,QACE,MAAO,CACL1H,MAAO8G,EAAGjB,MAAMyB,EAAUC,IAGjC,EAOQI,GAGJ,GAAI3F,IAAakF,EAAQA,SAAC5I,IAC7B,MAAUoJ,MAAM,gCAMhB,OAFAZ,EAAK1H,KAAK6F,eAAe8B,EAAuBvC,EAAWsC,IAAMF,GAC9D5G,MACIZ,KAAK6F,eACV+B,EACAxC,EACAsC,IACEF,EACF5E,EAGL,EC5RG,MAAO4F,UAAwBC,EAAAA,SACnC,WAAA1K,CACE2K,EACApI,GAOArC,MAAMyK,EAASpI,EAChB,CAMQ,aAAMqB,IACVV,GAEH,MAAME,IAAEA,UAAenB,KAAKgH,OAAO/F,EAAM0H,gBAAcC,MAAM,IAAOzD,IAClEnF,KAAK2B,UAEDzD,KAAEA,EAAI2K,UAAEA,GAAc7I,KAAK0I,QACjC,IACE,IAAKxK,EACH,MAAM,IAAIsG,EAAaA,cAAC,6CAC1B,MAAMsE,EAAS,IAAI5K,EAAK6K,QAAQ,KAAM,SAChCC,QAAoBhJ,KAAKM,QAAQwG,IACrC,CACElG,MAAO,qCAAqCkI,KAC5CX,OAAQ,KAEV,EACAhH,GAEF,IAAK8H,MAAMC,QAAQF,IAAyB,IAAhBA,EAAKpE,OAC/B,MAAM,IAAIJ,EAAAA,cAAc,oCAAoCtG,GAC9D,MAAMqE,EAAMyG,EAAK,GACjB,OAAOhJ,KAAKuI,MAAMhG,EAAgB,WACnC,CAAC,MAAOsE,GACP,GAAIA,aAAasC,EAAAA,cAAe,CAC9B,QAAyB,IAAdN,EACT,MAAM,IAAIrE,EAAaA,cACrB,6DAEJ,OAAOxE,KAAKuI,MAAMM,EACnB,CACD,MAAM7I,KAAKM,QAAQ8I,WAAWvC,EAC/B,CACF,CAUkB,eAAMwC,CACvBnJ,EACAiB,GAEA,MAAMmI,KAAEA,EAAIC,YAAEA,EAAWrL,KAAEA,EAAI2K,UAAEA,EAASW,SAAEA,EAAQC,SAAEA,EAAQC,MAAEA,GAC9D1J,KAAK0I,QACP,GAAa,WAATY,GAA8B,WAATA,EACvB,MAAM,IAAI9E,EAAaA,cACrB,qCAAqC8E,UAAapJ,KAEtD,IAAKhC,EACH,MAAM,IAAIsG,EAAAA,cAAc,6CAA6CtG,GAEvE,IACE,MAAMyL,EAAgBzJ,GAASqJ,EAC/B,GAAII,EAAgBJ,IAAgB,EAClC,MAAM,IAAI/E,EAAAA,cACR,iEAAiE+E,GAErE,MAAM5H,QAAgB3B,KAAK2B,QAAQR,GAC7ByI,EACK,WAATN,EACKtJ,KAAKuI,MAAM5G,GAAsBkI,OAAOF,GACxC3J,KAAKuI,MAAM5G,GAAsBgI,EASxC,aARM3J,KAAKM,QAAQwG,IACjB,CACElG,MAAO,oDACPuH,OAAQ,CAACjK,EAAM0L,KAEjB,EACAzI,GAEKyI,CACR,CAAC,MAAO/C,GACP,KAAMA,aAAasC,iBAAgB,MAAMtC,EAEzC,MAAMiC,EAAS,IAAI5K,EAAK6K,QAAQ,KAAM,SAChCe,EACiB,iBAAdjB,EAAyBA,EAAYU,EACxCQ,EACgB,iBAAbP,EACH,aAAaA,EACQ,iBAAdX,GAAsC,EAAZA,EAC/B,aAAaA,EACb,GACFmB,EACgB,iBAAbP,EAAwB,aAAaA,EAAa,GACrDQ,EAAcP,EAAQ,SAAW,kBACjC1J,KAAKM,QAAQwG,IACjB,CACElG,MAAO,iCAAiCkI,gBAAqBgB,kBAA2BP,IAAcQ,IAAiBC,IAAiBC,KACxI9B,OAAQ,KAEV,EACAhH,GAEF,MAAMwI,EAAgBzJ,GAASqJ,EAC/B,GAAII,EAAgBJ,IAAgB,EAClC,MAAM,IAAI/E,EAAAA,cACR,iEAAiE+E,GAErE,MAAM5H,EACiB,iBAAdkH,EAAyBA,EAAY7I,KAAKuI,MAAMM,GACnDe,EACK,WAATN,EACKtJ,KAAKuI,MAAM5G,GAAsBkI,OAAOF,GACxC3J,KAAKuI,MAAM5G,GAAsBgI,EASxC,aARM3J,KAAKM,QAAQwG,IACjB,CACElG,MAAO,oDACPuH,OAAQ,CAACjK,EAAM0L,KAEjB,EACAzI,GAEKyI,CACR,CACF,CAQQ,UAAMA,IACVM,GAEH,MAAM/I,IAAEA,UAAenB,KAAKgH,OAAOkD,EAAMvB,gBAAcwB,QAAQ,IAAOhF,IACpEnF,KAAK4J,MAEP,OAAO5J,KAAKqJ,eAAU5G,EAAWtB,EAClC,CAEQ,WAAMiJ,CACblK,KACGgK,GAEH,MAAM/I,IAAEA,UAAenB,KAAKgH,OAAOkD,EAAMvB,gBAAcwB,QAAQ,IAAOhF,IACpEnF,KAAKoK,OAEDzI,QAAiB3B,KAAK2B,QAAQR,GAC9BoI,EAAcvJ,KAAKuI,MAAMvI,KAAK0I,QAAQa,aACtCK,QAAuC5J,KAAKqJ,UAC/CrJ,KAAKuI,MAAMrI,GAAoBqJ,EAChCpI,GAEIiJ,EAAsC,GAC5C,IAAK,IAAIC,EAAY,EAAQnK,GAALmK,EAAYA,IAClCD,EAAM3F,KAAK9C,EAAU4H,EAAevJ,KAAKuI,MAAM8B,IAEjD,GAAID,EAAMA,EAAMxF,OAAS,KAAOgF,EAC9B,MAAM,IAAIpF,EAAAA,cAAc,2BAC1B,OAAO4F,CACR,EChJG,SAAUE,EACdC,GAEA,MAAMnF,EAhER,EACElH,EACAsM,EACAC,EACAC,EAAYC,EAAAA,mBAEL,IACFzM,EAAKoE,IAAKsI,GAAOA,IAAMxN,EAAYK,MAAQ,QAAUmN,MACpDH,GAAgB,MAChBD,EAAY,CAACA,GAAa,GAC9BpN,EAAYQ,OACZiN,KAAKH,GAqDWI,CAAkB,CAAC1N,EAAYK,QAC3CsN,EAAwC,CAAA,EA6B9C,OA5BAA,EAAQ3F,GAAa,CACnBxE,MAAO,GACPuH,OAAQ,IAGVoC,EAAOS,QAASpH,IACd,MAAMqH,EAAqC9I,EAAAA,MAAM4I,QAAQnH,GACzDpC,OAAO0J,QAAQD,GAAKD,QAAQ,EAAEG,EAAKC,MACjC,MAAMnI,EAAIzB,OAAOuB,KAAKqI,GAAO,GAE7B,IAAIX,aAAEA,GAAkBW,EAAcnI,GACtC,MAAMmC,EAAYjD,EAAAA,MAAMiD,UAAUxB,GAClC6G,EAAeA,GAAgB,GAE/B,MACE,MAAMvM,EAAO,CAACiN,KAASV,EAAqBY,EAAeA,gBAACzN,OAAOiN,KACjEF,EAAAA,kBAGFI,EAAQ7M,GAAQ,CACd0C,MAAO,8BACPuH,OAAQ,CAACjK,EAAMkH,EAAW+F,GAE7B,EAEDG,OAGG9J,OAAO2G,OAAO4C,EACvB,CCxFOQ,eAAeC,EAKpBpL,EACAqL,EACAC,EACAC,EACAC,EACAC,GAWAN,eAAeO,EAA2BlI,EAAMiI,GAC9C,MAAME,EAAIC,EAAUA,WAACC,SAASrI,EAAE7F,mBAC1ByN,EACJO,EACAN,EACA7H,EACCiI,GAAYF,IAAchD,EAAAA,cAAcwB,OAErCwB,EADAhD,EAAAA,cAAcuD,OAElBN,EACAC,EAEH,OArBKM,EAAAA,oBACJ/L,EACAqL,EACAC,EACAC,EACAC,EACAC,GAiBF,IAAK,MAAMV,KAAO3J,OAAOuB,KAAK2I,GAE1BvJ,QAAMiK,gBAAgBV,EAAOP,SACe,IAArCO,EAAMP,SAEPW,EACJJ,EAAMP,GACNU,EAAYA,EAASV,QAAwC1I,GAKrDhC,EAAQA,SAAC4L,cACnBX,EAAM3N,YACNoN,EACAmB,iBAAeC,OAKdb,EAAMP,IACNlC,MAAMC,QAAQwC,EAAMP,WAIjBqB,QAAQC,IACXf,EAAMP,GAAuC7I,IAAI,CAACsB,EAAGyG,IAC7CyB,EACLlI,EACAiI,GAAYA,EAASV,GAChBU,EAASV,GAAsCd,QAChD5H,IAKd,CAyCM,MAAOiK,UAAoDV,EAAAA,WAY/D,WAAAjO,CAAYuC,EAAyBoL,KAA0BzK,GAC7DhD,MAAMqC,EAASoL,KAAUzK,GATRjB,KAAU2M,WAAGnL,OAAOC,OAAO,CAAA,EAAIxD,MAAkB,WAAG,CACrE2O,kBAAkB,EAClBC,gBAAgB,EAChBC,oBAAoB,EACpBC,2BAA2B,EAC3BC,4BAA4B,GAK7B,CAOD,YAAAC,GAEE,OADajN,KAAKkN,aACN3H,oBACb,CAOD,UAAA2H,GACE,MAAMvM,EAAQF,EAAQA,SAACC,OAAOV,KAAKsE,OACnC,OAAQtE,KAAKM,QAAgB6M,WAAW3M,cAAcG,EACvD,CAWkB,kBAAMyM,CACvB1B,KACGzK,GAEH,MAAME,IAAEA,EAAGD,QAAEA,EAAOgE,IAAEA,UACdlF,KAAKgH,OAAO/F,EAAM0H,EAAaA,cAACuD,QAAQ,IAC9C/G,IAAInF,KAAKoN,cACLP,EAAiB1L,EAAI8F,IAAI,kBACzBoG,EAAiBlM,EAAI8F,IAAI,oBAc/B,GAbA/B,EAAIoI,MACF,mBAAmBT,yBAAsCQ,KAE3D3B,EAAQ,IAAI1L,KAAKsE,MAAMoH,GAClBmB,SACGrB,EACJxL,KACAmB,EACAuK,EACA/C,EAAAA,cAAcuD,OACdvD,gBAAc4E,KAGbF,EAAgB,CACnB,MAAMG,EAAgBrM,EAAI8F,IAAI,gCAAkC,GAChE/B,EAAIoI,MAAM,kCAAkCE,GAC5C,MAAMC,QAAejB,QAAQkB,QAAQhC,EAAMiC,aAAaH,IACxD,GAAIC,EAAQ,MAAM,IAAIG,EAAeA,gBAACH,EAAO7G,WAC9C,CAED,MAAO,CAAC8E,KAAUxK,EACnB,CASQ,YAAM2M,CACbnC,KACGzK,GAEH,MAAME,IAAEA,EAAG+D,IAAEA,EAAGhE,QAAEA,GAAYlB,KAAKgH,OACjC/F,EACAjB,KAAK6N,QAEP3I,EAAImB,MACF,gBAAgBrG,KAAKsE,MAAMpG,iBAAiBiE,EAAAA,MAAMiD,UAAUpF,KAAKsE,UAGnE,IAAIwJ,OAAEA,EAAMC,GAAEA,EAAEC,UAAEA,GAAchO,KAAKM,QAAQQ,QAAQ4K,GAAO,EAAOvK,GAOnE,OANA2M,QAAe9N,KAAKM,QAAQuN,OAC1BpN,EAAAA,SAASC,OAAOV,KAAKsE,OACrByJ,EACArC,KACGxK,GAEElB,KAAKM,QAAQkC,OAAUsL,EAAQ9N,KAAKsE,MAAOyJ,EAAIC,EAAW7M,EAClE,CACkB,kBAAM8M,CACvBvC,EACAD,GAUA,OARKA,EAAQxE,IAAI,yBACTuE,EACJxL,KACAyL,EACAC,EACA/C,EAAAA,cAAcuD,OACdvD,gBAAcuF,OAEXxC,CACR,CAQkB,gBAAMyC,CACvBhD,KACGlK,GAEH,MAAME,IAAEA,EAAGD,QAAEA,EAAOgE,IAAEA,UACdlF,KAAKgH,OAAO/F,EAAM0H,EAAaA,cAACC,MAAM,IAC5CzD,IAAInF,KAAKmO,YAELtB,EAAiB1L,EAAI8F,IAAI,kBAC/B/B,EAAIoI,MAAM,mBAAmBT,GAC7B,MAAMnB,EAAW,IAAI1L,KAAKsE,MAU1B,OATAoH,EAAM1L,KAAKoC,IAAM+I,EACZ0B,SACGrB,EACJxL,KACAmB,EACAuK,EACA/C,EAAAA,cAAcC,KACdD,gBAAc4E,IAEX,CAACpC,KAAQjK,EACjB,CAQQ,UAAMkN,CACbL,KACG9M,GAEH,MAAME,IAAEA,EAAG+D,IAAEA,EAAGhE,QAAEA,GAAYlB,KAAKgH,OACjC/F,EACAjB,KAAKoO,MAEPlJ,EAAImB,MACF,WAAWrG,KAAKsE,MAAMpG,mBAAmBiE,EAAAA,MAAMiD,UAAUpF,KAAKsE,kBAAkBtE,KAAKoC,MAGvF,MAAMwB,QAAU5D,KAAKM,QAAQ8N,KAC3B3N,EAAQA,SAACC,OAAOV,KAAKsE,OACrByJ,KACG7M,GAEL,OAAOlB,KAAKM,QAAQkC,OAAUoB,EAAG5D,KAAKsE,MAAOyJ,OAAItL,EAAWtB,EAC7D,CACkB,gBAAMkN,CACvB3C,EACAD,GAUA,OARKA,EAAQxE,IAAI,yBACTuE,EACJxL,KACAyL,EACAC,EACA/C,EAAAA,cAAcC,KACdD,gBAAcuF,OAEXxC,CACR,CAUkB,kBAAM4C,CACvB5C,KACGzK,GAEH,MAAME,IAAEA,EAAGD,QAAEA,EAAOgE,IAAEA,UACdlF,KAAKgH,OAAO/F,EAAM0H,EAAaA,cAACwB,QAAQ,IAC9ChF,IAAInF,KAAKsO,cACLzB,EAAiB1L,EAAI8F,IAAI,kBACzBoG,EAAiBlM,EAAI8F,IAAI,oBAC/B/B,EAAIoI,MACF,mBAAmBT,yBAAsCQ,KAE3D,MAAMjL,EAAKsJ,EAAM1L,KAAKoC,IACtB,IAAKA,EACH,MAAM,IAAIoC,EAAaA,cACrB,qDAAqDxE,KAAKoC,IAE9D,IAAIyJ,EAgBJ,GAfI1K,EAAI8F,IAAI,2BACV4E,QAAiB7L,KAAKoO,KAAKhM,EAAcjB,GACrCA,EAAI8F,IAAI,oBACVyE,EAAQvJ,EAAKA,MAACoM,MAAM1C,EAAUH,EAAO1L,KAAKsE,SAEzCuI,SACGrB,EACJxL,KACAmB,EACAuK,EACA/C,gBAAcwB,OACdxB,EAAaA,cAAC4E,GACd1B,IAGCwB,EAAgB,CACnB,MAAMG,EAAgBrM,EAAI8F,IAAI,gCAAkC,GAChE/B,EAAIoI,MAAM,kCAAkCE,GAC5C,MAAMC,QAAejB,QAAQkB,QAC3BhC,EAAMiC,UACJ9B,KACG1J,EAAAA,MAAM4B,UAAU/D,KAAKsE,UACrBkJ,IAGP,GAAIC,EAAQ,MAAM,IAAIG,EAAeA,gBAACH,EAAO7G,WAC9C,CACD,MAAO,CAAC8E,KAAUxK,EAAS2K,EAC5B,CASQ,YAAM2C,CACb9C,KACGzK,GAEH,MAAMC,QAAEA,EAAOgE,IAAEA,EAAG/D,IAAEA,GAAQnB,KAAKgH,OACjC/F,EACAjB,KAAKwO,QAGP,IAAIV,OAAEA,EAAMC,GAAEA,EAAEC,UAAEA,GAAchO,KAAKM,QAAQQ,QAAQ4K,GAAO,EAAOvK,GAUnE,OATA+D,EAAImB,MACF,YAAYrG,KAAKsE,MAAMpG,iBAAiBiE,EAAKA,MAACiD,UAAUpF,KAAKsE,kBAAkByJ,KAEjFD,QAAe9N,KAAKM,QAAQkO,OAC1B/N,EAAAA,SAASC,OAAOV,KAAKsE,OACrByJ,EACArC,KACGxK,GAEElB,KAAKM,QAAQkC,OAAUsL,EAAQ9N,KAAKsE,MAAOyJ,EAAIC,EAAW7M,EAClE,CAEkB,kBAAMsN,CACvB/C,EACAG,EACAJ,GAWA,OATKA,EAAQxE,IAAI,yBACTuE,EACJxL,KACAyL,EACAC,EACA/C,gBAAcwB,OACdxB,EAAaA,cAACuF,MACdrC,GAEGH,CACR,CASQ,YAAM,CACbqC,KACG9M,GAEH,MAAME,IAAEA,EAAG+D,IAAEA,EAAGhE,QAAEA,GAAYlB,KAAKgH,OACjC/F,EACAjB,KAAK0O,QAEPxJ,EAAImB,MACF,gBAAgBrG,KAAKsE,MAAMpG,iBAAiBiE,EAAKA,MAACiD,UAAUpF,KAAKsE,kBAAkByJ,KAGrF,MAAMnK,QAAU5D,KAAKM,QAAQoO,OAC3BjO,EAAQA,SAACC,OAAOV,KAAKsE,OACrByJ,KACG7M,GAEL,OAAOlB,KAAKM,QAAQkC,OAAUoB,EAAG5D,KAAKsE,MAAOyJ,OAAItL,EAAWtB,EAC7D,CAEkB,kBAAMwN,CACvBjD,EACAD,GAUA,OARKA,EAAQxE,IAAI,yBACTuE,EACJxL,KACAyL,EACAC,EACA/C,EAAAA,cAAciG,OACdjG,gBAAcuF,OAEXxC,CACR,CASkB,qBAAMmD,CACvBtE,KACGtJ,GAEH,MAAME,IAAEA,EAAGD,QAAEA,EAAOgE,IAAEA,UACdlF,KAAKgH,OAAO/F,EAAM6N,EAAqBA,sBAACC,YAAY,IAC1D5J,IAAInF,KAAK6O,iBACLhC,EAAiB1L,EAAI8F,IAAI,kBACzBoG,EAAiBlM,EAAI8F,IAAI,oBAI/B,GAHA/B,EAAIoI,MACF,mBAAmBT,yBAAsCQ,MAEtD9C,EAAO3F,OAAQ,MAAO,CAAC2F,KAAWrJ,GACvC,MAAMK,EAAOY,EAAAA,MAAM6M,YAAYzE,EAAO,IACtC,IAAI0E,EAAgD,GAChD9M,QAAM+M,oBAAoBlP,KAAKsE,QAC5B/C,EAAKrD,OAAMqD,EAAKrD,KAAOiE,QAAMgN,aAAa5E,EAAO,GAAI,OAC1D0E,cACQjP,KAAKM,QAAQmI,SAASlH,IAC5B6I,MAAMG,EAAO3F,UAAW1D,IAChBiB,EAAKA,MAACiN,UAAUpP,KAAKsE,MAAOtE,KAAKoC,MAC3C6M,EAAM1E,EAAOjI,IAAI,CAACsB,EAAGyG,KACnB,QAA0B,IAAfzG,EAAE5D,KAAKoC,IAChB,MAAM,IAAIoC,EAAAA,cACR,oDAAoD6F,GAExD,OAAOzG,EAAE5D,KAAKoC,OAMlBmI,QAAeiC,QAAQC,IACrBlC,EAAOjI,IAAIiJ,MAAO3H,EAAGyG,KACnBzG,EAAI,IAAI5D,KAAKsE,MAAMV,GACfrC,EAAK+H,OACP1F,EAAE5D,KAAKoC,IACS,WAAdb,EAAK+H,MAED/H,EAAK6N,UADLH,EAAI5E,GAGF,GAAGzG,EAAE5D,KAAKoC,KAGfyK,SACGrB,EACJxL,KACAmB,EACAyC,EACA+E,EAAAA,cAAcuD,OACdvD,gBAAc4E,IAEX3J,KAGX,MAAMyL,EAAYlO,EAAIkO,WAAa,IAAIC,KAOvC,GANA/E,EAASA,EAAOjI,IAAKsB,IACf,cAAeA,GAAGpC,OAAOC,OAAOmC,EAAG,CAAE2L,UAAWF,IAChD,cAAezL,GAAGpC,OAAOC,OAAOmC,EAAG,CAAE4L,UAAWH,IAC7CzL,KAGJyJ,EAAgB,CACnB,MAAMoC,EAAetO,EAAI8F,IAAI,gCAAkC,GAC/D/B,EAAIoI,MAAM,kCAAkCmC,GAE5C,MAAMhC,QAAejB,QAAQC,IAC3BlC,EAAOjI,IAAKsB,GAAM4I,QAAQkB,QAAQ9J,EAAE+J,aAAa8B,MAG7CC,EAAgBC,sBAAoBlC,GAE1C,GAAIiC,EAAe,MAAM,IAAI9B,EAAAA,gBAAgB8B,EAC9C,CACD,MAAO,CAACnF,KAAWrJ,EACpB,CASQ,eAAM0O,CACbrF,KACGtJ,GAEH,IAAKsJ,EAAO3F,OAAQ,OAAO2F,EAC3B,MAAMpJ,IAAEA,EAAG+D,IAAEA,EAAGhE,QAAEA,GAAYlB,KAAKgH,OACjC/F,EACAjB,KAAK4P,WAEP1K,EAAImB,MACF,YAAYkE,EAAO3F,cAAc5E,KAAKsE,MAAMpG,iBAAiBiE,EAAAA,MAAMiD,UAAUpF,KAAKsE,UAGpF,MAAMuL,EAAWtF,EAAOjI,IAAKsB,GAAM5D,KAAKM,QAAQQ,QAAQ8C,GAAG,EAAOzC,IAC5D8N,EAAMY,EAASvN,IAAKmB,GAAMA,EAAEsK,IAClC,IAAI+B,EAAUD,EAASvN,IAAKmB,GAAMA,EAAEqK,QAOpC,OANAgC,QAAgB9P,KAAKM,QAAQsP,UAC3BnP,EAAAA,SAASC,OAAOV,KAAKsE,OACrB2K,EACA1E,KACGrJ,GAEE4O,EAAQxN,IAAI,CAACyJ,EAAG1B,IACrBrK,KAAKM,QAAQkC,OACXuJ,EACA/L,KAAKsE,MACL2K,EAAI5E,GACJlJ,EAAI8F,IAAI,wBAA0B4I,EAASxF,GAAG2D,eAAYvL,EAC1DtB,GAGL,CAEkB,qBAAM4O,CACvBxF,EACAkB,GAcA,OAZKA,EAAQxE,IAAI,yBACTuF,QAAQC,IACZlC,EAAOjI,IAAKsB,GACV4H,EACExL,KACAyL,EACA7H,EACA+E,EAAAA,cAAcuD,OACdvD,EAAAA,cAAcuF,SAIf3D,CACR,CASQ,aAAMyF,CACbjN,KACG9B,GAEH,MAAME,IAAEA,EAAG+D,IAAEA,EAAGhE,QAAEA,GAAYlB,KAAKgH,OACjC/F,EACAjB,KAAKgQ,SAWP,OATA9K,EAAImB,MACF,WAAWtD,EAAK6B,UAAU5E,KAAKsE,MAAMpG,iBAAiBiE,EAAAA,MAAMiD,UAAUpF,KAAKsE,iBAGvDtE,KAAKM,QAAQ0P,QACjCvP,EAAQA,SAACC,OAAOV,KAAKsE,OACrBvB,KACG7B,IAEUoB,IAAI,CAACyJ,EAAG1B,IACrBrK,KAAKM,QAAQkC,OAAOuJ,EAAG/L,KAAKsE,MAAOvB,EAAKsH,QAAI5H,EAAWtB,GAE1D,CACkB,mBAAM8O,CACvB1F,EACAkB,GAcA,OAZKA,EAAQxE,IAAI,yBACTuF,QAAQC,IACZlC,EAAOjI,IAAKsB,GACV4H,EACExL,KACAyL,EACA7H,EACA+E,EAAAA,cAAcC,KACdD,EAAAA,cAAcuF,SAIf3D,CACR,CAUkB,qBAAM2F,CACvB3F,KACGtJ,GAEH,MAAME,IAAEA,EAAGD,QAAEA,EAAOgE,IAAEA,UACdlF,KAAKgH,OAAO/F,EAAM6N,EAAqBA,sBAACqB,YAAY,IAC1DhL,IAAInF,KAAKkQ,iBAELrD,EAAiB1L,EAAI8F,IAAI,kBACzBoG,EAAiBlM,EAAI8F,IAAI,oBAC/B/B,EAAIoI,MACF,mBAAmBT,yBAAsCQ,KAE3D,MAAM4B,EAAM1E,EAAOjI,IAAKsB,IACtB,MAAMmK,EAAKnK,EAAE5D,KAAKoC,IAClB,IAAK2L,EAAI,MAAM,IAAIvJ,EAAAA,cAAc,kCACjC,OAAOuJ,IAET,IAAIqC,EAsBJ,GArBIjP,EAAI8F,IAAI,2BACVmJ,QAAkBpQ,KAAKgQ,QAAQf,EAAiB9N,GAC5CA,EAAI8F,IAAI,oBACVsD,EAASA,EAAOjI,IAAI,CAACsB,EAAGyG,IACtBlI,EAAKA,MAACoM,MAAO6B,EAAkB/F,GAAIzG,EAAG5D,KAAKsE,UAG5CuI,SACGL,QAAQC,IACZlC,EAAOjI,IAAI,CAACsB,EAAGyG,IACbmB,EACExL,KACAmB,EACAyC,EACA+E,gBAAcwB,OACdxB,EAAaA,cAAC4E,GACd6C,EAAYA,EAAU/F,QAAK5H,MAK9B4K,EAAgB,CACnB,MAAMoC,EAAetO,EAAI8F,IAAI,gCAAkC,GAE/D,IAAIoJ,EADJnL,EAAIoI,MAAM,kCAAkCmC,GAO1CY,EALGlP,EAAI8F,IAAI,+BAKcuF,QAAQC,IAC/BlC,EAAOjI,IAAI,CAACsB,EAAGyG,IACbmC,QAAQkB,QACN9J,EAAE+J,UAAWyC,EAAkB/F,MAAcoF,YAP1BjD,QAAQkB,QAC/BnD,EAAOjI,IAAKsB,GAAMA,EAAE+J,aAAa8B,KAYrC,MAAMC,EAAgBC,sBAAoBU,GAE1C,GAAIX,EAAe,MAAM,IAAI9B,EAAAA,gBAAgB8B,EAC9C,CACD,MAAO,CAACnF,KAAWrJ,EAASkP,EAC7B,CASQ,eAAME,CACb/F,KACGtJ,GAEH,MAAME,IAAEA,EAAG+D,IAAEA,EAAGhE,QAAEA,GAAYlB,KAAKgH,OACjC/F,EACAjB,KAAKsQ,WAEPpL,EAAIqL,QACF,YAAYhG,EAAO3F,cAAc5E,KAAKsE,MAAMpG,iBAAiBiE,EAAAA,MAAMiD,UAAUpF,KAAKsE,UAGpF,MAAMwL,EAAUvF,EAAOjI,IAAKsB,GAAM5D,KAAKM,QAAQQ,QAAQ8C,GAAG,EAAOzC,IAOjE,aANsBnB,KAAKM,QAAQgQ,UACjC7P,WAASC,OAAOV,KAAKsE,OACrBwL,EAAQxN,IAAKyJ,GAAMA,EAAEgC,IACrBxD,KACGrJ,IAEUoB,IAAI,CAACkO,EAAGnG,IACrBrK,KAAKM,QAAQkC,OACXgO,EACAxQ,KAAKsE,MACLwL,EAAQzF,GAAG0D,GACX5M,EAAI8F,IAAI,wBAA0B6I,EAAQzF,GAAG2D,eAAYvL,EACzDtB,GAGL,CACkB,qBAAMsP,CACvBlG,EACA6F,EACA3E,GAEA,GACEA,EAAQxE,IAAI,2BACXwE,EAAQxE,IAAI,yBAERmJ,EACH,MAAM,IAAI5L,EAAAA,cAAc,2CAe5B,OAbKiH,EAAQxE,IAAI,yBACTuF,QAAQC,IACZlC,EAAOjI,IAAI,CAACsB,EAAGyG,IACbmB,EACExL,KACAyL,EACA7H,EACA+E,gBAAcwB,OACdxB,EAAaA,cAACuF,MACdkC,EAAYA,EAAU/F,QAAK5H,KAI5B8H,CACR,CASQ,eAAMmG,CACb3N,KACG9B,GAEH,MAAME,IAAEA,EAAG+D,IAAEA,EAAGhE,QAAEA,GAAYlB,KAAKgH,OACjC/F,EACAjB,KAAK6N,QAWP,OATA3I,EAAImB,MACF,YAAYtD,EAAK6B,UAAU5E,KAAKsE,MAAMpG,iBAAiBiE,EAAAA,MAAMiD,UAAUpF,KAAKsE,iBAGxDtE,KAAKM,QAAQoQ,UACjCjQ,EAAQA,SAACC,OAAOV,KAAKsE,OACrBvB,KACG7B,IAEUoB,IAAI,CAACyJ,EAAG1B,IACrBrK,KAAKM,QAAQkC,OAAOuJ,EAAG/L,KAAKsE,MAAOvB,EAAKsH,QAAI5H,EAAWtB,GAE1D,EC7wBI,IAAMwP,EAAN,MACL,WAAA5S,CACYuC,EACSsQ,GAOnB,GARU5Q,KAAOM,QAAPA,EACSN,KAAO4Q,QAAPA,GAOd5Q,KAAKM,QACR,MAAM,IAAIkE,EAAaA,cAAC,0CAC3B,CAQD,iBAAMqM,CAAYC,GAChB,MAAM/S,EAAc+S,EAAMC,OAAOhT,YAC3BoD,QAAYnB,KAAKM,QAAQmL,QAC7B9C,EAAAA,cAAcuD,OACd,GACAnO,GAEFiC,KAAK4Q,QACH7S,EACA4K,EAAAA,cAAcuD,OACd4E,EAAME,SACNF,EAAMC,OACN5P,EAEH,CAQD,iBAAM8P,CAAYH,GAChB,MAAM/S,EAAc+S,EAAMI,SAASC,OAC7BhQ,QAAYnB,KAAKM,QAAQmL,QAC7B9C,EAAAA,cAAciG,OACd,GACA7Q,GAEFiC,KAAK4Q,QAAQ7S,EAAa4K,EAAaA,cAACiG,OAAQ,GAAI,CAAA,EAAIzN,EACzD,CAQD,iBAAMiQ,CAAYN,GAChB,MAAM/S,EAAc+S,EAAMO,eAAetT,YACnCoD,QAAYnB,KAAKM,QAAQmL,QAC7B9C,EAAAA,cAAcwB,OACd,GACApM,GAEF,OAAOiC,KAAK4Q,QACV7S,EACA4K,EAAAA,cAAcwB,OACb2G,EAAMC,OAAe5O,EAAAA,MAAMC,GAAGrE,IAC/B+S,EAAMC,OACN5P,EAEH,GAxEUwP,EAAsBW,aAAA,CADlCC,sDAGsBC,EAAOA,QAAAC,YAFjBd,GCHP,MAAOe,UAAwBC,EAAAA,SAGnC,WAAA5T,GACEE,OACD,CAqBS,yBAAM2T,CACdC,EACAlG,EACAsD,KACGhO,GAEH,MAAMiE,IAAEA,EAAGhE,QAAEA,GAAYlB,KAAKgH,OAAO/F,EAAMjB,KAAK4R,qBAChD,UAEQ5R,KAAK8R,gBAAgBD,EAAOlG,EAAWsD,KAAQ/N,GACrDgE,EAAIqL,QAAQ,kCAAkC5E,SAAiBkG,KAC/D3M,EAAImB,MAAM,QAAQ4I,EACnB,CAAC,MAAOpI,GACP3B,EAAI6M,MAAM,mCAAmClL,EAC9C,CACF,CA4BkB,gBAAMmL,IACpB/Q,GAqBH,MAAMiE,IAAEA,UACAlF,KAAKgH,OAAO/F,EAAMoK,kBAAgB4G,gBAAgB,IACxD9M,IAAInF,KAAKgS,aArBXzG,iBACE,IAAKvL,KAAKM,QACR,MAAM,IAAIkE,EAAaA,cAAC,2CAE1B,IACOxE,KAAKM,QAAQC,OAAO2R,qBACjBlS,KAAKM,QAAQC,OAAOyR,aAE5BhS,KAAKM,QAAQC,OAAO4R,YAAY1N,KAC9B,IAAIkM,EACF3Q,KAAKM,QACLN,KAAK4R,oBAAoBQ,KAAKpS,OAGnC,CAAC,MAAO6G,GACP,MAAM,IAAIrC,EAAAA,cAAcqC,EACzB,CACF,GAOEwL,KAAKrS,MACLsS,KAAK,KACJpN,EAAIqN,KAAK,yCAEVC,MAAO3L,IACN,MAAM,IAAIrC,EAAAA,cACR,iDAAiDqC,IAGxD,CAEQ,qBAAMiL,CACbD,EACAlG,EACAsD,KACGhO,GAMH,GAAKjB,KAAKM,QAMV,OAAOrC,MAAM6T,gBAAgBD,EAAOlG,EAAWsD,KAAQhO,GALrDjB,KAAKkF,IAAIqL,QACP,kEAAkEsB,KAASlG,IAKhF,WC5Ja8G,EACdtB,EACAuB,EACAC,GAEA,IAAIC,EAAgB,EACpB,MAAMC,EAAOF,EAAQG,OAAO,CAACC,EAAuB1I,KAClDuI,EAAQvI,EACD0I,EAAE5B,SAAWA,GAAU4B,EAAEC,eAAiBN,IAEnD,OAAKG,EAAKjO,QACV+N,EAAQM,OAAOL,EAAO,GACfpR,OAAO0J,QAAQ2H,EAAK,GAAGnK,SAAS1E,OACrC,CAACC,GAA6BkH,EAAK+H,MACjC,OAAQ/H,GACN,IAAK,WACHlH,EAAMkH,GAAO+H,EACb,MACF,KAAK5G,EAAcA,eAAC6G,KAElB,MACF,QACE,MAAM,IAAIjM,EAAAA,iBACR,sCAAsCiE,GAG5C,OAAOlH,GAET,CAAE,IAlBqB,EAoB3B,UAEgBmP,EACdjC,EACAuB,EACAC,EACAjK,EAAe,CAAE,EACjB2K,EAAe,UACftP,EACAgH,GAEA,MAAM8H,EAAOF,EAAQG,OAClBC,GACCA,EAAE5B,SAAWA,GAAU4B,EAAEC,eAAiBN,GAGxC5O,EAAOC,EAAU+O,OACpBC,GACCA,EAAE5B,SAAWA,GAAU4B,EAAEC,eAAiBN,GAa9C,GAVI3H,GACWA,EAAQ+H,OAClBC,GACCA,EAAE5B,SAAWA,GAAW4B,EAAEJ,QAAqBhO,SAAS+N,IAEvD1H,QAASX,IACZ7I,OAAOC,OAAO4I,EAAG3B,KAIjBmK,EAAKjO,OAAS,EAChB,MAAM,IAAIJ,EAAaA,cACrB,wBAAwBkO,6BAAoCC,EAAQrQ,IAAKyQ,GAAMA,EAAEC,cAAcnI,KAAK,SAExG,GAAI/G,EAAKc,OAAS,EAChB,MAAM,IAAIJ,EAAaA,cACrB,0BAA0BkO,6BAAoC5O,EAAKxB,IAAKyQ,GAAMA,EAAEC,cAAcnI,KAAK,SAEvG,IAAIyI,EAEgB,IAAhBT,EAAKjO,QAAiBd,EAAKc,QAQnBd,EAAKc,SACf0O,EAAST,EAAK,GACD,YAATQ,GACF7R,OAAO+R,eAAeD,EAAQ,OAAQ,CACpClI,MAAOiI,EACPG,UAAU,EACVC,YAAY,EACZC,cAAc,KAIhB5P,EAAKc,SACP8D,EAAUlH,OAAO0J,QAAQxC,GAAS1E,OAChC,CAACC,GAA6BkH,EAAK+H,MAE1B,aADC/H,IAEJlH,EAAMkH,GAAO+H,GAKVjP,GAET,CAAE,IAGNqP,EAASA,GAAUxP,EAAK,GAExBtC,OAAO+R,eAAeD,EAAQ,UAAW,CACvClI,MAAO,IAAKkI,EAAO5K,WAAYA,GAC/B8K,UAAU,EACVC,YAAY,EACZC,cAAc,KAvCdf,EAAQlO,KAAK,CACX0M,OAAQA,EACR6B,aAAcN,EACdW,KAAMA,EACN3K,QAASA,GAqCf,CCIgB,SAAAiL,EACdC,EAIAlL,GAEA,MAAO,CAAUmL,EAAgBb,KAE/B,IAAI1J,EAEuB,iBAAlBsK,GACkB,mBAAlBA,EAEPtK,EAAmBsK,EACVA,IACTlL,EAAyBkL,EACzBtK,EAAOsK,EAActK,MAElBZ,IAASA,EAAU,CAAA,GAGxB,IAAIoL,EACFC,SAAYA,QAAgBC,YACvBD,QAAgBC,YAAY,cAAeH,EAAQb,QACpDvQ,GACD6G,GAAQwK,IAEXxK,EAAOwK,GACT,MAAMG,EAAcxT,EAAQA,SAACyT,aAC3BL,EAAO9V,YACPiV,GACA,GAaF,GAZIiB,IAAgBH,IAClBxK,EAAO2K,EACPH,EAAsBG,IAInBvL,EAAQY,MAAQA,IAAMZ,EAAQY,KAAOA,GAGrB,WAAjBZ,EAAQY,MAAsBZ,EAAQyL,aACxCzL,EAAQyL,WAAaL,IAAwBtS,OAAS,SAAW,UAEtC,mBAAlBoS,EAETQ,2BAAyBC,UAAU5P,KAAK,CACtC0M,OAAQ0C,EAAO9V,YACfiV,aAAcA,EACd9J,QAAS4K,IAAwB7K,QAA2B,IAAlBP,EAAQ4L,MAClD1I,YAA2BnJ,IAAnBiG,EAAQkD,OAAuBlD,EAAQkD,YAASnJ,EAExD6G,KAAMsK,QAEH,CAIL,IAAKlL,EAAQY,KACX,MAAM,IAAIiL,EAAwBA,yBAACV,EAAQb,IAGtB,IAAnBtK,EAAQ8L,QACVJ,2BAAyBK,QAAQhQ,KAAK,CACpC0M,OAAQ0C,EAAO9V,YACf4U,QAAS,CAACK,KAGd,MAAM9B,EAAWkD,EAAAA,yBACjBhB,EACES,EAAO9V,YACPiV,EACA9B,EAASyB,QACTjK,EACA,UACAwI,EAASnN,UACT2E,EAAQ8L,OAAStD,EAASwD,aAAUjS,GAGlCiG,EAAQ0G,WACVgF,2BAAyBO,YAAYlQ,KAAK,CACxC0M,OAAQ0C,EAAO9V,YACfiV,aAAcA,EACd4B,SAC+B,iBAAtBlM,EAAQ0G,UACX1G,EAAQ0G,UACR,aAGX,CACH,CACF,OCxNayF,EAMX,eAAOC,CAAS5B,GACd,OAAe,OAARA,GAA+B,iBAARA,CAC/B,CAOD,uBAAO6B,CAAiB7B,GACtB,OAAe,OAARA,GAA+B,iBAARA,QAAoCzQ,IAAhByQ,EAAU,IAC7D,CAwCD,aAAOzR,CAAO0P,KAAmB6D,GAC/B,IAAK,MAAMtR,KAAUsR,EACnB,IAAK,MAAMC,KAAQzT,OAAO0T,oBAAoBxR,GAC3CyN,EAAe8D,GAAQvR,EAAOuR,EAGpC,ECkBa,SAAAE,EACdC,EAQAC,GAMA,MAAM3M,EAAyB,CAAA,EAC/B,IAAIkM,EAkBJ,OAjBIQ,GAC+B,iBAAtBA,IACTR,EAAWQ,GAMTP,EAAYC,SAASM,KACvBR,EAAW,YACXpT,OAAOC,OAAOiH,EAAS0M,KAGzBR,EAAW,YAETC,EAAYC,SAASO,IAAe7T,OAAOC,OAAOiH,EAAS2M,GAExD,CAAUxB,EAAab,KAEvBtK,EAAQY,OACM,cAAbsL,GAAyC,aAAbA,EAC9BlM,EAAQY,KAAOgM,OACO,SAAbV,EACTlM,EAAQY,KAAO,OACO,UAAbsL,IACTlM,EAAQY,KAAO,QAKnBZ,EAAQ6M,SAAU,EAElB,MAAMrE,EAAWkD,EAAAA,yBACjBhB,EACES,EAAO9V,YACPiV,EACA9B,EAASyB,QACTjK,EACA,UACAwI,EAASnN,WAGXqQ,2BAAyBO,YAAYlQ,KAAK,CACxC0M,OAAQ0C,EAAO9V,YACfiV,aAAcA,EACd4B,SAAUA,GAEd,CACF,CC9HgB,SAAAY,EACdC,EACAJ,GAEA,MAAM3M,GACHmM,EAAYC,SAASW,GACjBA,EACDJ,IAAiB,CAAA,EACjBnX,EAAgC,iBAAlBuX,EAA6BA,EAAgB/M,EAAQxK,KAEzE,OAAiBiT,IACAiD,2BAAyBsB,OACjCjR,KAAK,CACV0M,OAAQA,EACRjT,KAAMA,EACNoL,KAAM,UACNpD,QAASwC,EAAQxC,QAAUwC,EAAQxC,aAAUzD,EAC7CkT,OAAQjN,EAAQiN,OAASjN,EAAQiN,YAASlT,EAC1CmT,SAAUlN,EAAQkN,SAAWlN,EAAQkN,cAAWnT,EAChDoT,OAAQnN,EAAQmN,OAASnN,EAAQmN,YAASpT,EAC1CqT,YAAapN,EAAQoN,YACrBC,aAAcrN,EAAQqN,aACtBC,QAAStN,EAAQsN,QAAUtN,EAAQsN,aAAUvT,GAEjD,CACF,CC6DO8I,eAAe0K,EAKpBxK,EACAyK,EACA/K,EACAO,GAEA,IACE,MAAMyK,EAAO1K,EAAQxE,IAAI,QACzByE,EAAMP,GAAOgL,CAEd,CAAC,MAAOtP,GACP,MAAM,IAAIrC,EAAAA,cACR,iEAEH,CACH,CAkCM,MAAO4R,UAAuB5E,EAAAA,QAMzB,SAAA6E,GACP,MACMC,EADS9E,EAAOA,QAACjH,OAAOvK,KAAKuW,OACXjU,IAAI7B,EAAQA,SAACC,QACrC,OAAO,IAAI8V,EAAUA,WACnBhV,OAAOC,OAAO,CAAE,EAAEzB,KAAKyW,OAAQ,CAAEH,SAAUA,IAE9C,CAED,WAAAvY,CAAY2K,EAA4B6N,GACtCtY,MAAMyK,EAASvL,EAAgBoZ,EAChC,CAEQ,cAAMG,SACPzY,MAAMyY,WACR1W,KAAK2W,eACD3W,KAAK2W,QAAQC,SAEtB,CAEkB,WAAMC,CACvBlL,EACAD,EACAmL,GAEA,OAAO5Y,MAAM4Y,MACXlL,EACAD,EACAlK,OAAOC,OACL,CACE0U,KAAOnW,KAAKyW,OAAqCK,UAEnDD,GAGL,CAGkB,QAAAlF,GACjB,OAAO,IAAID,CACZ,CAGQ,UAAAqF,GAMP,OAAOrK,CACR,CAQD,SAAA1H,GACE,OAAO,IAAID,EAAiB/E,KAC7B,CAEQ,SAAAF,CACPc,EACAC,EACAF,GAEA,OAAO,IAAId,EAAiBG,KAAMY,EAAOC,EAAMF,EAChD,CASQ,cAAM8H,CAASC,GACtB,OAAO,IAAIF,EAAgBE,EAAS1I,KACrC,CAOQ,gBAAMgS,IACV/Q,GAEH,MAAMiE,IAAEA,UACAlF,KAAKgH,OAAO/F,EAAMoK,kBAAgB4G,gBAAgB,IACxD9M,IAAInF,KAAKgS,YACLgF,EAAKhX,KAAKO,OAChB,UACQyW,EAAGhF,YACV,CAAC,MAAOnL,GACP,MAAM7G,KAAKoJ,WAAWvC,EACvB,CACD3B,EAAIqL,QAAWvQ,KAAK4G,WAAR,eACb,CAUS,WAAMgM,IACXrI,UAIKvK,KAAKgH,OAAOuD,EAAQc,EAAeA,gBAACzN,OAAO,IACjDuH,IAAInF,KAAK4S,OACX,MAAM7H,EAA0BT,EAC9BC,GAGF,UACQvK,KAAKO,OAAOK,MAAM,SAExB,IAAK,MAAMgS,KAAS7H,QACZ/K,KAAKO,OAAOK,MAAMgS,EAAMhS,MAAOgS,EAAMzK,cAGvCnI,KAAKO,OAAOK,MAAM,SACzB,CAAC,MAAOiG,GAEP,YADM7G,KAAKO,OAAOK,MAAM,YAClBZ,KAAKoJ,WAAWvC,EACvB,CACF,CASQ,SAAMC,CACbxB,EAEA2R,GAAc,KACXhW,GAEH,MAAMiE,IAAEA,GAAQlF,KAAKgH,OAAO/F,EAAMjB,KAAK8G,KACvC,IACO9G,KAAKO,OAAO2R,qBAAqBlS,KAAKO,OAAOyR,YACnD,CAAC,MAAOnL,GACP,MAAM7G,KAAKoJ,WAAWvC,EACvB,CACD,IACE,MAAMjG,MAAEA,EAAKuH,OAAEA,GAAW7C,EAK1B,OAJAJ,EAAImB,MACF,qBAAqC,iBAAVzF,EAAsBA,EAA6CsW,SAAWtW,UAEpFZ,KAAKO,OAAOK,MAAMA,EAAOuH,EAEjD,CAAC,MAAOtB,GACP,MAAM7G,KAAKoJ,WAAWvC,EACvB,CACF,CAEQ,OAAA/F,CACP4K,EACAyL,GAAQ,EACRhW,GAEA,MAAM0O,EAAW5R,MAAM6C,QAAQ4K,EAAOvK,GAEtC0O,EAAS/B,OAAStM,OAAO0J,QAAQ2E,EAAS/B,QAAQ9J,OAChD,CAACC,GAA6BkH,EAAKC,MAC7BD,IAAQE,EAAAA,gBAAgB+L,UAAYpX,KAAKqX,WAAWlM,SAE1C1I,IAAV2I,IAIAA,aAAiBkE,KACnBlE,EAAQ,IAAIkE,KAAKlE,EAAMkM,WACdnV,EAAKA,MAACoV,QAAQnM,GACvBA,EAAQpL,KAAKc,QAAQsK,GAAO,EAAMjK,GAAK2M,OAGhC,iBADQ1C,IAEXA,EAAQ,GAAGA,GAMjBnH,EAAMkH,GAAOC,GAlBJnH,GAqBX,CAAE,GAEJ,MAAMvD,EAAuCyB,EAAAA,MAAM8E,IACjDyE,EAAM3N,YAAYG,MAEpB,IAAKwC,EACH,MAAM,IAAI8D,EAAAA,cACR,SAASkH,EAAM3N,YAAYG,8BAE/B,MAAM2D,EAASsV,EACX,IAAK1W,EAAQA,SAACC,OAAOA,IACrB,IAAIA,EAYR,OAXIyW,GACF3V,OAAO+R,eAAe1R,EAAQ,cAAe,CAC3C6R,cAAc,EACdD,YAAY,EACZrI,MAAO3K,EAAQA,SACf+S,UAAU,IAEdhS,OAAO0J,QAAQ2E,EAAS/B,QAAQ9C,QAC9B,EAAEG,EAAK+H,KAAUrR,EAAOsJ,GAA8B+H,GAExDrD,EAAS/B,OAASjM,EACXgO,CACR,CAEQ,MAAArN,CACPgV,EACA7W,EACAoN,EACAC,KACG/M,GAEH,MAAMiE,IAAEA,GAAQlF,KAAKgH,OAAO/F,EAAMjB,KAAKwC,QAcvC,OAbIwL,IACF9I,EAAIqL,QACF,mCAAmC/O,OAAOuB,KAAKiL,GAAWnD,KAAK,OAEjErJ,OAAO0J,QAAQ8C,GAAWhD,QAAQ,EAAEG,EAAK+H,MACvC,GAAI/H,KAAOqM,QAA+C,IAAjCA,EAAIrM,GAC3B,MAAM,IAAI3G,EAAAA,cACR,sBAAsB2G,6BAAgD,iBAAVxK,EAAqBA,EAAQA,EAAMzC,8BAElGsZ,EAAUrM,GAAkB+H,KAI1B,IAAKvS,EAAyB6W,EACtC,CAWQ,YAAM3J,CACbjK,EACAmK,EACArC,KAEGzK,GAEH,MAAMb,EAAeJ,KAAKO,OAAOC,cAAcoD,GAC/C,QAAkB,IAAPmK,EAAoB,CAC7B,MAAM3L,EAAKD,EAAAA,MAAMC,GAAGwB,GAMpB,SALuBxD,EAAKqX,QAAQ,CAClChR,MAAO,CACLrE,CAACA,GAAK2L,KAIR,MAAM,IAAI2J,EAAaA,cACrB,kCAAkCvV,QAAMiD,UAAUxB,eAAemK,IAGtE,CACD,IACE,aAAa3N,EAAKuX,KAAKjM,EACxB,CAAC,MAAO7E,GACP,MAAM7G,KAAKoJ,WAAWvC,EACvB,CACF,CAUQ,UAAMuH,CACbxK,EACAmK,KAEG9M,GAEH,IAAIY,EACJ,IACE,MAAMzB,EAAOJ,KAAKO,OAAOC,cAAcoD,IACjCc,SAAEA,EAAQX,UAAEA,GAAcJ,EAAoBC,GAC9CxB,EAAKD,EAAAA,MAAMC,GAAGwB,GACd0B,EAAoB,CACxBmB,MAAO,CACLrE,CAACA,GAAK2L,GAERhK,UAAWA,EACXsD,gBAAiB,CACftD,UAAWW,IAGf7C,QAAgBzB,EAAKwX,cAActS,EACpC,CAAC,MAAOuB,GACP,MAAM7G,KAAKoJ,WAAWvC,EACvB,CACD,OAAOhF,CACR,CAWQ,YAAM2M,CACb5K,EACAmK,EACArC,KACGzK,GAEH,MAAME,IAAEA,GAAQnB,KAAKgH,OAAO/F,EAAMjB,KAAKwO,cACjCxO,KAAKoO,KAAKxK,EAAGmK,EAAI5M,GACvB,IAEE,OADanB,KAAKO,OAAOC,cAAcoD,GAC3B+T,KAAKjM,EAClB,CAAC,MAAO7E,GACP,MAAM7G,KAAKoJ,WAAWvC,EACvB,CACF,CAUQ,YAAM,CACbjD,EACAmK,KACG9M,GAEH,MAAME,IAAEA,GAAQnB,KAAKgH,OAAO/F,EAAMjB,KAAK0O,QACjChD,QAAc1L,KAAKoO,KAAKxK,EAAGmK,EAAI5M,GACrC,IACE,MAAMf,EAAOJ,KAAKO,OAAOC,cAAcoD,GAGvC,aADkBxD,EAAKsO,OAAOX,GACvBrC,CACR,CAAC,MAAO7E,GACP,MAAM7G,KAAKoJ,WAAWvC,EACvB,CACF,CAEQ,eAAM+I,CACbhM,EACAmK,EACArC,KACGzK,GAEH,MAAME,IAAEA,EAAG+D,IAAEA,GAAQlF,KAAKgH,OAAO/F,EAAMjB,KAAK4P,WACtCiI,EAAa1V,EAAAA,MAAMiD,UAAUxB,GACnCsB,EAAImB,MAAM,YAAY0H,EAAGnJ,kBAAkBiT,WAE3C,IACE,MAAMzX,EAAOJ,KAAKO,OAAOC,cAAcoD,GACjC/B,QAA6BzB,EAAK0X,OAAOpM,GAC/C,OAAO1L,KAAKgQ,QACVpM,EACA/B,EAAOkW,YAAYzV,IAAKyL,GAAOA,EAAGA,IAClC5M,EAEH,CAAC,MAAO0F,GACP,MAAM7G,KAAKoJ,WAAWvC,EACvB,CACF,CAEQ,aAAMmJ,CACbpM,EACAmK,KAEG9M,GAEH,IAAK8M,EAAGnJ,OAAQ,MAAO,GACvB,MAAMM,IAAEA,GAAQlF,KAAKgH,OAAO/F,EAAMjB,KAAKgQ,SACjC6H,EAAa1V,EAAAA,MAAMiD,UAAUxB,GACnCsB,EAAImB,MAAM,WAAW0H,EAAGnJ,kBAAkBiT,WAE1C,IACE,MAAMzV,EAAKD,EAAAA,MAAMC,GAAGwB,GAEpB,OADa5D,KAAKO,OAAOC,cAAcoD,GAC3BoU,OAAO,CAAE5V,CAACA,GAAK6V,KAAGlK,IAC/B,CAAC,MAAOlH,GACP,MAAM7G,KAAKoJ,WAAWvC,EACvB,CACF,CAEQ,eAAMyJ,CACb3P,EACAsO,EACAvD,KACGzK,GAEH,MAAMiE,IAAEA,EAAGhE,QAAEA,GAAYlB,KAAKgH,OAAO/F,EAAMjB,KAAKsQ,WAC1CuH,EAAa1V,EAAAA,MAAMiD,UAAUzE,GACnCuE,EAAImB,MAAM,YAAY4I,EAAIrK,kBAAkBiT,WAC5C,MAAMhW,EAAS,GACTO,EAAKD,EAAAA,MAAMC,GAAGzB,GACpB,IAAK,MAAMiD,KAAK8H,EACd7J,EAAO4C,WAAWzE,KAAKwO,OAAO7N,EAAOiD,EAAExB,GAAKwB,KAAM1C,IAEpD,OAAOW,CACR,CAEQ,eAAM6O,CACb9M,EACAqL,KACGhO,GAEH,IAAKgO,EAAIrK,OAAQ,MAAO,GACxB,MAAM1D,QAAEA,EAAOgE,IAAEA,GAAQlF,KAAKgH,OAAO/F,EAAMjB,KAAK0Q,WAC1CmH,EAAa1V,EAAAA,MAAMiD,UAAUxB,GACnCsB,EAAImB,MAAM,YAAY4I,EAAIrK,uBAAuBiT,WACjD,IACE,MAAMzX,EAAOJ,KAAKO,OAAOC,cAAcoD,GACjC2G,QAAevK,KAAKgQ,QAAQpM,EAAGqL,KAAQ/N,GACvCkB,EAAKD,EAAAA,MAAMC,GAAGwB,GAEpB,aADMxD,EAAKsO,OAAO,CAAEtM,CAACA,GAAK6V,KAAGhJ,KACtB1E,CACR,CAAC,MAAO1D,GACP,MAAM7G,KAAKoJ,WAAWvC,EACvB,CACF,CASD,UAAAuC,CAAgC8O,EAAqBC,GACnD,OAAO/B,EAAehN,WAAc8O,EAAKC,EAC1C,CAQkB,UAAAd,CAAWnT,GAC5B,QAASA,EAAKX,MAAMrG,EACrB,CA4DS,iBAAOkM,CACf8O,EACAC,GAEA,GAAID,aAAepa,EAASA,UAAE,OAAOoa,EACrC,MAAME,EAA8B,iBAARF,EAAmBA,EAAMA,EAAIG,QAEzD,GAAID,EAAK7U,MAAM,iCACb,OAAO,IAAImU,EAAAA,cAAcU,GAC3B,GAAIA,EAAK7U,MAAM,4CACb,OAAO,IAAI4F,EAAAA,cAAciP,GAG3B,OAAQA,EAAKxR,YAEX,IAAK,QACL,IAAK,QACL,IAAK,QACH,OAAO,IAAI8Q,EAAAA,cAAcS,GAG3B,IAAK,QACL,IAAK,QACH,OAAO,IAAIhP,EAAAA,cAAcgP,GAG3B,IAAK,QACH,OAAO,IAAIta,EAAWqa,GAGxB,QACE,OAAIE,EAAKxR,WAAWrD,MAAM,iBACjB,IAAI+U,EAAAA,gBAAgBJ,GACtB,IAAI1T,EAAAA,cAAc0T,GAE9B,CAED,oBAAaK,CAAQ9B,GACnB,MAAM+B,EAAM,IAAIhC,aAAWC,GAE3B,OADK+B,EAAItG,qBAAqBsG,EAAIxG,aAC3BwG,CACR,CAED,2BAAaC,CACXtL,EACAuL,GAEA,MAAMxT,EAAMyT,EAAOA,QAACxT,IAAInF,KAAKyY,gBAC7BvT,EAAIqL,QAAQ,qBAAqBmI,GACjC,UACQvL,EAAWvM,MAAM,mBAAmB8X,GAC1CxT,EAAIqN,KAAK,oBAAoBmG,EAC9B,CAAC,MAAO7R,GACP,MAAM7G,KAAKoJ,WAAWvC,EACvB,CACF,CAED,iCAAa+R,CACXzL,EACAgJ,GAEA,MAAMjR,EAAMyT,EAAOA,QAACxT,IAAInF,KAAK4Y,sBAC7B1T,EAAIqL,QAAQ,4BACZ,UACQpD,EAAWvM,MACf,oZAiBIuM,EAAWvM,MACf,kDAAkDuV,YAE9ChJ,EAAWvM,MAAM,uFAGvBsE,EAAIqN,KAAK,0BACV,CAAC,MAAO1L,GACP,MAAM7G,KAAKoJ,WAAWvC,EACvB,CACF,CAED,2BAAagS,CACX1L,EACAuL,EACAvC,GAEA,IACMA,SAAYhJ,EAAWvM,MAAM,iBAAiBuV,oBAC5ChJ,EAAWvM,MAAM,iBAAiB8X,EACzC,CAAC,MAAO7R,GACP,MAAM7G,KAAKoJ,WAAWvC,EACvB,CACF,CAED,uBAAaiS,CACX3L,EACAuL,EACAvC,EACA4C,GAEA,UACQ5L,EAAWvM,MAAM,eAAeuV,oBAAuB4C,YACvD5L,EAAWvM,MAAM,6BAA6B8X,QAAavC,WAE3DhJ,EAAWvM,MAAM,mCAAmCuV,SACpDhJ,EAAWvM,MAAM,oCAAoCuV,SACrDhJ,EAAWvM,MACf,0DAA0DuV,SAEtDhJ,EAAWvM,MACf,6DAA6DuV,SAEzDhJ,EAAWvM,MACf,6DAA6DuV,SAEzDhJ,EAAWvM,MACf,+EAA+EuV,SAE3EhJ,EAAWvM,MACf,kFAAkFuV,EAErF,CAAC,MAAOtP,GACP,MAAM7G,KAAKoJ,WAAWvC,EACvB,CACF,CAED,uBAAamS,CACXzY,EACA4V,EACA8C,GAEA,UACQ1Y,EAAOK,MAAM,qBAAqBuV,QAAW8C,WAC7C1Y,EAAOK,MACX,kDAAkDuV,SAE9C5V,EAAOK,MAAM,oCAAoCuV,SACjD5V,EAAOK,MACX,gEAAgEuV,SAE5D5V,EAAOK,MACX,gEAAgEuV,SAE5D5V,EAAOK,MACX,qCAAqCqY,gDAAoD9C,WAErF5V,EAAOK,MACX,qCAAqCqY,mDAAuD9C,YAExF5V,EAAOK,MACX,qCAAqCqY,mDAAuD9C,WAExF5V,EAAOK,MAAM,iBAAiBuV,mBAC9B5V,EAAOK,MAAM,wBAAwBuV,KAC5C,CAAC,MAAOtP,GACP,MAAM7G,KAAKoJ,WAAWvC,EACvB,CACF,CAEO,0BAAOqS,CACb5P,EACA6P,EACAC,GAAO,GAEP,OAAQ9P,EAAK+P,eACX,IAAK,SACH,OAAOF,EAAO,mBAAqBC,EAAO,OAAS,UACrD,IAAK,SACH,OAAOD,EAAO,qBAAuB,UACvC,IAAK,UACH,MAAO,UACT,IAAK,OACH,MAAO,YACT,IAAK,SACH,OAAOA,EAAO,qBAAuB,SACvC,QAAS,CACP,MAAMvV,EAAIzB,EAAAA,MAAM8E,IAAIqC,GACpB,GAAI1F,EAMF,MAAO,CACL8H,MAAO9H,EACP0V,OAPW7Y,EAAQA,SAAC6I,KAAK1F,EAAGzB,EAAAA,MAAMC,GAAGwB,KAUzC,MAAM,IAAIY,EAAAA,cAAc,qBAAqB8E,EAC9C,EAEJ,CAEO,gCAAOiQ,CACbtE,EACA3L,EACA6P,EACAhO,EACAzC,GAEA,OAAQyC,GACN,KAAKmB,EAAcA,eAACkN,SAClB,MAAO,WACT,KAAKlN,EAAcA,eAACmN,WAClB,OAAIN,IAASzQ,GAAkC,WAAvBY,EAAK+P,cACpB,GAEF,IAAK3Q,EAAsC4D,EAAcA,eAACmN,eACnE,KAAKnN,EAAcA,eAACoN,WAClB,MAAO,cAAczE,oCAAuCA,SAAavM,EAAsC4D,EAAcA,eAACoN,eAChI,KAAKpN,EAAAA,eAAeqN,QACpB,KAAKrN,EAAAA,eAAesN,IACpB,KAAKtN,EAAcA,eAACuN,MAClB,MAAO,cAAc5E,0BAA6BA,QAAW9R,EAA0BuF,EAAoC4D,EAAAA,eAAeqN,cAC5I,KAAKrN,EAAAA,eAAe6G,KACpB,KAAK7G,EAAcA,eAACwN,KAClB,MAAO,GACT,KAAKxN,EAAcA,eAACyN,IAClB,MAAO,cAAc9E,KAAQ9J,kBAAoB8J,QAAYvM,EAAgC4D,EAAAA,eAAeyN,QAC9G,KAAKzN,EAAcA,eAAC0N,IAClB,MAAO,cAAc/E,KAAQ9J,kBAAoB8J,QAAYvM,EAAgC4D,EAAAA,eAAe0N,QAC9G,KAAK1N,EAAAA,eAAe2N,SACpB,QACE,MAAM,IAAIzV,EAAAA,cAAc,qBAAqB2G,GAElD,CAEO,+BAAO+O,CACbjF,EACAtU,EACAyB,EACA+I,EACAzC,GAEA,MAAMtD,EAAYjD,EAAAA,MAAMiD,UAAUzE,IAC5BwZ,QAAEA,GAAYzR,EACd0R,EAAa,GAAGD,EAAQ3L,OAAS,qBAAuB,KAAK2L,EAAQzL,OAAS,qBAAuB,KAC3G,GAAQ,YAAYvD,IACbE,EAAeA,gBAACgP,WACnB,MAAO,gBAAgBpF,iBAAoB7P,KAAahD,KAAMgY,IAE9D,MAAM,IAAI5V,EAAAA,cAAc,0BAA0B2G,EAEvD,CAqND,2BAAamP,CAAe/Z,GAE1B,IAEE,aADqBA,EAAOK,MAFV,yBAGJ,GAAG2Z,YAClB,CAAC,MAAO1T,GACP,MAAM7G,KAAKoJ,WAAWvC,EACvB,CACF,CAED,iBAAgB2T,GACdvc,MAAMuc,aAENC,EAAUA,WAACC,YAAYvd,GACpBgI,IAAIkG,EAAeA,gBAAC5N,OACpBkd,OAAO,CACNxW,UAAkCjG,GACDiT,IAC7B,MAAMyJ,EAAOna,EAAAA,SAASC,OAAOyQ,GAEvB0J,EADUzG,EAAAA,yBACSsB,OAAO1S,KAC7B6O,GAAUA,EAAMV,SAAWyJ,GAE9B,OAAIC,GACE3c,IACF2c,EAAS3c,KAAOA,GAEXiT,IAWTqE,EAREtX,GACA,MACE,IACE,OAAOiE,EAAKA,MAACiD,UAAUwV,EACxB,CAAC,MACA,OAAOA,GAAM1c,IACd,CACF,EAND,GAOFsX,CAAkBoF,GACXzJ,EACT,IAGH2J,QA8GHL,EAAUA,WAACC,YAAYvd,GACpBgI,IAAI4V,EAAMA,OAACzd,IACX0d,OAAO,CACN7W,UA9GWuE,GACN,CAAeuS,EAAeC,KACnC,MAAMN,EAAOna,EAAQA,SAACC,OAAOua,EAASld,aACtBqW,EAAAA,yBACHsB,OAAO1S,KAAM6O,GAAUA,EAAMV,SAAWyJ,IASnDpF,EAPE,MACE,IACE,OAAOrT,EAAKA,MAACiD,UAAUwV,EACxB,CAAC,MACA,OAAOA,GAAM1c,IACd,CACF,EAND,IAMQ0c,GAAM1c,KAChBsX,CAAkBoF,GAEpB3F,QAAAA,CAAOgG,EAAUC,GACjB,MAAMC,EAAoB,CACxBC,aACAC,aACAC,EAAYA,aAAC7a,EAAQA,SAAC0K,IAAI4P,EAAAA,OAAOzd,GAAI4d,GAAcxS,IAErD,IAAIY,EACFZ,EAAQY,MAAQ7I,EAAAA,SAAS6I,KAAK2R,EAASld,YAAamd,GACtD,OAAQ5R,GACN,KAAKiS,OAAOrd,MAAQqd,OAAOrd,KAAKmb,cAChC,KAAKkC,OACH7S,EAAQ0G,eACuB,IAAtB1G,EAAQ0G,WAEX1G,EAAQ0G,UACd,MACF,KAAKkG,OAAOpX,MAAQqd,OAAOrd,KAAKmb,cAChC,KAAKxP,OAAO3L,MAAQ2L,OAAO3L,KAAKmb,cAChC,KAAKxP,OACL,KAAKyL,OACH5M,EAAQ0G,eACuB,IAAtB1G,EAAQ0G,WAEX1G,EAAQ0G,UACd,MACF,IAAK,OACL,IAAK,SACH1G,EAAQ0G,WAAY,EACpB,MACF,KAAM9F,EACJ,MAAM,IAAI9E,EAAAA,cACR,yCAAyC0W,QAAkBD,EAAS/c,QAExE,QACE,MAAUoK,MAAM,oBAMpB,QAJiC,IAAtBI,EAAQ0G,YACjB1G,EAAQ0G,WAAY,GAGlB1G,EAAQ0G,UAAW,CACrB,MAEMoM,EAAO,CACXtd,KAFAwK,EAAQxK,MAAQiE,EAAAA,MAAMgN,aAAa8L,EAASld,YAAa,OAItC,WAAjB2K,EAAQY,MAAsC,SAAjBZ,EAAQY,KACvC6R,EAAW1W,KACT0Q,EACoB,SAAjBzM,EAAQY,KAAkBZ,EAAQY,KAAO,WAC1CkS,IAIJL,EAAW1W,KAAK0Q,EAAuBqG,IAEzCL,EAAW1W,KAAKgX,EAAkBA,qBACnC,KAAM,CAML,OAJkB,mBAATnS,GAAwBA,GAAcpL,KACxCoL,EAAapL,KACdoL,GAGJ,KAAKgM,OAAOpX,MAAQoX,OAAOpX,KAAKmb,cAC9B/P,EAAO,UACP,MACF,IAAK,SACL,IAAK,OACH,MACF,KAAKiS,OAAOrd,MAAQqd,OAAOrd,KAAKmb,cAC9B/P,EAAO,UACP,MACF,KAAKO,OAAO3L,MAAQ2L,OAAO3L,KAAKmb,cAC9B/P,EAAO,SACP,MACF,QACE,MAAM,IAAI9E,EAAAA,cAAc,qBAAqB8E,GAEjD6R,EAAW1W,KCvsCL,EACdmP,EACAlL,IAEO,CAAUmL,EAAab,KAE5B,IAAI1J,EAGFsK,IAAkB2H,QAClB3H,IAAkB8H,SAClB9H,IAAkB0B,OAElBhM,EAAOsK,EAEPlL,EAAUlH,OAAOC,OAAO,CAAE,EAAwBmS,GAE/ClL,IAASA,EAAU,CAAA,GAGxB,MAAMoL,EACJC,SAAYA,QAAgBC,YACvBD,QAAgBC,YAAY,cAAeH,EAAQb,QACpDvQ,EAON,IANK6G,GAAQwK,IAAqBxK,EAAOwK,IAGpCpL,EAAQY,MAAQA,IAAMZ,EAAQY,KAAOA,IAGrCZ,EAAQY,KAAM,MAAM,IAAIiL,EAAwBA,yBAACV,EAAQb,GAG9D,GAAItK,EAAQiT,SACV,MAAM,IAAIC,EAAkCA,mCAAC/H,EAAQb,GAGvDtK,EAAQ6M,SAAU,EAElB,MAAMrE,EAAWkD,EAAAA,yBACjBhB,EACES,EAAO9V,YACPiV,EACA9B,EAASyB,QACTjK,EACA,UACAwI,EAASnN,WAGP2E,EAAQ0G,WACVgF,2BAAyBO,YAAYlQ,KAAK,CACxC0M,OAAQ0C,EAAO9V,YACfiV,aAAcA,EACd4B,SAC+B,iBAAtBlM,EAAQ0G,UACX1G,EAAQ0G,UACR,aAGZ,ED6oCUyM,CAAc,CACZvS,KAAMA,EACNkL,QAAQ,IAGb,CAGD,OADI9L,EAAQ0G,WAAW+L,EAAW1W,KAAK2K,EAASA,aACzC0L,EAAKA,SAAIK,EAATL,CAAqBG,EAAUC,EACxC,IAQCJ,QAGHL,EAAUA,WAACC,YAAYvd,GACpBgI,IAAIkG,EAAeA,gBAACyQ,QACpBnB,OAAO,CACNxW,UAA2BjG,GAClB,CAAgBsZ,EAAUvC,KAC/B,MAAM1T,EAAsB,CAAA,EAE5B,IAAIa,EADAlE,IAAMqD,EAAKrD,KAAOA,GAEtB,IACEkE,EAAKD,EAAAA,MAAMC,GAAGoV,EAAIzZ,YAEnB,CAAC,MAAO8I,GACPzE,OAAKK,CACN,CAID,OAHIL,IAAO6S,IACT1T,EAAKoa,UAAW,GAEXhI,EAAOpS,EAAPoS,CAAa6D,EAAKvC,EAC3B,IAGH6F,QAGHL,EAAUA,WAACC,YAAYvd,GACpBgI,IAAIkG,EAAeA,gBAAC0Q,QACpBf,OAAOM,EAAAA,aAAajQ,EAAAA,gBAAgB0Q,OAAQ,CAAE,IAC9CpB,OAAOhH,EAAO,CAAEa,QAAQ,KACxBsG,QAGH,MAAMkB,EAAcC,EAAUA,WAAC9Q,IAAImB,EAAcA,eAACkN,UAClDiB,EAAUA,WAACC,YAAYvd,GACpBgI,IAAI6W,GACJrB,OAAOhH,EAAO,CAAEgI,UAAU,KAC1Bb,QAGHL,EAAUA,WAACC,YAAYvd,GACpBgI,IAAI4V,EAAMA,OAACxd,SACXyd,OAAO1R,EAAIA,KAACgM,QAAS4G,EAAAA,gBAAiBT,EAAkBA,sBACxDX,QAOH,MAAMqB,EAAyBpB,EAAMA,OAACqB,UAChCC,GANuBlR,EAMkB4P,EAAMA,OAACqB,UAL7CE,EAAoBA,qBAACC,QAAUpR,GADxC,IAA6BA,EA6B7BsP,EAAUA,WAACC,YAAYvd,GACpBgI,IAAIgX,GACJnB,OAAO,CACN7W,UAxBJ,CAAYwH,EAA4B6Q,KACtC,MAAMrB,EAAoB,CACxBsB,EAAAA,KAAKD,EAAQE,yBAA0BN,UAAUtC,MACjDsB,WAASsB,EAAAA,uBAA0BN,UAAU5C,UAC7C8B,EAAAA,aAAaW,EAAAA,WAAW9Q,IAAI4P,EAAMA,OAACqB,WAAY,CAC7CzQ,UAAWA,EACX6Q,OAAQA,IAEVf,wBAUF,OARiD,IAA7C9P,EAAU5D,QAAQY,EAAaA,cAACwB,QAClCgR,EAAW1W,KACT6W,EAAYA,aAACe,EAAoB,CAC/BhE,QAASqE,EAAAA,uBAA0BN,UAAUO,UAE/CC,EAAwBA,4BAEvBzB,EAAW1W,KAAK4W,EAAQA,YACtBP,EAAKA,SAAIK,EACjB,IAOER,OAAO,CAENxW,UAAW,CAAmB0Y,EAAsBL,IAC3C,CAAmBhF,EAAUvC,KACS,IAAvC4H,EAAI9U,QAAQY,EAAaA,cAACwB,QEp2CjC,EAAU0J,EAAab,KAC5B,MAAM9B,EAAWkD,EAAAA,yBACjBhB,EACES,EAAO9V,YACPiV,EACA9B,EAASyB,QACE,GACX,aACAzB,EAASnN,UAEb,EF21CmB+Y,CAAmBtF,EAAKvC,GGr2CpC,EAAUpB,EAAab,KAC5B,MAAM9B,EAAWkD,EAAAA,yBACjBhB,EACES,EAAO9V,YACPiV,EACA9B,EAASyB,QACE,GACX,aACAzB,EAASnN,UAEb,EH41CiBgZ,CAAmBvF,EAAKvC,KAOpC6F,QAGHL,EAAUA,WAACC,YAAYvd,GACpBgI,IAAIkG,EAAeA,gBAACgP,YACpBW,OAAO,CACN7W,UAAW,CACTxD,EACAwZ,EACA9V,EACA2Y,EACAC,KAEA,MAAM/L,EAA8B,CAClC5M,MAAO3D,EACPwZ,QAASA,EACT9V,SAAUA,GAER2Y,IAAgB9L,EAASgM,UAAYF,GACrCC,IAAI/L,EAAShT,KAAO+e,GACxB,MAAME,EAA2B,CAC/BhD,QACEA,EAAQ3L,SAAW4O,EAAAA,QAAQC,SAC3BlD,EAAQzL,SAAW0O,EAAAA,QAAQC,QAC7BC,SAAUnD,EAAQzL,OAAS,UAAY,UACvC6O,SAAUpD,EAAQ3L,OAAS,UAAY,UACvCmN,UAAU,EACVvX,MAAOC,GAET,OAAOyW,EAAKA,MACV7F,EAAIA,OACJuI,EAAQA,SAACnS,EAAeA,gBAACgP,WAAYnJ,GACrC5H,EAAAA,KAAK,CAAC3I,EAAO4a,OAAQjG,OAAQzL,SAC7ByR,EAAYA,aAACjQ,EAAeA,gBAACgP,WAAYnJ,KIt5CnDuM,EACAC,EACAhV,KAGA,IAAIiV,EAOJ,OANI9I,EAAYC,SAAS4I,GACvBhV,EAA2BgV,EAE3BC,EAAsBD,EAGjB,CAAU7J,EAAab,KACvBtK,IAASA,EAAU,CAAA,GAGxB,IAAIkV,KAASlV,IAA4B,IAAjBA,EAAQmV,MAChC,IAAKD,GAAU7J,SAAYA,QAAgBC,YAAa,CAEtD,MAAM8J,EAAiB/J,QAAgBC,YACrC,cACAH,EACAb,GAGA8K,GAC8B,iBAAvBA,EAAc5f,MACgB,YAArC4f,EAAc5f,KAAKmb,gBAEnBuE,GAAS,EACZ,CAED,MAAMG,EAAO3J,EAAAA,yBACb1L,EAAUlH,OAAOC,OACfiH,EACA+J,EAAoBoB,EAAO9V,YAAaiV,EAAc+K,EAAKpL,UAE7DoL,EAAKha,UAAUU,KAAK,CAClB0M,OAAQ0C,EAAO9V,YACfiV,aAAcA,EAEd4K,OAAQA,EACRI,aAAc,aACd1U,KAAMmU,EACNE,oBAAqBA,EACrBjV,QAASA,GAEb,CACF,EJu2CYuV,CACE,KACuB,mBAAVtd,GAA0BA,EAAczC,OACjDyC,EAASA,KACX,MAAMD,EAASD,EAAAA,SAASC,OAAOC,GAC/B,GAAID,IAAWC,EACb,MAAM,IAAI6D,EAAAA,cACR,2CAEJ,OAAO9D,GAERgL,IACsB,mBAAV/K,GAA0BA,EAAczC,OACjDyC,EAASA,KAEJ+K,EADIvJ,EAAAA,MAAMC,GAAGzB,KAGtBwc,GAEFe,EAAAA,WACElB,GAAkB9L,EAAShT,KACvB,CACEigB,yBAA0BjN,EAAShT,WAEpCuE,GAGV,IAEFqY,QAGHL,EAAUA,WAACC,YAAYvd,GACpBgI,IAAIkG,EAAeA,gBAAC+S,aACpBpD,OAAO,CACN7W,UAAW,CACTxD,EACAwZ,EACA9V,EACAga,EACApB,KAEA,MAAMc,EAA0B,CAC9BzZ,MAAO3D,EACPwZ,QAASA,EACT9V,SAAUA,GAERga,IAAeN,EAAKb,UAAYmB,GAChCpB,IAAIc,EAAK7f,KAAO+e,GAEpB,MAAM9B,EAAa,CACjBlG,SACAuI,WAASnS,EAAAA,gBAAgB+S,YAAaL,GACtCO,EAAAA,KAAK3d,GACL2a,eAAajQ,EAAAA,gBAAgB+S,YAAaL,GAC1C,CAA0BvG,EAAUvC,KAClC,MAAMkI,EAA2B,CAC/BhD,QACEA,EAAQ3L,SAAW4O,EAAAA,QAAQC,SAC3BlD,EAAQzL,SAAW0O,EAAAA,QAAQC,QAC7BC,SAAUnD,EAAQzL,OAAS,UAAY,UACvC6O,SAAUpD,EAAQ3L,OAAS,UAAY,UACvCmN,UAAU,EACVvX,MAAOC,GAET,OKz9CZoZ,EL09Cc,KACuB,mBAAV9c,GAA0BA,EAAczC,OACjDyC,EAASA,KACX,MAAMD,EAASD,EAAAA,SAASC,OAAOC,GAC/B,GAAID,IAAWC,EACb,MAAM,IAAI6D,EAAAA,cACR,2CAEJ,OAAO9D,GKj+CvB6d,ELm+Ce7S,IACsB,mBAAV/K,GAA0BA,EAAczC,OACjDyC,EAASA,KACX,MAAMoD,EAAYtD,EAAAA,SAASsD,UACzBpD,GAEF,IAAKoD,EACH,MAAM,IAAIS,EAAaA,cACrB,+BAA+B7D,EAAMzC,MAEzC,MAAMsgB,EAAmBza,EAAUf,KAAM+I,IACvC,MAAMgS,EAAkC5b,EAAKA,MAAC4B,UAC5CpD,EACAoL,GAEF,GAAIgS,EAAK5S,MAAQE,EAAAA,gBAAgBoT,YAAa,OAAO,EACrD,MAAM1L,EACkB,mBAAfgL,EAAKzZ,OACVyZ,EAAKzZ,MAAcpG,KAEjB6f,EAAKzZ,MADJyZ,EAAKzZ,QAENoa,EAAMje,EAAQA,SAACC,OACnB8W,EAAIzZ,aAEN,OAAOgV,EAAE7U,OAASwgB,EAAIxgB,OAExB,IAAKsgB,EACH,MAAM,IAAIha,EAAaA,cACrB,2DAA2D7D,EAAMzC,SAErE,OAAOwN,EAAM8S,IKhgD7B9V,ELkgDcyU,EKhgDP,CAAUtJ,EAAab,KACvBtK,IAASA,EAAU,CAAA,GAGxB,IAAIkV,EAASlV,IAA4B,IAAjBA,EAAQmV,KAChC,IAAKD,GAAU7J,SAAYA,QAAgBC,YAAa,CAEtD,MAAM8J,EAAiB/J,QAAgBC,YACrC,cACAH,EACAb,GAGA8K,GAC8B,iBAAvBA,EAAc5f,MACgB,YAArC4f,EAAc5f,KAAKmb,gBAEnBuE,GAAS,EACZ,CAED,MAAMG,EAAO3J,EAAAA,yBACb1L,EAAUlH,OAAOC,OACfiH,EACA+J,EAAoBoB,EAAO9V,YAAaiV,EAAc+K,EAAKpL,UAE7DoL,EAAKha,UAAUU,KAAK,CAClB0M,OAAQ0C,EAAO9V,YACfiV,aAAcA,EAEd4K,OAAQA,EACRI,aAAc,cACd1U,KAAMmU,EACNE,oBAAqBY,EACrB7V,QAASA,GAEb,GL89Cc8O,EAAKvC,OKrgDnBwI,EACAc,EACA7V,CLogDW,GAEH,OAAOoS,EAAKA,SAAIK,EACjB,IAEFL,QAGHL,EAAUA,WAACC,YAAYvd,GACpBgI,IAAIkG,EAAeA,gBAACoT,aACpBzD,OAAO,CACN7W,UAAW,CACTxD,EACAwZ,EACA9V,EACAga,EACApB,KAEA,MAAM/L,EAA8B,CAClC5M,MAAO3D,EACPwZ,QAASA,EACT9V,SAAUA,GAERga,IAAenN,EAASgM,UAAYmB,GACpCpB,IAAI/L,EAAShT,KAAO+e,GACxB,MAAME,EAA2B,CAC/BhD,QACEA,EAAQ3L,SAAW4O,EAAAA,QAAQC,SAC3BlD,EAAQzL,SAAW0O,EAAAA,QAAQC,QAC7BC,SAAUnD,EAAQzL,OAAS,UAAY,YACvC6O,SAAUpD,EAAQ3L,OAAS,UAAY,YACvCmN,UAAU,EACVvX,MAAOC,GAET,OAAOyW,EAAKA,MACV0C,WAASnS,EAAAA,gBAAgBoT,YAAavN,GACtC5H,EAAIA,KAAC,CAAC3I,EAAO4a,OAAQjG,OAAQzL,SAC7ByR,eAAajQ,EAAAA,gBAAgBoT,YAAavN,GAC1C,CAA0BsG,EAAUvC,MM1iD9CwI,EACAC,EACAhV,KAGA,IAAIiV,EAOJ,OANI9I,EAAYC,SAAS4I,GACvBhV,EAA2BgV,EAE3BC,EAAsBD,EAGjB,CAAU7J,EAAab,KACvBtK,IAASA,EAAU,CAAA,GAGxB,IAAIkV,EAASlV,IAA4B,IAAjBA,EAAQmV,KAChC,IAAKD,GAAU7J,SAAYA,QAAgBC,YAAa,CAEtD,MAAM8J,EAAiB/J,QAAgBC,YACrC,cACAH,EACAb,GAGA8K,GAC8B,iBAAvBA,EAAc5f,MACgB,YAArC4f,EAAc5f,KAAKmb,gBAEnBuE,GAAS,EACZ,CAED,MAAMG,EAAO3J,EAAAA,yBACb1L,EAAUlH,OAAOC,OACfiH,EACA+J,EAAoBoB,EAAO9V,YAAaiV,EAAc+K,EAAKpL,UAE7DoL,EAAKha,UAAUU,KAAK,CAClB0M,OAAQ0C,EAAO9V,YACfiV,aAAcA,EAEdgL,aAAc,cACdJ,OAAQA,EACRtU,KAAMmU,EACNE,oBAAqBA,EACrBjV,QAASA,GAEb,CACF,EN2/CqBiW,CACL,KACuB,mBAAVhe,GAA0BA,EAAczC,OACjDyC,EAASA,KACX,MAAMD,EAASD,EAAAA,SAASC,OAAOC,GAC/B,GAAID,IAAWC,EACb,MAAM,IAAI6D,EAAAA,cACR,2CAEJ,OAAO9D,GAERgL,IACsB,mBAAV/K,GAA0BA,EAAczC,OACjDyC,EAASA,KACX,MAAMoD,EAAYtD,EAAAA,SAASsD,UAAUpD,GAErC,IAAI6d,EAAmBrc,EAAAA,MAAMC,GAAGzB,GAEhC,OAAKoD,GAELya,EACEza,EAAUf,KAAM+I,IACd,MAAMgS,EAAkC5b,EAAKA,MAAC4B,UAC5CpD,EACAoL,GAEF,GAAIgS,EAAK5S,MAAQE,EAAAA,gBAAgB+S,YAC/B,OAAO,EACT,MAAMrL,EACkB,mBAAfgL,EAAKzZ,OACVyZ,EAAKzZ,MAAcpG,KAEjB6f,EAAKzZ,MADJyZ,EAAKzZ,QAENoa,EAAMje,EAAQA,SAACC,OACnB8W,EAAIzZ,aAEN,OAAOgV,EAAE7U,OAASwgB,EAAIxgB,QAClBsgB,EACD9S,EAAM8S,IApBU9S,EAAM8S,IAsB/BrB,EAxCKwB,CAyCLnH,EAAKvC,GAGZ,IAEF6F,QAGHL,EAAUA,WAACC,YAAYvd,GACpBgI,IAAIkG,EAAeA,gBAACuT,cACpB5D,OAAO,CACN7W,UAAW,CACTxD,EACAwZ,EACA9V,EACAga,EACApB,KAEA,MAAM/L,EAA8B,CAClC5M,MAAO3D,EACPwZ,QAASA,EACT9V,SAAUA,GAERga,IAAenN,EAASgM,UAAYmB,GACpCpB,IAAI/L,EAAShT,KAAO+e,GACxB,MAAME,EAA2B,CAC/BhD,QACEA,EAAQ3L,SAAW4O,EAAAA,QAAQC,SAC3BlD,EAAQzL,SAAW0O,EAAAA,QAAQC,QAC7BC,SAAUnD,EAAQzL,OAAS,UAAY,UACvC6O,SAAUpD,EAAQ3L,OAAS,UAAY,UACvCmN,UAAU,EACVvX,MAAOC,GAET,OAAOyW,EAAAA,MACL0C,EAAAA,SAASnS,EAAAA,gBAAgBuT,aAAc1N,GACvCoN,EAAIA,KAAC3d,GACL2a,EAAAA,aAAajQ,EAAAA,gBAAgBuT,aAAc1N,KOznDrDuM,EACAC,EACAhV,KAGA,IAAIiV,EAOJ,OANI9I,EAAYC,SAAS4I,GACvBhV,EAA2BgV,EAE3BC,EAAsBD,EAGjB,CAAU7J,EAAab,KACvBtK,IAASA,EAAU,CAAA,GAGxB,IAAIkV,GAA0B,IAAjBlV,EAAQmV,KACrB,IAAKD,GAAU7J,SAAYA,QAAgBC,YAAa,CAEtD,MAAM8J,EAAiB/J,QAAgBC,YACrC,cACAH,EACAb,GAGA8K,GAC8B,iBAAvBA,EAAc5f,MACgB,YAArC4f,EAAc5f,KAAKmb,gBAEnBuE,GAAS,EACZ,CAED,MAAMG,EAAO3J,EAAAA,yBACb1L,EAAUlH,OAAOC,OACfiH,EACA+J,EAAoBoB,EAAO9V,YAAaiV,EAAc+K,EAAKpL,UAE7DoL,EAAKha,UAAUU,KAAK,CAClB0M,OAAQ0C,EAAO9V,YACfiV,aAAcA,EAEdgL,aAAc,eACdJ,OAAQA,EACRtU,KAAMmU,EACNE,oBAAqBA,EACrBjV,QAASA,GAEb,CACF,EP0kDYmW,CACE,KACuB,mBAAVle,GAA0BA,EAAczC,OACjDyC,EAASA,KACX,MAAMD,EAASD,EAAAA,SAASC,OAAOC,GAC/B,GAAID,IAAWC,EACb,MAAM,IAAI6D,EAAAA,cACR,2CAEJ,OAAO9D,GAERgL,IACsB,mBAAV/K,GAA0BA,EAAczC,OACjDyC,EAASA,KAEJ+K,EADIvJ,EAAAA,MAAMC,GAAGzB,KAGtBwc,GAEF2B,YAAUT,GAEb,IAEFvD,QAGHL,EAAUA,WAACC,YAAYvd,GACpBgI,IAAIkG,EAAeA,gBAACzN,OACpB+c,OAAO,CACNxW,UAAW,CACT4a,EACAtU,EAEAvM,IAEO,CAAesZ,EAAUvC,KACJ,iBAAf8J,IAETA,OAAatc,EACbgI,OAAehI,GAEW,iBAAjBgI,IAETA,OAAehI,IAEZgI,GAAgBsU,GAEjBA,EAAW/b,KACRgc,IACE,CAAChZ,EAAcA,eAACC,IAAKD,EAAAA,eAAeiZ,KAAKta,SAASqa,MAGvDvU,EAAesU,EACfA,OAAatc,GAIbgI,GAAgBA,EAAa7F,OACxBsa,EAAAA,MAAM,CAACjK,KAASxK,GAAhByU,CAA+B1H,GAGjC0H,SAAAA,CAAQ1H,EAAKvC,MAIzB6F,QAEHL,EAAUA,WAACC,YAAYvd,GACpBgI,IAAIkG,EAAeA,gBAAC8T,YACpBnE,OACCoE,EAAQA,SAACnJ,EAAgC,CAAA,GACzCmF,EAAQA,WACRE,EAAYA,aAACjQ,EAAeA,gBAAC8T,WAAY,IACzC1D,EAAkBA,sBAEnBX,QAEHL,EAAUA,WAACC,YAAYvd,GACpBgI,IAAIkG,EAAeA,gBAACgU,YACpBrE,OACCsE,EAAcA,eAACrJ,EAAgC,CAAA,GAC/CmF,EAAQA,WACRE,EAAYA,aAACjQ,EAAeA,gBAACgU,WAAY,IACzCzC,EAAwBA,4BAEzB9B,OACJ,EArhDkBxJ,EAAAA,WAAA,CADlBiO,qHAC8B7N,IAE9B0E,EAAAoJ,UAAA,WAAA,MAGQlO,EAAAA,WAAA,CADRiO,8HAQAnJ,EAAAoJ,UAAA,aAAA,MAQDlO,EAAAA,WAAA,CADCiO,qHAC6Bxa,IAE7BqR,EAAAoJ,UAAA,YAAA,MAiBclO,EAAAA,WAAA,CADdiO,qIAGAnJ,EAAAoJ,UAAA,WAAA,MA8BelO,EAAAA,WAAA,CADfiO,qIAwBAnJ,EAAAoJ,UAAA,QAAA,MAy7CHpJ,EAAeoE,aACfhJ,EAAAA,QAAQiO,WAAWtiB,GQxsDN,MAAAI,EAAU,cAQVmiB,EAAe,cAE5Bjf,EAAAA,SAASkf,gBAAgBD,EAAcniB,qEvBsCa,CAClDqiB,KAAM,qJAnEyB"}
|