@decaf-ts/for-couchdb 0.14.1 → 0.14.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.
@@ -1,2 +1,2 @@
1
- var e,t;e=this,t=function(e,t,r,o,n,i,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 f(e,t,n,i,a=o.DefaultSeparator){const s={};let l;if(s[c.TABLE]={},s[c.TABLE][u.EQUAL]=t,i){const t={};t[e]=i;const r=(n||[]).map(e=>{const t={};return t[e]=i,t}),o={};o[c.TABLE]=i,l=[t,...r,o]}else l=[e,...n||[],c.TABLE];const d=((e,t,n,i,a=o.DefaultSeparator)=>{const s=[r.PersistenceKeys.INDEX,t,e];return n&&s.push(...n),i&&s.push(i),s.join(a)})(e,t,n,i,a);return{index:{fields:l},ddoc:[d,c.DDOC].join(a),name:d}}function p(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 g(e,t){const{attr1:o,operator:n,comparison:i}=e;if(o instanceof r.Condition){const e=g(o,t);if(n===r.Operator.NOT)return`!(${e})`;const a=g(i,t);return n===r.GroupOperator.AND?`(${e} && ${a})`:n===r.GroupOperator.OR?`(${e} || ${a})`:e}const a=`${t}[${JSON.stringify(o)}]`;switch(n){case r.Operator.EQUAL:return`${a} === ${p(i)}`;case r.Operator.DIFFERENT:return`${a} !== ${p(i)}`;case r.Operator.BIGGER:return`${a} > ${p(i)}`;case r.Operator.BIGGER_EQ:return`${a} >= ${p(i)}`;case r.Operator.SMALLER:return`${a} < ${p(i)}`;case r.Operator.SMALLER_EQ:return`${a} <= ${p(i)}`;case r.Operator.IN:return`(${p(i)}).indexOf(${a}) !== -1`;case r.Operator.REGEXP:return`${i instanceof RegExp?p(i):`new RegExp(${JSON.stringify(i)})`}.test(${a})`;case r.Operator.NOT:return`!(${a} === ${p(i)})`;default:return"true"}}function h(e,t,r){return e?Array.isArray(e)?e:[e]:t?[t,...r||[]]:r||[]}function m(e,t,r,n,i=o.DefaultSeparator){return n.name?n.name:[e,t,r,"view"].join(i).replace(/\s+/g,"_")}function y(e,t,r=o.DefaultSeparator){return[e,t,c.DDOC].join(r)}function A(e,o,n){const i={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}[o];if(!i)return[];const a=t.Metadata.get(e,i)||{};return Object.entries(a).flatMap(([e,t])=>t&&"object"==typeof t?Object.values(t).map(t=>({...t,kind:o,attribute:t.attribute||e})).filter(e=>!n||e.attribute===n):[])}function O(e,r,o){const n=t.Metadata.get(e,r)||{};return Object.entries(n).flatMap(([e,t])=>t&&"object"==typeof t?Object.values(t).map(t=>{const r=t;return{...r,kind:o,attribute:r.attribute||e}}):[])}function b(e){const t={},o=[[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 i=n.Model.tableName(e);o.flatMap(([t,r])=>O(e,t,r)).forEach(e=>{const o=h(e.key,e.attribute,e.compositions);if(!o.length)return;const n=o[0],a=o.slice(1),s=e.directions||[r.OrderDirection.ASC,r.OrderDirection.DSC],c=f(n,i,a);t[c.name||""]=c,s.forEach(e=>{const r=f(n,i,a,e);t[r.name||""]=r})})}),Object.values(t)}function E(e,t,r,n=o.DefaultSeparator){return[...e.map(e=>e===c.TABLE?"table":e),...r||[],...t?[t]:[],c.INDEX].join(n)}function w(e,t,n=[],i,a=o.DefaultSeparator){return[e,t,...n,...i?[i]:[],r.PersistenceKeys.INDEX].join(a)}function S(e,t){Object.defineProperty(e,r.PersistenceKeys.METADATA,{enumerable:!1,configurable:!0,writable:!0,value:t})}function D(e){const t=Object.getOwnPropertyDescriptor(e,r.PersistenceKeys.METADATA);return t?t.value:void 0}function v(e){Object.getOwnPropertyDescriptor(e,r.PersistenceKeys.METADATA)&&delete e[r.PersistenceKeys.METADATA]}class x extends r.Repository{constructor(e,t,r=!1){super(e,t,r)}assignMetadata(e,t){const r=(e,t)=>{const r=D(t??e);return r&&S(e,r),e};return Array.isArray(e)?e.map((e,o)=>{const n=Array.isArray(t)?t[o]:t;return r(e,n)}):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:i,log:a}=(await this.logCtx(t,o.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 o.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?D(l):void 0,r.get("mergeForUpdate")&&(e=n.Model.merge(l,e,this.class))),s||await o.enforceDBDecorators(this,r,e,o.OperationKeys.UPDATE,o.OperationKeys.ON,l),!c){const t=r.get("ignoredValidationProperties")||[];a.silly("ignored validation properties: "+t);const n=await Promise.resolve(e.hasErrors(l,...t));if(n)throw new o.ValidationError(n.toString())}return d&&S(e,d),[e,...i,l]}async updateAllPrefix(e,...t){const{ctx:r,ctxArgs:i,log:a}=(await this.logCtx(t,o.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 o.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=n.Model.merge(l[t],e,this.class));const o=D(l[t]);return o&&S(e,o),e})),s||await Promise.all(e.map((e,t)=>o.enforceDBDecorators(this,r,e,o.OperationKeys.UPDATE,o.OperationKeys.ON,l?l[t]:void 0))),!c){const t=r.get("ignoredValidationProperties")||[];let n;a.silly("ignored validation properties: "+t),n=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 i=o.reduceErrorsToPrint(n);if(i)throw new o.ValidationError(i)}return[e,...i,l]}}class N extends o.BaseError{constructor(e){super(N.name,e,404)}}class T extends N{constructor(e,t,r){super(e),this.name="IndexPlanningError",this.suggestion=t,this.query=r}}class M extends r.Paginator{constructor(e,t,r,o){super(e,t,r,o),this._bookmarks=new Map}isValidBookmark(e){return"string"==typeof e&&e.length>0}prepare(e){const t=Object.assign({},e);return t.limit&&(this.limit=t.limit),t.limit=this.size,delete t.skip,t}async page(e=1,i,...a){const{log:s,ctxArgs:c,ctx:u}=this.adapter.logCtx([i,...a],this.page);if(this.isPreparedStatement())return await this.pagePrepared(e,...c);e=this.validatePage(e??1);const l=Object.assign({},this.statement);if(l.limit=this.size,1===e)this.isValidBookmark(i)?l.bookmark=i:delete l.bookmark;else{const t=i||this._bookmarks.get(e);if(!this.isValidBookmark(t))throw new r.PagingError("Random page access requires a cached CouchDB bookmark. Start at page 1 and page forward, or pass an explicit bookmark.");delete l.skip,l.bookmark=t}delete l.skip;const d=await this.adapter.raw(l,!1,...c),{docs:f,bookmark:p,warning:g}=d;if(g&&s.warn(g),d.execution_stats&&s.debug("Mango execution stats: "+JSON.stringify(d.execution_stats)),!this.clazz)throw new r.PagingError("No statement target defined");const h=n.Model.pk(this.clazz),m=t.Metadata.get(this.clazz,t.Metadata.key(o.DBKeys.ID,h))?.type,y=l.fields&&l.fields.length?f:f.map(e=>this.adapter.revert(e,this.clazz,r.Sequence.parseValue(m,e[h]),void 0,u));return this._bookmark=this.isValidBookmark(p)?p:void 0,this._currentPage=e,this.isValidBookmark(p)&&this._bookmarks.set(e+1,p),this.isValidBookmark(p)&&f.length>=this.size||(this._knownLastPage=e,this._totalPages=e,this._recordCount=(e-1)*this.size+f.length),y}}function _(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)}const C=new Set(["$or","$in","$regex","$nin","$not","$ne","$nor"]);function B(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function I(e){if("string"==typeof e)return{field:e};if(Array.isArray(e))return e.length?{field:e[0]+""}:void 0;const[t,o]=Object.entries(e||{})[0]||[];return t?{field:t,direction:((o||r.OrderDirection.ASC)+"").toLowerCase()}:void 0}function j(e){return(e.sort||[]).map(I).filter(Boolean).map(e=>e.field)}function $(e){return(e.sort||[]).map(I).find(Boolean)?.direction}function P(e={}){const t=new Set,r=e=>{if(e&&"object"==typeof e)if(Array.isArray(e))e.forEach(r);else if(Array.isArray(e[l.AND]))e[l.AND].forEach(r);else for(const[o,n]of Object.entries(e))o!==l.OR&&o!==l.AND?B(n)?Object.prototype.hasOwnProperty.call(n,u.EQUAL)&&t.add(o):t.add(o):r(n)};return r(e),t}function L(e={}){const t=new Set,r=e=>{if(e&&"object"==typeof e)if(Array.isArray(e))e.forEach(r);else if(Array.isArray(e[l.AND]))e[l.AND].forEach(r);else for(const[o,n]of Object.entries(e))o!==l.OR&&o!==l.AND?B(n)&&(Object.prototype.hasOwnProperty.call(n,u.BIGGER)||Object.prototype.hasOwnProperty.call(n,u.BIGGER_EQ)||Object.prototype.hasOwnProperty.call(n,u.SMALLER)||Object.prototype.hasOwnProperty.call(n,u.SMALLER_EQ))&&t.add(o):r(n)};return r(e),t}function k(e){const t=n.Model.tableName(e),o=[],i=E([c.TABLE]);o.push({name:i,ddoc:i,fields:[c.TABLE],source:"table"});let a=[];try{a=n.Model.defaultQueryAttributes(e)}catch{a=[]}for(const e of a){const n=E([t,e,"defaultQuery"]);o.push({name:n,ddoc:n,fields:[c.TABLE,e],source:"defaultQuery"});for(const n of[r.OrderDirection.ASC,r.OrderDirection.DSC]){const r=E([t,e,"defaultQuery"],n);o.push({name:r,ddoc:r,fields:[c.TABLE,e],direction:n,source:"defaultQuery"})}}const s=n.Model.indexes(e);return Object.entries(s||{}).forEach(([e,n])=>{Object.values(n||{}).forEach(n=>{if(!n||!B(n))return;const i=n,a=i.compositions||[],s=i.directions||[r.OrderDirection.ASC],u=[c.TABLE,e,...a],l=w(t,e,a);o.push({name:l,ddoc:l,fields:u,source:"index"});const d=Array.from(new Set(s.map(e=>(e+"").toLowerCase()))).filter(e=>e===r.OrderDirection.ASC||e===r.OrderDirection.DSC);for(const r of d){const n=w(t,e,a,r);o.push({name:n,ddoc:n,fields:u,direction:r,source:"index"})}})}),o}function V(e,t,r={}){if(t.use_index)return;const o=!1!==r.preserveDefaultQuery,n=k(e),i=P(t.selector),a=L(t.selector),s=j(t),u=$(t);i.add(c.TABLE);const l=n.map(e=>{if(e.direction&&u&&e.direction!==u)return;if(!e.fields.includes(c.TABLE))return;if(e.fields[0]!==c.TABLE)return;const t=e.fields.filter(e=>e!==c.TABLE),n=0===s.length||s.every(e=>t.includes(e)),l=s.some(e=>t.includes(e)),d=0===a.size||Array.from(a).every(e=>t.includes(e)),f=Array.from(a).some(e=>t.includes(e));if(r.requireSortCoverage&&s.length&&!n)return;const p=t.filter(e=>i.has(e)).length,g=t.filter(e=>a.has(e)).length,h=t.filter(e=>s.includes(e)).length;if(!p&&!g&&!h)return;let m=0;return"defaultQuery"===e.source&&o&&(m+=100),"index"===e.source&&(m+=50),m+=30*p,m+=25*g,m+=20*h,n&&s.length&&(m+=20),d&&a.size&&(m+=20),l&&(m+=5),f&&(m+=5),e.direction&&u&&(m+=10),{candidate:e,score:m}}).filter(Boolean);if(!l.length)return;l.sort((e,t)=>t.score!==e.score?t.score-e.score:e.candidate.fields.length-t.candidate.fields.length);const d=l[0].candidate;return{candidate:d,use_index:[d.ddoc,d.name]}}function R(e,t){const r=n.Model.tableName(e),o=e.name,i=Array.from(P(t.selector)),a=Array.from(L(t.selector)),s=j(t),u=$(t),l=[c.TABLE];for(const e of i)e===c.TABLE||l.includes(e)||l.push(e);for(const e of a)e===c.TABLE||l.includes(e)||l.push(e);for(const e of s)e===c.TABLE||l.includes(e)||l.push(e);return{tableName:r,modelName:o,equalityFields:i,rangeFields:a,sortFields:s,sortDirection:u,requiredFields:l}}function Q(e,t){const o=R(e,t),n=o.requiredFields.filter(e=>e!==c.TABLE);if(!n.length)throw new T("Cannot infer @index declaration for query with no model fields.",{modelName:o.modelName,tableName:o.tableName,attribute:"",compositions:[],directions:[],expectedName:"",expectedDdoc:"",expectedFields:[c.TABLE],decorator:""},t);const i=n[0],a=n.slice(1),s=o.sortDirection||r.OrderDirection.ASC,u=w(o.tableName,i,a,s),l=[{[c.TABLE]:s},{[i]:s},...a.map(e=>({[e]:s}))],d=["@index({",a.length?` compositions: ${JSON.stringify(a)},`:void 0," directions: "+JSON.stringify([s]),"})",i+"!: <type>;"].filter(Boolean).join("\n");return{attribute:i,compositions:a,directions:[s],name:u,ddoc:u,fields:l,decorator:d}}function q(e,t,r,o={}){if(!e||t.use_index)return;if(!1===o.forceNamedIndexes&&!o.requireIndex)return;const n=V(e,t,{preserveDefaultQuery:o.preserveDefaultQuery??!0,requireSortCoverage:o.requireSortCoverage??!1});if(n)return t.use_index=n.use_index,void r?.debug?.(`Attached Mango use_index=${JSON.stringify(n.use_index)} from ${n.candidate.source} metadata`);if(!o.requireIndex)return;const i=Q(e,t);throw new T(["No generated CouchDB index can satisfy this Mango query.\n","Model: "+e.name,"Table: "+G(e),"\nTo allow this query, declare the following index on the model attribute:\n",i.decorator,"\nThen regenerate/deploy indexes.\n\nExpected generated index:"," ddoc: "+i.ddoc," name: "+i.name," fields: "+JSON.stringify(i.fields)].join("\n"),{modelName:e.name,tableName:G(e),attribute:i.attribute,compositions:i.compositions,directions:i.directions,expectedName:i.name,expectedDdoc:i.ddoc,expectedFields:i.fields,decorator:i.decorator},t)}function G(e){return n.Model.tableName(e)}function U(e,t,r="selector"){if(e&&"object"==typeof e)if(Array.isArray(e))e.forEach((e,o)=>U(e,t,`${r}[${o}]`));else for(const[o,n]of Object.entries(e))C.has(o)&&t?.warn?.(`Mango query contains scan-prone operator ${o} at ${r}. This may bypass or weaken index usage and can produce slow queries.`),U(n,t,`${r}.${o}`)}function F(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 K 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 o={};o[c.TABLE]={},o[c.TABLE]=n.Model.tableName(this.fromSelector);const i={selector:o};if(this.selectSelector&&(i.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(r.Condition.and(this.whereCondition,r.Condition.attribute(c.TABLE).eq(i.selector[c.TABLE]))).selector,o=Object.keys(t);if(1===o.length&&-1!==Object.values(l).indexOf(o[0]))switch(o[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 o=r[0];return o===l.AND?e.push(...t[o]):e.push(t),e},[])],i.selector=t;break;case l.OR:{const e={};e[l.AND]=[t,...Object.entries(i.selector).map(([e,t])=>{const r={};return r[e]=t,r})],i.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach(([t,r])=>{i.selector[t]&&e.warn(`A ${t} query param is about to be overridden: ${i.selector[t]} by ${r}`),i.selector[t]=r})}if(this.orderBySelectors?.length){i.sort=i.sort||[],i.selector=i.selector||{};for(const[e,t]of this.orderBySelectors){const r=e,o={};o[r]=t,i.sort.push(o),i.selector[r]||(i.selector[r]={},i.selector[r][u.BIGGER]=null)}}const a=!!this.manualAggregation;return this.limitSelector?i.limit=this.limitSelector:a||(e.warn("No limit selector defined. Using default couchdb limit of 250"),i.limit=250),this.offsetSelector&&(i.skip=this.offsetSelector),this.attachDefaultQueryIndex(i),(this.overrides?.forceNamedIndexes??!0)&&q(this.fromSelector,i,e,{preserveDefaultQuery:!0,requireSortCoverage:!1,forceNamedIndexes:!0}),U(i.selector,e),i}attachDefaultQueryIndex(e){if(!this.fromSelector||e.use_index)return;const t=n.Model.tableName(this.fromSelector);let r=[];try{r=n.Model.defaultQueryAttributes(this.fromSelector)}catch{r=[]}if(!r.length)return;const o=this.collectStartsWithRangeAttrs(e.selector||{}),i=r.filter(e=>o.has(e));if(!i.length)return;const a=(Array.isArray(e.sort)?e.sort:[]).map(e=>Object.entries(e||{})[0]).find(e=>e&&i.includes(e[0])),s=E([t,a?.[0]||i[0],"defaultQuery"],a?.[1]||void 0);e.use_index=s}collectStartsWithRangeAttrs(e){const t=new Set,r=e=>{e&&"object"==typeof e&&(Array.isArray(e)?e.forEach(e=>r(e)):Object.entries(e).forEach(([e,o])=>{if(e!==l.AND&&e!==l.OR&&o&&"object"==typeof o&&!Array.isArray(o)){const r=Object.prototype.hasOwnProperty.call(o,u.BIGGER_EQ),n=Object.prototype.hasOwnProperty.call(o,u.SMALLER);r&&n&&t.add(e)}r(o)}))};return r(e),t}processRecord(e,i){const a=n.Model.pk(this.fromSelector),s=t.Metadata.get(this.fromSelector,t.Metadata.key(o.DBKeys.ID,a))?.type;if(e[c.ID]){const[,...t]=e[c.ID].split(c.SEPARATOR),o=t.join("_");e[a]=r.Sequence.parseValue(s,o)}return this.adapter.revert(e,this.fromSelector,e[a],void 0,i)}async raw(e,...t){const{ctx:r}=this.logCtx(t,this.raw),o=e?.aggregateInfo;if(e?.aggregate&&o)return this.executeAggregate(o,r);const n=await this.adapter.raw(e,!0,r),i=n.map(e=>this.processRecord(e,r));if(this.manualAggregation){const e=this.executeManualAggregation(i,this.manualAggregation,r);return this.manualAggregation=void 0,e}return!this.selectSelector&&this.groupBySelectors?.length?this.groupSelectResults(i):this.selectSelector?n:await this.applyAfterHandlersToResult(i,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=A(this.fromSelector,e,t);if(!r.length)return;const o=r[0],i=n.Model.tableName(this.fromSelector),a=m(i,o.attribute,e,o),s=o.ddoc||y(i,a),c={reduce:void 0!==o.reduce||!o.returnDocs};return"distinct"!==e&&"groupBy"!==e||(c.group=!0),{kind:e,meta:o,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(),o=e,n=await r.view(o.descriptor.ddoc,o.descriptor.view,o.descriptor.options,t);return this.processViewResponse(e,n)}async handleAverage(e,t){if("avg"!==e.kind)throw new r.QueryError("Average descriptor is not valid");const[o,n]=[e.sumDescriptor,e.countDescriptor],i=this.getCouchAdapter(),[a,s]=await Promise.all([i.view(o.ddoc,o.view,o.options,t),i.view(n.ddoc,n.view,n.options,t)]),c=a.rows?.[0]?.value??0,u=s.rows?.[0]?.value??0;return u?c/u:0}executeManualAggregation(e,t,o){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 n=t.meta.attribute;switch(t.kind){case"count":return t.countDistinct?this.computeDistinctCount(e,n):this.computeCount(e,n);case"distinct":return t.countDistinct?this.computeDistinctCount(e,n):this.computeDistinctValues(e,n);case"sum":return this.computeSum(e,n);case"min":return this.computeMinMax(e,n,"min");case"max":return this.computeMinMax(e,n,"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,o=new Set;return r.forEach(e=>o.add(JSON.stringify(e))),o.size}computeDistinctValues(e,t){if(!t)return[];const r=this.collectValues(e,t),o=new Set,n=[];return r.forEach(e=>{const t=JSON.stringify(e);o.has(t)||(o.add(t),n.push(e))}),n}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 o=this.collectValues(e,t).filter(e=>null!=e);let n=null,i=null;for(const e of o){const t=this.normalizeComparable(e);null!==t&&(null!==i?("min"===r&&i>t||"max"===r&&t>i)&&(i=t,n=e):(i=t,n=e))}return n}computeGroupBy(e,t){const r={},o=this.collectValues(e,t);return e.forEach((e,t)=>{const n=this.groupKey(o[t]);r[n]||(r[n]=[]),r[n].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 o=this.groupKey(this.convertValueByAttribute(t,e[t]));r[o]||(r[o]=[]),r[o].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,o=this.normalizeMetaType(r);return this.attributeTypeCache.set(e,o),o}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,o){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(`${o} 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 o=this.decoratorForKind(e),i=this.fromSelector?n.Model.tableName(this.fromSelector):"<unknown table>",a=t?` on "${t}"`:"";return new r.UnsupportedError(`${o} decorator is required for CouchDB ${e} aggregation${a} on table "${i}".`)}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 o=t.rows||[],n=e,i=n.meta;return n.countDistinct?o.length||0:"distinct"===n.kind||"groupBy"===n.kind?o.map(e=>this.convertAggregateValue(n.meta.attribute,e.key??e.value)):i.returnDocs?o.map(e=>e.value??e.doc??e):o.length?this.convertAggregateValue(n.meta.attribute,o[0].value??o[0].key??null):"count"===n.kind?0:null}isViewAggregate(e){return"avg"!==e.kind}getCouchAdapter(){return this.adapter}parseCondition(e){const{attr1:t,operator:o,comparison:n}=e;if(o===r.Operator.STARTS_WITH){if("string"!=typeof t)throw new r.QueryError("STARTS_WITH requires an attribute name");if("string"!=typeof n)throw new r.QueryError("STARTS_WITH requires a string comparison");const e={start:i=n,end:F(i)};return{selector:{[t]:{[u.BIGGER_EQ]:e.start,[u.SMALLER]:e.end}}}}var i,a;if(o===r.Operator.ENDS_WITH){if("string"!=typeof t)throw new r.QueryError("ENDS_WITH requires an attribute name");if("string"!=typeof n)throw new r.QueryError("ENDS_WITH requires a string comparison");return{selector:{[t]:{[u.REGEXP]:(a=n,a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"$")}}}}if(o===r.Operator.BETWEEN){const e=t;if(!Array.isArray(n)||2!==n.length)throw new r.QueryError("BETWEEN operator requires [min, max] comparison");const[o,i]=n,a={};return a[e]={},a[e][_(r.Operator.BIGGER_EQ)]=o,a[e][_(r.Operator.SMALLER_EQ)]=i,{selector:a}}let s={};if(-1===[r.GroupOperator.AND,r.GroupOperator.OR,r.Operator.NOT].indexOf(o))s[t]={},s[t][_(o)]=n;else if(o===r.Operator.NOT)s=this.parseCondition(t).selector,s[_(r.Operator.NOT)]={},s[_(r.Operator.NOT)][t.attr1]=n;else{const e=this.parseCondition(t).selector,r=this.parseCondition(n).selector;s=((e,t,r)=>{const o={selector:{}};return o.selector[e]=[t,r],o})(_(o),e,r).selector}return{selector:s}}}class J 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;o.prefixMethod(this,e,this[t+"Prefix"])})}Statement(e){return new K(this,e)}Paginator(e,t,r){return new M(this,e,t,r)}async initialize(){const e=r.Adapter.models(this.flavour);return this.index(...e)}repository(){return x}assignMetadata(e,t){return t?(S(e,t),e):e}assignMultipleMetadata(e,t){return e.forEach((e,r)=>(S(e,t[r]),e)),e}prepare(e,...t){const{log:i}=this.logCtx(t,this.prepare),a=e.segregate(),s=Object.entries(a.model).reduce((t,[r,i])=>{if(void 0===i)return t;const a=n.Model.columnName(e.constructor,r);if(this.isReserved(a))throw new o.InternalError(`Property name ${a} is reserved`);return i=i instanceof Date?new Date(i):i,t[a]=i,t},{});return e[r.PersistenceKeys.METADATA]&&(i.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[n.Model.pk(e.constructor)],transient:a.transient}}createPrefix(e,t,r,...o){const{ctxArgs:i}=this.logCtx(o,this.createPrefix),a=n.Model.tableName(e),s={};return s[c.TABLE]=a,s[c.ID]=this.generateId(a,t),Object.assign(s,r),[e,t,s,...i]}createAllPrefix(e,t,r,...i){const a=n.Model.tableName(e);if(t.length!==r.length)throw new o.InternalError("Ids and models must have the same length");const{ctxArgs:s}=this.logCtx(i,this.createAllPrefix),u=t.map((e,t)=>{const o={};return o[c.TABLE]=a,o[c.ID]=this.generateId(a,e),Object.assign(o,r[t]),o});return[e,t,u,...s]}updatePrefix(e,t,i,...a){const s=n.Model.tableName(e),{ctxArgs:u}=this.logCtx(a,this.updatePrefix),l={};l[c.TABLE]=s,l[c.ID]=this.generateId(s,t);const d=i[r.PersistenceKeys.METADATA];if(!d)throw new o.InternalError("No revision number found for record with id "+t);return Object.assign(l,i),l[c.REV]=d,[e,t,l,...u]}updateAllPrefix(e,t,i,...a){const s=n.Model.tableName(e);if(t.length!==i.length)throw new o.InternalError("Ids and models must have the same length");const{ctxArgs:u}=this.logCtx(a,this.updateAllPrefix),l=t.map((e,t)=>{const n={};n[c.TABLE]=s,n[c.ID]=this.generateId(s,e);const a=i[t][r.PersistenceKeys.METADATA];if(!a)throw new o.InternalError("No revision number found for record with id "+e);return Object.assign(n,i[t]),n[c.REV]=a,n});return[e,t,l,...u]}generateId(e,t){const r=c.SEPARATOR;return"string"==typeof t&&t.startsWith(`${e}${r}`)&&t.split(r).length>=2?t:`${e}${r}${t+""}`}parseError(e,t){return J.parseError(e,t)}isReserved(e){return!!e.match(s)}static parseError(e,t){if(e instanceof o.BaseError)return e;let n="";if("string"==typeof e){if(n=e,n.match(/already exist|update conflict/g))return new o.ConflictError(n);if(n.match(/missing|deleted/g))return new o.NotFoundError(n)}else e.code?(n=e.code,t=t||e.message):e.statusCode?(n=e.statusCode,t=t||e.message):n=e.message;switch(n.toString()){case"401":case"412":case"409":return new o.ConflictError(t);case"404":return new o.NotFoundError(t);case"400":return n.toString().match(/No\sindex\sexists/g)?new N(e):new o.InternalError(e);default:return n.toString().match(/ECONNREFUSED/g)?new r.ConnectionError(e):new o.InternalError(e)}}static setMetadata(e,t){S(e,t)}static getMetadata(e){return D(e)}static removeMetadata(e){v(e)}}i.__decorate([a.final(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[Object]),i.__metadata("design:returntype",K)],J.prototype,"Statement",null),i.__decorate([a.final(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[Object,String]),i.__metadata("design:returntype",Object)],J.prototype,"assignMetadata",null),i.__decorate([a.final(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[Array,Array]),i.__metadata("design:returntype",Array)],J.prototype,"assignMultipleMetadata",null),i.__decorate([a.final(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[Object,Object,Object,Object]),i.__metadata("design:returntype",Array)],J.prototype,"createPrefix",null),i.__decorate([a.final(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[Object,Array,Array,Object]),i.__metadata("design:returntype",void 0)],J.prototype,"createAllPrefix",null),i.__decorate([a.final(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[Object,Object,Object,Object]),i.__metadata("design:returntype",void 0)],J.prototype,"updatePrefix",null),i.__decorate([a.final(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[Object,Array,Array,Object]),i.__metadata("design:returntype",void 0)],J.prototype,"updateAllPrefix",null);const z="##VERSION##",W="##PACKAGE##";t.Metadata.registerLibrary(W,z),e.COMMIT="4a942a6",e.CouchDBAdapter=J,e.CouchDBConst={NULL:"null"},e.CouchDBGroupOperator=l,e.CouchDBKeys=c,e.CouchDBOperator=u,e.CouchDBPaginator=M,e.CouchDBQueryLimit=250,e.CouchDBRepository=x,e.CouchDBStatement=K,e.FULL_VERSION="0.14.0-4a942a6",e.IndexError=N,e.IndexPlanningError=T,e.PACKAGE_NAME=W,e.VERSION=z,e.attachGeneratedUseIndex=q,e.buildGeneratedIndexCandidates=e=>k(e),e.collectViewMetadata=O,e.count=(e,o)=>{let n={};return e instanceof r.Condition?n.condition=e:"object"==typeof e&&e?n=e:void 0!==e&&(n.value=e),o&&(n=Object.assign({},n,o)),t.Decoration.for(r.Operator.COUNT).define({decorator:e=>r.applyViewDecorator(r.Operator.COUNT,"count",e),args:[n]}).apply()},e.distinct=(e,o)=>{let n={};return e instanceof r.Condition?n.condition=e:e&&(n=e),o&&(n=Object.assign({},n,o)),t.Decoration.for(r.Operator.DISTINCT).define({decorator:e=>r.applyViewDecorator(r.Operator.DISTINCT,"distinct",e),args:[n]}).apply()},e.enableMangoExecutionStats=e=>{e.execution_stats=!0},e.ensureDeterministicSort=(e,t,o)=>{if(!e.sort?.length)return;if(j(e).includes(t))return;const n=o||$(e)||r.OrderDirection.ASC;e.sort=[...e.sort,{[t]:n}]},e.findGeneratedIndexCandidateByName=(e,t)=>k(e).find(e=>e.name===t||e.ddoc===t),e.findViewMetadata=A,e.generateDesignDocName=y,e.generateIndexDoc=f,e.generateIndexName=E,e.generateIndexes=e=>{const t=E([c.TABLE]),o={};return o[t]={index:{fields:[c.TABLE]},name:t,ddoc:t,type:"json"},e.forEach(e=>{const t=n.Model.tableName(e);let i=[];try{i=n.Model.defaultQueryAttributes(e)}catch(e){i=[]}i.forEach(e=>{const n=E([t,e,"defaultQuery"]),i={[c.TABLE]:{[u.EQUAL]:t}};o[n]={index:{fields:[c.TABLE,e]},name:n,ddoc:n,type:"json"},o[n].index.partial_filter_selector=i,[r.OrderDirection.ASC,r.OrderDirection.DSC].forEach(r=>{const n=E([t,e,"defaultQuery"],r);o[n]={index:{fields:[{[c.TABLE]:r},{[e]:r}]},name:n,ddoc:n,type:"json"}})});const a=n.Model.indexes(e);Object.entries(a).forEach(([e,n])=>{const i=[];Object.entries(n||{}).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&&i.push([e,t])}):i.push([e,r])}),i.forEach(([e,n])=>{if(!n)return;let{directions:i,compositions:a}=n;a=a||[];const s=[e,...a],l={[c.TABLE]:{[u.EQUAL]:t}};function d(r,n){const i=w(t,e,a,n),u=[c.TABLE,...s],d=r?[{[c.TABLE]:r},...s.map(e=>({[e]:r}))]:u;o[i]={index:{fields:d},name:i,ddoc:i,type:"json"},r||(o[i].index.partial_filter_selector=l)}d(),Array.from(new Set((i||[r.OrderDirection.ASC]).map(e=>(e+"").toLowerCase()))).filter(e=>e===r.OrderDirection.ASC||e===r.OrderDirection.DSC).forEach(e=>{d(e,e)})})})}),b(e).forEach(e=>{e.name&&(o[e.name]=e)}),Object.values(o)},e.generateModelIndexName=w,e.generateViewIndexes=b,e.generateViewName=m,e.generateViews=e=>{const t={},o=[[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 i=n.Model.tableName(e);o.flatMap(([t,r])=>O(e,t,r)).forEach(e=>{const o=e.attribute,n=m(i,o,e.kind,e),a="_design/"+(e.ddoc||y(i,n)),s=((e,t,o,n)=>{const i=((e,t,o)=>{if(o.map)return"function"==typeof o.map?o.map.toString():o.map;const n=[];if(n.push(`doc[${JSON.stringify(c.TABLE)}] === ${JSON.stringify(e)}`),o.condition)if(o.condition instanceof r.Condition)n.push(g(o.condition,"doc"));else if("string"==typeof o.condition)n.push(o.condition);else{const e=r.Condition.from(o.condition);n.push(g(e,"doc"))}"count"===o.kind&&void 0!==o.value&&n.push(`doc[${JSON.stringify(t)}] === ${p(o.value)}`);const i=((e,t="doc")=>{if(!e)return;if("string"==typeof e)return e;const r=e.field||"roles",o=e.roles||[];if(!o.length)return e.expression;const n=`${t}[${JSON.stringify(r)}] || []`;return"all"===(e.mode||"any")?o.map(e=>`${n}.indexOf(${JSON.stringify(e)}) !== -1`).join(" && "):o.map(e=>`${n}.indexOf(${JSON.stringify(e)}) !== -1`).join(" || ")})(o.auth,"doc");i&&n.push(i);const a=n.length?n.join(" && "):"true",s=((e,t,r)=>{const o=h(e,t,r);return 1===o.length?`doc[${JSON.stringify(o[0])}]`:`[${o.map(e=>`doc[${JSON.stringify(e)}]`).join(", ")}]`})(o.key,t,o.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)}]`:p(e):`doc[${JSON.stringify(t)}]`)(o.value??(o.returnDocs&&"sum"!==o.kind?"doc":void 0),t);return`function (doc) {\n if (!(${a})) return;\n emit(${s}, ${u});\n}`})(n,t,o),a=o.reduce?"function"==typeof o.reduce?o.reduce.toString():o.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:i,reduce:a}})(e.kind,o,e,i);t[a]||(t[a]={_id:a,language:"javascript",views:{}}),t[a].views[n]=s})}),Object.values(t)},e.getEqualitySelectorFields=P,e.getMetadata=D,e.getRangeSelectorFields=L,e.getRequiredMangoIndexShape=R,e.getSortDirection=$,e.getSortFields=j,e.groupBy=(e,o)=>{let n={};return Array.isArray(e)?n.compositions=e:"string"==typeof e?n.name=e:e&&(n=e),"string"==typeof o?n.name=o:o&&(n=Object.assign({},n,o)),void 0===n.returnDocs&&(n.returnDocs=!0),t.Decoration.for(r.Operator.GROUP_BY).define({decorator:e=>r.applyViewDecorator(r.Operator.GROUP_BY,"groupBy",e),args:[n]}).apply()},e.max=(e,o)=>{let n={};return e instanceof r.Condition?n.condition=e:e&&(n=e),o&&(n=Object.assign({},n,o)),t.Decoration.for(r.Operator.MAX).define({decorator:e=>r.applyViewDecorator(r.Operator.MAX,"max",e),args:[n]}).apply()},e.min=(e,o)=>{let n={};return e instanceof r.Condition?n.condition=e:e&&(n=e),o&&(n=Object.assign({},n,o)),t.Decoration.for(r.Operator.MIN).define({decorator:e=>r.applyViewDecorator(r.Operator.MIN,"min",e),args:[n]}).apply()},e.normalizeSortField=I,e.reAuth=d,e.removeMetadata=v,e.requireGeneratedUseIndex=(e,t,r,o={})=>{q(e,t,r,{preserveDefaultQuery:!0,requireSortCoverage:o.requireSortCoverage??!0,requireIndex:!0,forceNamedIndexes:!0})},e.reservedAttributes=s,e.resolveGeneratedIndexForQuery=V,e.reverseRequiredShapeToIndexDeclaration=Q,e.setMetadata=S,e.sum=(e,o)=>{let n={};return e instanceof r.Condition?n.condition=e:e&&(n=e),o&&(n=Object.assign({},n,o)),t.Decoration.for(r.Operator.SUM).define({decorator:e=>r.applyViewDecorator(r.Operator.SUM,"sum",e),args:[n]}).apply()},e.testReservedAttributes=e=>e.match(/^_.*$/g),e.translateOperators=_,e.viewIndexDefinition=e=>{const t=h(e.key,e.attribute);return{attribute:t[0],compositions:t.slice(1).concat(e.compositions||[]),directions:e.directions}},e.warnScanProneMangoOperators=U,e.wrapDocumentScope=(e,t,r,o)=>{const n=e.use?e.use(t):e;return["insert","get","put","destroy","find","view"].forEach(t=>{const i=n[t];Object.defineProperty(n,t,{enumerable:!1,configurable:!0,value:async(...t)=>(await d(e,r,o),i.call(n,...t))})}),Object.defineProperty(n,c.NATIVE,{enumerable:!1,configurable:!1,writable:!1,value:e}),n}},"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,o,n,i,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 f(e,t,n,i,a=o.DefaultSeparator){const s={};let l;if(s[c.TABLE]={},s[c.TABLE][u.EQUAL]=t,i){const t={};t[e]=i;const r=(n||[]).map(e=>{const t={};return t[e]=i,t}),o={};o[c.TABLE]=i,l=[t,...r,o]}else l=[e,...n||[],c.TABLE];const d=((e,t,n,i,a=o.DefaultSeparator)=>{const s=[r.PersistenceKeys.INDEX,t,e];return n&&s.push(...n),i&&s.push(i),s.join(a)})(e,t,n,i,a);return{index:{fields:l},ddoc:[d,c.DDOC].join(a),name:d}}function p(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 g(e,t){const{attr1:o,operator:n,comparison:i}=e;if(o instanceof r.Condition){const e=g(o,t);if(n===r.Operator.NOT)return`!(${e})`;const a=g(i,t);return n===r.GroupOperator.AND?`(${e} && ${a})`:n===r.GroupOperator.OR?`(${e} || ${a})`:e}const a=`${t}[${JSON.stringify(o)}]`;switch(n){case r.Operator.EQUAL:return`${a} === ${p(i)}`;case r.Operator.DIFFERENT:return`${a} !== ${p(i)}`;case r.Operator.BIGGER:return`${a} > ${p(i)}`;case r.Operator.BIGGER_EQ:return`${a} >= ${p(i)}`;case r.Operator.SMALLER:return`${a} < ${p(i)}`;case r.Operator.SMALLER_EQ:return`${a} <= ${p(i)}`;case r.Operator.IN:return`(${p(i)}).indexOf(${a}) !== -1`;case r.Operator.REGEXP:return`${i instanceof RegExp?p(i):`new RegExp(${JSON.stringify(i)})`}.test(${a})`;case r.Operator.NOT:return`!(${a} === ${p(i)})`;default:return"true"}}function h(e,t,r){return e?Array.isArray(e)?e:[e]:t?[t,...r||[]]:r||[]}function m(e,t,r,n,i=o.DefaultSeparator){return n.name?n.name:[e,t,r,"view"].join(i).replace(/\s+/g,"_")}function y(e,t,r=o.DefaultSeparator){return[e,t,c.DDOC].join(r)}function A(e,o,n){const i={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}[o];if(!i)return[];const a=t.Metadata.get(e,i)||{};return Object.entries(a).flatMap(([e,t])=>t&&"object"==typeof t?Object.values(t).map(t=>({...t,kind:o,attribute:t.attribute||e})).filter(e=>!n||e.attribute===n):[])}function O(e,r,o){const n=t.Metadata.get(e,r)||{};return Object.entries(n).flatMap(([e,t])=>t&&"object"==typeof t?Object.values(t).map(t=>{const r=t;return{...r,kind:o,attribute:r.attribute||e}}):[])}function b(e){const t={},o=[[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 i=n.Model.tableName(e);o.flatMap(([t,r])=>O(e,t,r)).forEach(e=>{const o=h(e.key,e.attribute,e.compositions);if(!o.length)return;const n=o[0],a=o.slice(1),s=e.directions||[r.OrderDirection.ASC,r.OrderDirection.DSC],c=f(n,i,a);t[c.name||""]=c,s.forEach(e=>{const r=f(n,i,a,e);t[r.name||""]=r})})}),Object.values(t)}function E(e,t,r,n=o.DefaultSeparator){return[...e.map(e=>e===c.TABLE?"table":e),...r||[],...t?[t]:[],c.INDEX].join(n)}function w(e,t,n=[],i,a=o.DefaultSeparator){return[e,t,...n,...i?[i]:[],r.PersistenceKeys.INDEX].join(a)}function S(e,t){Object.defineProperty(e,r.PersistenceKeys.METADATA,{enumerable:!1,configurable:!0,writable:!0,value:t})}function D(e){const t=Object.getOwnPropertyDescriptor(e,r.PersistenceKeys.METADATA);return t?t.value:void 0}function v(e){Object.getOwnPropertyDescriptor(e,r.PersistenceKeys.METADATA)&&delete e[r.PersistenceKeys.METADATA]}class x extends r.Repository{constructor(e,t,r=!1){super(e,t,r)}assignMetadata(e,t){const r=(e,t)=>{const r=D(t??e);return r&&S(e,r),e};return Array.isArray(e)?e.map((e,o)=>{const n=Array.isArray(t)?t[o]:t;return r(e,n)}):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:i,log:a}=(await this.logCtx(t,o.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 o.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?D(l):void 0,r.get("mergeForUpdate")&&(e=n.Model.merge(l,e,this.class))),s||await o.enforceDBDecorators(this,r,e,o.OperationKeys.UPDATE,o.OperationKeys.ON,l),!c){const t=r.get("ignoredValidationProperties")||[];a.silly("ignored validation properties: "+t);const n=await Promise.resolve(e.hasErrors(l,...t));if(n)throw new o.ValidationError(n.toString())}return d&&S(e,d),[e,...i,l]}async updateAllPrefix(e,...t){const{ctx:r,ctxArgs:i,log:a}=(await this.logCtx(t,o.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 o.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=n.Model.merge(l[t],e,this.class));const o=D(l[t]);return o&&S(e,o),e})),s||await Promise.all(e.map((e,t)=>o.enforceDBDecorators(this,r,e,o.OperationKeys.UPDATE,o.OperationKeys.ON,l?l[t]:void 0))),!c){const t=r.get("ignoredValidationProperties")||[];let n;a.silly("ignored validation properties: "+t),n=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 i=o.reduceErrorsToPrint(n);if(i)throw new o.ValidationError(i)}return[e,...i,l]}}class N extends o.BaseError{constructor(e){super(N.name,e,404)}}class T extends N{constructor(e,t,r){super(e),this.name="IndexPlanningError",this.suggestion=t,this.query=r}}class M extends r.Paginator{constructor(e,t,r,o){super(e,t,r,o),this._bookmarks=new Map}isValidBookmark(e){return"string"==typeof e&&e.length>0}prepare(e){const t=Object.assign({},e);return t.limit&&(this.limit=t.limit),t.limit=this.size,delete t.skip,t}async page(e=1,i,...a){const{log:s,ctxArgs:c,ctx:u}=this.adapter.logCtx([i,...a],this.page);if(this.isPreparedStatement())return await this.pagePrepared(e,...c);e=this.validatePage(e??1);const l=Object.assign({},this.statement);if(l.limit=this.size,1===e)this.isValidBookmark(i)?l.bookmark=i:delete l.bookmark;else{const t=i||this._bookmarks.get(e);if(!this.isValidBookmark(t))throw new r.PagingError("Random page access requires a cached CouchDB bookmark. Start at page 1 and page forward, or pass an explicit bookmark.");delete l.skip,l.bookmark=t}delete l.skip;const d=await this.adapter.raw(l,!1,...c),{docs:f,bookmark:p,warning:g}=d;if(g&&s.warn(g),d.execution_stats&&s.debug("Mango execution stats: "+JSON.stringify(d.execution_stats)),!this.clazz)throw new r.PagingError("No statement target defined");const h=n.Model.pk(this.clazz),m=t.Metadata.get(this.clazz,t.Metadata.key(o.DBKeys.ID,h))?.type,y=l.fields&&l.fields.length?f:f.map(e=>this.adapter.revert(e,this.clazz,r.Sequence.parseValue(m,e[h]),void 0,u));return this._bookmark=this.isValidBookmark(p)?p:void 0,this._currentPage=e,this.isValidBookmark(p)&&this._bookmarks.set(e+1,p),this.isValidBookmark(p)&&f.length>=this.size||(this._knownLastPage=e,this._totalPages=e,this._recordCount=(e-1)*this.size+f.length),y}}function _(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)}const C=new Set(["$or","$in","$regex","$nin","$not","$ne","$nor"]);function B(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function I(e,t){return!(!e||"object"!=typeof e)&&(Array.isArray(e)?e.some(e=>I(e,t)):Object.entries(e).some(([e,r])=>e===t||I(r,t)))}function j(e){if("string"==typeof e)return{field:e};if(Array.isArray(e))return e.length?{field:e[0]+""}:void 0;const[t,o]=Object.entries(e||{})[0]||[];return t?{field:t,direction:((o||r.OrderDirection.ASC)+"").toLowerCase()}:void 0}function $(e){return(e.sort||[]).map(j).filter(Boolean).map(e=>e.field)}function P(e){return(e.sort||[]).map(j).find(Boolean)?.direction}function L(e={}){const t=new Set,r=e=>{if(e&&"object"==typeof e)if(Array.isArray(e))e.forEach(r);else if(Array.isArray(e[l.AND]))e[l.AND].forEach(r);else for(const[o,n]of Object.entries(e))o!==l.OR&&o!==l.AND?B(n)?Object.prototype.hasOwnProperty.call(n,u.EQUAL)&&t.add(o):t.add(o):r(n)};return r(e),t}function k(e={}){const t=new Set,r=e=>{if(e&&"object"==typeof e)if(Array.isArray(e))e.forEach(r);else if(Array.isArray(e[l.AND]))e[l.AND].forEach(r);else for(const[o,n]of Object.entries(e))o!==l.OR&&o!==l.AND?B(n)&&(Object.prototype.hasOwnProperty.call(n,u.BIGGER)||Object.prototype.hasOwnProperty.call(n,u.BIGGER_EQ)||Object.prototype.hasOwnProperty.call(n,u.SMALLER)||Object.prototype.hasOwnProperty.call(n,u.SMALLER_EQ))&&t.add(o):r(n)};return r(e),t}function V(e){const t=n.Model.tableName(e),o=[],i=E([c.TABLE]);o.push({name:i,ddoc:i,fields:[c.TABLE],source:"table"});let a=[];try{a=n.Model.defaultQueryAttributes(e)}catch{a=[]}for(const e of a){const n=E([t,e,"defaultQuery"]);o.push({name:n,ddoc:n,fields:[c.TABLE,e],source:"defaultQuery"});for(const n of[r.OrderDirection.ASC,r.OrderDirection.DSC]){const r=E([t,e,"defaultQuery"],n);o.push({name:r,ddoc:r,fields:[c.TABLE,e],direction:n,source:"defaultQuery"})}}const s=n.Model.indexes(e);return Object.entries(s||{}).forEach(([e,n])=>{Object.values(n||{}).forEach(n=>{if(!n||!B(n))return;const i=n,a=i.compositions||[],s=i.directions||[r.OrderDirection.ASC],u=[c.TABLE,e,...a],l=w(t,e,a);o.push({name:l,ddoc:l,fields:u,source:"index"});const d=Array.from(new Set(s.map(e=>(e+"").toLowerCase()))).filter(e=>e===r.OrderDirection.ASC||e===r.OrderDirection.DSC);for(const r of d){const n=w(t,e,a,r);o.push({name:n,ddoc:n,fields:u,direction:r,source:"index"})}})}),o}function R(e,t,r={}){if(t.use_index)return;if(I(t.selector,l.OR)||I(t.selector,"$nor"))return;const o=!1!==r.preserveDefaultQuery,n=V(e),i=L(t.selector),a=k(t.selector),s=$(t),u=P(t);i.add(c.TABLE);const d=n.map(e=>{if(e.direction&&u&&e.direction!==u)return;if(!e.fields.includes(c.TABLE))return;if(e.fields[0]!==c.TABLE)return;const t=e.fields.filter(e=>e!==c.TABLE),n=0===s.length||s.every(e=>t.includes(e)),l=s.some(e=>t.includes(e)),d=0===a.size||Array.from(a).every(e=>t.includes(e)),f=Array.from(a).some(e=>t.includes(e));if(r.requireSortCoverage&&s.length&&!n)return;const p=t.filter(e=>i.has(e)).length,g=t.filter(e=>a.has(e)).length,h=t.filter(e=>s.includes(e)).length;if(!p&&!g&&!h)return;let m=0;return"defaultQuery"===e.source&&o&&(m+=100),"index"===e.source&&(m+=50),m+=30*p,m+=25*g,m+=20*h,n&&s.length&&(m+=20),d&&a.size&&(m+=20),l&&(m+=5),f&&(m+=5),e.direction&&u&&(m+=10),{candidate:e,score:m}}).filter(Boolean);if(!d.length)return;d.sort((e,t)=>t.score!==e.score?t.score-e.score:e.candidate.fields.length-t.candidate.fields.length);const f=d[0].candidate;return{candidate:f,use_index:[f.ddoc,f.name]}}function Q(e,t){const r=n.Model.tableName(e),o=e.name,i=Array.from(L(t.selector)),a=Array.from(k(t.selector)),s=$(t),u=P(t),l=[c.TABLE];for(const e of i)e===c.TABLE||l.includes(e)||l.push(e);for(const e of a)e===c.TABLE||l.includes(e)||l.push(e);for(const e of s)e===c.TABLE||l.includes(e)||l.push(e);return{tableName:r,modelName:o,equalityFields:i,rangeFields:a,sortFields:s,sortDirection:u,requiredFields:l}}function q(e,t){const o=Q(e,t),n=o.requiredFields.filter(e=>e!==c.TABLE);if(!n.length)throw new T("Cannot infer @index declaration for query with no model fields.",{modelName:o.modelName,tableName:o.tableName,attribute:"",compositions:[],directions:[],expectedName:"",expectedDdoc:"",expectedFields:[c.TABLE],decorator:""},t);const i=n[0],a=n.slice(1),s=o.sortDirection||r.OrderDirection.ASC,u=w(o.tableName,i,a,s),l=[{[c.TABLE]:s},{[i]:s},...a.map(e=>({[e]:s}))],d=["@index({",a.length?` compositions: ${JSON.stringify(a)},`:void 0," directions: "+JSON.stringify([s]),"})",i+"!: <type>;"].filter(Boolean).join("\n");return{attribute:i,compositions:a,directions:[s],name:u,ddoc:u,fields:l,decorator:d}}function G(e,t,r,o={}){if(!e||t.use_index)return;if(!1===o.forceNamedIndexes&&!o.requireIndex)return;const n=R(e,t,{preserveDefaultQuery:o.preserveDefaultQuery??!0,requireSortCoverage:o.requireSortCoverage??!1});if(n)return t.use_index=n.use_index,void r?.debug?.(`Attached Mango use_index=${JSON.stringify(n.use_index)} from ${n.candidate.source} metadata`);if(!o.requireIndex)return;const i=q(e,t);throw new T(["No generated CouchDB index can satisfy this Mango query.\n","Model: "+e.name,"Table: "+U(e),"\nTo allow this query, declare the following index on the model attribute:\n",i.decorator,"\nThen regenerate/deploy indexes.\n\nExpected generated index:"," ddoc: "+i.ddoc," name: "+i.name," fields: "+JSON.stringify(i.fields)].join("\n"),{modelName:e.name,tableName:U(e),attribute:i.attribute,compositions:i.compositions,directions:i.directions,expectedName:i.name,expectedDdoc:i.ddoc,expectedFields:i.fields,decorator:i.decorator},t)}function U(e){return n.Model.tableName(e)}function F(e,t,r="selector"){if(e&&"object"==typeof e)if(Array.isArray(e))e.forEach((e,o)=>F(e,t,`${r}[${o}]`));else for(const[o,n]of Object.entries(e))C.has(o)&&t?.warn?.(`Mango query contains scan-prone operator ${o} at ${r}. This may bypass or weaken index usage and can produce slow queries.`),F(n,t,`${r}.${o}`)}function K(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 J 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 o={};o[c.TABLE]={},o[c.TABLE]=n.Model.tableName(this.fromSelector);const i={selector:o};if(this.selectSelector&&(i.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(r.Condition.and(this.whereCondition,r.Condition.attribute(c.TABLE).eq(i.selector[c.TABLE]))).selector,o=Object.keys(t);if(1===o.length&&-1!==Object.values(l).indexOf(o[0]))switch(o[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 o=r[0];return o===l.AND?e.push(...t[o]):e.push(t),e},[])],i.selector=t;break;case l.OR:{const e={};e[l.AND]=[t,...Object.entries(i.selector).map(([e,t])=>{const r={};return r[e]=t,r})],i.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach(([t,r])=>{i.selector[t]&&e.warn(`A ${t} query param is about to be overridden: ${i.selector[t]} by ${r}`),i.selector[t]=r})}if(this.orderBySelectors?.length){i.sort=i.sort||[],i.selector=i.selector||{};for(const[e,t]of this.orderBySelectors){const r=e,o={};o[r]=t,i.sort.push(o),i.selector[r]||(i.selector[r]={},i.selector[r][u.BIGGER]=null)}}const a=!!this.manualAggregation;return this.limitSelector?i.limit=this.limitSelector:a||(e.warn("No limit selector defined. Using default couchdb limit of 250"),i.limit=250),this.offsetSelector&&(i.skip=this.offsetSelector),this.attachDefaultQueryIndex(i),(this.overrides?.forceNamedIndexes??!0)&&G(this.fromSelector,i,e,{preserveDefaultQuery:!0,requireSortCoverage:!1,forceNamedIndexes:!0}),F(i.selector,e),i}attachDefaultQueryIndex(e){if(!this.fromSelector||e.use_index)return;const t=n.Model.tableName(this.fromSelector);let r=[];try{r=n.Model.defaultQueryAttributes(this.fromSelector)}catch{r=[]}if(!r.length)return;const o=this.collectStartsWithRangeAttrs(e.selector||{}),i=r.filter(e=>o.has(e));if(!i.length)return;const a=(Array.isArray(e.sort)?e.sort:[]).map(e=>Object.entries(e||{})[0]).find(e=>e&&i.includes(e[0])),s=E([t,a?.[0]||i[0],"defaultQuery"],a?.[1]||void 0);e.use_index=s}collectStartsWithRangeAttrs(e){const t=new Set,r=e=>{e&&"object"==typeof e&&(Array.isArray(e)?e.forEach(e=>r(e)):Object.entries(e).forEach(([e,o])=>{if(e!==l.AND&&e!==l.OR&&o&&"object"==typeof o&&!Array.isArray(o)){const r=Object.prototype.hasOwnProperty.call(o,u.BIGGER_EQ),n=Object.prototype.hasOwnProperty.call(o,u.SMALLER);r&&n&&t.add(e)}r(o)}))};return r(e),t}processRecord(e,i){const a=n.Model.pk(this.fromSelector),s=t.Metadata.get(this.fromSelector,t.Metadata.key(o.DBKeys.ID,a))?.type;if(e[c.ID]){const[,...t]=e[c.ID].split(c.SEPARATOR),o=t.join("_");e[a]=r.Sequence.parseValue(s,o)}return this.adapter.revert(e,this.fromSelector,e[a],void 0,i)}async raw(e,...t){const{ctx:r}=this.logCtx(t,this.raw),o=e?.aggregateInfo;if(e?.aggregate&&o)return this.executeAggregate(o,r);const n=await this.adapter.raw(e,!0,r),i=n.map(e=>this.processRecord(e,r));if(this.manualAggregation){const e=this.executeManualAggregation(i,this.manualAggregation,r);return this.manualAggregation=void 0,e}return!this.selectSelector&&this.groupBySelectors?.length?this.groupSelectResults(i):this.selectSelector?n:await this.applyAfterHandlersToResult(i,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=A(this.fromSelector,e,t);if(!r.length)return;const o=r[0],i=n.Model.tableName(this.fromSelector),a=m(i,o.attribute,e,o),s=o.ddoc||y(i,a),c={reduce:void 0!==o.reduce||!o.returnDocs};return"distinct"!==e&&"groupBy"!==e||(c.group=!0),{kind:e,meta:o,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(),o=e,n=await r.view(o.descriptor.ddoc,o.descriptor.view,o.descriptor.options,t);return this.processViewResponse(e,n)}async handleAverage(e,t){if("avg"!==e.kind)throw new r.QueryError("Average descriptor is not valid");const[o,n]=[e.sumDescriptor,e.countDescriptor],i=this.getCouchAdapter(),[a,s]=await Promise.all([i.view(o.ddoc,o.view,o.options,t),i.view(n.ddoc,n.view,n.options,t)]),c=a.rows?.[0]?.value??0,u=s.rows?.[0]?.value??0;return u?c/u:0}executeManualAggregation(e,t,o){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 n=t.meta.attribute;switch(t.kind){case"count":return t.countDistinct?this.computeDistinctCount(e,n):this.computeCount(e,n);case"distinct":return t.countDistinct?this.computeDistinctCount(e,n):this.computeDistinctValues(e,n);case"sum":return this.computeSum(e,n);case"min":return this.computeMinMax(e,n,"min");case"max":return this.computeMinMax(e,n,"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,o=new Set;return r.forEach(e=>o.add(JSON.stringify(e))),o.size}computeDistinctValues(e,t){if(!t)return[];const r=this.collectValues(e,t),o=new Set,n=[];return r.forEach(e=>{const t=JSON.stringify(e);o.has(t)||(o.add(t),n.push(e))}),n}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 o=this.collectValues(e,t).filter(e=>null!=e);let n=null,i=null;for(const e of o){const t=this.normalizeComparable(e);null!==t&&(null!==i?("min"===r&&i>t||"max"===r&&t>i)&&(i=t,n=e):(i=t,n=e))}return n}computeGroupBy(e,t){const r={},o=this.collectValues(e,t);return e.forEach((e,t)=>{const n=this.groupKey(o[t]);r[n]||(r[n]=[]),r[n].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 o=this.groupKey(this.convertValueByAttribute(t,e[t]));r[o]||(r[o]=[]),r[o].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,o=this.normalizeMetaType(r);return this.attributeTypeCache.set(e,o),o}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,o){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(`${o} 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 o=this.decoratorForKind(e),i=this.fromSelector?n.Model.tableName(this.fromSelector):"<unknown table>",a=t?` on "${t}"`:"";return new r.UnsupportedError(`${o} decorator is required for CouchDB ${e} aggregation${a} on table "${i}".`)}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 o=t.rows||[],n=e,i=n.meta;return n.countDistinct?o.length||0:"distinct"===n.kind||"groupBy"===n.kind?o.map(e=>this.convertAggregateValue(n.meta.attribute,e.key??e.value)):i.returnDocs?o.map(e=>e.value??e.doc??e):o.length?this.convertAggregateValue(n.meta.attribute,o[0].value??o[0].key??null):"count"===n.kind?0:null}isViewAggregate(e){return"avg"!==e.kind}getCouchAdapter(){return this.adapter}parseCondition(e){const{attr1:t,operator:o,comparison:n}=e;if(o===r.Operator.STARTS_WITH){if("string"!=typeof t)throw new r.QueryError("STARTS_WITH requires an attribute name");if("string"!=typeof n)throw new r.QueryError("STARTS_WITH requires a string comparison");const e={start:i=n,end:K(i)};return{selector:{[t]:{[u.BIGGER_EQ]:e.start,[u.SMALLER]:e.end}}}}var i,a;if(o===r.Operator.ENDS_WITH){if("string"!=typeof t)throw new r.QueryError("ENDS_WITH requires an attribute name");if("string"!=typeof n)throw new r.QueryError("ENDS_WITH requires a string comparison");return{selector:{[t]:{[u.REGEXP]:(a=n,a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"$")}}}}if(o===r.Operator.BETWEEN){const e=t;if(!Array.isArray(n)||2!==n.length)throw new r.QueryError("BETWEEN operator requires [min, max] comparison");const[o,i]=n,a={};return a[e]={},a[e][_(r.Operator.BIGGER_EQ)]=o,a[e][_(r.Operator.SMALLER_EQ)]=i,{selector:a}}let s={};if(-1===[r.GroupOperator.AND,r.GroupOperator.OR,r.Operator.NOT].indexOf(o))s[t]={},s[t][_(o)]=n;else if(o===r.Operator.NOT)s=this.parseCondition(t).selector,s[_(r.Operator.NOT)]={},s[_(r.Operator.NOT)][t.attr1]=n;else{const e=this.parseCondition(t).selector,r=this.parseCondition(n).selector;s=((e,t,r)=>{const o={selector:{}};return o.selector[e]=[t,r],o})(_(o),e,r).selector}return{selector:s}}}class z 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;o.prefixMethod(this,e,this[t+"Prefix"])})}Statement(e){return new J(this,e)}Paginator(e,t,r){return new M(this,e,t,r)}async initialize(){const e=r.Adapter.models(this.flavour);return this.index(...e)}repository(){return x}assignMetadata(e,t){return t?(S(e,t),e):e}assignMultipleMetadata(e,t){return e.forEach((e,r)=>(S(e,t[r]),e)),e}prepare(e,...t){const{log:i}=this.logCtx(t,this.prepare),a=e.segregate(),s=Object.entries(a.model).reduce((t,[r,i])=>{if(void 0===i)return t;const a=n.Model.columnName(e.constructor,r);if(this.isReserved(a))throw new o.InternalError(`Property name ${a} is reserved`);return i=i instanceof Date?new Date(i):i,t[a]=i,t},{});return e[r.PersistenceKeys.METADATA]&&(i.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[n.Model.pk(e.constructor)],transient:a.transient}}createPrefix(e,t,r,...o){const{ctxArgs:i}=this.logCtx(o,this.createPrefix),a=n.Model.tableName(e),s={};return s[c.TABLE]=a,s[c.ID]=this.generateId(a,t),Object.assign(s,r),[e,t,s,...i]}createAllPrefix(e,t,r,...i){const a=n.Model.tableName(e);if(t.length!==r.length)throw new o.InternalError("Ids and models must have the same length");const{ctxArgs:s}=this.logCtx(i,this.createAllPrefix),u=t.map((e,t)=>{const o={};return o[c.TABLE]=a,o[c.ID]=this.generateId(a,e),Object.assign(o,r[t]),o});return[e,t,u,...s]}updatePrefix(e,t,i,...a){const s=n.Model.tableName(e),{ctxArgs:u}=this.logCtx(a,this.updatePrefix),l={};l[c.TABLE]=s,l[c.ID]=this.generateId(s,t);const d=i[r.PersistenceKeys.METADATA];if(!d)throw new o.InternalError("No revision number found for record with id "+t);return Object.assign(l,i),l[c.REV]=d,[e,t,l,...u]}updateAllPrefix(e,t,i,...a){const s=n.Model.tableName(e);if(t.length!==i.length)throw new o.InternalError("Ids and models must have the same length");const{ctxArgs:u}=this.logCtx(a,this.updateAllPrefix),l=t.map((e,t)=>{const n={};n[c.TABLE]=s,n[c.ID]=this.generateId(s,e);const a=i[t][r.PersistenceKeys.METADATA];if(!a)throw new o.InternalError("No revision number found for record with id "+e);return Object.assign(n,i[t]),n[c.REV]=a,n});return[e,t,l,...u]}generateId(e,t){const r=c.SEPARATOR;return"string"==typeof t&&t.startsWith(`${e}${r}`)&&t.split(r).length>=2?t:`${e}${r}${t+""}`}parseError(e,t){return z.parseError(e,t)}isReserved(e){return!!e.match(s)}static parseError(e,t){if(e instanceof o.BaseError)return e;let n="";if("string"==typeof e){if(n=e,n.match(/already exist|update conflict/g))return new o.ConflictError(n);if(n.match(/missing|deleted/g))return new o.NotFoundError(n)}else e.code?(n=e.code,t=t||e.message):e.statusCode?(n=e.statusCode,t=t||e.message):n=e.message;switch(n.toString()){case"401":case"412":case"409":return new o.ConflictError(t);case"404":return new o.NotFoundError(t);case"400":return n.toString().match(/No\sindex\sexists/g)?new N(e):new o.InternalError(e);default:return n.toString().match(/ECONNREFUSED/g)?new r.ConnectionError(e):new o.InternalError(e)}}static setMetadata(e,t){S(e,t)}static getMetadata(e){return D(e)}static removeMetadata(e){v(e)}}i.__decorate([a.final(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[Object]),i.__metadata("design:returntype",J)],z.prototype,"Statement",null),i.__decorate([a.final(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[Object,String]),i.__metadata("design:returntype",Object)],z.prototype,"assignMetadata",null),i.__decorate([a.final(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[Array,Array]),i.__metadata("design:returntype",Array)],z.prototype,"assignMultipleMetadata",null),i.__decorate([a.final(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[Object,Object,Object,Object]),i.__metadata("design:returntype",Array)],z.prototype,"createPrefix",null),i.__decorate([a.final(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[Object,Array,Array,Object]),i.__metadata("design:returntype",void 0)],z.prototype,"createAllPrefix",null),i.__decorate([a.final(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[Object,Object,Object,Object]),i.__metadata("design:returntype",void 0)],z.prototype,"updatePrefix",null),i.__decorate([a.final(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[Object,Array,Array,Object]),i.__metadata("design:returntype",void 0)],z.prototype,"updateAllPrefix",null);const W="##VERSION##",X="##PACKAGE##";t.Metadata.registerLibrary(X,W),e.COMMIT="8d4d67a",e.CouchDBAdapter=z,e.CouchDBConst={NULL:"null"},e.CouchDBGroupOperator=l,e.CouchDBKeys=c,e.CouchDBOperator=u,e.CouchDBPaginator=M,e.CouchDBQueryLimit=250,e.CouchDBRepository=x,e.CouchDBStatement=J,e.FULL_VERSION="0.14.1-8d4d67a",e.IndexError=N,e.IndexPlanningError=T,e.PACKAGE_NAME=X,e.VERSION=W,e.attachGeneratedUseIndex=G,e.buildGeneratedIndexCandidates=e=>V(e),e.collectViewMetadata=O,e.count=(e,o)=>{let n={};return e instanceof r.Condition?n.condition=e:"object"==typeof e&&e?n=e:void 0!==e&&(n.value=e),o&&(n=Object.assign({},n,o)),t.Decoration.for(r.Operator.COUNT).define({decorator:e=>r.applyViewDecorator(r.Operator.COUNT,"count",e),args:[n]}).apply()},e.distinct=(e,o)=>{let n={};return e instanceof r.Condition?n.condition=e:e&&(n=e),o&&(n=Object.assign({},n,o)),t.Decoration.for(r.Operator.DISTINCT).define({decorator:e=>r.applyViewDecorator(r.Operator.DISTINCT,"distinct",e),args:[n]}).apply()},e.enableMangoExecutionStats=e=>{e.execution_stats=!0},e.ensureDeterministicSort=(e,t,o)=>{if(!e.sort?.length)return;if($(e).includes(t))return;const n=o||P(e)||r.OrderDirection.ASC;e.sort=[...e.sort,{[t]:n}]},e.findGeneratedIndexCandidateByName=(e,t)=>V(e).find(e=>e.name===t||e.ddoc===t),e.findViewMetadata=A,e.generateDesignDocName=y,e.generateIndexDoc=f,e.generateIndexName=E,e.generateIndexes=e=>{const t=E([c.TABLE]),o={};return o[t]={index:{fields:[c.TABLE]},name:t,ddoc:t,type:"json"},e.forEach(e=>{const t=n.Model.tableName(e);let i=[];try{i=n.Model.defaultQueryAttributes(e)}catch(e){i=[]}i.forEach(e=>{const n=E([t,e,"defaultQuery"]),i={[c.TABLE]:{[u.EQUAL]:t}};o[n]={index:{fields:[c.TABLE,e]},name:n,ddoc:n,type:"json"},o[n].index.partial_filter_selector=i,[r.OrderDirection.ASC,r.OrderDirection.DSC].forEach(r=>{const n=E([t,e,"defaultQuery"],r);o[n]={index:{fields:[{[c.TABLE]:r},{[e]:r}]},name:n,ddoc:n,type:"json"}})});const a=n.Model.indexes(e);Object.entries(a).forEach(([e,n])=>{const i=[];Object.entries(n||{}).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&&i.push([e,t])}):i.push([e,r])}),i.forEach(([e,n])=>{if(!n)return;let{directions:i,compositions:a}=n;a=a||[];const s=[e,...a],l={[c.TABLE]:{[u.EQUAL]:t}};function d(r,n){const i=w(t,e,a,n),u=[c.TABLE,...s],d=r?[{[c.TABLE]:r},...s.map(e=>({[e]:r}))]:u;o[i]={index:{fields:d},name:i,ddoc:i,type:"json"},r||(o[i].index.partial_filter_selector=l)}d(),Array.from(new Set((i||[r.OrderDirection.ASC]).map(e=>(e+"").toLowerCase()))).filter(e=>e===r.OrderDirection.ASC||e===r.OrderDirection.DSC).forEach(e=>{d(e,e)})})})}),b(e).forEach(e=>{e.name&&(o[e.name]=e)}),Object.values(o)},e.generateModelIndexName=w,e.generateViewIndexes=b,e.generateViewName=m,e.generateViews=e=>{const t={},o=[[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 i=n.Model.tableName(e);o.flatMap(([t,r])=>O(e,t,r)).forEach(e=>{const o=e.attribute,n=m(i,o,e.kind,e),a="_design/"+(e.ddoc||y(i,n)),s=((e,t,o,n)=>{const i=((e,t,o)=>{if(o.map)return"function"==typeof o.map?o.map.toString():o.map;const n=[];if(n.push(`doc[${JSON.stringify(c.TABLE)}] === ${JSON.stringify(e)}`),o.condition)if(o.condition instanceof r.Condition)n.push(g(o.condition,"doc"));else if("string"==typeof o.condition)n.push(o.condition);else{const e=r.Condition.from(o.condition);n.push(g(e,"doc"))}"count"===o.kind&&void 0!==o.value&&n.push(`doc[${JSON.stringify(t)}] === ${p(o.value)}`);const i=((e,t="doc")=>{if(!e)return;if("string"==typeof e)return e;const r=e.field||"roles",o=e.roles||[];if(!o.length)return e.expression;const n=`${t}[${JSON.stringify(r)}] || []`;return"all"===(e.mode||"any")?o.map(e=>`${n}.indexOf(${JSON.stringify(e)}) !== -1`).join(" && "):o.map(e=>`${n}.indexOf(${JSON.stringify(e)}) !== -1`).join(" || ")})(o.auth,"doc");i&&n.push(i);const a=n.length?n.join(" && "):"true",s=((e,t,r)=>{const o=h(e,t,r);return 1===o.length?`doc[${JSON.stringify(o[0])}]`:`[${o.map(e=>`doc[${JSON.stringify(e)}]`).join(", ")}]`})(o.key,t,o.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)}]`:p(e):`doc[${JSON.stringify(t)}]`)(o.value??(o.returnDocs&&"sum"!==o.kind?"doc":void 0),t);return`function (doc) {\n if (!(${a})) return;\n emit(${s}, ${u});\n}`})(n,t,o),a=o.reduce?"function"==typeof o.reduce?o.reduce.toString():o.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:i,reduce:a}})(e.kind,o,e,i);t[a]||(t[a]={_id:a,language:"javascript",views:{}}),t[a].views[n]=s})}),Object.values(t)},e.getEqualitySelectorFields=L,e.getMetadata=D,e.getRangeSelectorFields=k,e.getRequiredMangoIndexShape=Q,e.getSortDirection=P,e.getSortFields=$,e.groupBy=(e,o)=>{let n={};return Array.isArray(e)?n.compositions=e:"string"==typeof e?n.name=e:e&&(n=e),"string"==typeof o?n.name=o:o&&(n=Object.assign({},n,o)),void 0===n.returnDocs&&(n.returnDocs=!0),t.Decoration.for(r.Operator.GROUP_BY).define({decorator:e=>r.applyViewDecorator(r.Operator.GROUP_BY,"groupBy",e),args:[n]}).apply()},e.max=(e,o)=>{let n={};return e instanceof r.Condition?n.condition=e:e&&(n=e),o&&(n=Object.assign({},n,o)),t.Decoration.for(r.Operator.MAX).define({decorator:e=>r.applyViewDecorator(r.Operator.MAX,"max",e),args:[n]}).apply()},e.min=(e,o)=>{let n={};return e instanceof r.Condition?n.condition=e:e&&(n=e),o&&(n=Object.assign({},n,o)),t.Decoration.for(r.Operator.MIN).define({decorator:e=>r.applyViewDecorator(r.Operator.MIN,"min",e),args:[n]}).apply()},e.normalizeSortField=j,e.reAuth=d,e.removeMetadata=v,e.requireGeneratedUseIndex=(e,t,r,o={})=>{G(e,t,r,{preserveDefaultQuery:!0,requireSortCoverage:o.requireSortCoverage??!0,requireIndex:!0,forceNamedIndexes:!0})},e.reservedAttributes=s,e.resolveGeneratedIndexForQuery=R,e.reverseRequiredShapeToIndexDeclaration=q,e.setMetadata=S,e.sum=(e,o)=>{let n={};return e instanceof r.Condition?n.condition=e:e&&(n=e),o&&(n=Object.assign({},n,o)),t.Decoration.for(r.Operator.SUM).define({decorator:e=>r.applyViewDecorator(r.Operator.SUM,"sum",e),args:[n]}).apply()},e.testReservedAttributes=e=>e.match(/^_.*$/g),e.translateOperators=_,e.viewIndexDefinition=e=>{const t=h(e.key,e.attribute);return{attribute:t[0],compositions:t.slice(1).concat(e.compositions||[]),directions:e.directions}},e.warnScanProneMangoOperators=F,e.wrapDocumentScope=(e,t,r,o)=>{const n=e.use?e.use(t):e;return["insert","get","put","destroy","find","view"].forEach(t=>{const i=n[t];Object.defineProperty(n,t,{enumerable:!1,configurable:!0,value:async(...t)=>(await d(e,r,o),i.call(n,...t))})}),Object.defineProperty(n,c.NATIVE,{enumerable:!1,configurable:!1,writable:!1,value:e}),n}},"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
@@ -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/IndexError.ts","../src/errors/IndexPlanningError.ts","../src/query/Paginator.ts","../src/query/translate.ts","../src/query/planner.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,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","generateIndexDoc","attribute","tableName","compositions","order","separator","DefaultSeparator","partialFilterSelector","fields","orderProp","sortedCompositions","map","c","r","sortedTable","name","attr","PersistenceKeys","push","join","generateIndexName","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","generateModelIndexName","fieldKey","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","IndexPlanningError","message","suggestion","query","CouchDBPaginator","Paginator","size","clazz","_bookmarks","Map","isValidBookmark","prepare","rawStatement","assign","limit","skip","page","bookmark","isPreparedStatement","pagePrepared","validatePage","statement","explicitBookmark","PagingError","rawResult","raw","docs","nextBookmark","warning","warn","execution_stats","debug","type","DBKeys","pageResults","d","revert","Sequence","parseValue","_bookmark","_currentPage","set","_knownLastPage","_totalPages","_recordCount","translateOperators","operators","el","keys","find","k","QueryError","SCAN_PRONE_OPERATORS","Set","isPlainObject","normalizeSortField","field","String","toLowerCase","getSortFields","sort","Boolean","getSortDirection","getEqualitySelectorFields","selector","visit","node","prototype","hasOwnProperty","call","add","getRangeSelectorFields","collectGeneratedIndexEntries","candidates","tableIndexName","defaultQueryAttrs","defaultQueryAttributes","baseName","sortedName","modelIndexes","metadataValue","validDirections","from","dir","resolveGeneratedIndexForQuery","options","use_index","preserveDefaultQuery","equalityFields","rangeFields","sortFields","sortDirection","scored","candidate","includes","candidateFields","coversAllSort","every","coversSomeSort","some","coversAllRange","coversSomeRange","requireSortCoverage","equalityCoverage","has","rangeCoverage","sortCoverage","score","a","b","best","getRequiredMangoIndexShape","modelName","requiredFields","reverseRequiredShapeToIndexDeclaration","shape","nonTableFields","expectedName","expectedDdoc","expectedFields","decorator","attachGeneratedUseIndex","forceNamedIndexes","requireIndex","resolved","reversed","shapeTableName","warnScanProneMangoOperators","path","nextLexicographicString","chars","code","codePointAt","fromCodePoint","CouchDBStatement","Statement","overrides","attributeTypeCache","build","manualAggregation","aggregateInfo","buildAggregateInfo","shouldUseManualAggregation","createAggregateQuery","selectors","fromSelector","selectSelector","whereCondition","parseCondition","and","eq","selectorKeys","indexOf","reduce","accum","val","Error","s","orderBySelectors","selectorKey","rec","hasManualAggregate","limitSelector","offsetSelector","attachDefaultQueryIndex","defaultAttrs","rangedAttrs","collectStartsWithRangeAttrs","matchedAttrs","sortEntry","indexName","attrs","walk","child","hasLower","hasUpper","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","returnDocs","group","isViewAggregate","handleAverage","couchAdapter","getCouchAdapter","viewInfo","response","processViewResponse","sumDesc","countDesc","sumResponse","countResponse","rows","computeAverage","computeGroupBy","computeDistinctCount","computeCount","computeDistinctValues","computeSum","computeMinMax","collectValues","seen","unique","acc","toNumericValue","mode","currentValue","currentComparable","normalized","normalizeComparable","grouped","doc","groupKey","convertValueByAttribute","getAttributeType","parsed","Number","isNaN","getTime","metaType","getPropDesignTypes","designType","normalizeMetaType","context","convertAggregateValue","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","sep","startsWith","parseError","err","reason","match","ConflictError","NotFoundError","statusCode","ConnectionError","__decorate","final","VERSION","PACKAGE_NAME","registerLibrary","NULL","valueOrCondition","opts","Decoration","define","o","applyViewDecorator","conditionOrOptions","tieBreaker","effectiveDirection","modelTableName","defaultFilter","partial_filter_selector","ind","metadataEntries","fieldKeys","tableFilter","generate","suffix","baseFields","sortField","viewDocs","ddocId","viewDef","guards","authGuard","roles","expression","listExpr","buildAuthGuard","guard","emitKey","buildEmitKey","emitValue","v","buildEmitValue","buildMapFunction","defaultReduce","normalizeViewMetadata","_id","language","views","compositionsOrOptions","nameOrOptions","concat","dbName","db","use","original"],"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/IndexError.ts","../src/errors/IndexPlanningError.ts","../src/query/Paginator.ts","../src/query/translate.ts","../src/query/planner.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,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","generateIndexDoc","attribute","tableName","compositions","order","separator","DefaultSeparator","partialFilterSelector","fields","orderProp","sortedCompositions","map","c","r","sortedTable","name","attr","PersistenceKeys","push","join","generateIndexName","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","generateModelIndexName","fieldKey","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","IndexPlanningError","message","suggestion","query","CouchDBPaginator","Paginator","size","clazz","_bookmarks","Map","isValidBookmark","prepare","rawStatement","assign","limit","skip","page","bookmark","isPreparedStatement","pagePrepared","validatePage","statement","explicitBookmark","PagingError","rawResult","raw","docs","nextBookmark","warning","warn","execution_stats","debug","type","DBKeys","pageResults","d","revert","Sequence","parseValue","_bookmark","_currentPage","set","_knownLastPage","_totalPages","_recordCount","translateOperators","operators","el","keys","find","k","QueryError","SCAN_PRONE_OPERATORS","Set","isPlainObject","selectorContainsOperator","node","some","child","normalizeSortField","field","String","toLowerCase","getSortFields","sort","Boolean","getSortDirection","getEqualitySelectorFields","selector","visit","prototype","hasOwnProperty","call","add","getRangeSelectorFields","collectGeneratedIndexEntries","candidates","tableIndexName","defaultQueryAttrs","defaultQueryAttributes","baseName","sortedName","modelIndexes","metadataValue","validDirections","from","dir","resolveGeneratedIndexForQuery","options","use_index","preserveDefaultQuery","equalityFields","rangeFields","sortFields","sortDirection","scored","candidate","includes","candidateFields","coversAllSort","every","coversSomeSort","coversAllRange","coversSomeRange","requireSortCoverage","equalityCoverage","has","rangeCoverage","sortCoverage","score","a","b","best","getRequiredMangoIndexShape","modelName","requiredFields","reverseRequiredShapeToIndexDeclaration","shape","nonTableFields","expectedName","expectedDdoc","expectedFields","decorator","attachGeneratedUseIndex","forceNamedIndexes","requireIndex","resolved","reversed","shapeTableName","warnScanProneMangoOperators","path","nextLexicographicString","chars","code","codePointAt","fromCodePoint","CouchDBStatement","Statement","overrides","attributeTypeCache","build","manualAggregation","aggregateInfo","buildAggregateInfo","shouldUseManualAggregation","createAggregateQuery","selectors","fromSelector","selectSelector","whereCondition","parseCondition","and","eq","selectorKeys","indexOf","reduce","accum","val","Error","s","orderBySelectors","selectorKey","rec","hasManualAggregate","limitSelector","offsetSelector","attachDefaultQueryIndex","defaultAttrs","rangedAttrs","collectStartsWithRangeAttrs","matchedAttrs","sortEntry","indexName","attrs","walk","hasLower","hasUpper","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","returnDocs","group","isViewAggregate","handleAverage","couchAdapter","getCouchAdapter","viewInfo","response","processViewResponse","sumDesc","countDesc","sumResponse","countResponse","rows","computeAverage","computeGroupBy","computeDistinctCount","computeCount","computeDistinctValues","computeSum","computeMinMax","collectValues","seen","unique","acc","toNumericValue","mode","currentValue","currentComparable","normalized","normalizeComparable","grouped","doc","groupKey","convertValueByAttribute","getAttributeType","parsed","Number","isNaN","getTime","metaType","getPropDesignTypes","designType","normalizeMetaType","context","convertAggregateValue","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","sep","startsWith","parseError","err","reason","match","ConflictError","NotFoundError","statusCode","ConnectionError","__decorate","final","VERSION","PACKAGE_NAME","registerLibrary","NULL","valueOrCondition","opts","Decoration","define","o","applyViewDecorator","conditionOrOptions","tieBreaker","effectiveDirection","modelTableName","defaultFilter","partial_filter_selector","ind","metadataEntries","fieldKeys","tableFilter","generate","suffix","baseFields","sortField","viewDocs","ddocId","viewDef","guards","authGuard","roles","expression","listExpr","buildAuthGuard","guard","emitKey","buildEmitKey","emitValue","v","buildEmitValue","buildMapFunction","defaultReduce","normalizeViewMetadata","_id","language","views","compositionsOrOptions","nameOrOptions","concat","dbName","db","use","original"],"mappings":"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"}