@decaf-ts/for-couchdb 0.14.0 → 0.14.1

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.
Files changed (69) hide show
  1. package/dist/for-couchdb.cjs +1 -1
  2. package/dist/for-couchdb.cjs.map +1 -1
  3. package/dist/for-couchdb.js +1 -1
  4. package/dist/for-couchdb.js.map +1 -1
  5. package/lib/cjs/adapter.cjs +6 -12
  6. package/lib/cjs/adapter.cjs.map +1 -1
  7. package/lib/cjs/{errors.cjs → errors/IndexError.cjs} +2 -2
  8. package/lib/cjs/errors/IndexError.cjs.map +1 -0
  9. package/lib/cjs/errors/IndexPlanningError.cjs +15 -0
  10. package/lib/cjs/errors/IndexPlanningError.cjs.map +1 -0
  11. package/lib/cjs/errors/index.cjs +20 -0
  12. package/lib/cjs/errors/index.cjs.map +1 -0
  13. package/lib/cjs/index.cjs +10 -6
  14. package/lib/cjs/index.cjs.map +1 -1
  15. package/lib/cjs/indexes/generator.cjs +13 -9
  16. package/lib/cjs/indexes/generator.cjs.map +1 -1
  17. package/lib/cjs/query/Paginator.cjs +32 -16
  18. package/lib/cjs/query/Paginator.cjs.map +1 -1
  19. package/lib/cjs/query/Statement.cjs +13 -8
  20. package/lib/cjs/query/Statement.cjs.map +1 -1
  21. package/lib/cjs/query/index.cjs +1 -0
  22. package/lib/cjs/query/index.cjs.map +1 -1
  23. package/lib/cjs/query/planner.cjs +431 -0
  24. package/lib/cjs/query/planner.cjs.map +1 -0
  25. package/lib/esm/adapter.js +1 -7
  26. package/lib/esm/adapter.js.map +1 -1
  27. package/lib/esm/{errors.js → errors/IndexError.js} +1 -1
  28. package/lib/esm/errors/IndexError.js.map +1 -0
  29. package/lib/esm/errors/IndexPlanningError.js +10 -0
  30. package/lib/esm/errors/IndexPlanningError.js.map +1 -0
  31. package/lib/esm/errors/index.js +3 -0
  32. package/lib/esm/errors/index.js.map +1 -0
  33. package/lib/esm/index.js +5 -5
  34. package/lib/esm/index.js.map +1 -1
  35. package/lib/esm/indexes/generator.js +12 -10
  36. package/lib/esm/indexes/generator.js.map +1 -1
  37. package/lib/esm/query/Paginator.js +32 -16
  38. package/lib/esm/query/Paginator.js.map +1 -1
  39. package/lib/esm/query/Statement.js +14 -9
  40. package/lib/esm/query/Statement.js.map +1 -1
  41. package/lib/esm/query/index.js +1 -0
  42. package/lib/esm/query/index.js.map +1 -1
  43. package/lib/esm/query/planner.js +413 -0
  44. package/lib/esm/query/planner.js.map +1 -0
  45. package/lib/types/adapter.d.cts +3 -3
  46. package/lib/types/adapter.d.mts +3 -3
  47. package/lib/types/errors/IndexPlanningError.d.cts +17 -0
  48. package/lib/types/errors/IndexPlanningError.d.mts +17 -0
  49. package/lib/types/errors/index.d.cts +2 -0
  50. package/lib/types/errors/index.d.mts +2 -0
  51. package/lib/types/index.d.cts +5 -5
  52. package/lib/types/index.d.mts +5 -5
  53. package/lib/types/indexes/generator.d.cts +13 -0
  54. package/lib/types/indexes/generator.d.mts +13 -0
  55. package/lib/types/query/Paginator.d.cts +3 -0
  56. package/lib/types/query/Paginator.d.mts +3 -0
  57. package/lib/types/query/Statement.d.cts +3 -2
  58. package/lib/types/query/Statement.d.mts +3 -2
  59. package/lib/types/query/index.d.cts +1 -0
  60. package/lib/types/query/index.d.mts +1 -0
  61. package/lib/types/query/planner.d.cts +64 -0
  62. package/lib/types/query/planner.d.mts +64 -0
  63. package/lib/types/types.d.cts +8 -0
  64. package/lib/types/types.d.mts +8 -0
  65. package/package.json +1 -1
  66. package/lib/cjs/errors.cjs.map +0 -1
  67. package/lib/esm/errors.js.map +0 -1
  68. /package/lib/types/{errors.d.cts → errors/IndexError.d.cts} +0 -0
  69. /package/lib/types/{errors.d.mts → errors/IndexError.d.mts} +0 -0
