@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
- import{Metadata as e,Decoration as t}from"@decaf-ts/decoration";import{PersistenceKeys as r,Operator as n,OrderDirection as i,Condition as o,GroupOperator as s,Repository as a,Paginator as c,PagingError as u,Sequence as l,QueryError as d,Statement as f,UnsupportedError as g,Adapter as p,ConnectionError as h,applyViewDecorator as m}from"@decaf-ts/core";import{DefaultSeparator as y,OperationKeys as A,InternalError as b,enforceDBDecorators as w,ValidationError as v,BulkCrudOperationKeys as S,reduceErrorsToPrint as E,BaseError as O,DBKeys as N,prefixMethod as x,ConflictError as D,NotFoundError as T}from"@decaf-ts/db-decorators";import{Model as $}from"@decaf-ts/decorator-validation";import{__decorate as j,__metadata as B}from"tslib";import{final as C}from"@decaf-ts/logging";const M=/^_.*$/g,k={SEPARATOR:"__",ID:"_id",REV:"_rev",DELETED:"_deleted",TABLE:"??table",SEQUENCE:"??sequence",DDOC:"ddoc",NATIVE:"__native",INDEX:"index",VIEW:"view"},I=250,L={EQUAL:"$eq",DIFFERENT:"$ne",BIGGER:"$gt",BIGGER_EQ:"$gte",SMALLER:"$lt",SMALLER_EQ:"$lte",NOT:"$not",IN:"$in",REGEXP:"$regex"},P={AND:"$and",OR:"$or"},V={NULL:"null"};async function _(e,t,r){return e.auth(t,r)}function R(e,t,r,n){const i=e.use?e.use(t):e;return["insert","get","put","destroy","find","view"].forEach(t=>{const o=i[t];Object.defineProperty(i,t,{enumerable:!1,configurable:!0,value:async(...t)=>(await _(e,r,n),o.call(i,...t))})}),Object.defineProperty(i,k.NATIVE,{enumerable:!1,configurable:!1,writable:!1,value:e}),i}function q(e){return e.match(/^_.*$/g)}function U(e,t,n,i,o=y){const s={};let a;if(s[k.TABLE]={},s[k.TABLE].$eq=t,i){const t={};t[e]=i;const r=(n||[]).map(e=>{const t={};return t[e]=i,t}),o={};o[k.TABLE]=i,a=[t,...r,o]}else a=[e,...n||[],k.TABLE];const c=((e,t,n,i,o=y)=>{const s=[r.INDEX,t,e];return n&&s.push(...n),i&&s.push(i),s.join(o)})(e,t,n,i,o);return{index:{fields:a},ddoc:[c,k.DDOC].join(o),name:c}}function Q(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 J(e,t){const{attr1:r,operator:i,comparison:a}=e;if(r instanceof o){const e=J(r,t);if(i===n.NOT)return`!(${e})`;const o=J(a,t);return i===s.AND?`(${e} && ${o})`:i===s.OR?`(${e} || ${o})`:e}const c=`${t}[${JSON.stringify(r)}]`;switch(i){case n.EQUAL:return`${c} === ${Q(a)}`;case n.DIFFERENT:return`${c} !== ${Q(a)}`;case n.BIGGER:return`${c} > ${Q(a)}`;case n.BIGGER_EQ:return`${c} >= ${Q(a)}`;case n.SMALLER:return`${c} < ${Q(a)}`;case n.SMALLER_EQ:return`${c} <= ${Q(a)}`;case n.IN:return`(${Q(a)}).indexOf(${c}) !== -1`;case n.REGEXP:return`${a instanceof RegExp?Q(a):`new RegExp(${JSON.stringify(a)})`}.test(${c})`;case n.NOT:return`!(${c} === ${Q(a)})`;default:return"true"}}function F(e,t,r){return e?Array.isArray(e)?e:[e]:t?[t,...r||[]]:r||[]}function G(e,t,r,n,i=y){return n.name?n.name:[e,t,r,"view"].join(i).replace(/\s+/g,"_")}function z(e,t,r=y){return[e,t,k.DDOC].join(r)}function W(t,r,i){const o={view:n.VIEW,groupBy:n.GROUP_BY,count:n.COUNT,sum:n.SUM,max:n.MAX,min:n.MIN,distinct:n.DISTINCT}[r];if(!o)return[];const s=e.get(t,o)||{};return Object.entries(s).flatMap(([e,t])=>t&&"object"==typeof t?Object.values(t).map(t=>({...t,kind:r,attribute:t.attribute||e})).filter(e=>!i||e.attribute===i):[])}function X(t,r,n){const i=e.get(t,r)||{};return Object.entries(i).flatMap(([e,t])=>t&&"object"==typeof t?Object.values(t).map(t=>{const r=t;return{...r,kind:n,attribute:r.attribute||e}}):[])}function H(e){const t={},r=[[k.VIEW,"view"],[n.GROUP_BY,"groupBy"],[n.COUNT,"count"],[n.SUM,"sum"],[n.MAX,"max"],[n.MIN,"min"],[n.DISTINCT,"distinct"]];return e.forEach(e=>{const n=$.tableName(e);r.flatMap(([t,r])=>X(e,t,r)).forEach(e=>{const r=e.attribute,i=G(n,r,e.kind,e),s="_design/"+(e.ddoc||z(n,i)),a=((e,t,r,n)=>{const i=((e,t,r)=>{if(r.map)return"function"==typeof r.map?r.map.toString():r.map;const n=[];if(n.push(`doc[${JSON.stringify(k.TABLE)}] === ${JSON.stringify(e)}`),r.condition)if(r.condition instanceof o)n.push(J(r.condition,"doc"));else if("string"==typeof r.condition)n.push(r.condition);else{const e=o.from(r.condition);n.push(J(e,"doc"))}"count"===r.kind&&void 0!==r.value&&n.push(`doc[${JSON.stringify(t)}] === ${Q(r.value)}`);const i=((e,t="doc")=>{if(!e)return;if("string"==typeof e)return e;const r=e.field||"roles",n=e.roles||[];if(!n.length)return e.expression;const i=`${t}[${JSON.stringify(r)}] || []`;return"all"===(e.mode||"any")?n.map(e=>`${i}.indexOf(${JSON.stringify(e)}) !== -1`).join(" && "):n.map(e=>`${i}.indexOf(${JSON.stringify(e)}) !== -1`).join(" || ")})(r.auth,"doc");i&&n.push(i);const s=n.length?n.join(" && "):"true",a=((e,t,r)=>{const n=F(e,t,r);return 1===n.length?`doc[${JSON.stringify(n[0])}]`:`[${n.map(e=>`doc[${JSON.stringify(e)}]`).join(", ")}]`})(r.key,t,r.compositions),c=((e,t)=>"doc"===e?"doc":e?Array.isArray(e)?`[${e.map(e=>`doc[${JSON.stringify(e)}]`).join(", ")}]`:"string"==typeof e?`doc[${JSON.stringify(e)}]`:Q(e):`doc[${JSON.stringify(t)}]`)(r.value??(r.returnDocs&&"sum"!==r.kind?"doc":void 0),t);return`function (doc) {\n if (!(${s})) return;\n emit(${a}, ${c});\n}`})(n,t,r),s=r.reduce?"function"==typeof r.reduce?r.reduce.toString():r.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:s}})(e.kind,r,e,n);t[s]||(t[s]={_id:s,language:"javascript",views:{}}),t[s].views[i]=a})}),Object.values(t)}function K(e){const t={},r=[[k.VIEW,"view"],[n.GROUP_BY,"groupBy"],[n.COUNT,"count"],[n.SUM,"sum"],[n.MAX,"max"],[n.MIN,"min"],[n.DISTINCT,"distinct"]];return e.forEach(e=>{const n=$.tableName(e);r.flatMap(([t,r])=>X(e,t,r)).forEach(e=>{const r=F(e.key,e.attribute,e.compositions);if(!r.length)return;const o=r[0],s=r.slice(1),a=e.directions||[i.ASC,i.DSC],c=U(o,n,s);t[c.name||""]=c,a.forEach(e=>{const r=U(o,n,s,e);t[r.name||""]=r})})}),Object.values(t)}function Y(e){const t=F(e.key,e.attribute);return{attribute:t[0],compositions:t.slice(1).concat(e.compositions||[]),directions:e.directions}}function Z(e,t,r,n=y){return[...e.map(e=>e===k.TABLE?"table":e),...r||[],...t?[t]:[],k.INDEX].join(n)}function ee(e,t,n=[],i,o=y){return[e,t,...n,...i?[i]:[],r.INDEX].join(o)}function te(e){const t=Z([k.TABLE]),r={};return r[t]={index:{fields:[k.TABLE]},name:t,ddoc:t,type:"json"},e.forEach(e=>{const t=$.tableName(e);let n=[];try{n=$.defaultQueryAttributes(e)}catch(e){n=[]}n.forEach(e=>{const n=Z([t,e,"defaultQuery"]),o={[k.TABLE]:{$eq:t}};r[n]={index:{fields:[k.TABLE,e]},name:n,ddoc:n,type:"json"},r[n].index.partial_filter_selector=o,[i.ASC,i.DSC].forEach(n=>{const i=Z([t,e,"defaultQuery"],n);r[i]={index:{fields:[{[k.TABLE]:n},{[e]:n}]},name:i,ddoc:i,type:"json"}})});const o=$.indexes(e);Object.entries(o).forEach(([e,n])=>{const o=[];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&&o.push([e,t])}):o.push([e,r])}),o.forEach(([e,n])=>{if(!n)return;let{directions:o,compositions:s}=n;s=s||[];const a=[e,...s],c={[k.TABLE]:{$eq:t}};function u(n,i){const o=ee(t,e,s,i),u=[k.TABLE,...a],l=n?[{[k.TABLE]:n},...a.map(e=>({[e]:n}))]:u;r[o]={index:{fields:l},name:o,ddoc:o,type:"json"},n||(r[o].index.partial_filter_selector=c)}u(),Array.from(new Set((o||[i.ASC]).map(e=>(e+"").toLowerCase()))).filter(e=>e===i.ASC||e===i.DSC).forEach(e=>{u(e,e)})})})}),K(e).forEach(e=>{e.name&&(r[e.name]=e)}),Object.values(r)}function re(e,t){Object.defineProperty(e,r.METADATA,{enumerable:!1,configurable:!0,writable:!0,value:t})}function ne(e){const t=Object.getOwnPropertyDescriptor(e,r.METADATA);return t?t.value:void 0}function ie(e){Object.getOwnPropertyDescriptor(e,r.METADATA)&&delete e[r.METADATA]}class oe extends a{constructor(e,t,r=!1){super(e,t,r)}assignMetadata(e,t){const r=(e,t)=>{const r=ne(t??e);return r&&re(e,r),e};return Array.isArray(e)?e.map((e,n)=>{const i=Array.isArray(t)?t[n]:t;return r(e,i)}):r(e,Array.isArray(t)?t?.[0]:t)}async create(e,...t){const r=await super.create(e,...t);return this.assignMetadata(r),this.assignMetadata(e,r),r}async createAll(e,...t){const r=await super.createAll(e,...t);return this.assignMetadata(r),this.assignMetadata(e,r),r}async read(e,...t){const r=await super.read(e,...t);return this.assignMetadata(r)}async readAll(e,...t){const r=await super.readAll(e,...t);return this.assignMetadata(r)}async update(e,...t){const r=await super.update(e,...t);return this.assignMetadata(r),this.assignMetadata(e,r),r}async updateAll(e,...t){const r=await super.updateAll(e,...t);return this.assignMetadata(r),this.assignMetadata(e,r),r}async delete(e,...t){const r=await super.delete(e,...t);return this.assignMetadata(r)}async deleteAll(e,...t){const r=await super.deleteAll(e,...t);return this.assignMetadata(r)}async updatePrefix(e,...t){const{ctx:r,ctxArgs:n,log:i}=(await this.logCtx(t,A.UPDATE,!0)).for(this.updatePrefix),o=r.get("ignoreHandlers"),s=r.get("ignoreValidation");i.silly(`handlerSetting: ${o}, validationSetting: ${s}`);const a=e[this.pk];if(!a)throw new b("No value for the Id is defined under the property "+this.pk);let c,u;if(r.get("applyUpdateValidation")&&(c=await this.read(a),u=c?ne(c):void 0,r.get("mergeForUpdate")&&(e=$.merge(c,e,this.class))),o||await w(this,r,e,A.UPDATE,A.ON,c),!s){const t=r.get("ignoredValidationProperties")||[];i.silly("ignored validation properties: "+t);const n=await Promise.resolve(e.hasErrors(c,...t));if(n)throw new v(n.toString())}return u&&re(e,u),[e,...n,c]}async updateAllPrefix(e,...t){const{ctx:r,ctxArgs:n,log:i}=(await this.logCtx(t,S.UPDATE_ALL,!0)).for(this.updateAllPrefix),o=r.get("ignoreHandlers"),s=r.get("ignoreValidation");i.silly(`handlerSetting: ${o}, ignoredValidation: ${s}`);const a=e.map(e=>{const t=e[this.pk];if(!t)throw new b("missing id on update operation");return t});let c;if(r.get("applyUpdateValidation")&&(c=await this.readAll(a,r),e=e.map((e,t)=>{r.get("mergeForUpdate")&&(e=$.merge(c[t],e,this.class));const n=ne(c[t]);return n&&re(e,n),e})),o||await Promise.all(e.map((e,t)=>w(this,r,e,A.UPDATE,A.ON,c?c[t]:void 0))),!s){const t=r.get("ignoredValidationProperties")||[];let n;i.silly("ignored validation properties: "+t),n=r.get("applyUpdateValidation")?await Promise.all(e.map((e,r)=>Promise.resolve(e.hasErrors(c[r],...t)))):await Promise.resolve(e.map(e=>e.hasErrors(...t)));const o=E(n);if(o)throw new v(o)}return[e,...n,c]}}class se extends O{constructor(e){super(se.name,e,404)}}class ae extends se{constructor(e,t,r){super(e),this.name="IndexPlanningError",this.suggestion=t,this.query=r}}class ce extends c{constructor(e,t,r,n){super(e,t,r,n),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(t=1,r,...n){const{log:i,ctxArgs:o,ctx:s}=this.adapter.logCtx([r,...n],this.page);if(this.isPreparedStatement())return await this.pagePrepared(t,...o);t=this.validatePage(t??1);const a=Object.assign({},this.statement);if(a.limit=this.size,1===t)this.isValidBookmark(r)?a.bookmark=r:delete a.bookmark;else{const e=r||this._bookmarks.get(t);if(!this.isValidBookmark(e))throw new u("Random page access requires a cached CouchDB bookmark. Start at page 1 and page forward, or pass an explicit bookmark.");delete a.skip,a.bookmark=e}delete a.skip;const c=await this.adapter.raw(a,!1,...o),{docs:d,bookmark:f,warning:g}=c;if(g&&i.warn(g),c.execution_stats&&i.debug("Mango execution stats: "+JSON.stringify(c.execution_stats)),!this.clazz)throw new u("No statement target defined");const p=$.pk(this.clazz),h=e.get(this.clazz,e.key(N.ID,p))?.type,m=a.fields&&a.fields.length?d:d.map(e=>this.adapter.revert(e,this.clazz,l.parseValue(h,e[p]),void 0,s));return this._bookmark=this.isValidBookmark(f)?f:void 0,this._currentPage=t,this.isValidBookmark(f)&&this._bookmarks.set(t+1,f),this.isValidBookmark(f)&&d.length>=this.size||(this._knownLastPage=t,this._totalPages=t,this._recordCount=(t-1)*this.size+d.length),m}}function ue(e){for(const t of[L,P]){const r=Object.keys(t).find(t=>t===e);if(r)return t[r]}throw new d("Could not find adapter translation for operator "+e)}const le=new Set(["$or","$in","$regex","$nin","$not","$ne","$nor"]);function de(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function fe(e){if("string"==typeof e)return{field:e};if(Array.isArray(e))return e.length?{field:e[0]+""}:void 0;const[t,r]=Object.entries(e||{})[0]||[];return t?{field:t,direction:((r||i.ASC)+"").toLowerCase()}:void 0}function ge(e){return(e.sort||[]).map(fe).filter(Boolean).map(e=>e.field)}function pe(e){return(e.sort||[]).map(fe).find(Boolean)?.direction}function he(e={}){const t=new Set,r=e=>{if(e&&"object"==typeof e)if(Array.isArray(e))e.forEach(r);else if(Array.isArray(e[P.AND]))e[P.AND].forEach(r);else for(const[n,i]of Object.entries(e))n!==P.OR&&n!==P.AND?de(i)?Object.prototype.hasOwnProperty.call(i,"$eq")&&t.add(n):t.add(n):r(i)};return r(e),t}function me(e={}){const t=new Set,r=e=>{if(e&&"object"==typeof e)if(Array.isArray(e))e.forEach(r);else if(Array.isArray(e[P.AND]))e[P.AND].forEach(r);else for(const[n,i]of Object.entries(e))n!==P.OR&&n!==P.AND?de(i)&&(Object.prototype.hasOwnProperty.call(i,"$gt")||Object.prototype.hasOwnProperty.call(i,"$gte")||Object.prototype.hasOwnProperty.call(i,"$lt")||Object.prototype.hasOwnProperty.call(i,"$lte"))&&t.add(n):r(i)};return r(e),t}function ye(e){const t=$.tableName(e),r=[],n=Z([k.TABLE]);r.push({name:n,ddoc:n,fields:[k.TABLE],source:"table"});let o=[];try{o=$.defaultQueryAttributes(e)}catch{o=[]}for(const e of o){const n=Z([t,e,"defaultQuery"]);r.push({name:n,ddoc:n,fields:[k.TABLE,e],source:"defaultQuery"});for(const n of[i.ASC,i.DSC]){const i=Z([t,e,"defaultQuery"],n);r.push({name:i,ddoc:i,fields:[k.TABLE,e],direction:n,source:"defaultQuery"})}}const s=$.indexes(e);return Object.entries(s||{}).forEach(([e,n])=>{Object.values(n||{}).forEach(n=>{if(!n||!de(n))return;const o=n,s=o.compositions||[],a=o.directions||[i.ASC],c=[k.TABLE,e,...s],u=ee(t,e,s);r.push({name:u,ddoc:u,fields:c,source:"index"});const l=Array.from(new Set(a.map(e=>(e+"").toLowerCase()))).filter(e=>e===i.ASC||e===i.DSC);for(const n of l){const i=ee(t,e,s,n);r.push({name:i,ddoc:i,fields:c,direction:n,source:"index"})}})}),r}function Ae(e){return ye(e)}function be(e,t){return ye(e).find(e=>e.name===t||e.ddoc===t)}function we(e,t,r={}){if(t.use_index)return;const n=!1!==r.preserveDefaultQuery,i=ye(e),o=he(t.selector),s=me(t.selector),a=ge(t),c=pe(t);o.add(k.TABLE);const u=i.map(e=>{if(e.direction&&c&&e.direction!==c)return;if(!e.fields.includes(k.TABLE))return;if(e.fields[0]!==k.TABLE)return;const t=e.fields.filter(e=>e!==k.TABLE),i=0===a.length||a.every(e=>t.includes(e)),u=a.some(e=>t.includes(e)),l=0===s.size||Array.from(s).every(e=>t.includes(e)),d=Array.from(s).some(e=>t.includes(e));if(r.requireSortCoverage&&a.length&&!i)return;const f=t.filter(e=>o.has(e)).length,g=t.filter(e=>s.has(e)).length,p=t.filter(e=>a.includes(e)).length;if(!f&&!g&&!p)return;let h=0;return"defaultQuery"===e.source&&n&&(h+=100),"index"===e.source&&(h+=50),h+=30*f,h+=25*g,h+=20*p,i&&a.length&&(h+=20),l&&s.size&&(h+=20),u&&(h+=5),d&&(h+=5),e.direction&&c&&(h+=10),{candidate:e,score:h}}).filter(Boolean);if(!u.length)return;u.sort((e,t)=>t.score!==e.score?t.score-e.score:e.candidate.fields.length-t.candidate.fields.length);const l=u[0].candidate;return{candidate:l,use_index:[l.ddoc,l.name]}}function ve(e,t){const r=$.tableName(e),n=e.name,i=Array.from(he(t.selector)),o=Array.from(me(t.selector)),s=ge(t),a=pe(t),c=[k.TABLE];for(const e of i)e===k.TABLE||c.includes(e)||c.push(e);for(const e of o)e===k.TABLE||c.includes(e)||c.push(e);for(const e of s)e===k.TABLE||c.includes(e)||c.push(e);return{tableName:r,modelName:n,equalityFields:i,rangeFields:o,sortFields:s,sortDirection:a,requiredFields:c}}function Se(e,t){const r=ve(e,t),n=r.requiredFields.filter(e=>e!==k.TABLE);if(!n.length)throw new ae("Cannot infer @index declaration for query with no model fields.",{modelName:r.modelName,tableName:r.tableName,attribute:"",compositions:[],directions:[],expectedName:"",expectedDdoc:"",expectedFields:[k.TABLE],decorator:""},t);const o=n[0],s=n.slice(1),a=r.sortDirection||i.ASC,c=ee(r.tableName,o,s,a),u=[{[k.TABLE]:a},{[o]:a},...s.map(e=>({[e]:a}))],l=["@index({",s.length?` compositions: ${JSON.stringify(s)},`:void 0," directions: "+JSON.stringify([a]),"})",o+"!: <type>;"].filter(Boolean).join("\n");return{attribute:o,compositions:s,directions:[a],name:c,ddoc:c,fields:u,decorator:l}}function Ee(e,t,r,n={}){if(!e||t.use_index)return;if(!1===n.forceNamedIndexes&&!n.requireIndex)return;const i=we(e,t,{preserveDefaultQuery:n.preserveDefaultQuery??!0,requireSortCoverage:n.requireSortCoverage??!1});if(i)return t.use_index=i.use_index,void r?.debug?.(`Attached Mango use_index=${JSON.stringify(i.use_index)} from ${i.candidate.source} metadata`);if(!n.requireIndex)return;const o=Se(e,t);throw new ae(["No generated CouchDB index can satisfy this Mango query.\n","Model: "+e.name,"Table: "+Oe(e),"\nTo allow this query, declare the following index on the model attribute:\n",o.decorator,"\nThen regenerate/deploy indexes.\n\nExpected generated index:"," ddoc: "+o.ddoc," name: "+o.name," fields: "+JSON.stringify(o.fields)].join("\n"),{modelName:e.name,tableName:Oe(e),attribute:o.attribute,compositions:o.compositions,directions:o.directions,expectedName:o.name,expectedDdoc:o.ddoc,expectedFields:o.fields,decorator:o.decorator},t)}function Oe(e){return $.tableName(e)}function Ne(e,t,r,n={}){Ee(e,t,r,{preserveDefaultQuery:!0,requireSortCoverage:n.requireSortCoverage??!0,requireIndex:!0,forceNamedIndexes:!0})}function xe(e,t,r="selector"){if(e&&"object"==typeof e)if(Array.isArray(e))e.forEach((e,n)=>xe(e,t,`${r}[${n}]`));else for(const[n,i]of Object.entries(e))le.has(n)&&t?.warn?.(`Mango query contains scan-prone operator ${n} at ${r}. This may bypass or weaken index usage and can produce slow queries.`),xe(i,t,`${r}.${n}`)}function De(e,t,r){if(!e.sort?.length)return;if(ge(e).includes(t))return;const n=r||pe(e)||i.ASC;e.sort=[...e.sort,{[t]:n}]}function Te(e){e.execution_stats=!0}function $e(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 je extends f{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 r={};r[k.TABLE]={},r[k.TABLE]=$.tableName(this.fromSelector);const n={selector:r};if(this.selectSelector&&(n.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(o.and(this.whereCondition,o.attribute(k.TABLE).eq(n.selector[k.TABLE]))).selector,r=Object.keys(t);if(1===r.length&&-1!==Object.values(P).indexOf(r[0]))switch(r[0]){case P.AND:t[P.AND]=[...Object.values(t[P.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 n=r[0];return n===P.AND?e.push(...t[n]):e.push(t),e},[])],n.selector=t;break;case P.OR:{const e={};e[P.AND]=[t,...Object.entries(n.selector).map(([e,t])=>{const r={};return r[e]=t,r})],n.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach(([t,r])=>{n.selector[t]&&e.warn(`A ${t} query param is about to be overridden: ${n.selector[t]} by ${r}`),n.selector[t]=r})}if(this.orderBySelectors?.length){n.sort=n.sort||[],n.selector=n.selector||{};for(const[e,t]of this.orderBySelectors){const r=e,i={};i[r]=t,n.sort.push(i),n.selector[r]||(n.selector[r]={},n.selector[r].$gt=null)}}const i=!!this.manualAggregation;return this.limitSelector?n.limit=this.limitSelector:i||(e.warn("No limit selector defined. Using default couchdb limit of 250"),n.limit=250),this.offsetSelector&&(n.skip=this.offsetSelector),this.attachDefaultQueryIndex(n),(this.overrides?.forceNamedIndexes??!0)&&Ee(this.fromSelector,n,e,{preserveDefaultQuery:!0,requireSortCoverage:!1,forceNamedIndexes:!0}),xe(n.selector,e),n}attachDefaultQueryIndex(e){if(!this.fromSelector||e.use_index)return;const t=$.tableName(this.fromSelector);let r=[];try{r=$.defaultQueryAttributes(this.fromSelector)}catch{r=[]}if(!r.length)return;const n=this.collectStartsWithRangeAttrs(e.selector||{}),i=r.filter(e=>n.has(e));if(!i.length)return;const o=(Array.isArray(e.sort)?e.sort:[]).map(e=>Object.entries(e||{})[0]).find(e=>e&&i.includes(e[0])),s=Z([t,o?.[0]||i[0],"defaultQuery"],o?.[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,n])=>{if(e!==P.AND&&e!==P.OR&&n&&"object"==typeof n&&!Array.isArray(n)){const r=Object.prototype.hasOwnProperty.call(n,"$gte"),i=Object.prototype.hasOwnProperty.call(n,"$lt");r&&i&&t.add(e)}r(n)}))};return r(e),t}processRecord(t,r){const n=$.pk(this.fromSelector),i=e.get(this.fromSelector,e.key(N.ID,n))?.type;if(t[k.ID]){const[,...e]=t[k.ID].split(k.SEPARATOR),r=e.join("_");t[n]=l.parseValue(i,r)}return this.adapter.revert(t,this.fromSelector,t[n],void 0,r)}async raw(e,...t){const{ctx:r}=this.logCtx(t,this.raw),n=e?.aggregateInfo;if(e?.aggregate&&n)return this.executeAggregate(n,r);const i=await this.adapter.raw(e,!0,r),o=i.map(e=>this.processRecord(e,r));if(this.manualAggregation){const e=this.executeManualAggregation(o,this.manualAggregation,r);return this.manualAggregation=void 0,e}return!this.selectSelector&&this.groupBySelectors?.length?this.groupSelectResults(o):this.selectSelector?i:await this.applyAfterHandlersToResult(o,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=W(this.fromSelector,e,t);if(!r.length)return;const n=r[0],i=$.tableName(this.fromSelector),o=G(i,n.attribute,e,n),s=n.ddoc||z(i,o),a={reduce:void 0!==n.reduce||!n.returnDocs};return"distinct"!==e&&"groupBy"!==e||(a.group=!0),{kind:e,meta:n,descriptor:{ddoc:s,view:o,options:a}}}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(),n=e,i=await r.view(n.descriptor.ddoc,n.descriptor.view,n.descriptor.options,t);return this.processViewResponse(e,i)}async handleAverage(e,t){if("avg"!==e.kind)throw new d("Average descriptor is not valid");const[r,n]=[e.sumDescriptor,e.countDescriptor],i=this.getCouchAdapter(),[o,s]=await Promise.all([i.view(r.ddoc,r.view,r.options,t),i.view(n.ddoc,n.view,n.options,t)]),a=o.rows?.[0]?.value??0,c=s.rows?.[0]?.value??0;return c?a/c:0}executeManualAggregation(e,t,r){if(!this.fromSelector)throw new d("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 d("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,n=new Set;return r.forEach(e=>n.add(JSON.stringify(e))),n.size}computeDistinctValues(e,t){if(!t)return[];const r=this.collectValues(e,t),n=new Set,i=[];return r.forEach(e=>{const t=JSON.stringify(e);n.has(t)||(n.add(t),i.push(e))}),i}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 n=this.collectValues(e,t).filter(e=>null!=e);let i=null,o=null;for(const e of n){const t=this.normalizeComparable(e);null!==t&&(null!==o?("min"===r&&o>t||"max"===r&&t>o)&&(o=t,i=e):(o=t,i=e))}return i}computeGroupBy(e,t){const r={},n=this.collectValues(e,t);return e.forEach((e,t)=>{const i=this.groupKey(n[t]);r[i]||(r[i]=[]),r[i].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 n=this.groupKey(this.convertValueByAttribute(t,e[t]));r[n]||(r[n]=[]),r[n].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(t){if(!t||!this.fromSelector)return;if(this.attributeTypeCache.has(t))return this.attributeTypeCache.get(t);const r=e.type(this.fromSelector,t)??e.getPropDesignTypes?.(this.fromSelector,t)?.designType,n=this.normalizeMetaType(r);return this.attributeTypeCache.set(t,n),n}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,r){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 d(`${r} 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 r=this.decoratorForKind(e),n=this.fromSelector?$.tableName(this.fromSelector):"<unknown table>";return new g(`${r} decorator is required for CouchDB ${e} aggregation${t?` on "${t}"`:""} on table "${n}".`)}decoratorForKind(e){return{count:"@count",sum:"@sum",min:"@min",max:"@max",distinct:"@distinct",groupBy:"@groupBy",view:"@view",avg:"@avg"}[e]||"@"+e}processViewResponse(e,t){if("avg"===e.kind)throw new d("Average results should be handled before processing rows");const r=t.rows||[],n=e,i=n.meta;return n.countDistinct?r.length||0:"distinct"===n.kind||"groupBy"===n.kind?r.map(e=>this.convertAggregateValue(n.meta.attribute,e.key??e.value)):i.returnDocs?r.map(e=>e.value??e.doc??e):r.length?this.convertAggregateValue(n.meta.attribute,r[0].value??r[0].key??null):"count"===n.kind?0:null}isViewAggregate(e){return"avg"!==e.kind}getCouchAdapter(){return this.adapter}parseCondition(e){const{attr1:t,operator:r,comparison:i}=e;if(r===n.STARTS_WITH){if("string"!=typeof t)throw new d("STARTS_WITH requires an attribute name");if("string"!=typeof i)throw new d("STARTS_WITH requires a string comparison");const e={start:o=i,end:$e(o)};return{selector:{[t]:{$gte:e.start,$lt:e.end}}}}var o,a;if(r===n.ENDS_WITH){if("string"!=typeof t)throw new d("ENDS_WITH requires an attribute name");if("string"!=typeof i)throw new d("ENDS_WITH requires a string comparison");return{selector:{[t]:{$regex:(a=i,a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"$")}}}}if(r===n.BETWEEN){const e=t;if(!Array.isArray(i)||2!==i.length)throw new d("BETWEEN operator requires [min, max] comparison");const[r,o]=i,s={};return s[e]={},s[e][ue(n.BIGGER_EQ)]=r,s[e][ue(n.SMALLER_EQ)]=o,{selector:s}}let c={};if(-1===[s.AND,s.OR,n.NOT].indexOf(r))c[t]={},c[t][ue(r)]=i;else if(r===n.NOT)c=this.parseCondition(t).selector,c[ue(n.NOT)]={},c[ue(n.NOT)][t.attr1]=i;else{const e=this.parseCondition(t).selector,n=this.parseCondition(i).selector;c=((e,t,r)=>{const n={selector:{}};return n.selector[e]=[t,r],n})(ue(r),e,n).selector}return{selector:c}}}class Be extends p{constructor(e,t,r){super(e,t,r),[this.create,this.createAll,this.update,this.updateAll].forEach(e=>{const t=e.name;x(this,e,this[t+"Prefix"])})}Statement(e){return new je(this,e)}Paginator(e,t,r){return new ce(this,e,t,r)}async initialize(){const e=p.models(this.flavour);return this.index(...e)}repository(){return oe}assignMetadata(e,t){return t?(re(e,t),e):e}assignMultipleMetadata(e,t){return e.forEach((e,r)=>(re(e,t[r]),e)),e}prepare(e,...t){const{log:n}=this.logCtx(t,this.prepare),i=e.segregate(),o=Object.entries(i.model).reduce((t,[r,n])=>{if(void 0===n)return t;const i=$.columnName(e.constructor,r);if(this.isReserved(i))throw new b(`Property name ${i} is reserved`);return n=n instanceof Date?new Date(n):n,t[i]=n,t},{});return e[r.METADATA]&&(n.silly("Passing along persistence metadata for "+e[r.METADATA]),Object.defineProperty(o,r.METADATA,{enumerable:!1,writable:!0,configurable:!0,value:e[r.METADATA]})),{record:o,id:e[$.pk(e.constructor)],transient:i.transient}}createPrefix(e,t,r,...n){const{ctxArgs:i}=this.logCtx(n,this.createPrefix),o=$.tableName(e),s={};return s[k.TABLE]=o,s[k.ID]=this.generateId(o,t),Object.assign(s,r),[e,t,s,...i]}createAllPrefix(e,t,r,...n){const i=$.tableName(e);if(t.length!==r.length)throw new b("Ids and models must have the same length");const{ctxArgs:o}=this.logCtx(n,this.createAllPrefix),s=t.map((e,t)=>{const n={};return n[k.TABLE]=i,n[k.ID]=this.generateId(i,e),Object.assign(n,r[t]),n});return[e,t,s,...o]}updatePrefix(e,t,n,...i){const o=$.tableName(e),{ctxArgs:s}=this.logCtx(i,this.updatePrefix),a={};a[k.TABLE]=o,a[k.ID]=this.generateId(o,t);const c=n[r.METADATA];if(!c)throw new b("No revision number found for record with id "+t);return Object.assign(a,n),a[k.REV]=c,[e,t,a,...s]}updateAllPrefix(e,t,n,...i){const o=$.tableName(e);if(t.length!==n.length)throw new b("Ids and models must have the same length");const{ctxArgs:s}=this.logCtx(i,this.updateAllPrefix),a=t.map((e,t)=>{const i={};i[k.TABLE]=o,i[k.ID]=this.generateId(o,e);const s=n[t][r.METADATA];if(!s)throw new b("No revision number found for record with id "+e);return Object.assign(i,n[t]),i[k.REV]=s,i});return[e,t,a,...s]}generateId(e,t){const r=k.SEPARATOR;return"string"==typeof t&&t.startsWith(`${e}${r}`)&&t.split(r).length>=2?t:`${e}${r}${t+""}`}parseError(e,t){return Be.parseError(e,t)}isReserved(e){return!!e.match(M)}static parseError(e,t){if(e instanceof O)return e;let r="";if("string"==typeof e){if(r=e,r.match(/already exist|update conflict/g))return new D(r);if(r.match(/missing|deleted/g))return new T(r)}else e.code?(r=e.code,t=t||e.message):e.statusCode?(r=e.statusCode,t=t||e.message):r=e.message;switch(r.toString()){case"401":case"412":case"409":return new D(t);case"404":return new T(t);case"400":return r.toString().match(/No\sindex\sexists/g)?new se(e):new b(e);default:return r.toString().match(/ECONNREFUSED/g)?new h(e):new b(e)}}static setMetadata(e,t){re(e,t)}static getMetadata(e){return ne(e)}static removeMetadata(e){ie(e)}}function Ce(e,r){let i={};return Array.isArray(e)?i.compositions=e:"string"==typeof e?i.name=e:e&&(i=e),"string"==typeof r?i.name=r:r&&(i=Object.assign({},i,r)),void 0===i.returnDocs&&(i.returnDocs=!0),t.for(n.GROUP_BY).define({decorator:e=>m(n.GROUP_BY,"groupBy",e),args:[i]}).apply()}function Me(e,r){let i={};return e instanceof o?i.condition=e:"object"==typeof e&&e?i=e:void 0!==e&&(i.value=e),r&&(i=Object.assign({},i,r)),t.for(n.COUNT).define({decorator:e=>m(n.COUNT,"count",e),args:[i]}).apply()}function ke(e,r){let i={};return e instanceof o?i.condition=e:e&&(i=e),r&&(i=Object.assign({},i,r)),t.for(n.SUM).define({decorator:e=>m(n.SUM,"sum",e),args:[i]}).apply()}function Ie(e,r){let i={};return e instanceof o?i.condition=e:e&&(i=e),r&&(i=Object.assign({},i,r)),t.for(n.MAX).define({decorator:e=>m(n.MAX,"max",e),args:[i]}).apply()}function Le(e,r){let i={};return e instanceof o?i.condition=e:e&&(i=e),r&&(i=Object.assign({},i,r)),t.for(n.MIN).define({decorator:e=>m(n.MIN,"min",e),args:[i]}).apply()}function Pe(e,r){let i={};return e instanceof o?i.condition=e:e&&(i=e),r&&(i=Object.assign({},i,r)),t.for(n.DISTINCT).define({decorator:e=>m(n.DISTINCT,"distinct",e),args:[i]}).apply()}j([C(),B("design:type",Function),B("design:paramtypes",[Object]),B("design:returntype",je)],Be.prototype,"Statement",null),j([C(),B("design:type",Function),B("design:paramtypes",[Object,String]),B("design:returntype",Object)],Be.prototype,"assignMetadata",null),j([C(),B("design:type",Function),B("design:paramtypes",[Array,Array]),B("design:returntype",Array)],Be.prototype,"assignMultipleMetadata",null),j([C(),B("design:type",Function),B("design:paramtypes",[Object,Object,Object,Object]),B("design:returntype",Array)],Be.prototype,"createPrefix",null),j([C(),B("design:type",Function),B("design:paramtypes",[Object,Array,Array,Object]),B("design:returntype",void 0)],Be.prototype,"createAllPrefix",null),j([C(),B("design:type",Function),B("design:paramtypes",[Object,Object,Object,Object]),B("design:returntype",void 0)],Be.prototype,"updatePrefix",null),j([C(),B("design:type",Function),B("design:paramtypes",[Object,Array,Array,Object]),B("design:returntype",void 0)],Be.prototype,"updateAllPrefix",null);const Ve="##VERSION##",_e="##COMMIT##",Re="##FULL_VERSION##",qe="##PACKAGE##";e.registerLibrary(qe,Ve);export{_e as COMMIT,Be as CouchDBAdapter,V as CouchDBConst,P as CouchDBGroupOperator,k as CouchDBKeys,L as CouchDBOperator,ce as CouchDBPaginator,I as CouchDBQueryLimit,oe as CouchDBRepository,je as CouchDBStatement,Re as FULL_VERSION,se as IndexError,ae as IndexPlanningError,qe as PACKAGE_NAME,Ve as VERSION,Ee as attachGeneratedUseIndex,Ae as buildGeneratedIndexCandidates,X as collectViewMetadata,Me as count,Pe as distinct,Te as enableMangoExecutionStats,De as ensureDeterministicSort,be as findGeneratedIndexCandidateByName,W as findViewMetadata,z as generateDesignDocName,U as generateIndexDoc,Z as generateIndexName,te as generateIndexes,ee as generateModelIndexName,K as generateViewIndexes,G as generateViewName,H as generateViews,he as getEqualitySelectorFields,ne as getMetadata,me as getRangeSelectorFields,ve as getRequiredMangoIndexShape,pe as getSortDirection,ge as getSortFields,Ce as groupBy,Ie as max,Le as min,fe as normalizeSortField,_ as reAuth,ie as removeMetadata,Ne as requireGeneratedUseIndex,M as reservedAttributes,we as resolveGeneratedIndexForQuery,Se as reverseRequiredShapeToIndexDeclaration,re as setMetadata,ke as sum,q as testReservedAttributes,ue as translateOperators,Y as viewIndexDefinition,xe as warnScanProneMangoOperators,R as wrapDocumentScope};
1
+ import{Metadata as e,Decoration as t}from"@decaf-ts/decoration";import{PersistenceKeys as r,Operator as n,OrderDirection as i,Condition as o,GroupOperator as s,Repository as a,Paginator as c,PagingError as u,Sequence as l,QueryError as d,Statement as f,UnsupportedError as g,Adapter as p,ConnectionError as h,applyViewDecorator as m}from"@decaf-ts/core";import{DefaultSeparator as y,OperationKeys as A,InternalError as b,enforceDBDecorators as w,ValidationError as v,BulkCrudOperationKeys as S,reduceErrorsToPrint as E,BaseError as O,DBKeys as N,prefixMethod as x,ConflictError as D,NotFoundError as T}from"@decaf-ts/db-decorators";import{Model as $}from"@decaf-ts/decorator-validation";import{__decorate as j,__metadata as B}from"tslib";import{final as C}from"@decaf-ts/logging";const M=/^_.*$/g,k={SEPARATOR:"__",ID:"_id",REV:"_rev",DELETED:"_deleted",TABLE:"??table",SEQUENCE:"??sequence",DDOC:"ddoc",NATIVE:"__native",INDEX:"index",VIEW:"view"},I=250,L={EQUAL:"$eq",DIFFERENT:"$ne",BIGGER:"$gt",BIGGER_EQ:"$gte",SMALLER:"$lt",SMALLER_EQ:"$lte",NOT:"$not",IN:"$in",REGEXP:"$regex"},P={AND:"$and",OR:"$or"},V={NULL:"null"};async function R(e,t,r){return e.auth(t,r)}function _(e,t,r,n){const i=e.use?e.use(t):e;return["insert","get","put","destroy","find","view"].forEach(t=>{const o=i[t];Object.defineProperty(i,t,{enumerable:!1,configurable:!0,value:async(...t)=>(await R(e,r,n),o.call(i,...t))})}),Object.defineProperty(i,k.NATIVE,{enumerable:!1,configurable:!1,writable:!1,value:e}),i}function q(e){return e.match(/^_.*$/g)}function U(e,t,n,i,o=y){const s={};let a;if(s[k.TABLE]={},s[k.TABLE].$eq=t,i){const t={};t[e]=i;const r=(n||[]).map(e=>{const t={};return t[e]=i,t}),o={};o[k.TABLE]=i,a=[t,...r,o]}else a=[e,...n||[],k.TABLE];const c=((e,t,n,i,o=y)=>{const s=[r.INDEX,t,e];return n&&s.push(...n),i&&s.push(i),s.join(o)})(e,t,n,i,o);return{index:{fields:a},ddoc:[c,k.DDOC].join(o),name:c}}function Q(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 J(e,t){const{attr1:r,operator:i,comparison:a}=e;if(r instanceof o){const e=J(r,t);if(i===n.NOT)return`!(${e})`;const o=J(a,t);return i===s.AND?`(${e} && ${o})`:i===s.OR?`(${e} || ${o})`:e}const c=`${t}[${JSON.stringify(r)}]`;switch(i){case n.EQUAL:return`${c} === ${Q(a)}`;case n.DIFFERENT:return`${c} !== ${Q(a)}`;case n.BIGGER:return`${c} > ${Q(a)}`;case n.BIGGER_EQ:return`${c} >= ${Q(a)}`;case n.SMALLER:return`${c} < ${Q(a)}`;case n.SMALLER_EQ:return`${c} <= ${Q(a)}`;case n.IN:return`(${Q(a)}).indexOf(${c}) !== -1`;case n.REGEXP:return`${a instanceof RegExp?Q(a):`new RegExp(${JSON.stringify(a)})`}.test(${c})`;case n.NOT:return`!(${c} === ${Q(a)})`;default:return"true"}}function F(e,t,r){return e?Array.isArray(e)?e:[e]:t?[t,...r||[]]:r||[]}function G(e,t,r,n,i=y){return n.name?n.name:[e,t,r,"view"].join(i).replace(/\s+/g,"_")}function z(e,t,r=y){return[e,t,k.DDOC].join(r)}function W(t,r,i){const o={view:n.VIEW,groupBy:n.GROUP_BY,count:n.COUNT,sum:n.SUM,max:n.MAX,min:n.MIN,distinct:n.DISTINCT}[r];if(!o)return[];const s=e.get(t,o)||{};return Object.entries(s).flatMap(([e,t])=>t&&"object"==typeof t?Object.values(t).map(t=>({...t,kind:r,attribute:t.attribute||e})).filter(e=>!i||e.attribute===i):[])}function X(t,r,n){const i=e.get(t,r)||{};return Object.entries(i).flatMap(([e,t])=>t&&"object"==typeof t?Object.values(t).map(t=>{const r=t;return{...r,kind:n,attribute:r.attribute||e}}):[])}function H(e){const t={},r=[[k.VIEW,"view"],[n.GROUP_BY,"groupBy"],[n.COUNT,"count"],[n.SUM,"sum"],[n.MAX,"max"],[n.MIN,"min"],[n.DISTINCT,"distinct"]];return e.forEach(e=>{const n=$.tableName(e);r.flatMap(([t,r])=>X(e,t,r)).forEach(e=>{const r=e.attribute,i=G(n,r,e.kind,e),s="_design/"+(e.ddoc||z(n,i)),a=((e,t,r,n)=>{const i=((e,t,r)=>{if(r.map)return"function"==typeof r.map?r.map.toString():r.map;const n=[];if(n.push(`doc[${JSON.stringify(k.TABLE)}] === ${JSON.stringify(e)}`),r.condition)if(r.condition instanceof o)n.push(J(r.condition,"doc"));else if("string"==typeof r.condition)n.push(r.condition);else{const e=o.from(r.condition);n.push(J(e,"doc"))}"count"===r.kind&&void 0!==r.value&&n.push(`doc[${JSON.stringify(t)}] === ${Q(r.value)}`);const i=((e,t="doc")=>{if(!e)return;if("string"==typeof e)return e;const r=e.field||"roles",n=e.roles||[];if(!n.length)return e.expression;const i=`${t}[${JSON.stringify(r)}] || []`;return"all"===(e.mode||"any")?n.map(e=>`${i}.indexOf(${JSON.stringify(e)}) !== -1`).join(" && "):n.map(e=>`${i}.indexOf(${JSON.stringify(e)}) !== -1`).join(" || ")})(r.auth,"doc");i&&n.push(i);const s=n.length?n.join(" && "):"true",a=((e,t,r)=>{const n=F(e,t,r);return 1===n.length?`doc[${JSON.stringify(n[0])}]`:`[${n.map(e=>`doc[${JSON.stringify(e)}]`).join(", ")}]`})(r.key,t,r.compositions),c=((e,t)=>"doc"===e?"doc":e?Array.isArray(e)?`[${e.map(e=>`doc[${JSON.stringify(e)}]`).join(", ")}]`:"string"==typeof e?`doc[${JSON.stringify(e)}]`:Q(e):`doc[${JSON.stringify(t)}]`)(r.value??(r.returnDocs&&"sum"!==r.kind?"doc":void 0),t);return`function (doc) {\n if (!(${s})) return;\n emit(${a}, ${c});\n}`})(n,t,r),s=r.reduce?"function"==typeof r.reduce?r.reduce.toString():r.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:s}})(e.kind,r,e,n);t[s]||(t[s]={_id:s,language:"javascript",views:{}}),t[s].views[i]=a})}),Object.values(t)}function K(e){const t={},r=[[k.VIEW,"view"],[n.GROUP_BY,"groupBy"],[n.COUNT,"count"],[n.SUM,"sum"],[n.MAX,"max"],[n.MIN,"min"],[n.DISTINCT,"distinct"]];return e.forEach(e=>{const n=$.tableName(e);r.flatMap(([t,r])=>X(e,t,r)).forEach(e=>{const r=F(e.key,e.attribute,e.compositions);if(!r.length)return;const o=r[0],s=r.slice(1),a=e.directions||[i.ASC,i.DSC],c=U(o,n,s);t[c.name||""]=c,a.forEach(e=>{const r=U(o,n,s,e);t[r.name||""]=r})})}),Object.values(t)}function Y(e){const t=F(e.key,e.attribute);return{attribute:t[0],compositions:t.slice(1).concat(e.compositions||[]),directions:e.directions}}function Z(e,t,r,n=y){return[...e.map(e=>e===k.TABLE?"table":e),...r||[],...t?[t]:[],k.INDEX].join(n)}function ee(e,t,n=[],i,o=y){return[e,t,...n,...i?[i]:[],r.INDEX].join(o)}function te(e){const t=Z([k.TABLE]),r={};return r[t]={index:{fields:[k.TABLE]},name:t,ddoc:t,type:"json"},e.forEach(e=>{const t=$.tableName(e);let n=[];try{n=$.defaultQueryAttributes(e)}catch(e){n=[]}n.forEach(e=>{const n=Z([t,e,"defaultQuery"]),o={[k.TABLE]:{$eq:t}};r[n]={index:{fields:[k.TABLE,e]},name:n,ddoc:n,type:"json"},r[n].index.partial_filter_selector=o,[i.ASC,i.DSC].forEach(n=>{const i=Z([t,e,"defaultQuery"],n);r[i]={index:{fields:[{[k.TABLE]:n},{[e]:n}]},name:i,ddoc:i,type:"json"}})});const o=$.indexes(e);Object.entries(o).forEach(([e,n])=>{const o=[];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&&o.push([e,t])}):o.push([e,r])}),o.forEach(([e,n])=>{if(!n)return;let{directions:o,compositions:s}=n;s=s||[];const a=[e,...s],c={[k.TABLE]:{$eq:t}};function u(n,i){const o=ee(t,e,s,i),u=[k.TABLE,...a],l=n?[{[k.TABLE]:n},...a.map(e=>({[e]:n}))]:u;r[o]={index:{fields:l},name:o,ddoc:o,type:"json"},n||(r[o].index.partial_filter_selector=c)}u(),Array.from(new Set((o||[i.ASC]).map(e=>(e+"").toLowerCase()))).filter(e=>e===i.ASC||e===i.DSC).forEach(e=>{u(e,e)})})})}),K(e).forEach(e=>{e.name&&(r[e.name]=e)}),Object.values(r)}function re(e,t){Object.defineProperty(e,r.METADATA,{enumerable:!1,configurable:!0,writable:!0,value:t})}function ne(e){const t=Object.getOwnPropertyDescriptor(e,r.METADATA);return t?t.value:void 0}function ie(e){Object.getOwnPropertyDescriptor(e,r.METADATA)&&delete e[r.METADATA]}class oe extends a{constructor(e,t,r=!1){super(e,t,r)}assignMetadata(e,t){const r=(e,t)=>{const r=ne(t??e);return r&&re(e,r),e};return Array.isArray(e)?e.map((e,n)=>{const i=Array.isArray(t)?t[n]:t;return r(e,i)}):r(e,Array.isArray(t)?t?.[0]:t)}async create(e,...t){const r=await super.create(e,...t);return this.assignMetadata(r),this.assignMetadata(e,r),r}async createAll(e,...t){const r=await super.createAll(e,...t);return this.assignMetadata(r),this.assignMetadata(e,r),r}async read(e,...t){const r=await super.read(e,...t);return this.assignMetadata(r)}async readAll(e,...t){const r=await super.readAll(e,...t);return this.assignMetadata(r)}async update(e,...t){const r=await super.update(e,...t);return this.assignMetadata(r),this.assignMetadata(e,r),r}async updateAll(e,...t){const r=await super.updateAll(e,...t);return this.assignMetadata(r),this.assignMetadata(e,r),r}async delete(e,...t){const r=await super.delete(e,...t);return this.assignMetadata(r)}async deleteAll(e,...t){const r=await super.deleteAll(e,...t);return this.assignMetadata(r)}async updatePrefix(e,...t){const{ctx:r,ctxArgs:n,log:i}=(await this.logCtx(t,A.UPDATE,!0)).for(this.updatePrefix),o=r.get("ignoreHandlers"),s=r.get("ignoreValidation");i.silly(`handlerSetting: ${o}, validationSetting: ${s}`);const a=e[this.pk];if(!a)throw new b("No value for the Id is defined under the property "+this.pk);let c,u;if(r.get("applyUpdateValidation")&&(c=await this.read(a),u=c?ne(c):void 0,r.get("mergeForUpdate")&&(e=$.merge(c,e,this.class))),o||await w(this,r,e,A.UPDATE,A.ON,c),!s){const t=r.get("ignoredValidationProperties")||[];i.silly("ignored validation properties: "+t);const n=await Promise.resolve(e.hasErrors(c,...t));if(n)throw new v(n.toString())}return u&&re(e,u),[e,...n,c]}async updateAllPrefix(e,...t){const{ctx:r,ctxArgs:n,log:i}=(await this.logCtx(t,S.UPDATE_ALL,!0)).for(this.updateAllPrefix),o=r.get("ignoreHandlers"),s=r.get("ignoreValidation");i.silly(`handlerSetting: ${o}, ignoredValidation: ${s}`);const a=e.map(e=>{const t=e[this.pk];if(!t)throw new b("missing id on update operation");return t});let c;if(r.get("applyUpdateValidation")&&(c=await this.readAll(a,r),e=e.map((e,t)=>{r.get("mergeForUpdate")&&(e=$.merge(c[t],e,this.class));const n=ne(c[t]);return n&&re(e,n),e})),o||await Promise.all(e.map((e,t)=>w(this,r,e,A.UPDATE,A.ON,c?c[t]:void 0))),!s){const t=r.get("ignoredValidationProperties")||[];let n;i.silly("ignored validation properties: "+t),n=r.get("applyUpdateValidation")?await Promise.all(e.map((e,r)=>Promise.resolve(e.hasErrors(c[r],...t)))):await Promise.resolve(e.map(e=>e.hasErrors(...t)));const o=E(n);if(o)throw new v(o)}return[e,...n,c]}}class se extends O{constructor(e){super(se.name,e,404)}}class ae extends se{constructor(e,t,r){super(e),this.name="IndexPlanningError",this.suggestion=t,this.query=r}}class ce extends c{constructor(e,t,r,n){super(e,t,r,n),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(t=1,r,...n){const{log:i,ctxArgs:o,ctx:s}=this.adapter.logCtx([r,...n],this.page);if(this.isPreparedStatement())return await this.pagePrepared(t,...o);t=this.validatePage(t??1);const a=Object.assign({},this.statement);if(a.limit=this.size,1===t)this.isValidBookmark(r)?a.bookmark=r:delete a.bookmark;else{const e=r||this._bookmarks.get(t);if(!this.isValidBookmark(e))throw new u("Random page access requires a cached CouchDB bookmark. Start at page 1 and page forward, or pass an explicit bookmark.");delete a.skip,a.bookmark=e}delete a.skip;const c=await this.adapter.raw(a,!1,...o),{docs:d,bookmark:f,warning:g}=c;if(g&&i.warn(g),c.execution_stats&&i.debug("Mango execution stats: "+JSON.stringify(c.execution_stats)),!this.clazz)throw new u("No statement target defined");const p=$.pk(this.clazz),h=e.get(this.clazz,e.key(N.ID,p))?.type,m=a.fields&&a.fields.length?d:d.map(e=>this.adapter.revert(e,this.clazz,l.parseValue(h,e[p]),void 0,s));return this._bookmark=this.isValidBookmark(f)?f:void 0,this._currentPage=t,this.isValidBookmark(f)&&this._bookmarks.set(t+1,f),this.isValidBookmark(f)&&d.length>=this.size||(this._knownLastPage=t,this._totalPages=t,this._recordCount=(t-1)*this.size+d.length),m}}function ue(e){for(const t of[L,P]){const r=Object.keys(t).find(t=>t===e);if(r)return t[r]}throw new d("Could not find adapter translation for operator "+e)}const le=new Set(["$or","$in","$regex","$nin","$not","$ne","$nor"]);function de(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function fe(e,t){return!(!e||"object"!=typeof e)&&(Array.isArray(e)?e.some(e=>fe(e,t)):Object.entries(e).some(([e,r])=>e===t||fe(r,t)))}function ge(e){if("string"==typeof e)return{field:e};if(Array.isArray(e))return e.length?{field:e[0]+""}:void 0;const[t,r]=Object.entries(e||{})[0]||[];return t?{field:t,direction:((r||i.ASC)+"").toLowerCase()}:void 0}function pe(e){return(e.sort||[]).map(ge).filter(Boolean).map(e=>e.field)}function he(e){return(e.sort||[]).map(ge).find(Boolean)?.direction}function me(e={}){const t=new Set,r=e=>{if(e&&"object"==typeof e)if(Array.isArray(e))e.forEach(r);else if(Array.isArray(e[P.AND]))e[P.AND].forEach(r);else for(const[n,i]of Object.entries(e))n!==P.OR&&n!==P.AND?de(i)?Object.prototype.hasOwnProperty.call(i,"$eq")&&t.add(n):t.add(n):r(i)};return r(e),t}function ye(e={}){const t=new Set,r=e=>{if(e&&"object"==typeof e)if(Array.isArray(e))e.forEach(r);else if(Array.isArray(e[P.AND]))e[P.AND].forEach(r);else for(const[n,i]of Object.entries(e))n!==P.OR&&n!==P.AND?de(i)&&(Object.prototype.hasOwnProperty.call(i,"$gt")||Object.prototype.hasOwnProperty.call(i,"$gte")||Object.prototype.hasOwnProperty.call(i,"$lt")||Object.prototype.hasOwnProperty.call(i,"$lte"))&&t.add(n):r(i)};return r(e),t}function Ae(e){const t=$.tableName(e),r=[],n=Z([k.TABLE]);r.push({name:n,ddoc:n,fields:[k.TABLE],source:"table"});let o=[];try{o=$.defaultQueryAttributes(e)}catch{o=[]}for(const e of o){const n=Z([t,e,"defaultQuery"]);r.push({name:n,ddoc:n,fields:[k.TABLE,e],source:"defaultQuery"});for(const n of[i.ASC,i.DSC]){const i=Z([t,e,"defaultQuery"],n);r.push({name:i,ddoc:i,fields:[k.TABLE,e],direction:n,source:"defaultQuery"})}}const s=$.indexes(e);return Object.entries(s||{}).forEach(([e,n])=>{Object.values(n||{}).forEach(n=>{if(!n||!de(n))return;const o=n,s=o.compositions||[],a=o.directions||[i.ASC],c=[k.TABLE,e,...s],u=ee(t,e,s);r.push({name:u,ddoc:u,fields:c,source:"index"});const l=Array.from(new Set(a.map(e=>(e+"").toLowerCase()))).filter(e=>e===i.ASC||e===i.DSC);for(const n of l){const i=ee(t,e,s,n);r.push({name:i,ddoc:i,fields:c,direction:n,source:"index"})}})}),r}function be(e){return Ae(e)}function we(e,t){return Ae(e).find(e=>e.name===t||e.ddoc===t)}function ve(e,t,r={}){if(t.use_index)return;if(fe(t.selector,P.OR)||fe(t.selector,"$nor"))return;const n=!1!==r.preserveDefaultQuery,i=Ae(e),o=me(t.selector),s=ye(t.selector),a=pe(t),c=he(t);o.add(k.TABLE);const u=i.map(e=>{if(e.direction&&c&&e.direction!==c)return;if(!e.fields.includes(k.TABLE))return;if(e.fields[0]!==k.TABLE)return;const t=e.fields.filter(e=>e!==k.TABLE),i=0===a.length||a.every(e=>t.includes(e)),u=a.some(e=>t.includes(e)),l=0===s.size||Array.from(s).every(e=>t.includes(e)),d=Array.from(s).some(e=>t.includes(e));if(r.requireSortCoverage&&a.length&&!i)return;const f=t.filter(e=>o.has(e)).length,g=t.filter(e=>s.has(e)).length,p=t.filter(e=>a.includes(e)).length;if(!f&&!g&&!p)return;let h=0;return"defaultQuery"===e.source&&n&&(h+=100),"index"===e.source&&(h+=50),h+=30*f,h+=25*g,h+=20*p,i&&a.length&&(h+=20),l&&s.size&&(h+=20),u&&(h+=5),d&&(h+=5),e.direction&&c&&(h+=10),{candidate:e,score:h}}).filter(Boolean);if(!u.length)return;u.sort((e,t)=>t.score!==e.score?t.score-e.score:e.candidate.fields.length-t.candidate.fields.length);const l=u[0].candidate;return{candidate:l,use_index:[l.ddoc,l.name]}}function Se(e,t){const r=$.tableName(e),n=e.name,i=Array.from(me(t.selector)),o=Array.from(ye(t.selector)),s=pe(t),a=he(t),c=[k.TABLE];for(const e of i)e===k.TABLE||c.includes(e)||c.push(e);for(const e of o)e===k.TABLE||c.includes(e)||c.push(e);for(const e of s)e===k.TABLE||c.includes(e)||c.push(e);return{tableName:r,modelName:n,equalityFields:i,rangeFields:o,sortFields:s,sortDirection:a,requiredFields:c}}function Ee(e,t){const r=Se(e,t),n=r.requiredFields.filter(e=>e!==k.TABLE);if(!n.length)throw new ae("Cannot infer @index declaration for query with no model fields.",{modelName:r.modelName,tableName:r.tableName,attribute:"",compositions:[],directions:[],expectedName:"",expectedDdoc:"",expectedFields:[k.TABLE],decorator:""},t);const o=n[0],s=n.slice(1),a=r.sortDirection||i.ASC,c=ee(r.tableName,o,s,a),u=[{[k.TABLE]:a},{[o]:a},...s.map(e=>({[e]:a}))],l=["@index({",s.length?` compositions: ${JSON.stringify(s)},`:void 0," directions: "+JSON.stringify([a]),"})",o+"!: <type>;"].filter(Boolean).join("\n");return{attribute:o,compositions:s,directions:[a],name:c,ddoc:c,fields:u,decorator:l}}function Oe(e,t,r,n={}){if(!e||t.use_index)return;if(!1===n.forceNamedIndexes&&!n.requireIndex)return;const i=ve(e,t,{preserveDefaultQuery:n.preserveDefaultQuery??!0,requireSortCoverage:n.requireSortCoverage??!1});if(i)return t.use_index=i.use_index,void r?.debug?.(`Attached Mango use_index=${JSON.stringify(i.use_index)} from ${i.candidate.source} metadata`);if(!n.requireIndex)return;const o=Ee(e,t);throw new ae(["No generated CouchDB index can satisfy this Mango query.\n","Model: "+e.name,"Table: "+Ne(e),"\nTo allow this query, declare the following index on the model attribute:\n",o.decorator,"\nThen regenerate/deploy indexes.\n\nExpected generated index:"," ddoc: "+o.ddoc," name: "+o.name," fields: "+JSON.stringify(o.fields)].join("\n"),{modelName:e.name,tableName:Ne(e),attribute:o.attribute,compositions:o.compositions,directions:o.directions,expectedName:o.name,expectedDdoc:o.ddoc,expectedFields:o.fields,decorator:o.decorator},t)}function Ne(e){return $.tableName(e)}function xe(e,t,r,n={}){Oe(e,t,r,{preserveDefaultQuery:!0,requireSortCoverage:n.requireSortCoverage??!0,requireIndex:!0,forceNamedIndexes:!0})}function De(e,t,r="selector"){if(e&&"object"==typeof e)if(Array.isArray(e))e.forEach((e,n)=>De(e,t,`${r}[${n}]`));else for(const[n,i]of Object.entries(e))le.has(n)&&t?.warn?.(`Mango query contains scan-prone operator ${n} at ${r}. This may bypass or weaken index usage and can produce slow queries.`),De(i,t,`${r}.${n}`)}function Te(e,t,r){if(!e.sort?.length)return;if(pe(e).includes(t))return;const n=r||he(e)||i.ASC;e.sort=[...e.sort,{[t]:n}]}function $e(e){e.execution_stats=!0}function je(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 Be extends f{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 r={};r[k.TABLE]={},r[k.TABLE]=$.tableName(this.fromSelector);const n={selector:r};if(this.selectSelector&&(n.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(o.and(this.whereCondition,o.attribute(k.TABLE).eq(n.selector[k.TABLE]))).selector,r=Object.keys(t);if(1===r.length&&-1!==Object.values(P).indexOf(r[0]))switch(r[0]){case P.AND:t[P.AND]=[...Object.values(t[P.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 n=r[0];return n===P.AND?e.push(...t[n]):e.push(t),e},[])],n.selector=t;break;case P.OR:{const e={};e[P.AND]=[t,...Object.entries(n.selector).map(([e,t])=>{const r={};return r[e]=t,r})],n.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach(([t,r])=>{n.selector[t]&&e.warn(`A ${t} query param is about to be overridden: ${n.selector[t]} by ${r}`),n.selector[t]=r})}if(this.orderBySelectors?.length){n.sort=n.sort||[],n.selector=n.selector||{};for(const[e,t]of this.orderBySelectors){const r=e,i={};i[r]=t,n.sort.push(i),n.selector[r]||(n.selector[r]={},n.selector[r].$gt=null)}}const i=!!this.manualAggregation;return this.limitSelector?n.limit=this.limitSelector:i||(e.warn("No limit selector defined. Using default couchdb limit of 250"),n.limit=250),this.offsetSelector&&(n.skip=this.offsetSelector),this.attachDefaultQueryIndex(n),(this.overrides?.forceNamedIndexes??!0)&&Oe(this.fromSelector,n,e,{preserveDefaultQuery:!0,requireSortCoverage:!1,forceNamedIndexes:!0}),De(n.selector,e),n}attachDefaultQueryIndex(e){if(!this.fromSelector||e.use_index)return;const t=$.tableName(this.fromSelector);let r=[];try{r=$.defaultQueryAttributes(this.fromSelector)}catch{r=[]}if(!r.length)return;const n=this.collectStartsWithRangeAttrs(e.selector||{}),i=r.filter(e=>n.has(e));if(!i.length)return;const o=(Array.isArray(e.sort)?e.sort:[]).map(e=>Object.entries(e||{})[0]).find(e=>e&&i.includes(e[0])),s=Z([t,o?.[0]||i[0],"defaultQuery"],o?.[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,n])=>{if(e!==P.AND&&e!==P.OR&&n&&"object"==typeof n&&!Array.isArray(n)){const r=Object.prototype.hasOwnProperty.call(n,"$gte"),i=Object.prototype.hasOwnProperty.call(n,"$lt");r&&i&&t.add(e)}r(n)}))};return r(e),t}processRecord(t,r){const n=$.pk(this.fromSelector),i=e.get(this.fromSelector,e.key(N.ID,n))?.type;if(t[k.ID]){const[,...e]=t[k.ID].split(k.SEPARATOR),r=e.join("_");t[n]=l.parseValue(i,r)}return this.adapter.revert(t,this.fromSelector,t[n],void 0,r)}async raw(e,...t){const{ctx:r}=this.logCtx(t,this.raw),n=e?.aggregateInfo;if(e?.aggregate&&n)return this.executeAggregate(n,r);const i=await this.adapter.raw(e,!0,r),o=i.map(e=>this.processRecord(e,r));if(this.manualAggregation){const e=this.executeManualAggregation(o,this.manualAggregation,r);return this.manualAggregation=void 0,e}return!this.selectSelector&&this.groupBySelectors?.length?this.groupSelectResults(o):this.selectSelector?i:await this.applyAfterHandlersToResult(o,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=W(this.fromSelector,e,t);if(!r.length)return;const n=r[0],i=$.tableName(this.fromSelector),o=G(i,n.attribute,e,n),s=n.ddoc||z(i,o),a={reduce:void 0!==n.reduce||!n.returnDocs};return"distinct"!==e&&"groupBy"!==e||(a.group=!0),{kind:e,meta:n,descriptor:{ddoc:s,view:o,options:a}}}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(),n=e,i=await r.view(n.descriptor.ddoc,n.descriptor.view,n.descriptor.options,t);return this.processViewResponse(e,i)}async handleAverage(e,t){if("avg"!==e.kind)throw new d("Average descriptor is not valid");const[r,n]=[e.sumDescriptor,e.countDescriptor],i=this.getCouchAdapter(),[o,s]=await Promise.all([i.view(r.ddoc,r.view,r.options,t),i.view(n.ddoc,n.view,n.options,t)]),a=o.rows?.[0]?.value??0,c=s.rows?.[0]?.value??0;return c?a/c:0}executeManualAggregation(e,t,r){if(!this.fromSelector)throw new d("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 d("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,n=new Set;return r.forEach(e=>n.add(JSON.stringify(e))),n.size}computeDistinctValues(e,t){if(!t)return[];const r=this.collectValues(e,t),n=new Set,i=[];return r.forEach(e=>{const t=JSON.stringify(e);n.has(t)||(n.add(t),i.push(e))}),i}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 n=this.collectValues(e,t).filter(e=>null!=e);let i=null,o=null;for(const e of n){const t=this.normalizeComparable(e);null!==t&&(null!==o?("min"===r&&o>t||"max"===r&&t>o)&&(o=t,i=e):(o=t,i=e))}return i}computeGroupBy(e,t){const r={},n=this.collectValues(e,t);return e.forEach((e,t)=>{const i=this.groupKey(n[t]);r[i]||(r[i]=[]),r[i].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 n=this.groupKey(this.convertValueByAttribute(t,e[t]));r[n]||(r[n]=[]),r[n].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(t){if(!t||!this.fromSelector)return;if(this.attributeTypeCache.has(t))return this.attributeTypeCache.get(t);const r=e.type(this.fromSelector,t)??e.getPropDesignTypes?.(this.fromSelector,t)?.designType,n=this.normalizeMetaType(r);return this.attributeTypeCache.set(t,n),n}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,r){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 d(`${r} 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 r=this.decoratorForKind(e),n=this.fromSelector?$.tableName(this.fromSelector):"<unknown table>";return new g(`${r} decorator is required for CouchDB ${e} aggregation${t?` on "${t}"`:""} on table "${n}".`)}decoratorForKind(e){return{count:"@count",sum:"@sum",min:"@min",max:"@max",distinct:"@distinct",groupBy:"@groupBy",view:"@view",avg:"@avg"}[e]||"@"+e}processViewResponse(e,t){if("avg"===e.kind)throw new d("Average results should be handled before processing rows");const r=t.rows||[],n=e,i=n.meta;return n.countDistinct?r.length||0:"distinct"===n.kind||"groupBy"===n.kind?r.map(e=>this.convertAggregateValue(n.meta.attribute,e.key??e.value)):i.returnDocs?r.map(e=>e.value??e.doc??e):r.length?this.convertAggregateValue(n.meta.attribute,r[0].value??r[0].key??null):"count"===n.kind?0:null}isViewAggregate(e){return"avg"!==e.kind}getCouchAdapter(){return this.adapter}parseCondition(e){const{attr1:t,operator:r,comparison:i}=e;if(r===n.STARTS_WITH){if("string"!=typeof t)throw new d("STARTS_WITH requires an attribute name");if("string"!=typeof i)throw new d("STARTS_WITH requires a string comparison");const e={start:o=i,end:je(o)};return{selector:{[t]:{$gte:e.start,$lt:e.end}}}}var o,a;if(r===n.ENDS_WITH){if("string"!=typeof t)throw new d("ENDS_WITH requires an attribute name");if("string"!=typeof i)throw new d("ENDS_WITH requires a string comparison");return{selector:{[t]:{$regex:(a=i,a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"$")}}}}if(r===n.BETWEEN){const e=t;if(!Array.isArray(i)||2!==i.length)throw new d("BETWEEN operator requires [min, max] comparison");const[r,o]=i,s={};return s[e]={},s[e][ue(n.BIGGER_EQ)]=r,s[e][ue(n.SMALLER_EQ)]=o,{selector:s}}let c={};if(-1===[s.AND,s.OR,n.NOT].indexOf(r))c[t]={},c[t][ue(r)]=i;else if(r===n.NOT)c=this.parseCondition(t).selector,c[ue(n.NOT)]={},c[ue(n.NOT)][t.attr1]=i;else{const e=this.parseCondition(t).selector,n=this.parseCondition(i).selector;c=((e,t,r)=>{const n={selector:{}};return n.selector[e]=[t,r],n})(ue(r),e,n).selector}return{selector:c}}}class Ce extends p{constructor(e,t,r){super(e,t,r),[this.create,this.createAll,this.update,this.updateAll].forEach(e=>{const t=e.name;x(this,e,this[t+"Prefix"])})}Statement(e){return new Be(this,e)}Paginator(e,t,r){return new ce(this,e,t,r)}async initialize(){const e=p.models(this.flavour);return this.index(...e)}repository(){return oe}assignMetadata(e,t){return t?(re(e,t),e):e}assignMultipleMetadata(e,t){return e.forEach((e,r)=>(re(e,t[r]),e)),e}prepare(e,...t){const{log:n}=this.logCtx(t,this.prepare),i=e.segregate(),o=Object.entries(i.model).reduce((t,[r,n])=>{if(void 0===n)return t;const i=$.columnName(e.constructor,r);if(this.isReserved(i))throw new b(`Property name ${i} is reserved`);return n=n instanceof Date?new Date(n):n,t[i]=n,t},{});return e[r.METADATA]&&(n.silly("Passing along persistence metadata for "+e[r.METADATA]),Object.defineProperty(o,r.METADATA,{enumerable:!1,writable:!0,configurable:!0,value:e[r.METADATA]})),{record:o,id:e[$.pk(e.constructor)],transient:i.transient}}createPrefix(e,t,r,...n){const{ctxArgs:i}=this.logCtx(n,this.createPrefix),o=$.tableName(e),s={};return s[k.TABLE]=o,s[k.ID]=this.generateId(o,t),Object.assign(s,r),[e,t,s,...i]}createAllPrefix(e,t,r,...n){const i=$.tableName(e);if(t.length!==r.length)throw new b("Ids and models must have the same length");const{ctxArgs:o}=this.logCtx(n,this.createAllPrefix),s=t.map((e,t)=>{const n={};return n[k.TABLE]=i,n[k.ID]=this.generateId(i,e),Object.assign(n,r[t]),n});return[e,t,s,...o]}updatePrefix(e,t,n,...i){const o=$.tableName(e),{ctxArgs:s}=this.logCtx(i,this.updatePrefix),a={};a[k.TABLE]=o,a[k.ID]=this.generateId(o,t);const c=n[r.METADATA];if(!c)throw new b("No revision number found for record with id "+t);return Object.assign(a,n),a[k.REV]=c,[e,t,a,...s]}updateAllPrefix(e,t,n,...i){const o=$.tableName(e);if(t.length!==n.length)throw new b("Ids and models must have the same length");const{ctxArgs:s}=this.logCtx(i,this.updateAllPrefix),a=t.map((e,t)=>{const i={};i[k.TABLE]=o,i[k.ID]=this.generateId(o,e);const s=n[t][r.METADATA];if(!s)throw new b("No revision number found for record with id "+e);return Object.assign(i,n[t]),i[k.REV]=s,i});return[e,t,a,...s]}generateId(e,t){const r=k.SEPARATOR;return"string"==typeof t&&t.startsWith(`${e}${r}`)&&t.split(r).length>=2?t:`${e}${r}${t+""}`}parseError(e,t){return Ce.parseError(e,t)}isReserved(e){return!!e.match(M)}static parseError(e,t){if(e instanceof O)return e;let r="";if("string"==typeof e){if(r=e,r.match(/already exist|update conflict/g))return new D(r);if(r.match(/missing|deleted/g))return new T(r)}else e.code?(r=e.code,t=t||e.message):e.statusCode?(r=e.statusCode,t=t||e.message):r=e.message;switch(r.toString()){case"401":case"412":case"409":return new D(t);case"404":return new T(t);case"400":return r.toString().match(/No\sindex\sexists/g)?new se(e):new b(e);default:return r.toString().match(/ECONNREFUSED/g)?new h(e):new b(e)}}static setMetadata(e,t){re(e,t)}static getMetadata(e){return ne(e)}static removeMetadata(e){ie(e)}}function Me(e,r){let i={};return Array.isArray(e)?i.compositions=e:"string"==typeof e?i.name=e:e&&(i=e),"string"==typeof r?i.name=r:r&&(i=Object.assign({},i,r)),void 0===i.returnDocs&&(i.returnDocs=!0),t.for(n.GROUP_BY).define({decorator:e=>m(n.GROUP_BY,"groupBy",e),args:[i]}).apply()}function ke(e,r){let i={};return e instanceof o?i.condition=e:"object"==typeof e&&e?i=e:void 0!==e&&(i.value=e),r&&(i=Object.assign({},i,r)),t.for(n.COUNT).define({decorator:e=>m(n.COUNT,"count",e),args:[i]}).apply()}function Ie(e,r){let i={};return e instanceof o?i.condition=e:e&&(i=e),r&&(i=Object.assign({},i,r)),t.for(n.SUM).define({decorator:e=>m(n.SUM,"sum",e),args:[i]}).apply()}function Le(e,r){let i={};return e instanceof o?i.condition=e:e&&(i=e),r&&(i=Object.assign({},i,r)),t.for(n.MAX).define({decorator:e=>m(n.MAX,"max",e),args:[i]}).apply()}function Pe(e,r){let i={};return e instanceof o?i.condition=e:e&&(i=e),r&&(i=Object.assign({},i,r)),t.for(n.MIN).define({decorator:e=>m(n.MIN,"min",e),args:[i]}).apply()}function Ve(e,r){let i={};return e instanceof o?i.condition=e:e&&(i=e),r&&(i=Object.assign({},i,r)),t.for(n.DISTINCT).define({decorator:e=>m(n.DISTINCT,"distinct",e),args:[i]}).apply()}j([C(),B("design:type",Function),B("design:paramtypes",[Object]),B("design:returntype",Be)],Ce.prototype,"Statement",null),j([C(),B("design:type",Function),B("design:paramtypes",[Object,String]),B("design:returntype",Object)],Ce.prototype,"assignMetadata",null),j([C(),B("design:type",Function),B("design:paramtypes",[Array,Array]),B("design:returntype",Array)],Ce.prototype,"assignMultipleMetadata",null),j([C(),B("design:type",Function),B("design:paramtypes",[Object,Object,Object,Object]),B("design:returntype",Array)],Ce.prototype,"createPrefix",null),j([C(),B("design:type",Function),B("design:paramtypes",[Object,Array,Array,Object]),B("design:returntype",void 0)],Ce.prototype,"createAllPrefix",null),j([C(),B("design:type",Function),B("design:paramtypes",[Object,Object,Object,Object]),B("design:returntype",void 0)],Ce.prototype,"updatePrefix",null),j([C(),B("design:type",Function),B("design:paramtypes",[Object,Array,Array,Object]),B("design:returntype",void 0)],Ce.prototype,"updateAllPrefix",null);const Re="##VERSION##",_e="##COMMIT##",qe="##FULL_VERSION##",Ue="##PACKAGE##";e.registerLibrary(Ue,Re);export{_e as COMMIT,Ce as CouchDBAdapter,V as CouchDBConst,P as CouchDBGroupOperator,k as CouchDBKeys,L as CouchDBOperator,ce as CouchDBPaginator,I as CouchDBQueryLimit,oe as CouchDBRepository,Be as CouchDBStatement,qe as FULL_VERSION,se as IndexError,ae as IndexPlanningError,Ue as PACKAGE_NAME,Re as VERSION,Oe as attachGeneratedUseIndex,be as buildGeneratedIndexCandidates,X as collectViewMetadata,ke as count,Ve as distinct,$e as enableMangoExecutionStats,Te as ensureDeterministicSort,we as findGeneratedIndexCandidateByName,W as findViewMetadata,z as generateDesignDocName,U as generateIndexDoc,Z as generateIndexName,te as generateIndexes,ee as generateModelIndexName,K as generateViewIndexes,G as generateViewName,H as generateViews,me as getEqualitySelectorFields,ne as getMetadata,ye as getRangeSelectorFields,Se as getRequiredMangoIndexShape,he as getSortDirection,pe as getSortFields,Me as groupBy,Le as max,Pe as min,ge as normalizeSortField,R as reAuth,ie as removeMetadata,xe as requireGeneratedUseIndex,M as reservedAttributes,ve as resolveGeneratedIndexForQuery,Ee as reverseRequiredShapeToIndexDeclaration,re as setMetadata,Ie as sum,q as testReservedAttributes,ue as translateOperators,Y as viewIndexDefinition,De as warnScanProneMangoOperators,_ as wrapDocumentScope};
2
2
  //# sourceMappingURL=for-couchdb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-couchdb.js","sources":["../src/constants.ts","../src/query/constants.ts","../src/utils.ts","../src/views/generator.ts","../src/indexes/generator.ts","../src/metadata.ts","../src/repository.ts","../src/errors/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/decorators.ts","../src/index.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","CouchDBQueryLimit","CouchDBOperator","EQUAL","DIFFERENT","BIGGER","BIGGER_EQ","SMALLER","SMALLER_EQ","NOT","IN","REGEXP","CouchDBGroupOperator","AND","OR","CouchDBConst","NULL","async","reAuth","con","user","pass","auth","wrapDocumentScope","dbName","db","use","forEach","k","original","Object","defineProperty","enumerable","configurable","value","args","call","writable","testReservedAttributes","attr","match","generateIndexDoc","attribute","tableName","compositions","order","separator","DefaultSeparator","partialFilterSelector","fields","orderProp","sortedCompositions","map","c","r","sortedTable","name","PersistenceKeys","push","join","generateIndexName","index","ddoc","toJsLiteral","Date","JSON","stringify","toISOString","RegExp","source","flags","conditionToJs","condition","docVar","attr1","operator","comparison","Condition","left","Operator","right","GroupOperator","attrExpr","normalizeKey","key","Array","isArray","generateViewName","kind","meta","replace","generateDesignDocName","viewName","findViewMetadata","model","view","groupBy","GROUP_BY","count","COUNT","sum","SUM","max","MAX","min","MIN","distinct","DISTINCT","Metadata","get","entries","flatMap","values","entry","filter","collectViewMetadata","generateViews","models","viewDocs","viewKeys","m","Model","ddocId","viewDef","toString","guards","resolved","from","undefined","authGuard","field","roles","length","expression","listExpr","mode","buildAuthGuard","guard","emitKey","keys","buildEmitKey","emitValue","v","buildEmitValue","returnDocs","buildMapFunction","reduce","defaultReduce","normalizeViewMetadata","_id","language","views","generateViewIndexes","indexes","slice","directions","OrderDirection","ASC","DSC","baseIndex","direction","dirIndex","viewIndexDefinition","concat","n","generateModelIndexName","fieldKey","generateIndexes","type","modelTableName","defaultQueryAttrs","defaultQueryAttributes","err","baseName","defaultFilter","$eq","partial_filter_selector","sortedName","ind","metadataEntries","metadataValue","candidate","fieldKeys","tableFilter","generate","sort","suffix","baseFields","sortField","Set","dir","String","toLowerCase","setMetadata","metadata","METADATA","getMetadata","descriptor","getOwnPropertyDescriptor","removeMetadata","CouchDBRepository","Repository","constructor","adapter","force","super","assignMetadata","target","apply","instance","carrier","create","result","this","createAll","results","read","id","readAll","ids","update","updateAll","delete","deleteAll","updatePrefix","ctx","ctxArgs","log","logCtx","OperationKeys","UPDATE","for","ignoreHandlers","ignoreValidate","silly","pk","InternalError","oldModel","oldMetadata","merge","class","enforceDBDecorators","ON","propsToIgnore","errors","Promise","resolve","hasErrors","ValidationError","updateAllPrefix","BulkCrudOperationKeys","UPDATE_ALL","oldModels","i","all","ignoredProps","modelsValidation","errorMessages","reduceErrorsToPrint","IndexError","BaseError","msg","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","DBKeys","pageResults","d","revert","Sequence","parseValue","_bookmark","_currentPage","set","_knownLastPage","_totalPages","_recordCount","translateOperators","operators","el","find","QueryError","SCAN_PRONE_OPERATORS","isPlainObject","normalizeSortField","getSortFields","Boolean","getSortDirection","getEqualitySelectorFields","selector","visit","node","prototype","hasOwnProperty","add","getRangeSelectorFields","collectGeneratedIndexEntries","candidates","tableIndexName","modelIndexes","validDirections","buildGeneratedIndexCandidates","findGeneratedIndexCandidateByName","expectedName","resolveGeneratedIndexForQuery","options","use_index","preserveDefaultQuery","equalityFields","rangeFields","sortFields","sortDirection","scored","includes","candidateFields","coversAllSort","every","coversSomeSort","some","coversAllRange","coversSomeRange","requireSortCoverage","equalityCoverage","has","rangeCoverage","sortCoverage","score","a","b","best","getRequiredMangoIndexShape","modelName","requiredFields","reverseRequiredShapeToIndexDeclaration","shape","nonTableFields","expectedDdoc","expectedFields","decorator","attachGeneratedUseIndex","forceNamedIndexes","requireIndex","reversed","shapeTableName","requireGeneratedUseIndex","warnScanProneMangoOperators","path","ensureDeterministicSort","tieBreaker","effectiveDirection","enableMangoExecutionStats","nextLexicographicString","chars","code","codePointAt","fromCodePoint","CouchDBStatement","Statement","overrides","attributeTypeCache","build","manualAggregation","aggregateInfo","buildAggregateInfo","shouldUseManualAggregation","createAggregateQuery","selectors","fromSelector","selectSelector","whereCondition","parseCondition","and","eq","selectorKeys","indexOf","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","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","currentValue","currentComparable","normalized","normalizeComparable","grouped","doc","groupKey","convertValueByAttribute","getAttributeType","parsed","Number","isNaN","getTime","metaType","getPropDesignTypes","designType","normalizeMetaType","context","convertAggregateValue","decoratorForKind","table","UnsupportedError","avg","row","STARTS_WITH","range","start","prefix","end","$gte","$lt","ENDS_WITH","$regex","BETWEEN","opBetween","op","op1","op2","obj1","obj2","CouchDBAdapter","Adapter","scope","flavour","alias","prefixMethod","initialize","managedModels","repository","rev","assignMultipleMetadata","revs","segregate","mappedProp","columnName","isReserved","transient","createPrefix","generateId","createAllPrefix","records","sep","startsWith","parseError","reason","ConflictError","NotFoundError","statusCode","ConnectionError","compositionsOrOptions","nameOrOptions","opts","Decoration","define","o","applyViewDecorator","valueOrCondition","conditionOrOptions","__decorate","final","VERSION","COMMIT","FULL_VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
1
+ {"version":3,"file":"for-couchdb.js","sources":["../src/constants.ts","../src/query/constants.ts","../src/utils.ts","../src/views/generator.ts","../src/indexes/generator.ts","../src/metadata.ts","../src/repository.ts","../src/errors/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/decorators.ts","../src/index.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","CouchDBQueryLimit","CouchDBOperator","EQUAL","DIFFERENT","BIGGER","BIGGER_EQ","SMALLER","SMALLER_EQ","NOT","IN","REGEXP","CouchDBGroupOperator","AND","OR","CouchDBConst","NULL","async","reAuth","con","user","pass","auth","wrapDocumentScope","dbName","db","use","forEach","k","original","Object","defineProperty","enumerable","configurable","value","args","call","writable","testReservedAttributes","attr","match","generateIndexDoc","attribute","tableName","compositions","order","separator","DefaultSeparator","partialFilterSelector","fields","orderProp","sortedCompositions","map","c","r","sortedTable","name","PersistenceKeys","push","join","generateIndexName","index","ddoc","toJsLiteral","Date","JSON","stringify","toISOString","RegExp","source","flags","conditionToJs","condition","docVar","attr1","operator","comparison","Condition","left","Operator","right","GroupOperator","attrExpr","normalizeKey","key","Array","isArray","generateViewName","kind","meta","replace","generateDesignDocName","viewName","findViewMetadata","model","view","groupBy","GROUP_BY","count","COUNT","sum","SUM","max","MAX","min","MIN","distinct","DISTINCT","Metadata","get","entries","flatMap","values","entry","filter","collectViewMetadata","generateViews","models","viewDocs","viewKeys","m","Model","ddocId","viewDef","toString","guards","resolved","from","undefined","authGuard","field","roles","length","expression","listExpr","mode","buildAuthGuard","guard","emitKey","keys","buildEmitKey","emitValue","v","buildEmitValue","returnDocs","buildMapFunction","reduce","defaultReduce","normalizeViewMetadata","_id","language","views","generateViewIndexes","indexes","slice","directions","OrderDirection","ASC","DSC","baseIndex","direction","dirIndex","viewIndexDefinition","concat","n","generateModelIndexName","fieldKey","generateIndexes","type","modelTableName","defaultQueryAttrs","defaultQueryAttributes","err","baseName","defaultFilter","$eq","partial_filter_selector","sortedName","ind","metadataEntries","metadataValue","candidate","fieldKeys","tableFilter","generate","sort","suffix","baseFields","sortField","Set","dir","String","toLowerCase","setMetadata","metadata","METADATA","getMetadata","descriptor","getOwnPropertyDescriptor","removeMetadata","CouchDBRepository","Repository","constructor","adapter","force","super","assignMetadata","target","apply","instance","carrier","create","result","this","createAll","results","read","id","readAll","ids","update","updateAll","delete","deleteAll","updatePrefix","ctx","ctxArgs","log","logCtx","OperationKeys","UPDATE","for","ignoreHandlers","ignoreValidate","silly","pk","InternalError","oldModel","oldMetadata","merge","class","enforceDBDecorators","ON","propsToIgnore","errors","Promise","resolve","hasErrors","ValidationError","updateAllPrefix","BulkCrudOperationKeys","UPDATE_ALL","oldModels","i","all","ignoredProps","modelsValidation","errorMessages","reduceErrorsToPrint","IndexError","BaseError","msg","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","DBKeys","pageResults","d","revert","Sequence","parseValue","_bookmark","_currentPage","set","_knownLastPage","_totalPages","_recordCount","translateOperators","operators","el","find","QueryError","SCAN_PRONE_OPERATORS","isPlainObject","selectorContainsOperator","node","some","child","normalizeSortField","getSortFields","Boolean","getSortDirection","getEqualitySelectorFields","selector","visit","prototype","hasOwnProperty","add","getRangeSelectorFields","collectGeneratedIndexEntries","candidates","tableIndexName","modelIndexes","validDirections","buildGeneratedIndexCandidates","findGeneratedIndexCandidateByName","expectedName","resolveGeneratedIndexForQuery","options","use_index","preserveDefaultQuery","equalityFields","rangeFields","sortFields","sortDirection","scored","includes","candidateFields","coversAllSort","every","coversSomeSort","coversAllRange","coversSomeRange","requireSortCoverage","equalityCoverage","has","rangeCoverage","sortCoverage","score","a","b","best","getRequiredMangoIndexShape","modelName","requiredFields","reverseRequiredShapeToIndexDeclaration","shape","nonTableFields","expectedDdoc","expectedFields","decorator","attachGeneratedUseIndex","forceNamedIndexes","requireIndex","reversed","shapeTableName","requireGeneratedUseIndex","warnScanProneMangoOperators","path","ensureDeterministicSort","tieBreaker","effectiveDirection","enableMangoExecutionStats","nextLexicographicString","chars","code","codePointAt","fromCodePoint","CouchDBStatement","Statement","overrides","attributeTypeCache","build","manualAggregation","aggregateInfo","buildAggregateInfo","shouldUseManualAggregation","createAggregateQuery","selectors","fromSelector","selectSelector","whereCondition","parseCondition","and","eq","selectorKeys","indexOf","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","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","currentValue","currentComparable","normalized","normalizeComparable","grouped","doc","groupKey","convertValueByAttribute","getAttributeType","parsed","Number","isNaN","getTime","metaType","getPropDesignTypes","designType","normalizeMetaType","context","convertAggregateValue","decoratorForKind","table","UnsupportedError","avg","row","STARTS_WITH","range","start","prefix","end","$gte","$lt","ENDS_WITH","$regex","BETWEEN","opBetween","op","op1","op2","obj1","obj2","CouchDBAdapter","Adapter","scope","flavour","alias","prefixMethod","initialize","managedModels","repository","rev","assignMultipleMetadata","revs","segregate","mappedProp","columnName","isReserved","transient","createPrefix","generateId","createAllPrefix","records","sep","startsWith","parseError","reason","ConflictError","NotFoundError","statusCode","ConnectionError","compositionsOrOptions","nameOrOptions","opts","Decoration","define","o","applyViewDecorator","valueOrCondition","conditionOrOptions","__decorate","final","VERSION","COMMIT","FULL_VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
package/lib/cjs/index.cjs CHANGED
@@ -41,21 +41,21 @@ __exportStar(require("./views/index.cjs"), exports);
41
41
  * @summary The version string of the for-couchdb package
42
42
  * @const VERSION
43
43
  */
44
- exports.VERSION = "0.14.0";
44
+ exports.VERSION = "0.14.1";
45
45
  /**
46
46
  * @description Represents the current commit hash of the module build.
47
47
  * @summary Stores the current git commit hash for the package. The build replaces
48
48
  * the placeholder with the actual commit hash at publish time.
49
49
  * @const COMMIT
50
50
  */
51
- exports.COMMIT = "4a942a6";
51
+ exports.COMMIT = "8d4d67a";
52
52
  /**
53
53
  * @description Represents the full version string of the module.
54
54
  * @summary Stores the semver version and commit hash for the package.
55
55
  * The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
56
56
  * @const FULL_VERSION
57
57
  */
58
- exports.FULL_VERSION = "0.14.0-4a942a6";
58
+ exports.FULL_VERSION = "0.14.1-8d4d67a";
59
59
  /**
60
60
  * @description Stores the current package name
61
61
  * @summary The version string of the for-couchdb package
@@ -33,6 +33,14 @@ const SCAN_PRONE_OPERATORS = new Set([
33
33
  function isPlainObject(value) {
34
34
  return !!value && typeof value === "object" && !Array.isArray(value);
35
35
  }
36
+ function selectorContainsOperator(node, operator) {
37
+ if (!node || typeof node !== "object")
38
+ return false;
39
+ if (Array.isArray(node)) {
40
+ return node.some((child) => selectorContainsOperator(child, operator));
41
+ }
42
+ return Object.entries(node).some(([key, value]) => key === operator || selectorContainsOperator(value, operator));
43
+ }
36
44
  function normalizeSortField(entry) {
37
45
  if (typeof entry === "string") {
38
46
  return { field: entry };
@@ -196,6 +204,15 @@ function findGeneratedIndexCandidateByName(clazz, expectedName) {
196
204
  function resolveGeneratedIndexForQuery(clazz, query, options = {}) {
197
205
  if (query.use_index)
198
206
  return undefined;
207
+ // A single named index cannot be proven valid for selectors combining
208
+ // branches via $or/$nor, since CouchDB only treats an index as usable when
209
+ // its leading fields constrain every branch of the selector. Forcing a
210
+ // use_index hint here causes CouchDB to reject it as "not a valid index for
211
+ // this query" - so let CouchDB pick (or fall back) on its own instead.
212
+ if (selectorContainsOperator(query.selector, constants_js_2.CouchDBGroupOperator.OR) ||
213
+ selectorContainsOperator(query.selector, "$nor")) {
214
+ return undefined;
215
+ }
199
216
  const preserveDefaultQuery = options.preserveDefaultQuery !== false;
200
217
  const candidates = collectGeneratedIndexEntries(clazz);
201
218
  const equalityFields = getEqualitySelectorFields(query.selector);
@@ -1 +1 @@
1
- {"version":3,"file":"planner.js","sourceRoot":"","sources":["planner.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"planner.js","sourceRoot":"","sources":["planner.js"],"names":[],"mappings":"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"}