@decaf-ts/for-couchdb 0.5.1 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/for-couchdb.cjs +1 -1
- package/dist/for-couchdb.cjs.map +1 -1
- package/dist/for-couchdb.js +1 -1
- package/dist/for-couchdb.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/repository.d.ts +1 -1
- package/lib/esm/repository.js +2 -2
- package/lib/esm/repository.js.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/repository.cjs +2 -2
- package/lib/repository.d.ts +1 -1
- package/lib/repository.js.map +1 -1
- package/package.json +2 -2
package/dist/for-couchdb.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e,t;e=this,t=function(e,t,r,i,o,n,a){"use strict";const s=/^_.*$/g,c={SEPARATOR:"__",ID:"_id",REV:"_rev",DELETED:"_deleted",TABLE:"??table",SEQUENCE:"??sequence",DDOC:"ddoc",NATIVE:"__native",INDEX:"index",VIEW:"view"},u={EQUAL:"$eq",DIFFERENT:"$ne",BIGGER:"$gt",BIGGER_EQ:"$gte",SMALLER:"$lt",SMALLER_EQ:"$lte",NOT:"$not",IN:"$in",REGEXP:"$regex"},l={AND:"$and",OR:"$or"};async function d(e,t,r){return e.auth(t,r)}function p(e,t,o,n,a=i.DefaultSeparator){const s=[r.PersistenceKeys.INDEX,t,e];return o&&s.push(...o),n&&s.push(n),s.join(a)}function g(e,t,r,o,n=i.DefaultSeparator){const a={};let s;if(a[c.TABLE]={},a[c.TABLE][u.EQUAL]=t,o){const t={};t[e]=o;const i=(r||[]).map(e=>{const t={};return t[e]=o,t}),n={};n[c.TABLE]=o,s=[t,...i,n]}else s=[e,...r||[],c.TABLE];const l=p(e,t,r,o,n);return{index:{fields:s},ddoc:[l,c.DDOC].join(n),name:l}}function f(e){return e instanceof Date?JSON.stringify(e.toISOString()):e instanceof RegExp?`new RegExp(${JSON.stringify(e.source)}, ${JSON.stringify(e.flags)})`:JSON.stringify(e)}function h(e,t){const{attr1:i,operator:o,comparison:n}=e;if(i instanceof r.Condition){const e=h(i,t);if(o===r.Operator.NOT)return`!(${e})`;const a=h(n,t);return o===r.GroupOperator.AND?`(${e} && ${a})`:o===r.GroupOperator.OR?`(${e} || ${a})`:e}const a=`${t}[${JSON.stringify(i)}]`;switch(o){case r.Operator.EQUAL:return`${a} === ${f(n)}`;case r.Operator.DIFFERENT:return`${a} !== ${f(n)}`;case r.Operator.BIGGER:return`${a} > ${f(n)}`;case r.Operator.BIGGER_EQ:return`${a} >= ${f(n)}`;case r.Operator.SMALLER:return`${a} < ${f(n)}`;case r.Operator.SMALLER_EQ:return`${a} <= ${f(n)}`;case r.Operator.IN:return`(${f(n)}).indexOf(${a}) !== -1`;case r.Operator.REGEXP:return`${n instanceof RegExp?f(n):`new RegExp(${JSON.stringify(n)})`}.test(${a})`;case r.Operator.NOT:return`!(${a} === ${f(n)})`;default:return"true"}}function m(e,t,r){return e?Array.isArray(e)?e:[e]:t?[t,...r||[]]:r||[]}function y(e,t,r,o,n=i.DefaultSeparator){return o.name?o.name:[e,t,r,"view"].join(n).replace(/\s+/g,"_")}function A(e,t,r=i.DefaultSeparator){return[e,t,c.DDOC].join(r)}function E(e,i,o){const n={view:r.Operator.VIEW,groupBy:r.Operator.GROUP_BY,count:r.Operator.COUNT,sum:r.Operator.SUM,max:r.Operator.MAX,min:r.Operator.MIN,distinct:r.Operator.DISTINCT}[i];if(!n)return[];const a=t.Metadata.get(e,n)||{};return Object.entries(a).flatMap(([e,t])=>t&&"object"==typeof t?Object.values(t).map(t=>({...t,kind:i,attribute:t.attribute||e})).filter(e=>!o||e.attribute===o):[])}function O(e,r,i){const o=t.Metadata.get(e,r)||{};return Object.entries(o).flatMap(([e,t])=>t&&"object"==typeof t?Object.values(t).map(t=>{const r=t;return{...r,kind:i,attribute:r.attribute||e}}):[])}function b(e){const t={},i=[[c.VIEW,"view"],[r.Operator.GROUP_BY,"groupBy"],[r.Operator.COUNT,"count"],[r.Operator.SUM,"sum"],[r.Operator.MAX,"max"],[r.Operator.MIN,"min"],[r.Operator.DISTINCT,"distinct"]];return e.forEach(e=>{const n=o.Model.tableName(e);i.flatMap(([t,r])=>O(e,t,r)).forEach(e=>{const i=m(e.key,e.attribute,e.compositions);if(!i.length)return;const o=i[0],a=i.slice(1),s=e.directions||[r.OrderDirection.ASC,r.OrderDirection.DSC],c=g(o,n,a);t[c.name||""]=c,s.forEach(e=>{const r=g(o,n,a,e);t[r.name||""]=r})})}),Object.values(t)}function w(e,t,r,o=i.DefaultSeparator){return[...e.map(e=>e===c.TABLE?"table":e),...t?[t]:[],c.INDEX].join(o)}function D(e,t){Object.defineProperty(e,r.PersistenceKeys.METADATA,{enumerable:!1,configurable:!0,writable:!0,value:t})}function v(e){const t=Object.getOwnPropertyDescriptor(e,r.PersistenceKeys.METADATA);return t?t.value:void 0}function S(e){Object.getOwnPropertyDescriptor(e,r.PersistenceKeys.METADATA)&&delete e[r.PersistenceKeys.METADATA]}class N extends r.Repository{constructor(e,t){super(e,t)}assignMetadata(e,t){const r=(e,t)=>{const r=v(t??e);return r&&D(e,r),e};return Array.isArray(e)?e.map((e,i)=>{const o=Array.isArray(t)?t[i]:t;return r(e,o)}):r(e,Array.isArray(t)?t?.[0]:t)}async create(e,...t){const r=await super.create(e,...t);return this.assignMetadata(r),this.assignMetadata(e,r),r}async createAll(e,...t){const r=await super.createAll(e,...t);return this.assignMetadata(r),this.assignMetadata(e,r),r}async read(e,...t){const r=await super.read(e,...t);return this.assignMetadata(r)}async readAll(e,...t){const r=await super.readAll(e,...t);return this.assignMetadata(r)}async update(e,...t){const r=await super.update(e,...t);return this.assignMetadata(r),this.assignMetadata(e,r),r}async updateAll(e,...t){const r=await super.updateAll(e,...t);return this.assignMetadata(r),this.assignMetadata(e,r),r}async delete(e,...t){const r=await super.delete(e,...t);return this.assignMetadata(r)}async deleteAll(e,...t){const r=await super.deleteAll(e,...t);return this.assignMetadata(r)}async updatePrefix(e,...t){const{ctx:r,ctxArgs:n,log:a}=(await this.logCtx(t,i.OperationKeys.UPDATE,!0)).for(this.updatePrefix),s=r.get("ignoreHandlers"),c=r.get("ignoreValidation");a.silly(`handlerSetting: ${s}, validationSetting: ${c}`);const u=e[this.pk];if(!u)throw new i.InternalError("No value for the Id is defined under the property "+this.pk);let l,d;if(r.get("applyUpdateValidation")&&(l=await this.read(u),d=l?v(l):void 0,r.get("mergeForUpdate")&&(e=o.Model.merge(l,e,this.class))),s||await i.enforceDBDecorators(this,r,e,i.OperationKeys.UPDATE,i.OperationKeys.ON,l),!c){const t=r.get("ignoredValidationProperties")||[];a.silly("ignored validation properties: "+t);const o=await Promise.resolve(e.hasErrors(l,...t));if(o)throw new i.ValidationError(o.toString())}return d&&D(e,d),[e,...n,l]}async updateAllPrefix(e,...t){const{ctx:r,ctxArgs:n,log:a}=(await this.logCtx(t,i.BulkCrudOperationKeys.UPDATE_ALL,!0)).for(this.updateAllPrefix),s=r.get("ignoreHandlers"),c=r.get("ignoreValidation");a.silly(`handlerSetting: ${s}, ignoredValidation: ${c}`);const u=e.map(e=>{const t=e[this.pk];if(!t)throw new i.InternalError("missing id on update operation");return t});let l;if(r.get("applyUpdateValidation")&&(l=await this.readAll(u,r),e=e.map((e,t)=>{r.get("mergeForUpdate")&&(e=o.Model.merge(l[t],e,this.class));const i=v(l[t]);return i&&D(e,i),e})),s||await Promise.all(e.map((e,t)=>i.enforceDBDecorators(this,r,e,i.OperationKeys.UPDATE,i.OperationKeys.ON,l?l[t]:void 0))),!c){const t=r.get("ignoredValidationProperties")||[];let o;a.silly("ignored validation properties: "+t),o=r.get("applyUpdateValidation")?await Promise.all(e.map((e,r)=>Promise.resolve(e.hasErrors(l[r],...t)))):await Promise.resolve(e.map(e=>e.hasErrors(...t)));const n=i.reduceErrorsToPrint(o);if(n)throw new i.ValidationError(n)}return[e,...n,l]}}class T extends i.BaseError{constructor(e){super(T.name,e,404)}}class _ extends r.Paginator{constructor(e,t,r,i){super(e,t,r,i)}prepare(e){const t=Object.assign({},e);return t.limit&&(this.limit=t.limit),t.limit=this.size,t}async page(e=1,n,...a){const{log:s,ctxArgs:c,ctx:u}=this.adapter.logCtx([n,...a],this.page);if(this.isPreparedStatement())return await this.pagePrepared(e,...c);const l=Object.assign({},this.statement);if(this._recordCount&&this._totalPages)e=this.validatePage(e),l.skip=(e-1)*this.size;else{this._totalPages=this._recordCount=0;const t=await this.adapter.raw({...l,limit:Number.MAX_SAFE_INTEGER},!0,...c)||[];if(this._recordCount=t.length,this._recordCount>0){const t=l?.limit||this.size;return this._totalPages=Math.ceil(this._recordCount/t),await this.page(e,...c)}}if(1!==e){if(!this._bookmark)throw new r.PagingError("No bookmark. Did you start in the first page?");l.bookmark=this._bookmark}const d=await this.adapter.raw(l,!1,...c),{docs:p,bookmark:g,warning:f}=d;if(f&&s.warn(f),!this.clazz)throw new r.PagingError("No statement target defined");const h=o.Model.pk(this.clazz),m=t.Metadata.get(this.clazz,t.Metadata.key(i.DBKeys.ID,h))?.type,y=l.fields&&l.fields.length?p:p.map(e=>this.adapter.revert(e,this.clazz,r.Sequence.parseValue(m,e[h]),void 0,u));return this._bookmark=g,this._currentPage=e,y}}function M(e){for(const t of[u,l]){const r=Object.keys(t).find(t=>t===e);if(r)return t[r]}throw new r.QueryError("Could not find adapter translation for operator "+e)}function x(e){if(!e)return"\0";const t=Array.from(e);for(let e=t.length-1;e>=0;e-=1){const r=t[e].codePointAt(0);if(void 0!==r&&1114111>r)return t[e]=String.fromCodePoint(r+1),t.slice(0,e+1).join("")}return e+"\0"}class C extends r.Statement{constructor(e,t){super(e,t),this.attributeTypeCache=new Map}build(){const e=this.log.for(this.build);this.manualAggregation=void 0;const t=this.buildAggregateInfo();if(t){if(!this.shouldUseManualAggregation())return this.createAggregateQuery(t);this.manualAggregation=t}const i={};i[c.TABLE]={},i[c.TABLE]=o.Model.tableName(this.fromSelector);const n={selector:i};if(this.selectSelector&&(n.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(r.Condition.and(this.whereCondition,r.Condition.attribute(c.TABLE).eq(n.selector[c.TABLE]))).selector,i=Object.keys(t);if(1===i.length&&-1!==Object.values(l).indexOf(i[0]))switch(i[0]){case l.AND:t[l.AND]=[...Object.values(t[l.AND]).reduce((e,t)=>{const r=Object.keys(t);if(1!==r.length)throw Error("Too many keys in query selector. should be one");const i=r[0];return i===l.AND?e.push(...t[i]):e.push(t),e},[])],n.selector=t;break;case l.OR:{const e={};e[l.AND]=[t,...Object.entries(n.selector).map(([e,t])=>{const r={};return r[e]=t,r})],n.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach(([t,r])=>{n.selector[t]&&e.warn(`A ${t} query param is about to be overridden: ${n.selector[t]} by ${r}`),n.selector[t]=r})}if(this.orderBySelectors?.length){n.sort=n.sort||[],n.selector=n.selector||{};for(const[e,t]of this.orderBySelectors){const r=e,i={};i[r]=t,n.sort.push(i),n.selector[r]||(n.selector[r]={},n.selector[r][u.BIGGER]=null)}}const a=!!this.manualAggregation;return this.limitSelector?n.limit=this.limitSelector:a||(e.warn("No limit selector defined. Using default couchdb limit of 250"),n.limit=250),this.offsetSelector&&(n.skip=this.offsetSelector),n}processRecord(e,n){const a=o.Model.pk(this.fromSelector),s=t.Metadata.get(this.fromSelector,t.Metadata.key(i.DBKeys.ID,a))?.type;if(e[c.ID]){const[,...t]=e[c.ID].split(c.SEPARATOR),i=t.join("_");e[a]=r.Sequence.parseValue(s,i)}return this.adapter.revert(e,this.fromSelector,e[a],void 0,n)}async raw(e,...t){const{ctx:r}=this.logCtx(t,this.raw),i=e?.aggregateInfo;if(e?.aggregate&&i)return this.executeAggregate(i,r);const o=await this.adapter.raw(e,!0,r),n=o.map(e=>this.processRecord(e,r));if(this.manualAggregation){const e=this.executeManualAggregation(n,this.manualAggregation,r);return this.manualAggregation=void 0,e}return!this.selectSelector&&this.groupBySelectors?.length?this.groupSelectResults(n):this.selectSelector?o:await this.applyAfterHandlersToResult(n,r)}buildAggregateInfo(){if(this.fromSelector){if(this.avgSelector){const e=this.avgSelector+"",t=this.createAggregateDescriptor("sum",e);if(!t)throw this.missingDecorator("sum",e);const r=this.createAggregateDescriptor("count",e);if(!r)throw this.missingDecorator("count",e);return{kind:"avg",attribute:e,sumDescriptor:t.descriptor,countDescriptor:r.descriptor}}if(void 0!==this.countDistinctSelector){const e=this.resolveSelectorAttribute(this.countDistinctSelector),t=this.createAggregateDescriptor("distinct",e);if(!t)throw this.missingDecorator("distinct",e);return t.countDistinct=!0,t}if(void 0!==this.countSelector){const e=this.resolveSelectorAttribute(this.countSelector),t=this.createAggregateDescriptor("count",e);if(!t)throw this.missingDecorator("count",e);return t}if(this.maxSelector){const e=this.resolveSelectorAttribute(this.maxSelector),t=this.createAggregateDescriptor("max",e);if(!t)throw this.missingDecorator("max",e);return t}if(this.minSelector){const e=this.resolveSelectorAttribute(this.minSelector),t=this.createAggregateDescriptor("min",e);if(!t)throw this.missingDecorator("min",e);return t}if(this.sumSelector){const e=this.resolveSelectorAttribute(this.sumSelector),t=this.createAggregateDescriptor("sum",e);if(!t)throw this.missingDecorator("sum",e);return t}if(this.distinctSelector){const e=this.resolveSelectorAttribute(this.distinctSelector),t=this.createAggregateDescriptor("distinct",e);if(!t)throw this.missingDecorator("distinct",e);return t}}}createAggregateDescriptor(e,t){if(!this.fromSelector)return;const r=E(this.fromSelector,e,t);if(!r.length)return;const i=r[0],n=o.Model.tableName(this.fromSelector),a=y(n,i.attribute,e,i),s=i.ddoc||A(n,a),c={reduce:void 0!==i.reduce||!i.returnDocs};return"distinct"!==e&&"groupBy"!==e||(c.group=!0),{kind:e,meta:i,descriptor:{ddoc:s,view:a,options:c}}}createAggregateQuery(e){return{selector:{},aggregate:!0,aggregateInfo:e}}shouldUseManualAggregation(){return!!this.whereCondition}async executeAggregate(e,t){if(!this.isViewAggregate(e))return this.handleAverage(e,t);const r=this.getCouchAdapter(),i=e,o=await r.view(i.descriptor.ddoc,i.descriptor.view,i.descriptor.options,t);return this.processViewResponse(e,o)}async handleAverage(e,t){if("avg"!==e.kind)throw new r.QueryError("Average descriptor is not valid");const[i,o]=[e.sumDescriptor,e.countDescriptor],n=this.getCouchAdapter(),[a,s]=await Promise.all([n.view(i.ddoc,i.view,i.options,t),n.view(o.ddoc,o.view,o.options,t)]),c=a.rows?.[0]?.value??0,u=s.rows?.[0]?.value??0;return u?c/u:0}executeManualAggregation(e,t,i){if(!this.fromSelector)throw new r.QueryError("Manual aggregation requires a target model");if("avg"===t.kind)return this.computeAverage(e,t.attribute);if("groupBy"===t.kind)return this.computeGroupBy(e,t.meta.attribute);const o=t.meta.attribute;switch(t.kind){case"count":return t.countDistinct?this.computeDistinctCount(e,o):this.computeCount(e,o);case"distinct":return t.countDistinct?this.computeDistinctCount(e,o):this.computeDistinctValues(e,o);case"sum":return this.computeSum(e,o);case"min":return this.computeMinMax(e,o,"min");case"max":return this.computeMinMax(e,o,"max");default:throw new r.QueryError("Unsupported manual aggregation "+t.kind)}}computeCount(e,t){return t?this.collectValues(e,t).filter(e=>null!=e).length:e.length}computeDistinctCount(e,t){const r=t?this.collectValues(e,t).filter(e=>null!=e):e,i=new Set;return r.forEach(e=>i.add(JSON.stringify(e))),i.size}computeDistinctValues(e,t){if(!t)return[];const r=this.collectValues(e,t),i=new Set,o=[];return r.forEach(e=>{const t=JSON.stringify(e);i.has(t)||(i.add(t),o.push(e))}),o}computeSum(e,t){return t?this.collectValues(e,t).filter(e=>null!=e).reduce((e,r)=>e+this.toNumericValue(r,t,"SUM operation"),0):e.length}computeAverage(e,t){if(!t)return 0;const r=this.collectValues(e,t).filter(e=>null!=e);return r.length?r.reduce((e,r)=>e+this.toNumericValue(r,t,"AVG operation"),0)/r.length:0}computeMinMax(e,t,r){if(!t)return null;const i=this.collectValues(e,t).filter(e=>null!=e);let o=null,n=null;for(const e of i){const t=this.normalizeComparable(e);null!==t&&(null!==n?("min"===r&&n>t||"max"===r&&t>n)&&(n=t,o=e):(n=t,o=e))}return o}computeGroupBy(e,t){const r={},i=this.collectValues(e,t);return e.forEach((e,t)=>{const o=this.groupKey(i[t]);r[o]||(r[o]=[]),r[o].push(e)}),r}groupSelectResults(e){if(!this.groupBySelectors?.length)return{};const t=this.resolveSelectorAttribute(this.groupBySelectors[0]);if(!t)return{};const r={};return e.forEach(e=>{const i=this.groupKey(this.convertValueByAttribute(t,e[t]));r[i]||(r[i]=[]),r[i].push(e)}),r}collectValues(e,t){return e.map(e=>{if(e&&"object"==typeof e)return this.convertValueByAttribute(t,e[t])})}convertValueByAttribute(e,t){if(!this.fromSelector)return t;if("date"===this.getAttributeType(e)){if(t instanceof Date)return t;const e=new Date(t);if(!Number.isNaN(e.getTime()))return e}if("string"==typeof t&&e.toLowerCase().includes("date")){const e=new Date(t);if(!Number.isNaN(e.getTime()))return e}return t}getAttributeType(e){if(!e||!this.fromSelector)return;if(this.attributeTypeCache.has(e))return this.attributeTypeCache.get(e);const r=t.Metadata.type(this.fromSelector,e)??t.Metadata.getPropDesignTypes?.(this.fromSelector,e)?.designType,i=this.normalizeMetaType(r);return this.attributeTypeCache.set(e,i),i}normalizeMetaType(e){if(e)return"string"==typeof e?e.toLowerCase():"function"==typeof e&&e.name?e.name.toLowerCase():void 0}normalizeComparable(e){return"number"==typeof e?e:"bigint"==typeof e?Number(e):e instanceof Date?e.getTime():"string"!=typeof e||isNaN(Number(e))?null:Number(e)}groupKey(e){if(void 0===e)return"undefined";if(null===e)return"null";if("symbol"==typeof e)return e.toString();if("object"==typeof e)try{return JSON.stringify(e)}catch{return e+""}return e+""}toNumericValue(e,t,i){if("number"==typeof e)return e;if("bigint"==typeof e)return Number(e);if(e instanceof Date)return e.getTime();if("string"==typeof e&&!isNaN(Number(e)))return Number(e);throw new r.QueryError(`${i} on "${t}" requires numeric values, but got ${typeof e}`)}convertAggregateValue(e,t){return e?this.convertValueByAttribute(e,t):t}resolveSelectorAttribute(e){if(null!=e)return e+""}missingDecorator(e,t){const i=this.decoratorForKind(e),n=this.fromSelector?o.Model.tableName(this.fromSelector):"<unknown table>",a=t?` on "${t}"`:"";return new r.UnsupportedError(`${i} decorator is required for CouchDB ${e} aggregation${a} on table "${n}".`)}decoratorForKind(e){return{count:"@count",sum:"@sum",min:"@min",max:"@max",distinct:"@distinct",groupBy:"@groupBy",view:"@view",avg:"@avg"}[e]||"@"+e}processViewResponse(e,t){if("avg"===e.kind)throw new r.QueryError("Average results should be handled before processing rows");const i=t.rows||[],o=e,n=o.meta;return o.countDistinct?i.length||0:"distinct"===o.kind||"groupBy"===o.kind?i.map(e=>this.convertAggregateValue(o.meta.attribute,e.key??e.value)):n.returnDocs?i.map(e=>e.value??e.doc??e):i.length?this.convertAggregateValue(o.meta.attribute,i[0].value??i[0].key??null):"count"===o.kind?0:null}isViewAggregate(e){return"avg"!==e.kind}getCouchAdapter(){return this.adapter}parseCondition(e){const{attr1:t,operator:i,comparison:o}=e;if(i===r.Operator.STARTS_WITH){if("string"!=typeof t)throw new r.QueryError("STARTS_WITH requires an attribute name");if("string"!=typeof o)throw new r.QueryError("STARTS_WITH requires a string comparison");const e={start:n=o,end:x(n)};return{selector:{[t]:{[u.BIGGER_EQ]:e.start,[u.SMALLER]:e.end}}}}var n,a;if(i===r.Operator.ENDS_WITH){if("string"!=typeof t)throw new r.QueryError("ENDS_WITH requires an attribute name");if("string"!=typeof o)throw new r.QueryError("ENDS_WITH requires a string comparison");return{selector:{[t]:{[u.REGEXP]:(a=o,a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"$")}}}}if(i===r.Operator.BETWEEN){const e=t;if(!Array.isArray(o)||2!==o.length)throw new r.QueryError("BETWEEN operator requires [min, max] comparison");const[i,n]=o,a={};return a[e]={},a[e][M(r.Operator.BIGGER_EQ)]=i,a[e][M(r.Operator.SMALLER_EQ)]=n,{selector:a}}let s={};if(-1===[r.GroupOperator.AND,r.GroupOperator.OR,r.Operator.NOT].indexOf(i))s[t]={},s[t][M(i)]=o;else if(i===r.Operator.NOT)s=this.parseCondition(t).selector,s[M(r.Operator.NOT)]={},s[M(r.Operator.NOT)][t.attr1]=o;else{const e=this.parseCondition(t).selector,r=this.parseCondition(o).selector;s=((e,t,r)=>{const i={selector:{}};return i.selector[e]=[t,r],i})(M(i),e,r).selector}return{selector:s}}}class I extends r.Adapter{constructor(e,t,r){super(e,t,r),[this.create,this.createAll,this.update,this.updateAll].forEach(e=>{const t=e.name;i.prefixMethod(this,e,this[t+"Prefix"])})}Statement(e){return new C(this,e)}Paginator(e,t,r){return new _(this,e,t,r)}async initialize(){const e=r.Adapter.models(this.flavour);return this.index(...e)}repository(){return N}assignMetadata(e,t){return t?(D(e,t),e):e}assignMultipleMetadata(e,t){return e.forEach((e,r)=>(D(e,t[r]),e)),e}prepare(e,...t){const{log:n}=this.logCtx(t,this.prepare),a=e.segregate(),s=Object.entries(a.model).reduce((t,[r,n])=>{if(void 0===n)return t;const a=o.Model.columnName(e.constructor,r);if(this.isReserved(a))throw new i.InternalError(`Property name ${a} is reserved`);return n=n instanceof Date?new Date(n):n,t[a]=n,t},{});return e[r.PersistenceKeys.METADATA]&&(n.silly("Passing along persistence metadata for "+e[r.PersistenceKeys.METADATA]),Object.defineProperty(s,r.PersistenceKeys.METADATA,{enumerable:!1,writable:!0,configurable:!0,value:e[r.PersistenceKeys.METADATA]})),{record:s,id:e[o.Model.pk(e.constructor)],transient:a.transient}}createPrefix(e,t,r,...i){const{ctxArgs:n}=this.logCtx(i,this.createPrefix),a=o.Model.tableName(e),s={};return s[c.TABLE]=a,s[c.ID]=this.generateId(a,t),Object.assign(s,r),[e,t,s,...n]}createAllPrefix(e,t,r,...n){const a=o.Model.tableName(e);if(t.length!==r.length)throw new i.InternalError("Ids and models must have the same length");const{ctxArgs:s}=this.logCtx(n,this.createAllPrefix),u=t.map((e,t)=>{const i={};return i[c.TABLE]=a,i[c.ID]=this.generateId(a,e),Object.assign(i,r[t]),i});return[e,t,u,...s]}updatePrefix(e,t,n,...a){const s=o.Model.tableName(e),{ctxArgs:u}=this.logCtx(a,this.updatePrefix),l={};l[c.TABLE]=s,l[c.ID]=this.generateId(s,t);const d=n[r.PersistenceKeys.METADATA];if(!d)throw new i.InternalError("No revision number found for record with id "+t);return Object.assign(l,n),l[c.REV]=d,[e,t,l,...u]}updateAllPrefix(e,t,n,...a){const s=o.Model.tableName(e);if(t.length!==n.length)throw new i.InternalError("Ids and models must have the same length");const{ctxArgs:u}=this.logCtx(a,this.updateAllPrefix),l=t.map((e,t)=>{const o={};o[c.TABLE]=s,o[c.ID]=this.generateId(s,e);const a=n[t][r.PersistenceKeys.METADATA];if(!a)throw new i.InternalError("No revision number found for record with id "+e);return Object.assign(o,n[t]),o[c.REV]=a,o});return[e,t,l,...u]}generateId(e,t){return[e,t].join(c.SEPARATOR)}parseError(e,t){return I.parseError(e,t)}isReserved(e){return!!e.match(s)}static parseError(e,t){if(e instanceof i.BaseError)return e;let o="";if("string"==typeof e){if(o=e,o.match(/already exist|update conflict/g))return new i.ConflictError(o);if(o.match(/missing|deleted/g))return new i.NotFoundError(o)}else e.code?(o=e.code,t=t||e.message):e.statusCode?(o=e.statusCode,t=t||e.message):o=e.message;switch(o.toString()){case"401":case"412":case"409":return new i.ConflictError(t);case"404":return new i.NotFoundError(t);case"400":return o.toString().match(/No\sindex\sexists/g)?new T(e):new i.InternalError(e);default:return o.toString().match(/ECONNREFUSED/g)?new r.ConnectionError(e):new i.InternalError(e)}}static setMetadata(e,t){D(e,t)}static getMetadata(e){return v(e)}static removeMetadata(e){S(e)}}n.__decorate([a.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object]),n.__metadata("design:returntype",C)],I.prototype,"Statement",null),n.__decorate([a.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,String]),n.__metadata("design:returntype",Object)],I.prototype,"assignMetadata",null),n.__decorate([a.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Array,Array]),n.__metadata("design:returntype",Array)],I.prototype,"assignMultipleMetadata",null),n.__decorate([a.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,Object,Object,Object]),n.__metadata("design:returntype",Array)],I.prototype,"createPrefix",null),n.__decorate([a.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,Array,Array,Object]),n.__metadata("design:returntype",void 0)],I.prototype,"createAllPrefix",null),n.__decorate([a.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,Object,Object,Object]),n.__metadata("design:returntype",void 0)],I.prototype,"updatePrefix",null),n.__decorate([a.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,Array,Array,Object]),n.__metadata("design:returntype",void 0)],I.prototype,"updateAllPrefix",null);const $="##VERSION##",j="##PACKAGE##";t.Metadata.registerLibrary(j,$),e.CouchDBAdapter=I,e.CouchDBConst={NULL:"null"},e.CouchDBGroupOperator=l,e.CouchDBKeys=c,e.CouchDBOperator=u,e.CouchDBPaginator=_,e.CouchDBQueryLimit=250,e.CouchDBRepository=N,e.CouchDBStatement=C,e.IndexError=T,e.PACKAGE_NAME=j,e.VERSION=$,e.collectViewMetadata=O,e.count=(e,i)=>{let o={};return e instanceof r.Condition?o.condition=e:"object"==typeof e&&e?o=e:void 0!==e&&(o.value=e),i&&(o=Object.assign({},o,i)),t.Decoration.for(r.Operator.COUNT).define({decorator:e=>r.applyViewDecorator(r.Operator.COUNT,"count",e),args:[o]}).apply()},e.distinct=(e,i)=>{let o={};return e instanceof r.Condition?o.condition=e:e&&(o=e),i&&(o=Object.assign({},o,i)),t.Decoration.for(r.Operator.DISTINCT).define({decorator:e=>r.applyViewDecorator(r.Operator.DISTINCT,"distinct",e),args:[o]}).apply()},e.findViewMetadata=E,e.generateDesignDocName=A,e.generateIndexDoc=g,e.generateIndexName=p,e.generateIndexes=e=>{const t=w([c.TABLE]),n={};return n[t]={index:{fields:[c.TABLE]},name:t,ddoc:t,type:"json"},e.forEach(e=>{const t=o.Model.tableName(e);let a=[];try{a=o.Model.defaultQueryAttributes(e)}catch(e){a=[]}a.forEach(e=>{const i=w([t,e,"defaultQuery"]),o={[c.TABLE]:{[u.EQUAL]:t}};n[i]={index:{fields:[c.TABLE,e]},name:i,ddoc:i,type:"json"},n[i].index.partial_filter_selector=o,[r.OrderDirection.ASC,r.OrderDirection.DSC].forEach(r=>{const i=w([t,e,"defaultQuery"],r);n[i]={index:{fields:[{[c.TABLE]:r},{[e]:r}]},name:i,ddoc:i,type:"json"}})});const s=o.Model.indexes(e);Object.entries(s).forEach(([e,o])=>{const a=[];Object.entries(o||{}).forEach(([,t])=>{if(!t)return;const r=t;void 0===r.directions&&void 0===r.compositions?"object"!=typeof t||Array.isArray(t)||Object.entries(t).forEach(([e,t])=>{t&&a.push([e,t])}):a.push([e,r])}),a.forEach(([e,o])=>{if(!o)return;let{directions:a,compositions:s}=o;const l=t;s=s||[];const d=[e,...s],p={[c.TABLE]:{[u.EQUAL]:l}};function g(t,o){const a=[l,e,...s,...o?[o]:[],r.PersistenceKeys.INDEX].join(i.DefaultSeparator),u=[c.TABLE,...d],g=t?[{[c.TABLE]:t},...d.map(e=>({[e]:t}))]:u;n[a]={index:{fields:g},name:a,ddoc:a,type:"json"},t||(n[a].index.partial_filter_selector=p)}g(),Array.from(new Set((a||[r.OrderDirection.ASC]).map(e=>(e+"").toLowerCase()))).filter(e=>e===r.OrderDirection.ASC||e===r.OrderDirection.DSC).forEach(e=>{g(e,e)})})})}),b(e).forEach(e=>{e.name&&(n[e.name]=e)}),Object.values(n)},e.generateViewIndexes=b,e.generateViewName=y,e.generateViews=e=>{const t={},i=[[c.VIEW,"view"],[r.Operator.GROUP_BY,"groupBy"],[r.Operator.COUNT,"count"],[r.Operator.SUM,"sum"],[r.Operator.MAX,"max"],[r.Operator.MIN,"min"],[r.Operator.DISTINCT,"distinct"]];return e.forEach(e=>{const n=o.Model.tableName(e);i.flatMap(([t,r])=>O(e,t,r)).forEach(e=>{const i=e.attribute,o=y(n,i,e.kind,e),a="_design/"+(e.ddoc||A(n,o)),s=((e,t,i,o)=>{const n=((e,t,i)=>{if(i.map)return"function"==typeof i.map?i.map.toString():i.map;const o=[];if(o.push(`doc[${JSON.stringify(c.TABLE)}] === ${JSON.stringify(e)}`),i.condition)if(i.condition instanceof r.Condition)o.push(h(i.condition,"doc"));else if("string"==typeof i.condition)o.push(i.condition);else{const e=r.Condition.from(i.condition);o.push(h(e,"doc"))}"count"===i.kind&&void 0!==i.value&&o.push(`doc[${JSON.stringify(t)}] === ${f(i.value)}`);const n=((e,t="doc")=>{if(!e)return;if("string"==typeof e)return e;const r=e.field||"roles",i=e.roles||[];if(!i.length)return e.expression;const o=`${t}[${JSON.stringify(r)}] || []`;return"all"===(e.mode||"any")?i.map(e=>`${o}.indexOf(${JSON.stringify(e)}) !== -1`).join(" && "):i.map(e=>`${o}.indexOf(${JSON.stringify(e)}) !== -1`).join(" || ")})(i.auth,"doc");n&&o.push(n);const a=o.length?o.join(" && "):"true",s=((e,t,r)=>{const i=m(e,t,r);return 1===i.length?`doc[${JSON.stringify(i[0])}]`:`[${i.map(e=>`doc[${JSON.stringify(e)}]`).join(", ")}]`})(i.key,t,i.compositions),u=((e,t)=>"doc"===e?"doc":e?Array.isArray(e)?`[${e.map(e=>`doc[${JSON.stringify(e)}]`).join(", ")}]`:"string"==typeof e?`doc[${JSON.stringify(e)}]`:f(e):`doc[${JSON.stringify(t)}]`)(i.value??(i.returnDocs&&"sum"!==i.kind?"doc":void 0),t);return`function (doc) {\n if (!(${a})) return;\n emit(${s}, ${u});\n}`})(o,t,i),a=i.reduce?"function"==typeof i.reduce?i.reduce.toString():i.reduce:(e=>{switch(e){case"count":case"groupBy":case"distinct":return"_count";case"sum":return"_sum";case"max":return"function (keys, values, rereduce) {\n var maxVal = null;\n for (var i = 0; i < values.length; i++) {\n var val = values[i];\n if (rereduce && val && typeof val === 'object' && 'value' in val) val = val.value;\n if (maxVal === null || val > maxVal) maxVal = val;\n }\n return maxVal;\n}";case"min":return"function (keys, values, rereduce) {\n var minVal = null;\n for (var i = 0; i < values.length; i++) {\n var val = values[i];\n if (rereduce && val && typeof val === 'object' && 'value' in val) val = val.value;\n if (minVal === null || val < minVal) minVal = val;\n }\n return minVal;\n}";default:return}})(e);return{map:n,reduce:a}})(e.kind,i,e,n);t[a]||(t[a]={_id:a,language:"javascript",views:{}}),t[a].views[o]=s})}),Object.values(t)},e.getMetadata=v,e.groupBy=(e,i)=>{let o={};return Array.isArray(e)?o.compositions=e:"string"==typeof e?o.name=e:e&&(o=e),"string"==typeof i?o.name=i:i&&(o=Object.assign({},o,i)),void 0===o.returnDocs&&(o.returnDocs=!0),t.Decoration.for(r.Operator.GROUP_BY).define({decorator:e=>r.applyViewDecorator(r.Operator.GROUP_BY,"groupBy",e),args:[o]}).apply()},e.max=(e,i)=>{let o={};return e instanceof r.Condition?o.condition=e:e&&(o=e),i&&(o=Object.assign({},o,i)),t.Decoration.for(r.Operator.MAX).define({decorator:e=>r.applyViewDecorator(r.Operator.MAX,"max",e),args:[o]}).apply()},e.min=(e,i)=>{let o={};return e instanceof r.Condition?o.condition=e:e&&(o=e),i&&(o=Object.assign({},o,i)),t.Decoration.for(r.Operator.MIN).define({decorator:e=>r.applyViewDecorator(r.Operator.MIN,"min",e),args:[o]}).apply()},e.reAuth=d,e.removeMetadata=S,e.reservedAttributes=s,e.setMetadata=D,e.sum=(e,i)=>{let o={};return e instanceof r.Condition?o.condition=e:e&&(o=e),i&&(o=Object.assign({},o,i)),t.Decoration.for(r.Operator.SUM).define({decorator:e=>r.applyViewDecorator(r.Operator.SUM,"sum",e),args:[o]}).apply()},e.testReservedAttributes=e=>e.match(/^_.*$/g),e.translateOperators=M,e.viewIndexDefinition=e=>{const t=m(e.key,e.attribute);return{attribute:t[0],compositions:t.slice(1).concat(e.compositions||[]),directions:e.directions}},e.wrapDocumentScope=(e,t,r,i)=>{const o=e.use?e.use(t):e;return["insert","get","put","destroy","find","view"].forEach(t=>{const n=o[t];Object.defineProperty(o,t,{enumerable:!1,configurable:!0,value:async(...t)=>(await d(e,r,i),n.call(o,...t))})}),Object.defineProperty(o,c.NATIVE,{enumerable:!1,configurable:!1,writable:!1,value:e}),o}},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("@decaf-ts/core"),require("@decaf-ts/db-decorators"),require("@decaf-ts/decorator-validation"),require("tslib"),require("@decaf-ts/logging")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/core","@decaf-ts/db-decorators","@decaf-ts/decorator-validation","tslib","@decaf-ts/logging"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-couchdb"]={},e.decafTsDecoration,e.decafTsCore,e.decafTsDbDecorators,e.decafTsDecoratorValidation,e.tslib,e.decafTsLogging);
|
|
1
|
+
var e,t;e=this,t=function(e,t,r,i,o,n,a){"use strict";const s=/^_.*$/g,c={SEPARATOR:"__",ID:"_id",REV:"_rev",DELETED:"_deleted",TABLE:"??table",SEQUENCE:"??sequence",DDOC:"ddoc",NATIVE:"__native",INDEX:"index",VIEW:"view"},u={EQUAL:"$eq",DIFFERENT:"$ne",BIGGER:"$gt",BIGGER_EQ:"$gte",SMALLER:"$lt",SMALLER_EQ:"$lte",NOT:"$not",IN:"$in",REGEXP:"$regex"},l={AND:"$and",OR:"$or"};async function d(e,t,r){return e.auth(t,r)}function p(e,t,o,n,a=i.DefaultSeparator){const s=[r.PersistenceKeys.INDEX,t,e];return o&&s.push(...o),n&&s.push(n),s.join(a)}function g(e,t,r,o,n=i.DefaultSeparator){const a={};let s;if(a[c.TABLE]={},a[c.TABLE][u.EQUAL]=t,o){const t={};t[e]=o;const i=(r||[]).map(e=>{const t={};return t[e]=o,t}),n={};n[c.TABLE]=o,s=[t,...i,n]}else s=[e,...r||[],c.TABLE];const l=p(e,t,r,o,n);return{index:{fields:s},ddoc:[l,c.DDOC].join(n),name:l}}function f(e){return e instanceof Date?JSON.stringify(e.toISOString()):e instanceof RegExp?`new RegExp(${JSON.stringify(e.source)}, ${JSON.stringify(e.flags)})`:JSON.stringify(e)}function h(e,t){const{attr1:i,operator:o,comparison:n}=e;if(i instanceof r.Condition){const e=h(i,t);if(o===r.Operator.NOT)return`!(${e})`;const a=h(n,t);return o===r.GroupOperator.AND?`(${e} && ${a})`:o===r.GroupOperator.OR?`(${e} || ${a})`:e}const a=`${t}[${JSON.stringify(i)}]`;switch(o){case r.Operator.EQUAL:return`${a} === ${f(n)}`;case r.Operator.DIFFERENT:return`${a} !== ${f(n)}`;case r.Operator.BIGGER:return`${a} > ${f(n)}`;case r.Operator.BIGGER_EQ:return`${a} >= ${f(n)}`;case r.Operator.SMALLER:return`${a} < ${f(n)}`;case r.Operator.SMALLER_EQ:return`${a} <= ${f(n)}`;case r.Operator.IN:return`(${f(n)}).indexOf(${a}) !== -1`;case r.Operator.REGEXP:return`${n instanceof RegExp?f(n):`new RegExp(${JSON.stringify(n)})`}.test(${a})`;case r.Operator.NOT:return`!(${a} === ${f(n)})`;default:return"true"}}function m(e,t,r){return e?Array.isArray(e)?e:[e]:t?[t,...r||[]]:r||[]}function y(e,t,r,o,n=i.DefaultSeparator){return o.name?o.name:[e,t,r,"view"].join(n).replace(/\s+/g,"_")}function A(e,t,r=i.DefaultSeparator){return[e,t,c.DDOC].join(r)}function E(e,i,o){const n={view:r.Operator.VIEW,groupBy:r.Operator.GROUP_BY,count:r.Operator.COUNT,sum:r.Operator.SUM,max:r.Operator.MAX,min:r.Operator.MIN,distinct:r.Operator.DISTINCT}[i];if(!n)return[];const a=t.Metadata.get(e,n)||{};return Object.entries(a).flatMap(([e,t])=>t&&"object"==typeof t?Object.values(t).map(t=>({...t,kind:i,attribute:t.attribute||e})).filter(e=>!o||e.attribute===o):[])}function O(e,r,i){const o=t.Metadata.get(e,r)||{};return Object.entries(o).flatMap(([e,t])=>t&&"object"==typeof t?Object.values(t).map(t=>{const r=t;return{...r,kind:i,attribute:r.attribute||e}}):[])}function b(e){const t={},i=[[c.VIEW,"view"],[r.Operator.GROUP_BY,"groupBy"],[r.Operator.COUNT,"count"],[r.Operator.SUM,"sum"],[r.Operator.MAX,"max"],[r.Operator.MIN,"min"],[r.Operator.DISTINCT,"distinct"]];return e.forEach(e=>{const n=o.Model.tableName(e);i.flatMap(([t,r])=>O(e,t,r)).forEach(e=>{const i=m(e.key,e.attribute,e.compositions);if(!i.length)return;const o=i[0],a=i.slice(1),s=e.directions||[r.OrderDirection.ASC,r.OrderDirection.DSC],c=g(o,n,a);t[c.name||""]=c,s.forEach(e=>{const r=g(o,n,a,e);t[r.name||""]=r})})}),Object.values(t)}function w(e,t,r,o=i.DefaultSeparator){return[...e.map(e=>e===c.TABLE?"table":e),...t?[t]:[],c.INDEX].join(o)}function D(e,t){Object.defineProperty(e,r.PersistenceKeys.METADATA,{enumerable:!1,configurable:!0,writable:!0,value:t})}function v(e){const t=Object.getOwnPropertyDescriptor(e,r.PersistenceKeys.METADATA);return t?t.value:void 0}function S(e){Object.getOwnPropertyDescriptor(e,r.PersistenceKeys.METADATA)&&delete e[r.PersistenceKeys.METADATA]}class N extends r.Repository{constructor(e,t,r=!1){super(e,t,r)}assignMetadata(e,t){const r=(e,t)=>{const r=v(t??e);return r&&D(e,r),e};return Array.isArray(e)?e.map((e,i)=>{const o=Array.isArray(t)?t[i]:t;return r(e,o)}):r(e,Array.isArray(t)?t?.[0]:t)}async create(e,...t){const r=await super.create(e,...t);return this.assignMetadata(r),this.assignMetadata(e,r),r}async createAll(e,...t){const r=await super.createAll(e,...t);return this.assignMetadata(r),this.assignMetadata(e,r),r}async read(e,...t){const r=await super.read(e,...t);return this.assignMetadata(r)}async readAll(e,...t){const r=await super.readAll(e,...t);return this.assignMetadata(r)}async update(e,...t){const r=await super.update(e,...t);return this.assignMetadata(r),this.assignMetadata(e,r),r}async updateAll(e,...t){const r=await super.updateAll(e,...t);return this.assignMetadata(r),this.assignMetadata(e,r),r}async delete(e,...t){const r=await super.delete(e,...t);return this.assignMetadata(r)}async deleteAll(e,...t){const r=await super.deleteAll(e,...t);return this.assignMetadata(r)}async updatePrefix(e,...t){const{ctx:r,ctxArgs:n,log:a}=(await this.logCtx(t,i.OperationKeys.UPDATE,!0)).for(this.updatePrefix),s=r.get("ignoreHandlers"),c=r.get("ignoreValidation");a.silly(`handlerSetting: ${s}, validationSetting: ${c}`);const u=e[this.pk];if(!u)throw new i.InternalError("No value for the Id is defined under the property "+this.pk);let l,d;if(r.get("applyUpdateValidation")&&(l=await this.read(u),d=l?v(l):void 0,r.get("mergeForUpdate")&&(e=o.Model.merge(l,e,this.class))),s||await i.enforceDBDecorators(this,r,e,i.OperationKeys.UPDATE,i.OperationKeys.ON,l),!c){const t=r.get("ignoredValidationProperties")||[];a.silly("ignored validation properties: "+t);const o=await Promise.resolve(e.hasErrors(l,...t));if(o)throw new i.ValidationError(o.toString())}return d&&D(e,d),[e,...n,l]}async updateAllPrefix(e,...t){const{ctx:r,ctxArgs:n,log:a}=(await this.logCtx(t,i.BulkCrudOperationKeys.UPDATE_ALL,!0)).for(this.updateAllPrefix),s=r.get("ignoreHandlers"),c=r.get("ignoreValidation");a.silly(`handlerSetting: ${s}, ignoredValidation: ${c}`);const u=e.map(e=>{const t=e[this.pk];if(!t)throw new i.InternalError("missing id on update operation");return t});let l;if(r.get("applyUpdateValidation")&&(l=await this.readAll(u,r),e=e.map((e,t)=>{r.get("mergeForUpdate")&&(e=o.Model.merge(l[t],e,this.class));const i=v(l[t]);return i&&D(e,i),e})),s||await Promise.all(e.map((e,t)=>i.enforceDBDecorators(this,r,e,i.OperationKeys.UPDATE,i.OperationKeys.ON,l?l[t]:void 0))),!c){const t=r.get("ignoredValidationProperties")||[];let o;a.silly("ignored validation properties: "+t),o=r.get("applyUpdateValidation")?await Promise.all(e.map((e,r)=>Promise.resolve(e.hasErrors(l[r],...t)))):await Promise.resolve(e.map(e=>e.hasErrors(...t)));const n=i.reduceErrorsToPrint(o);if(n)throw new i.ValidationError(n)}return[e,...n,l]}}class T extends i.BaseError{constructor(e){super(T.name,e,404)}}class _ extends r.Paginator{constructor(e,t,r,i){super(e,t,r,i)}prepare(e){const t=Object.assign({},e);return t.limit&&(this.limit=t.limit),t.limit=this.size,t}async page(e=1,n,...a){const{log:s,ctxArgs:c,ctx:u}=this.adapter.logCtx([n,...a],this.page);if(this.isPreparedStatement())return await this.pagePrepared(e,...c);const l=Object.assign({},this.statement);if(this._recordCount&&this._totalPages)e=this.validatePage(e),l.skip=(e-1)*this.size;else{this._totalPages=this._recordCount=0;const t=await this.adapter.raw({...l,limit:Number.MAX_SAFE_INTEGER},!0,...c)||[];if(this._recordCount=t.length,this._recordCount>0){const t=l?.limit||this.size;return this._totalPages=Math.ceil(this._recordCount/t),await this.page(e,...c)}}if(1!==e){if(!this._bookmark)throw new r.PagingError("No bookmark. Did you start in the first page?");l.bookmark=this._bookmark}const d=await this.adapter.raw(l,!1,...c),{docs:p,bookmark:g,warning:f}=d;if(f&&s.warn(f),!this.clazz)throw new r.PagingError("No statement target defined");const h=o.Model.pk(this.clazz),m=t.Metadata.get(this.clazz,t.Metadata.key(i.DBKeys.ID,h))?.type,y=l.fields&&l.fields.length?p:p.map(e=>this.adapter.revert(e,this.clazz,r.Sequence.parseValue(m,e[h]),void 0,u));return this._bookmark=g,this._currentPage=e,y}}function M(e){for(const t of[u,l]){const r=Object.keys(t).find(t=>t===e);if(r)return t[r]}throw new r.QueryError("Could not find adapter translation for operator "+e)}function x(e){if(!e)return"\0";const t=Array.from(e);for(let e=t.length-1;e>=0;e-=1){const r=t[e].codePointAt(0);if(void 0!==r&&1114111>r)return t[e]=String.fromCodePoint(r+1),t.slice(0,e+1).join("")}return e+"\0"}class C extends r.Statement{constructor(e,t){super(e,t),this.attributeTypeCache=new Map}build(){const e=this.log.for(this.build);this.manualAggregation=void 0;const t=this.buildAggregateInfo();if(t){if(!this.shouldUseManualAggregation())return this.createAggregateQuery(t);this.manualAggregation=t}const i={};i[c.TABLE]={},i[c.TABLE]=o.Model.tableName(this.fromSelector);const n={selector:i};if(this.selectSelector&&(n.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(r.Condition.and(this.whereCondition,r.Condition.attribute(c.TABLE).eq(n.selector[c.TABLE]))).selector,i=Object.keys(t);if(1===i.length&&-1!==Object.values(l).indexOf(i[0]))switch(i[0]){case l.AND:t[l.AND]=[...Object.values(t[l.AND]).reduce((e,t)=>{const r=Object.keys(t);if(1!==r.length)throw Error("Too many keys in query selector. should be one");const i=r[0];return i===l.AND?e.push(...t[i]):e.push(t),e},[])],n.selector=t;break;case l.OR:{const e={};e[l.AND]=[t,...Object.entries(n.selector).map(([e,t])=>{const r={};return r[e]=t,r})],n.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach(([t,r])=>{n.selector[t]&&e.warn(`A ${t} query param is about to be overridden: ${n.selector[t]} by ${r}`),n.selector[t]=r})}if(this.orderBySelectors?.length){n.sort=n.sort||[],n.selector=n.selector||{};for(const[e,t]of this.orderBySelectors){const r=e,i={};i[r]=t,n.sort.push(i),n.selector[r]||(n.selector[r]={},n.selector[r][u.BIGGER]=null)}}const a=!!this.manualAggregation;return this.limitSelector?n.limit=this.limitSelector:a||(e.warn("No limit selector defined. Using default couchdb limit of 250"),n.limit=250),this.offsetSelector&&(n.skip=this.offsetSelector),n}processRecord(e,n){const a=o.Model.pk(this.fromSelector),s=t.Metadata.get(this.fromSelector,t.Metadata.key(i.DBKeys.ID,a))?.type;if(e[c.ID]){const[,...t]=e[c.ID].split(c.SEPARATOR),i=t.join("_");e[a]=r.Sequence.parseValue(s,i)}return this.adapter.revert(e,this.fromSelector,e[a],void 0,n)}async raw(e,...t){const{ctx:r}=this.logCtx(t,this.raw),i=e?.aggregateInfo;if(e?.aggregate&&i)return this.executeAggregate(i,r);const o=await this.adapter.raw(e,!0,r),n=o.map(e=>this.processRecord(e,r));if(this.manualAggregation){const e=this.executeManualAggregation(n,this.manualAggregation,r);return this.manualAggregation=void 0,e}return!this.selectSelector&&this.groupBySelectors?.length?this.groupSelectResults(n):this.selectSelector?o:await this.applyAfterHandlersToResult(n,r)}buildAggregateInfo(){if(this.fromSelector){if(this.avgSelector){const e=this.avgSelector+"",t=this.createAggregateDescriptor("sum",e);if(!t)throw this.missingDecorator("sum",e);const r=this.createAggregateDescriptor("count",e);if(!r)throw this.missingDecorator("count",e);return{kind:"avg",attribute:e,sumDescriptor:t.descriptor,countDescriptor:r.descriptor}}if(void 0!==this.countDistinctSelector){const e=this.resolveSelectorAttribute(this.countDistinctSelector),t=this.createAggregateDescriptor("distinct",e);if(!t)throw this.missingDecorator("distinct",e);return t.countDistinct=!0,t}if(void 0!==this.countSelector){const e=this.resolveSelectorAttribute(this.countSelector),t=this.createAggregateDescriptor("count",e);if(!t)throw this.missingDecorator("count",e);return t}if(this.maxSelector){const e=this.resolveSelectorAttribute(this.maxSelector),t=this.createAggregateDescriptor("max",e);if(!t)throw this.missingDecorator("max",e);return t}if(this.minSelector){const e=this.resolveSelectorAttribute(this.minSelector),t=this.createAggregateDescriptor("min",e);if(!t)throw this.missingDecorator("min",e);return t}if(this.sumSelector){const e=this.resolveSelectorAttribute(this.sumSelector),t=this.createAggregateDescriptor("sum",e);if(!t)throw this.missingDecorator("sum",e);return t}if(this.distinctSelector){const e=this.resolveSelectorAttribute(this.distinctSelector),t=this.createAggregateDescriptor("distinct",e);if(!t)throw this.missingDecorator("distinct",e);return t}}}createAggregateDescriptor(e,t){if(!this.fromSelector)return;const r=E(this.fromSelector,e,t);if(!r.length)return;const i=r[0],n=o.Model.tableName(this.fromSelector),a=y(n,i.attribute,e,i),s=i.ddoc||A(n,a),c={reduce:void 0!==i.reduce||!i.returnDocs};return"distinct"!==e&&"groupBy"!==e||(c.group=!0),{kind:e,meta:i,descriptor:{ddoc:s,view:a,options:c}}}createAggregateQuery(e){return{selector:{},aggregate:!0,aggregateInfo:e}}shouldUseManualAggregation(){return!!this.whereCondition}async executeAggregate(e,t){if(!this.isViewAggregate(e))return this.handleAverage(e,t);const r=this.getCouchAdapter(),i=e,o=await r.view(i.descriptor.ddoc,i.descriptor.view,i.descriptor.options,t);return this.processViewResponse(e,o)}async handleAverage(e,t){if("avg"!==e.kind)throw new r.QueryError("Average descriptor is not valid");const[i,o]=[e.sumDescriptor,e.countDescriptor],n=this.getCouchAdapter(),[a,s]=await Promise.all([n.view(i.ddoc,i.view,i.options,t),n.view(o.ddoc,o.view,o.options,t)]),c=a.rows?.[0]?.value??0,u=s.rows?.[0]?.value??0;return u?c/u:0}executeManualAggregation(e,t,i){if(!this.fromSelector)throw new r.QueryError("Manual aggregation requires a target model");if("avg"===t.kind)return this.computeAverage(e,t.attribute);if("groupBy"===t.kind)return this.computeGroupBy(e,t.meta.attribute);const o=t.meta.attribute;switch(t.kind){case"count":return t.countDistinct?this.computeDistinctCount(e,o):this.computeCount(e,o);case"distinct":return t.countDistinct?this.computeDistinctCount(e,o):this.computeDistinctValues(e,o);case"sum":return this.computeSum(e,o);case"min":return this.computeMinMax(e,o,"min");case"max":return this.computeMinMax(e,o,"max");default:throw new r.QueryError("Unsupported manual aggregation "+t.kind)}}computeCount(e,t){return t?this.collectValues(e,t).filter(e=>null!=e).length:e.length}computeDistinctCount(e,t){const r=t?this.collectValues(e,t).filter(e=>null!=e):e,i=new Set;return r.forEach(e=>i.add(JSON.stringify(e))),i.size}computeDistinctValues(e,t){if(!t)return[];const r=this.collectValues(e,t),i=new Set,o=[];return r.forEach(e=>{const t=JSON.stringify(e);i.has(t)||(i.add(t),o.push(e))}),o}computeSum(e,t){return t?this.collectValues(e,t).filter(e=>null!=e).reduce((e,r)=>e+this.toNumericValue(r,t,"SUM operation"),0):e.length}computeAverage(e,t){if(!t)return 0;const r=this.collectValues(e,t).filter(e=>null!=e);return r.length?r.reduce((e,r)=>e+this.toNumericValue(r,t,"AVG operation"),0)/r.length:0}computeMinMax(e,t,r){if(!t)return null;const i=this.collectValues(e,t).filter(e=>null!=e);let o=null,n=null;for(const e of i){const t=this.normalizeComparable(e);null!==t&&(null!==n?("min"===r&&n>t||"max"===r&&t>n)&&(n=t,o=e):(n=t,o=e))}return o}computeGroupBy(e,t){const r={},i=this.collectValues(e,t);return e.forEach((e,t)=>{const o=this.groupKey(i[t]);r[o]||(r[o]=[]),r[o].push(e)}),r}groupSelectResults(e){if(!this.groupBySelectors?.length)return{};const t=this.resolveSelectorAttribute(this.groupBySelectors[0]);if(!t)return{};const r={};return e.forEach(e=>{const i=this.groupKey(this.convertValueByAttribute(t,e[t]));r[i]||(r[i]=[]),r[i].push(e)}),r}collectValues(e,t){return e.map(e=>{if(e&&"object"==typeof e)return this.convertValueByAttribute(t,e[t])})}convertValueByAttribute(e,t){if(!this.fromSelector)return t;if("date"===this.getAttributeType(e)){if(t instanceof Date)return t;const e=new Date(t);if(!Number.isNaN(e.getTime()))return e}if("string"==typeof t&&e.toLowerCase().includes("date")){const e=new Date(t);if(!Number.isNaN(e.getTime()))return e}return t}getAttributeType(e){if(!e||!this.fromSelector)return;if(this.attributeTypeCache.has(e))return this.attributeTypeCache.get(e);const r=t.Metadata.type(this.fromSelector,e)??t.Metadata.getPropDesignTypes?.(this.fromSelector,e)?.designType,i=this.normalizeMetaType(r);return this.attributeTypeCache.set(e,i),i}normalizeMetaType(e){if(e)return"string"==typeof e?e.toLowerCase():"function"==typeof e&&e.name?e.name.toLowerCase():void 0}normalizeComparable(e){return"number"==typeof e?e:"bigint"==typeof e?Number(e):e instanceof Date?e.getTime():"string"!=typeof e||isNaN(Number(e))?null:Number(e)}groupKey(e){if(void 0===e)return"undefined";if(null===e)return"null";if("symbol"==typeof e)return e.toString();if("object"==typeof e)try{return JSON.stringify(e)}catch{return e+""}return e+""}toNumericValue(e,t,i){if("number"==typeof e)return e;if("bigint"==typeof e)return Number(e);if(e instanceof Date)return e.getTime();if("string"==typeof e&&!isNaN(Number(e)))return Number(e);throw new r.QueryError(`${i} on "${t}" requires numeric values, but got ${typeof e}`)}convertAggregateValue(e,t){return e?this.convertValueByAttribute(e,t):t}resolveSelectorAttribute(e){if(null!=e)return e+""}missingDecorator(e,t){const i=this.decoratorForKind(e),n=this.fromSelector?o.Model.tableName(this.fromSelector):"<unknown table>",a=t?` on "${t}"`:"";return new r.UnsupportedError(`${i} decorator is required for CouchDB ${e} aggregation${a} on table "${n}".`)}decoratorForKind(e){return{count:"@count",sum:"@sum",min:"@min",max:"@max",distinct:"@distinct",groupBy:"@groupBy",view:"@view",avg:"@avg"}[e]||"@"+e}processViewResponse(e,t){if("avg"===e.kind)throw new r.QueryError("Average results should be handled before processing rows");const i=t.rows||[],o=e,n=o.meta;return o.countDistinct?i.length||0:"distinct"===o.kind||"groupBy"===o.kind?i.map(e=>this.convertAggregateValue(o.meta.attribute,e.key??e.value)):n.returnDocs?i.map(e=>e.value??e.doc??e):i.length?this.convertAggregateValue(o.meta.attribute,i[0].value??i[0].key??null):"count"===o.kind?0:null}isViewAggregate(e){return"avg"!==e.kind}getCouchAdapter(){return this.adapter}parseCondition(e){const{attr1:t,operator:i,comparison:o}=e;if(i===r.Operator.STARTS_WITH){if("string"!=typeof t)throw new r.QueryError("STARTS_WITH requires an attribute name");if("string"!=typeof o)throw new r.QueryError("STARTS_WITH requires a string comparison");const e={start:n=o,end:x(n)};return{selector:{[t]:{[u.BIGGER_EQ]:e.start,[u.SMALLER]:e.end}}}}var n,a;if(i===r.Operator.ENDS_WITH){if("string"!=typeof t)throw new r.QueryError("ENDS_WITH requires an attribute name");if("string"!=typeof o)throw new r.QueryError("ENDS_WITH requires a string comparison");return{selector:{[t]:{[u.REGEXP]:(a=o,a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"$")}}}}if(i===r.Operator.BETWEEN){const e=t;if(!Array.isArray(o)||2!==o.length)throw new r.QueryError("BETWEEN operator requires [min, max] comparison");const[i,n]=o,a={};return a[e]={},a[e][M(r.Operator.BIGGER_EQ)]=i,a[e][M(r.Operator.SMALLER_EQ)]=n,{selector:a}}let s={};if(-1===[r.GroupOperator.AND,r.GroupOperator.OR,r.Operator.NOT].indexOf(i))s[t]={},s[t][M(i)]=o;else if(i===r.Operator.NOT)s=this.parseCondition(t).selector,s[M(r.Operator.NOT)]={},s[M(r.Operator.NOT)][t.attr1]=o;else{const e=this.parseCondition(t).selector,r=this.parseCondition(o).selector;s=((e,t,r)=>{const i={selector:{}};return i.selector[e]=[t,r],i})(M(i),e,r).selector}return{selector:s}}}class I extends r.Adapter{constructor(e,t,r){super(e,t,r),[this.create,this.createAll,this.update,this.updateAll].forEach(e=>{const t=e.name;i.prefixMethod(this,e,this[t+"Prefix"])})}Statement(e){return new C(this,e)}Paginator(e,t,r){return new _(this,e,t,r)}async initialize(){const e=r.Adapter.models(this.flavour);return this.index(...e)}repository(){return N}assignMetadata(e,t){return t?(D(e,t),e):e}assignMultipleMetadata(e,t){return e.forEach((e,r)=>(D(e,t[r]),e)),e}prepare(e,...t){const{log:n}=this.logCtx(t,this.prepare),a=e.segregate(),s=Object.entries(a.model).reduce((t,[r,n])=>{if(void 0===n)return t;const a=o.Model.columnName(e.constructor,r);if(this.isReserved(a))throw new i.InternalError(`Property name ${a} is reserved`);return n=n instanceof Date?new Date(n):n,t[a]=n,t},{});return e[r.PersistenceKeys.METADATA]&&(n.silly("Passing along persistence metadata for "+e[r.PersistenceKeys.METADATA]),Object.defineProperty(s,r.PersistenceKeys.METADATA,{enumerable:!1,writable:!0,configurable:!0,value:e[r.PersistenceKeys.METADATA]})),{record:s,id:e[o.Model.pk(e.constructor)],transient:a.transient}}createPrefix(e,t,r,...i){const{ctxArgs:n}=this.logCtx(i,this.createPrefix),a=o.Model.tableName(e),s={};return s[c.TABLE]=a,s[c.ID]=this.generateId(a,t),Object.assign(s,r),[e,t,s,...n]}createAllPrefix(e,t,r,...n){const a=o.Model.tableName(e);if(t.length!==r.length)throw new i.InternalError("Ids and models must have the same length");const{ctxArgs:s}=this.logCtx(n,this.createAllPrefix),u=t.map((e,t)=>{const i={};return i[c.TABLE]=a,i[c.ID]=this.generateId(a,e),Object.assign(i,r[t]),i});return[e,t,u,...s]}updatePrefix(e,t,n,...a){const s=o.Model.tableName(e),{ctxArgs:u}=this.logCtx(a,this.updatePrefix),l={};l[c.TABLE]=s,l[c.ID]=this.generateId(s,t);const d=n[r.PersistenceKeys.METADATA];if(!d)throw new i.InternalError("No revision number found for record with id "+t);return Object.assign(l,n),l[c.REV]=d,[e,t,l,...u]}updateAllPrefix(e,t,n,...a){const s=o.Model.tableName(e);if(t.length!==n.length)throw new i.InternalError("Ids and models must have the same length");const{ctxArgs:u}=this.logCtx(a,this.updateAllPrefix),l=t.map((e,t)=>{const o={};o[c.TABLE]=s,o[c.ID]=this.generateId(s,e);const a=n[t][r.PersistenceKeys.METADATA];if(!a)throw new i.InternalError("No revision number found for record with id "+e);return Object.assign(o,n[t]),o[c.REV]=a,o});return[e,t,l,...u]}generateId(e,t){return[e,t].join(c.SEPARATOR)}parseError(e,t){return I.parseError(e,t)}isReserved(e){return!!e.match(s)}static parseError(e,t){if(e instanceof i.BaseError)return e;let o="";if("string"==typeof e){if(o=e,o.match(/already exist|update conflict/g))return new i.ConflictError(o);if(o.match(/missing|deleted/g))return new i.NotFoundError(o)}else e.code?(o=e.code,t=t||e.message):e.statusCode?(o=e.statusCode,t=t||e.message):o=e.message;switch(o.toString()){case"401":case"412":case"409":return new i.ConflictError(t);case"404":return new i.NotFoundError(t);case"400":return o.toString().match(/No\sindex\sexists/g)?new T(e):new i.InternalError(e);default:return o.toString().match(/ECONNREFUSED/g)?new r.ConnectionError(e):new i.InternalError(e)}}static setMetadata(e,t){D(e,t)}static getMetadata(e){return v(e)}static removeMetadata(e){S(e)}}n.__decorate([a.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object]),n.__metadata("design:returntype",C)],I.prototype,"Statement",null),n.__decorate([a.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,String]),n.__metadata("design:returntype",Object)],I.prototype,"assignMetadata",null),n.__decorate([a.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Array,Array]),n.__metadata("design:returntype",Array)],I.prototype,"assignMultipleMetadata",null),n.__decorate([a.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,Object,Object,Object]),n.__metadata("design:returntype",Array)],I.prototype,"createPrefix",null),n.__decorate([a.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,Array,Array,Object]),n.__metadata("design:returntype",void 0)],I.prototype,"createAllPrefix",null),n.__decorate([a.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,Object,Object,Object]),n.__metadata("design:returntype",void 0)],I.prototype,"updatePrefix",null),n.__decorate([a.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,Array,Array,Object]),n.__metadata("design:returntype",void 0)],I.prototype,"updateAllPrefix",null);const $="##VERSION##",j="##PACKAGE##";t.Metadata.registerLibrary(j,$),e.CouchDBAdapter=I,e.CouchDBConst={NULL:"null"},e.CouchDBGroupOperator=l,e.CouchDBKeys=c,e.CouchDBOperator=u,e.CouchDBPaginator=_,e.CouchDBQueryLimit=250,e.CouchDBRepository=N,e.CouchDBStatement=C,e.IndexError=T,e.PACKAGE_NAME=j,e.VERSION=$,e.collectViewMetadata=O,e.count=(e,i)=>{let o={};return e instanceof r.Condition?o.condition=e:"object"==typeof e&&e?o=e:void 0!==e&&(o.value=e),i&&(o=Object.assign({},o,i)),t.Decoration.for(r.Operator.COUNT).define({decorator:e=>r.applyViewDecorator(r.Operator.COUNT,"count",e),args:[o]}).apply()},e.distinct=(e,i)=>{let o={};return e instanceof r.Condition?o.condition=e:e&&(o=e),i&&(o=Object.assign({},o,i)),t.Decoration.for(r.Operator.DISTINCT).define({decorator:e=>r.applyViewDecorator(r.Operator.DISTINCT,"distinct",e),args:[o]}).apply()},e.findViewMetadata=E,e.generateDesignDocName=A,e.generateIndexDoc=g,e.generateIndexName=p,e.generateIndexes=e=>{const t=w([c.TABLE]),n={};return n[t]={index:{fields:[c.TABLE]},name:t,ddoc:t,type:"json"},e.forEach(e=>{const t=o.Model.tableName(e);let a=[];try{a=o.Model.defaultQueryAttributes(e)}catch(e){a=[]}a.forEach(e=>{const i=w([t,e,"defaultQuery"]),o={[c.TABLE]:{[u.EQUAL]:t}};n[i]={index:{fields:[c.TABLE,e]},name:i,ddoc:i,type:"json"},n[i].index.partial_filter_selector=o,[r.OrderDirection.ASC,r.OrderDirection.DSC].forEach(r=>{const i=w([t,e,"defaultQuery"],r);n[i]={index:{fields:[{[c.TABLE]:r},{[e]:r}]},name:i,ddoc:i,type:"json"}})});const s=o.Model.indexes(e);Object.entries(s).forEach(([e,o])=>{const a=[];Object.entries(o||{}).forEach(([,t])=>{if(!t)return;const r=t;void 0===r.directions&&void 0===r.compositions?"object"!=typeof t||Array.isArray(t)||Object.entries(t).forEach(([e,t])=>{t&&a.push([e,t])}):a.push([e,r])}),a.forEach(([e,o])=>{if(!o)return;let{directions:a,compositions:s}=o;const l=t;s=s||[];const d=[e,...s],p={[c.TABLE]:{[u.EQUAL]:l}};function g(t,o){const a=[l,e,...s,...o?[o]:[],r.PersistenceKeys.INDEX].join(i.DefaultSeparator),u=[c.TABLE,...d],g=t?[{[c.TABLE]:t},...d.map(e=>({[e]:t}))]:u;n[a]={index:{fields:g},name:a,ddoc:a,type:"json"},t||(n[a].index.partial_filter_selector=p)}g(),Array.from(new Set((a||[r.OrderDirection.ASC]).map(e=>(e+"").toLowerCase()))).filter(e=>e===r.OrderDirection.ASC||e===r.OrderDirection.DSC).forEach(e=>{g(e,e)})})})}),b(e).forEach(e=>{e.name&&(n[e.name]=e)}),Object.values(n)},e.generateViewIndexes=b,e.generateViewName=y,e.generateViews=e=>{const t={},i=[[c.VIEW,"view"],[r.Operator.GROUP_BY,"groupBy"],[r.Operator.COUNT,"count"],[r.Operator.SUM,"sum"],[r.Operator.MAX,"max"],[r.Operator.MIN,"min"],[r.Operator.DISTINCT,"distinct"]];return e.forEach(e=>{const n=o.Model.tableName(e);i.flatMap(([t,r])=>O(e,t,r)).forEach(e=>{const i=e.attribute,o=y(n,i,e.kind,e),a="_design/"+(e.ddoc||A(n,o)),s=((e,t,i,o)=>{const n=((e,t,i)=>{if(i.map)return"function"==typeof i.map?i.map.toString():i.map;const o=[];if(o.push(`doc[${JSON.stringify(c.TABLE)}] === ${JSON.stringify(e)}`),i.condition)if(i.condition instanceof r.Condition)o.push(h(i.condition,"doc"));else if("string"==typeof i.condition)o.push(i.condition);else{const e=r.Condition.from(i.condition);o.push(h(e,"doc"))}"count"===i.kind&&void 0!==i.value&&o.push(`doc[${JSON.stringify(t)}] === ${f(i.value)}`);const n=((e,t="doc")=>{if(!e)return;if("string"==typeof e)return e;const r=e.field||"roles",i=e.roles||[];if(!i.length)return e.expression;const o=`${t}[${JSON.stringify(r)}] || []`;return"all"===(e.mode||"any")?i.map(e=>`${o}.indexOf(${JSON.stringify(e)}) !== -1`).join(" && "):i.map(e=>`${o}.indexOf(${JSON.stringify(e)}) !== -1`).join(" || ")})(i.auth,"doc");n&&o.push(n);const a=o.length?o.join(" && "):"true",s=((e,t,r)=>{const i=m(e,t,r);return 1===i.length?`doc[${JSON.stringify(i[0])}]`:`[${i.map(e=>`doc[${JSON.stringify(e)}]`).join(", ")}]`})(i.key,t,i.compositions),u=((e,t)=>"doc"===e?"doc":e?Array.isArray(e)?`[${e.map(e=>`doc[${JSON.stringify(e)}]`).join(", ")}]`:"string"==typeof e?`doc[${JSON.stringify(e)}]`:f(e):`doc[${JSON.stringify(t)}]`)(i.value??(i.returnDocs&&"sum"!==i.kind?"doc":void 0),t);return`function (doc) {\n if (!(${a})) return;\n emit(${s}, ${u});\n}`})(o,t,i),a=i.reduce?"function"==typeof i.reduce?i.reduce.toString():i.reduce:(e=>{switch(e){case"count":case"groupBy":case"distinct":return"_count";case"sum":return"_sum";case"max":return"function (keys, values, rereduce) {\n var maxVal = null;\n for (var i = 0; i < values.length; i++) {\n var val = values[i];\n if (rereduce && val && typeof val === 'object' && 'value' in val) val = val.value;\n if (maxVal === null || val > maxVal) maxVal = val;\n }\n return maxVal;\n}";case"min":return"function (keys, values, rereduce) {\n var minVal = null;\n for (var i = 0; i < values.length; i++) {\n var val = values[i];\n if (rereduce && val && typeof val === 'object' && 'value' in val) val = val.value;\n if (minVal === null || val < minVal) minVal = val;\n }\n return minVal;\n}";default:return}})(e);return{map:n,reduce:a}})(e.kind,i,e,n);t[a]||(t[a]={_id:a,language:"javascript",views:{}}),t[a].views[o]=s})}),Object.values(t)},e.getMetadata=v,e.groupBy=(e,i)=>{let o={};return Array.isArray(e)?o.compositions=e:"string"==typeof e?o.name=e:e&&(o=e),"string"==typeof i?o.name=i:i&&(o=Object.assign({},o,i)),void 0===o.returnDocs&&(o.returnDocs=!0),t.Decoration.for(r.Operator.GROUP_BY).define({decorator:e=>r.applyViewDecorator(r.Operator.GROUP_BY,"groupBy",e),args:[o]}).apply()},e.max=(e,i)=>{let o={};return e instanceof r.Condition?o.condition=e:e&&(o=e),i&&(o=Object.assign({},o,i)),t.Decoration.for(r.Operator.MAX).define({decorator:e=>r.applyViewDecorator(r.Operator.MAX,"max",e),args:[o]}).apply()},e.min=(e,i)=>{let o={};return e instanceof r.Condition?o.condition=e:e&&(o=e),i&&(o=Object.assign({},o,i)),t.Decoration.for(r.Operator.MIN).define({decorator:e=>r.applyViewDecorator(r.Operator.MIN,"min",e),args:[o]}).apply()},e.reAuth=d,e.removeMetadata=S,e.reservedAttributes=s,e.setMetadata=D,e.sum=(e,i)=>{let o={};return e instanceof r.Condition?o.condition=e:e&&(o=e),i&&(o=Object.assign({},o,i)),t.Decoration.for(r.Operator.SUM).define({decorator:e=>r.applyViewDecorator(r.Operator.SUM,"sum",e),args:[o]}).apply()},e.testReservedAttributes=e=>e.match(/^_.*$/g),e.translateOperators=M,e.viewIndexDefinition=e=>{const t=m(e.key,e.attribute);return{attribute:t[0],compositions:t.slice(1).concat(e.compositions||[]),directions:e.directions}},e.wrapDocumentScope=(e,t,r,i)=>{const o=e.use?e.use(t):e;return["insert","get","put","destroy","find","view"].forEach(t=>{const n=o[t];Object.defineProperty(o,t,{enumerable:!1,configurable:!0,value:async(...t)=>(await d(e,r,i),n.call(o,...t))})}),Object.defineProperty(o,c.NATIVE,{enumerable:!1,configurable:!1,writable:!1,value:e}),o}},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("@decaf-ts/core"),require("@decaf-ts/db-decorators"),require("@decaf-ts/decorator-validation"),require("tslib"),require("@decaf-ts/logging")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/core","@decaf-ts/db-decorators","@decaf-ts/decorator-validation","tslib","@decaf-ts/logging"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-couchdb"]={},e.decafTsDecoration,e.decafTsCore,e.decafTsDbDecorators,e.decafTsDecoratorValidation,e.tslib,e.decafTsLogging);
|
|
2
2
|
//# sourceMappingURL=for-couchdb.cjs.map
|
package/dist/for-couchdb.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for-couchdb.cjs","sources":["../src/constants.ts","../src/query/constants.ts","../src/utils.ts","../src/views/generator.ts","../src/indexes/generator.ts","../src/metadata.ts","../src/repository.ts","../src/errors.ts","../src/query/Paginator.ts","../src/query/translate.ts","../src/query/Statement.ts","../src/adapter.ts","../src/index.ts","../src/decorators.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["reservedAttributes","CouchDBKeys","SEPARATOR","ID","REV","DELETED","TABLE","SEQUENCE","DDOC","NATIVE","INDEX","VIEW","CouchDBOperator","EQUAL","DIFFERENT","BIGGER","BIGGER_EQ","SMALLER","SMALLER_EQ","NOT","IN","REGEXP","CouchDBGroupOperator","AND","OR","async","reAuth","con","user","pass","auth","generateIndexName","attribute","tableName","compositions","order","separator","DefaultSeparator","attr","PersistenceKeys","push","join","generateIndexDoc","partialFilterSelector","fields","orderProp","sortedCompositions","map","c","r","sortedTable","name","index","ddoc","toJsLiteral","value","Date","JSON","stringify","toISOString","RegExp","source","flags","conditionToJs","condition","docVar","attr1","operator","comparison","Condition","left","Operator","right","GroupOperator","attrExpr","normalizeKey","key","Array","isArray","generateViewName","kind","meta","replace","generateDesignDocName","viewName","findViewMetadata","model","view","groupBy","GROUP_BY","count","COUNT","sum","SUM","max","MAX","min","MIN","distinct","DISTINCT","Metadata","get","Object","entries","flatMap","values","entry","filter","collectViewMetadata","generateViewIndexes","models","indexes","viewKeys","forEach","m","Model","length","slice","directions","OrderDirection","ASC","DSC","baseIndex","direction","dirIndex","n","setMetadata","metadata","defineProperty","METADATA","enumerable","configurable","writable","getMetadata","descriptor","getOwnPropertyDescriptor","undefined","removeMetadata","CouchDBRepository","Repository","constructor","adapter","super","assignMetadata","target","apply","instance","carrier","create","args","result","this","createAll","results","read","id","readAll","ids","update","updateAll","delete","deleteAll","updatePrefix","ctx","ctxArgs","log","logCtx","OperationKeys","UPDATE","for","ignoreHandlers","ignoreValidate","silly","pk","InternalError","oldModel","oldMetadata","merge","class","enforceDBDecorators","ON","propsToIgnore","errors","Promise","resolve","hasErrors","ValidationError","toString","updateAllPrefix","BulkCrudOperationKeys","UPDATE_ALL","oldModels","i","all","ignoredProps","modelsValidation","errorMessages","reduceErrorsToPrint","IndexError","BaseError","msg","CouchDBPaginator","Paginator","query","size","clazz","prepare","rawStatement","assign","limit","page","bookmark","isPreparedStatement","pagePrepared","statement","_recordCount","_totalPages","validatePage","skip","countResults","raw","Number","MAX_SAFE_INTEGER","Math","ceil","_bookmark","PagingError","rawResult","docs","nextBookmark","warning","warn","type","DBKeys","pageResults","d","revert","Sequence","parseValue","_currentPage","translateOperators","operators","el","keys","find","k","QueryError","nextLexicographicString","chars","from","code","codePointAt","String","fromCodePoint","CouchDBStatement","Statement","overrides","attributeTypeCache","Map","build","manualAggregation","aggregateInfo","buildAggregateInfo","shouldUseManualAggregation","createAggregateQuery","selectors","fromSelector","selector","selectSelector","whereCondition","parseCondition","and","eq","selectorKeys","indexOf","reduce","accum","val","Error","s","orderBySelectors","sort","selectorKey","rec","hasManualAggregate","limitSelector","offsetSelector","processRecord","record","pkAttr","keyArgs","split","rawInput","aggregator","aggregate","executeAggregate","processed","manualResult","executeManualAggregation","groupBySelectors","groupSelectResults","applyAfterHandlersToResult","avgSelector","sumInfo","createAggregateDescriptor","missingDecorator","countInfo","sumDescriptor","countDescriptor","countDistinctSelector","resolveSelectorAttribute","info","countDistinct","countSelector","maxSelector","minSelector","sumSelector","distinctSelector","metas","options","returnDocs","group","isViewAggregate","handleAverage","couchAdapter","getCouchAdapter","viewInfo","response","processViewResponse","sumDesc","countDesc","sumResponse","countResponse","rows","computeAverage","computeGroupBy","computeDistinctCount","computeCount","computeDistinctValues","computeSum","computeMinMax","collectValues","seen","Set","add","unique","has","acc","toNumericValue","mode","currentValue","currentComparable","normalized","normalizeComparable","grouped","doc","groupKey","convertValueByAttribute","getAttributeType","parsed","isNaN","getTime","toLowerCase","includes","metaType","getPropDesignTypes","designType","normalizeMetaType","set","field","context","convertAggregateValue","decorator","decoratorForKind","table","attributeDesc","UnsupportedError","avg","row","STARTS_WITH","range","start","prefix","end","ENDS_WITH","BETWEEN","opBetween","op","op1","op2","obj1","obj2","CouchDBAdapter","Adapter","scope","flavour","alias","prefixMethod","initialize","managedModels","repository","rev","assignMultipleMetadata","revs","segregate","mappedProp","columnName","isReserved","transient","createPrefix","generateId","createAllPrefix","records","parseError","err","reason","match","ConflictError","NotFoundError","message","statusCode","ConnectionError","__decorate","final","prototype","VERSION","PACKAGE_NAME","registerLibrary","NULL","valueOrCondition","opts","Decoration","define","o","applyViewDecorator","conditionOrOptions","modelTableName","defaultQueryAttrs","defaultQueryAttributes","baseName","defaultFilter","partial_filter_selector","sortedName","ind","metadataEntries","metadataValue","candidate","fieldKey","fieldKeys","tableFilter","generate","suffix","baseFields","sortField","dir","viewDocs","ddocId","viewDef","guards","resolved","authGuard","roles","expression","listExpr","buildAuthGuard","guard","emitKey","buildEmitKey","emitValue","v","buildEmitValue","buildMapFunction","defaultReduce","normalizeViewMetadata","_id","language","views","compositionsOrOptions","nameOrOptions","concat","dbName","db","use","original","call"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"for-couchdb.cjs","sources":["../src/constants.ts","../src/query/constants.ts","../src/utils.ts","../src/views/generator.ts","../src/indexes/generator.ts","../src/metadata.ts","../src/repository.ts","../src/errors.ts","../src/query/Paginator.ts","../src/query/translate.ts","../src/query/Statement.ts","../src/adapter.ts","../src/index.ts","../src/decorators.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["reservedAttributes","CouchDBKeys","SEPARATOR","ID","REV","DELETED","TABLE","SEQUENCE","DDOC","NATIVE","INDEX","VIEW","CouchDBOperator","EQUAL","DIFFERENT","BIGGER","BIGGER_EQ","SMALLER","SMALLER_EQ","NOT","IN","REGEXP","CouchDBGroupOperator","AND","OR","async","reAuth","con","user","pass","auth","generateIndexName","attribute","tableName","compositions","order","separator","DefaultSeparator","attr","PersistenceKeys","push","join","generateIndexDoc","partialFilterSelector","fields","orderProp","sortedCompositions","map","c","r","sortedTable","name","index","ddoc","toJsLiteral","value","Date","JSON","stringify","toISOString","RegExp","source","flags","conditionToJs","condition","docVar","attr1","operator","comparison","Condition","left","Operator","right","GroupOperator","attrExpr","normalizeKey","key","Array","isArray","generateViewName","kind","meta","replace","generateDesignDocName","viewName","findViewMetadata","model","view","groupBy","GROUP_BY","count","COUNT","sum","SUM","max","MAX","min","MIN","distinct","DISTINCT","Metadata","get","Object","entries","flatMap","values","entry","filter","collectViewMetadata","generateViewIndexes","models","indexes","viewKeys","forEach","m","Model","length","slice","directions","OrderDirection","ASC","DSC","baseIndex","direction","dirIndex","n","setMetadata","metadata","defineProperty","METADATA","enumerable","configurable","writable","getMetadata","descriptor","getOwnPropertyDescriptor","undefined","removeMetadata","CouchDBRepository","Repository","constructor","adapter","force","super","assignMetadata","target","apply","instance","carrier","create","args","result","this","createAll","results","read","id","readAll","ids","update","updateAll","delete","deleteAll","updatePrefix","ctx","ctxArgs","log","logCtx","OperationKeys","UPDATE","for","ignoreHandlers","ignoreValidate","silly","pk","InternalError","oldModel","oldMetadata","merge","class","enforceDBDecorators","ON","propsToIgnore","errors","Promise","resolve","hasErrors","ValidationError","toString","updateAllPrefix","BulkCrudOperationKeys","UPDATE_ALL","oldModels","i","all","ignoredProps","modelsValidation","errorMessages","reduceErrorsToPrint","IndexError","BaseError","msg","CouchDBPaginator","Paginator","query","size","clazz","prepare","rawStatement","assign","limit","page","bookmark","isPreparedStatement","pagePrepared","statement","_recordCount","_totalPages","validatePage","skip","countResults","raw","Number","MAX_SAFE_INTEGER","Math","ceil","_bookmark","PagingError","rawResult","docs","nextBookmark","warning","warn","type","DBKeys","pageResults","d","revert","Sequence","parseValue","_currentPage","translateOperators","operators","el","keys","find","k","QueryError","nextLexicographicString","chars","from","code","codePointAt","String","fromCodePoint","CouchDBStatement","Statement","overrides","attributeTypeCache","Map","build","manualAggregation","aggregateInfo","buildAggregateInfo","shouldUseManualAggregation","createAggregateQuery","selectors","fromSelector","selector","selectSelector","whereCondition","parseCondition","and","eq","selectorKeys","indexOf","reduce","accum","val","Error","s","orderBySelectors","sort","selectorKey","rec","hasManualAggregate","limitSelector","offsetSelector","processRecord","record","pkAttr","keyArgs","split","rawInput","aggregator","aggregate","executeAggregate","processed","manualResult","executeManualAggregation","groupBySelectors","groupSelectResults","applyAfterHandlersToResult","avgSelector","sumInfo","createAggregateDescriptor","missingDecorator","countInfo","sumDescriptor","countDescriptor","countDistinctSelector","resolveSelectorAttribute","info","countDistinct","countSelector","maxSelector","minSelector","sumSelector","distinctSelector","metas","options","returnDocs","group","isViewAggregate","handleAverage","couchAdapter","getCouchAdapter","viewInfo","response","processViewResponse","sumDesc","countDesc","sumResponse","countResponse","rows","computeAverage","computeGroupBy","computeDistinctCount","computeCount","computeDistinctValues","computeSum","computeMinMax","collectValues","seen","Set","add","unique","has","acc","toNumericValue","mode","currentValue","currentComparable","normalized","normalizeComparable","grouped","doc","groupKey","convertValueByAttribute","getAttributeType","parsed","isNaN","getTime","toLowerCase","includes","metaType","getPropDesignTypes","designType","normalizeMetaType","set","field","context","convertAggregateValue","decorator","decoratorForKind","table","attributeDesc","UnsupportedError","avg","row","STARTS_WITH","range","start","prefix","end","ENDS_WITH","BETWEEN","opBetween","op","op1","op2","obj1","obj2","CouchDBAdapter","Adapter","scope","flavour","alias","prefixMethod","initialize","managedModels","repository","rev","assignMultipleMetadata","revs","segregate","mappedProp","columnName","isReserved","transient","createPrefix","generateId","createAllPrefix","records","parseError","err","reason","match","ConflictError","NotFoundError","message","statusCode","ConnectionError","__decorate","final","prototype","VERSION","PACKAGE_NAME","registerLibrary","NULL","valueOrCondition","opts","Decoration","define","o","applyViewDecorator","conditionOrOptions","modelTableName","defaultQueryAttrs","defaultQueryAttributes","baseName","defaultFilter","partial_filter_selector","sortedName","ind","metadataEntries","metadataValue","candidate","fieldKey","fieldKeys","tableFilter","generate","suffix","baseFields","sortField","dir","viewDocs","ddocId","viewDef","guards","resolved","authGuard","roles","expression","listExpr","buildAuthGuard","guard","emitKey","buildEmitKey","emitValue","v","buildEmitValue","buildMapFunction","defaultReduce","normalizeViewMetadata","_id","language","views","compositionsOrOptions","nameOrOptions","concat","dbName","db","use","original","call"],"mappings":"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"}
|
package/dist/for-couchdb.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Metadata as t,Decoration as e}from"@decaf-ts/decoration";import{PersistenceKeys as r,Operator as i,OrderDirection as n,Condition as s,GroupOperator as o,Repository as a,Paginator as c,PagingError as u,Sequence as l,QueryError as d,Statement as g,UnsupportedError as f,Adapter as p,ConnectionError as h,applyViewDecorator as m}from"@decaf-ts/core";import{DefaultSeparator as y,OperationKeys as A,InternalError as b,enforceDBDecorators as w,ValidationError as v,BulkCrudOperationKeys as E,reduceErrorsToPrint as S,BaseError as N,DBKeys as O,prefixMethod as T,ConflictError as D,NotFoundError as x}from"@decaf-ts/db-decorators";import{Model as $}from"@decaf-ts/decorator-validation";import{__decorate as j,__metadata as M}from"tslib";import{final as C}from"@decaf-ts/logging";const I=/^_.*$/g,P={SEPARATOR:"__",ID:"_id",REV:"_rev",DELETED:"_deleted",TABLE:"??table",SEQUENCE:"??sequence",DDOC:"ddoc",NATIVE:"__native",INDEX:"index",VIEW:"view"},B=250,V={EQUAL:"$eq",DIFFERENT:"$ne",BIGGER:"$gt",BIGGER_EQ:"$gte",SMALLER:"$lt",SMALLER_EQ:"$lte",NOT:"$not",IN:"$in",REGEXP:"$regex"},k={AND:"$and",OR:"$or"},R={NULL:"null"};async function _(t,e,r){return t.auth(e,r)}function L(t,e,r,i){const n=t.use?t.use(e):t;return["insert","get","put","destroy","find","view"].forEach(e=>{const s=n[e];Object.defineProperty(n,e,{enumerable:!1,configurable:!0,value:async(...e)=>(await _(t,r,i),s.call(n,...e))})}),Object.defineProperty(n,P.NATIVE,{enumerable:!1,configurable:!1,writable:!1,value:t}),n}function U(t){return t.match(/^_.*$/g)}function G(t,e,i,n,s=y){const o=[r.INDEX,e,t];return i&&o.push(...i),n&&o.push(n),o.join(s)}function J(t,e,r,i,n=y){const s={};let o;if(s[P.TABLE]={},s[P.TABLE].$eq=e,i){const e={};e[t]=i;const n=(r||[]).map(t=>{const e={};return e[t]=i,e}),s={};s[P.TABLE]=i,o=[e,...n,s]}else o=[t,...r||[],P.TABLE];const a=G(t,e,r,i,n);return{index:{fields:o},ddoc:[a,P.DDOC].join(n),name:a}}function z(t){return t instanceof Date?JSON.stringify(t.toISOString()):t instanceof RegExp?`new RegExp(${JSON.stringify(t.source)}, ${JSON.stringify(t.flags)})`:JSON.stringify(t)}function F(t,e){const{attr1:r,operator:n,comparison:a}=t;if(r instanceof s){const t=F(r,e);if(n===i.NOT)return`!(${t})`;const s=F(a,e);return n===o.AND?`(${t} && ${s})`:n===o.OR?`(${t} || ${s})`:t}const c=`${e}[${JSON.stringify(r)}]`;switch(n){case i.EQUAL:return`${c} === ${z(a)}`;case i.DIFFERENT:return`${c} !== ${z(a)}`;case i.BIGGER:return`${c} > ${z(a)}`;case i.BIGGER_EQ:return`${c} >= ${z(a)}`;case i.SMALLER:return`${c} < ${z(a)}`;case i.SMALLER_EQ:return`${c} <= ${z(a)}`;case i.IN:return`(${z(a)}).indexOf(${c}) !== -1`;case i.REGEXP:return`${a instanceof RegExp?z(a):`new RegExp(${JSON.stringify(a)})`}.test(${c})`;case i.NOT:return`!(${c} === ${z(a)})`;default:return"true"}}function q(t,e,r){return t?Array.isArray(t)?t:[t]:e?[e,...r||[]]:r||[]}function Q(t,e,r,i,n=y){return i.name?i.name:[t,e,r,"view"].join(n).replace(/\s+/g,"_")}function W(t,e,r=y){return[t,e,P.DDOC].join(r)}function X(e,r,n){const s={view:i.VIEW,groupBy:i.GROUP_BY,count:i.COUNT,sum:i.SUM,max:i.MAX,min:i.MIN,distinct:i.DISTINCT}[r];if(!s)return[];const o=t.get(e,s)||{};return Object.entries(o).flatMap(([t,e])=>e&&"object"==typeof e?Object.values(e).map(e=>({...e,kind:r,attribute:e.attribute||t})).filter(t=>!n||t.attribute===n):[])}function H(e,r,i){const n=t.get(e,r)||{};return Object.entries(n).flatMap(([t,e])=>e&&"object"==typeof e?Object.values(e).map(e=>{const r=e;return{...r,kind:i,attribute:r.attribute||t}}):[])}function K(t){const e={},r=[[P.VIEW,"view"],[i.GROUP_BY,"groupBy"],[i.COUNT,"count"],[i.SUM,"sum"],[i.MAX,"max"],[i.MIN,"min"],[i.DISTINCT,"distinct"]];return t.forEach(t=>{const i=$.tableName(t);r.flatMap(([e,r])=>H(t,e,r)).forEach(t=>{const r=t.attribute,n=Q(i,r,t.kind,t),o="_design/"+(t.ddoc||W(i,n)),a=((t,e,r,i)=>{const n=((t,e,r)=>{if(r.map)return"function"==typeof r.map?r.map.toString():r.map;const i=[];if(i.push(`doc[${JSON.stringify(P.TABLE)}] === ${JSON.stringify(t)}`),r.condition)if(r.condition instanceof s)i.push(F(r.condition,"doc"));else if("string"==typeof r.condition)i.push(r.condition);else{const t=s.from(r.condition);i.push(F(t,"doc"))}"count"===r.kind&&void 0!==r.value&&i.push(`doc[${JSON.stringify(e)}] === ${z(r.value)}`);const n=((t,e="doc")=>{if(!t)return;if("string"==typeof t)return t;const r=t.field||"roles",i=t.roles||[];if(!i.length)return t.expression;const n=`${e}[${JSON.stringify(r)}] || []`;return"all"===(t.mode||"any")?i.map(t=>`${n}.indexOf(${JSON.stringify(t)}) !== -1`).join(" && "):i.map(t=>`${n}.indexOf(${JSON.stringify(t)}) !== -1`).join(" || ")})(r.auth,"doc");n&&i.push(n);const o=i.length?i.join(" && "):"true",a=((t,e,r)=>{const i=q(t,e,r);return 1===i.length?`doc[${JSON.stringify(i[0])}]`:`[${i.map(t=>`doc[${JSON.stringify(t)}]`).join(", ")}]`})(r.key,e,r.compositions),c=((t,e)=>"doc"===t?"doc":t?Array.isArray(t)?`[${t.map(t=>`doc[${JSON.stringify(t)}]`).join(", ")}]`:"string"==typeof t?`doc[${JSON.stringify(t)}]`:z(t):`doc[${JSON.stringify(e)}]`)(r.value??(r.returnDocs&&"sum"!==r.kind?"doc":void 0),e);return`function (doc) {\n if (!(${o})) return;\n emit(${a}, ${c});\n}`})(i,e,r),o=r.reduce?"function"==typeof r.reduce?r.reduce.toString():r.reduce:(t=>{switch(t){case"count":case"groupBy":case"distinct":return"_count";case"sum":return"_sum";case"max":return"function (keys, values, rereduce) {\n var maxVal = null;\n for (var i = 0; i < values.length; i++) {\n var val = values[i];\n if (rereduce && val && typeof val === 'object' && 'value' in val) val = val.value;\n if (maxVal === null || val > maxVal) maxVal = val;\n }\n return maxVal;\n}";case"min":return"function (keys, values, rereduce) {\n var minVal = null;\n for (var i = 0; i < values.length; i++) {\n var val = values[i];\n if (rereduce && val && typeof val === 'object' && 'value' in val) val = val.value;\n if (minVal === null || val < minVal) minVal = val;\n }\n return minVal;\n}";default:return}})(t);return{map:n,reduce:o}})(t.kind,r,t,i);e[o]||(e[o]={_id:o,language:"javascript",views:{}}),e[o].views[n]=a})}),Object.values(e)}function Y(t){const e={},r=[[P.VIEW,"view"],[i.GROUP_BY,"groupBy"],[i.COUNT,"count"],[i.SUM,"sum"],[i.MAX,"max"],[i.MIN,"min"],[i.DISTINCT,"distinct"]];return t.forEach(t=>{const i=$.tableName(t);r.flatMap(([e,r])=>H(t,e,r)).forEach(t=>{const r=q(t.key,t.attribute,t.compositions);if(!r.length)return;const s=r[0],o=r.slice(1),a=t.directions||[n.ASC,n.DSC],c=J(s,i,o);e[c.name||""]=c,a.forEach(t=>{const r=J(s,i,o,t);e[r.name||""]=r})})}),Object.values(e)}function Z(t){const e=q(t.key,t.attribute);return{attribute:e[0],compositions:e.slice(1).concat(t.compositions||[]),directions:t.directions}}function tt(t,e,r,i=y){return[...t.map(t=>t===P.TABLE?"table":t),...e?[e]:[],P.INDEX].join(i)}function et(t){const e=tt([P.TABLE]),i={};return i[e]={index:{fields:[P.TABLE]},name:e,ddoc:e,type:"json"},t.forEach(t=>{const e=$.tableName(t);let s=[];try{s=$.defaultQueryAttributes(t)}catch(t){s=[]}s.forEach(t=>{const r=tt([e,t,"defaultQuery"]),s={[P.TABLE]:{$eq:e}};i[r]={index:{fields:[P.TABLE,t]},name:r,ddoc:r,type:"json"},i[r].index.partial_filter_selector=s,[n.ASC,n.DSC].forEach(r=>{const n=tt([e,t,"defaultQuery"],r);i[n]={index:{fields:[{[P.TABLE]:r},{[t]:r}]},name:n,ddoc:n,type:"json"}})});const o=$.indexes(t);Object.entries(o).forEach(([t,s])=>{const o=[];Object.entries(s||{}).forEach(([,e])=>{if(!e)return;const r=e;void 0===r.directions&&void 0===r.compositions?"object"!=typeof e||Array.isArray(e)||Object.entries(e).forEach(([t,e])=>{e&&o.push([t,e])}):o.push([t,r])}),o.forEach(([t,s])=>{if(!s)return;let{directions:o,compositions:a}=s;const c=e;a=a||[];const u=[t,...a],l={[P.TABLE]:{$eq:c}};function d(e,n){const s=[c,t,...a,...n?[n]:[],r.INDEX].join(y),o=[P.TABLE,...u],d=e?[{[P.TABLE]:e},...u.map(t=>({[t]:e}))]:o;i[s]={index:{fields:d},name:s,ddoc:s,type:"json"},e||(i[s].index.partial_filter_selector=l)}d(),Array.from(new Set((o||[n.ASC]).map(t=>(t+"").toLowerCase()))).filter(t=>t===n.ASC||t===n.DSC).forEach(t=>{d(t,t)})})})}),Y(t).forEach(t=>{t.name&&(i[t.name]=t)}),Object.values(i)}function rt(t,e){Object.defineProperty(t,r.METADATA,{enumerable:!1,configurable:!0,writable:!0,value:e})}function it(t){const e=Object.getOwnPropertyDescriptor(t,r.METADATA);return e?e.value:void 0}function nt(t){Object.getOwnPropertyDescriptor(t,r.METADATA)&&delete t[r.METADATA]}class st extends a{constructor(t,e){super(t,e)}assignMetadata(t,e){const r=(t,e)=>{const r=it(e??t);return r&&rt(t,r),t};return Array.isArray(t)?t.map((t,i)=>{const n=Array.isArray(e)?e[i]:e;return r(t,n)}):r(t,Array.isArray(e)?e?.[0]:e)}async create(t,...e){const r=await super.create(t,...e);return this.assignMetadata(r),this.assignMetadata(t,r),r}async createAll(t,...e){const r=await super.createAll(t,...e);return this.assignMetadata(r),this.assignMetadata(t,r),r}async read(t,...e){const r=await super.read(t,...e);return this.assignMetadata(r)}async readAll(t,...e){const r=await super.readAll(t,...e);return this.assignMetadata(r)}async update(t,...e){const r=await super.update(t,...e);return this.assignMetadata(r),this.assignMetadata(t,r),r}async updateAll(t,...e){const r=await super.updateAll(t,...e);return this.assignMetadata(r),this.assignMetadata(t,r),r}async delete(t,...e){const r=await super.delete(t,...e);return this.assignMetadata(r)}async deleteAll(t,...e){const r=await super.deleteAll(t,...e);return this.assignMetadata(r)}async updatePrefix(t,...e){const{ctx:r,ctxArgs:i,log:n}=(await this.logCtx(e,A.UPDATE,!0)).for(this.updatePrefix),s=r.get("ignoreHandlers"),o=r.get("ignoreValidation");n.silly(`handlerSetting: ${s}, validationSetting: ${o}`);const a=t[this.pk];if(!a)throw new b("No value for the Id is defined under the property "+this.pk);let c,u;if(r.get("applyUpdateValidation")&&(c=await this.read(a),u=c?it(c):void 0,r.get("mergeForUpdate")&&(t=$.merge(c,t,this.class))),s||await w(this,r,t,A.UPDATE,A.ON,c),!o){const e=r.get("ignoredValidationProperties")||[];n.silly("ignored validation properties: "+e);const i=await Promise.resolve(t.hasErrors(c,...e));if(i)throw new v(i.toString())}return u&&rt(t,u),[t,...i,c]}async updateAllPrefix(t,...e){const{ctx:r,ctxArgs:i,log:n}=(await this.logCtx(e,E.UPDATE_ALL,!0)).for(this.updateAllPrefix),s=r.get("ignoreHandlers"),o=r.get("ignoreValidation");n.silly(`handlerSetting: ${s}, ignoredValidation: ${o}`);const a=t.map(t=>{const e=t[this.pk];if(!e)throw new b("missing id on update operation");return e});let c;if(r.get("applyUpdateValidation")&&(c=await this.readAll(a,r),t=t.map((t,e)=>{r.get("mergeForUpdate")&&(t=$.merge(c[e],t,this.class));const i=it(c[e]);return i&&rt(t,i),t})),s||await Promise.all(t.map((t,e)=>w(this,r,t,A.UPDATE,A.ON,c?c[e]:void 0))),!o){const e=r.get("ignoredValidationProperties")||[];let i;n.silly("ignored validation properties: "+e),i=r.get("applyUpdateValidation")?await Promise.all(t.map((t,r)=>Promise.resolve(t.hasErrors(c[r],...e)))):await Promise.resolve(t.map(t=>t.hasErrors(...e)));const s=S(i);if(s)throw new v(s)}return[t,...i,c]}}class ot extends N{constructor(t){super(ot.name,t,404)}}class at extends c{constructor(t,e,r,i){super(t,e,r,i)}prepare(t){const e=Object.assign({},t);return e.limit&&(this.limit=e.limit),e.limit=this.size,e}async page(e=1,r,...i){const{log:n,ctxArgs:s,ctx:o}=this.adapter.logCtx([r,...i],this.page);if(this.isPreparedStatement())return await this.pagePrepared(e,...s);const a=Object.assign({},this.statement);if(this._recordCount&&this._totalPages)e=this.validatePage(e),a.skip=(e-1)*this.size;else{this._totalPages=this._recordCount=0;const t=await this.adapter.raw({...a,limit:Number.MAX_SAFE_INTEGER},!0,...s)||[];if(this._recordCount=t.length,this._recordCount>0){const t=a?.limit||this.size;return this._totalPages=Math.ceil(this._recordCount/t),await this.page(e,...s)}}if(1!==e){if(!this._bookmark)throw new u("No bookmark. Did you start in the first page?");a.bookmark=this._bookmark}const c=await this.adapter.raw(a,!1,...s),{docs:d,bookmark:g,warning:f}=c;if(f&&n.warn(f),!this.clazz)throw new u("No statement target defined");const p=$.pk(this.clazz),h=t.get(this.clazz,t.key(O.ID,p))?.type,m=a.fields&&a.fields.length?d:d.map(t=>this.adapter.revert(t,this.clazz,l.parseValue(h,t[p]),void 0,o));return this._bookmark=g,this._currentPage=e,m}}function ct(t){for(const e of[V,k]){const r=Object.keys(e).find(e=>e===t);if(r)return e[r]}throw new d("Could not find adapter translation for operator "+t)}function ut(t){if(!t)return"\0";const e=Array.from(t);for(let t=e.length-1;t>=0;t-=1){const r=e[t].codePointAt(0);if(void 0!==r&&1114111>r)return e[t]=String.fromCodePoint(r+1),e.slice(0,t+1).join("")}return t+"\0"}class lt extends g{constructor(t,e){super(t,e),this.attributeTypeCache=new Map}build(){const t=this.log.for(this.build);this.manualAggregation=void 0;const e=this.buildAggregateInfo();if(e){if(!this.shouldUseManualAggregation())return this.createAggregateQuery(e);this.manualAggregation=e}const r={};r[P.TABLE]={},r[P.TABLE]=$.tableName(this.fromSelector);const i={selector:r};if(this.selectSelector&&(i.fields=this.selectSelector),this.whereCondition){const e=this.parseCondition(s.and(this.whereCondition,s.attribute(P.TABLE).eq(i.selector[P.TABLE]))).selector,r=Object.keys(e);if(1===r.length&&-1!==Object.values(k).indexOf(r[0]))switch(r[0]){case k.AND:e[k.AND]=[...Object.values(e[k.AND]).reduce((t,e)=>{const r=Object.keys(e);if(1!==r.length)throw Error("Too many keys in query selector. should be one");const i=r[0];return i===k.AND?t.push(...e[i]):t.push(e),t},[])],i.selector=e;break;case k.OR:{const t={};t[k.AND]=[e,...Object.entries(i.selector).map(([t,e])=>{const r={};return r[t]=e,r})],i.selector=t;break}default:throw Error("This should be impossible")}else Object.entries(e).forEach(([e,r])=>{i.selector[e]&&t.warn(`A ${e} query param is about to be overridden: ${i.selector[e]} by ${r}`),i.selector[e]=r})}if(this.orderBySelectors?.length){i.sort=i.sort||[],i.selector=i.selector||{};for(const[t,e]of this.orderBySelectors){const r=t,n={};n[r]=e,i.sort.push(n),i.selector[r]||(i.selector[r]={},i.selector[r].$gt=null)}}const n=!!this.manualAggregation;return this.limitSelector?i.limit=this.limitSelector:n||(t.warn("No limit selector defined. Using default couchdb limit of 250"),i.limit=250),this.offsetSelector&&(i.skip=this.offsetSelector),i}processRecord(e,r){const i=$.pk(this.fromSelector),n=t.get(this.fromSelector,t.key(O.ID,i))?.type;if(e[P.ID]){const[,...t]=e[P.ID].split(P.SEPARATOR),r=t.join("_");e[i]=l.parseValue(n,r)}return this.adapter.revert(e,this.fromSelector,e[i],void 0,r)}async raw(t,...e){const{ctx:r}=this.logCtx(e,this.raw),i=t?.aggregateInfo;if(t?.aggregate&&i)return this.executeAggregate(i,r);const n=await this.adapter.raw(t,!0,r),s=n.map(t=>this.processRecord(t,r));if(this.manualAggregation){const t=this.executeManualAggregation(s,this.manualAggregation,r);return this.manualAggregation=void 0,t}return!this.selectSelector&&this.groupBySelectors?.length?this.groupSelectResults(s):this.selectSelector?n:await this.applyAfterHandlersToResult(s,r)}buildAggregateInfo(){if(this.fromSelector){if(this.avgSelector){const t=this.avgSelector+"",e=this.createAggregateDescriptor("sum",t);if(!e)throw this.missingDecorator("sum",t);const r=this.createAggregateDescriptor("count",t);if(!r)throw this.missingDecorator("count",t);return{kind:"avg",attribute:t,sumDescriptor:e.descriptor,countDescriptor:r.descriptor}}if(void 0!==this.countDistinctSelector){const t=this.resolveSelectorAttribute(this.countDistinctSelector),e=this.createAggregateDescriptor("distinct",t);if(!e)throw this.missingDecorator("distinct",t);return e.countDistinct=!0,e}if(void 0!==this.countSelector){const t=this.resolveSelectorAttribute(this.countSelector),e=this.createAggregateDescriptor("count",t);if(!e)throw this.missingDecorator("count",t);return e}if(this.maxSelector){const t=this.resolveSelectorAttribute(this.maxSelector),e=this.createAggregateDescriptor("max",t);if(!e)throw this.missingDecorator("max",t);return e}if(this.minSelector){const t=this.resolveSelectorAttribute(this.minSelector),e=this.createAggregateDescriptor("min",t);if(!e)throw this.missingDecorator("min",t);return e}if(this.sumSelector){const t=this.resolveSelectorAttribute(this.sumSelector),e=this.createAggregateDescriptor("sum",t);if(!e)throw this.missingDecorator("sum",t);return e}if(this.distinctSelector){const t=this.resolveSelectorAttribute(this.distinctSelector),e=this.createAggregateDescriptor("distinct",t);if(!e)throw this.missingDecorator("distinct",t);return e}}}createAggregateDescriptor(t,e){if(!this.fromSelector)return;const r=X(this.fromSelector,t,e);if(!r.length)return;const i=r[0],n=$.tableName(this.fromSelector),s=Q(n,i.attribute,t,i),o=i.ddoc||W(n,s),a={reduce:void 0!==i.reduce||!i.returnDocs};return"distinct"!==t&&"groupBy"!==t||(a.group=!0),{kind:t,meta:i,descriptor:{ddoc:o,view:s,options:a}}}createAggregateQuery(t){return{selector:{},aggregate:!0,aggregateInfo:t}}shouldUseManualAggregation(){return!!this.whereCondition}async executeAggregate(t,e){if(!this.isViewAggregate(t))return this.handleAverage(t,e);const r=this.getCouchAdapter(),i=t,n=await r.view(i.descriptor.ddoc,i.descriptor.view,i.descriptor.options,e);return this.processViewResponse(t,n)}async handleAverage(t,e){if("avg"!==t.kind)throw new d("Average descriptor is not valid");const[r,i]=[t.sumDescriptor,t.countDescriptor],n=this.getCouchAdapter(),[s,o]=await Promise.all([n.view(r.ddoc,r.view,r.options,e),n.view(i.ddoc,i.view,i.options,e)]),a=s.rows?.[0]?.value??0,c=o.rows?.[0]?.value??0;return c?a/c:0}executeManualAggregation(t,e,r){if(!this.fromSelector)throw new d("Manual aggregation requires a target model");if("avg"===e.kind)return this.computeAverage(t,e.attribute);if("groupBy"===e.kind)return this.computeGroupBy(t,e.meta.attribute);const i=e.meta.attribute;switch(e.kind){case"count":return e.countDistinct?this.computeDistinctCount(t,i):this.computeCount(t,i);case"distinct":return e.countDistinct?this.computeDistinctCount(t,i):this.computeDistinctValues(t,i);case"sum":return this.computeSum(t,i);case"min":return this.computeMinMax(t,i,"min");case"max":return this.computeMinMax(t,i,"max");default:throw new d("Unsupported manual aggregation "+e.kind)}}computeCount(t,e){return e?this.collectValues(t,e).filter(t=>null!=t).length:t.length}computeDistinctCount(t,e){const r=e?this.collectValues(t,e).filter(t=>null!=t):t,i=new Set;return r.forEach(t=>i.add(JSON.stringify(t))),i.size}computeDistinctValues(t,e){if(!e)return[];const r=this.collectValues(t,e),i=new Set,n=[];return r.forEach(t=>{const e=JSON.stringify(t);i.has(e)||(i.add(e),n.push(t))}),n}computeSum(t,e){return e?this.collectValues(t,e).filter(t=>null!=t).reduce((t,r)=>t+this.toNumericValue(r,e,"SUM operation"),0):t.length}computeAverage(t,e){if(!e)return 0;const r=this.collectValues(t,e).filter(t=>null!=t);return r.length?r.reduce((t,r)=>t+this.toNumericValue(r,e,"AVG operation"),0)/r.length:0}computeMinMax(t,e,r){if(!e)return null;const i=this.collectValues(t,e).filter(t=>null!=t);let n=null,s=null;for(const t of i){const e=this.normalizeComparable(t);null!==e&&(null!==s?("min"===r&&s>e||"max"===r&&e>s)&&(s=e,n=t):(s=e,n=t))}return n}computeGroupBy(t,e){const r={},i=this.collectValues(t,e);return t.forEach((t,e)=>{const n=this.groupKey(i[e]);r[n]||(r[n]=[]),r[n].push(t)}),r}groupSelectResults(t){if(!this.groupBySelectors?.length)return{};const e=this.resolveSelectorAttribute(this.groupBySelectors[0]);if(!e)return{};const r={};return t.forEach(t=>{const i=this.groupKey(this.convertValueByAttribute(e,t[e]));r[i]||(r[i]=[]),r[i].push(t)}),r}collectValues(t,e){return t.map(t=>{if(t&&"object"==typeof t)return this.convertValueByAttribute(e,t[e])})}convertValueByAttribute(t,e){if(!this.fromSelector)return e;if("date"===this.getAttributeType(t)){if(e instanceof Date)return e;const t=new Date(e);if(!Number.isNaN(t.getTime()))return t}if("string"==typeof e&&t.toLowerCase().includes("date")){const t=new Date(e);if(!Number.isNaN(t.getTime()))return t}return e}getAttributeType(e){if(!e||!this.fromSelector)return;if(this.attributeTypeCache.has(e))return this.attributeTypeCache.get(e);const r=t.type(this.fromSelector,e)??t.getPropDesignTypes?.(this.fromSelector,e)?.designType,i=this.normalizeMetaType(r);return this.attributeTypeCache.set(e,i),i}normalizeMetaType(t){if(t)return"string"==typeof t?t.toLowerCase():"function"==typeof t&&t.name?t.name.toLowerCase():void 0}normalizeComparable(t){return"number"==typeof t?t:"bigint"==typeof t?Number(t):t instanceof Date?t.getTime():"string"!=typeof t||isNaN(Number(t))?null:Number(t)}groupKey(t){if(void 0===t)return"undefined";if(null===t)return"null";if("symbol"==typeof t)return t.toString();if("object"==typeof t)try{return JSON.stringify(t)}catch{return t+""}return t+""}toNumericValue(t,e,r){if("number"==typeof t)return t;if("bigint"==typeof t)return Number(t);if(t instanceof Date)return t.getTime();if("string"==typeof t&&!isNaN(Number(t)))return Number(t);throw new d(`${r} on "${e}" requires numeric values, but got ${typeof t}`)}convertAggregateValue(t,e){return t?this.convertValueByAttribute(t,e):e}resolveSelectorAttribute(t){if(null!=t)return t+""}missingDecorator(t,e){const r=this.decoratorForKind(t),i=this.fromSelector?$.tableName(this.fromSelector):"<unknown table>";return new f(`${r} decorator is required for CouchDB ${t} aggregation${e?` on "${e}"`:""} on table "${i}".`)}decoratorForKind(t){return{count:"@count",sum:"@sum",min:"@min",max:"@max",distinct:"@distinct",groupBy:"@groupBy",view:"@view",avg:"@avg"}[t]||"@"+t}processViewResponse(t,e){if("avg"===t.kind)throw new d("Average results should be handled before processing rows");const r=e.rows||[],i=t,n=i.meta;return i.countDistinct?r.length||0:"distinct"===i.kind||"groupBy"===i.kind?r.map(t=>this.convertAggregateValue(i.meta.attribute,t.key??t.value)):n.returnDocs?r.map(t=>t.value??t.doc??t):r.length?this.convertAggregateValue(i.meta.attribute,r[0].value??r[0].key??null):"count"===i.kind?0:null}isViewAggregate(t){return"avg"!==t.kind}getCouchAdapter(){return this.adapter}parseCondition(t){const{attr1:e,operator:r,comparison:n}=t;if(r===i.STARTS_WITH){if("string"!=typeof e)throw new d("STARTS_WITH requires an attribute name");if("string"!=typeof n)throw new d("STARTS_WITH requires a string comparison");const t={start:s=n,end:ut(s)};return{selector:{[e]:{$gte:t.start,$lt:t.end}}}}var s,a;if(r===i.ENDS_WITH){if("string"!=typeof e)throw new d("ENDS_WITH requires an attribute name");if("string"!=typeof n)throw new d("ENDS_WITH requires a string comparison");return{selector:{[e]:{$regex:(a=n,a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"$")}}}}if(r===i.BETWEEN){const t=e;if(!Array.isArray(n)||2!==n.length)throw new d("BETWEEN operator requires [min, max] comparison");const[r,s]=n,o={};return o[t]={},o[t][ct(i.BIGGER_EQ)]=r,o[t][ct(i.SMALLER_EQ)]=s,{selector:o}}let c={};if(-1===[o.AND,o.OR,i.NOT].indexOf(r))c[e]={},c[e][ct(r)]=n;else if(r===i.NOT)c=this.parseCondition(e).selector,c[ct(i.NOT)]={},c[ct(i.NOT)][e.attr1]=n;else{const t=this.parseCondition(e).selector,i=this.parseCondition(n).selector;c=((t,e,r)=>{const i={selector:{}};return i.selector[t]=[e,r],i})(ct(r),t,i).selector}return{selector:c}}}class dt extends p{constructor(t,e,r){super(t,e,r),[this.create,this.createAll,this.update,this.updateAll].forEach(t=>{const e=t.name;T(this,t,this[e+"Prefix"])})}Statement(t){return new lt(this,t)}Paginator(t,e,r){return new at(this,t,e,r)}async initialize(){const t=p.models(this.flavour);return this.index(...t)}repository(){return st}assignMetadata(t,e){return e?(rt(t,e),t):t}assignMultipleMetadata(t,e){return t.forEach((t,r)=>(rt(t,e[r]),t)),t}prepare(t,...e){const{log:i}=this.logCtx(e,this.prepare),n=t.segregate(),s=Object.entries(n.model).reduce((e,[r,i])=>{if(void 0===i)return e;const n=$.columnName(t.constructor,r);if(this.isReserved(n))throw new b(`Property name ${n} is reserved`);return i=i instanceof Date?new Date(i):i,e[n]=i,e},{});return t[r.METADATA]&&(i.silly("Passing along persistence metadata for "+t[r.METADATA]),Object.defineProperty(s,r.METADATA,{enumerable:!1,writable:!0,configurable:!0,value:t[r.METADATA]})),{record:s,id:t[$.pk(t.constructor)],transient:n.transient}}createPrefix(t,e,r,...i){const{ctxArgs:n}=this.logCtx(i,this.createPrefix),s=$.tableName(t),o={};return o[P.TABLE]=s,o[P.ID]=this.generateId(s,e),Object.assign(o,r),[t,e,o,...n]}createAllPrefix(t,e,r,...i){const n=$.tableName(t);if(e.length!==r.length)throw new b("Ids and models must have the same length");const{ctxArgs:s}=this.logCtx(i,this.createAllPrefix),o=e.map((t,e)=>{const i={};return i[P.TABLE]=n,i[P.ID]=this.generateId(n,t),Object.assign(i,r[e]),i});return[t,e,o,...s]}updatePrefix(t,e,i,...n){const s=$.tableName(t),{ctxArgs:o}=this.logCtx(n,this.updatePrefix),a={};a[P.TABLE]=s,a[P.ID]=this.generateId(s,e);const c=i[r.METADATA];if(!c)throw new b("No revision number found for record with id "+e);return Object.assign(a,i),a[P.REV]=c,[t,e,a,...o]}updateAllPrefix(t,e,i,...n){const s=$.tableName(t);if(e.length!==i.length)throw new b("Ids and models must have the same length");const{ctxArgs:o}=this.logCtx(n,this.updateAllPrefix),a=e.map((t,e)=>{const n={};n[P.TABLE]=s,n[P.ID]=this.generateId(s,t);const o=i[e][r.METADATA];if(!o)throw new b("No revision number found for record with id "+t);return Object.assign(n,i[e]),n[P.REV]=o,n});return[t,e,a,...o]}generateId(t,e){return[t,e].join(P.SEPARATOR)}parseError(t,e){return dt.parseError(t,e)}isReserved(t){return!!t.match(I)}static parseError(t,e){if(t instanceof N)return t;let r="";if("string"==typeof t){if(r=t,r.match(/already exist|update conflict/g))return new D(r);if(r.match(/missing|deleted/g))return new x(r)}else t.code?(r=t.code,e=e||t.message):t.statusCode?(r=t.statusCode,e=e||t.message):r=t.message;switch(r.toString()){case"401":case"412":case"409":return new D(e);case"404":return new x(e);case"400":return r.toString().match(/No\sindex\sexists/g)?new ot(t):new b(t);default:return r.toString().match(/ECONNREFUSED/g)?new h(t):new b(t)}}static setMetadata(t,e){rt(t,e)}static getMetadata(t){return it(t)}static removeMetadata(t){nt(t)}}function gt(t,r){let n={};return Array.isArray(t)?n.compositions=t:"string"==typeof t?n.name=t:t&&(n=t),"string"==typeof r?n.name=r:r&&(n=Object.assign({},n,r)),void 0===n.returnDocs&&(n.returnDocs=!0),e.for(i.GROUP_BY).define({decorator:t=>m(i.GROUP_BY,"groupBy",t),args:[n]}).apply()}function ft(t,r){let n={};return t instanceof s?n.condition=t:"object"==typeof t&&t?n=t:void 0!==t&&(n.value=t),r&&(n=Object.assign({},n,r)),e.for(i.COUNT).define({decorator:t=>m(i.COUNT,"count",t),args:[n]}).apply()}function pt(t,r){let n={};return t instanceof s?n.condition=t:t&&(n=t),r&&(n=Object.assign({},n,r)),e.for(i.SUM).define({decorator:t=>m(i.SUM,"sum",t),args:[n]}).apply()}function ht(t,r){let n={};return t instanceof s?n.condition=t:t&&(n=t),r&&(n=Object.assign({},n,r)),e.for(i.MAX).define({decorator:t=>m(i.MAX,"max",t),args:[n]}).apply()}function mt(t,r){let n={};return t instanceof s?n.condition=t:t&&(n=t),r&&(n=Object.assign({},n,r)),e.for(i.MIN).define({decorator:t=>m(i.MIN,"min",t),args:[n]}).apply()}function yt(t,r){let n={};return t instanceof s?n.condition=t:t&&(n=t),r&&(n=Object.assign({},n,r)),e.for(i.DISTINCT).define({decorator:t=>m(i.DISTINCT,"distinct",t),args:[n]}).apply()}j([C(),M("design:type",Function),M("design:paramtypes",[Object]),M("design:returntype",lt)],dt.prototype,"Statement",null),j([C(),M("design:type",Function),M("design:paramtypes",[Object,String]),M("design:returntype",Object)],dt.prototype,"assignMetadata",null),j([C(),M("design:type",Function),M("design:paramtypes",[Array,Array]),M("design:returntype",Array)],dt.prototype,"assignMultipleMetadata",null),j([C(),M("design:type",Function),M("design:paramtypes",[Object,Object,Object,Object]),M("design:returntype",Array)],dt.prototype,"createPrefix",null),j([C(),M("design:type",Function),M("design:paramtypes",[Object,Array,Array,Object]),M("design:returntype",void 0)],dt.prototype,"createAllPrefix",null),j([C(),M("design:type",Function),M("design:paramtypes",[Object,Object,Object,Object]),M("design:returntype",void 0)],dt.prototype,"updatePrefix",null),j([C(),M("design:type",Function),M("design:paramtypes",[Object,Array,Array,Object]),M("design:returntype",void 0)],dt.prototype,"updateAllPrefix",null);const At="##VERSION##",bt="##PACKAGE##";t.registerLibrary(bt,At);export{dt as CouchDBAdapter,R as CouchDBConst,k as CouchDBGroupOperator,P as CouchDBKeys,V as CouchDBOperator,at as CouchDBPaginator,B as CouchDBQueryLimit,st as CouchDBRepository,lt as CouchDBStatement,ot as IndexError,bt as PACKAGE_NAME,At as VERSION,H as collectViewMetadata,ft as count,yt as distinct,X as findViewMetadata,W as generateDesignDocName,J as generateIndexDoc,G as generateIndexName,et as generateIndexes,Y as generateViewIndexes,Q as generateViewName,K as generateViews,it as getMetadata,gt as groupBy,ht as max,mt as min,_ as reAuth,nt as removeMetadata,I as reservedAttributes,rt as setMetadata,pt as sum,U as testReservedAttributes,ct as translateOperators,Z as viewIndexDefinition,L as wrapDocumentScope};
|
|
1
|
+
import{Metadata as t,Decoration as e}from"@decaf-ts/decoration";import{PersistenceKeys as r,Operator as i,OrderDirection as n,Condition as s,GroupOperator as o,Repository as a,Paginator as c,PagingError as u,Sequence as l,QueryError as d,Statement as g,UnsupportedError as f,Adapter as p,ConnectionError as h,applyViewDecorator as m}from"@decaf-ts/core";import{DefaultSeparator as y,OperationKeys as A,InternalError as b,enforceDBDecorators as w,ValidationError as v,BulkCrudOperationKeys as E,reduceErrorsToPrint as S,BaseError as N,DBKeys as O,prefixMethod as T,ConflictError as D,NotFoundError as x}from"@decaf-ts/db-decorators";import{Model as $}from"@decaf-ts/decorator-validation";import{__decorate as j,__metadata as M}from"tslib";import{final as C}from"@decaf-ts/logging";const I=/^_.*$/g,P={SEPARATOR:"__",ID:"_id",REV:"_rev",DELETED:"_deleted",TABLE:"??table",SEQUENCE:"??sequence",DDOC:"ddoc",NATIVE:"__native",INDEX:"index",VIEW:"view"},B=250,V={EQUAL:"$eq",DIFFERENT:"$ne",BIGGER:"$gt",BIGGER_EQ:"$gte",SMALLER:"$lt",SMALLER_EQ:"$lte",NOT:"$not",IN:"$in",REGEXP:"$regex"},k={AND:"$and",OR:"$or"},R={NULL:"null"};async function _(t,e,r){return t.auth(e,r)}function L(t,e,r,i){const n=t.use?t.use(e):t;return["insert","get","put","destroy","find","view"].forEach(e=>{const s=n[e];Object.defineProperty(n,e,{enumerable:!1,configurable:!0,value:async(...e)=>(await _(t,r,i),s.call(n,...e))})}),Object.defineProperty(n,P.NATIVE,{enumerable:!1,configurable:!1,writable:!1,value:t}),n}function U(t){return t.match(/^_.*$/g)}function G(t,e,i,n,s=y){const o=[r.INDEX,e,t];return i&&o.push(...i),n&&o.push(n),o.join(s)}function J(t,e,r,i,n=y){const s={};let o;if(s[P.TABLE]={},s[P.TABLE].$eq=e,i){const e={};e[t]=i;const n=(r||[]).map(t=>{const e={};return e[t]=i,e}),s={};s[P.TABLE]=i,o=[e,...n,s]}else o=[t,...r||[],P.TABLE];const a=G(t,e,r,i,n);return{index:{fields:o},ddoc:[a,P.DDOC].join(n),name:a}}function z(t){return t instanceof Date?JSON.stringify(t.toISOString()):t instanceof RegExp?`new RegExp(${JSON.stringify(t.source)}, ${JSON.stringify(t.flags)})`:JSON.stringify(t)}function F(t,e){const{attr1:r,operator:n,comparison:a}=t;if(r instanceof s){const t=F(r,e);if(n===i.NOT)return`!(${t})`;const s=F(a,e);return n===o.AND?`(${t} && ${s})`:n===o.OR?`(${t} || ${s})`:t}const c=`${e}[${JSON.stringify(r)}]`;switch(n){case i.EQUAL:return`${c} === ${z(a)}`;case i.DIFFERENT:return`${c} !== ${z(a)}`;case i.BIGGER:return`${c} > ${z(a)}`;case i.BIGGER_EQ:return`${c} >= ${z(a)}`;case i.SMALLER:return`${c} < ${z(a)}`;case i.SMALLER_EQ:return`${c} <= ${z(a)}`;case i.IN:return`(${z(a)}).indexOf(${c}) !== -1`;case i.REGEXP:return`${a instanceof RegExp?z(a):`new RegExp(${JSON.stringify(a)})`}.test(${c})`;case i.NOT:return`!(${c} === ${z(a)})`;default:return"true"}}function q(t,e,r){return t?Array.isArray(t)?t:[t]:e?[e,...r||[]]:r||[]}function Q(t,e,r,i,n=y){return i.name?i.name:[t,e,r,"view"].join(n).replace(/\s+/g,"_")}function W(t,e,r=y){return[t,e,P.DDOC].join(r)}function X(e,r,n){const s={view:i.VIEW,groupBy:i.GROUP_BY,count:i.COUNT,sum:i.SUM,max:i.MAX,min:i.MIN,distinct:i.DISTINCT}[r];if(!s)return[];const o=t.get(e,s)||{};return Object.entries(o).flatMap(([t,e])=>e&&"object"==typeof e?Object.values(e).map(e=>({...e,kind:r,attribute:e.attribute||t})).filter(t=>!n||t.attribute===n):[])}function H(e,r,i){const n=t.get(e,r)||{};return Object.entries(n).flatMap(([t,e])=>e&&"object"==typeof e?Object.values(e).map(e=>{const r=e;return{...r,kind:i,attribute:r.attribute||t}}):[])}function K(t){const e={},r=[[P.VIEW,"view"],[i.GROUP_BY,"groupBy"],[i.COUNT,"count"],[i.SUM,"sum"],[i.MAX,"max"],[i.MIN,"min"],[i.DISTINCT,"distinct"]];return t.forEach(t=>{const i=$.tableName(t);r.flatMap(([e,r])=>H(t,e,r)).forEach(t=>{const r=t.attribute,n=Q(i,r,t.kind,t),o="_design/"+(t.ddoc||W(i,n)),a=((t,e,r,i)=>{const n=((t,e,r)=>{if(r.map)return"function"==typeof r.map?r.map.toString():r.map;const i=[];if(i.push(`doc[${JSON.stringify(P.TABLE)}] === ${JSON.stringify(t)}`),r.condition)if(r.condition instanceof s)i.push(F(r.condition,"doc"));else if("string"==typeof r.condition)i.push(r.condition);else{const t=s.from(r.condition);i.push(F(t,"doc"))}"count"===r.kind&&void 0!==r.value&&i.push(`doc[${JSON.stringify(e)}] === ${z(r.value)}`);const n=((t,e="doc")=>{if(!t)return;if("string"==typeof t)return t;const r=t.field||"roles",i=t.roles||[];if(!i.length)return t.expression;const n=`${e}[${JSON.stringify(r)}] || []`;return"all"===(t.mode||"any")?i.map(t=>`${n}.indexOf(${JSON.stringify(t)}) !== -1`).join(" && "):i.map(t=>`${n}.indexOf(${JSON.stringify(t)}) !== -1`).join(" || ")})(r.auth,"doc");n&&i.push(n);const o=i.length?i.join(" && "):"true",a=((t,e,r)=>{const i=q(t,e,r);return 1===i.length?`doc[${JSON.stringify(i[0])}]`:`[${i.map(t=>`doc[${JSON.stringify(t)}]`).join(", ")}]`})(r.key,e,r.compositions),c=((t,e)=>"doc"===t?"doc":t?Array.isArray(t)?`[${t.map(t=>`doc[${JSON.stringify(t)}]`).join(", ")}]`:"string"==typeof t?`doc[${JSON.stringify(t)}]`:z(t):`doc[${JSON.stringify(e)}]`)(r.value??(r.returnDocs&&"sum"!==r.kind?"doc":void 0),e);return`function (doc) {\n if (!(${o})) return;\n emit(${a}, ${c});\n}`})(i,e,r),o=r.reduce?"function"==typeof r.reduce?r.reduce.toString():r.reduce:(t=>{switch(t){case"count":case"groupBy":case"distinct":return"_count";case"sum":return"_sum";case"max":return"function (keys, values, rereduce) {\n var maxVal = null;\n for (var i = 0; i < values.length; i++) {\n var val = values[i];\n if (rereduce && val && typeof val === 'object' && 'value' in val) val = val.value;\n if (maxVal === null || val > maxVal) maxVal = val;\n }\n return maxVal;\n}";case"min":return"function (keys, values, rereduce) {\n var minVal = null;\n for (var i = 0; i < values.length; i++) {\n var val = values[i];\n if (rereduce && val && typeof val === 'object' && 'value' in val) val = val.value;\n if (minVal === null || val < minVal) minVal = val;\n }\n return minVal;\n}";default:return}})(t);return{map:n,reduce:o}})(t.kind,r,t,i);e[o]||(e[o]={_id:o,language:"javascript",views:{}}),e[o].views[n]=a})}),Object.values(e)}function Y(t){const e={},r=[[P.VIEW,"view"],[i.GROUP_BY,"groupBy"],[i.COUNT,"count"],[i.SUM,"sum"],[i.MAX,"max"],[i.MIN,"min"],[i.DISTINCT,"distinct"]];return t.forEach(t=>{const i=$.tableName(t);r.flatMap(([e,r])=>H(t,e,r)).forEach(t=>{const r=q(t.key,t.attribute,t.compositions);if(!r.length)return;const s=r[0],o=r.slice(1),a=t.directions||[n.ASC,n.DSC],c=J(s,i,o);e[c.name||""]=c,a.forEach(t=>{const r=J(s,i,o,t);e[r.name||""]=r})})}),Object.values(e)}function Z(t){const e=q(t.key,t.attribute);return{attribute:e[0],compositions:e.slice(1).concat(t.compositions||[]),directions:t.directions}}function tt(t,e,r,i=y){return[...t.map(t=>t===P.TABLE?"table":t),...e?[e]:[],P.INDEX].join(i)}function et(t){const e=tt([P.TABLE]),i={};return i[e]={index:{fields:[P.TABLE]},name:e,ddoc:e,type:"json"},t.forEach(t=>{const e=$.tableName(t);let s=[];try{s=$.defaultQueryAttributes(t)}catch(t){s=[]}s.forEach(t=>{const r=tt([e,t,"defaultQuery"]),s={[P.TABLE]:{$eq:e}};i[r]={index:{fields:[P.TABLE,t]},name:r,ddoc:r,type:"json"},i[r].index.partial_filter_selector=s,[n.ASC,n.DSC].forEach(r=>{const n=tt([e,t,"defaultQuery"],r);i[n]={index:{fields:[{[P.TABLE]:r},{[t]:r}]},name:n,ddoc:n,type:"json"}})});const o=$.indexes(t);Object.entries(o).forEach(([t,s])=>{const o=[];Object.entries(s||{}).forEach(([,e])=>{if(!e)return;const r=e;void 0===r.directions&&void 0===r.compositions?"object"!=typeof e||Array.isArray(e)||Object.entries(e).forEach(([t,e])=>{e&&o.push([t,e])}):o.push([t,r])}),o.forEach(([t,s])=>{if(!s)return;let{directions:o,compositions:a}=s;const c=e;a=a||[];const u=[t,...a],l={[P.TABLE]:{$eq:c}};function d(e,n){const s=[c,t,...a,...n?[n]:[],r.INDEX].join(y),o=[P.TABLE,...u],d=e?[{[P.TABLE]:e},...u.map(t=>({[t]:e}))]:o;i[s]={index:{fields:d},name:s,ddoc:s,type:"json"},e||(i[s].index.partial_filter_selector=l)}d(),Array.from(new Set((o||[n.ASC]).map(t=>(t+"").toLowerCase()))).filter(t=>t===n.ASC||t===n.DSC).forEach(t=>{d(t,t)})})})}),Y(t).forEach(t=>{t.name&&(i[t.name]=t)}),Object.values(i)}function rt(t,e){Object.defineProperty(t,r.METADATA,{enumerable:!1,configurable:!0,writable:!0,value:e})}function it(t){const e=Object.getOwnPropertyDescriptor(t,r.METADATA);return e?e.value:void 0}function nt(t){Object.getOwnPropertyDescriptor(t,r.METADATA)&&delete t[r.METADATA]}class st extends a{constructor(t,e,r=!1){super(t,e,r)}assignMetadata(t,e){const r=(t,e)=>{const r=it(e??t);return r&&rt(t,r),t};return Array.isArray(t)?t.map((t,i)=>{const n=Array.isArray(e)?e[i]:e;return r(t,n)}):r(t,Array.isArray(e)?e?.[0]:e)}async create(t,...e){const r=await super.create(t,...e);return this.assignMetadata(r),this.assignMetadata(t,r),r}async createAll(t,...e){const r=await super.createAll(t,...e);return this.assignMetadata(r),this.assignMetadata(t,r),r}async read(t,...e){const r=await super.read(t,...e);return this.assignMetadata(r)}async readAll(t,...e){const r=await super.readAll(t,...e);return this.assignMetadata(r)}async update(t,...e){const r=await super.update(t,...e);return this.assignMetadata(r),this.assignMetadata(t,r),r}async updateAll(t,...e){const r=await super.updateAll(t,...e);return this.assignMetadata(r),this.assignMetadata(t,r),r}async delete(t,...e){const r=await super.delete(t,...e);return this.assignMetadata(r)}async deleteAll(t,...e){const r=await super.deleteAll(t,...e);return this.assignMetadata(r)}async updatePrefix(t,...e){const{ctx:r,ctxArgs:i,log:n}=(await this.logCtx(e,A.UPDATE,!0)).for(this.updatePrefix),s=r.get("ignoreHandlers"),o=r.get("ignoreValidation");n.silly(`handlerSetting: ${s}, validationSetting: ${o}`);const a=t[this.pk];if(!a)throw new b("No value for the Id is defined under the property "+this.pk);let c,u;if(r.get("applyUpdateValidation")&&(c=await this.read(a),u=c?it(c):void 0,r.get("mergeForUpdate")&&(t=$.merge(c,t,this.class))),s||await w(this,r,t,A.UPDATE,A.ON,c),!o){const e=r.get("ignoredValidationProperties")||[];n.silly("ignored validation properties: "+e);const i=await Promise.resolve(t.hasErrors(c,...e));if(i)throw new v(i.toString())}return u&&rt(t,u),[t,...i,c]}async updateAllPrefix(t,...e){const{ctx:r,ctxArgs:i,log:n}=(await this.logCtx(e,E.UPDATE_ALL,!0)).for(this.updateAllPrefix),s=r.get("ignoreHandlers"),o=r.get("ignoreValidation");n.silly(`handlerSetting: ${s}, ignoredValidation: ${o}`);const a=t.map(t=>{const e=t[this.pk];if(!e)throw new b("missing id on update operation");return e});let c;if(r.get("applyUpdateValidation")&&(c=await this.readAll(a,r),t=t.map((t,e)=>{r.get("mergeForUpdate")&&(t=$.merge(c[e],t,this.class));const i=it(c[e]);return i&&rt(t,i),t})),s||await Promise.all(t.map((t,e)=>w(this,r,t,A.UPDATE,A.ON,c?c[e]:void 0))),!o){const e=r.get("ignoredValidationProperties")||[];let i;n.silly("ignored validation properties: "+e),i=r.get("applyUpdateValidation")?await Promise.all(t.map((t,r)=>Promise.resolve(t.hasErrors(c[r],...e)))):await Promise.resolve(t.map(t=>t.hasErrors(...e)));const s=S(i);if(s)throw new v(s)}return[t,...i,c]}}class ot extends N{constructor(t){super(ot.name,t,404)}}class at extends c{constructor(t,e,r,i){super(t,e,r,i)}prepare(t){const e=Object.assign({},t);return e.limit&&(this.limit=e.limit),e.limit=this.size,e}async page(e=1,r,...i){const{log:n,ctxArgs:s,ctx:o}=this.adapter.logCtx([r,...i],this.page);if(this.isPreparedStatement())return await this.pagePrepared(e,...s);const a=Object.assign({},this.statement);if(this._recordCount&&this._totalPages)e=this.validatePage(e),a.skip=(e-1)*this.size;else{this._totalPages=this._recordCount=0;const t=await this.adapter.raw({...a,limit:Number.MAX_SAFE_INTEGER},!0,...s)||[];if(this._recordCount=t.length,this._recordCount>0){const t=a?.limit||this.size;return this._totalPages=Math.ceil(this._recordCount/t),await this.page(e,...s)}}if(1!==e){if(!this._bookmark)throw new u("No bookmark. Did you start in the first page?");a.bookmark=this._bookmark}const c=await this.adapter.raw(a,!1,...s),{docs:d,bookmark:g,warning:f}=c;if(f&&n.warn(f),!this.clazz)throw new u("No statement target defined");const p=$.pk(this.clazz),h=t.get(this.clazz,t.key(O.ID,p))?.type,m=a.fields&&a.fields.length?d:d.map(t=>this.adapter.revert(t,this.clazz,l.parseValue(h,t[p]),void 0,o));return this._bookmark=g,this._currentPage=e,m}}function ct(t){for(const e of[V,k]){const r=Object.keys(e).find(e=>e===t);if(r)return e[r]}throw new d("Could not find adapter translation for operator "+t)}function ut(t){if(!t)return"\0";const e=Array.from(t);for(let t=e.length-1;t>=0;t-=1){const r=e[t].codePointAt(0);if(void 0!==r&&1114111>r)return e[t]=String.fromCodePoint(r+1),e.slice(0,t+1).join("")}return t+"\0"}class lt extends g{constructor(t,e){super(t,e),this.attributeTypeCache=new Map}build(){const t=this.log.for(this.build);this.manualAggregation=void 0;const e=this.buildAggregateInfo();if(e){if(!this.shouldUseManualAggregation())return this.createAggregateQuery(e);this.manualAggregation=e}const r={};r[P.TABLE]={},r[P.TABLE]=$.tableName(this.fromSelector);const i={selector:r};if(this.selectSelector&&(i.fields=this.selectSelector),this.whereCondition){const e=this.parseCondition(s.and(this.whereCondition,s.attribute(P.TABLE).eq(i.selector[P.TABLE]))).selector,r=Object.keys(e);if(1===r.length&&-1!==Object.values(k).indexOf(r[0]))switch(r[0]){case k.AND:e[k.AND]=[...Object.values(e[k.AND]).reduce((t,e)=>{const r=Object.keys(e);if(1!==r.length)throw Error("Too many keys in query selector. should be one");const i=r[0];return i===k.AND?t.push(...e[i]):t.push(e),t},[])],i.selector=e;break;case k.OR:{const t={};t[k.AND]=[e,...Object.entries(i.selector).map(([t,e])=>{const r={};return r[t]=e,r})],i.selector=t;break}default:throw Error("This should be impossible")}else Object.entries(e).forEach(([e,r])=>{i.selector[e]&&t.warn(`A ${e} query param is about to be overridden: ${i.selector[e]} by ${r}`),i.selector[e]=r})}if(this.orderBySelectors?.length){i.sort=i.sort||[],i.selector=i.selector||{};for(const[t,e]of this.orderBySelectors){const r=t,n={};n[r]=e,i.sort.push(n),i.selector[r]||(i.selector[r]={},i.selector[r].$gt=null)}}const n=!!this.manualAggregation;return this.limitSelector?i.limit=this.limitSelector:n||(t.warn("No limit selector defined. Using default couchdb limit of 250"),i.limit=250),this.offsetSelector&&(i.skip=this.offsetSelector),i}processRecord(e,r){const i=$.pk(this.fromSelector),n=t.get(this.fromSelector,t.key(O.ID,i))?.type;if(e[P.ID]){const[,...t]=e[P.ID].split(P.SEPARATOR),r=t.join("_");e[i]=l.parseValue(n,r)}return this.adapter.revert(e,this.fromSelector,e[i],void 0,r)}async raw(t,...e){const{ctx:r}=this.logCtx(e,this.raw),i=t?.aggregateInfo;if(t?.aggregate&&i)return this.executeAggregate(i,r);const n=await this.adapter.raw(t,!0,r),s=n.map(t=>this.processRecord(t,r));if(this.manualAggregation){const t=this.executeManualAggregation(s,this.manualAggregation,r);return this.manualAggregation=void 0,t}return!this.selectSelector&&this.groupBySelectors?.length?this.groupSelectResults(s):this.selectSelector?n:await this.applyAfterHandlersToResult(s,r)}buildAggregateInfo(){if(this.fromSelector){if(this.avgSelector){const t=this.avgSelector+"",e=this.createAggregateDescriptor("sum",t);if(!e)throw this.missingDecorator("sum",t);const r=this.createAggregateDescriptor("count",t);if(!r)throw this.missingDecorator("count",t);return{kind:"avg",attribute:t,sumDescriptor:e.descriptor,countDescriptor:r.descriptor}}if(void 0!==this.countDistinctSelector){const t=this.resolveSelectorAttribute(this.countDistinctSelector),e=this.createAggregateDescriptor("distinct",t);if(!e)throw this.missingDecorator("distinct",t);return e.countDistinct=!0,e}if(void 0!==this.countSelector){const t=this.resolveSelectorAttribute(this.countSelector),e=this.createAggregateDescriptor("count",t);if(!e)throw this.missingDecorator("count",t);return e}if(this.maxSelector){const t=this.resolveSelectorAttribute(this.maxSelector),e=this.createAggregateDescriptor("max",t);if(!e)throw this.missingDecorator("max",t);return e}if(this.minSelector){const t=this.resolveSelectorAttribute(this.minSelector),e=this.createAggregateDescriptor("min",t);if(!e)throw this.missingDecorator("min",t);return e}if(this.sumSelector){const t=this.resolveSelectorAttribute(this.sumSelector),e=this.createAggregateDescriptor("sum",t);if(!e)throw this.missingDecorator("sum",t);return e}if(this.distinctSelector){const t=this.resolveSelectorAttribute(this.distinctSelector),e=this.createAggregateDescriptor("distinct",t);if(!e)throw this.missingDecorator("distinct",t);return e}}}createAggregateDescriptor(t,e){if(!this.fromSelector)return;const r=X(this.fromSelector,t,e);if(!r.length)return;const i=r[0],n=$.tableName(this.fromSelector),s=Q(n,i.attribute,t,i),o=i.ddoc||W(n,s),a={reduce:void 0!==i.reduce||!i.returnDocs};return"distinct"!==t&&"groupBy"!==t||(a.group=!0),{kind:t,meta:i,descriptor:{ddoc:o,view:s,options:a}}}createAggregateQuery(t){return{selector:{},aggregate:!0,aggregateInfo:t}}shouldUseManualAggregation(){return!!this.whereCondition}async executeAggregate(t,e){if(!this.isViewAggregate(t))return this.handleAverage(t,e);const r=this.getCouchAdapter(),i=t,n=await r.view(i.descriptor.ddoc,i.descriptor.view,i.descriptor.options,e);return this.processViewResponse(t,n)}async handleAverage(t,e){if("avg"!==t.kind)throw new d("Average descriptor is not valid");const[r,i]=[t.sumDescriptor,t.countDescriptor],n=this.getCouchAdapter(),[s,o]=await Promise.all([n.view(r.ddoc,r.view,r.options,e),n.view(i.ddoc,i.view,i.options,e)]),a=s.rows?.[0]?.value??0,c=o.rows?.[0]?.value??0;return c?a/c:0}executeManualAggregation(t,e,r){if(!this.fromSelector)throw new d("Manual aggregation requires a target model");if("avg"===e.kind)return this.computeAverage(t,e.attribute);if("groupBy"===e.kind)return this.computeGroupBy(t,e.meta.attribute);const i=e.meta.attribute;switch(e.kind){case"count":return e.countDistinct?this.computeDistinctCount(t,i):this.computeCount(t,i);case"distinct":return e.countDistinct?this.computeDistinctCount(t,i):this.computeDistinctValues(t,i);case"sum":return this.computeSum(t,i);case"min":return this.computeMinMax(t,i,"min");case"max":return this.computeMinMax(t,i,"max");default:throw new d("Unsupported manual aggregation "+e.kind)}}computeCount(t,e){return e?this.collectValues(t,e).filter(t=>null!=t).length:t.length}computeDistinctCount(t,e){const r=e?this.collectValues(t,e).filter(t=>null!=t):t,i=new Set;return r.forEach(t=>i.add(JSON.stringify(t))),i.size}computeDistinctValues(t,e){if(!e)return[];const r=this.collectValues(t,e),i=new Set,n=[];return r.forEach(t=>{const e=JSON.stringify(t);i.has(e)||(i.add(e),n.push(t))}),n}computeSum(t,e){return e?this.collectValues(t,e).filter(t=>null!=t).reduce((t,r)=>t+this.toNumericValue(r,e,"SUM operation"),0):t.length}computeAverage(t,e){if(!e)return 0;const r=this.collectValues(t,e).filter(t=>null!=t);return r.length?r.reduce((t,r)=>t+this.toNumericValue(r,e,"AVG operation"),0)/r.length:0}computeMinMax(t,e,r){if(!e)return null;const i=this.collectValues(t,e).filter(t=>null!=t);let n=null,s=null;for(const t of i){const e=this.normalizeComparable(t);null!==e&&(null!==s?("min"===r&&s>e||"max"===r&&e>s)&&(s=e,n=t):(s=e,n=t))}return n}computeGroupBy(t,e){const r={},i=this.collectValues(t,e);return t.forEach((t,e)=>{const n=this.groupKey(i[e]);r[n]||(r[n]=[]),r[n].push(t)}),r}groupSelectResults(t){if(!this.groupBySelectors?.length)return{};const e=this.resolveSelectorAttribute(this.groupBySelectors[0]);if(!e)return{};const r={};return t.forEach(t=>{const i=this.groupKey(this.convertValueByAttribute(e,t[e]));r[i]||(r[i]=[]),r[i].push(t)}),r}collectValues(t,e){return t.map(t=>{if(t&&"object"==typeof t)return this.convertValueByAttribute(e,t[e])})}convertValueByAttribute(t,e){if(!this.fromSelector)return e;if("date"===this.getAttributeType(t)){if(e instanceof Date)return e;const t=new Date(e);if(!Number.isNaN(t.getTime()))return t}if("string"==typeof e&&t.toLowerCase().includes("date")){const t=new Date(e);if(!Number.isNaN(t.getTime()))return t}return e}getAttributeType(e){if(!e||!this.fromSelector)return;if(this.attributeTypeCache.has(e))return this.attributeTypeCache.get(e);const r=t.type(this.fromSelector,e)??t.getPropDesignTypes?.(this.fromSelector,e)?.designType,i=this.normalizeMetaType(r);return this.attributeTypeCache.set(e,i),i}normalizeMetaType(t){if(t)return"string"==typeof t?t.toLowerCase():"function"==typeof t&&t.name?t.name.toLowerCase():void 0}normalizeComparable(t){return"number"==typeof t?t:"bigint"==typeof t?Number(t):t instanceof Date?t.getTime():"string"!=typeof t||isNaN(Number(t))?null:Number(t)}groupKey(t){if(void 0===t)return"undefined";if(null===t)return"null";if("symbol"==typeof t)return t.toString();if("object"==typeof t)try{return JSON.stringify(t)}catch{return t+""}return t+""}toNumericValue(t,e,r){if("number"==typeof t)return t;if("bigint"==typeof t)return Number(t);if(t instanceof Date)return t.getTime();if("string"==typeof t&&!isNaN(Number(t)))return Number(t);throw new d(`${r} on "${e}" requires numeric values, but got ${typeof t}`)}convertAggregateValue(t,e){return t?this.convertValueByAttribute(t,e):e}resolveSelectorAttribute(t){if(null!=t)return t+""}missingDecorator(t,e){const r=this.decoratorForKind(t),i=this.fromSelector?$.tableName(this.fromSelector):"<unknown table>";return new f(`${r} decorator is required for CouchDB ${t} aggregation${e?` on "${e}"`:""} on table "${i}".`)}decoratorForKind(t){return{count:"@count",sum:"@sum",min:"@min",max:"@max",distinct:"@distinct",groupBy:"@groupBy",view:"@view",avg:"@avg"}[t]||"@"+t}processViewResponse(t,e){if("avg"===t.kind)throw new d("Average results should be handled before processing rows");const r=e.rows||[],i=t,n=i.meta;return i.countDistinct?r.length||0:"distinct"===i.kind||"groupBy"===i.kind?r.map(t=>this.convertAggregateValue(i.meta.attribute,t.key??t.value)):n.returnDocs?r.map(t=>t.value??t.doc??t):r.length?this.convertAggregateValue(i.meta.attribute,r[0].value??r[0].key??null):"count"===i.kind?0:null}isViewAggregate(t){return"avg"!==t.kind}getCouchAdapter(){return this.adapter}parseCondition(t){const{attr1:e,operator:r,comparison:n}=t;if(r===i.STARTS_WITH){if("string"!=typeof e)throw new d("STARTS_WITH requires an attribute name");if("string"!=typeof n)throw new d("STARTS_WITH requires a string comparison");const t={start:s=n,end:ut(s)};return{selector:{[e]:{$gte:t.start,$lt:t.end}}}}var s,a;if(r===i.ENDS_WITH){if("string"!=typeof e)throw new d("ENDS_WITH requires an attribute name");if("string"!=typeof n)throw new d("ENDS_WITH requires a string comparison");return{selector:{[e]:{$regex:(a=n,a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"$")}}}}if(r===i.BETWEEN){const t=e;if(!Array.isArray(n)||2!==n.length)throw new d("BETWEEN operator requires [min, max] comparison");const[r,s]=n,o={};return o[t]={},o[t][ct(i.BIGGER_EQ)]=r,o[t][ct(i.SMALLER_EQ)]=s,{selector:o}}let c={};if(-1===[o.AND,o.OR,i.NOT].indexOf(r))c[e]={},c[e][ct(r)]=n;else if(r===i.NOT)c=this.parseCondition(e).selector,c[ct(i.NOT)]={},c[ct(i.NOT)][e.attr1]=n;else{const t=this.parseCondition(e).selector,i=this.parseCondition(n).selector;c=((t,e,r)=>{const i={selector:{}};return i.selector[t]=[e,r],i})(ct(r),t,i).selector}return{selector:c}}}class dt extends p{constructor(t,e,r){super(t,e,r),[this.create,this.createAll,this.update,this.updateAll].forEach(t=>{const e=t.name;T(this,t,this[e+"Prefix"])})}Statement(t){return new lt(this,t)}Paginator(t,e,r){return new at(this,t,e,r)}async initialize(){const t=p.models(this.flavour);return this.index(...t)}repository(){return st}assignMetadata(t,e){return e?(rt(t,e),t):t}assignMultipleMetadata(t,e){return t.forEach((t,r)=>(rt(t,e[r]),t)),t}prepare(t,...e){const{log:i}=this.logCtx(e,this.prepare),n=t.segregate(),s=Object.entries(n.model).reduce((e,[r,i])=>{if(void 0===i)return e;const n=$.columnName(t.constructor,r);if(this.isReserved(n))throw new b(`Property name ${n} is reserved`);return i=i instanceof Date?new Date(i):i,e[n]=i,e},{});return t[r.METADATA]&&(i.silly("Passing along persistence metadata for "+t[r.METADATA]),Object.defineProperty(s,r.METADATA,{enumerable:!1,writable:!0,configurable:!0,value:t[r.METADATA]})),{record:s,id:t[$.pk(t.constructor)],transient:n.transient}}createPrefix(t,e,r,...i){const{ctxArgs:n}=this.logCtx(i,this.createPrefix),s=$.tableName(t),o={};return o[P.TABLE]=s,o[P.ID]=this.generateId(s,e),Object.assign(o,r),[t,e,o,...n]}createAllPrefix(t,e,r,...i){const n=$.tableName(t);if(e.length!==r.length)throw new b("Ids and models must have the same length");const{ctxArgs:s}=this.logCtx(i,this.createAllPrefix),o=e.map((t,e)=>{const i={};return i[P.TABLE]=n,i[P.ID]=this.generateId(n,t),Object.assign(i,r[e]),i});return[t,e,o,...s]}updatePrefix(t,e,i,...n){const s=$.tableName(t),{ctxArgs:o}=this.logCtx(n,this.updatePrefix),a={};a[P.TABLE]=s,a[P.ID]=this.generateId(s,e);const c=i[r.METADATA];if(!c)throw new b("No revision number found for record with id "+e);return Object.assign(a,i),a[P.REV]=c,[t,e,a,...o]}updateAllPrefix(t,e,i,...n){const s=$.tableName(t);if(e.length!==i.length)throw new b("Ids and models must have the same length");const{ctxArgs:o}=this.logCtx(n,this.updateAllPrefix),a=e.map((t,e)=>{const n={};n[P.TABLE]=s,n[P.ID]=this.generateId(s,t);const o=i[e][r.METADATA];if(!o)throw new b("No revision number found for record with id "+t);return Object.assign(n,i[e]),n[P.REV]=o,n});return[t,e,a,...o]}generateId(t,e){return[t,e].join(P.SEPARATOR)}parseError(t,e){return dt.parseError(t,e)}isReserved(t){return!!t.match(I)}static parseError(t,e){if(t instanceof N)return t;let r="";if("string"==typeof t){if(r=t,r.match(/already exist|update conflict/g))return new D(r);if(r.match(/missing|deleted/g))return new x(r)}else t.code?(r=t.code,e=e||t.message):t.statusCode?(r=t.statusCode,e=e||t.message):r=t.message;switch(r.toString()){case"401":case"412":case"409":return new D(e);case"404":return new x(e);case"400":return r.toString().match(/No\sindex\sexists/g)?new ot(t):new b(t);default:return r.toString().match(/ECONNREFUSED/g)?new h(t):new b(t)}}static setMetadata(t,e){rt(t,e)}static getMetadata(t){return it(t)}static removeMetadata(t){nt(t)}}function gt(t,r){let n={};return Array.isArray(t)?n.compositions=t:"string"==typeof t?n.name=t:t&&(n=t),"string"==typeof r?n.name=r:r&&(n=Object.assign({},n,r)),void 0===n.returnDocs&&(n.returnDocs=!0),e.for(i.GROUP_BY).define({decorator:t=>m(i.GROUP_BY,"groupBy",t),args:[n]}).apply()}function ft(t,r){let n={};return t instanceof s?n.condition=t:"object"==typeof t&&t?n=t:void 0!==t&&(n.value=t),r&&(n=Object.assign({},n,r)),e.for(i.COUNT).define({decorator:t=>m(i.COUNT,"count",t),args:[n]}).apply()}function pt(t,r){let n={};return t instanceof s?n.condition=t:t&&(n=t),r&&(n=Object.assign({},n,r)),e.for(i.SUM).define({decorator:t=>m(i.SUM,"sum",t),args:[n]}).apply()}function ht(t,r){let n={};return t instanceof s?n.condition=t:t&&(n=t),r&&(n=Object.assign({},n,r)),e.for(i.MAX).define({decorator:t=>m(i.MAX,"max",t),args:[n]}).apply()}function mt(t,r){let n={};return t instanceof s?n.condition=t:t&&(n=t),r&&(n=Object.assign({},n,r)),e.for(i.MIN).define({decorator:t=>m(i.MIN,"min",t),args:[n]}).apply()}function yt(t,r){let n={};return t instanceof s?n.condition=t:t&&(n=t),r&&(n=Object.assign({},n,r)),e.for(i.DISTINCT).define({decorator:t=>m(i.DISTINCT,"distinct",t),args:[n]}).apply()}j([C(),M("design:type",Function),M("design:paramtypes",[Object]),M("design:returntype",lt)],dt.prototype,"Statement",null),j([C(),M("design:type",Function),M("design:paramtypes",[Object,String]),M("design:returntype",Object)],dt.prototype,"assignMetadata",null),j([C(),M("design:type",Function),M("design:paramtypes",[Array,Array]),M("design:returntype",Array)],dt.prototype,"assignMultipleMetadata",null),j([C(),M("design:type",Function),M("design:paramtypes",[Object,Object,Object,Object]),M("design:returntype",Array)],dt.prototype,"createPrefix",null),j([C(),M("design:type",Function),M("design:paramtypes",[Object,Array,Array,Object]),M("design:returntype",void 0)],dt.prototype,"createAllPrefix",null),j([C(),M("design:type",Function),M("design:paramtypes",[Object,Object,Object,Object]),M("design:returntype",void 0)],dt.prototype,"updatePrefix",null),j([C(),M("design:type",Function),M("design:paramtypes",[Object,Array,Array,Object]),M("design:returntype",void 0)],dt.prototype,"updateAllPrefix",null);const At="##VERSION##",bt="##PACKAGE##";t.registerLibrary(bt,At);export{dt as CouchDBAdapter,R as CouchDBConst,k as CouchDBGroupOperator,P as CouchDBKeys,V as CouchDBOperator,at as CouchDBPaginator,B as CouchDBQueryLimit,st as CouchDBRepository,lt as CouchDBStatement,ot as IndexError,bt as PACKAGE_NAME,At as VERSION,H as collectViewMetadata,ft as count,yt as distinct,X as findViewMetadata,W as generateDesignDocName,J as generateIndexDoc,G as generateIndexName,et as generateIndexes,Y as generateViewIndexes,Q as generateViewName,K as generateViews,it as getMetadata,gt as groupBy,ht as max,mt as min,_ as reAuth,nt as removeMetadata,I as reservedAttributes,rt as setMetadata,pt as sum,U as testReservedAttributes,ct as translateOperators,Z as viewIndexDefinition,L as wrapDocumentScope};
|
|
2
2
|
//# sourceMappingURL=for-couchdb.js.map
|
package/dist/for-couchdb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for-couchdb.js","sources":["../src/constants.ts","../src/query/constants.ts","../src/utils.ts","../src/views/generator.ts","../src/indexes/generator.ts","../src/metadata.ts","../src/repository.ts","../src/errors.ts","../src/query/Paginator.ts","../src/query/translate.ts","../src/query/Statement.ts","../src/adapter.ts","../src/decorators.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["reservedAttributes","CouchDBKeys","SEPARATOR","ID","REV","DELETED","TABLE","SEQUENCE","DDOC","NATIVE","INDEX","VIEW","CouchDBQueryLimit","CouchDBOperator","EQUAL","DIFFERENT","BIGGER","BIGGER_EQ","SMALLER","SMALLER_EQ","NOT","IN","REGEXP","CouchDBGroupOperator","AND","OR","CouchDBConst","NULL","async","reAuth","con","user","pass","auth","wrapDocumentScope","dbName","db","use","forEach","k","original","Object","defineProperty","enumerable","configurable","value","args","call","writable","testReservedAttributes","attr","match","generateIndexName","attribute","tableName","compositions","order","separator","DefaultSeparator","PersistenceKeys","push","join","generateIndexDoc","partialFilterSelector","fields","orderProp","sortedCompositions","map","c","r","sortedTable","name","index","ddoc","toJsLiteral","Date","JSON","stringify","toISOString","RegExp","source","flags","conditionToJs","condition","docVar","attr1","operator","comparison","Condition","left","Operator","right","GroupOperator","attrExpr","normalizeKey","key","Array","isArray","generateViewName","kind","meta","replace","generateDesignDocName","viewName","findViewMetadata","model","view","groupBy","GROUP_BY","count","COUNT","sum","SUM","max","MAX","min","MIN","distinct","DISTINCT","Metadata","get","entries","flatMap","values","entry","filter","collectViewMetadata","generateViews","models","viewDocs","viewKeys","m","Model","ddocId","viewDef","toString","guards","resolved","from","undefined","authGuard","field","roles","length","expression","listExpr","mode","buildAuthGuard","guard","emitKey","keys","buildEmitKey","emitValue","v","buildEmitValue","returnDocs","buildMapFunction","reduce","defaultReduce","normalizeViewMetadata","_id","language","views","generateViewIndexes","indexes","slice","directions","OrderDirection","ASC","DSC","baseIndex","direction","dirIndex","viewIndexDefinition","concat","n","generateIndexes","type","modelTableName","defaultQueryAttrs","defaultQueryAttributes","err","baseName","defaultFilter","$eq","partial_filter_selector","sortedName","ind","metadataEntries","metadataValue","candidate","fieldKey","fieldKeys","tableFilter","generate","sort","suffix","baseFields","sortField","Set","dir","String","toLowerCase","setMetadata","metadata","METADATA","getMetadata","descriptor","getOwnPropertyDescriptor","removeMetadata","CouchDBRepository","Repository","constructor","adapter","super","assignMetadata","target","apply","instance","carrier","create","result","this","createAll","results","read","id","readAll","ids","update","updateAll","delete","deleteAll","updatePrefix","ctx","ctxArgs","log","logCtx","OperationKeys","UPDATE","for","ignoreHandlers","ignoreValidate","silly","pk","InternalError","oldModel","oldMetadata","merge","class","enforceDBDecorators","ON","propsToIgnore","errors","Promise","resolve","hasErrors","ValidationError","updateAllPrefix","BulkCrudOperationKeys","UPDATE_ALL","oldModels","i","all","ignoredProps","modelsValidation","errorMessages","reduceErrorsToPrint","IndexError","BaseError","msg","CouchDBPaginator","Paginator","query","size","clazz","prepare","rawStatement","assign","limit","page","bookmark","isPreparedStatement","pagePrepared","statement","_recordCount","_totalPages","validatePage","skip","countResults","raw","Number","MAX_SAFE_INTEGER","Math","ceil","_bookmark","PagingError","rawResult","docs","nextBookmark","warning","warn","DBKeys","pageResults","d","revert","Sequence","parseValue","_currentPage","translateOperators","operators","el","find","QueryError","nextLexicographicString","chars","code","codePointAt","fromCodePoint","CouchDBStatement","Statement","overrides","attributeTypeCache","Map","build","manualAggregation","aggregateInfo","buildAggregateInfo","shouldUseManualAggregation","createAggregateQuery","selectors","fromSelector","selector","selectSelector","whereCondition","parseCondition","and","eq","selectorKeys","indexOf","accum","val","Error","s","orderBySelectors","selectorKey","rec","hasManualAggregate","limitSelector","offsetSelector","processRecord","record","pkAttr","keyArgs","split","rawInput","aggregator","aggregate","executeAggregate","processed","manualResult","executeManualAggregation","groupBySelectors","groupSelectResults","applyAfterHandlersToResult","avgSelector","sumInfo","createAggregateDescriptor","missingDecorator","countInfo","sumDescriptor","countDescriptor","countDistinctSelector","resolveSelectorAttribute","info","countDistinct","countSelector","maxSelector","minSelector","sumSelector","distinctSelector","metas","options","group","isViewAggregate","handleAverage","couchAdapter","getCouchAdapter","viewInfo","response","processViewResponse","sumDesc","countDesc","sumResponse","countResponse","rows","computeAverage","computeGroupBy","computeDistinctCount","computeCount","computeDistinctValues","computeSum","computeMinMax","collectValues","seen","add","unique","has","acc","toNumericValue","currentValue","currentComparable","normalized","normalizeComparable","grouped","doc","groupKey","convertValueByAttribute","getAttributeType","parsed","isNaN","getTime","includes","metaType","getPropDesignTypes","designType","normalizeMetaType","set","context","convertAggregateValue","decorator","decoratorForKind","table","UnsupportedError","avg","row","STARTS_WITH","range","start","prefix","end","$gte","$lt","ENDS_WITH","$regex","BETWEEN","opBetween","op","op1","op2","obj1","obj2","CouchDBAdapter","Adapter","scope","flavour","alias","prefixMethod","initialize","managedModels","repository","rev","assignMultipleMetadata","revs","segregate","mappedProp","columnName","isReserved","transient","createPrefix","generateId","createAllPrefix","records","parseError","reason","ConflictError","NotFoundError","message","statusCode","ConnectionError","compositionsOrOptions","nameOrOptions","opts","Decoration","define","o","applyViewDecorator","valueOrCondition","conditionOrOptions","__decorate","final","prototype","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"4wBAMO,MAAMA,EAAqB,SAyBrBC,EAAc,CACzBC,UAAW,KACXC,GAAI,MACJC,IAAK,OACLC,QAAS,WACTC,MAAO,UACPC,SAAU,aACVC,KAAM,OACNC,OAAQ,WACRC,MAAO,QAGPC,KAAM,QCnCKC,EAAoB,IAmBpBC,EAAiD,CAC5DC,MAAO,MACPC,UAAW,MACXC,OAAQ,MACRC,UAAW,OACXC,QAAS,MACTC,WAAY,OAEZC,IAAK,OACLC,GAAI,MAEJC,OAAQ,UAaGC,EAAsD,CACjEC,IAAK,OACLC,GAAI,OAYOC,EAAuC,CAClDC,KAAM,QClDDC,eAAeC,EAAOC,EAAUC,EAAcC,GACnD,OAAOF,EAAIG,KAAKF,EAAMC,EACxB,CAsCM,SAAUE,EACdJ,EACAK,EACAJ,EACAC,GAEA,MAAMI,EAAKN,EAAIO,IAAMP,EAAIO,IAAIF,GAAUL,EAkBvC,MAjBA,CAAC,SAAU,MAAO,MAAO,UAAW,OAAQ,QAAQQ,QAASC,IAC3D,MAAMC,EAAYJ,EAA2BG,GAC7CE,OAAOC,eAAeN,EAAIG,EAAG,CAC3BI,YAAY,EACZC,cAAc,EACdC,MAAOjB,SAAUkB,WACTjB,EAAOC,EAAKC,EAAMC,GACjBQ,EAASO,KAAKX,KAAOU,QAIlCL,OAAOC,eAAeN,EAAInC,EAAYQ,OAAQ,CAC5CkC,YAAY,EACZC,cAAc,EACdI,UAAU,EACVH,MAAOf,IAEFM,CACT,CAUM,SAAUa,EAAuBC,GAErC,OAAOA,EAAKC,MADG,SAEjB,CAcM,SAAUC,EACdC,EACAC,EACAC,EACAC,EACAC,EAAYC,GAEZ,MAAMR,EAAO,CAACS,EAAgBjD,MAAO4C,EAAWD,GAGhD,OAFIE,GAAcL,EAAKU,QAAQL,GAC3BC,GAAON,EAAKU,KAAKJ,GACdN,EAAKW,KAAKJ,EACnB,CAyCM,SAAUK,EACdT,EACAC,EACAC,EACAC,EACAC,EAAYC,GAEZ,MAAMK,EAAuC,CAAA,EAK7C,IAAIC,EACJ,GALAD,EAAsB9D,EAAYK,OAAS,CAAA,EAC1CyD,EAAsB9D,EAAYK,OACZ,IACnBgD,EAEAE,EAAO,CACT,MAAMS,EAAuB,CAAA,EAC7BA,EAAUZ,GAAaG,EACvB,MAAMU,GAAmCX,GAAgB,IAAIY,IAAKC,IAChE,MAAMC,EAAe,CAAA,EAErB,OADAA,EAAED,GAAKZ,EACAa,IAEHC,EAAyB,CAAA,EAC/BA,EAAYrE,EAAYK,OAASkD,EACjCQ,EAAS,CAACC,KAAcC,EAAoBI,EAC9C,MACEN,EAAS,CAACX,KAAeE,GAAgB,GAAKtD,EAAYK,OAE5D,MAAMiE,EAAOnB,EACXC,EACAC,EACAC,EACAC,EACAC,GAEF,MAAO,CACLe,MAAO,CACLR,OAAQA,GAGVS,KAAM,CAACF,EAAMtE,EAAYO,MAAMqD,KAAKJ,GACpCc,KAAMA,EAEV,CCnLA,SAASG,EAAY7B,GACnB,OAAIA,aAAiB8B,KAAaC,KAAKC,UAAUhC,EAAMiC,eACnDjC,aAAiBkC,OACZ,cAAcH,KAAKC,UAAUhC,EAAMmC,YAAYJ,KAAKC,UACzDhC,EAAMoC,UAEHL,KAAKC,UAAUhC,EACxB,CAEA,SAASqC,EAAcC,EAA2BC,GAChD,MAAMC,MAAEA,EAAKC,SAAEA,EAAQC,WAAEA,GAAeJ,EAMxC,GAAIE,aAAiBG,EAAW,CAC9B,MAAMC,EAAOP,EAAcG,EAAOD,GAClC,GAAIE,IAAaI,EAAStE,IAAK,MAAO,KAAKqE,KAC3C,MAAME,EAAQT,EAAcK,EAA8BH,GAC1D,OAAIE,IAAaM,EAAcpE,IAAY,IAAIiE,QAAWE,KACtDL,IAAaM,EAAcnE,GAAW,IAAIgE,QAAWE,KAClDF,CACT,CAEA,MAAMI,EAAW,GAAGT,KAAUR,KAAKC,UAAUQ,MAC7C,OAAQC,GACN,KAAKI,EAAS5E,MACZ,MAAO,GAAG+E,SAAgBnB,EAAYa,KACxC,KAAKG,EAAS3E,UACZ,MAAO,GAAG8E,SAAgBnB,EAAYa,KACxC,KAAKG,EAAS1E,OACZ,MAAO,GAAG6E,OAAcnB,EAAYa,KACtC,KAAKG,EAASzE,UACZ,MAAO,GAAG4E,QAAenB,EAAYa,KACvC,KAAKG,EAASxE,QACZ,MAAO,GAAG2E,OAAcnB,EAAYa,KACtC,KAAKG,EAASvE,WACZ,MAAO,GAAG0E,QAAenB,EAAYa,KACvC,KAAKG,EAASrE,GACZ,MAAO,IAAIqD,EAAYa,eAAwBM,YACjD,KAAKH,EAASpE,OAKZ,MAAO,GAHLiE,aAAsBR,OAClBL,EAAYa,GACZ,cAAcX,KAAKC,UAAUU,cACXM,KAE1B,KAAKH,EAAStE,IACZ,MAAO,KAAKyE,SAAgBnB,EAAYa,MAC1C,QACE,MAAO,OAEb,CAsBA,SAASO,EACPC,EACA7C,EACAK,GAEA,OAAKwC,EACEC,MAAMC,QAAQF,GAAOA,EAAM,CAACA,GADlB7C,EAAO,CAACA,KAAUK,GAAgB,IAAOA,GAAgB,EAE5E,CAgGM,SAAU2C,EACd5C,EACAJ,EACAiD,EACAC,EACA3C,EAAYC,GAEZ,OAAI0C,EAAK7B,KAAa6B,EAAK7B,KACb,CAACjB,EAAWJ,EAAMiD,EAAM,QACzBtC,KAAKJ,GAAW4C,QAAQ,OAAQ,IAC/C,CAEM,SAAUC,EACdhD,EACAiD,EACA9C,EAAYC,GAEZ,MAAO,CAACJ,EAAWiD,EAAUtG,EAAYO,MAAMqD,KAAKJ,EACtD,UAEgB+C,EACdC,EACAN,EACA9C,GAEA,MASM0C,EATyC,CAC7CW,KAAMhB,EAAS/E,KACfgG,QAASjB,EAASkB,SAClBC,MAAOnB,EAASoB,MAChBC,IAAKrB,EAASsB,IACdC,IAAKvB,EAASwB,IACdC,IAAKzB,EAAS0B,IACdC,SAAU3B,EAAS4B,UAEEnB,GACvB,IAAKJ,EAAK,MAAO,GACjB,MAAMK,EAAOmB,EAASC,IAAIf,EAAOV,IAAQ,CAAA,EACzC,OAAOtD,OAAOgF,QAAQrB,GAA6BsB,QAAQ,EAAExE,EAAMuE,KAC5DA,GAA8B,iBAAZA,EAChBhF,OAAOkF,OAAOF,GAClBtD,IAAKyD,IAAK,IACLA,EACJzB,OACA9C,UAAYuE,EAA8BvE,WAAaH,KAExD2E,OAAQD,IAAWvE,GAAauE,EAAMvE,YAAcA,GAPH,GASxD,UAEgByE,EACdrB,EACAV,EACAI,GAEA,MAAMC,EAAOmB,EAASC,IAAIf,EAAOV,IAAQ,CAAA,EACzC,OAAOtD,OAAOgF,QAAQrB,GAA6BsB,QACjD,EAAExE,EAAMuE,KACDA,GAA8B,iBAAZA,EAChBhF,OAAOkF,OAAOF,GAAgCtD,IAAKyD,IACxD,MAAM/E,EAAQ+E,EACd,MAAO,IACF/E,EACHsD,OACA9C,UAAWR,EAAMQ,WAAaH,KANkB,GAW1D,CAEM,SAAU6E,EACdC,GAEA,MAAMC,EAA6C,CAAA,EAE7CC,EAA8B,CAClC,CAACjI,EAAYU,KAAM,QACnB,CAAC+E,EAASkB,SAAU,WACpB,CAAClB,EAASoB,MAAO,SACjB,CAACpB,EAASsB,IAAK,OACf,CAACtB,EAASwB,IAAK,OACf,CAACxB,EAAS0B,IAAK,OACf,CAAC1B,EAAS4B,SAAU,aA4BtB,OAzBAU,EAAO1F,QAAS6F,IACd,MAAM7E,EAAY8E,EAAM9E,UAAU6E,GACpBD,EAASR,QAAQ,EAAE3B,EAAKI,KACpC2B,EAAoBK,EAAGpC,EAAKI,IAIxB7D,QAAS8D,IACb,MAAMlD,EAAOkD,EAAK/C,UACZkD,EAAWL,EAAiB5C,EAAWJ,EAAMkD,EAAKD,KAAMC,GAExDiC,EAAS,YADEjC,EAAK3B,MAAQ6B,EAAsBhD,EAAWiD,IAGzD+B,EAjHZ,EACEnC,EACAjD,EACAkD,EACA9C,KAEA,MAAMa,EA9CR,EACEb,EACAJ,EACAkD,KAEA,GAAIA,EAAKjC,IACP,MAAwB,mBAAbiC,EAAKjC,IAA2BiC,EAAKjC,IAAIoE,WAC7CnC,EAAKjC,IAGd,MAAMqE,EAAmB,GAIzB,GAHAA,EAAO5E,KACL,OAAOgB,KAAKC,UAAU5E,EAAYK,eAAesE,KAAKC,UAAUvB,MAE9D8C,EAAKjB,UACP,GAAIiB,EAAKjB,qBAAqBK,EAC5BgD,EAAO5E,KAAKsB,EAAckB,EAAKjB,UAAW,aACrC,GAA8B,iBAAnBiB,EAAKjB,UACrBqD,EAAO5E,KAAKwC,EAAKjB,eACZ,CACL,MAAMsD,EAAWjD,EAAUkD,KAAKtC,EAAKjB,WACrCqD,EAAO5E,KAAKsB,EAAcuD,EAAU,OACtC,CAEgB,UAAdrC,EAAKD,WAAmCwC,IAAfvC,EAAKvD,OAChC2F,EAAO5E,KAAK,OAAOgB,KAAKC,UAAU3B,WAAcwB,EAAY0B,EAAKvD,UAEnE,MAAM+F,EA/FR,EACE3G,EACAmD,EAAS,SAET,IAAKnD,EAAM,OACX,GAAoB,iBAATA,EAAmB,OAAOA,EACrC,MAAM4G,EAAQ5G,EAAK4G,OAAS,QACtBC,EAAQ7G,EAAK6G,OAAS,GAC5B,IAAKA,EAAMC,OAAQ,OAAO9G,EAAK+G,WAC/B,MAAMC,EAAW,GAAG7D,KAAUR,KAAKC,UAAUgE,YAC7C,MAA6B,SAAxB5G,EAAKiH,MAAQ,OACTJ,EACJ3E,IAAKE,GAAM,GAAG4E,aAAoBrE,KAAKC,UAAUR,cACjDR,KAAK,QAEHiF,EACJ3E,IAAKE,GAAM,GAAG4E,aAAoBrE,KAAKC,UAAUR,cACjDR,KAAK,OACV,EA6EoBsF,CAAe/C,EAAKnE,KAAM,OACxC2G,GAAWJ,EAAO5E,KAAKgF,GAE3B,MAAMQ,EAAQZ,EAAOO,OAASP,EAAO3E,KAAK,QAAU,OAC9CwF,EAtER,EACEtD,EACA7C,EACAK,KAEA,MAAM+F,EAAOxD,EAAaC,EAAK7C,EAAMK,GACrC,OAAoB,IAAhB+F,EAAKP,OAAqB,OAAOnE,KAAKC,UAAUyE,EAAK,OAClD,IAAIA,EAAKnF,IAAK5B,GAAM,OAAOqC,KAAKC,UAAUtC,OAAOsB,KAAK,QAC/D,EA8DkB0F,CAAanD,EAAKL,IAAK7C,EAAMkD,EAAK7C,cAC5CiG,EA7DR,EACE3G,EACAK,IAEc,QAAVL,EAAwB,MACvBA,EACDmD,MAAMC,QAAQpD,GACT,IAAIA,EAAMsB,IAAKsF,GAAM,OAAO7E,KAAKC,UAAU4E,OAAO5F,KAAK,SAC3C,iBAAVhB,EAA2B,OAAO+B,KAAKC,UAAUhC,MACrD6B,EAAY7B,GAJA,OAAO+B,KAAKC,UAAU3B,MAwDvBwG,CAChBtD,EAAKvD,QAAUuD,EAAKuD,YAA4B,QAAdvD,EAAKD,KAAiB,WAAQwC,GAChEzF,GAGF,MAAO,6BAA6BkG,uBAA2BC,MAAYG,QAC7E,EAQcI,CAAiBtG,EAAWJ,EAAMkD,GACxCyD,EAASzD,EAAKyD,OACO,mBAAhBzD,EAAKyD,OACVzD,EAAKyD,OAAOtB,WACZnC,EAAKyD,OAnEb,CAAuB1D,IACrB,OAAQA,GACN,IAAK,QACL,IAAK,UACL,IAAK,WACH,MAAO,SACT,IAAK,MACH,MAAO,OACT,IAAK,MACH,MAAO,6SACT,IAAK,MACH,MAAO,6SACT,QACE,OAEN,EAqDM2D,CAAc3D,GAClB,MAAO,CAAEhC,MAAK0F,SAChB,EAoGsBE,CAAsB3D,EAAKD,KAAMjD,EAAMkD,EAAM9C,GACxD2E,EAASI,KACZJ,EAASI,GAAU,CACjB2B,IAAK3B,EACL4B,SAAU,aACVC,MAAO,CAAA,IAGXjC,EAASI,GAAQ6B,MAAM3D,GAAY+B,MAIhC7F,OAAOkF,OAAOM,EACvB,CAEM,SAAUkC,EACdnC,GAEA,MAAMoC,EAA8C,CAAA,EAE9ClC,EAA8B,CAClC,CAACjI,EAAYU,KAAM,QACnB,CAAC+E,EAASkB,SAAU,WACpB,CAAClB,EAASoB,MAAO,SACjB,CAACpB,EAASsB,IAAK,OACf,CAACtB,EAASwB,IAAK,OACf,CAACxB,EAAS0B,IAAK,OACf,CAAC1B,EAAS4B,SAAU,aAkCtB,OA/BAU,EAAO1F,QAAS6F,IACd,MAAM7E,EAAY8E,EAAM9E,UAAU6E,GACpBD,EAASR,QAAQ,EAAE3B,EAAKI,KACpC2B,EAAoBK,EAAGpC,EAAKI,IAGxB7D,QAAS8D,IACb,MAAML,EAAMD,EAAaM,EAAKL,IAAKK,EAAK/C,UAAW+C,EAAK7C,cACxD,IAAKwC,EAAIgD,OAAQ,OACjB,MAAM1F,EAAY0C,EAAI,GAChBxC,EAAewC,EAAIsE,MAAM,GACzBC,EAAalE,EAAKkE,YAAc,CACpCC,EAAeC,IACfD,EAAeE,KAGXC,EAAY5G,EAAiBT,EAAWC,EAAWC,GACzD6G,EAAQM,EAAUnG,MAAQ,IAAMmG,EAEhCJ,EAAWhI,QAASqI,IAClB,MAAMC,EAAW9G,EACfT,EACAC,EACAC,EACAoH,GAEFP,EAAQQ,EAASrG,MAAQ,IAAMqG,QAK9BnI,OAAOkF,OAAOyC,EACvB,CAEM,SAAUS,EACdzE,GAEA,MAAML,EAAMD,EAAaM,EAAKL,IAAKK,EAAK/C,WACxC,MAAO,CACLA,UAAW0C,EAAI,GACfxC,aAAcwC,EAAIsE,MAAM,GAAGS,OAAO1E,EAAK7C,cAAgB,IACvD+G,WAAYlE,EAAKkE,WAErB,CCjWA,SAASlH,GACPmB,EACAoG,EACApH,EACAE,EAAYC,GAEZ,MAAO,IACFa,EAAKJ,IAAK4G,GAAOA,IAAM9K,EAAYK,MAAQ,QAAUyK,MAEpDJ,EAAY,CAACA,GAAa,GAC9B1K,EAAYS,OACZmD,KAAKJ,EACT,CAiDM,SAAUuH,GACdhD,GAEA,MAAM1E,EAAYF,GAAkB,CAACnD,EAAYK,QAC3C8J,EAA8C,CAAA,EAiKpD,OAhKAA,EAAQ9G,GAAa,CACnBkB,MAAO,CACLR,OAAQ,CAAC/D,EAAYK,QAEvBiE,KAAMjB,EACNmB,KAAMnB,EACN2H,KAAM,QAGRjD,EAAO1F,QAAS6F,IACd,MAAM+C,EAAiB9C,EAAM9E,UAAU6E,GACvC,IAAIgD,EAA8B,GAClC,IACEA,EAAoB/C,EAAMgD,uBAAuBjD,EAEnD,CAAE,MAAOkD,GACPF,EAAoB,EACtB,CACAA,EAAkB7I,QAASY,IACzB,MAAMoI,EAAWlI,GAAkB,CACjC8H,EACAhI,EACA,iBAEIqI,EAAqC,CACzC,CAACtL,EAAYK,OAAQ,CACnBkL,IAAyBN,IAG7Bd,EAAQkB,GAAY,CAClB9G,MAAO,CACLR,OAAQ,CAAC/D,EAAYK,MAAO4C,IAE9BqB,KAAM+G,EACN7G,KAAM6G,EACNL,KAAM,QAERb,EAAQkB,GAAU9G,MAAMiH,wBAA0BF,EAElD,CAAChB,EAAeC,IAAKD,EAAeE,KAAKnI,QAASqI,IAChD,MAAMe,EAAatI,GACjB,CAAC8H,EAAgBhI,EAAM,gBACvByH,GAEFP,EAAQsB,GAAc,CACpBlH,MAAO,CACLR,OAAQ,CACN,CACE,CAAC/D,EAAYK,OAAQqK,GAEvB,CACEzH,CAACA,GAAOyH,KAIdpG,KAAMmH,EACNjH,KAAMiH,EACNT,KAAM,YAKZ,MAAMU,EAAqCvD,EAAMgC,QAAQjC,GACzD1F,OAAOgF,QAAQkE,GAAKrJ,QAAQ,EAAEyD,EAAKlD,MACjC,MAAM+I,EAA6C,GACnDnJ,OAAOgF,QAAQ5E,GAAS,CAAA,GAAIP,QAAQ,EAAC,CAAGuJ,MACtC,IAAKA,EAAe,OACpB,MAAMC,EAAYD,OAESlD,IAAzBmD,EAAUxB,iBACiB3B,IAA3BmD,EAAUvI,aAMe,iBAAlBsI,GACN7F,MAAMC,QAAQ4F,IAGfpJ,OAAOgF,QADQoE,GACQvJ,QAAQ,EAAEuG,EAAOzC,MAClCA,GAAMwF,EAAgBhI,KAAK,CAACiF,EAAOzC,MATzCwF,EAAgBhI,KAAK,CAACmC,EAAK+F,MAc/BF,EAAgBtJ,QAAQ,EAAEyJ,EAAU3F,MAClC,IAAKA,EAAM,OAEX,IAAIkE,WAAEA,EAAU/G,aAAEA,GAAiB6C,EACnC,MAAM9C,EAAY4H,EAClB3H,EAAeA,GAAgB,GAC/B,MAAMyI,EAAY,CAACD,KAAcxI,GAE3B0I,EAAmC,CACvC,CAAChM,EAAYK,OAAQ,CACnBkL,IAAyBlI,IAI7B,SAAS4I,EAASC,EAAuBC,GACvC,MAAM7H,EAAO,CACXjB,EACAyI,KACIxI,KACA6I,EAAS,CAACA,GAAU,GACxBzI,EAAgBjD,OAChBmD,KAAKH,GAED2I,EAAa,CAACpM,EAAYK,SAAU0L,GACpChI,EAASmI,EACX,CACE,CACE,CAAClM,EAAYK,OAAQ6L,MAEpBH,EAAU7H,IAAKmI,IAAS,CACzBA,CAACA,GAAYH,MAGjBE,EAEJjC,EAAQ7F,GAAQ,CACdC,MAAO,CACLR,UAEFO,OACAE,KAAMF,EACN0G,KAAM,QAEHkB,IACH/B,EAAQ7F,GAAMC,MAAMiH,wBAA0BQ,EAElD,CAEAC,IAC6BlG,MAAM0C,KACjC,IAAI6D,KACDjC,GAAc,CAACC,EAAeC,MAAMrG,IAClCqI,IAAwCA,EAAPC,IAAYC,iBAKP7E,OAC1C2E,GACCA,IAAQjC,EAAeC,KAAOgC,IAAQjC,EAAeE,KAGzCnI,QAASqI,IACvBuB,EAASvB,EAAWA,WAM5BR,EAAoBnC,GAAQ1F,QAASkC,IAC9BA,EAAMD,OACX6F,EAAQ5F,EAAMD,MAAQC,KAGjB/B,OAAOkF,OAAOyC,EACvB,CCnPM,SAAUuC,GAA6BlG,EAAUmG,GACrDnK,OAAOC,eAAe+D,EAAO9C,EAAgBkJ,SAAU,CACrDlK,YAAY,EACZC,cAAc,EACdI,UAAU,EACVH,MAAO+J,GAEX,CAEM,SAAUE,GAA6BrG,GAC3C,MAAMsG,EAAatK,OAAOuK,yBACxBvG,EACA9C,EAAgBkJ,UAElB,OAAOE,EAAaA,EAAWlK,WAAQ8F,CACzC,CAEM,SAAUsE,GAAgCxG,GAC3BhE,OAAOuK,yBACxBvG,EACA9C,EAAgBkJ,kBAEMpG,EAAc9C,EAAgBkJ,SACxD,CCVM,MAAOK,WAGHC,EACR,WAAAC,CAAYC,EAAY5G,GACtB6G,MAAMD,EAAS5G,EACjB,CAIU,cAAA8G,CAAeC,EAAiBxI,GACxC,MAAMyI,EAAQ,CAACC,EAAaC,KAC1B,MACMf,EAAWE,GADMa,GAAWD,GAGlC,OADId,GAAUD,GAAYe,EAAUd,GAC7Bc,GAGT,OAAI1H,MAAMC,QAAQuH,GACTA,EAAOrJ,IAAI,CAACsC,EAAOjC,KACxB,MAAMmJ,EAAU3H,MAAMC,QAAQjB,GAAUA,EAAOR,GAASQ,EACxD,OAAOyI,EAAMhH,EAAOkH,KAKjBF,EAAMD,EADGxH,MAAMC,QAAQjB,GAAUA,IAAS,GAAKA,EAExD,CAES,YAAM4I,CACbnH,KACG3D,GAEH,MAAM+K,QAAeP,MAAMM,OAAOnH,KAAU3D,GAG5C,OAFAgL,KAAKP,eAAeM,GACpBC,KAAKP,eAAe9G,EAAOoH,GACpBA,CACT,CAES,eAAME,CACb/F,KACGlF,GAEH,MAAMkL,QAAgBV,MAAMS,UAAU/F,KAAWlF,GAGjD,OAFAgL,KAAKP,eAAeS,GACpBF,KAAKP,eAAevF,EAAQgG,GACrBA,CACT,CAES,UAAMC,CACbC,KACGpL,GAEH,MAAM+K,QAAeP,MAAMW,KAAKC,KAAOpL,GACvC,OAAOgL,KAAKP,eAAeM,EAC7B,CAES,aAAMM,CACbC,KACGtL,GAEH,MAAMkL,QAAgBV,MAAMa,QAAQC,KAAQtL,GAC5C,OAAOgL,KAAKP,eAAeS,EAC7B,CAES,YAAMK,CACb5H,KACG3D,GAEH,MAAM+K,QAAeP,MAAMe,OAAO5H,KAAU3D,GAG5C,OAFAgL,KAAKP,eAAeM,GACpBC,KAAKP,eAAe9G,EAAOoH,GACpBA,CACT,CAES,eAAMS,CACbtG,KACGlF,GAEH,MAAMkL,QAAgBV,MAAMgB,UAAUtG,KAAWlF,GAGjD,OAFAgL,KAAKP,eAAeS,GACpBF,KAAKP,eAAevF,EAAQgG,GACrBA,CACT,CAES,YAAM,CACbE,KACGpL,GAEH,MAAM+K,QAAeP,MAAMiB,OAAOL,KAAOpL,GACzC,OAAOgL,KAAKP,eAAeM,EAC7B,CAES,eAAMW,CACbJ,KACGtL,GAEH,MAAMkL,QAAgBV,MAAMkB,UAAUJ,KAAQtL,GAC9C,OAAOgL,KAAKP,eAAeS,EAC7B,CAWmB,kBAAMS,CACvBhI,KACG3D,GAEH,MAAM4L,IAAEA,EAAGC,QAAEA,EAAOC,IAAEA,UACdd,KAAKe,OAAO/L,EAAMgM,EAAcC,QAAQ,IAC9CC,IAAIlB,KAAKW,cAELQ,EAAiBP,EAAIlH,IAAI,kBACzB0H,EAAiBR,EAAIlH,IAAI,oBAC/BoH,EAAIO,MACF,mBAAmBF,yBAAsCC,KAE3D,MAAME,EAAK3I,EAAMqH,KAAKsB,IACtB,IAAKA,EACH,MAAM,IAAIC,EACR,qDAAqDvB,KAAKsB,IAE9D,IAAIE,EACAC,EAmBJ,GAjBIb,EAAIlH,IAAI,2BACV8H,QAAiBxB,KAAKG,KAAKmB,GAC3BG,EAAcD,EAAWxC,GAAYwC,QAAY3G,EAE7C+F,EAAIlH,IAAI,oBACVf,EAAQ2B,EAAMoH,MAAMF,EAAU7I,EAAOqH,KAAK2B,SAEzCR,SACGS,EACJ5B,KACAY,EACAjI,EACAqI,EAAcC,OACdD,EAAca,GACdL,IAGCJ,EAAgB,CACnB,MAAMU,EAAgBlB,EAAIlH,IAAI,gCAAkC,GAChEoH,EAAIO,MAAM,kCAAkCS,GAC5C,MAAMC,QAAeC,QAAQC,QAC3BtJ,EAAMuJ,UAAUV,KAAaM,IAE/B,GAAIC,EAAQ,MAAM,IAAII,EAAgBJ,EAAOtH,WAC/C,CAEA,OADIgH,GAAa5C,GAAYlG,EAAO8I,GAC7B,CAAC9I,KAAUkI,EAASW,EAC7B,CAWmB,qBAAMY,CACvBlI,KACGlF,GAEH,MAAM4L,IAAEA,EAAGC,QAAEA,EAAOC,IAAEA,UACdd,KAAKe,OAAO/L,EAAMqN,EAAsBC,YAAY,IAC1DpB,IAAIlB,KAAKoC,iBAELjB,EAAiBP,EAAIlH,IAAI,kBACzB0H,EAAiBR,EAAIlH,IAAI,oBAC/BoH,EAAIO,MACF,mBAAmBF,yBAAsCC,KAE3D,MAAMd,EAAMpG,EAAO7D,IAAKgE,IACtB,MAAM+F,EAAK/F,EAAE2F,KAAKsB,IAClB,IAAKlB,EAAI,MAAM,IAAImB,EAAc,kCACjC,OAAOnB,IAET,IAAImC,EAyBJ,GAxBI3B,EAAIlH,IAAI,2BACV6I,QAAkBvC,KAAKK,QAAQC,EAAiBM,GAChD1G,EAASA,EAAO7D,IAAI,CAACgE,EAAGmI,KAClB5B,EAAIlH,IAAI,oBACVW,EAAIC,EAAMoH,MAAOa,EAAkBC,GAAInI,EAAG2F,KAAK2B,QACjD,MAAMF,EAAczC,GAAauD,EAAkBC,IAEnD,OADIf,GAAa5C,GAAYxE,EAAGoH,GACzBpH,KAGN8G,SACGa,QAAQS,IACZvI,EAAO7D,IAAI,CAACgE,EAAGmI,IACbZ,EACE5B,KACAY,EACAvG,EACA2G,EAAcC,OACdD,EAAca,GACdU,EAAYA,EAAUC,QAAK3H,MAK9BuG,EAAgB,CACnB,MAAMsB,EAAe9B,EAAIlH,IAAI,gCAAkC,GAE/D,IAAIiJ,EADJ7B,EAAIO,MAAM,kCAAkCqB,GAO1CC,EALG/B,EAAIlH,IAAI,+BAKcsI,QAAQS,IAC/BvI,EAAO7D,IAAI,CAACgE,EAAGmI,IACbR,QAAQC,QACN5H,EAAE6H,UAAWK,EAAkBC,MAAcE,YAP1BV,QAAQC,QAC/B/H,EAAO7D,IAAKgE,GAAMA,EAAE6H,aAAaQ,KAYrC,MAAME,EAAgBC,EAAoBF,GAE1C,GAAIC,EAAe,MAAM,IAAIT,EAAgBS,EAC/C,CACA,MAAO,CAAC1I,KAAW2G,EAAS0B,EAC9B,ECxOI,MAAOO,WAAmBC,EAC9B,WAAAzD,CAAY0D,GACVxD,MAAMsD,GAAWrM,KAAMuM,EAAK,IAC9B,ECYI,MAAOC,WAA0CC,EAarD,WAAA5D,CACEC,EACA4D,EACAC,EACAC,GAEA7D,MAAMD,EAAS4D,EAAOC,EAAMC,EAC9B,CAQU,OAAAC,CAAQC,GAChB,MAAMJ,EAAoBxO,OAAO6O,OAAO,CAAA,EAAID,GAK5C,OAJIJ,EAAMM,QAAOzD,KAAKyD,MAAQN,EAAMM,OAEpCN,EAAMM,MAAQzD,KAAKoD,KAEZD,CACT,CA6DS,UAAMO,CACbA,EAA2B,EAC3BC,KACG3O,GAEH,MAAM8L,IAAEA,EAAGD,QAAEA,EAAOD,IAAEA,GAAQZ,KAAKT,QAAgB,OACjD,CAACoE,KAAa3O,GACdgL,KAAK0D,MAEP,GAAI1D,KAAK4D,sBACP,aAAa5D,KAAK6D,aAAaH,KAAS7C,GAC1C,MAAMiD,EAAYnP,OAAO6O,OAAO,CAAA,EAAIxD,KAAK8D,WAEzC,GAAK9D,KAAK+D,cAAiB/D,KAAKgE,YAe9BN,EAAO1D,KAAKiE,aAAaP,GACzBI,EAAUI,MAAQR,EAAO,GAAK1D,KAAKoD,SAhBQ,CAC3CpD,KAAKgE,YAAchE,KAAK+D,aAAe,EACvC,MAAMI,QACCnE,KAAKT,QAAQ6E,IAClB,IAAKN,EAAWL,MAAOY,OAAOC,mBAC9B,KACGzD,IACC,GAEN,GADAb,KAAK+D,aAAeI,EAAalJ,OAC7B+E,KAAK+D,aAAe,EAAG,CACzB,MAAMX,EAAOU,GAAWL,OAASzD,KAAKoD,KAEtC,OADApD,KAAKgE,YAAcO,KAAKC,KAAKxE,KAAK+D,aAAeX,SACpCpD,KAAK0D,KAAKA,KAAS7C,EAClC,CACF,CAKA,GAAa,IAAT6C,EAAY,CACd,IAAK1D,KAAKyE,UACR,MAAM,IAAIC,EAAY,iDACxBZ,EAAoB,SAAI9D,KAAKyE,SAC/B,CACA,MAAME,QAAuC3E,KAAKT,QAAQ6E,IACxDN,GACA,KACGjD,IAGC+D,KAAEA,EAAMjB,SAAUkB,EAAYC,QAAEA,GAAYH,EAElD,GADIG,GAAShE,EAAIiE,KAAKD,IACjB9E,KAAKqD,MAAO,MAAM,IAAIqB,EAAY,+BACvC,MAAMtE,EAAK9F,EAAMgH,GAAGtB,KAAKqD,OACnBlG,EAAO1D,EAASC,IACpBsG,KAAKqD,MACL5J,EAASxB,IAAI+M,EAAO3S,GAAI+N,KACvBjD,KACG8H,EACJnB,EAAU5N,QAAU4N,EAAU5N,OAAO+E,OACjC2J,EACAA,EAAKvO,IAAK6O,GACDlF,KAAKT,QAAQ4F,OAClBD,EACAlF,KAAKqD,MACL+B,EAASC,WAAWlI,EAAM+H,EAAE9E,SAC5BvF,EACA+F,IAKV,OAFAZ,KAAKyE,UAAYI,EACjB7E,KAAKsF,aAAe5B,EACbuB,CACT,EChKI,SAAUM,GACd/N,GAEA,IAAK,MAAMgO,IAAa,CAACzS,EAAiBU,GAAuB,CAC/D,MAAMgS,EAAK9Q,OAAO6G,KAAKgK,GAAWE,KAAMjR,GAAMA,IAAM+C,GACpD,GAAIiO,EAAI,OAAOD,EAAUC,EAC3B,CACA,MAAM,IAAIE,EACR,mDAAmDnO,EAEvD,CCgBA,SAASoO,GAAwB7Q,GAC/B,IAAKA,EAAO,MAAO,KACnB,MAAM8Q,EAAQ3N,MAAM0C,KAAK7F,GACzB,IAAK,IAAIyN,EAAIqD,EAAM5K,OAAS,EAAGuH,GAAK,EAAGA,GAAK,EAAG,CAC7C,MAAMsD,EAAOD,EAAMrD,GAAGuD,YAAY,GAClC,QAAalL,IAATiL,GACO,QAAPA,EAEF,OADAD,EAAMrD,GAAK7D,OAAOqH,cAAcF,EAAO,GAChCD,EAAMtJ,MAAM,EAAGiG,EAAI,GAAGzM,KAAK,GAEtC,CACA,OAAUhB,EAAH,IACT,CA6BM,MAAOkR,WAIHC,EAIR,WAAA5G,CAAYC,EAAY4G,GACtB3G,MAAMD,EAAS4G,GAHPnG,KAAAoG,mBAAsD,IAAIC,GAIpE,CA0DU,KAAAC,GACR,MAAMxF,EAAMd,KAAKc,IAAII,IAAIlB,KAAKsG,OAC9BtG,KAAKuG,uBAAoB1L,EACzB,MAAM2L,EAAgBxG,KAAKyG,qBAC3B,GAAID,EAAe,CACjB,IAAIxG,KAAK0G,6BAGP,OAAO1G,KAAK2G,qBAAqBH,GAFjCxG,KAAKuG,kBAAoBC,CAI7B,CACA,MAAMI,EAA2B,CAAA,EACjCA,EAAUzU,EAAYK,OAAS,CAAA,EAC/BoU,EAAUzU,EAAYK,OAAS8H,EAAM9E,UAAUwK,KAAK6G,cACpD,MAAM1D,EAAoB,CAAE2D,SAAUF,GAGtC,GAFI5G,KAAK+G,iBAAgB5D,EAAMjN,OAAS8J,KAAK+G,gBAEzC/G,KAAKgH,eAAgB,CACvB,MAAM3P,EAA2B2I,KAAKiH,eACpCvP,EAAUwP,IACRlH,KAAKgH,eACLtP,EAAUnC,UAAapD,EAAYK,OAAkB2U,GACnDhE,EAAM2D,SAAS3U,EAAYK,UAG/BsU,SACIM,EAAezS,OAAO6G,KAAKnE,GACjC,GAC0B,IAAxB+P,EAAanM,SACoD,IAAjEtG,OAAOkF,OAAOpG,GAAsB4T,QAAQD,EAAa,IAEzD,OAAQA,EAAa,IACnB,KAAK3T,EAAqBC,IACxB2D,EAAU5D,EAAqBC,KAAO,IACjCiB,OAAOkF,OACRxC,EAAU5D,EAAqBC,MAC/BqI,OAAO,CAACuL,EAAwBC,KAChC,MAAM/L,EAAO7G,OAAO6G,KAAK+L,GACzB,GAAoB,IAAhB/L,EAAKP,OACP,MAAUuM,MACR,kDAEJ,MAAM/S,EAAI+G,EAAK,GAIf,OAHI/G,IAAMhB,EAAqBC,IAC7B4T,EAAMxR,QAASyR,EAAI9S,IAChB6S,EAAMxR,KAAKyR,GACTD,GACN,KAELnE,EAAM2D,SAAWzP,EACjB,MACF,KAAK5D,EAAqBE,GAAI,CAC5B,MAAM8T,EAAsB,CAAA,EAC5BA,EAAEhU,EAAqBC,KAAO,CAC5B2D,KACG1C,OAAOgF,QAAQwJ,EAAM2D,UAAUzQ,IAAI,EAAE4B,EAAKsP,MAC3C,MAAMxH,EAA2B,CAAA,EAEjC,OADAA,EAAO9H,GAAOsP,EACPxH,KAGXoD,EAAM2D,SAAWW,EACjB,KACF,CACA,QACE,MAAUD,MAAM,kCAGpB7S,OAAOgF,QAAQtC,GAAW7C,QAAQ,EAAEyD,EAAKsP,MACnCpE,EAAM2D,SAAS7O,IACjB6I,EAAIiE,KACF,KAAK9M,4CAA8CkL,EAAM2D,SAAS7O,SAAWsP,KAEjFpE,EAAM2D,SAAS7O,GAAOsP,GAG5B,CAEA,GAAIvH,KAAK0H,kBAAkBzM,OAAQ,CACjCkI,EAAM9E,KAAO8E,EAAM9E,MAAQ,GAC3B8E,EAAM2D,SAAW3D,EAAM2D,UAAa,CAAA,EACpC,IAAK,MAAOa,EAAa9K,KAAcmD,KAAK0H,iBAAkB,CAC5D,MAAMZ,EAAWa,EACXC,EAAsC,CAAA,EAC5CA,EAAId,GAAYjK,EACfsG,EAAM9E,KAA0CvI,KAAK8R,GACjDzE,EAAM2D,SAASA,KAClB3D,EAAM2D,SAASA,GAAY,CAAA,EAC1B3D,EAAM2D,SAASA,GAAkD,IAChE,KAEN,CACF,CAEA,MAAMe,IAAuB7H,KAAKuG,kBAYlC,OAXIvG,KAAK8H,cACP3E,EAAMM,MAAQzD,KAAK8H,cACTD,IACV/G,EAAIiE,KACF,iEAEF5B,EAAMM,MTxQqB,KS2QzBzD,KAAK+H,iBAAgB5E,EAAMe,KAAOlE,KAAK+H,gBAEpC5E,CACT,CAUmB,aAAA6E,CAAcC,EAAarH,GAC5C,MAAMsH,EAAS5N,EAAMgH,GAAGtB,KAAK6G,cACvB1J,EAAO1D,EAASC,IACpBsG,KAAK6G,aACLpN,EAASxB,IAAI+M,EAAO3S,GAAI6V,KACvB/K,KAEH,GAAI8K,EAAO9V,EAAYE,IAAK,CAC1B,MAAM,IAAM8V,GAAWF,EAAO9V,EAAYE,IAAI+V,MAC5CjW,EAAYC,WAERgO,EAAK+H,EAAQpS,KAAK,KACxBkS,EAAOC,GAAU9C,EAASC,WAAWlI,EAAaiD,EACpD,CAEA,OAAOJ,KAAKT,QAAQ4F,OAClB8C,EACAjI,KAAK6G,aACLoB,EAAOC,QACPrN,EACA+F,EAEJ,CASS,SAAMwD,CAAOiE,KAAyBrT,GAC7C,MAAM4L,IAAEA,GAAQZ,KAAKe,OAAO/L,EAAMgL,KAAKoE,KACjCkE,EAAcD,GAAkB7B,cACtC,GAAK6B,GAAkBE,WAAaD,EAClC,OAAOtI,KAAKwI,iBAAoBF,EAAY1H,GAE9C,MAAMV,QAAuBF,KAAKT,QAAQ6E,IAAIiE,GAAU,EAAMzH,GACxD6H,EAAYvI,EAAQ7J,IAAKE,GAAMyJ,KAAKgI,cAAczR,EAAGqK,IAC3D,GAAIZ,KAAKuG,kBAAmB,CAC1B,MAAMmC,EAAe1I,KAAK2I,yBACxBF,EACAzI,KAAKuG,kBACL3F,GAGF,OADAZ,KAAKuG,uBAAoB1L,EAClB6N,CACT,CAEA,OAAK1I,KAAK+G,gBAAkB/G,KAAK4I,kBAAkB3N,OAC1C+E,KAAK6I,mBAAmBJ,GAG5BzI,KAAK+G,eAGH7G,QAFSF,KAAK8I,2BAA2BL,EAAW7H,EAG7D,CAqCU,kBAAA6F,GACR,GAAKzG,KAAK6G,aAAV,CAEA,GAAI7G,KAAK+I,YAAa,CACpB,MAAMxT,EAAmByK,KAAK+I,YAAZpK,GACZqK,EAAUhJ,KAAKiJ,0BAA0B,MAAO1T,GACtD,IAAKyT,EAAS,MAAMhJ,KAAKkJ,iBAAiB,MAAO3T,GACjD,MAAM4T,EAAYnJ,KAAKiJ,0BAA0B,QAAS1T,GAC1D,IAAK4T,EAAW,MAAMnJ,KAAKkJ,iBAAiB,QAAS3T,GACrD,MAAO,CACL8C,KAAM,MACN9C,YACA6T,cAAeJ,EAAQ/J,WACvBoK,gBAAiBF,EAAUlK,WAE/B,CAEA,QAA0C,IAA/Be,KAAKsJ,sBAAuC,CACrD,MAAM/T,EAAYyK,KAAKuJ,yBACrBvJ,KAAKsJ,uBAEDE,EAAOxJ,KAAKiJ,0BAA0B,WAAY1T,GACxD,IAAKiU,EAAM,MAAMxJ,KAAKkJ,iBAAiB,WAAY3T,GAEnD,OADAiU,EAAKC,eAAgB,EACdD,CACT,CAEA,QAAkC,IAAvBxJ,KAAK0J,cAA+B,CAC7C,MAAMnU,EAAYyK,KAAKuJ,yBAAyBvJ,KAAK0J,eAC/CF,EAAOxJ,KAAKiJ,0BAA0B,QAAS1T,GACrD,IAAKiU,EAAM,MAAMxJ,KAAKkJ,iBAAiB,QAAS3T,GAChD,OAAOiU,CACT,CAEA,GAAIxJ,KAAK2J,YAAa,CACpB,MAAMpU,EAAYyK,KAAKuJ,yBAAyBvJ,KAAK2J,aAC/CH,EAAOxJ,KAAKiJ,0BAA0B,MAAO1T,GACnD,IAAKiU,EAAM,MAAMxJ,KAAKkJ,iBAAiB,MAAO3T,GAC9C,OAAOiU,CACT,CAEA,GAAIxJ,KAAK4J,YAAa,CACpB,MAAMrU,EAAYyK,KAAKuJ,yBAAyBvJ,KAAK4J,aAC/CJ,EAAOxJ,KAAKiJ,0BAA0B,MAAO1T,GACnD,IAAKiU,EAAM,MAAMxJ,KAAKkJ,iBAAiB,MAAO3T,GAC9C,OAAOiU,CACT,CAEA,GAAIxJ,KAAK6J,YAAa,CACpB,MAAMtU,EAAYyK,KAAKuJ,yBAAyBvJ,KAAK6J,aAC/CL,EAAOxJ,KAAKiJ,0BAA0B,MAAO1T,GACnD,IAAKiU,EAAM,MAAMxJ,KAAKkJ,iBAAiB,MAAO3T,GAC9C,OAAOiU,CACT,CAEA,GAAIxJ,KAAK8J,iBAAkB,CACzB,MAAMvU,EAAYyK,KAAKuJ,yBAAyBvJ,KAAK8J,kBAC/CN,EAAOxJ,KAAKiJ,0BAA0B,WAAY1T,GACxD,IAAKiU,EAAM,MAAMxJ,KAAKkJ,iBAAiB,WAAY3T,GACnD,OAAOiU,CACT,CA3DwC,CA8D1C,CAEU,yBAAAP,CACR5Q,EACA9C,GAEA,IAAKyK,KAAK6G,aAAc,OACxB,MAAMkD,EAAQrR,EAAiBsH,KAAK6G,aAAcxO,EAAM9C,GACxD,IAAKwU,EAAM9O,OAAQ,OACnB,MAAM3C,EAAOyR,EAAM,GACbvU,EAAY8E,EAAM9E,UAAUwK,KAAK6G,cACjCpO,EAAWL,EAAiB5C,EAAW8C,EAAK/C,UAAW8C,EAAMC,GAC7D3B,EAAO2B,EAAK3B,MAAQ6B,EAAsBhD,EAAWiD,GACrDuR,EAA+B,CACnCjO,YAAwBlB,IAAhBvC,EAAKyD,SAA+BzD,EAAKuD,YAGnD,MADa,aAATxD,GAAgC,YAATA,IAAoB2R,EAAQC,OAAQ,GACxD,CACL5R,OACAC,OACA2G,WAAY,CACVtI,OACAiC,KAAMH,EACNuR,WAGN,CAEU,oBAAArD,CACR6C,GAEA,MAAO,CACL1C,SAAU,CAAA,EACVyB,WAAW,EACX/B,cAAegD,EAEnB,CAEU,0BAAA9C,GACR,QAAS1G,KAAKgH,cAChB,CAEU,sBAAMwB,CACdgB,EACA5I,GAEA,IAAKZ,KAAKkK,gBAAgBV,GACxB,OAAOxJ,KAAKmK,cAAiBX,EAAM5I,GAErC,MAAMwJ,EAAepK,KAAKqK,kBACpBC,EAAWd,EACXe,QAAiBH,EAAaxR,KAClC0R,EAASrL,WAAWtI,KACpB2T,EAASrL,WAAWrG,KACpB0R,EAASrL,WAAW+K,QACpBpJ,GAEF,OAAOZ,KAAKwK,oBAAuBhB,EAAMe,EAC3C,CAEU,mBAAMJ,CACdX,EACA5I,GAEA,GAAkB,QAAd4I,EAAKnR,KACP,MAAM,IAAIsN,EAAW,mCACvB,MAAO8E,EAASC,GAAa,CAAClB,EAAKJ,cAAeI,EAAKH,iBACjDe,EAAepK,KAAKqK,mBACnBM,EAAaC,SAAuB5I,QAAQS,IAAI,CACrD2H,EAAaxR,KACX6R,EAAQ9T,KACR8T,EAAQ7R,KACR6R,EAAQT,QACRpJ,GAEFwJ,EAAaxR,KACX8R,EAAU/T,KACV+T,EAAU9R,KACV8R,EAAUV,QACVpJ,KAGE3H,EAAM0R,EAAYE,OAAO,IAAI9V,OAAS,EACtCgE,EAAQ6R,EAAcC,OAAO,IAAI9V,OAAS,EAChD,OAAKgE,EACGE,EAAMF,EADK,CAErB,CAEU,wBAAA4P,CACR/D,EACA4E,EAEA5I,GAEA,IAAKZ,KAAK6G,aACR,MAAM,IAAIlB,EAAW,8CACvB,GAAkB,QAAd6D,EAAKnR,KACP,OAAO2H,KAAK8K,eAAkBlG,EAAM4E,EAAKjU,WAG3C,GAAkB,YAAdiU,EAAKnR,KACP,OAAO2H,KAAK+K,eAAkBnG,EAAM4E,EAAKlR,KAAK/C,WAGhD,MAAMA,EAAYiU,EAAKlR,KAAK/C,UAC5B,OAAQiU,EAAKnR,MACX,IAAK,QACH,OAAImR,EAAKC,cACAzJ,KAAKgL,qBAAwBpG,EAAMrP,GAErCyK,KAAKiL,aAAgBrG,EAAMrP,GAEpC,IAAK,WACH,OAAIiU,EAAKC,cACAzJ,KAAKgL,qBAAwBpG,EAAMrP,GAErCyK,KAAKkL,sBAAyBtG,EAAMrP,GAC7C,IAAK,MACH,OAAOyK,KAAKmL,WAAcvG,EAAMrP,GAClC,IAAK,MACH,OAAOyK,KAAKoL,cAAiBxG,EAAMrP,EAAW,OAChD,IAAK,MACH,OAAOyK,KAAKoL,cAAiBxG,EAAMrP,EAAW,OAChD,QACE,MAAM,IAAIoQ,EAAW,kCAAkC6D,EAAKnR,MAElE,CAEU,YAAA4S,CAAgBrG,EAAarP,GACrC,OAAKA,EACUyK,KAAKqL,cAAczG,EAAMrP,GAC1BwE,OAAQhF,GAAUA,SAC7BkG,OAHoB2J,EAAK3J,MAI9B,CAEU,oBAAA+P,CAAwBpG,EAAarP,GAC7C,MAAMsE,EAAStE,EACXyK,KAAKqL,cAAczG,EAAMrP,GAAWwE,OACjChF,GAAUA,SAEb6P,EACE0G,EAAO,IAAI7M,IAEjB,OADA5E,EAAOrF,QAASO,GAAUuW,EAAKC,IAAIzU,KAAKC,UAAUhC,KAC3CuW,EAAKlI,IACd,CAEU,qBAAA8H,CAAyBtG,EAAarP,GAC9C,IAAKA,EAAW,MAAO,GACvB,MAAMsE,EAASmG,KAAKqL,cAAczG,EAAMrP,GAClC+V,EAAO,IAAI7M,IACX+M,EAAgB,GAQtB,OAPA3R,EAAOrF,QAASO,IACd,MAAMkD,EAAMnB,KAAKC,UAAUhC,GACtBuW,EAAKG,IAAIxT,KACZqT,EAAKC,IAAItT,GACTuT,EAAO1V,KAAKf,MAGTyW,CACT,CAEU,UAAAL,CAAcvG,EAAarP,GACnC,OAAKA,EACUyK,KAAKqL,cAAczG,EAAMrP,GAAWwE,OAChDhF,GAAUA,SAEMgH,OACjB,CAAC2P,EAAK3W,IACJ2W,EAAM1L,KAAK2L,eAAe5W,EAAOQ,EAAW,iBAC9C,GAPqBqP,EAAK3J,MAU9B,CAEU,cAAA6P,CAAkBlG,EAAarP,GACvC,IAAKA,EAAW,OAAO,EACvB,MAAMsE,EAASmG,KAAKqL,cAAczG,EAAMrP,GAAWwE,OAChDhF,GAAUA,SAEb,OAAK8E,EAAOoB,OACApB,EAAOkC,OACjB,CAAC2P,EAAK3W,IACJ2W,EAAM1L,KAAK2L,eAAe5W,EAAOQ,EAAW,iBAC9C,GAEYsE,EAAOoB,OANM,CAO7B,CAEU,aAAAmQ,CACRxG,EACArP,EACA6F,GAEA,IAAK7F,EAAW,OAAO,KACvB,MAAMsE,EAASmG,KAAKqL,cAAczG,EAAMrP,GAAWwE,OAChDhF,GAAUA,SAEb,IAAI6W,EAAoB,KACpBC,EAAmC,KACvC,IAAK,MAAM9W,KAAS8E,EAAQ,CAC1B,MAAMiS,EAAa9L,KAAK+L,oBAAoBhX,GACzB,OAAf+W,IACsB,OAAtBD,GAMQ,QAATzQ,GAA+ByQ,EAAbC,GACT,QAAT1Q,GAAkB0Q,EAAaD,KAEhCA,EAAoBC,EACpBF,EAAe7W,IATf8W,EAAoBC,EACpBF,EAAe7W,GAUnB,CACA,OAAO6W,CACT,CAEU,cAAAb,CAAkBnG,EAAarP,GACvC,MAAMyW,EAAiC,CAAA,EACjCnS,EAASmG,KAAKqL,cAAczG,EAAMrP,GAMxC,OALAqP,EAAKpQ,QAAQ,CAACyX,EAAKvV,KACjB,MAAMuB,EAAM+H,KAAKkM,SAASrS,EAAOnD,IAC5BsV,EAAQ/T,KAAM+T,EAAQ/T,GAAO,IAClC+T,EAAQ/T,GAAKnC,KAAKmW,KAEbD,CACT,CAEU,kBAAAnD,CAAmBjE,GAC3B,IAAK5E,KAAK4I,kBAAkB3N,OAAQ,MAAO,CAAA,EAC3C,MAAM1F,EAAYyK,KAAKuJ,yBAAyBvJ,KAAK4I,iBAAiB,IACtE,IAAKrT,EAAW,MAAO,CAAA,EACvB,MAAMyW,EAAiC,CAAA,EAQvC,OAPApH,EAAKpQ,QAASyX,IACZ,MAAMhU,EAAM+H,KAAKkM,SACflM,KAAKmM,wBAAwB5W,EAAW0W,EAAI1W,KAEzCyW,EAAQ/T,KAAM+T,EAAQ/T,GAAO,IAClC+T,EAAQ/T,GAAKnC,KAAKmW,KAEbD,CACT,CAEU,aAAAX,CAAczG,EAAarP,GACnC,OAAOqP,EAAKvO,IAAK4V,IACf,GAAKA,GAAsB,iBAARA,EACnB,OAAOjM,KAAKmM,wBAAwB5W,EAAW0W,EAAI1W,KAEvD,CAEU,uBAAA4W,CAAwB5W,EAAmBR,GACnD,IAAKiL,KAAK6G,aAAc,OAAO9R,EAE/B,GAAsB,SADAiL,KAAKoM,iBAAiB7W,GACd,CAC5B,GAAIR,aAAiB8B,KAAM,OAAO9B,EAClC,MAAMsX,EAAS,IAAIxV,KAAK9B,GACxB,IAAKsP,OAAOiI,MAAMD,EAAOE,WAAY,OAAOF,CAC9C,CACA,GAAqB,iBAAVtX,GAAsBQ,EAAUqJ,cAAc4N,SAAS,QAAS,CACzE,MAAMH,EAAS,IAAIxV,KAAK9B,GACxB,IAAKsP,OAAOiI,MAAMD,EAAOE,WAAY,OAAOF,CAC9C,CACA,OAAOtX,CACT,CAEU,gBAAAqX,CAAiB7W,GACzB,IAAKA,IAAcyK,KAAK6G,aAAc,OACtC,GAAI7G,KAAKoG,mBAAmBqF,IAAIlW,GAC9B,OAAOyK,KAAKoG,mBAAmB1M,IAAInE,GAErC,MAAMkX,EACJhT,EAAS0D,KAAK6C,KAAK6G,aAActR,IAChCkE,EAAiBiT,qBAAqB1M,KAAK6G,aAActR,IACtDoX,WACAb,EAAa9L,KAAK4M,kBAAkBH,GAE1C,OADAzM,KAAKoG,mBAAmByG,IAAItX,EAAWuW,GAChCA,CACT,CAEU,iBAAAc,CAAkBH,GAC1B,GAAKA,EACL,MAAwB,iBAAbA,EAA8BA,EAAS7N,cAC1B,mBAAb6N,GAA2BA,EAAShW,KACtCgW,EAAShW,KAAKmI,mBADvB,CAGF,CAEU,mBAAAmN,CAAoBhX,GAC5B,MAAqB,iBAAVA,EAA2BA,EACjB,iBAAVA,EAA2BsP,OAAOtP,GACzCA,aAAiB8B,KAAa9B,EAAMwX,UACnB,iBAAVxX,GAAuBuX,MAAMjI,OAAOtP,IAExC,KADEsP,OAAOtP,EAElB,CAEU,QAAAmX,CAASnX,GACjB,QAAc8F,IAAV9F,EAAqB,MAAO,YAChC,GAAc,OAAVA,EAAgB,MAAO,OAC3B,GAAqB,iBAAVA,EAAoB,OAAOA,EAAM0F,WAC5C,GAAqB,iBAAV1F,EACT,IACE,OAAO+B,KAAKC,UAAUhC,EACxB,CAAE,MACA,OAAcA,EAAP4J,EACT,CAEF,OAAc5J,EAAP4J,EACT,CAEU,cAAAgN,CAAe5W,EAAYgG,EAAe+R,GAClD,GAAqB,iBAAV/X,EAAoB,OAAOA,EACtC,GAAqB,iBAAVA,EAAoB,OAAOsP,OAAOtP,GAC7C,GAAIA,aAAiB8B,KAAM,OAAO9B,EAAMwX,UACxC,GAAqB,iBAAVxX,IAAuBuX,MAAMjI,OAAOtP,IAC7C,OAAOsP,OAAOtP,GAChB,MAAM,IAAI4Q,EACR,GAAGmH,SAAe/R,8CAAkDhG,IAExE,CAEU,qBAAAgY,CACRxX,EACAR,GAEA,OAAKQ,EACEyK,KAAKmM,wBAAwB5W,EAAWR,GADxBA,CAEzB,CAEU,wBAAAwU,CACRzC,GAEA,GAAgB,MAAZA,EACJ,OAAcA,EAAPnI,EACT,CAEU,gBAAAuK,CACR7Q,EACA9C,GAEA,MAAMyX,EAAYhN,KAAKiN,iBAAiB5U,GAClC6U,EAAQlN,KAAK6G,aACfvM,EAAM9E,UAAUwK,KAAK6G,cACrB,kBAEJ,OAAO,IAAIsG,EACT,GAAGH,uCAA+C3U,gBAF9B9C,EAAY,QAAQA,KAAe,gBAEyC2X,MAEpG,CAEU,gBAAAD,CAAiB5U,GAWzB,MAVoC,CAClCU,MAAO,SACPE,IAAK,OACLI,IAAK,OACLF,IAAK,OACLI,SAAU,YACVV,QAAS,WACTD,KAAM,QACNwU,IAAK,QAEI/U,IAAS,IAAIA,CAC1B,CAEU,mBAAAmS,CACRhB,EACAe,GAEA,GAAkB,QAAdf,EAAKnR,KACP,MAAM,IAAIsN,EACR,4DAEJ,MAAMkF,EAAON,EAASM,MAAQ,GACxBP,EAAWd,EACXlR,EAAOgS,EAAShS,KACtB,OAAIgS,EAASb,cACHoB,EAAK5P,QAAU,EAEH,aAAlBqP,EAASjS,MAAyC,YAAlBiS,EAASjS,KACpCwS,EAAKxU,IAAKgX,GACfrN,KAAK+M,sBACHzC,EAAShS,KAAK/C,UACd8X,EAAIpV,KAAOoV,EAAItY,QAIjBuD,EAAKuD,WACAgP,EAAKxU,IAAKgX,GAAQA,EAAItY,OAASsY,EAAIpB,KAAOoB,GAE9CxC,EAAK5P,OAGH+E,KAAK+M,sBACVzC,EAAShS,KAAK/C,UACdsV,EAAK,GAAG9V,OAAS8V,EAAK,GAAG5S,KAAO,MAJN,UAAlBqS,EAASjS,KAAmB,EAAI,IAM5C,CAEU,eAAA6R,CACRV,GAEA,MAAqB,QAAdA,EAAKnR,IACd,CAEU,eAAAgS,GACR,OAAOrK,KAAKT,OACd,CAEU,cAAA0H,CAAe5P,GAmBvB,MAAME,MAAEA,EAAKC,SAAEA,EAAQC,WAAEA,GAAeJ,EAMxC,GAAIG,IAAaI,EAAS0V,YAAa,CACrC,GAAqB,iBAAV/V,EACT,MAAM,IAAIoO,EAAW,0CACvB,GAA0B,iBAAflO,EACT,MAAM,IAAIkO,EAAW,4CACvB,MAAM4H,EAvyBH,CACLC,MAFiBC,EAwyBWhW,EAryB5BiW,IAAK9H,GAAwB6H,IAsyB3B,MAAO,CACL3G,SAAU,CACRvP,CAACA,GAAQ,CACPoW,KAA6BJ,EAAMC,MACnCI,IAA2BL,EAAMG,MAIzC,CAjzBJ,IAAqBD,EAjBC1Y,EAo0BlB,GAAIyC,IAAaI,EAASiW,UAAW,CACnC,GAAqB,iBAAVtW,EACT,MAAM,IAAIoO,EAAW,wCACvB,GAA0B,iBAAflO,EACT,MAAM,IAAIkO,EAAW,0CACvB,MAAO,CACLmB,SAAU,CACRvP,CAACA,GAAQ,CACPuW,QA50BU/Y,EA40BgC0C,EA30BpD1C,EAAMwD,QAAQ,sBAAuB,QA20BD,OAIlC,CAEA,GAAIf,IAAaI,EAASmW,QAAS,CACjC,MAAM3Y,EAAOmC,EACb,IAAKW,MAAMC,QAAQV,IAAqC,IAAtBA,EAAWwD,OAC3C,MAAM,IAAI0K,EAAW,mDACvB,MAAOtM,EAAKF,GAAO1B,EACbuW,EAA2B,CAAA,EAQjC,OAPAA,EAAU5Y,GAAQ,CAAA,EACjB4Y,EAAU5Y,GACTmQ,GAAmB3N,EAASzE,YAC1BkG,EACH2U,EAAU5Y,GACTmQ,GAAmB3N,EAASvE,aAC1B8F,EACG,CAAE2N,SAAUkH,EACrB,CAEA,IAAIC,EAAoB,CAAA,EACxB,IAGQ,IAFN,CAACnW,EAAcpE,IAAKoE,EAAcnE,GAAIiE,EAAStE,KAAK+T,QAClD7P,GAGFyW,EAAG1W,GAAmB,CAAA,EACrB0W,EAAG1W,GAAmCgO,GAAmB/N,IACxDC,OACG,GAAID,IAAaI,EAAStE,IAC/B2a,EAAKjO,KAAKiH,eAAe1P,GAAuBuP,SAChDmH,EAAG1I,GAAmB3N,EAAStE,MAAQ,CAAA,EACtC2a,EAAG1I,GAAmB3N,EAAStE,MAC7BiE,EAAuCA,OACtCE,MACC,CACL,MAAMyW,EAAWlO,KAAKiH,eAAe1P,GAAuBuP,SACtDqH,EAAWnO,KAAKiH,eAAexP,GAA4BqP,SACjEmH,EAhFF,EACEA,EACAG,EACAC,KAEA,MAAMtO,EAAqB,CAAE+G,SAAU,IAEvC,OADA/G,EAAO+G,SAASmH,GAAM,CAACG,EAAMC,GACtBtO,CACT,EAwEO2B,CAAM6D,GAAmB/N,GAAW0W,EAAKC,GAAKrH,QACrD,CAEA,MAAO,CAAEA,SAAUmH,EACrB,EC12BI,MAAgBK,WAIZC,EACR,WAAAjP,CAAsBkP,EAAaC,EAAiBC,GAClDlP,MAAMgP,EAAOC,EAASC,GACtB,CAAC1O,KAAKF,OAAQE,KAAKC,UAAWD,KAAKO,OAAQP,KAAKQ,WAAWhM,QAAS6F,IAClE,MAAM5D,EAAO4D,EAAE5D,KACfkY,EAAa3O,KAAM3F,EAAI2F,KAAavJ,EAAO,YAE/C,CASA,SAAAyP,CACEC,GAEA,OAAO,IAAIF,GAAiBjG,KAAMmG,EACpC,CAES,SAAAjD,CACPC,EACAC,EACAC,GAEA,OAAO,IAAIJ,GAAiBjD,KAAMmD,EAAOC,EAAMC,EACjD,CAOS,gBAAMuL,GACb,MAAMC,EAAgBN,EAAQrU,OAAO8F,KAAKyO,SAC1C,OAAOzO,KAAKtJ,SAASmY,EACvB,CAES,UAAAC,GAGP,OAAO1P,EACT,CAqDU,cAAAK,CACR9G,EACAoW,GAEA,OAAKA,GACLlQ,GAAYlG,EAAcoW,GACnBpW,GAFUA,CAGnB,CAUU,sBAAAqW,CACR9U,EACA+U,GAMA,OAJA/U,EAAO1F,QAAQ,CAAC6F,EAAGmI,KACjB3D,GAAYxE,EAAU4U,EAAKzM,IACpBnI,IAEFH,CACT,CAES,OAAAoJ,CACP3K,KACG3D,GAEH,MAAM8L,IAAEA,GAAQd,KAAKe,OAAO/L,EAAMgL,KAAKsD,SACjC8E,EAAQzP,EAAMuW,YACdnP,EAASpL,OAAOgF,QAAQyO,EAAMzP,OAAOoD,OACzC,CAACuL,GAA6BrP,EAAKsP,MACjC,QAAmB,IAARA,EAAqB,OAAOD,EACvC,MAAM6H,EAAqB7U,EAAM8U,WAC/BzW,EAAM2G,YACNrH,GAEF,GAAI+H,KAAKqP,WAAWF,GAClB,MAAM,IAAI5N,EAAc,iBAAiB4N,iBAG3C,OAFA5H,EAAMA,aAAe1Q,KAAO,IAAIA,KAAK0Q,GAAOA,EAC5CD,EAAM6H,GAAc5H,EACbD,GAET,CAAA,GAeF,OAbK3O,EAAc9C,EAAgBkJ,YAEjC+B,EAAIO,MACF,0CAA2C1I,EAAc9C,EAAgBkJ,WAE3EpK,OAAOC,eAAemL,EAAQlK,EAAgBkJ,SAAU,CACtDlK,YAAY,EACZK,UAAU,EACVJ,cAAc,EACdC,MAAQ4D,EAAc9C,EAAgBkJ,aAInC,CACLkJ,OAAQlI,EACRK,GAAIzH,EAAM2B,EAAMgH,GAAG3I,EAAM2G,cACzBgQ,UAAWlH,EAAMkH,UAErB,CAWU,YAAAC,CACRlM,EACAjD,EACAzH,KACG3D,GAEH,MAAM6L,QAAEA,GAAYb,KAAKe,OAAO/L,EAAMgL,KAAKuP,cACrC/Z,EAAY8E,EAAM9E,UAAU6N,GAC5B4E,EAA8B,CAAA,EAIpC,OAHAA,EAAO9V,EAAYK,OAASgD,EAC5ByS,EAAO9V,EAAYE,IAAM2N,KAAKwP,WAAWha,EAAW4K,GACpDzL,OAAO6O,OAAOyE,EAAQtP,GACf,CAAC0K,EAAOjD,EAAI6H,KAAWpH,EAChC,CA4BU,eAAA4O,CACRpM,EACA/C,EACApG,KACGlF,GAEH,MAAMQ,EAAY8E,EAAM9E,UAAU6N,GAClC,GAAI/C,EAAIrF,SAAWf,EAAOe,OACxB,MAAM,IAAIsG,EAAc,4CAC1B,MAAMV,QAAEA,GAAYb,KAAKe,OAAO/L,EAAMgL,KAAKyP,iBACrCC,EAAUpP,EAAIjK,IAAI,CAAC+J,EAAIrH,KAC3B,MAAMkP,EAA8B,CAAA,EAIpC,OAHAA,EAAO9V,EAAYK,OAASgD,EAC5ByS,EAAO9V,EAAYE,IAAM2N,KAAKwP,WAAWha,EAAW4K,GACpDzL,OAAO6O,OAAOyE,EAAQ/N,EAAOnB,IACtBkP,IAET,MAAO,CAAC5E,EAAO/C,EAAKoP,KAAY7O,EAClC,CA2BA,YAAAF,CACE0C,EACAjD,EACAzH,KACG3D,GAEH,MAAMQ,EAAY8E,EAAM9E,UAAU6N,IAC5BxC,QAAEA,GAAYb,KAAKe,OAAO/L,EAAMgL,KAAKW,cACrCsH,EAA8B,CAAA,EACpCA,EAAO9V,EAAYK,OAASgD,EAC5ByS,EAAO9V,EAAYE,IAAM2N,KAAKwP,WAAWha,EAAW4K,GACpD,MAAM2O,EAAMpW,EAAM9C,EAAgBkJ,UAClC,IAAKgQ,EACH,MAAM,IAAIxN,EACR,+CAA+CnB,GAInD,OAFAzL,OAAO6O,OAAOyE,EAAQtP,GACtBsP,EAAO9V,EAAYG,KAAOyc,EACnB,CAAC1L,EAAOjD,EAAI6H,KAAWpH,EAChC,CA4BU,eAAAuB,CACRiB,EACA/C,EACApG,KACGlF,GAEH,MAAMQ,EAAY8E,EAAM9E,UAAU6N,GAClC,GAAI/C,EAAIrF,SAAWf,EAAOe,OACxB,MAAM,IAAIsG,EAAc,4CAC1B,MAAMV,QAAEA,GAAYb,KAAKe,OAAO/L,EAAMgL,KAAKoC,iBACrCsN,EAAUpP,EAAIjK,IAAI,CAAC+J,EAAIrH,KAC3B,MAAMkP,EAA8B,CAAA,EACpCA,EAAO9V,EAAYK,OAASgD,EAC5ByS,EAAO9V,EAAYE,IAAM2N,KAAKwP,WAAWha,EAAW4K,GACpD,MAAM2O,EAAM7U,EAAOnB,GAAOlD,EAAgBkJ,UAC1C,IAAKgQ,EACH,MAAM,IAAIxN,EACR,+CAA+CnB,GAInD,OAFAzL,OAAO6O,OAAOyE,EAAQ/N,EAAOnB,IAC7BkP,EAAO9V,EAAYG,KAAOyc,EACnB9G,IAET,MAAO,CAAC5E,EAAO/C,EAAKoP,KAAY7O,EAClC,CAuBU,UAAA2O,CAAWha,EAAmB4K,GACtC,MAAO,CAAC5K,EAAW4K,GAAIrK,KAAK5D,EAAYC,UAC1C,CASA,UAAAud,CAAgCpS,EAAqBqS,GACnD,OAAOtB,GAAeqB,WAAWpS,EAAKqS,EACxC,CAQmB,UAAAP,CAAWja,GAC5B,QAASA,EAAKC,MAAMnD,EACtB,CA0DU,iBAAOyd,CACfpS,EACAqS,GAEA,GAAIrS,aAAewF,EAAW,OAAOxF,EACrC,IAAIuI,EAAe,GACnB,GAAmB,iBAARvI,EAAkB,CAE3B,GADAuI,EAAOvI,EACHuI,EAAKzQ,MAAM,kCACb,OAAO,IAAIwa,EAAc/J,GAC3B,GAAIA,EAAKzQ,MAAM,oBAAqB,OAAO,IAAIya,EAAchK,EAC/D,MAAYvI,EAAYuI,MACtBA,EAAQvI,EAAYuI,KACpB8J,EAASA,GAAUrS,EAAIwS,SACbxS,EAAYyS,YACtBlK,EAAQvI,EAAYyS,WACpBJ,EAASA,GAAUrS,EAAIwS,SAEvBjK,EAAOvI,EAAIwS,QAGb,OAAQjK,EAAKrL,YACX,IAAK,MACL,IAAK,MACL,IAAK,MACH,OAAO,IAAIoV,EAAcD,GAC3B,IAAK,MACH,OAAO,IAAIE,EAAcF,GAC3B,IAAK,MACH,OAAI9J,EAAKrL,WAAWpF,MAAM,sBACjB,IAAIyN,GAAWvF,GACjB,IAAIgE,EAAchE,GAC3B,QACE,OAAIuI,EAAKrL,WAAWpF,MAAM,iBACjB,IAAI4a,EAAgB1S,GACtB,IAAIgE,EAAchE,GAE/B,CAUA,kBAAOsB,CAA6BlG,EAAUmG,GAC5CD,GAAYlG,EAAOmG,EACrB,CASA,kBAAOE,CAA6BrG,GAClC,OAAOqG,GAAYrG,EACrB,CAQA,qBAAOwG,CAAgCxG,GACrCwG,GAAexG,EACjB,ECnkBI,SAAUE,GACdqX,EACAC,GAEA,IAAIC,EAA2B,CAAA,EAiB/B,OAhBIlY,MAAMC,QAAQ+X,GAChBE,EAAK3a,aAAeya,EACsB,iBAA1BA,EAChBE,EAAK3Z,KAAOyZ,EACHA,IACTE,EAAOF,GAEoB,iBAAlBC,EACTC,EAAK3Z,KAAO0Z,EACHA,IACTC,EAAOzb,OAAO6O,OAAO,CAAA,EAAI4M,EAAMD,SAEF,IAApBC,EAAKvU,aACduU,EAAKvU,YAAa,GAGbwU,EAAWnP,IAAItJ,EAASkB,UAC5BwX,OAAO,CACNtD,UAA4BuD,GACnBC,EAAmB5Y,EAASkB,SAAU,UAAWyX,GAE1Dvb,KAAM,CAACob,KAERzQ,OACL,CAEM,SAAU5G,GACd0X,EACAzG,GAEA,IAAIoG,EAAyB,CAAA,EAU7B,OATIK,aAA4B/Y,EAC9B0Y,EAAK/Y,UAAYoZ,EACoB,iBAArBA,GAAiCA,EACjDL,EAAOK,OAC8B,IAArBA,IAChBL,EAAKrb,MAAQ0b,GAEXzG,IAASoG,EAAOzb,OAAO6O,OAAO,CAAA,EAAI4M,EAAMpG,IAErCqG,EAAWnP,IAAItJ,EAASoB,OAC5BsX,OAAO,CACNtD,UAA0BuD,GACjBC,EAAmB5Y,EAASoB,MAAO,QAASuX,GAErDvb,KAAM,CAACob,KAERzQ,OACL,CAEM,SAAU1G,GACdyX,EACA1G,GAEA,IAAIoG,EAAyB,CAAA,EAQ7B,OAPIM,aAA8BhZ,EAChC0Y,EAAK/Y,UAAYqZ,EACRA,IACTN,EAAOM,GAEL1G,IAASoG,EAAOzb,OAAO6O,OAAO,CAAA,EAAI4M,EAAMpG,IAErCqG,EAAWnP,IAAItJ,EAASsB,KAC5BoX,OAAO,CACNtD,UAAwBuD,GACfC,EAAmB5Y,EAASsB,IAAK,MAAOqX,GAEjDvb,KAAM,CAACob,KAERzQ,OACL,CAEM,SAAUxG,GACduX,EACA1G,GAEA,IAAIoG,EAAyB,CAAA,EAQ7B,OAPIM,aAA8BhZ,EAChC0Y,EAAK/Y,UAAYqZ,EACRA,IACTN,EAAOM,GAEL1G,IAASoG,EAAOzb,OAAO6O,OAAO,CAAA,EAAI4M,EAAMpG,IAErCqG,EAAWnP,IAAItJ,EAASwB,KAC5BkX,OAAO,CACNtD,UAAwBuD,GACfC,EAAmB5Y,EAASwB,IAAK,MAAOmX,GAEjDvb,KAAM,CAACob,KAERzQ,OACL,CAEM,SAAUtG,GACdqX,EACA1G,GAEA,IAAIoG,EAAyB,CAAA,EAQ7B,OAPIM,aAA8BhZ,EAChC0Y,EAAK/Y,UAAYqZ,EACRA,IACTN,EAAOM,GAEL1G,IAASoG,EAAOzb,OAAO6O,OAAO,CAAA,EAAI4M,EAAMpG,IAErCqG,EAAWnP,IAAItJ,EAAS0B,KAC5BgX,OAAO,CACNtD,UAAwBuD,GACfC,EAAmB5Y,EAAS0B,IAAK,MAAOiX,GAEjDvb,KAAM,CAACob,KAERzQ,OACL,CAEM,SAAUpG,GACdmX,EACA1G,GAEA,IAAIoG,EAAyB,CAAA,EAQ7B,OAPIM,aAA8BhZ,EAChC0Y,EAAK/Y,UAAYqZ,EACRA,IACTN,EAAOM,GAEL1G,IAASoG,EAAOzb,OAAO6O,OAAO,CAAA,EAAI4M,EAAMpG,IAErCqG,EAAWnP,IAAItJ,EAAS4B,UAC5B8W,OAAO,CACNtD,UAA6BuD,GACpBC,EAAmB5Y,EAAS4B,SAAU,WAAY+W,GAE3Dvb,KAAM,CAACob,KAERzQ,OACL,CDpDEgR,EAAA,CADCC,oFAGE3K,KAEFqI,GAAAuC,UAAA,YAAA,MA6ESF,EAAA,CADTC,oGAQAtC,GAAAuC,UAAA,iBAAA,MAUSF,EAAA,CADTC,iGAUAtC,GAAAuC,UAAA,yBAAA,MAoDSF,EAAA,CADTC,iHAcAtC,GAAAuC,UAAA,eAAA,MA4BSF,EAAA,CADTC,gHAmBAtC,GAAAuC,UAAA,kBAAA,MA2BDF,EAAA,CADCC,kHAoBAtC,GAAAuC,UAAA,eAAA,MA4BSF,EAAA,CADTC,gHAyBAtC,GAAAuC,UAAA,kBAAA,MEhYI,MAAMC,GAAU,cAOVC,GAAe,cAE5BtX,EAASuX,gBAAgBD,GAAcD"}
|
|
1
|
+
{"version":3,"file":"for-couchdb.js","sources":["../src/constants.ts","../src/query/constants.ts","../src/utils.ts","../src/views/generator.ts","../src/indexes/generator.ts","../src/metadata.ts","../src/repository.ts","../src/errors.ts","../src/query/Paginator.ts","../src/query/translate.ts","../src/query/Statement.ts","../src/adapter.ts","../src/decorators.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["reservedAttributes","CouchDBKeys","SEPARATOR","ID","REV","DELETED","TABLE","SEQUENCE","DDOC","NATIVE","INDEX","VIEW","CouchDBQueryLimit","CouchDBOperator","EQUAL","DIFFERENT","BIGGER","BIGGER_EQ","SMALLER","SMALLER_EQ","NOT","IN","REGEXP","CouchDBGroupOperator","AND","OR","CouchDBConst","NULL","async","reAuth","con","user","pass","auth","wrapDocumentScope","dbName","db","use","forEach","k","original","Object","defineProperty","enumerable","configurable","value","args","call","writable","testReservedAttributes","attr","match","generateIndexName","attribute","tableName","compositions","order","separator","DefaultSeparator","PersistenceKeys","push","join","generateIndexDoc","partialFilterSelector","fields","orderProp","sortedCompositions","map","c","r","sortedTable","name","index","ddoc","toJsLiteral","Date","JSON","stringify","toISOString","RegExp","source","flags","conditionToJs","condition","docVar","attr1","operator","comparison","Condition","left","Operator","right","GroupOperator","attrExpr","normalizeKey","key","Array","isArray","generateViewName","kind","meta","replace","generateDesignDocName","viewName","findViewMetadata","model","view","groupBy","GROUP_BY","count","COUNT","sum","SUM","max","MAX","min","MIN","distinct","DISTINCT","Metadata","get","entries","flatMap","values","entry","filter","collectViewMetadata","generateViews","models","viewDocs","viewKeys","m","Model","ddocId","viewDef","toString","guards","resolved","from","undefined","authGuard","field","roles","length","expression","listExpr","mode","buildAuthGuard","guard","emitKey","keys","buildEmitKey","emitValue","v","buildEmitValue","returnDocs","buildMapFunction","reduce","defaultReduce","normalizeViewMetadata","_id","language","views","generateViewIndexes","indexes","slice","directions","OrderDirection","ASC","DSC","baseIndex","direction","dirIndex","viewIndexDefinition","concat","n","generateIndexes","type","modelTableName","defaultQueryAttrs","defaultQueryAttributes","err","baseName","defaultFilter","$eq","partial_filter_selector","sortedName","ind","metadataEntries","metadataValue","candidate","fieldKey","fieldKeys","tableFilter","generate","sort","suffix","baseFields","sortField","Set","dir","String","toLowerCase","setMetadata","metadata","METADATA","getMetadata","descriptor","getOwnPropertyDescriptor","removeMetadata","CouchDBRepository","Repository","constructor","adapter","force","super","assignMetadata","target","apply","instance","carrier","create","result","this","createAll","results","read","id","readAll","ids","update","updateAll","delete","deleteAll","updatePrefix","ctx","ctxArgs","log","logCtx","OperationKeys","UPDATE","for","ignoreHandlers","ignoreValidate","silly","pk","InternalError","oldModel","oldMetadata","merge","class","enforceDBDecorators","ON","propsToIgnore","errors","Promise","resolve","hasErrors","ValidationError","updateAllPrefix","BulkCrudOperationKeys","UPDATE_ALL","oldModels","i","all","ignoredProps","modelsValidation","errorMessages","reduceErrorsToPrint","IndexError","BaseError","msg","CouchDBPaginator","Paginator","query","size","clazz","prepare","rawStatement","assign","limit","page","bookmark","isPreparedStatement","pagePrepared","statement","_recordCount","_totalPages","validatePage","skip","countResults","raw","Number","MAX_SAFE_INTEGER","Math","ceil","_bookmark","PagingError","rawResult","docs","nextBookmark","warning","warn","DBKeys","pageResults","d","revert","Sequence","parseValue","_currentPage","translateOperators","operators","el","find","QueryError","nextLexicographicString","chars","code","codePointAt","fromCodePoint","CouchDBStatement","Statement","overrides","attributeTypeCache","Map","build","manualAggregation","aggregateInfo","buildAggregateInfo","shouldUseManualAggregation","createAggregateQuery","selectors","fromSelector","selector","selectSelector","whereCondition","parseCondition","and","eq","selectorKeys","indexOf","accum","val","Error","s","orderBySelectors","selectorKey","rec","hasManualAggregate","limitSelector","offsetSelector","processRecord","record","pkAttr","keyArgs","split","rawInput","aggregator","aggregate","executeAggregate","processed","manualResult","executeManualAggregation","groupBySelectors","groupSelectResults","applyAfterHandlersToResult","avgSelector","sumInfo","createAggregateDescriptor","missingDecorator","countInfo","sumDescriptor","countDescriptor","countDistinctSelector","resolveSelectorAttribute","info","countDistinct","countSelector","maxSelector","minSelector","sumSelector","distinctSelector","metas","options","group","isViewAggregate","handleAverage","couchAdapter","getCouchAdapter","viewInfo","response","processViewResponse","sumDesc","countDesc","sumResponse","countResponse","rows","computeAverage","computeGroupBy","computeDistinctCount","computeCount","computeDistinctValues","computeSum","computeMinMax","collectValues","seen","add","unique","has","acc","toNumericValue","currentValue","currentComparable","normalized","normalizeComparable","grouped","doc","groupKey","convertValueByAttribute","getAttributeType","parsed","isNaN","getTime","includes","metaType","getPropDesignTypes","designType","normalizeMetaType","set","context","convertAggregateValue","decorator","decoratorForKind","table","UnsupportedError","avg","row","STARTS_WITH","range","start","prefix","end","$gte","$lt","ENDS_WITH","$regex","BETWEEN","opBetween","op","op1","op2","obj1","obj2","CouchDBAdapter","Adapter","scope","flavour","alias","prefixMethod","initialize","managedModels","repository","rev","assignMultipleMetadata","revs","segregate","mappedProp","columnName","isReserved","transient","createPrefix","generateId","createAllPrefix","records","parseError","reason","ConflictError","NotFoundError","message","statusCode","ConnectionError","compositionsOrOptions","nameOrOptions","opts","Decoration","define","o","applyViewDecorator","valueOrCondition","conditionOrOptions","__decorate","final","prototype","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ export * from "./views";
|
|
|
19
19
|
* @summary The version string of the for-couchdb package
|
|
20
20
|
* @const VERSION
|
|
21
21
|
*/
|
|
22
|
-
export declare const VERSION = "0.5.
|
|
22
|
+
export declare const VERSION = "0.5.1";
|
|
23
23
|
/**
|
|
24
24
|
* @description Stores the current package name
|
|
25
25
|
* @summary The version string of the for-couchdb package
|
package/lib/esm/index.js
CHANGED
|
@@ -20,7 +20,7 @@ export * from "./views/index.js";
|
|
|
20
20
|
* @summary The version string of the for-couchdb package
|
|
21
21
|
* @const VERSION
|
|
22
22
|
*/
|
|
23
|
-
export const VERSION = "0.5.
|
|
23
|
+
export const VERSION = "0.5.1";
|
|
24
24
|
/**
|
|
25
25
|
* @description Stores the current package name
|
|
26
26
|
* @summary The version string of the for-couchdb package
|
package/lib/esm/repository.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import type { CouchDBAdapter } from "./adapter";
|
|
|
5
5
|
import { ContextOf } from "@decaf-ts/core";
|
|
6
6
|
import type { PrimaryKeyType } from "@decaf-ts/db-decorators";
|
|
7
7
|
export declare class CouchDBRepository<M extends Model, A extends CouchDBAdapter<any, any, any>> extends Repository<M, A> {
|
|
8
|
-
constructor(adapter: A, model: Constructor<M
|
|
8
|
+
constructor(adapter: A, model: Constructor<M>, force?: boolean);
|
|
9
9
|
protected assignMetadata(model: M, source?: M): M;
|
|
10
10
|
protected assignMetadata(models: M[], source?: M[]): M[];
|
|
11
11
|
create(model: M, ...args: MaybeContextualArg<ContextOf<A>>): Promise<M>;
|
package/lib/esm/repository.js
CHANGED
|
@@ -3,8 +3,8 @@ import { Model } from "@decaf-ts/decorator-validation";
|
|
|
3
3
|
import { getMetadata, setMetadata } from "./metadata.js";
|
|
4
4
|
import { enforceDBDecorators, reduceErrorsToPrint, InternalError, OperationKeys, ValidationError, BulkCrudOperationKeys, } from "@decaf-ts/db-decorators";
|
|
5
5
|
export class CouchDBRepository extends Repository {
|
|
6
|
-
constructor(adapter, model) {
|
|
7
|
-
super(adapter, model);
|
|
6
|
+
constructor(adapter, model, force = false) {
|
|
7
|
+
super(adapter, model, force);
|
|
8
8
|
}
|
|
9
9
|
assignMetadata(target, source) {
|
|
10
10
|
const apply = (instance, carrier) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAGvD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAmB;AAEtD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,eAAe,EACf,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAGjC,MAAM,OAAO,iBAGX,SAAQ,UAAgB;IACxB,YAAY,OAAU,EAAE,KAAqB;
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"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"}
|
package/lib/index.cjs
CHANGED
|
@@ -37,7 +37,7 @@ __exportStar(require("./views/index.cjs"), exports);
|
|
|
37
37
|
* @summary The version string of the for-couchdb package
|
|
38
38
|
* @const VERSION
|
|
39
39
|
*/
|
|
40
|
-
exports.VERSION = "0.5.
|
|
40
|
+
exports.VERSION = "0.5.1";
|
|
41
41
|
/**
|
|
42
42
|
* @description Stores the current package name
|
|
43
43
|
* @summary The version string of the for-couchdb package
|
package/lib/index.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ export * from "./views";
|
|
|
19
19
|
* @summary The version string of the for-couchdb package
|
|
20
20
|
* @const VERSION
|
|
21
21
|
*/
|
|
22
|
-
export declare const VERSION = "0.5.
|
|
22
|
+
export declare const VERSION = "0.5.1";
|
|
23
23
|
/**
|
|
24
24
|
* @description Stores the current package name
|
|
25
25
|
* @summary The version string of the for-couchdb package
|
package/lib/repository.cjs
CHANGED
|
@@ -6,8 +6,8 @@ const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
|
6
6
|
const metadata_1 = require("./metadata.cjs");
|
|
7
7
|
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
8
8
|
class CouchDBRepository extends core_1.Repository {
|
|
9
|
-
constructor(adapter, model) {
|
|
10
|
-
super(adapter, model);
|
|
9
|
+
constructor(adapter, model, force = false) {
|
|
10
|
+
super(adapter, model, force);
|
|
11
11
|
}
|
|
12
12
|
assignMetadata(target, source) {
|
|
13
13
|
const apply = (instance, carrier) => {
|
package/lib/repository.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import type { CouchDBAdapter } from "./adapter";
|
|
|
5
5
|
import { ContextOf } from "@decaf-ts/core";
|
|
6
6
|
import type { PrimaryKeyType } from "@decaf-ts/db-decorators";
|
|
7
7
|
export declare class CouchDBRepository<M extends Model, A extends CouchDBAdapter<any, any, any>> extends Repository<M, A> {
|
|
8
|
-
constructor(adapter: A, model: Constructor<M
|
|
8
|
+
constructor(adapter: A, model: Constructor<M>, force?: boolean);
|
|
9
9
|
protected assignMetadata(model: M, source?: M): M;
|
|
10
10
|
protected assignMetadata(models: M[], source?: M[]): M[];
|
|
11
11
|
create(model: M, ...args: MaybeContextualArg<ContextOf<A>>): Promise<M>;
|
package/lib/repository.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":";;;AAAA,yCAAgE;AAChE,yEAAuD;AAGvD,6CAAsD;AAEtD,2DAOiC;AAGjC,MAAa,iBAGX,SAAQ,iBAAgB;IACxB,YAAY,OAAU,EAAE,KAAqB;
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decaf-ts/for-couchdb",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.2",
|
|
4
4
|
"description": "decaf-ts couchdb wrappers",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"clean-publish": "npx clean-publish",
|
|
33
33
|
"drawings": "for FILE in workdocs/drawings/*.drawio; do echo \"converting $FILE to image...\" && docker run --rm -v $(pwd):/data rlespinasse/drawio-export --format png $FILE; done && cp -rf workdocs/drawings/export/* workdocs/resources/",
|
|
34
34
|
"uml": "cd workdocs/uml && for FILE in ./*.puml; do docker run --rm -v $(pwd):/work -w /work miy4/plantuml -DPLANTUML_LIMIT_SIZE=8192 -tpng $FILE; done && cd ../.. && cp -fr workdocs/uml/*.png workdocs/resources/",
|
|
35
|
-
"docs": "npx rimraf ./docs && mkdir docs && npx build
|
|
35
|
+
"docs": "npx rimraf ./docs && mkdir docs && npx decaf build --docs",
|
|
36
36
|
"publish-docs": "docker run -it --rm --user $(id -u):$(id -g) -v \"$(pwd)/workdocs/confluence:/content\" -e ATLASSIAN_API_TOKEN=$(cat .confluence-token) ghcr.io/markdown-confluence/publish:latest",
|
|
37
37
|
"docker:login": "echo $(cat .token) | docker login ghcr.io -u decaf --password-stdin",
|
|
38
38
|
"docker:build": "npm run docker:build-booter && npm run docker:build-couchdb",
|