@@ -1,2 +1,2 @@
1
- var e,t;e=this,t=function(e,t,r,o,i,n,a){"use strict";const s=/^_.*$/g,c={SEPARATOR:"__",ID:"_id",REV:"_rev",DELETED:"_deleted",TABLE:"??table",SEQUENCE:"??sequence",DDOC:"ddoc",NATIVE:"__native",INDEX:"index",VIEW:"view"},u={EQUAL:"$eq",DIFFERENT:"$ne",BIGGER:"$gt",BIGGER_EQ:"$gte",SMALLER:"$lt",SMALLER_EQ:"$lte",NOT:"$not",IN:"$in",REGEXP:"$regex"},l={AND:"$and",OR:"$or"};async function d(e,t,r){return e.auth(t,r)}function p(e,t,i,n,a=o.DefaultSeparator){const s=[r.PersistenceKeys.INDEX,t,e];return i&&s.push(...i),n&&s.push(n),s.join(a)}function g(e,t,r,i,n=o.DefaultSeparator){const a={};let s;if(a[c.TABLE]={},a[c.TABLE][u.EQUAL]=t,i){const t={};t[e]=i;const o=(r||[]).map(e=>{const t={};return t[e]=i,t}),n={};n[c.TABLE]=i,s=[t,...o,n]}else s=[e,...r||[],c.TABLE];const l=p(e,t,r,i,n);return{index:{fields:s},ddoc:[l,c.DDOC].join(n),name:l}}function f(e){return e instanceof Date?JSON.stringify(e.toISOString()):e instanceof RegExp?`new RegExp(${JSON.stringify(e.source)}, ${JSON.stringify(e.flags)})`:JSON.stringify(e)}function h(e,t){const{attr1:o,operator:i,comparison:n}=e;if(o instanceof r.Condition){const e=h(o,t);if(i===r.Operator.NOT)return`!(${e})`;const a=h(n,t);return i===r.GroupOperator.AND?`(${e} && ${a})`:i===r.GroupOperator.OR?`(${e} || ${a})`:e}const a=`${t}[${JSON.stringify(o)}]`;switch(i){case r.Operator.EQUAL:return`${a} === ${f(n)}`;case r.Operator.DIFFERENT:return`${a} !== ${f(n)}`;case r.Operator.BIGGER:return`${a} > ${f(n)}`;case r.Operator.BIGGER_EQ:return`${a} >= ${f(n)}`;case r.Operator.SMALLER:return`${a} < ${f(n)}`;case r.Operator.SMALLER_EQ:return`${a} <= ${f(n)}`;case r.Operator.IN:return`(${f(n)}).indexOf(${a}) !== -1`;case r.Operator.REGEXP:return`${n instanceof RegExp?f(n):`new RegExp(${JSON.stringify(n)})`}.test(${a})`;case r.Operator.NOT:return`!(${a} === ${f(n)})`;default:return"true"}}function m(e,t,r){return e?Array.isArray(e)?e:[e]:t?[t,...r||[]]:r||[]}function y(e,t,r,i,n=o.DefaultSeparator){return i.name?i.name:[e,t,r,"view"].join(n).replace(/\s+/g,"_")}function A(e,t,r=o.DefaultSeparator){return[e,t,c.DDOC].join(r)}function O(e,o,i){const n={view:r.Operator.VIEW,groupBy:r.Operator.GROUP_BY,count:r.Operator.COUNT,sum:r.Operator.SUM,max:r.Operator.MAX,min:r.Operator.MIN,distinct:r.Operator.DISTINCT}[o];if(!n)return[];const a=t.Metadata.get(e,n)||{};return Object.entries(a).flatMap(([e,t])=>t&&"object"==typeof t?Object.values(t).map(t=>({...t,kind:o,attribute:t.attribute||e})).filter(e=>!i||e.attribute===i):[])}function E(e,r,o){const i=t.Metadata.get(e,r)||{};return Object.entries(i).flatMap(([e,t])=>t&&"object"==typeof t?Object.values(t).map(t=>{const r=t;return{...r,kind:o,attribute:r.attribute||e}}):[])}function b(e){const t={},o=[[c.VIEW,"view"],[r.Operator.GROUP_BY,"groupBy"],[r.Operator.COUNT,"count"],[r.Operator.SUM,"sum"],[r.Operator.MAX,"max"],[r.Operator.MIN,"min"],[r.Operator.DISTINCT,"distinct"]];return e.forEach(e=>{const n=i.Model.tableName(e);o.flatMap(([t,r])=>E(e,t,r)).forEach(e=>{const o=m(e.key,e.attribute,e.compositions);if(!o.length)return;const i=o[0],a=o.slice(1),s=e.directions||[r.OrderDirection.ASC,r.OrderDirection.DSC],c=g(i,n,a);t[c.name||""]=c,s.forEach(e=>{const r=g(i,n,a,e);t[r.name||""]=r})})}),Object.values(t)}function w(e,t,r,i=o.DefaultSeparator){return[...e.map(e=>e===c.TABLE?"table":e),...t?[t]:[],c.INDEX].join(i)}function D(e,t){Object.defineProperty(e,r.PersistenceKeys.METADATA,{enumerable:!1,configurable:!0,writable:!0,value:t})}function v(e){const t=Object.getOwnPropertyDescriptor(e,r.PersistenceKeys.METADATA);return t?t.value:void 0}function S(e){Object.getOwnPropertyDescriptor(e,r.PersistenceKeys.METADATA)&&delete e[r.PersistenceKeys.METADATA]}class N extends r.Repository{constructor(e,t,r=!1){super(e,t,r)}assignMetadata(e,t){const r=(e,t)=>{const r=v(t??e);return r&&D(e,r),e};return Array.isArray(e)?e.map((e,o)=>{const i=Array.isArray(t)?t[o]: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:a}=(await this.logCtx(t,o.OperationKeys.UPDATE,!0)).for(this.updatePrefix),s=r.get("ignoreHandlers"),c=r.get("ignoreValidation");a.silly(`handlerSetting: ${s}, validationSetting: ${c}`);const u=e[this.pk];if(!u)throw new o.InternalError("No value for the Id is defined under the property "+this.pk);let l,d;if(r.get("applyUpdateValidation")&&(l=await this.read(u),d=l?v(l):void 0,r.get("mergeForUpdate")&&(e=i.Model.merge(l,e,this.class))),s||await o.enforceDBDecorators(this,r,e,o.OperationKeys.UPDATE,o.OperationKeys.ON,l),!c){const t=r.get("ignoredValidationProperties")||[];a.silly("ignored validation properties: "+t);const i=await Promise.resolve(e.hasErrors(l,...t));if(i)throw new o.ValidationError(i.toString())}return d&&D(e,d),[e,...n,l]}async updateAllPrefix(e,...t){const{ctx:r,ctxArgs:n,log:a}=(await this.logCtx(t,o.BulkCrudOperationKeys.UPDATE_ALL,!0)).for(this.updateAllPrefix),s=r.get("ignoreHandlers"),c=r.get("ignoreValidation");a.silly(`handlerSetting: ${s}, ignoredValidation: ${c}`);const u=e.map(e=>{const t=e[this.pk];if(!t)throw new o.InternalError("missing id on update operation");return t});let l;if(r.get("applyUpdateValidation")&&(l=await this.readAll(u,r),e=e.map((e,t)=>{r.get("mergeForUpdate")&&(e=i.Model.merge(l[t],e,this.class));const o=v(l[t]);return o&&D(e,o),e})),s||await Promise.all(e.map((e,t)=>o.enforceDBDecorators(this,r,e,o.OperationKeys.UPDATE,o.OperationKeys.ON,l?l[t]:void 0))),!c){const t=r.get("ignoredValidationProperties")||[];let i;a.silly("ignored validation properties: "+t),i=r.get("applyUpdateValidation")?await Promise.all(e.map((e,r)=>Promise.resolve(e.hasErrors(l[r],...t)))):await Promise.resolve(e.map(e=>e.hasErrors(...t)));const n=o.reduceErrorsToPrint(i);if(n)throw new o.ValidationError(n)}return[e,...n,l]}}class T extends o.BaseError{constructor(e){super(T.name,e,404)}}class M extends r.Paginator{constructor(e,t,r,o){super(e,t,r,o)}prepare(e){const t=Object.assign({},e);return t.limit&&(this.limit=t.limit),t.limit=this.size,t}async page(e=1,n,...a){const{log:s,ctxArgs:c,ctx:u}=this.adapter.logCtx([n,...a],this.page);if(this.isPreparedStatement())return await this.pagePrepared(e,...c);const l=Object.assign({},this.statement);if(this._recordCount&&this._totalPages)e=this.validatePage(e),l.skip=(e-1)*this.size;else{this._totalPages=this._recordCount=0;const t=await this.adapter.raw({...l,limit:Number.MAX_SAFE_INTEGER},!0,...c)||[];if(this._recordCount=t.length,this._recordCount>0){const t=l?.limit||this.size;return this._totalPages=Math.ceil(this._recordCount/t),await this.page(e,...c)}}if(1!==e){if(!this._bookmark)throw new r.PagingError("No bookmark. Did you start in the first page?");l.bookmark=this._bookmark}const d=await this.adapter.raw(l,!1,...c),{docs:p,bookmark:g,warning:f}=d;if(f&&s.warn(f),!this.clazz)throw new r.PagingError("No statement target defined");const h=i.Model.pk(this.clazz),m=t.Metadata.get(this.clazz,t.Metadata.key(o.DBKeys.ID,h))?.type,y=l.fields&&l.fields.length?p:p.map(e=>this.adapter.revert(e,this.clazz,r.Sequence.parseValue(m,e[h]),void 0,u));return this._bookmark=g,this._currentPage=e,y}}function _(e){for(const t of[u,l]){const r=Object.keys(t).find(t=>t===e);if(r)return t[r]}throw new r.QueryError("Could not find adapter translation for operator "+e)}function x(e){if(!e)return"\0";const t=Array.from(e);for(let e=t.length-1;e>=0;e-=1){const r=t[e].codePointAt(0);if(void 0!==r&&1114111>r)return t[e]=String.fromCodePoint(r+1),t.slice(0,e+1).join("")}return e+"\0"}class C extends r.Statement{constructor(e,t){super(e,t),this.attributeTypeCache=new Map}build(){const e=this.log.for(this.build);this.manualAggregation=void 0;const t=this.buildAggregateInfo();if(t){if(!this.shouldUseManualAggregation())return this.createAggregateQuery(t);this.manualAggregation=t}const o={};o[c.TABLE]={},o[c.TABLE]=i.Model.tableName(this.fromSelector);const n={selector:o};if(this.selectSelector&&(n.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(r.Condition.and(this.whereCondition,r.Condition.attribute(c.TABLE).eq(n.selector[c.TABLE]))).selector,o=Object.keys(t);if(1===o.length&&-1!==Object.values(l).indexOf(o[0]))switch(o[0]){case l.AND:t[l.AND]=[...Object.values(t[l.AND]).reduce((e,t)=>{const r=Object.keys(t);if(1!==r.length)throw Error("Too many keys in query selector. should be one");const o=r[0];return o===l.AND?e.push(...t[o]):e.push(t),e},[])],n.selector=t;break;case l.OR:{const e={};e[l.AND]=[t,...Object.entries(n.selector).map(([e,t])=>{const r={};return r[e]=t,r})],n.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach(([t,r])=>{n.selector[t]&&e.warn(`A ${t} query param is about to be overridden: ${n.selector[t]} by ${r}`),n.selector[t]=r})}if(this.orderBySelectors?.length){n.sort=n.sort||[],n.selector=n.selector||{};for(const[e,t]of this.orderBySelectors){const r=e,o={};o[r]=t,n.sort.push(o),n.selector[r]||(n.selector[r]={},n.selector[r][u.BIGGER]=null)}}const a=!!this.manualAggregation;return this.limitSelector?n.limit=this.limitSelector:a||(e.warn("No limit selector defined. Using default couchdb limit of 250"),n.limit=250),this.offsetSelector&&(n.skip=this.offsetSelector),this.attachDefaultQueryIndex(n),n}attachDefaultQueryIndex(e){if(!this.fromSelector||e.use_index)return;const t=i.Model.tableName(this.fromSelector);let r=[];try{r=i.Model.defaultQueryAttributes(this.fromSelector)}catch{r=[]}if(!r.length)return;const n=this.collectStartsWithRangeAttrs(e.selector||{}),a=r.filter(e=>n.has(e));if(!a.length)return;const s=(Array.isArray(e.sort)?e.sort:[]).map(e=>Object.entries(e||{})[0]).find(e=>e&&a.includes(e[0])),u=s?.[0]||a[0],l=s?.[1]||void 0,d=[t,u,"defaultQuery",...l?[(l+"").toLowerCase()]:[],c.INDEX].join(o.DefaultSeparator);e.use_index=d}collectStartsWithRangeAttrs(e){const t=new Set,r=e=>{e&&"object"==typeof e&&(Array.isArray(e)?e.forEach(e=>r(e)):Object.entries(e).forEach(([e,o])=>{if(e!==l.AND&&e!==l.OR&&o&&"object"==typeof o&&!Array.isArray(o)){const r=Object.prototype.hasOwnProperty.call(o,u.BIGGER_EQ),i=Object.prototype.hasOwnProperty.call(o,u.SMALLER);r&&i&&t.add(e)}r(o)}))};return r(e),t}processRecord(e,n){const a=i.Model.pk(this.fromSelector),s=t.Metadata.get(this.fromSelector,t.Metadata.key(o.DBKeys.ID,a))?.type;if(e[c.ID]){const[,...t]=e[c.ID].split(c.SEPARATOR),o=t.join("_");e[a]=r.Sequence.parseValue(s,o)}return this.adapter.revert(e,this.fromSelector,e[a],void 0,n)}async raw(e,...t){const{ctx:r}=this.logCtx(t,this.raw),o=e?.aggregateInfo;if(e?.aggregate&&o)return this.executeAggregate(o,r);const i=await this.adapter.raw(e,!0,r),n=i.map(e=>this.processRecord(e,r));if(this.manualAggregation){const e=this.executeManualAggregation(n,this.manualAggregation,r);return this.manualAggregation=void 0,e}return!this.selectSelector&&this.groupBySelectors?.length?this.groupSelectResults(n):this.selectSelector?i:await this.applyAfterHandlersToResult(n,r)}buildAggregateInfo(){if(this.fromSelector){if(this.avgSelector){const e=this.avgSelector+"",t=this.createAggregateDescriptor("sum",e);if(!t)throw this.missingDecorator("sum",e);const r=this.createAggregateDescriptor("count",e);if(!r)throw this.missingDecorator("count",e);return{kind:"avg",attribute:e,sumDescriptor:t.descriptor,countDescriptor:r.descriptor}}if(void 0!==this.countDistinctSelector){const e=this.resolveSelectorAttribute(this.countDistinctSelector),t=this.createAggregateDescriptor("distinct",e);if(!t)throw this.missingDecorator("distinct",e);return t.countDistinct=!0,t}if(void 0!==this.countSelector){const e=this.resolveSelectorAttribute(this.countSelector),t=this.createAggregateDescriptor("count",e);if(!t)throw this.missingDecorator("count",e);return t}if(this.maxSelector){const e=this.resolveSelectorAttribute(this.maxSelector),t=this.createAggregateDescriptor("max",e);if(!t)throw this.missingDecorator("max",e);return t}if(this.minSelector){const e=this.resolveSelectorAttribute(this.minSelector),t=this.createAggregateDescriptor("min",e);if(!t)throw this.missingDecorator("min",e);return t}if(this.sumSelector){const e=this.resolveSelectorAttribute(this.sumSelector),t=this.createAggregateDescriptor("sum",e);if(!t)throw this.missingDecorator("sum",e);return t}if(this.distinctSelector){const e=this.resolveSelectorAttribute(this.distinctSelector),t=this.createAggregateDescriptor("distinct",e);if(!t)throw this.missingDecorator("distinct",e);return t}}}createAggregateDescriptor(e,t){if(!this.fromSelector)return;const r=O(this.fromSelector,e,t);if(!r.length)return;const o=r[0],n=i.Model.tableName(this.fromSelector),a=y(n,o.attribute,e,o),s=o.ddoc||A(n,a),c={reduce:void 0!==o.reduce||!o.returnDocs};return"distinct"!==e&&"groupBy"!==e||(c.group=!0),{kind:e,meta:o,descriptor:{ddoc:s,view:a,options:c}}}createAggregateQuery(e){return{selector:{},aggregate:!0,aggregateInfo:e}}shouldUseManualAggregation(){return!!this.whereCondition}async executeAggregate(e,t){if(!this.isViewAggregate(e))return this.handleAverage(e,t);const r=this.getCouchAdapter(),o=e,i=await r.view(o.descriptor.ddoc,o.descriptor.view,o.descriptor.options,t);return this.processViewResponse(e,i)}async handleAverage(e,t){if("avg"!==e.kind)throw new r.QueryError("Average descriptor is not valid");const[o,i]=[e.sumDescriptor,e.countDescriptor],n=this.getCouchAdapter(),[a,s]=await Promise.all([n.view(o.ddoc,o.view,o.options,t),n.view(i.ddoc,i.view,i.options,t)]),c=a.rows?.[0]?.value??0,u=s.rows?.[0]?.value??0;return u?c/u:0}executeManualAggregation(e,t,o){if(!this.fromSelector)throw new r.QueryError("Manual aggregation requires a target model");if("avg"===t.kind)return this.computeAverage(e,t.attribute);if("groupBy"===t.kind)return this.computeGroupBy(e,t.meta.attribute);const i=t.meta.attribute;switch(t.kind){case"count":return t.countDistinct?this.computeDistinctCount(e,i):this.computeCount(e,i);case"distinct":return t.countDistinct?this.computeDistinctCount(e,i):this.computeDistinctValues(e,i);case"sum":return this.computeSum(e,i);case"min":return this.computeMinMax(e,i,"min");case"max":return this.computeMinMax(e,i,"max");default:throw new r.QueryError("Unsupported manual aggregation "+t.kind)}}computeCount(e,t){return t?this.collectValues(e,t).filter(e=>null!=e).length:e.length}computeDistinctCount(e,t){const r=t?this.collectValues(e,t).filter(e=>null!=e):e,o=new Set;return r.forEach(e=>o.add(JSON.stringify(e))),o.size}computeDistinctValues(e,t){if(!t)return[];const r=this.collectValues(e,t),o=new Set,i=[];return r.forEach(e=>{const t=JSON.stringify(e);o.has(t)||(o.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 o=this.collectValues(e,t).filter(e=>null!=e);let i=null,n=null;for(const e of o){const t=this.normalizeComparable(e);null!==t&&(null!==n?("min"===r&&n>t||"max"===r&&t>n)&&(n=t,i=e):(n=t,i=e))}return i}computeGroupBy(e,t){const r={},o=this.collectValues(e,t);return e.forEach((e,t)=>{const i=this.groupKey(o[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 o=this.groupKey(this.convertValueByAttribute(t,e[t]));r[o]||(r[o]=[]),r[o].push(e)}),r}collectValues(e,t){return e.map(e=>{if(e&&"object"==typeof e)return this.convertValueByAttribute(t,e[t])})}convertValueByAttribute(e,t){if(!this.fromSelector)return t;if("date"===this.getAttributeType(e)){if(t instanceof Date)return t;const e=new Date(t);if(!Number.isNaN(e.getTime()))return e}if("string"==typeof t&&e.toLowerCase().includes("date")){const e=new Date(t);if(!Number.isNaN(e.getTime()))return e}return t}getAttributeType(e){if(!e||!this.fromSelector)return;if(this.attributeTypeCache.has(e))return this.attributeTypeCache.get(e);const r=t.Metadata.type(this.fromSelector,e)??t.Metadata.getPropDesignTypes?.(this.fromSelector,e)?.designType,o=this.normalizeMetaType(r);return this.attributeTypeCache.set(e,o),o}normalizeMetaType(e){if(e)return"string"==typeof e?e.toLowerCase():"function"==typeof e&&e.name?e.name.toLowerCase():void 0}normalizeComparable(e){return"number"==typeof e?e:"bigint"==typeof e?Number(e):e instanceof Date?e.getTime():"string"!=typeof e||isNaN(Number(e))?null:Number(e)}groupKey(e){if(void 0===e)return"undefined";if(null===e)return"null";if("symbol"==typeof e)return e.toString();if("object"==typeof e)try{return JSON.stringify(e)}catch{return e+""}return e+""}toNumericValue(e,t,o){if("number"==typeof e)return e;if("bigint"==typeof e)return Number(e);if(e instanceof Date)return e.getTime();if("string"==typeof e&&!isNaN(Number(e)))return Number(e);throw new r.QueryError(`${o} on "${t}" requires numeric values, but got ${typeof e}`)}convertAggregateValue(e,t){return e?this.convertValueByAttribute(e,t):t}resolveSelectorAttribute(e){if(null!=e)return e+""}missingDecorator(e,t){const o=this.decoratorForKind(e),n=this.fromSelector?i.Model.tableName(this.fromSelector):"<unknown table>",a=t?` on "${t}"`:"";return new r.UnsupportedError(`${o} decorator is required for CouchDB ${e} aggregation${a} on table "${n}".`)}decoratorForKind(e){return{count:"@count",sum:"@sum",min:"@min",max:"@max",distinct:"@distinct",groupBy:"@groupBy",view:"@view",avg:"@avg"}[e]||"@"+e}processViewResponse(e,t){if("avg"===e.kind)throw new r.QueryError("Average results should be handled before processing rows");const o=t.rows||[],i=e,n=i.meta;return i.countDistinct?o.length||0:"distinct"===i.kind||"groupBy"===i.kind?o.map(e=>this.convertAggregateValue(i.meta.attribute,e.key??e.value)):n.returnDocs?o.map(e=>e.value??e.doc??e):o.length?this.convertAggregateValue(i.meta.attribute,o[0].value??o[0].key??null):"count"===i.kind?0:null}isViewAggregate(e){return"avg"!==e.kind}getCouchAdapter(){return this.adapter}parseCondition(e){const{attr1:t,operator:o,comparison:i}=e;if(o===r.Operator.STARTS_WITH){if("string"!=typeof t)throw new r.QueryError("STARTS_WITH requires an attribute name");if("string"!=typeof i)throw new r.QueryError("STARTS_WITH requires a string comparison");const e={start:n=i,end:x(n)};return{selector:{[t]:{[u.BIGGER_EQ]:e.start,[u.SMALLER]:e.end}}}}var n,a;if(o===r.Operator.ENDS_WITH){if("string"!=typeof t)throw new r.QueryError("ENDS_WITH requires an attribute name");if("string"!=typeof i)throw new r.QueryError("ENDS_WITH requires a string comparison");return{selector:{[t]:{[u.REGEXP]:(a=i,a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"$")}}}}if(o===r.Operator.BETWEEN){const e=t;if(!Array.isArray(i)||2!==i.length)throw new r.QueryError("BETWEEN operator requires [min, max] comparison");const[o,n]=i,a={};return a[e]={},a[e][_(r.Operator.BIGGER_EQ)]=o,a[e][_(r.Operator.SMALLER_EQ)]=n,{selector:a}}let s={};if(-1===[r.GroupOperator.AND,r.GroupOperator.OR,r.Operator.NOT].indexOf(o))s[t]={},s[t][_(o)]=i;else if(o===r.Operator.NOT)s=this.parseCondition(t).selector,s[_(r.Operator.NOT)]={},s[_(r.Operator.NOT)][t.attr1]=i;else{const e=this.parseCondition(t).selector,r=this.parseCondition(i).selector;s=((e,t,r)=>{const o={selector:{}};return o.selector[e]=[t,r],o})(_(o),e,r).selector}return{selector:s}}}class I extends r.Adapter{constructor(e,t,r){super(e,t,r),[this.create,this.createAll,this.update,this.updateAll].forEach(e=>{const t=e.name;o.prefixMethod(this,e,this[t+"Prefix"])})}Statement(e){return new C(this,e)}Paginator(e,t,r){return new M(this,e,t,r)}async initialize(){const e=r.Adapter.models(this.flavour);return this.index(...e)}repository(){return N}assignMetadata(e,t){return t?(D(e,t),e):e}assignMultipleMetadata(e,t){return e.forEach((e,r)=>(D(e,t[r]),e)),e}prepare(e,...t){const{log:n}=this.logCtx(t,this.prepare),a=e.segregate(),s=Object.entries(a.model).reduce((t,[r,n])=>{if(void 0===n)return t;const a=i.Model.columnName(e.constructor,r);if(this.isReserved(a))throw new o.InternalError(`Property name ${a} is reserved`);return n=n instanceof Date?new Date(n):n,t[a]=n,t},{});return e[r.PersistenceKeys.METADATA]&&(n.silly("Passing along persistence metadata for "+e[r.PersistenceKeys.METADATA]),Object.defineProperty(s,r.PersistenceKeys.METADATA,{enumerable:!1,writable:!0,configurable:!0,value:e[r.PersistenceKeys.METADATA]})),{record:s,id:e[i.Model.pk(e.constructor)],transient:a.transient}}createPrefix(e,t,r,...o){const{ctxArgs:n}=this.logCtx(o,this.createPrefix),a=i.Model.tableName(e),s={};return s[c.TABLE]=a,s[c.ID]=this.generateId(a,t),Object.assign(s,r),[e,t,s,...n]}createAllPrefix(e,t,r,...n){const a=i.Model.tableName(e);if(t.length!==r.length)throw new o.InternalError("Ids and models must have the same length");const{ctxArgs:s}=this.logCtx(n,this.createAllPrefix),u=t.map((e,t)=>{const o={};return o[c.TABLE]=a,o[c.ID]=this.generateId(a,e),Object.assign(o,r[t]),o});return[e,t,u,...s]}updatePrefix(e,t,n,...a){const s=i.Model.tableName(e),{ctxArgs:u}=this.logCtx(a,this.updatePrefix),l={};l[c.TABLE]=s,l[c.ID]=this.generateId(s,t);const d=n[r.PersistenceKeys.METADATA];if(!d)throw new o.InternalError("No revision number found for record with id "+t);return Object.assign(l,n),l[c.REV]=d,[e,t,l,...u]}updateAllPrefix(e,t,n,...a){const s=i.Model.tableName(e);if(t.length!==n.length)throw new o.InternalError("Ids and models must have the same length");const{ctxArgs:u}=this.logCtx(a,this.updateAllPrefix),l=t.map((e,t)=>{const i={};i[c.TABLE]=s,i[c.ID]=this.generateId(s,e);const a=n[t][r.PersistenceKeys.METADATA];if(!a)throw new o.InternalError("No revision number found for record with id "+e);return Object.assign(i,n[t]),i[c.REV]=a,i});return[e,t,l,...u]}generateId(e,t){const r=c.SEPARATOR;return"string"==typeof t&&t.startsWith(`${e}${r}`)&&t.split(r).length>=2?t:`${e}${r}${t+""}`}parseError(e,t){return I.parseError(e,t)}isReserved(e){return!!e.match(s)}static parseError(e,t){if(e instanceof o.BaseError)return e;let i="";if("string"==typeof e){if(i=e,i.match(/already exist|update conflict/g))return new o.ConflictError(i);if(i.match(/missing|deleted/g))return new o.NotFoundError(i)}else e.code?(i=e.code,t=t||e.message):e.statusCode?(i=e.statusCode,t=t||e.message):i=e.message;switch(i.toString()){case"401":case"412":case"409":return new o.ConflictError(t);case"404":return new o.NotFoundError(t);case"400":return i.toString().match(/No\sindex\sexists/g)?new T(e):new o.InternalError(e);default:return i.toString().match(/ECONNREFUSED/g)?new r.ConnectionError(e):new o.InternalError(e)}}static setMetadata(e,t){D(e,t)}static getMetadata(e){return v(e)}static removeMetadata(e){S(e)}}n.__decorate([a.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object]),n.__metadata("design:returntype",C)],I.prototype,"Statement",null),n.__decorate([a.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,String]),n.__metadata("design:returntype",Object)],I.prototype,"assignMetadata",null),n.__decorate([a.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Array,Array]),n.__metadata("design:returntype",Array)],I.prototype,"assignMultipleMetadata",null),n.__decorate([a.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,Object,Object,Object]),n.__metadata("design:returntype",Array)],I.prototype,"createPrefix",null),n.__decorate([a.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,Array,Array,Object]),n.__metadata("design:returntype",void 0)],I.prototype,"createAllPrefix",null),n.__decorate([a.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,Object,Object,Object]),n.__metadata("design:returntype",void 0)],I.prototype,"updatePrefix",null),n.__decorate([a.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,Array,Array,Object]),n.__metadata("design:returntype",void 0)],I.prototype,"updateAllPrefix",null);const j="##VERSION##",$="##PACKAGE##";t.Metadata.registerLibrary($,j),e.COMMIT="d216217",e.CouchDBAdapter=I,e.CouchDBConst={NULL:"null"},e.CouchDBGroupOperator=l,e.CouchDBKeys=c,e.CouchDBOperator=u,e.CouchDBPaginator=M,e.CouchDBQueryLimit=250,e.CouchDBRepository=N,e.CouchDBStatement=C,e.FULL_VERSION="0.13.0-d216217",e.IndexError=T,e.PACKAGE_NAME=$,e.VERSION=j,e.collectViewMetadata=E,e.count=(e,o)=>{let i={};return e instanceof r.Condition?i.condition=e:"object"==typeof e&&e?i=e:void 0!==e&&(i.value=e),o&&(i=Object.assign({},i,o)),t.Decoration.for(r.Operator.COUNT).define({decorator:e=>r.applyViewDecorator(r.Operator.COUNT,"count",e),args:[i]}).apply()},e.distinct=(e,o)=>{let i={};return e instanceof r.Condition?i.condition=e:e&&(i=e),o&&(i=Object.assign({},i,o)),t.Decoration.for(r.Operator.DISTINCT).define({decorator:e=>r.applyViewDecorator(r.Operator.DISTINCT,"distinct",e),args:[i]}).apply()},e.findViewMetadata=O,e.generateDesignDocName=A,e.generateIndexDoc=g,e.generateIndexName=p,e.generateIndexes=e=>{const t=w([c.TABLE]),n={};return n[t]={index:{fields:[c.TABLE]},name:t,ddoc:t,type:"json"},e.forEach(e=>{const t=i.Model.tableName(e);let a=[];try{a=i.Model.defaultQueryAttributes(e)}catch(e){a=[]}a.forEach(e=>{const o=w([t,e,"defaultQuery"]),i={[c.TABLE]:{[u.EQUAL]:t}};n[o]={index:{fields:[c.TABLE,e]},name:o,ddoc:o,type:"json"},n[o].index.partial_filter_selector=i,[r.OrderDirection.ASC,r.OrderDirection.DSC].forEach(r=>{const o=w([t,e,"defaultQuery"],r);n[o]={index:{fields:[{[c.TABLE]:r},{[e]:r}]},name:o,ddoc:o,type:"json"}})});const s=i.Model.indexes(e);Object.entries(s).forEach(([e,i])=>{const a=[];Object.entries(i||{}).forEach(([,t])=>{if(!t)return;const r=t;void 0===r.directions&&void 0===r.compositions?"object"!=typeof t||Array.isArray(t)||Object.entries(t).forEach(([e,t])=>{t&&a.push([e,t])}):a.push([e,r])}),a.forEach(([e,i])=>{if(!i)return;let{directions:a,compositions:s}=i;const l=t;s=s||[];const d=[e,...s],p={[c.TABLE]:{[u.EQUAL]:l}};function g(t,i){const a=[l,e,...s,...i?[i]:[],r.PersistenceKeys.INDEX].join(o.DefaultSeparator),u=[c.TABLE,...d],g=t?[{[c.TABLE]:t},...d.map(e=>({[e]:t}))]:u;n[a]={index:{fields:g},name:a,ddoc:a,type:"json"},t||(n[a].index.partial_filter_selector=p)}g(),Array.from(new Set((a||[r.OrderDirection.ASC]).map(e=>(e+"").toLowerCase()))).filter(e=>e===r.OrderDirection.ASC||e===r.OrderDirection.DSC).forEach(e=>{g(e,e)})})})}),b(e).forEach(e=>{e.name&&(n[e.name]=e)}),Object.values(n)},e.generateViewIndexes=b,e.generateViewName=y,e.generateViews=e=>{const t={},o=[[c.VIEW,"view"],[r.Operator.GROUP_BY,"groupBy"],[r.Operator.COUNT,"count"],[r.Operator.SUM,"sum"],[r.Operator.MAX,"max"],[r.Operator.MIN,"min"],[r.Operator.DISTINCT,"distinct"]];return e.forEach(e=>{const n=i.Model.tableName(e);o.flatMap(([t,r])=>E(e,t,r)).forEach(e=>{const o=e.attribute,i=y(n,o,e.kind,e),a="_design/"+(e.ddoc||A(n,i)),s=((e,t,o,i)=>{const n=((e,t,o)=>{if(o.map)return"function"==typeof o.map?o.map.toString():o.map;const i=[];if(i.push(`doc[${JSON.stringify(c.TABLE)}] === ${JSON.stringify(e)}`),o.condition)if(o.condition instanceof r.Condition)i.push(h(o.condition,"doc"));else if("string"==typeof o.condition)i.push(o.condition);else{const e=r.Condition.from(o.condition);i.push(h(e,"doc"))}"count"===o.kind&&void 0!==o.value&&i.push(`doc[${JSON.stringify(t)}] === ${f(o.value)}`);const n=((e,t="doc")=>{if(!e)return;if("string"==typeof e)return e;const r=e.field||"roles",o=e.roles||[];if(!o.length)return e.expression;const i=`${t}[${JSON.stringify(r)}] || []`;return"all"===(e.mode||"any")?o.map(e=>`${i}.indexOf(${JSON.stringify(e)}) !== -1`).join(" && "):o.map(e=>`${i}.indexOf(${JSON.stringify(e)}) !== -1`).join(" || ")})(o.auth,"doc");n&&i.push(n);const a=i.length?i.join(" && "):"true",s=((e,t,r)=>{const o=m(e,t,r);return 1===o.length?`doc[${JSON.stringify(o[0])}]`:`[${o.map(e=>`doc[${JSON.stringify(e)}]`).join(", ")}]`})(o.key,t,o.compositions),u=((e,t)=>"doc"===e?"doc":e?Array.isArray(e)?`[${e.map(e=>`doc[${JSON.stringify(e)}]`).join(", ")}]`:"string"==typeof e?`doc[${JSON.stringify(e)}]`:f(e):`doc[${JSON.stringify(t)}]`)(o.value??(o.returnDocs&&"sum"!==o.kind?"doc":void 0),t);return`function (doc) {\n if (!(${a})) return;\n emit(${s}, ${u});\n}`})(i,t,o),a=o.reduce?"function"==typeof o.reduce?o.reduce.toString():o.reduce:(e=>{switch(e){case"count":case"groupBy":case"distinct":return"_count";case"sum":return"_sum";case"max":return"function (keys, values, rereduce) {\n var maxVal = null;\n for (var i = 0; i < values.length; i++) {\n var val = values[i];\n if (rereduce && val && typeof val === 'object' && 'value' in val) val = val.value;\n if (maxVal === null || val > maxVal) maxVal = val;\n }\n return maxVal;\n}";case"min":return"function (keys, values, rereduce) {\n var minVal = null;\n for (var i = 0; i < values.length; i++) {\n var val = values[i];\n if (rereduce && val && typeof val === 'object' && 'value' in val) val = val.value;\n if (minVal === null || val < minVal) minVal = val;\n }\n return minVal;\n}";default:return}})(e);return{map:n,reduce:a}})(e.kind,o,e,n);t[a]||(t[a]={_id:a,language:"javascript",views:{}}),t[a].views[i]=s})}),Object.values(t)},e.getMetadata=v,e.groupBy=(e,o)=>{let i={};return Array.isArray(e)?i.compositions=e:"string"==typeof e?i.name=e:e&&(i=e),"string"==typeof o?i.name=o:o&&(i=Object.assign({},i,o)),void 0===i.returnDocs&&(i.returnDocs=!0),t.Decoration.for(r.Operator.GROUP_BY).define({decorator:e=>r.applyViewDecorator(r.Operator.GROUP_BY,"groupBy",e),args:[i]}).apply()},e.max=(e,o)=>{let i={};return e instanceof r.Condition?i.condition=e:e&&(i=e),o&&(i=Object.assign({},i,o)),t.Decoration.for(r.Operator.MAX).define({decorator:e=>r.applyViewDecorator(r.Operator.MAX,"max",e),args:[i]}).apply()},e.min=(e,o)=>{let i={};return e instanceof r.Condition?i.condition=e:e&&(i=e),o&&(i=Object.assign({},i,o)),t.Decoration.for(r.Operator.MIN).define({decorator:e=>r.applyViewDecorator(r.Operator.MIN,"min",e),args:[i]}).apply()},e.reAuth=d,e.removeMetadata=S,e.reservedAttributes=s,e.setMetadata=D,e.sum=(e,o)=>{let i={};return e instanceof r.Condition?i.condition=e:e&&(i=e),o&&(i=Object.assign({},i,o)),t.Decoration.for(r.Operator.SUM).define({decorator:e=>r.applyViewDecorator(r.Operator.SUM,"sum",e),args:[i]}).apply()},e.testReservedAttributes=e=>e.match(/^_.*$/g),e.translateOperators=_,e.viewIndexDefinition=e=>{const t=m(e.key,e.attribute);return{attribute:t[0],compositions:t.slice(1).concat(e.compositions||[]),directions:e.directions}},e.wrapDocumentScope=(e,t,r,o)=>{const i=e.use?e.use(t):e;return["insert","get","put","destroy","find","view"].forEach(t=>{const n=i[t];Object.defineProperty(i,t,{enumerable:!1,configurable:!0,value:async(...t)=>(await d(e,r,o),n.call(i,...t))})}),Object.defineProperty(i,c.NATIVE,{enumerable:!1,configurable:!1,writable:!1,value:e}),i}},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("@decaf-ts/core"),require("@decaf-ts/db-decorators"),require("@decaf-ts/decorator-validation"),require("tslib"),require("@decaf-ts/logging")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/core","@decaf-ts/db-decorators","@decaf-ts/decorator-validation","tslib","@decaf-ts/logging"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-couchdb"]={},e.decafTsDecoration,e.decafTsCore,e.decafTsDbDecorators,e.decafTsDecoratorValidation,e.tslib,e.decafTsLogging);
1
+ var e,t;e=this,t=function(e,t,r,o,n,i,a){"use strict";const s=/^_.*$/g,c={SEPARATOR:"__",ID:"_id",REV:"_rev",DELETED:"_deleted",TABLE:"??table",SEQUENCE:"??sequence",DDOC:"ddoc",NATIVE:"__native",INDEX:"index",VIEW:"view"},u={EQUAL:"$eq",DIFFERENT:"$ne",BIGGER:"$gt",BIGGER_EQ:"$gte",SMALLER:"$lt",SMALLER_EQ:"$lte",NOT:"$not",IN:"$in",REGEXP:"$regex"},l={AND:"$and",OR:"$or"};async function d(e,t,r){return e.auth(t,r)}function f(e,t,n,i,a=o.DefaultSeparator){const s={};let l;if(s[c.TABLE]={},s[c.TABLE][u.EQUAL]=t,i){const t={};t[e]=i;const r=(n||[]).map(e=>{const t={};return t[e]=i,t}),o={};o[c.TABLE]=i,l=[t,...r,o]}else l=[e,...n||[],c.TABLE];const d=((e,t,n,i,a=o.DefaultSeparator)=>{const s=[r.PersistenceKeys.INDEX,t,e];return n&&s.push(...n),i&&s.push(i),s.join(a)})(e,t,n,i,a);return{index:{fields:l},ddoc:[d,c.DDOC].join(a),name:d}}function p(e){return e instanceof Date?JSON.stringify(e.toISOString()):e instanceof RegExp?`new RegExp(${JSON.stringify(e.source)}, ${JSON.stringify(e.flags)})`:JSON.stringify(e)}function g(e,t){const{attr1:o,operator:n,comparison:i}=e;if(o instanceof r.Condition){const e=g(o,t);if(n===r.Operator.NOT)return`!(${e})`;const a=g(i,t);return n===r.GroupOperator.AND?`(${e} && ${a})`:n===r.GroupOperator.OR?`(${e} || ${a})`:e}const a=`${t}[${JSON.stringify(o)}]`;switch(n){case r.Operator.EQUAL:return`${a} === ${p(i)}`;case r.Operator.DIFFERENT:return`${a} !== ${p(i)}`;case r.Operator.BIGGER:return`${a} > ${p(i)}`;case r.Operator.BIGGER_EQ:return`${a} >= ${p(i)}`;case r.Operator.SMALLER:return`${a} < ${p(i)}`;case r.Operator.SMALLER_EQ:return`${a} <= ${p(i)}`;case r.Operator.IN:return`(${p(i)}).indexOf(${a}) !== -1`;case r.Operator.REGEXP:return`${i instanceof RegExp?p(i):`new RegExp(${JSON.stringify(i)})`}.test(${a})`;case r.Operator.NOT:return`!(${a} === ${p(i)})`;default:return"true"}}function h(e,t,r){return e?Array.isArray(e)?e:[e]:t?[t,...r||[]]:r||[]}function m(e,t,r,n,i=o.DefaultSeparator){return n.name?n.name:[e,t,r,"view"].join(i).replace(/\s+/g,"_")}function y(e,t,r=o.DefaultSeparator){return[e,t,c.DDOC].join(r)}function A(e,o,n){const i={view:r.Operator.VIEW,groupBy:r.Operator.GROUP_BY,count:r.Operator.COUNT,sum:r.Operator.SUM,max:r.Operator.MAX,min:r.Operator.MIN,distinct:r.Operator.DISTINCT}[o];if(!i)return[];const a=t.Metadata.get(e,i)||{};return Object.entries(a).flatMap(([e,t])=>t&&"object"==typeof t?Object.values(t).map(t=>({...t,kind:o,attribute:t.attribute||e})).filter(e=>!n||e.attribute===n):[])}function O(e,r,o){const n=t.Metadata.get(e,r)||{};return Object.entries(n).flatMap(([e,t])=>t&&"object"==typeof t?Object.values(t).map(t=>{const r=t;return{...r,kind:o,attribute:r.attribute||e}}):[])}function b(e){const t={},o=[[c.VIEW,"view"],[r.Operator.GROUP_BY,"groupBy"],[r.Operator.COUNT,"count"],[r.Operator.SUM,"sum"],[r.Operator.MAX,"max"],[r.Operator.MIN,"min"],[r.Operator.DISTINCT,"distinct"]];return e.forEach(e=>{const i=n.Model.tableName(e);o.flatMap(([t,r])=>O(e,t,r)).forEach(e=>{const o=h(e.key,e.attribute,e.compositions);if(!o.length)return;const n=o[0],a=o.slice(1),s=e.directions||[r.OrderDirection.ASC,r.OrderDirection.DSC],c=f(n,i,a);t[c.name||""]=c,s.forEach(e=>{const r=f(n,i,a,e);t[r.name||""]=r})})}),Object.values(t)}function E(e,t,r,n=o.DefaultSeparator){return[...e.map(e=>e===c.TABLE?"table":e),...r||[],...t?[t]:[],c.INDEX].join(n)}function w(e,t,n=[],i,a=o.DefaultSeparator){return[e,t,...n,...i?[i]:[],r.PersistenceKeys.INDEX].join(a)}function S(e,t){Object.defineProperty(e,r.PersistenceKeys.METADATA,{enumerable:!1,configurable:!0,writable:!0,value:t})}function D(e){const t=Object.getOwnPropertyDescriptor(e,r.PersistenceKeys.METADATA);return t?t.value:void 0}function v(e){Object.getOwnPropertyDescriptor(e,r.PersistenceKeys.METADATA)&&delete e[r.PersistenceKeys.METADATA]}class x extends r.Repository{constructor(e,t,r=!1){super(e,t,r)}assignMetadata(e,t){const r=(e,t)=>{const r=D(t??e);return r&&S(e,r),e};return Array.isArray(e)?e.map((e,o)=>{const n=Array.isArray(t)?t[o]:t;return r(e,n)}):r(e,Array.isArray(t)?t?.[0]:t)}async create(e,...t){const r=await super.create(e,...t);return this.assignMetadata(r),this.assignMetadata(e,r),r}async createAll(e,...t){const r=await super.createAll(e,...t);return this.assignMetadata(r),this.assignMetadata(e,r),r}async read(e,...t){const r=await super.read(e,...t);return this.assignMetadata(r)}async readAll(e,...t){const r=await super.readAll(e,...t);return this.assignMetadata(r)}async update(e,...t){const r=await super.update(e,...t);return this.assignMetadata(r),this.assignMetadata(e,r),r}async updateAll(e,...t){const r=await super.updateAll(e,...t);return this.assignMetadata(r),this.assignMetadata(e,r),r}async delete(e,...t){const r=await super.delete(e,...t);return this.assignMetadata(r)}async deleteAll(e,...t){const r=await super.deleteAll(e,...t);return this.assignMetadata(r)}async updatePrefix(e,...t){const{ctx:r,ctxArgs:i,log:a}=(await this.logCtx(t,o.OperationKeys.UPDATE,!0)).for(this.updatePrefix),s=r.get("ignoreHandlers"),c=r.get("ignoreValidation");a.silly(`handlerSetting: ${s}, validationSetting: ${c}`);const u=e[this.pk];if(!u)throw new o.InternalError("No value for the Id is defined under the property "+this.pk);let l,d;if(r.get("applyUpdateValidation")&&(l=await this.read(u),d=l?D(l):void 0,r.get("mergeForUpdate")&&(e=n.Model.merge(l,e,this.class))),s||await o.enforceDBDecorators(this,r,e,o.OperationKeys.UPDATE,o.OperationKeys.ON,l),!c){const t=r.get("ignoredValidationProperties")||[];a.silly("ignored validation properties: "+t);const n=await Promise.resolve(e.hasErrors(l,...t));if(n)throw new o.ValidationError(n.toString())}return d&&S(e,d),[e,...i,l]}async updateAllPrefix(e,...t){const{ctx:r,ctxArgs:i,log:a}=(await this.logCtx(t,o.BulkCrudOperationKeys.UPDATE_ALL,!0)).for(this.updateAllPrefix),s=r.get("ignoreHandlers"),c=r.get("ignoreValidation");a.silly(`handlerSetting: ${s}, ignoredValidation: ${c}`);const u=e.map(e=>{const t=e[this.pk];if(!t)throw new o.InternalError("missing id on update operation");return t});let l;if(r.get("applyUpdateValidation")&&(l=await this.readAll(u,r),e=e.map((e,t)=>{r.get("mergeForUpdate")&&(e=n.Model.merge(l[t],e,this.class));const o=D(l[t]);return o&&S(e,o),e})),s||await Promise.all(e.map((e,t)=>o.enforceDBDecorators(this,r,e,o.OperationKeys.UPDATE,o.OperationKeys.ON,l?l[t]:void 0))),!c){const t=r.get("ignoredValidationProperties")||[];let n;a.silly("ignored validation properties: "+t),n=r.get("applyUpdateValidation")?await Promise.all(e.map((e,r)=>Promise.resolve(e.hasErrors(l[r],...t)))):await Promise.resolve(e.map(e=>e.hasErrors(...t)));const i=o.reduceErrorsToPrint(n);if(i)throw new o.ValidationError(i)}return[e,...i,l]}}class N extends o.BaseError{constructor(e){super(N.name,e,404)}}class T extends N{constructor(e,t,r){super(e),this.name="IndexPlanningError",this.suggestion=t,this.query=r}}class M extends r.Paginator{constructor(e,t,r,o){super(e,t,r,o),this._bookmarks=new Map}isValidBookmark(e){return"string"==typeof e&&e.length>0}prepare(e){const t=Object.assign({},e);return t.limit&&(this.limit=t.limit),t.limit=this.size,delete t.skip,t}async page(e=1,i,...a){const{log:s,ctxArgs:c,ctx:u}=this.adapter.logCtx([i,...a],this.page);if(this.isPreparedStatement())return await this.pagePrepared(e,...c);e=this.validatePage(e??1);const l=Object.assign({},this.statement);if(l.limit=this.size,1===e)this.isValidBookmark(i)?l.bookmark=i:delete l.bookmark;else{const t=i||this._bookmarks.get(e);if(!this.isValidBookmark(t))throw new r.PagingError("Random page access requires a cached CouchDB bookmark. Start at page 1 and page forward, or pass an explicit bookmark.");delete l.skip,l.bookmark=t}delete l.skip;const d=await this.adapter.raw(l,!1,...c),{docs:f,bookmark:p,warning:g}=d;if(g&&s.warn(g),d.execution_stats&&s.debug("Mango execution stats: "+JSON.stringify(d.execution_stats)),!this.clazz)throw new r.PagingError("No statement target defined");const h=n.Model.pk(this.clazz),m=t.Metadata.get(this.clazz,t.Metadata.key(o.DBKeys.ID,h))?.type,y=l.fields&&l.fields.length?f:f.map(e=>this.adapter.revert(e,this.clazz,r.Sequence.parseValue(m,e[h]),void 0,u));return this._bookmark=this.isValidBookmark(p)?p:void 0,this._currentPage=e,this.isValidBookmark(p)&&this._bookmarks.set(e+1,p),this.isValidBookmark(p)&&f.length>=this.size||(this._knownLastPage=e,this._totalPages=e,this._recordCount=(e-1)*this.size+f.length),y}}function _(e){for(const t of[u,l]){const r=Object.keys(t).find(t=>t===e);if(r)return t[r]}throw new r.QueryError("Could not find adapter translation for operator "+e)}const C=new Set(["$or","$in","$regex","$nin","$not","$ne","$nor"]);function B(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function I(e){if("string"==typeof e)return{field:e};if(Array.isArray(e))return e.length?{field:e[0]+""}:void 0;const[t,o]=Object.entries(e||{})[0]||[];return t?{field:t,direction:((o||r.OrderDirection.ASC)+"").toLowerCase()}:void 0}function j(e){return(e.sort||[]).map(I).filter(Boolean).map(e=>e.field)}function $(e){return(e.sort||[]).map(I).find(Boolean)?.direction}function P(e={}){const t=new Set,r=e=>{if(e&&"object"==typeof e)if(Array.isArray(e))e.forEach(r);else if(Array.isArray(e[l.AND]))e[l.AND].forEach(r);else for(const[o,n]of Object.entries(e))o!==l.OR&&o!==l.AND?B(n)?Object.prototype.hasOwnProperty.call(n,u.EQUAL)&&t.add(o):t.add(o):r(n)};return r(e),t}function L(e={}){const t=new Set,r=e=>{if(e&&"object"==typeof e)if(Array.isArray(e))e.forEach(r);else if(Array.isArray(e[l.AND]))e[l.AND].forEach(r);else for(const[o,n]of Object.entries(e))o!==l.OR&&o!==l.AND?B(n)&&(Object.prototype.hasOwnProperty.call(n,u.BIGGER)||Object.prototype.hasOwnProperty.call(n,u.BIGGER_EQ)||Object.prototype.hasOwnProperty.call(n,u.SMALLER)||Object.prototype.hasOwnProperty.call(n,u.SMALLER_EQ))&&t.add(o):r(n)};return r(e),t}function k(e){const t=n.Model.tableName(e),o=[],i=E([c.TABLE]);o.push({name:i,ddoc:i,fields:[c.TABLE],source:"table"});let a=[];try{a=n.Model.defaultQueryAttributes(e)}catch{a=[]}for(const e of a){const n=E([t,e,"defaultQuery"]);o.push({name:n,ddoc:n,fields:[c.TABLE,e],source:"defaultQuery"});for(const n of[r.OrderDirection.ASC,r.OrderDirection.DSC]){const r=E([t,e,"defaultQuery"],n);o.push({name:r,ddoc:r,fields:[c.TABLE,e],direction:n,source:"defaultQuery"})}}const s=n.Model.indexes(e);return Object.entries(s||{}).forEach(([e,n])=>{Object.values(n||{}).forEach(n=>{if(!n||!B(n))return;const i=n,a=i.compositions||[],s=i.directions||[r.OrderDirection.ASC],u=[c.TABLE,e,...a],l=w(t,e,a);o.push({name:l,ddoc:l,fields:u,source:"index"});const d=Array.from(new Set(s.map(e=>(e+"").toLowerCase()))).filter(e=>e===r.OrderDirection.ASC||e===r.OrderDirection.DSC);for(const r of d){const n=w(t,e,a,r);o.push({name:n,ddoc:n,fields:u,direction:r,source:"index"})}})}),o}function V(e,t,r={}){if(t.use_index)return;const o=!1!==r.preserveDefaultQuery,n=k(e),i=P(t.selector),a=L(t.selector),s=j(t),u=$(t);i.add(c.TABLE);const l=n.map(e=>{if(e.direction&&u&&e.direction!==u)return;if(!e.fields.includes(c.TABLE))return;if(e.fields[0]!==c.TABLE)return;const t=e.fields.filter(e=>e!==c.TABLE),n=0===s.length||s.every(e=>t.includes(e)),l=s.some(e=>t.includes(e)),d=0===a.size||Array.from(a).every(e=>t.includes(e)),f=Array.from(a).some(e=>t.includes(e));if(r.requireSortCoverage&&s.length&&!n)return;const p=t.filter(e=>i.has(e)).length,g=t.filter(e=>a.has(e)).length,h=t.filter(e=>s.includes(e)).length;if(!p&&!g&&!h)return;let m=0;return"defaultQuery"===e.source&&o&&(m+=100),"index"===e.source&&(m+=50),m+=30*p,m+=25*g,m+=20*h,n&&s.length&&(m+=20),d&&a.size&&(m+=20),l&&(m+=5),f&&(m+=5),e.direction&&u&&(m+=10),{candidate:e,score:m}}).filter(Boolean);if(!l.length)return;l.sort((e,t)=>t.score!==e.score?t.score-e.score:e.candidate.fields.length-t.candidate.fields.length);const d=l[0].candidate;return{candidate:d,use_index:[d.ddoc,d.name]}}function R(e,t){const r=n.Model.tableName(e),o=e.name,i=Array.from(P(t.selector)),a=Array.from(L(t.selector)),s=j(t),u=$(t),l=[c.TABLE];for(const e of i)e===c.TABLE||l.includes(e)||l.push(e);for(const e of a)e===c.TABLE||l.includes(e)||l.push(e);for(const e of s)e===c.TABLE||l.includes(e)||l.push(e);return{tableName:r,modelName:o,equalityFields:i,rangeFields:a,sortFields:s,sortDirection:u,requiredFields:l}}function Q(e,t){const o=R(e,t),n=o.requiredFields.filter(e=>e!==c.TABLE);if(!n.length)throw new T("Cannot infer @index declaration for query with no model fields.",{modelName:o.modelName,tableName:o.tableName,attribute:"",compositions:[],directions:[],expectedName:"",expectedDdoc:"",expectedFields:[c.TABLE],decorator:""},t);const i=n[0],a=n.slice(1),s=o.sortDirection||r.OrderDirection.ASC,u=w(o.tableName,i,a,s),l=[{[c.TABLE]:s},{[i]:s},...a.map(e=>({[e]:s}))],d=["@index({",a.length?` compositions: ${JSON.stringify(a)},`:void 0," directions: "+JSON.stringify([s]),"})",i+"!: <type>;"].filter(Boolean).join("\n");return{attribute:i,compositions:a,directions:[s],name:u,ddoc:u,fields:l,decorator:d}}function q(e,t,r,o={}){if(!e||t.use_index)return;if(!1===o.forceNamedIndexes&&!o.requireIndex)return;const n=V(e,t,{preserveDefaultQuery:o.preserveDefaultQuery??!0,requireSortCoverage:o.requireSortCoverage??!1});if(n)return t.use_index=n.use_index,void r?.debug?.(`Attached Mango use_index=${JSON.stringify(n.use_index)} from ${n.candidate.source} metadata`);if(!o.requireIndex)return;const i=Q(e,t);throw new T(["No generated CouchDB index can satisfy this Mango query.\n","Model: "+e.name,"Table: "+G(e),"\nTo allow this query, declare the following index on the model attribute:\n",i.decorator,"\nThen regenerate/deploy indexes.\n\nExpected generated index:"," ddoc: "+i.ddoc," name: "+i.name," fields: "+JSON.stringify(i.fields)].join("\n"),{modelName:e.name,tableName:G(e),attribute:i.attribute,compositions:i.compositions,directions:i.directions,expectedName:i.name,expectedDdoc:i.ddoc,expectedFields:i.fields,decorator:i.decorator},t)}function G(e){return n.Model.tableName(e)}function U(e,t,r="selector"){if(e&&"object"==typeof e)if(Array.isArray(e))e.forEach((e,o)=>U(e,t,`${r}[${o}]`));else for(const[o,n]of Object.entries(e))C.has(o)&&t?.warn?.(`Mango query contains scan-prone operator ${o} at ${r}. This may bypass or weaken index usage and can produce slow queries.`),U(n,t,`${r}.${o}`)}function F(e){if(!e)return"\0";const t=Array.from(e);for(let e=t.length-1;e>=0;e-=1){const r=t[e].codePointAt(0);if(void 0!==r&&1114111>r)return t[e]=String.fromCodePoint(r+1),t.slice(0,e+1).join("")}return e+"\0"}class K extends r.Statement{constructor(e,t){super(e,t),this.attributeTypeCache=new Map}build(){const e=this.log.for(this.build);this.manualAggregation=void 0;const t=this.buildAggregateInfo();if(t){if(!this.shouldUseManualAggregation())return this.createAggregateQuery(t);this.manualAggregation=t}const o={};o[c.TABLE]={},o[c.TABLE]=n.Model.tableName(this.fromSelector);const i={selector:o};if(this.selectSelector&&(i.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(r.Condition.and(this.whereCondition,r.Condition.attribute(c.TABLE).eq(i.selector[c.TABLE]))).selector,o=Object.keys(t);if(1===o.length&&-1!==Object.values(l).indexOf(o[0]))switch(o[0]){case l.AND:t[l.AND]=[...Object.values(t[l.AND]).reduce((e,t)=>{const r=Object.keys(t);if(1!==r.length)throw Error("Too many keys in query selector. should be one");const o=r[0];return o===l.AND?e.push(...t[o]):e.push(t),e},[])],i.selector=t;break;case l.OR:{const e={};e[l.AND]=[t,...Object.entries(i.selector).map(([e,t])=>{const r={};return r[e]=t,r})],i.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach(([t,r])=>{i.selector[t]&&e.warn(`A ${t} query param is about to be overridden: ${i.selector[t]} by ${r}`),i.selector[t]=r})}if(this.orderBySelectors?.length){i.sort=i.sort||[],i.selector=i.selector||{};for(const[e,t]of this.orderBySelectors){const r=e,o={};o[r]=t,i.sort.push(o),i.selector[r]||(i.selector[r]={},i.selector[r][u.BIGGER]=null)}}const a=!!this.manualAggregation;return this.limitSelector?i.limit=this.limitSelector:a||(e.warn("No limit selector defined. Using default couchdb limit of 250"),i.limit=250),this.offsetSelector&&(i.skip=this.offsetSelector),this.attachDefaultQueryIndex(i),(this.overrides?.forceNamedIndexes??!0)&&q(this.fromSelector,i,e,{preserveDefaultQuery:!0,requireSortCoverage:!1,forceNamedIndexes:!0}),U(i.selector,e),i}attachDefaultQueryIndex(e){if(!this.fromSelector||e.use_index)return;const t=n.Model.tableName(this.fromSelector);let r=[];try{r=n.Model.defaultQueryAttributes(this.fromSelector)}catch{r=[]}if(!r.length)return;const o=this.collectStartsWithRangeAttrs(e.selector||{}),i=r.filter(e=>o.has(e));if(!i.length)return;const a=(Array.isArray(e.sort)?e.sort:[]).map(e=>Object.entries(e||{})[0]).find(e=>e&&i.includes(e[0])),s=E([t,a?.[0]||i[0],"defaultQuery"],a?.[1]||void 0);e.use_index=s}collectStartsWithRangeAttrs(e){const t=new Set,r=e=>{e&&"object"==typeof e&&(Array.isArray(e)?e.forEach(e=>r(e)):Object.entries(e).forEach(([e,o])=>{if(e!==l.AND&&e!==l.OR&&o&&"object"==typeof o&&!Array.isArray(o)){const r=Object.prototype.hasOwnProperty.call(o,u.BIGGER_EQ),n=Object.prototype.hasOwnProperty.call(o,u.SMALLER);r&&n&&t.add(e)}r(o)}))};return r(e),t}processRecord(e,i){const a=n.Model.pk(this.fromSelector),s=t.Metadata.get(this.fromSelector,t.Metadata.key(o.DBKeys.ID,a))?.type;if(e[c.ID]){const[,...t]=e[c.ID].split(c.SEPARATOR),o=t.join("_");e[a]=r.Sequence.parseValue(s,o)}return this.adapter.revert(e,this.fromSelector,e[a],void 0,i)}async raw(e,...t){const{ctx:r}=this.logCtx(t,this.raw),o=e?.aggregateInfo;if(e?.aggregate&&o)return this.executeAggregate(o,r);const n=await this.adapter.raw(e,!0,r),i=n.map(e=>this.processRecord(e,r));if(this.manualAggregation){const e=this.executeManualAggregation(i,this.manualAggregation,r);return this.manualAggregation=void 0,e}return!this.selectSelector&&this.groupBySelectors?.length?this.groupSelectResults(i):this.selectSelector?n:await this.applyAfterHandlersToResult(i,r)}buildAggregateInfo(){if(this.fromSelector){if(this.avgSelector){const e=this.avgSelector+"",t=this.createAggregateDescriptor("sum",e);if(!t)throw this.missingDecorator("sum",e);const r=this.createAggregateDescriptor("count",e);if(!r)throw this.missingDecorator("count",e);return{kind:"avg",attribute:e,sumDescriptor:t.descriptor,countDescriptor:r.descriptor}}if(void 0!==this.countDistinctSelector){const e=this.resolveSelectorAttribute(this.countDistinctSelector),t=this.createAggregateDescriptor("distinct",e);if(!t)throw this.missingDecorator("distinct",e);return t.countDistinct=!0,t}if(void 0!==this.countSelector){const e=this.resolveSelectorAttribute(this.countSelector),t=this.createAggregateDescriptor("count",e);if(!t)throw this.missingDecorator("count",e);return t}if(this.maxSelector){const e=this.resolveSelectorAttribute(this.maxSelector),t=this.createAggregateDescriptor("max",e);if(!t)throw this.missingDecorator("max",e);return t}if(this.minSelector){const e=this.resolveSelectorAttribute(this.minSelector),t=this.createAggregateDescriptor("min",e);if(!t)throw this.missingDecorator("min",e);return t}if(this.sumSelector){const e=this.resolveSelectorAttribute(this.sumSelector),t=this.createAggregateDescriptor("sum",e);if(!t)throw this.missingDecorator("sum",e);return t}if(this.distinctSelector){const e=this.resolveSelectorAttribute(this.distinctSelector),t=this.createAggregateDescriptor("distinct",e);if(!t)throw this.missingDecorator("distinct",e);return t}}}createAggregateDescriptor(e,t){if(!this.fromSelector)return;const r=A(this.fromSelector,e,t);if(!r.length)return;const o=r[0],i=n.Model.tableName(this.fromSelector),a=m(i,o.attribute,e,o),s=o.ddoc||y(i,a),c={reduce:void 0!==o.reduce||!o.returnDocs};return"distinct"!==e&&"groupBy"!==e||(c.group=!0),{kind:e,meta:o,descriptor:{ddoc:s,view:a,options:c}}}createAggregateQuery(e){return{selector:{},aggregate:!0,aggregateInfo:e}}shouldUseManualAggregation(){return!!this.whereCondition}async executeAggregate(e,t){if(!this.isViewAggregate(e))return this.handleAverage(e,t);const r=this.getCouchAdapter(),o=e,n=await r.view(o.descriptor.ddoc,o.descriptor.view,o.descriptor.options,t);return this.processViewResponse(e,n)}async handleAverage(e,t){if("avg"!==e.kind)throw new r.QueryError("Average descriptor is not valid");const[o,n]=[e.sumDescriptor,e.countDescriptor],i=this.getCouchAdapter(),[a,s]=await Promise.all([i.view(o.ddoc,o.view,o.options,t),i.view(n.ddoc,n.view,n.options,t)]),c=a.rows?.[0]?.value??0,u=s.rows?.[0]?.value??0;return u?c/u:0}executeManualAggregation(e,t,o){if(!this.fromSelector)throw new r.QueryError("Manual aggregation requires a target model");if("avg"===t.kind)return this.computeAverage(e,t.attribute);if("groupBy"===t.kind)return this.computeGroupBy(e,t.meta.attribute);const n=t.meta.attribute;switch(t.kind){case"count":return t.countDistinct?this.computeDistinctCount(e,n):this.computeCount(e,n);case"distinct":return t.countDistinct?this.computeDistinctCount(e,n):this.computeDistinctValues(e,n);case"sum":return this.computeSum(e,n);case"min":return this.computeMinMax(e,n,"min");case"max":return this.computeMinMax(e,n,"max");default:throw new r.QueryError("Unsupported manual aggregation "+t.kind)}}computeCount(e,t){return t?this.collectValues(e,t).filter(e=>null!=e).length:e.length}computeDistinctCount(e,t){const r=t?this.collectValues(e,t).filter(e=>null!=e):e,o=new Set;return r.forEach(e=>o.add(JSON.stringify(e))),o.size}computeDistinctValues(e,t){if(!t)return[];const r=this.collectValues(e,t),o=new Set,n=[];return r.forEach(e=>{const t=JSON.stringify(e);o.has(t)||(o.add(t),n.push(e))}),n}computeSum(e,t){return t?this.collectValues(e,t).filter(e=>null!=e).reduce((e,r)=>e+this.toNumericValue(r,t,"SUM operation"),0):e.length}computeAverage(e,t){if(!t)return 0;const r=this.collectValues(e,t).filter(e=>null!=e);return r.length?r.reduce((e,r)=>e+this.toNumericValue(r,t,"AVG operation"),0)/r.length:0}computeMinMax(e,t,r){if(!t)return null;const o=this.collectValues(e,t).filter(e=>null!=e);let n=null,i=null;for(const e of o){const t=this.normalizeComparable(e);null!==t&&(null!==i?("min"===r&&i>t||"max"===r&&t>i)&&(i=t,n=e):(i=t,n=e))}return n}computeGroupBy(e,t){const r={},o=this.collectValues(e,t);return e.forEach((e,t)=>{const n=this.groupKey(o[t]);r[n]||(r[n]=[]),r[n].push(e)}),r}groupSelectResults(e){if(!this.groupBySelectors?.length)return{};const t=this.resolveSelectorAttribute(this.groupBySelectors[0]);if(!t)return{};const r={};return e.forEach(e=>{const o=this.groupKey(this.convertValueByAttribute(t,e[t]));r[o]||(r[o]=[]),r[o].push(e)}),r}collectValues(e,t){return e.map(e=>{if(e&&"object"==typeof e)return this.convertValueByAttribute(t,e[t])})}convertValueByAttribute(e,t){if(!this.fromSelector)return t;if("date"===this.getAttributeType(e)){if(t instanceof Date)return t;const e=new Date(t);if(!Number.isNaN(e.getTime()))return e}if("string"==typeof t&&e.toLowerCase().includes("date")){const e=new Date(t);if(!Number.isNaN(e.getTime()))return e}return t}getAttributeType(e){if(!e||!this.fromSelector)return;if(this.attributeTypeCache.has(e))return this.attributeTypeCache.get(e);const r=t.Metadata.type(this.fromSelector,e)??t.Metadata.getPropDesignTypes?.(this.fromSelector,e)?.designType,o=this.normalizeMetaType(r);return this.attributeTypeCache.set(e,o),o}normalizeMetaType(e){if(e)return"string"==typeof e?e.toLowerCase():"function"==typeof e&&e.name?e.name.toLowerCase():void 0}normalizeComparable(e){return"number"==typeof e?e:"bigint"==typeof e?Number(e):e instanceof Date?e.getTime():"string"!=typeof e||isNaN(Number(e))?null:Number(e)}groupKey(e){if(void 0===e)return"undefined";if(null===e)return"null";if("symbol"==typeof e)return e.toString();if("object"==typeof e)try{return JSON.stringify(e)}catch{return e+""}return e+""}toNumericValue(e,t,o){if("number"==typeof e)return e;if("bigint"==typeof e)return Number(e);if(e instanceof Date)return e.getTime();if("string"==typeof e&&!isNaN(Number(e)))return Number(e);throw new r.QueryError(`${o} on "${t}" requires numeric values, but got ${typeof e}`)}convertAggregateValue(e,t){return e?this.convertValueByAttribute(e,t):t}resolveSelectorAttribute(e){if(null!=e)return e+""}missingDecorator(e,t){const o=this.decoratorForKind(e),i=this.fromSelector?n.Model.tableName(this.fromSelector):"<unknown table>",a=t?` on "${t}"`:"";return new r.UnsupportedError(`${o} decorator is required for CouchDB ${e} aggregation${a} on table "${i}".`)}decoratorForKind(e){return{count:"@count",sum:"@sum",min:"@min",max:"@max",distinct:"@distinct",groupBy:"@groupBy",view:"@view",avg:"@avg"}[e]||"@"+e}processViewResponse(e,t){if("avg"===e.kind)throw new r.QueryError("Average results should be handled before processing rows");const o=t.rows||[],n=e,i=n.meta;return n.countDistinct?o.length||0:"distinct"===n.kind||"groupBy"===n.kind?o.map(e=>this.convertAggregateValue(n.meta.attribute,e.key??e.value)):i.returnDocs?o.map(e=>e.value??e.doc??e):o.length?this.convertAggregateValue(n.meta.attribute,o[0].value??o[0].key??null):"count"===n.kind?0:null}isViewAggregate(e){return"avg"!==e.kind}getCouchAdapter(){return this.adapter}parseCondition(e){const{attr1:t,operator:o,comparison:n}=e;if(o===r.Operator.STARTS_WITH){if("string"!=typeof t)throw new r.QueryError("STARTS_WITH requires an attribute name");if("string"!=typeof n)throw new r.QueryError("STARTS_WITH requires a string comparison");const e={start:i=n,end:F(i)};return{selector:{[t]:{[u.BIGGER_EQ]:e.start,[u.SMALLER]:e.end}}}}var i,a;if(o===r.Operator.ENDS_WITH){if("string"!=typeof t)throw new r.QueryError("ENDS_WITH requires an attribute name");if("string"!=typeof n)throw new r.QueryError("ENDS_WITH requires a string comparison");return{selector:{[t]:{[u.REGEXP]:(a=n,a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"$")}}}}if(o===r.Operator.BETWEEN){const e=t;if(!Array.isArray(n)||2!==n.length)throw new r.QueryError("BETWEEN operator requires [min, max] comparison");const[o,i]=n,a={};return a[e]={},a[e][_(r.Operator.BIGGER_EQ)]=o,a[e][_(r.Operator.SMALLER_EQ)]=i,{selector:a}}let s={};if(-1===[r.GroupOperator.AND,r.GroupOperator.OR,r.Operator.NOT].indexOf(o))s[t]={},s[t][_(o)]=n;else if(o===r.Operator.NOT)s=this.parseCondition(t).selector,s[_(r.Operator.NOT)]={},s[_(r.Operator.NOT)][t.attr1]=n;else{const e=this.parseCondition(t).selector,r=this.parseCondition(n).selector;s=((e,t,r)=>{const o={selector:{}};return o.selector[e]=[t,r],o})(_(o),e,r).selector}return{selector:s}}}class J extends r.Adapter{constructor(e,t,r){super(e,t,r),[this.create,this.createAll,this.update,this.updateAll].forEach(e=>{const t=e.name;o.prefixMethod(this,e,this[t+"Prefix"])})}Statement(e){return new K(this,e)}Paginator(e,t,r){return new M(this,e,t,r)}async initialize(){const e=r.Adapter.models(this.flavour);return this.index(...e)}repository(){return x}assignMetadata(e,t){return t?(S(e,t),e):e}assignMultipleMetadata(e,t){return e.forEach((e,r)=>(S(e,t[r]),e)),e}prepare(e,...t){const{log:i}=this.logCtx(t,this.prepare),a=e.segregate(),s=Object.entries(a.model).reduce((t,[r,i])=>{if(void 0===i)return t;const a=n.Model.columnName(e.constructor,r);if(this.isReserved(a))throw new o.InternalError(`Property name ${a} is reserved`);return i=i instanceof Date?new Date(i):i,t[a]=i,t},{});return e[r.PersistenceKeys.METADATA]&&(i.silly("Passing along persistence metadata for "+e[r.PersistenceKeys.METADATA]),Object.defineProperty(s,r.PersistenceKeys.METADATA,{enumerable:!1,writable:!0,configurable:!0,value:e[r.PersistenceKeys.METADATA]})),{record:s,id:e[n.Model.pk(e.constructor)],transient:a.transient}}createPrefix(e,t,r,...o){const{ctxArgs:i}=this.logCtx(o,this.createPrefix),a=n.Model.tableName(e),s={};return s[c.TABLE]=a,s[c.ID]=this.generateId(a,t),Object.assign(s,r),[e,t,s,...i]}createAllPrefix(e,t,r,...i){const a=n.Model.tableName(e);if(t.length!==r.length)throw new o.InternalError("Ids and models must have the same length");const{ctxArgs:s}=this.logCtx(i,this.createAllPrefix),u=t.map((e,t)=>{const o={};return o[c.TABLE]=a,o[c.ID]=this.generateId(a,e),Object.assign(o,r[t]),o});return[e,t,u,...s]}updatePrefix(e,t,i,...a){const s=n.Model.tableName(e),{ctxArgs:u}=this.logCtx(a,this.updatePrefix),l={};l[c.TABLE]=s,l[c.ID]=this.generateId(s,t);const d=i[r.PersistenceKeys.METADATA];if(!d)throw new o.InternalError("No revision number found for record with id "+t);return Object.assign(l,i),l[c.REV]=d,[e,t,l,...u]}updateAllPrefix(e,t,i,...a){const s=n.Model.tableName(e);if(t.length!==i.length)throw new o.InternalError("Ids and models must have the same length");const{ctxArgs:u}=this.logCtx(a,this.updateAllPrefix),l=t.map((e,t)=>{const n={};n[c.TABLE]=s,n[c.ID]=this.generateId(s,e);const a=i[t][r.PersistenceKeys.METADATA];if(!a)throw new o.InternalError("No revision number found for record with id "+e);return Object.assign(n,i[t]),n[c.REV]=a,n});return[e,t,l,...u]}generateId(e,t){const r=c.SEPARATOR;return"string"==typeof t&&t.startsWith(`${e}${r}`)&&t.split(r).length>=2?t:`${e}${r}${t+""}`}parseError(e,t){return J.parseError(e,t)}isReserved(e){return!!e.match(s)}static parseError(e,t){if(e instanceof o.BaseError)return e;let n="";if("string"==typeof e){if(n=e,n.match(/already exist|update conflict/g))return new o.ConflictError(n);if(n.match(/missing|deleted/g))return new o.NotFoundError(n)}else e.code?(n=e.code,t=t||e.message):e.statusCode?(n=e.statusCode,t=t||e.message):n=e.message;switch(n.toString()){case"401":case"412":case"409":return new o.ConflictError(t);case"404":return new o.NotFoundError(t);case"400":return n.toString().match(/No\sindex\sexists/g)?new N(e):new o.InternalError(e);default:return n.toString().match(/ECONNREFUSED/g)?new r.ConnectionError(e):new o.InternalError(e)}}static setMetadata(e,t){S(e,t)}static getMetadata(e){return D(e)}static removeMetadata(e){v(e)}}i.__decorate([a.final(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[Object]),i.__metadata("design:returntype",K)],J.prototype,"Statement",null),i.__decorate([a.final(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[Object,String]),i.__metadata("design:returntype",Object)],J.prototype,"assignMetadata",null),i.__decorate([a.final(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[Array,Array]),i.__metadata("design:returntype",Array)],J.prototype,"assignMultipleMetadata",null),i.__decorate([a.final(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[Object,Object,Object,Object]),i.__metadata("design:returntype",Array)],J.prototype,"createPrefix",null),i.__decorate([a.final(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[Object,Array,Array,Object]),i.__metadata("design:returntype",void 0)],J.prototype,"createAllPrefix",null),i.__decorate([a.final(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[Object,Object,Object,Object]),i.__metadata("design:returntype",void 0)],J.prototype,"updatePrefix",null),i.__decorate([a.final(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[Object,Array,Array,Object]),i.__metadata("design:returntype",void 0)],J.prototype,"updateAllPrefix",null);const z="##VERSION##",W="##PACKAGE##";t.Metadata.registerLibrary(W,z),e.COMMIT="4a942a6",e.CouchDBAdapter=J,e.CouchDBConst={NULL:"null"},e.CouchDBGroupOperator=l,e.CouchDBKeys=c,e.CouchDBOperator=u,e.CouchDBPaginator=M,e.CouchDBQueryLimit=250,e.CouchDBRepository=x,e.CouchDBStatement=K,e.FULL_VERSION="0.14.0-4a942a6",e.IndexError=N,e.IndexPlanningError=T,e.PACKAGE_NAME=W,e.VERSION=z,e.attachGeneratedUseIndex=q,e.buildGeneratedIndexCandidates=e=>k(e),e.collectViewMetadata=O,e.count=(e,o)=>{let n={};return e instanceof r.Condition?n.condition=e:"object"==typeof e&&e?n=e:void 0!==e&&(n.value=e),o&&(n=Object.assign({},n,o)),t.Decoration.for(r.Operator.COUNT).define({decorator:e=>r.applyViewDecorator(r.Operator.COUNT,"count",e),args:[n]}).apply()},e.distinct=(e,o)=>{let n={};return e instanceof r.Condition?n.condition=e:e&&(n=e),o&&(n=Object.assign({},n,o)),t.Decoration.for(r.Operator.DISTINCT).define({decorator:e=>r.applyViewDecorator(r.Operator.DISTINCT,"distinct",e),args:[n]}).apply()},e.enableMangoExecutionStats=e=>{e.execution_stats=!0},e.ensureDeterministicSort=(e,t,o)=>{if(!e.sort?.length)return;if(j(e).includes(t))return;const n=o||$(e)||r.OrderDirection.ASC;e.sort=[...e.sort,{[t]:n}]},e.findGeneratedIndexCandidateByName=(e,t)=>k(e).find(e=>e.name===t||e.ddoc===t),e.findViewMetadata=A,e.generateDesignDocName=y,e.generateIndexDoc=f,e.generateIndexName=E,e.generateIndexes=e=>{const t=E([c.TABLE]),o={};return o[t]={index:{fields:[c.TABLE]},name:t,ddoc:t,type:"json"},e.forEach(e=>{const t=n.Model.tableName(e);let i=[];try{i=n.Model.defaultQueryAttributes(e)}catch(e){i=[]}i.forEach(e=>{const n=E([t,e,"defaultQuery"]),i={[c.TABLE]:{[u.EQUAL]:t}};o[n]={index:{fields:[c.TABLE,e]},name:n,ddoc:n,type:"json"},o[n].index.partial_filter_selector=i,[r.OrderDirection.ASC,r.OrderDirection.DSC].forEach(r=>{const n=E([t,e,"defaultQuery"],r);o[n]={index:{fields:[{[c.TABLE]:r},{[e]:r}]},name:n,ddoc:n,type:"json"}})});const a=n.Model.indexes(e);Object.entries(a).forEach(([e,n])=>{const i=[];Object.entries(n||{}).forEach(([,t])=>{if(!t)return;const r=t;void 0===r.directions&&void 0===r.compositions?"object"!=typeof t||Array.isArray(t)||Object.entries(t).forEach(([e,t])=>{t&&i.push([e,t])}):i.push([e,r])}),i.forEach(([e,n])=>{if(!n)return;let{directions:i,compositions:a}=n;a=a||[];const s=[e,...a],l={[c.TABLE]:{[u.EQUAL]:t}};function d(r,n){const i=w(t,e,a,n),u=[c.TABLE,...s],d=r?[{[c.TABLE]:r},...s.map(e=>({[e]:r}))]:u;o[i]={index:{fields:d},name:i,ddoc:i,type:"json"},r||(o[i].index.partial_filter_selector=l)}d(),Array.from(new Set((i||[r.OrderDirection.ASC]).map(e=>(e+"").toLowerCase()))).filter(e=>e===r.OrderDirection.ASC||e===r.OrderDirection.DSC).forEach(e=>{d(e,e)})})})}),b(e).forEach(e=>{e.name&&(o[e.name]=e)}),Object.values(o)},e.generateModelIndexName=w,e.generateViewIndexes=b,e.generateViewName=m,e.generateViews=e=>{const t={},o=[[c.VIEW,"view"],[r.Operator.GROUP_BY,"groupBy"],[r.Operator.COUNT,"count"],[r.Operator.SUM,"sum"],[r.Operator.MAX,"max"],[r.Operator.MIN,"min"],[r.Operator.DISTINCT,"distinct"]];return e.forEach(e=>{const i=n.Model.tableName(e);o.flatMap(([t,r])=>O(e,t,r)).forEach(e=>{const o=e.attribute,n=m(i,o,e.kind,e),a="_design/"+(e.ddoc||y(i,n)),s=((e,t,o,n)=>{const i=((e,t,o)=>{if(o.map)return"function"==typeof o.map?o.map.toString():o.map;const n=[];if(n.push(`doc[${JSON.stringify(c.TABLE)}] === ${JSON.stringify(e)}`),o.condition)if(o.condition instanceof r.Condition)n.push(g(o.condition,"doc"));else if("string"==typeof o.condition)n.push(o.condition);else{const e=r.Condition.from(o.condition);n.push(g(e,"doc"))}"count"===o.kind&&void 0!==o.value&&n.push(`doc[${JSON.stringify(t)}] === ${p(o.value)}`);const i=((e,t="doc")=>{if(!e)return;if("string"==typeof e)return e;const r=e.field||"roles",o=e.roles||[];if(!o.length)return e.expression;const n=`${t}[${JSON.stringify(r)}] || []`;return"all"===(e.mode||"any")?o.map(e=>`${n}.indexOf(${JSON.stringify(e)}) !== -1`).join(" && "):o.map(e=>`${n}.indexOf(${JSON.stringify(e)}) !== -1`).join(" || ")})(o.auth,"doc");i&&n.push(i);const a=n.length?n.join(" && "):"true",s=((e,t,r)=>{const o=h(e,t,r);return 1===o.length?`doc[${JSON.stringify(o[0])}]`:`[${o.map(e=>`doc[${JSON.stringify(e)}]`).join(", ")}]`})(o.key,t,o.compositions),u=((e,t)=>"doc"===e?"doc":e?Array.isArray(e)?`[${e.map(e=>`doc[${JSON.stringify(e)}]`).join(", ")}]`:"string"==typeof e?`doc[${JSON.stringify(e)}]`:p(e):`doc[${JSON.stringify(t)}]`)(o.value??(o.returnDocs&&"sum"!==o.kind?"doc":void 0),t);return`function (doc) {\n if (!(${a})) return;\n emit(${s}, ${u});\n}`})(n,t,o),a=o.reduce?"function"==typeof o.reduce?o.reduce.toString():o.reduce:(e=>{switch(e){case"count":case"groupBy":case"distinct":return"_count";case"sum":return"_sum";case"max":return"function (keys, values, rereduce) {\n var maxVal = null;\n for (var i = 0; i < values.length; i++) {\n var val = values[i];\n if (rereduce && val && typeof val === 'object' && 'value' in val) val = val.value;\n if (maxVal === null || val > maxVal) maxVal = val;\n }\n return maxVal;\n}";case"min":return"function (keys, values, rereduce) {\n var minVal = null;\n for (var i = 0; i < values.length; i++) {\n var val = values[i];\n if (rereduce && val && typeof val === 'object' && 'value' in val) val = val.value;\n if (minVal === null || val < minVal) minVal = val;\n }\n return minVal;\n}";default:return}})(e);return{map:i,reduce:a}})(e.kind,o,e,i);t[a]||(t[a]={_id:a,language:"javascript",views:{}}),t[a].views[n]=s})}),Object.values(t)},e.getEqualitySelectorFields=P,e.getMetadata=D,e.getRangeSelectorFields=L,e.getRequiredMangoIndexShape=R,e.getSortDirection=$,e.getSortFields=j,e.groupBy=(e,o)=>{let n={};return Array.isArray(e)?n.compositions=e:"string"==typeof e?n.name=e:e&&(n=e),"string"==typeof o?n.name=o:o&&(n=Object.assign({},n,o)),void 0===n.returnDocs&&(n.returnDocs=!0),t.Decoration.for(r.Operator.GROUP_BY).define({decorator:e=>r.applyViewDecorator(r.Operator.GROUP_BY,"groupBy",e),args:[n]}).apply()},e.max=(e,o)=>{let n={};return e instanceof r.Condition?n.condition=e:e&&(n=e),o&&(n=Object.assign({},n,o)),t.Decoration.for(r.Operator.MAX).define({decorator:e=>r.applyViewDecorator(r.Operator.MAX,"max",e),args:[n]}).apply()},e.min=(e,o)=>{let n={};return e instanceof r.Condition?n.condition=e:e&&(n=e),o&&(n=Object.assign({},n,o)),t.Decoration.for(r.Operator.MIN).define({decorator:e=>r.applyViewDecorator(r.Operator.MIN,"min",e),args:[n]}).apply()},e.normalizeSortField=I,e.reAuth=d,e.removeMetadata=v,e.requireGeneratedUseIndex=(e,t,r,o={})=>{q(e,t,r,{preserveDefaultQuery:!0,requireSortCoverage:o.requireSortCoverage??!0,requireIndex:!0,forceNamedIndexes:!0})},e.reservedAttributes=s,e.resolveGeneratedIndexForQuery=V,e.reverseRequiredShapeToIndexDeclaration=Q,e.setMetadata=S,e.sum=(e,o)=>{let n={};return e instanceof r.Condition?n.condition=e:e&&(n=e),o&&(n=Object.assign({},n,o)),t.Decoration.for(r.Operator.SUM).define({decorator:e=>r.applyViewDecorator(r.Operator.SUM,"sum",e),args:[n]}).apply()},e.testReservedAttributes=e=>e.match(/^_.*$/g),e.translateOperators=_,e.viewIndexDefinition=e=>{const t=h(e.key,e.attribute);return{attribute:t[0],compositions:t.slice(1).concat(e.compositions||[]),directions:e.directions}},e.warnScanProneMangoOperators=U,e.wrapDocumentScope=(e,t,r,o)=>{const n=e.use?e.use(t):e;return["insert","get","put","destroy","find","view"].forEach(t=>{const i=n[t];Object.defineProperty(n,t,{enumerable:!1,configurable:!0,value:async(...t)=>(await d(e,r,o),i.call(n,...t))})}),Object.defineProperty(n,c.NATIVE,{enumerable:!1,configurable:!1,writable:!1,value:e}),n}},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("@decaf-ts/core"),require("@decaf-ts/db-decorators"),require("@decaf-ts/decorator-validation"),require("tslib"),require("@decaf-ts/logging")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/core","@decaf-ts/db-decorators","@decaf-ts/decorator-validation","tslib","@decaf-ts/logging"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-couchdb"]={},e.decafTsDecoration,e.decafTsCore,e.decafTsDbDecorators,e.decafTsDecoratorValidation,e.tslib,e.decafTsLogging);
2
2
  //# sourceMappingURL=for-couchdb.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-couchdb.cjs","sources":["../src/constants.ts","../src/query/constants.ts","../src/utils.ts","../src/views/generator.ts","../src/indexes/generator.ts","../src/metadata.ts","../src/repository.ts","../src/errors.ts","../src/query/Paginator.ts","../src/query/translate.ts","../src/query/Statement.ts","../src/adapter.ts","../src/index.ts","../src/decorators.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["reservedAttributes","CouchDBKeys","SEPARATOR","ID","REV","DELETED","TABLE","SEQUENCE","DDOC","NATIVE","INDEX","VIEW","CouchDBOperator","EQUAL","DIFFERENT","BIGGER","BIGGER_EQ","SMALLER","SMALLER_EQ","NOT","IN","REGEXP","CouchDBGroupOperator","AND","OR","async","reAuth","con","user","pass","auth","generateIndexName","attribute","tableName","compositions","order","separator","DefaultSeparator","attr","PersistenceKeys","push","join","generateIndexDoc","partialFilterSelector","fields","orderProp","sortedCompositions","map","c","r","sortedTable","name","index","ddoc","toJsLiteral","value","Date","JSON","stringify","toISOString","RegExp","source","flags","conditionToJs","condition","docVar","attr1","operator","comparison","Condition","left","Operator","right","GroupOperator","attrExpr","normalizeKey","key","Array","isArray","generateViewName","kind","meta","replace","generateDesignDocName","viewName","findViewMetadata","model","view","groupBy","GROUP_BY","count","COUNT","sum","SUM","max","MAX","min","MIN","distinct","DISTINCT","Metadata","get","Object","entries","flatMap","values","entry","filter","collectViewMetadata","generateViewIndexes","models","indexes","viewKeys","forEach","m","Model","length","slice","directions","OrderDirection","ASC","DSC","baseIndex","direction","dirIndex","n","setMetadata","metadata","defineProperty","METADATA","enumerable","configurable","writable","getMetadata","descriptor","getOwnPropertyDescriptor","undefined","removeMetadata","CouchDBRepository","Repository","constructor","adapter","force","super","assignMetadata","target","apply","instance","carrier","create","args","result","this","createAll","results","read","id","readAll","ids","update","updateAll","delete","deleteAll","updatePrefix","ctx","ctxArgs","log","logCtx","OperationKeys","UPDATE","for","ignoreHandlers","ignoreValidate","silly","pk","InternalError","oldModel","oldMetadata","merge","class","enforceDBDecorators","ON","propsToIgnore","errors","Promise","resolve","hasErrors","ValidationError","toString","updateAllPrefix","BulkCrudOperationKeys","UPDATE_ALL","oldModels","i","all","ignoredProps","modelsValidation","errorMessages","reduceErrorsToPrint","IndexError","BaseError","msg","CouchDBPaginator","Paginator","query","size","clazz","prepare","rawStatement","assign","limit","page","bookmark","isPreparedStatement","pagePrepared","statement","_recordCount","_totalPages","validatePage","skip","countResults","raw","Number","MAX_SAFE_INTEGER","Math","ceil","_bookmark","PagingError","rawResult","docs","nextBookmark","warning","warn","type","DBKeys","pageResults","d","revert","Sequence","parseValue","_currentPage","translateOperators","operators","el","keys","find","k","QueryError","nextLexicographicString","chars","from","code","codePointAt","String","fromCodePoint","CouchDBStatement","Statement","overrides","attributeTypeCache","Map","build","manualAggregation","aggregateInfo","buildAggregateInfo","shouldUseManualAggregation","createAggregateQuery","selectors","fromSelector","selector","selectSelector","whereCondition","parseCondition","and","eq","selectorKeys","indexOf","reduce","accum","val","Error","s","orderBySelectors","sort","selectorKey","rec","hasManualAggregate","limitSelector","offsetSelector","attachDefaultQueryIndex","use_index","defaultAttrs","defaultQueryAttributes","rangedAttrs","collectStartsWithRangeAttrs","matchedAttrs","has","sortEntry","includes","targetAttr","indexName","toLowerCase","attrs","Set","walk","node","child","hasLower","prototype","hasOwnProperty","call","hasUpper","add","processRecord","record","pkAttr","keyArgs","split","rawInput","aggregator","aggregate","executeAggregate","processed","manualResult","executeManualAggregation","groupBySelectors","groupSelectResults","applyAfterHandlersToResult","avgSelector","sumInfo","createAggregateDescriptor","missingDecorator","countInfo","sumDescriptor","countDescriptor","countDistinctSelector","resolveSelectorAttribute","info","countDistinct","countSelector","maxSelector","minSelector","sumSelector","distinctSelector","metas","options","returnDocs","group","isViewAggregate","handleAverage","couchAdapter","getCouchAdapter","viewInfo","response","processViewResponse","sumDesc","countDesc","sumResponse","countResponse","rows","computeAverage","computeGroupBy","computeDistinctCount","computeCount","computeDistinctValues","computeSum","computeMinMax","collectValues","seen","unique","acc","toNumericValue","mode","currentValue","currentComparable","normalized","normalizeComparable","grouped","doc","groupKey","convertValueByAttribute","getAttributeType","parsed","isNaN","getTime","metaType","getPropDesignTypes","designType","normalizeMetaType","set","field","context","convertAggregateValue","decorator","decoratorForKind","table","attributeDesc","UnsupportedError","avg","row","STARTS_WITH","range","start","prefix","end","ENDS_WITH","BETWEEN","opBetween","op","op1","op2","obj1","obj2","CouchDBAdapter","Adapter","scope","flavour","alias","prefixMethod","initialize","managedModels","repository","rev","assignMultipleMetadata","revs","segregate","mappedProp","columnName","isReserved","transient","createPrefix","generateId","createAllPrefix","records","sep","startsWith","parseError","err","reason","match","ConflictError","NotFoundError","message","statusCode","ConnectionError","__decorate","final","VERSION","PACKAGE_NAME","registerLibrary","NULL","valueOrCondition","opts","Decoration","define","o","applyViewDecorator","conditionOrOptions","modelTableName","defaultQueryAttrs","baseName","defaultFilter","partial_filter_selector","sortedName","ind","metadataEntries","metadataValue","candidate","fieldKey","fieldKeys","tableFilter","generate","suffix","baseFields","sortField","dir","viewDocs","ddocId","viewDef","guards","resolved","authGuard","roles","expression","listExpr","buildAuthGuard","guard","emitKey","buildEmitKey","emitValue","v","buildEmitValue","buildMapFunction","defaultReduce","normalizeViewMetadata","_id","language","views","compositionsOrOptions","nameOrOptions","concat","dbName","db","use","original"],"mappings":"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"}
1
+ {"version":3,"file":"for-couchdb.cjs","sources":["../src/constants.ts","../src/query/constants.ts","../src/utils.ts","../src/views/generator.ts","../src/indexes/generator.ts","../src/metadata.ts","../src/repository.ts","../src/errors/IndexError.ts","../src/errors/IndexPlanningError.ts","../src/query/Paginator.ts","../src/query/translate.ts","../src/query/planner.ts","../src/query/Statement.ts","../src/adapter.ts","../src/index.ts","../src/decorators.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["reservedAttributes","CouchDBKeys","SEPARATOR","ID","REV","DELETED","TABLE","SEQUENCE","DDOC","NATIVE","INDEX","VIEW","CouchDBOperator","EQUAL","DIFFERENT","BIGGER","BIGGER_EQ","SMALLER","SMALLER_EQ","NOT","IN","REGEXP","CouchDBGroupOperator","AND","OR","async","reAuth","con","user","pass","auth","generateIndexDoc","attribute","tableName","compositions","order","separator","DefaultSeparator","partialFilterSelector","fields","orderProp","sortedCompositions","map","c","r","sortedTable","name","attr","PersistenceKeys","push","join","generateIndexName","index","ddoc","toJsLiteral","value","Date","JSON","stringify","toISOString","RegExp","source","flags","conditionToJs","condition","docVar","attr1","operator","comparison","Condition","left","Operator","right","GroupOperator","attrExpr","normalizeKey","key","Array","isArray","generateViewName","kind","meta","replace","generateDesignDocName","viewName","findViewMetadata","model","view","groupBy","GROUP_BY","count","COUNT","sum","SUM","max","MAX","min","MIN","distinct","DISTINCT","Metadata","get","Object","entries","flatMap","values","entry","filter","collectViewMetadata","generateViewIndexes","models","indexes","viewKeys","forEach","m","Model","length","slice","directions","OrderDirection","ASC","DSC","baseIndex","direction","dirIndex","n","generateModelIndexName","fieldKey","setMetadata","metadata","defineProperty","METADATA","enumerable","configurable","writable","getMetadata","descriptor","getOwnPropertyDescriptor","undefined","removeMetadata","CouchDBRepository","Repository","constructor","adapter","force","super","assignMetadata","target","apply","instance","carrier","create","args","result","this","createAll","results","read","id","readAll","ids","update","updateAll","delete","deleteAll","updatePrefix","ctx","ctxArgs","log","logCtx","OperationKeys","UPDATE","for","ignoreHandlers","ignoreValidate","silly","pk","InternalError","oldModel","oldMetadata","merge","class","enforceDBDecorators","ON","propsToIgnore","errors","Promise","resolve","hasErrors","ValidationError","toString","updateAllPrefix","BulkCrudOperationKeys","UPDATE_ALL","oldModels","i","all","ignoredProps","modelsValidation","errorMessages","reduceErrorsToPrint","IndexError","BaseError","msg","IndexPlanningError","message","suggestion","query","CouchDBPaginator","Paginator","size","clazz","_bookmarks","Map","isValidBookmark","prepare","rawStatement","assign","limit","skip","page","bookmark","isPreparedStatement","pagePrepared","validatePage","statement","explicitBookmark","PagingError","rawResult","raw","docs","nextBookmark","warning","warn","execution_stats","debug","type","DBKeys","pageResults","d","revert","Sequence","parseValue","_bookmark","_currentPage","set","_knownLastPage","_totalPages","_recordCount","translateOperators","operators","el","keys","find","k","QueryError","SCAN_PRONE_OPERATORS","Set","isPlainObject","normalizeSortField","field","String","toLowerCase","getSortFields","sort","Boolean","getSortDirection","getEqualitySelectorFields","selector","visit","node","prototype","hasOwnProperty","call","add","getRangeSelectorFields","collectGeneratedIndexEntries","candidates","tableIndexName","defaultQueryAttrs","defaultQueryAttributes","baseName","sortedName","modelIndexes","metadataValue","validDirections","from","dir","resolveGeneratedIndexForQuery","options","use_index","preserveDefaultQuery","equalityFields","rangeFields","sortFields","sortDirection","scored","candidate","includes","candidateFields","coversAllSort","every","coversSomeSort","some","coversAllRange","coversSomeRange","requireSortCoverage","equalityCoverage","has","rangeCoverage","sortCoverage","score","a","b","best","getRequiredMangoIndexShape","modelName","requiredFields","reverseRequiredShapeToIndexDeclaration","shape","nonTableFields","expectedName","expectedDdoc","expectedFields","decorator","attachGeneratedUseIndex","forceNamedIndexes","requireIndex","resolved","reversed","shapeTableName","warnScanProneMangoOperators","path","nextLexicographicString","chars","code","codePointAt","fromCodePoint","CouchDBStatement","Statement","overrides","attributeTypeCache","build","manualAggregation","aggregateInfo","buildAggregateInfo","shouldUseManualAggregation","createAggregateQuery","selectors","fromSelector","selectSelector","whereCondition","parseCondition","and","eq","selectorKeys","indexOf","reduce","accum","val","Error","s","orderBySelectors","selectorKey","rec","hasManualAggregate","limitSelector","offsetSelector","attachDefaultQueryIndex","defaultAttrs","rangedAttrs","collectStartsWithRangeAttrs","matchedAttrs","sortEntry","indexName","attrs","walk","child","hasLower","hasUpper","processRecord","record","pkAttr","keyArgs","split","rawInput","aggregator","aggregate","executeAggregate","processed","manualResult","executeManualAggregation","groupBySelectors","groupSelectResults","applyAfterHandlersToResult","avgSelector","sumInfo","createAggregateDescriptor","missingDecorator","countInfo","sumDescriptor","countDescriptor","countDistinctSelector","resolveSelectorAttribute","info","countDistinct","countSelector","maxSelector","minSelector","sumSelector","distinctSelector","metas","returnDocs","group","isViewAggregate","handleAverage","couchAdapter","getCouchAdapter","viewInfo","response","processViewResponse","sumDesc","countDesc","sumResponse","countResponse","rows","computeAverage","computeGroupBy","computeDistinctCount","computeCount","computeDistinctValues","computeSum","computeMinMax","collectValues","seen","unique","acc","toNumericValue","mode","currentValue","currentComparable","normalized","normalizeComparable","grouped","doc","groupKey","convertValueByAttribute","getAttributeType","parsed","Number","isNaN","getTime","metaType","getPropDesignTypes","designType","normalizeMetaType","context","convertAggregateValue","decoratorForKind","table","attributeDesc","UnsupportedError","avg","row","STARTS_WITH","range","start","prefix","end","ENDS_WITH","BETWEEN","opBetween","op","op1","op2","obj1","obj2","CouchDBAdapter","Adapter","scope","flavour","alias","prefixMethod","initialize","managedModels","repository","rev","assignMultipleMetadata","revs","segregate","mappedProp","columnName","isReserved","transient","createPrefix","generateId","createAllPrefix","records","sep","startsWith","parseError","err","reason","match","ConflictError","NotFoundError","statusCode","ConnectionError","__decorate","final","VERSION","PACKAGE_NAME","registerLibrary","NULL","valueOrCondition","opts","Decoration","define","o","applyViewDecorator","conditionOrOptions","tieBreaker","effectiveDirection","modelTableName","defaultFilter","partial_filter_selector","ind","metadataEntries","fieldKeys","tableFilter","generate","suffix","baseFields","sortField","viewDocs","ddocId","viewDef","guards","authGuard","roles","expression","listExpr","buildAuthGuard","guard","emitKey","buildEmitKey","emitValue","v","buildEmitValue","buildMapFunction","defaultReduce","normalizeViewMetadata","_id","language","views","compositionsOrOptions","nameOrOptions","concat","dbName","db","use","original"],"mappings":"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"}