@decaf-ts/for-couchdb 0.4.29 → 0.4.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- var e,t;e=this,t=function(e,t,r,a,n,o,i){"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"},d={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 u(e,t,r){return e.auth(t,r)}function p(e,t,n,o,i=a.DefaultSeparator){const s=[r.PersistenceKeys.INDEX,t,e];return n&&s.push(...n),o&&s.push(o),s.join(i)}function f(e,t,r,n,o=a.DefaultSeparator){const i={};let s;if(i[c.TABLE]={},i[c.TABLE][d.EQUAL]=t,n){const t={};t[e]=n;const a=(r||[]).map(e=>{const t={};return t[e]=n,t}),o={};o[c.TABLE]=n,s=[t,...a,o]}else s=[e,...r||[],c.TABLE];const l=p(e,t,r,n,o);return{index:{fields:s},ddoc:[l,c.DDOC].join(o),name:l}}function g(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:a,operator:n,comparison:o}=e;if(a instanceof r.Condition){const e=h(a,t);if(n===r.Operator.NOT)return`!(${e})`;const i=h(o,t);return n===r.GroupOperator.AND?`(${e} && ${i})`:n===r.GroupOperator.OR?`(${e} || ${i})`:e}const i=`${t}[${JSON.stringify(a)}]`;switch(n){case r.Operator.EQUAL:return`${i} === ${g(o)}`;case r.Operator.DIFFERENT:return`${i} !== ${g(o)}`;case r.Operator.BIGGER:return`${i} > ${g(o)}`;case r.Operator.BIGGER_EQ:return`${i} >= ${g(o)}`;case r.Operator.SMALLER:return`${i} < ${g(o)}`;case r.Operator.SMALLER_EQ:return`${i} <= ${g(o)}`;case r.Operator.IN:return`(${g(o)}).indexOf(${i}) !== -1`;case r.Operator.REGEXP:return`${o instanceof RegExp?g(o):`new RegExp(${JSON.stringify(o)})`}.test(${i})`;case r.Operator.NOT:return`!(${i} === ${g(o)})`;default:return"true"}}function m(e,t,r){return e?Array.isArray(e)?e:[e]:t?[t,...r||[]]:r||[]}function y(e,r,a){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:a,attribute:r.attribute||e}}):[])}function O(e){const t={},a=[[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 o=n.Model.tableName(e);a.flatMap(([t,r])=>y(e,t,r)).forEach(e=>{const a=m(e.key,e.attribute,e.compositions);if(!a.length)return;const n=a[0],i=a.slice(1),s=e.directions||[r.OrderDirection.ASC,r.OrderDirection.DSC],c=f(n,o,i);t[c.name||""]=c,s.forEach(e=>{const r=f(n,o,i,e);t[r.name||""]=r})})}),Object.values(t)}function A(e,t){Object.defineProperty(e,r.PersistenceKeys.METADATA,{enumerable:!1,configurable:!0,writable:!0,value:t})}function E(e){const t=Object.getOwnPropertyDescriptor(e,r.PersistenceKeys.METADATA);return t?t.value:void 0}function b(e){Object.getOwnPropertyDescriptor(e,r.PersistenceKeys.METADATA)&&delete e[r.PersistenceKeys.METADATA]}class v extends r.Repository{constructor(e,t){super(e,t)}assignMetadata(e,t){const r=(e,t)=>{const r=E(t??e);return r&&A(e,r),e};return Array.isArray(e)?e.map((e,a)=>{const n=Array.isArray(t)?t[a]: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:o,log:i}=(await this.logCtx(t,a.OperationKeys.UPDATE,!0)).for(this.updatePrefix),s=r.get("ignoreHandlers"),c=r.get("ignoreValidation");i.silly(`handlerSetting: ${s}, validationSetting: ${c}`);const d=e[this.pk];if(!d)throw new a.InternalError("No value for the Id is defined under the property "+this.pk);let l,u;if(r.get("applyUpdateValidation")&&(l=await this.read(d),u=l?E(l):void 0,r.get("mergeForUpdate")&&(e=n.Model.merge(l,e,this.class))),s||await a.enforceDBDecorators(this,r,e,a.OperationKeys.UPDATE,a.OperationKeys.ON,l),!c){const t=r.get("ignoredValidationProperties")||[];i.silly("ignored validation properties: "+t);const n=await Promise.resolve(e.hasErrors(l,...t));if(n)throw new a.ValidationError(n.toString())}return u&&A(e,u),[e,...o,l]}async updateAllPrefix(e,...t){const{ctx:r,ctxArgs:o,log:i}=(await this.logCtx(t,a.BulkCrudOperationKeys.UPDATE_ALL,!0)).for(this.updateAllPrefix),s=r.get("ignoreHandlers"),c=r.get("ignoreValidation");i.silly(`handlerSetting: ${s}, ignoredValidation: ${c}`);const d=e.map(e=>{const t=e[this.pk];if(!t)throw new a.InternalError("missing id on update operation");return t});let l;if(r.get("applyUpdateValidation")&&(l=await this.readAll(d,r),e=e.map((e,t)=>{r.get("mergeForUpdate")&&(e=n.Model.merge(l[t],e,this.class));const a=E(l[t]);return a&&A(e,a),e})),s||await Promise.all(e.map((e,t)=>a.enforceDBDecorators(this,r,e,a.OperationKeys.UPDATE,a.OperationKeys.ON,l?l[t]:void 0))),!c){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(l[r],...t)))):await Promise.resolve(e.map(e=>e.hasErrors(...t)));const o=a.reduceErrorsToPrint(n);if(o)throw new a.ValidationError(o)}return[e,...o,l]}}class w extends a.BaseError{constructor(e){super(w.name,e,404)}}class D extends r.Paginator{constructor(e,t,r,a){super(e,t,r,a)}prepare(e){const t=Object.assign({},e);return t.limit&&(this.limit=t.limit),t.limit=this.size,t}async page(e=1,o,...i){const{log:s,ctxArgs:c,ctx:d}=this.adapter.logCtx([o,...i],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_VALUE},!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 u=await this.adapter.raw(l,!1,...c),{docs:p,bookmark:f,warning:g}=u;if(g&&s.warn(g),!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(a.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,d));return this._bookmark=f,this._currentPage=e,y}}function _(e){for(const t of[d,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)}class x extends r.Statement{constructor(e){super(e)}build(){const e=this.log.for(this.build),t={};t[c.TABLE]={},t[c.TABLE]=n.Model.tableName(this.fromSelector);const a={selector:t};if(this.selectSelector&&(a.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(r.Condition.and(this.whereCondition,r.Condition.attribute(c.TABLE).eq(a.selector[c.TABLE]))).selector,n=Object.keys(t);if(1===n.length&&-1!==Object.values(l).indexOf(n[0]))switch(n[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 a=r[0];return a===l.AND?e.push(...t[a]):e.push(t),e},[])],a.selector=t;break;case l.OR:{const e={};e[l.AND]=[t,...Object.entries(a.selector).map(([e,t])=>{const r={};return r[e]=t,r})],a.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach(([t,r])=>{a.selector[t]&&e.warn(`A ${t} query param is about to be overridden: ${a.selector[t]} by ${r}`),a.selector[t]=r})}if(this.orderBySelector){a.sort=a.sort||[],a.selector=a.selector||{};const[e,t]=this.orderBySelector,r={};r[e]=t,a.sort.push(r),a.selector[e]||(a.selector[e]={},a.selector[e][d.BIGGER]=null)}return this.limitSelector?a.limit=this.limitSelector:(e.warn("No limit selector defined. Using default couchdb limit of 250"),a.limit=250),this.offsetSelector&&(a.skip=this.offsetSelector),a}processRecord(e,t,a,n){if(e[c.ID]){const[,...t]=e[c.ID].split(c.SEPARATOR),o=t.join("_");return this.adapter.revert(e,this.fromSelector,r.Sequence.parseValue(a,o),void 0,n)}return e}async raw(e,...r){const{ctx:o}=this.logCtx(r,this.raw),i=await this.adapter.raw(e,!0,o),s=n.Model.pk(this.fromSelector),c=t.Metadata.get(this.fromSelector,t.Metadata.key(a.DBKeys.ID,s))?.type;return this.selectSelector?i:i.map(e=>this.processRecord(e,s,c,o))}parseCondition(e){const{attr1:t,operator:a,comparison:n}=e;let o={};if(-1===[r.GroupOperator.AND,r.GroupOperator.OR,r.Operator.NOT].indexOf(a))o[t]={},o[t][_(a)]=n;else if(a===r.Operator.NOT)o=this.parseCondition(t).selector,o[_(r.Operator.NOT)]={},o[_(r.Operator.NOT)][t.attr1]=n;else{const e=this.parseCondition(t).selector,r=this.parseCondition(n).selector;o=((e,t,r)=>{const a={selector:{}};return a.selector[e]=[t,r],a})(_(a),e,r).selector}return{selector:o}}}class N 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;a.prefixMethod(this,e,this[t+"Prefix"])})}Statement(){return new x(this)}Paginator(e,t,r){return new D(this,e,t,r)}async initialize(){const e=r.Adapter.models(this.flavour);return this.index(...e)}repository(){return v}assignMetadata(e,t){return t?(A(e,t),e):e}assignMultipleMetadata(e,t){return e.forEach((e,r)=>(A(e,t[r]),e)),e}prepare(e,...t){const{log:o}=this.logCtx(t,this.prepare),i=e.segregate(),s=Object.entries(i.model).reduce((t,[r,o])=>{if(void 0===o)return t;const i=n.Model.columnName(e.constructor,r);if(this.isReserved(i))throw new a.InternalError(`Property name ${i} is reserved`);return o=o instanceof Date?new Date(o):o,t[i]=o,t},{});return e[r.PersistenceKeys.METADATA]&&(o.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:i.transient}}createPrefix(e,t,r,...a){const{ctxArgs:o}=this.logCtx(a,this.createPrefix),i=n.Model.tableName(e),s={};return s[c.TABLE]=i,s[c.ID]=this.generateId(i,t),Object.assign(s,r),[e,t,s,...o]}createAllPrefix(e,t,r,...o){const i=n.Model.tableName(e);if(t.length!==r.length)throw new a.InternalError("Ids and models must have the same length");const{ctxArgs:s}=this.logCtx(o,this.createAllPrefix),d=t.map((e,t)=>{const a={};return a[c.TABLE]=i,a[c.ID]=this.generateId(i,e),Object.assign(a,r[t]),a});return[e,t,d,...s]}updatePrefix(e,t,o,...i){const s=n.Model.tableName(e),{ctxArgs:d}=this.logCtx(i,this.updatePrefix),l={};l[c.TABLE]=s,l[c.ID]=this.generateId(s,t);const u=o[r.PersistenceKeys.METADATA];if(!u)throw new a.InternalError("No revision number found for record with id "+t);return Object.assign(l,o),l[c.REV]=u,[e,t,l,...d]}updateAllPrefix(e,t,o,...i){const s=n.Model.tableName(e);if(t.length!==o.length)throw new a.InternalError("Ids and models must have the same length");const{ctxArgs:d}=this.logCtx(i,this.updateAllPrefix),l=t.map((e,t)=>{const n={};n[c.TABLE]=s,n[c.ID]=this.generateId(s,e);const i=o[t][r.PersistenceKeys.METADATA];if(!i)throw new a.InternalError("No revision number found for record with id "+e);return Object.assign(n,o[t]),n[c.REV]=i,n});return[e,t,l,...d]}generateId(e,t){return[e,t].join(c.SEPARATOR)}parseError(e,t){return N.parseError(e,t)}isReserved(e){return!!e.match(s)}static parseError(e,t){if(e instanceof a.BaseError)return e;let n="";if("string"==typeof e){if(n=e,n.match(/already exist|update conflict/g))return new a.ConflictError(n);if(n.match(/missing|deleted/g))return new a.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 a.ConflictError(t);case"404":return new a.NotFoundError(t);case"400":return n.toString().match(/No\sindex\sexists/g)?new w(e):new a.InternalError(e);default:return n.toString().match(/ECONNREFUSED/g)?new r.ConnectionError(e):new a.InternalError(e)}}static setMetadata(e,t){A(e,t)}static getMetadata(e){return E(e)}static removeMetadata(e){b(e)}}function M(e,r,a){return(n,o)=>{const i=a?.name||((e,r,a)=>{const n=(t.Metadata.get(e.constructor,r)||{})[a]||{};return Object.keys(n).length+1+""})(n,e,o),s=t.Metadata.key(e,o,i),c={...a||{},kind:r,attribute:o};return t.propMetadata(s,c)(n,o)}}o.__decorate([i.final(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[]),o.__metadata("design:returntype",x)],N.prototype,"Statement",null),o.__decorate([i.final(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[Object,String]),o.__metadata("design:returntype",Object)],N.prototype,"assignMetadata",null),o.__decorate([i.final(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[Array,Array]),o.__metadata("design:returntype",Array)],N.prototype,"assignMultipleMetadata",null),o.__decorate([i.final(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[Object,Object,Object,Object]),o.__metadata("design:returntype",Array)],N.prototype,"createPrefix",null),o.__decorate([i.final(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[Object,Array,Array,Object]),o.__metadata("design:returntype",void 0)],N.prototype,"createAllPrefix",null),o.__decorate([i.final(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[Object,Object,Object,Object]),o.__metadata("design:returntype",void 0)],N.prototype,"updatePrefix",null),o.__decorate([i.final(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[Object,Array,Array,Object]),o.__metadata("design:returntype",void 0)],N.prototype,"updateAllPrefix",null);const T="##VERSION##",S="##PACKAGE##";t.Metadata.registerLibrary(S,T),Object.defineProperty(e,"DefaultSeparator",{enumerable:!0,get:()=>a.DefaultSeparator}),e.CouchDBAdapter=N,e.CouchDBConst={NULL:"null"},e.CouchDBGroupOperator=l,e.CouchDBKeys=c,e.CouchDBOperator=d,e.CouchDBPaginator=D,e.CouchDBQueryLimit=250,e.CouchDBRepository=v,e.CouchDBStatement=x,e.IndexError=w,e.PACKAGE_NAME=S,e.VERSION=T,e.count=(e,a)=>{let n={};return e instanceof r.Condition?n.condition=e:"object"==typeof e&&e?n=e:void 0!==e&&(n.value=e),a&&(n=Object.assign({},n,a)),t.Decoration.for(r.Operator.COUNT).define({decorator:e=>M(r.Operator.COUNT,"count",e),args:[n]}).apply()},e.distinct=(e,a)=>{let n={};return e instanceof r.Condition?n.condition=e:e&&(n=e),a&&(n=Object.assign({},n,a)),t.Decoration.for(r.Operator.DISTINCT).define({decorator:e=>M(r.Operator.DISTINCT,"distinct",e),args:[n]}).apply()},e.generateIndexDoc=f,e.generateIndexName=p,e.generateIndexes=e=>{const t=((e,t,r,n=a.DefaultSeparator)=>[...e.map(e=>e===c.TABLE?"table":e),...r||[],...t?[t]:[],c.INDEX].join(n))([c.TABLE]),o={};return o[t]={index:{fields:[c.TABLE]},name:t,ddoc:t,type:"json"},e.forEach(e=>{const t=n.Model.indexes(e);Object.entries(t).forEach(([t,i])=>{const s=Object.keys(i)[0];let{directions:l,compositions:u}=i[s];const p=n.Model.tableName(e);function f(e){const n=[p,t,...u,r.PersistenceKeys.INDEX].join(a.DefaultSeparator);if(o[n]={index:{fields:[c.TABLE,t,...u].reduce((t,r)=>{if(e){const a={};a[r]=e,t.push(a)}else t.push(r);return t},[])},name:n,ddoc:n,type:"json"},!e){const e={};e[c.TABLE]={},e[c.TABLE][d.EQUAL]=p,o[n].index.partial_filter_selector=e}}u=u||[],f(),l&&l.forEach(e=>f(e))})}),O(e).forEach(e=>{e.name&&(o[e.name]=e)}),Object.values(o)},e.generateViewIndexes=O,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])=>y(e,t,r)).forEach(e=>{const n=e.attribute,o=((e,t,r,n,o=a.DefaultSeparator)=>n.name?n.name:[e,t,r,"view"].join(o).replace(/\s+/g,"_"))(i,n,e.kind,e),s=e.ddoc||((e,t,r=a.DefaultSeparator)=>[e,t,c.DDOC].join(r))(i,o),d="_design/"+s,l=((e,t,a,n)=>{const o=((e,t,a)=>{if(a.map)return"function"==typeof a.map?a.map.toString():a.map;const n=[];if(n.push(`doc[${JSON.stringify(c.TABLE)}] === ${JSON.stringify(e)}`),a.condition)if(a.condition instanceof r.Condition)n.push(h(a.condition,"doc"));else if("string"==typeof a.condition)n.push(a.condition);else{const e=r.Condition.from(a.condition);n.push(h(e,"doc"))}"count"===a.kind&&void 0!==a.value&&n.push(`doc[${JSON.stringify(t)}] === ${g(a.value)}`);const o=((e,t="doc")=>{if(!e)return;if("string"==typeof e)return e;const r=e.field||"roles",a=e.roles||[];if(!a.length)return e.expression;const n=`${t}[${JSON.stringify(r)}] || []`;return"all"===(e.mode||"any")?a.map(e=>`${n}.indexOf(${JSON.stringify(e)}) !== -1`).join(" && "):a.map(e=>`${n}.indexOf(${JSON.stringify(e)}) !== -1`).join(" || ")})(a.auth,"doc");o&&n.push(o);const i=n.length?n.join(" && "):"true",s=((e,t,r)=>{const a=m(e,t,r);return 1===a.length?`doc[${JSON.stringify(a[0])}]`:`[${a.map(e=>`doc[${JSON.stringify(e)}]`).join(", ")}]`})(a.key,t,a.compositions),d=((e,t)=>"doc"===e?"doc":e?Array.isArray(e)?`[${e.map(e=>`doc[${JSON.stringify(e)}]`).join(", ")}]`:"string"==typeof e?`doc[${JSON.stringify(e)}]`:g(e):`doc[${JSON.stringify(t)}]`)(a.value??(a.returnDocs&&"sum"!==a.kind?"doc":void 0),t);return`function (doc) {\n if (!(${i})) return;\n emit(${s}, ${d});\n}`})(n,t,a),i=a.reduce?"function"==typeof a.reduce?a.reduce.toString():a.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:o,reduce:i}})(e.kind,n,e,i);t[d]||(t[d]={_id:d,language:"javascript",views:{}}),t[d].views[o]=l})}),Object.values(t)},e.getMetadata=E,e.groupBy=(e,a)=>{let n={};return Array.isArray(e)?n.compositions=e:"string"==typeof e?n.name=e:e&&(n=e),"string"==typeof a?n.name=a:a&&(n=Object.assign({},n,a)),t.Decoration.for(r.Operator.GROUP_BY).define({decorator:e=>M(r.Operator.GROUP_BY,"groupBy",e),args:[n]}).apply()},e.max=(e,a)=>{let n={};return e instanceof r.Condition?n.condition=e:e&&(n=e),a&&(n=Object.assign({},n,a)),t.Decoration.for(r.Operator.MAX).define({decorator:e=>M(r.Operator.MAX,"max",e),args:[n]}).apply()},e.min=(e,a)=>{let n={};return e instanceof r.Condition?n.condition=e:e&&(n=e),a&&(n=Object.assign({},n,a)),t.Decoration.for(r.Operator.MIN).define({decorator:e=>M(r.Operator.MIN,"min",e),args:[n]}).apply()},e.reAuth=u,e.removeMetadata=b,e.reservedAttributes=s,e.setMetadata=A,e.sum=(e,a)=>{let n={};return e instanceof r.Condition?n.condition=e:e&&(n=e),a&&(n=Object.assign({},n,a)),t.Decoration.for(r.Operator.SUM).define({decorator:e=>M(r.Operator.SUM,"sum",e),args:[n]}).apply()},e.testReservedAttributes=e=>e.match(/^_.*$/g),e.translateOperators=_,e.view=e=>t.Decoration.for(c.VIEW).define({decorator:e=>M(c.VIEW,"view",e),args:[e]}).apply(),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,a)=>{const n=e.use?e.use(t):e;return["insert","get","put","destroy","find","view"].forEach(t=>{const o=n[t];Object.defineProperty(n,t,{enumerable:!1,configurable:!0,value:async(...t)=>(await u(e,r,a),o.call(n,...t))})}),Object.defineProperty(n,c.NATIVE,{enumerable:!1,configurable:!1,writable:!1,value:e}),n}},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("@decaf-ts/core"),require("@decaf-ts/db-decorators"),require("@decaf-ts/decorator-validation"),require("tslib"),require("@decaf-ts/logging")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/core","@decaf-ts/db-decorators","@decaf-ts/decorator-validation","tslib","@decaf-ts/logging"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-couchdb"]={},e.decafTsDecoration,e.decafTsCore,e.decafTsDbDecorators,e.decafTsDecoratorValidation,e.tslib,e.decafTsLogging);
1
+ var e,t;e=this,t=function(e,t,r,a,n,o,i){"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"},d={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 u(e,t,r){return e.auth(t,r)}function p(e,t,n,o,i=a.DefaultSeparator){const s=[r.PersistenceKeys.INDEX,t,e];return n&&s.push(...n),o&&s.push(o),s.join(i)}function f(e,t,r,n,o=a.DefaultSeparator){const i={};let s;if(i[c.TABLE]={},i[c.TABLE][d.EQUAL]=t,n){const t={};t[e]=n;const a=(r||[]).map(e=>{const t={};return t[e]=n,t}),o={};o[c.TABLE]=n,s=[t,...a,o]}else s=[e,...r||[],c.TABLE];const l=p(e,t,r,n,o);return{index:{fields:s},ddoc:[l,c.DDOC].join(o),name:l}}function g(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:a,operator:n,comparison:o}=e;if(a instanceof r.Condition){const e=h(a,t);if(n===r.Operator.NOT)return`!(${e})`;const i=h(o,t);return n===r.GroupOperator.AND?`(${e} && ${i})`:n===r.GroupOperator.OR?`(${e} || ${i})`:e}const i=`${t}[${JSON.stringify(a)}]`;switch(n){case r.Operator.EQUAL:return`${i} === ${g(o)}`;case r.Operator.DIFFERENT:return`${i} !== ${g(o)}`;case r.Operator.BIGGER:return`${i} > ${g(o)}`;case r.Operator.BIGGER_EQ:return`${i} >= ${g(o)}`;case r.Operator.SMALLER:return`${i} < ${g(o)}`;case r.Operator.SMALLER_EQ:return`${i} <= ${g(o)}`;case r.Operator.IN:return`(${g(o)}).indexOf(${i}) !== -1`;case r.Operator.REGEXP:return`${o instanceof RegExp?g(o):`new RegExp(${JSON.stringify(o)})`}.test(${i})`;case r.Operator.NOT:return`!(${i} === ${g(o)})`;default:return"true"}}function m(e,t,r){return e?Array.isArray(e)?e:[e]:t?[t,...r||[]]:r||[]}function y(e,r,a){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:a,attribute:r.attribute||e}}):[])}function O(e){const t={},a=[[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 o=n.Model.tableName(e);a.flatMap(([t,r])=>y(e,t,r)).forEach(e=>{const a=m(e.key,e.attribute,e.compositions);if(!a.length)return;const n=a[0],i=a.slice(1),s=e.directions||[r.OrderDirection.ASC,r.OrderDirection.DSC],c=f(n,o,i);t[c.name||""]=c,s.forEach(e=>{const r=f(n,o,i,e);t[r.name||""]=r})})}),Object.values(t)}function A(e,t){Object.defineProperty(e,r.PersistenceKeys.METADATA,{enumerable:!1,configurable:!0,writable:!0,value:t})}function E(e){const t=Object.getOwnPropertyDescriptor(e,r.PersistenceKeys.METADATA);return t?t.value:void 0}function b(e){Object.getOwnPropertyDescriptor(e,r.PersistenceKeys.METADATA)&&delete e[r.PersistenceKeys.METADATA]}class D extends r.Repository{constructor(e,t){super(e,t)}assignMetadata(e,t){const r=(e,t)=>{const r=E(t??e);return r&&A(e,r),e};return Array.isArray(e)?e.map((e,a)=>{const n=Array.isArray(t)?t[a]: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:o,log:i}=(await this.logCtx(t,a.OperationKeys.UPDATE,!0)).for(this.updatePrefix),s=r.get("ignoreHandlers"),c=r.get("ignoreValidation");i.silly(`handlerSetting: ${s}, validationSetting: ${c}`);const d=e[this.pk];if(!d)throw new a.InternalError("No value for the Id is defined under the property "+this.pk);let l,u;if(r.get("applyUpdateValidation")&&(l=await this.read(d),u=l?E(l):void 0,r.get("mergeForUpdate")&&(e=n.Model.merge(l,e,this.class))),s||await a.enforceDBDecorators(this,r,e,a.OperationKeys.UPDATE,a.OperationKeys.ON,l),!c){const t=r.get("ignoredValidationProperties")||[];i.silly("ignored validation properties: "+t);const n=await Promise.resolve(e.hasErrors(l,...t));if(n)throw new a.ValidationError(n.toString())}return u&&A(e,u),[e,...o,l]}async updateAllPrefix(e,...t){const{ctx:r,ctxArgs:o,log:i}=(await this.logCtx(t,a.BulkCrudOperationKeys.UPDATE_ALL,!0)).for(this.updateAllPrefix),s=r.get("ignoreHandlers"),c=r.get("ignoreValidation");i.silly(`handlerSetting: ${s}, ignoredValidation: ${c}`);const d=e.map(e=>{const t=e[this.pk];if(!t)throw new a.InternalError("missing id on update operation");return t});let l;if(r.get("applyUpdateValidation")&&(l=await this.readAll(d,r),e=e.map((e,t)=>{r.get("mergeForUpdate")&&(e=n.Model.merge(l[t],e,this.class));const a=E(l[t]);return a&&A(e,a),e})),s||await Promise.all(e.map((e,t)=>a.enforceDBDecorators(this,r,e,a.OperationKeys.UPDATE,a.OperationKeys.ON,l?l[t]:void 0))),!c){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(l[r],...t)))):await Promise.resolve(e.map(e=>e.hasErrors(...t)));const o=a.reduceErrorsToPrint(n);if(o)throw new a.ValidationError(o)}return[e,...o,l]}}class w extends a.BaseError{constructor(e){super(w.name,e,404)}}class v extends r.Paginator{constructor(e,t,r,a){super(e,t,r,a)}prepare(e){const t=Object.assign({},e);return t.limit&&(this.limit=t.limit),t.limit=this.size,t}async page(e=1,o,...i){const{log:s,ctxArgs:c,ctx:d}=this.adapter.logCtx([o,...i],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_VALUE},!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 u=await this.adapter.raw(l,!1,...c),{docs:p,bookmark:f,warning:g}=u;if(g&&s.warn(g),!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(a.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,d));return this._bookmark=f,this._currentPage=e,y}}function _(e){for(const t of[d,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)}class x extends r.Statement{constructor(e){super(e)}build(){const e=this.log.for(this.build),t={};t[c.TABLE]={},t[c.TABLE]=n.Model.tableName(this.fromSelector);const a={selector:t};if(this.selectSelector&&(a.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(r.Condition.and(this.whereCondition,r.Condition.attribute(c.TABLE).eq(a.selector[c.TABLE]))).selector,n=Object.keys(t);if(1===n.length&&-1!==Object.values(l).indexOf(n[0]))switch(n[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 a=r[0];return a===l.AND?e.push(...t[a]):e.push(t),e},[])],a.selector=t;break;case l.OR:{const e={};e[l.AND]=[t,...Object.entries(a.selector).map(([e,t])=>{const r={};return r[e]=t,r})],a.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach(([t,r])=>{a.selector[t]&&e.warn(`A ${t} query param is about to be overridden: ${a.selector[t]} by ${r}`),a.selector[t]=r})}if(this.orderBySelectors?.length){a.sort=a.sort||[],a.selector=a.selector||{};for(const[e,t]of this.orderBySelectors){const r=e,n={};n[r]=t,a.sort.push(n),a.selector[r]||(a.selector[r]={},a.selector[r][d.BIGGER]=null)}}return this.limitSelector?a.limit=this.limitSelector:(e.warn("No limit selector defined. Using default couchdb limit of 250"),a.limit=250),this.offsetSelector&&(a.skip=this.offsetSelector),a}processRecord(e,t,a,n){if(e[c.ID]){const[,...t]=e[c.ID].split(c.SEPARATOR),o=t.join("_");return this.adapter.revert(e,this.fromSelector,r.Sequence.parseValue(a,o),void 0,n)}return e}async raw(e,...r){const{ctx:o}=this.logCtx(r,this.raw),i=await this.adapter.raw(e,!0,o),s=n.Model.pk(this.fromSelector),c=t.Metadata.get(this.fromSelector,t.Metadata.key(a.DBKeys.ID,s))?.type;return this.selectSelector?i:i.map(e=>this.processRecord(e,s,c,o))}parseCondition(e){const{attr1:t,operator:a,comparison:n}=e;let o={};if(-1===[r.GroupOperator.AND,r.GroupOperator.OR,r.Operator.NOT].indexOf(a))o[t]={},o[t][_(a)]=n;else if(a===r.Operator.NOT)o=this.parseCondition(t).selector,o[_(r.Operator.NOT)]={},o[_(r.Operator.NOT)][t.attr1]=n;else{const e=this.parseCondition(t).selector,r=this.parseCondition(n).selector;o=((e,t,r)=>{const a={selector:{}};return a.selector[e]=[t,r],a})(_(a),e,r).selector}return{selector:o}}}class N 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;a.prefixMethod(this,e,this[t+"Prefix"])})}Statement(){return new x(this)}Paginator(e,t,r){return new v(this,e,t,r)}async initialize(){const e=r.Adapter.models(this.flavour);return this.index(...e)}repository(){return D}assignMetadata(e,t){return t?(A(e,t),e):e}assignMultipleMetadata(e,t){return e.forEach((e,r)=>(A(e,t[r]),e)),e}prepare(e,...t){const{log:o}=this.logCtx(t,this.prepare),i=e.segregate(),s=Object.entries(i.model).reduce((t,[r,o])=>{if(void 0===o)return t;const i=n.Model.columnName(e.constructor,r);if(this.isReserved(i))throw new a.InternalError(`Property name ${i} is reserved`);return o=o instanceof Date?new Date(o):o,t[i]=o,t},{});return e[r.PersistenceKeys.METADATA]&&(o.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:i.transient}}createPrefix(e,t,r,...a){const{ctxArgs:o}=this.logCtx(a,this.createPrefix),i=n.Model.tableName(e),s={};return s[c.TABLE]=i,s[c.ID]=this.generateId(i,t),Object.assign(s,r),[e,t,s,...o]}createAllPrefix(e,t,r,...o){const i=n.Model.tableName(e);if(t.length!==r.length)throw new a.InternalError("Ids and models must have the same length");const{ctxArgs:s}=this.logCtx(o,this.createAllPrefix),d=t.map((e,t)=>{const a={};return a[c.TABLE]=i,a[c.ID]=this.generateId(i,e),Object.assign(a,r[t]),a});return[e,t,d,...s]}updatePrefix(e,t,o,...i){const s=n.Model.tableName(e),{ctxArgs:d}=this.logCtx(i,this.updatePrefix),l={};l[c.TABLE]=s,l[c.ID]=this.generateId(s,t);const u=o[r.PersistenceKeys.METADATA];if(!u)throw new a.InternalError("No revision number found for record with id "+t);return Object.assign(l,o),l[c.REV]=u,[e,t,l,...d]}updateAllPrefix(e,t,o,...i){const s=n.Model.tableName(e);if(t.length!==o.length)throw new a.InternalError("Ids and models must have the same length");const{ctxArgs:d}=this.logCtx(i,this.updateAllPrefix),l=t.map((e,t)=>{const n={};n[c.TABLE]=s,n[c.ID]=this.generateId(s,e);const i=o[t][r.PersistenceKeys.METADATA];if(!i)throw new a.InternalError("No revision number found for record with id "+e);return Object.assign(n,o[t]),n[c.REV]=i,n});return[e,t,l,...d]}generateId(e,t){return[e,t].join(c.SEPARATOR)}parseError(e,t){return N.parseError(e,t)}isReserved(e){return!!e.match(s)}static parseError(e,t){if(e instanceof a.BaseError)return e;let n="";if("string"==typeof e){if(n=e,n.match(/already exist|update conflict/g))return new a.ConflictError(n);if(n.match(/missing|deleted/g))return new a.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 a.ConflictError(t);case"404":return new a.NotFoundError(t);case"400":return n.toString().match(/No\sindex\sexists/g)?new w(e):new a.InternalError(e);default:return n.toString().match(/ECONNREFUSED/g)?new r.ConnectionError(e):new a.InternalError(e)}}static setMetadata(e,t){A(e,t)}static getMetadata(e){return E(e)}static removeMetadata(e){b(e)}}o.__decorate([i.final(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[]),o.__metadata("design:returntype",x)],N.prototype,"Statement",null),o.__decorate([i.final(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[Object,String]),o.__metadata("design:returntype",Object)],N.prototype,"assignMetadata",null),o.__decorate([i.final(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[Array,Array]),o.__metadata("design:returntype",Array)],N.prototype,"assignMultipleMetadata",null),o.__decorate([i.final(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[Object,Object,Object,Object]),o.__metadata("design:returntype",Array)],N.prototype,"createPrefix",null),o.__decorate([i.final(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[Object,Array,Array,Object]),o.__metadata("design:returntype",void 0)],N.prototype,"createAllPrefix",null),o.__decorate([i.final(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[Object,Object,Object,Object]),o.__metadata("design:returntype",void 0)],N.prototype,"updatePrefix",null),o.__decorate([i.final(),o.__metadata("design:type",Function),o.__metadata("design:paramtypes",[Object,Array,Array,Object]),o.__metadata("design:returntype",void 0)],N.prototype,"updateAllPrefix",null);const S="##VERSION##",T="##PACKAGE##";t.Metadata.registerLibrary(T,S),e.CouchDBAdapter=N,e.CouchDBConst={NULL:"null"},e.CouchDBGroupOperator=l,e.CouchDBKeys=c,e.CouchDBOperator=d,e.CouchDBPaginator=v,e.CouchDBQueryLimit=250,e.CouchDBRepository=D,e.CouchDBStatement=x,e.IndexError=w,e.PACKAGE_NAME=T,e.VERSION=S,e.count=(e,a)=>{let n={};return e instanceof r.Condition?n.condition=e:"object"==typeof e&&e?n=e:void 0!==e&&(n.value=e),a&&(n=Object.assign({},n,a)),t.Decoration.for(r.Operator.COUNT).define({decorator:e=>r.applyViewDecorator(r.Operator.COUNT,"count",e),args:[n]}).apply()},e.distinct=(e,a)=>{let n={};return e instanceof r.Condition?n.condition=e:e&&(n=e),a&&(n=Object.assign({},n,a)),t.Decoration.for(r.Operator.DISTINCT).define({decorator:e=>r.applyViewDecorator(r.Operator.DISTINCT,"distinct",e),args:[n]}).apply()},e.generateIndexDoc=f,e.generateIndexName=p,e.generateIndexes=e=>{const t=((e,t,r,n=a.DefaultSeparator)=>[...e.map(e=>e===c.TABLE?"table":e),...r||[],...t?[t]:[],c.INDEX].join(n))([c.TABLE]),o={};return o[t]={index:{fields:[c.TABLE]},name:t,ddoc:t,type:"json"},e.forEach(e=>{const t=n.Model.indexes(e);Object.entries(t).forEach(([t,i])=>{const s=[];Object.entries(i||{}).forEach(([,e])=>{if(!e)return;const r=e;void 0===r.directions&&void 0===r.compositions?"object"!=typeof e||Array.isArray(e)||Object.entries(e).forEach(([e,t])=>{t&&s.push([e,t])}):s.push([t,r])}),s.forEach(([t,i])=>{if(!i)return;let{directions:s,compositions:l}=i;const u=n.Model.tableName(e);l=l||[];const p=[t,...l],f={[c.TABLE]:{[d.EQUAL]:u}};function g(e,n){const i=[u,t,...l,...n?[n]:[],r.PersistenceKeys.INDEX].join(a.DefaultSeparator),s=[c.TABLE,...p],d=e?[{[c.TABLE]:e},...p.map(t=>({[t]:e}))]:s;o[i]={index:{fields:d},name:i,ddoc:i,type:"json"},e||(o[i].index.partial_filter_selector=f)}g(),Array.from(new Set((s||[r.OrderDirection.ASC]).map(e=>(e+"").toLowerCase()))).filter(e=>e===r.OrderDirection.ASC||e===r.OrderDirection.DSC).forEach(e=>{g(e,e)})})})}),O(e).forEach(e=>{e.name&&(o[e.name]=e)}),Object.values(o)},e.generateViewIndexes=O,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])=>y(e,t,r)).forEach(e=>{const n=e.attribute,o=((e,t,r,n,o=a.DefaultSeparator)=>n.name?n.name:[e,t,r,"view"].join(o).replace(/\s+/g,"_"))(i,n,e.kind,e),s=e.ddoc||((e,t,r=a.DefaultSeparator)=>[e,t,c.DDOC].join(r))(i,o),d="_design/"+s,l=((e,t,a,n)=>{const o=((e,t,a)=>{if(a.map)return"function"==typeof a.map?a.map.toString():a.map;const n=[];if(n.push(`doc[${JSON.stringify(c.TABLE)}] === ${JSON.stringify(e)}`),a.condition)if(a.condition instanceof r.Condition)n.push(h(a.condition,"doc"));else if("string"==typeof a.condition)n.push(a.condition);else{const e=r.Condition.from(a.condition);n.push(h(e,"doc"))}"count"===a.kind&&void 0!==a.value&&n.push(`doc[${JSON.stringify(t)}] === ${g(a.value)}`);const o=((e,t="doc")=>{if(!e)return;if("string"==typeof e)return e;const r=e.field||"roles",a=e.roles||[];if(!a.length)return e.expression;const n=`${t}[${JSON.stringify(r)}] || []`;return"all"===(e.mode||"any")?a.map(e=>`${n}.indexOf(${JSON.stringify(e)}) !== -1`).join(" && "):a.map(e=>`${n}.indexOf(${JSON.stringify(e)}) !== -1`).join(" || ")})(a.auth,"doc");o&&n.push(o);const i=n.length?n.join(" && "):"true",s=((e,t,r)=>{const a=m(e,t,r);return 1===a.length?`doc[${JSON.stringify(a[0])}]`:`[${a.map(e=>`doc[${JSON.stringify(e)}]`).join(", ")}]`})(a.key,t,a.compositions),d=((e,t)=>"doc"===e?"doc":e?Array.isArray(e)?`[${e.map(e=>`doc[${JSON.stringify(e)}]`).join(", ")}]`:"string"==typeof e?`doc[${JSON.stringify(e)}]`:g(e):`doc[${JSON.stringify(t)}]`)(a.value??(a.returnDocs&&"sum"!==a.kind?"doc":void 0),t);return`function (doc) {\n if (!(${i})) return;\n emit(${s}, ${d});\n}`})(n,t,a),i=a.reduce?"function"==typeof a.reduce?a.reduce.toString():a.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:o,reduce:i}})(e.kind,n,e,i);t[d]||(t[d]={_id:d,language:"javascript",views:{}}),t[d].views[o]=l})}),Object.values(t)},e.getMetadata=E,e.groupBy=(e,a)=>{let n={};return Array.isArray(e)?n.compositions=e:"string"==typeof e?n.name=e:e&&(n=e),"string"==typeof a?n.name=a:a&&(n=Object.assign({},n,a)),t.Decoration.for(r.Operator.GROUP_BY).define({decorator:e=>r.applyViewDecorator(r.Operator.GROUP_BY,"groupBy",e),args:[n]}).apply()},e.max=(e,a)=>{let n={};return e instanceof r.Condition?n.condition=e:e&&(n=e),a&&(n=Object.assign({},n,a)),t.Decoration.for(r.Operator.MAX).define({decorator:e=>r.applyViewDecorator(r.Operator.MAX,"max",e),args:[n]}).apply()},e.min=(e,a)=>{let n={};return e instanceof r.Condition?n.condition=e:e&&(n=e),a&&(n=Object.assign({},n,a)),t.Decoration.for(r.Operator.MIN).define({decorator:e=>r.applyViewDecorator(r.Operator.MIN,"min",e),args:[n]}).apply()},e.reAuth=u,e.removeMetadata=b,e.reservedAttributes=s,e.setMetadata=A,e.sum=(e,a)=>{let n={};return e instanceof r.Condition?n.condition=e:e&&(n=e),a&&(n=Object.assign({},n,a)),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=m(e.key,e.attribute);return{attribute:t[0],compositions:t.slice(1).concat(e.compositions||[]),directions:e.directions}},e.wrapDocumentScope=(e,t,r,a)=>{const n=e.use?e.use(t):e;return["insert","get","put","destroy","find","view"].forEach(t=>{const o=n[t];Object.defineProperty(n,t,{enumerable:!1,configurable:!0,value:async(...t)=>(await u(e,r,a),o.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/metadata.ts","../src/repository.ts","../src/errors.ts","../src/query/Paginator.ts","../src/query/translate.ts","../src/query/Statement.ts","../src/adapter.ts","../src/decorators.ts","../src/index.ts","../src/indexes/generator.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","collectViewMetadata","model","kind","meta","Metadata","get","Object","entries","flatMap","values","entry","generateViewIndexes","models","indexes","viewKeys","GROUP_BY","COUNT","SUM","MAX","MIN","DISTINCT","forEach","m","Model","length","slice","directions","OrderDirection","ASC","DSC","baseIndex","direction","dirIndex","setMetadata","metadata","defineProperty","METADATA","enumerable","configurable","writable","getMetadata","descriptor","getOwnPropertyDescriptor","undefined","removeMetadata","CouchDBRepository","Repository","constructor","adapter","super","assignMetadata","target","apply","instance","carrier","create","args","result","this","createAll","results","read","id","readAll","ids","update","updateAll","delete","deleteAll","updatePrefix","ctx","ctxArgs","log","logCtx","OperationKeys","UPDATE","for","ignoreHandlers","ignoreValidate","silly","pk","InternalError","oldModel","oldMetadata","merge","class","enforceDBDecorators","ON","propsToIgnore","errors","Promise","resolve","hasErrors","ValidationError","toString","updateAllPrefix","BulkCrudOperationKeys","UPDATE_ALL","oldModels","i","all","ignoredProps","modelsValidation","errorMessages","reduceErrorsToPrint","IndexError","BaseError","msg","CouchDBPaginator","Paginator","query","size","clazz","prepare","rawStatement","assign","limit","page","bookmark","isPreparedStatement","pagePrepared","statement","_recordCount","_totalPages","validatePage","skip","countResults","raw","Number","MAX_VALUE","Math","ceil","_bookmark","PagingError","rawResult","docs","nextBookmark","warning","warn","type","DBKeys","pageResults","d","revert","Sequence","parseValue","_currentPage","translateOperators","operators","el","keys","find","k","QueryError","CouchDBStatement","Statement","build","selectors","fromSelector","selector","selectSelector","whereCondition","parseCondition","and","eq","selectorKeys","indexOf","reduce","accum","val","Error","s","orderBySelector","sort","rec","limitSelector","offsetSelector","processRecord","pkAttr","sequenceType","keyArgs","split","rawInput","op","op1","op2","obj1","obj2","CouchDBAdapter","Adapter","scope","flavour","alias","prefixMethod","initialize","managedModels","repository","rev","assignMultipleMetadata","revs","segregate","mappedProp","columnName","isReserved","record","transient","createPrefix","generateId","createAllPrefix","records","count","parseError","err","reason","match","code","ConflictError","NotFoundError","message","statusCode","ConnectionError","applyViewDecorator","metaKey","opts","slot","attrBucket","String","nextViewSlot","propMetadata","__decorate","final","prototype","VERSION","PACKAGE_NAME","registerLibrary","NULL","valueOrCondition","options","Decoration","define","decorator","o","conditionOrOptions","n","ind","generate","res","tableFilter","partial_filter_selector","viewDocs","viewName","replace","generateViewName","ddocName","generateDesignDocName","ddocId","viewDef","guards","resolved","from","authGuard","field","roles","expression","listExpr","mode","buildAuthGuard","guard","emitKey","buildEmitKey","emitValue","v","buildEmitValue","returnDocs","buildMapFunction","defaultReduce","normalizeViewMetadata","_id","language","views","compositionsOrOptions","nameOrOptions","concat","dbName","db","use","original","call"],"mappings":"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"}
1
+ {"version":3,"file":"for-couchdb.cjs","sources":["../src/constants.ts","../src/query/constants.ts","../src/utils.ts","../src/views/generator.ts","../src/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","../src/indexes/generator.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","collectViewMetadata","model","kind","meta","Metadata","get","Object","entries","flatMap","values","entry","generateViewIndexes","models","indexes","viewKeys","GROUP_BY","COUNT","SUM","MAX","MIN","DISTINCT","forEach","m","Model","length","slice","directions","OrderDirection","ASC","DSC","baseIndex","direction","dirIndex","setMetadata","metadata","defineProperty","METADATA","enumerable","configurable","writable","getMetadata","descriptor","getOwnPropertyDescriptor","undefined","removeMetadata","CouchDBRepository","Repository","constructor","adapter","super","assignMetadata","target","apply","instance","carrier","create","args","result","this","createAll","results","read","id","readAll","ids","update","updateAll","delete","deleteAll","updatePrefix","ctx","ctxArgs","log","logCtx","OperationKeys","UPDATE","for","ignoreHandlers","ignoreValidate","silly","pk","InternalError","oldModel","oldMetadata","merge","class","enforceDBDecorators","ON","propsToIgnore","errors","Promise","resolve","hasErrors","ValidationError","toString","updateAllPrefix","BulkCrudOperationKeys","UPDATE_ALL","oldModels","i","all","ignoredProps","modelsValidation","errorMessages","reduceErrorsToPrint","IndexError","BaseError","msg","CouchDBPaginator","Paginator","query","size","clazz","prepare","rawStatement","assign","limit","page","bookmark","isPreparedStatement","pagePrepared","statement","_recordCount","_totalPages","validatePage","skip","countResults","raw","Number","MAX_VALUE","Math","ceil","_bookmark","PagingError","rawResult","docs","nextBookmark","warning","warn","type","DBKeys","pageResults","d","revert","Sequence","parseValue","_currentPage","translateOperators","operators","el","keys","find","k","QueryError","CouchDBStatement","Statement","build","selectors","fromSelector","selector","selectSelector","whereCondition","parseCondition","and","eq","selectorKeys","indexOf","reduce","accum","val","Error","s","orderBySelectors","sort","selectorKey","rec","limitSelector","offsetSelector","processRecord","pkAttr","sequenceType","keyArgs","split","rawInput","op","op1","op2","obj1","obj2","CouchDBAdapter","Adapter","scope","flavour","alias","prefixMethod","initialize","managedModels","repository","rev","assignMultipleMetadata","revs","segregate","mappedProp","columnName","isReserved","record","transient","createPrefix","generateId","createAllPrefix","records","count","parseError","err","reason","match","code","ConflictError","NotFoundError","message","statusCode","ConnectionError","__decorate","final","prototype","VERSION","PACKAGE_NAME","registerLibrary","NULL","valueOrCondition","options","opts","Decoration","define","decorator","o","applyViewDecorator","conditionOrOptions","n","ind","metadataEntries","metadataValue","candidate","field","fieldKey","fieldKeys","tableFilter","generate","suffix","baseFields","sortField","partial_filter_selector","from","Set","dir","String","toLowerCase","filter","viewDocs","viewName","replace","generateViewName","ddocName","generateDesignDocName","ddocId","viewDef","guards","resolved","authGuard","roles","expression","listExpr","mode","buildAuthGuard","guard","emitKey","buildEmitKey","emitValue","v","buildEmitValue","returnDocs","buildMapFunction","defaultReduce","normalizeViewMetadata","_id","language","views","compositionsOrOptions","nameOrOptions","concat","dbName","db","use","original","call"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{Metadata as e,Decoration as t,propMetadata as r}from"@decaf-ts/decoration";import{PersistenceKeys as n,Operator as i,OrderDirection as s,Condition as a,GroupOperator as o,Repository as c,Paginator as l,PagingError as u,Sequence as d,QueryError as p,Statement as f,Adapter as g,ConnectionError as h}from"@decaf-ts/core";import{DefaultSeparator as m,OperationKeys as y,InternalError as A,enforceDBDecorators as E,ValidationError as b,BulkCrudOperationKeys as O,reduceErrorsToPrint as w,BaseError as v,DBKeys as N,prefixMethod as x,ConflictError as T,NotFoundError as $}from"@decaf-ts/db-decorators";export{DefaultSeparator}from"@decaf-ts/db-decorators";import{Model as j}from"@decaf-ts/decorator-validation";import{__decorate as S,__metadata as D}from"tslib";import{final as P}from"@decaf-ts/logging";const M=/^_.*$/g,I={SEPARATOR:"__",ID:"_id",REV:"_rev",DELETED:"_deleted",TABLE:"??table",SEQUENCE:"??sequence",DDOC:"ddoc",NATIVE:"__native",INDEX:"index",VIEW:"view"},k=250,C={EQUAL:"$eq",DIFFERENT:"$ne",BIGGER:"$gt",BIGGER_EQ:"$gte",SMALLER:"$lt",SMALLER_EQ:"$lte",NOT:"$not",IN:"$in",REGEXP:"$regex"},R={AND:"$and",OR:"$or"},_={NULL:"null"};async function L(e,t,r){return e.auth(t,r)}function B(e,t,r,n){const i=e.use?e.use(t):e;return["insert","get","put","destroy","find","view"].forEach(t=>{const s=i[t];Object.defineProperty(i,t,{enumerable:!1,configurable:!0,value:async(...t)=>(await L(e,r,n),s.call(i,...t))})}),Object.defineProperty(i,I.NATIVE,{enumerable:!1,configurable:!1,writable:!1,value:e}),i}function V(e){return e.match(/^_.*$/g)}function U(e,t,r,i,s=m){const a=[n.INDEX,t,e];return r&&a.push(...r),i&&a.push(i),a.join(s)}function J(e,t,r,n,i=m){const s={};let a;if(s[I.TABLE]={},s[I.TABLE].$eq=t,n){const t={};t[e]=n;const i=(r||[]).map(e=>{const t={};return t[e]=n,t}),s={};s[I.TABLE]=n,a=[t,...i,s]}else a=[e,...r||[],I.TABLE];const o=U(e,t,r,n,i);return{index:{fields:a},ddoc:[o,I.DDOC].join(i),name:o}}function G(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 F(e,t){const{attr1:r,operator:n,comparison:s}=e;if(r instanceof a){const e=F(r,t);if(n===i.NOT)return`!(${e})`;const a=F(s,t);return n===o.AND?`(${e} && ${a})`:n===o.OR?`(${e} || ${a})`:e}const c=`${t}[${JSON.stringify(r)}]`;switch(n){case i.EQUAL:return`${c} === ${G(s)}`;case i.DIFFERENT:return`${c} !== ${G(s)}`;case i.BIGGER:return`${c} > ${G(s)}`;case i.BIGGER_EQ:return`${c} >= ${G(s)}`;case i.SMALLER:return`${c} < ${G(s)}`;case i.SMALLER_EQ:return`${c} <= ${G(s)}`;case i.IN:return`(${G(s)}).indexOf(${c}) !== -1`;case i.REGEXP:return`${s instanceof RegExp?G(s):`new RegExp(${JSON.stringify(s)})`}.test(${c})`;case i.NOT:return`!(${c} === ${G(s)})`;default:return"true"}}function z(e,t,r){return e?Array.isArray(e)?e:[e]:t?[t,...r||[]]:r||[]}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 q(e){const t={},r=[[I.VIEW,"view"],[i.GROUP_BY,"groupBy"],[i.COUNT,"count"],[i.SUM,"sum"],[i.MAX,"max"],[i.MIN,"min"],[i.DISTINCT,"distinct"]];return e.forEach(e=>{const n=j.tableName(e);r.flatMap(([t,r])=>X(e,t,r)).forEach(e=>{const r=e.attribute,i=((e,t,r,n,i=m)=>n.name?n.name:[e,t,r,"view"].join(i).replace(/\s+/g,"_"))(n,r,e.kind,e),s=e.ddoc||((e,t,r=m)=>[e,t,I.DDOC].join(r))(n,i),o="_design/"+s,c=((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(I.TABLE)}] === ${JSON.stringify(e)}`),r.condition)if(r.condition instanceof a)n.push(F(r.condition,"doc"));else if("string"==typeof r.condition)n.push(r.condition);else{const e=a.from(r.condition);n.push(F(e,"doc"))}"count"===r.kind&&void 0!==r.value&&n.push(`doc[${JSON.stringify(t)}] === ${G(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",o=((e,t,r)=>{const n=z(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)}]`:G(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(${o}, ${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[o]||(t[o]={_id:o,language:"javascript",views:{}}),t[o].views[i]=c})}),Object.values(t)}function Q(e){const t={},r=[[I.VIEW,"view"],[i.GROUP_BY,"groupBy"],[i.COUNT,"count"],[i.SUM,"sum"],[i.MAX,"max"],[i.MIN,"min"],[i.DISTINCT,"distinct"]];return e.forEach(e=>{const n=j.tableName(e);r.flatMap(([t,r])=>X(e,t,r)).forEach(e=>{const r=z(e.key,e.attribute,e.compositions);if(!r.length)return;const i=r[0],a=r.slice(1),o=e.directions||[s.ASC,s.DSC],c=J(i,n,a);t[c.name||""]=c,o.forEach(e=>{const r=J(i,n,a,e);t[r.name||""]=r})})}),Object.values(t)}function W(e){const t=z(e.key,e.attribute);return{attribute:t[0],compositions:t.slice(1).concat(e.compositions||[]),directions:e.directions}}function Y(e){const t=((e,t,r,n=m)=>[...e.map(e=>e===I.TABLE?"table":e),...r||[],...t?[t]:[],I.INDEX].join(n))([I.TABLE]),r={};return r[t]={index:{fields:[I.TABLE]},name:t,ddoc:t,type:"json"},e.forEach(e=>{const t=j.indexes(e);Object.entries(t).forEach(([t,i])=>{const s=Object.keys(i)[0];let{directions:a,compositions:o}=i[s];const c=j.tableName(e);function l(e){const i=[c,t,...o,n.INDEX].join(m);if(r[i]={index:{fields:[I.TABLE,t,...o].reduce((t,r)=>{if(e){const n={};n[r]=e,t.push(n)}else t.push(r);return t},[])},name:i,ddoc:i,type:"json"},!e){const e={};e[I.TABLE]={},e[I.TABLE].$eq=c,r[i].index.partial_filter_selector=e}}o=o||[],l(),a&&a.forEach(e=>l(e))})}),Q(e).forEach(e=>{e.name&&(r[e.name]=e)}),Object.values(r)}function H(e,t){Object.defineProperty(e,n.METADATA,{enumerable:!1,configurable:!0,writable:!0,value:t})}function K(e){const t=Object.getOwnPropertyDescriptor(e,n.METADATA);return t?t.value:void 0}function Z(e){Object.getOwnPropertyDescriptor(e,n.METADATA)&&delete e[n.METADATA]}class ee extends c{constructor(e,t){super(e,t)}assignMetadata(e,t){const r=(e,t)=>{const r=K(t??e);return r&&H(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,y.UPDATE,!0)).for(this.updatePrefix),s=r.get("ignoreHandlers"),a=r.get("ignoreValidation");i.silly(`handlerSetting: ${s}, validationSetting: ${a}`);const o=e[this.pk];if(!o)throw new A("No value for the Id is defined under the property "+this.pk);let c,l;if(r.get("applyUpdateValidation")&&(c=await this.read(o),l=c?K(c):void 0,r.get("mergeForUpdate")&&(e=j.merge(c,e,this.class))),s||await E(this,r,e,y.UPDATE,y.ON,c),!a){const t=r.get("ignoredValidationProperties")||[];i.silly("ignored validation properties: "+t);const n=await Promise.resolve(e.hasErrors(c,...t));if(n)throw new b(n.toString())}return l&&H(e,l),[e,...n,c]}async updateAllPrefix(e,...t){const{ctx:r,ctxArgs:n,log:i}=(await this.logCtx(t,O.UPDATE_ALL,!0)).for(this.updateAllPrefix),s=r.get("ignoreHandlers"),a=r.get("ignoreValidation");i.silly(`handlerSetting: ${s}, ignoredValidation: ${a}`);const o=e.map(e=>{const t=e[this.pk];if(!t)throw new A("missing id on update operation");return t});let c;if(r.get("applyUpdateValidation")&&(c=await this.readAll(o,r),e=e.map((e,t)=>{r.get("mergeForUpdate")&&(e=j.merge(c[t],e,this.class));const n=K(c[t]);return n&&H(e,n),e})),s||await Promise.all(e.map((e,t)=>E(this,r,e,y.UPDATE,y.ON,c?c[t]:void 0))),!a){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 s=w(n);if(s)throw new b(s)}return[e,...n,c]}}class te extends v{constructor(e){super(te.name,e,404)}}class re extends l{constructor(e,t,r,n){super(e,t,r,n)}prepare(e){const t=Object.assign({},e);return t.limit&&(this.limit=t.limit),t.limit=this.size,t}async page(t=1,r,...n){const{log:i,ctxArgs:s,ctx:a}=this.adapter.logCtx([r,...n],this.page);if(this.isPreparedStatement())return await this.pagePrepared(t,...s);const o=Object.assign({},this.statement);if(this._recordCount&&this._totalPages)t=this.validatePage(t),o.skip=(t-1)*this.size;else{this._totalPages=this._recordCount=0;const e=await this.adapter.raw({...o,limit:Number.MAX_VALUE},!0,...s)||[];if(this._recordCount=e.length,this._recordCount>0){const e=o?.limit||this.size;return this._totalPages=Math.ceil(this._recordCount/e),await this.page(t,...s)}}if(1!==t){if(!this._bookmark)throw new u("No bookmark. Did you start in the first page?");o.bookmark=this._bookmark}const c=await this.adapter.raw(o,!1,...s),{docs:l,bookmark:p,warning:f}=c;if(f&&i.warn(f),!this.clazz)throw new u("No statement target defined");const g=j.pk(this.clazz),h=e.get(this.clazz,e.key(N.ID,g))?.type,m=o.fields&&o.fields.length?l:l.map(e=>this.adapter.revert(e,this.clazz,d.parseValue(h,e[g]),void 0,a));return this._bookmark=p,this._currentPage=t,m}}function ne(e){for(const t of[C,R]){const r=Object.keys(t).find(t=>t===e);if(r)return t[r]}throw new p("Could not find adapter translation for operator "+e)}class ie extends f{constructor(e){super(e)}build(){const e=this.log.for(this.build),t={};t[I.TABLE]={},t[I.TABLE]=j.tableName(this.fromSelector);const r={selector:t};if(this.selectSelector&&(r.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(a.and(this.whereCondition,a.attribute(I.TABLE).eq(r.selector[I.TABLE]))).selector,n=Object.keys(t);if(1===n.length&&-1!==Object.values(R).indexOf(n[0]))switch(n[0]){case R.AND:t[R.AND]=[...Object.values(t[R.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===R.AND?e.push(...t[n]):e.push(t),e},[])],r.selector=t;break;case R.OR:{const e={};e[R.AND]=[t,...Object.entries(r.selector).map(([e,t])=>{const r={};return r[e]=t,r})],r.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach(([t,n])=>{r.selector[t]&&e.warn(`A ${t} query param is about to be overridden: ${r.selector[t]} by ${n}`),r.selector[t]=n})}if(this.orderBySelector){r.sort=r.sort||[],r.selector=r.selector||{};const[e,t]=this.orderBySelector,n={};n[e]=t,r.sort.push(n),r.selector[e]||(r.selector[e]={},r.selector[e].$gt=null)}return this.limitSelector?r.limit=this.limitSelector:(e.warn("No limit selector defined. Using default couchdb limit of 250"),r.limit=250),this.offsetSelector&&(r.skip=this.offsetSelector),r}processRecord(e,t,r,n){if(e[I.ID]){const[,...t]=e[I.ID].split(I.SEPARATOR),i=t.join("_");return this.adapter.revert(e,this.fromSelector,d.parseValue(r,i),void 0,n)}return e}async raw(t,...r){const{ctx:n}=this.logCtx(r,this.raw),i=await this.adapter.raw(t,!0,n),s=j.pk(this.fromSelector),a=e.get(this.fromSelector,e.key(N.ID,s))?.type;return this.selectSelector?i:i.map(e=>this.processRecord(e,s,a,n))}parseCondition(e){const{attr1:t,operator:r,comparison:n}=e;let s={};if(-1===[o.AND,o.OR,i.NOT].indexOf(r))s[t]={},s[t][ne(r)]=n;else if(r===i.NOT)s=this.parseCondition(t).selector,s[ne(i.NOT)]={},s[ne(i.NOT)][t.attr1]=n;else{const e=this.parseCondition(t).selector,i=this.parseCondition(n).selector;s=((e,t,r)=>{const n={selector:{}};return n.selector[e]=[t,r],n})(ne(r),e,i).selector}return{selector:s}}}class se extends g{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(){return new ie(this)}Paginator(e,t,r){return new re(this,e,t,r)}async initialize(){const e=g.models(this.flavour);return this.index(...e)}repository(){return ee}assignMetadata(e,t){return t?(H(e,t),e):e}assignMultipleMetadata(e,t){return e.forEach((e,r)=>(H(e,t[r]),e)),e}prepare(e,...t){const{log:r}=this.logCtx(t,this.prepare),i=e.segregate(),s=Object.entries(i.model).reduce((t,[r,n])=>{if(void 0===n)return t;const i=j.columnName(e.constructor,r);if(this.isReserved(i))throw new A(`Property name ${i} is reserved`);return n=n instanceof Date?new Date(n):n,t[i]=n,t},{});return e[n.METADATA]&&(r.silly("Passing along persistence metadata for "+e[n.METADATA]),Object.defineProperty(s,n.METADATA,{enumerable:!1,writable:!0,configurable:!0,value:e[n.METADATA]})),{record:s,id:e[j.pk(e.constructor)],transient:i.transient}}createPrefix(e,t,r,...n){const{ctxArgs:i}=this.logCtx(n,this.createPrefix),s=j.tableName(e),a={};return a[I.TABLE]=s,a[I.ID]=this.generateId(s,t),Object.assign(a,r),[e,t,a,...i]}createAllPrefix(e,t,r,...n){const i=j.tableName(e);if(t.length!==r.length)throw new A("Ids and models must have the same length");const{ctxArgs:s}=this.logCtx(n,this.createAllPrefix),a=t.map((e,t)=>{const n={};return n[I.TABLE]=i,n[I.ID]=this.generateId(i,e),Object.assign(n,r[t]),n});return[e,t,a,...s]}updatePrefix(e,t,r,...i){const s=j.tableName(e),{ctxArgs:a}=this.logCtx(i,this.updatePrefix),o={};o[I.TABLE]=s,o[I.ID]=this.generateId(s,t);const c=r[n.METADATA];if(!c)throw new A("No revision number found for record with id "+t);return Object.assign(o,r),o[I.REV]=c,[e,t,o,...a]}updateAllPrefix(e,t,r,...i){const s=j.tableName(e);if(t.length!==r.length)throw new A("Ids and models must have the same length");const{ctxArgs:a}=this.logCtx(i,this.updateAllPrefix),o=t.map((e,t)=>{const i={};i[I.TABLE]=s,i[I.ID]=this.generateId(s,e);const a=r[t][n.METADATA];if(!a)throw new A("No revision number found for record with id "+e);return Object.assign(i,r[t]),i[I.REV]=a,i});return[e,t,o,...a]}generateId(e,t){return[e,t].join(I.SEPARATOR)}parseError(e,t){return se.parseError(e,t)}isReserved(e){return!!e.match(M)}static parseError(e,t){if(e instanceof v)return e;let r="";if("string"==typeof e){if(r=e,r.match(/already exist|update conflict/g))return new T(r);if(r.match(/missing|deleted/g))return new $(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 T(t);case"404":return new $(t);case"400":return r.toString().match(/No\sindex\sexists/g)?new te(e):new A(e);default:return r.toString().match(/ECONNREFUSED/g)?new h(e):new A(e)}}static setMetadata(e,t){H(e,t)}static getMetadata(e){return K(e)}static removeMetadata(e){Z(e)}}function ae(t,n,i){return(s,a)=>{const o=i?.name||((t,r,n)=>{const i=(e.get(t.constructor,r)||{})[n]||{};return Object.keys(i).length+1+""})(s,t,a),c=e.key(t,a,o),l={...i||{},kind:n,attribute:a};return r(c,l)(s,a)}}function oe(e){return t.for(I.VIEW).define({decorator:e=>ae(I.VIEW,"view",e),args:[e]}).apply()}function ce(e,r){let n={};return Array.isArray(e)?n.compositions=e:"string"==typeof e?n.name=e:e&&(n=e),"string"==typeof r?n.name=r:r&&(n=Object.assign({},n,r)),t.for(i.GROUP_BY).define({decorator:e=>ae(i.GROUP_BY,"groupBy",e),args:[n]}).apply()}function le(e,r){let n={};return e instanceof a?n.condition=e:"object"==typeof e&&e?n=e:void 0!==e&&(n.value=e),r&&(n=Object.assign({},n,r)),t.for(i.COUNT).define({decorator:e=>ae(i.COUNT,"count",e),args:[n]}).apply()}function ue(e,r){let n={};return e instanceof a?n.condition=e:e&&(n=e),r&&(n=Object.assign({},n,r)),t.for(i.SUM).define({decorator:e=>ae(i.SUM,"sum",e),args:[n]}).apply()}function de(e,r){let n={};return e instanceof a?n.condition=e:e&&(n=e),r&&(n=Object.assign({},n,r)),t.for(i.MAX).define({decorator:e=>ae(i.MAX,"max",e),args:[n]}).apply()}function pe(e,r){let n={};return e instanceof a?n.condition=e:e&&(n=e),r&&(n=Object.assign({},n,r)),t.for(i.MIN).define({decorator:e=>ae(i.MIN,"min",e),args:[n]}).apply()}function fe(e,r){let n={};return e instanceof a?n.condition=e:e&&(n=e),r&&(n=Object.assign({},n,r)),t.for(i.DISTINCT).define({decorator:e=>ae(i.DISTINCT,"distinct",e),args:[n]}).apply()}S([P(),D("design:type",Function),D("design:paramtypes",[]),D("design:returntype",ie)],se.prototype,"Statement",null),S([P(),D("design:type",Function),D("design:paramtypes",[Object,String]),D("design:returntype",Object)],se.prototype,"assignMetadata",null),S([P(),D("design:type",Function),D("design:paramtypes",[Array,Array]),D("design:returntype",Array)],se.prototype,"assignMultipleMetadata",null),S([P(),D("design:type",Function),D("design:paramtypes",[Object,Object,Object,Object]),D("design:returntype",Array)],se.prototype,"createPrefix",null),S([P(),D("design:type",Function),D("design:paramtypes",[Object,Array,Array,Object]),D("design:returntype",void 0)],se.prototype,"createAllPrefix",null),S([P(),D("design:type",Function),D("design:paramtypes",[Object,Object,Object,Object]),D("design:returntype",void 0)],se.prototype,"updatePrefix",null),S([P(),D("design:type",Function),D("design:paramtypes",[Object,Array,Array,Object]),D("design:returntype",void 0)],se.prototype,"updateAllPrefix",null);const ge="##VERSION##",he="##PACKAGE##";e.registerLibrary(he,ge);export{se as CouchDBAdapter,_ as CouchDBConst,R as CouchDBGroupOperator,I as CouchDBKeys,C as CouchDBOperator,re as CouchDBPaginator,k as CouchDBQueryLimit,ee as CouchDBRepository,ie as CouchDBStatement,te as IndexError,he as PACKAGE_NAME,ge as VERSION,le as count,fe as distinct,J as generateIndexDoc,U as generateIndexName,Y as generateIndexes,Q as generateViewIndexes,q as generateViews,K as getMetadata,ce as groupBy,de as max,pe as min,L as reAuth,Z as removeMetadata,M as reservedAttributes,H as setMetadata,ue as sum,V as testReservedAttributes,ne as translateOperators,oe as view,W as viewIndexDefinition,B as wrapDocumentScope};
1
+ import{Metadata as t,Decoration as e}from"@decaf-ts/decoration";import{PersistenceKeys as r,Operator as n,OrderDirection as i,Condition as s,GroupOperator as a,Repository as o,Paginator as c,PagingError as l,Sequence as u,QueryError as d,Statement as p,Adapter as f,ConnectionError as g,applyViewDecorator as h}from"@decaf-ts/core";import{DefaultSeparator as m,OperationKeys as y,InternalError as A,enforceDBDecorators as E,ValidationError as b,BulkCrudOperationKeys as O,reduceErrorsToPrint as w,BaseError as v,DBKeys as N,prefixMethod as x,ConflictError as T,NotFoundError as $}from"@decaf-ts/db-decorators";import{Model as j}from"@decaf-ts/decorator-validation";import{__decorate as S,__metadata as D}from"tslib";import{final as P}from"@decaf-ts/logging";const M=/^_.*$/g,I={SEPARATOR:"__",ID:"_id",REV:"_rev",DELETED:"_deleted",TABLE:"??table",SEQUENCE:"??sequence",DDOC:"ddoc",NATIVE:"__native",INDEX:"index",VIEW:"view"},C=250,R={EQUAL:"$eq",DIFFERENT:"$ne",BIGGER:"$gt",BIGGER_EQ:"$gte",SMALLER:"$lt",SMALLER_EQ:"$lte",NOT:"$not",IN:"$in",REGEXP:"$regex"},_={AND:"$and",OR:"$or"},k={NULL:"null"};async function L(t,e,r){return t.auth(e,r)}function B(t,e,r,n){const i=t.use?t.use(e):t;return["insert","get","put","destroy","find","view"].forEach(e=>{const s=i[e];Object.defineProperty(i,e,{enumerable:!1,configurable:!0,value:async(...e)=>(await L(t,r,n),s.call(i,...e))})}),Object.defineProperty(i,I.NATIVE,{enumerable:!1,configurable:!1,writable:!1,value:t}),i}function V(t){return t.match(/^_.*$/g)}function U(t,e,n,i,s=m){const a=[r.INDEX,e,t];return n&&a.push(...n),i&&a.push(i),a.join(s)}function J(t,e,r,n,i=m){const s={};let a;if(s[I.TABLE]={},s[I.TABLE].$eq=e,n){const e={};e[t]=n;const i=(r||[]).map(t=>{const e={};return e[t]=n,e}),s={};s[I.TABLE]=n,a=[e,...i,s]}else a=[t,...r||[],I.TABLE];const o=U(t,e,r,n,i);return{index:{fields:a},ddoc:[o,I.DDOC].join(i),name:o}}function G(t){return t instanceof Date?JSON.stringify(t.toISOString()):t instanceof RegExp?`new RegExp(${JSON.stringify(t.source)}, ${JSON.stringify(t.flags)})`:JSON.stringify(t)}function F(t,e){const{attr1:r,operator:i,comparison:o}=t;if(r instanceof s){const t=F(r,e);if(i===n.NOT)return`!(${t})`;const s=F(o,e);return i===a.AND?`(${t} && ${s})`:i===a.OR?`(${t} || ${s})`:t}const c=`${e}[${JSON.stringify(r)}]`;switch(i){case n.EQUAL:return`${c} === ${G(o)}`;case n.DIFFERENT:return`${c} !== ${G(o)}`;case n.BIGGER:return`${c} > ${G(o)}`;case n.BIGGER_EQ:return`${c} >= ${G(o)}`;case n.SMALLER:return`${c} < ${G(o)}`;case n.SMALLER_EQ:return`${c} <= ${G(o)}`;case n.IN:return`(${G(o)}).indexOf(${c}) !== -1`;case n.REGEXP:return`${o instanceof RegExp?G(o):`new RegExp(${JSON.stringify(o)})`}.test(${c})`;case n.NOT:return`!(${c} === ${G(o)})`;default:return"true"}}function z(t,e,r){return t?Array.isArray(t)?t:[t]:e?[e,...r||[]]:r||[]}function X(e,r,n){const i=t.get(e,r)||{};return Object.entries(i).flatMap(([t,e])=>e&&"object"==typeof e?Object.values(e).map(e=>{const r=e;return{...r,kind:n,attribute:r.attribute||t}}):[])}function q(t){const e={},r=[[I.VIEW,"view"],[n.GROUP_BY,"groupBy"],[n.COUNT,"count"],[n.SUM,"sum"],[n.MAX,"max"],[n.MIN,"min"],[n.DISTINCT,"distinct"]];return t.forEach(t=>{const n=j.tableName(t);r.flatMap(([e,r])=>X(t,e,r)).forEach(t=>{const r=t.attribute,i=((t,e,r,n,i=m)=>n.name?n.name:[t,e,r,"view"].join(i).replace(/\s+/g,"_"))(n,r,t.kind,t),a=t.ddoc||((t,e,r=m)=>[t,e,I.DDOC].join(r))(n,i),o="_design/"+a,c=((t,e,r,n)=>{const i=((t,e,r)=>{if(r.map)return"function"==typeof r.map?r.map.toString():r.map;const n=[];if(n.push(`doc[${JSON.stringify(I.TABLE)}] === ${JSON.stringify(t)}`),r.condition)if(r.condition instanceof s)n.push(F(r.condition,"doc"));else if("string"==typeof r.condition)n.push(r.condition);else{const t=s.from(r.condition);n.push(F(t,"doc"))}"count"===r.kind&&void 0!==r.value&&n.push(`doc[${JSON.stringify(e)}] === ${G(r.value)}`);const i=((t,e="doc")=>{if(!t)return;if("string"==typeof t)return t;const r=t.field||"roles",n=t.roles||[];if(!n.length)return t.expression;const i=`${e}[${JSON.stringify(r)}] || []`;return"all"===(t.mode||"any")?n.map(t=>`${i}.indexOf(${JSON.stringify(t)}) !== -1`).join(" && "):n.map(t=>`${i}.indexOf(${JSON.stringify(t)}) !== -1`).join(" || ")})(r.auth,"doc");i&&n.push(i);const a=n.length?n.join(" && "):"true",o=((t,e,r)=>{const n=z(t,e,r);return 1===n.length?`doc[${JSON.stringify(n[0])}]`:`[${n.map(t=>`doc[${JSON.stringify(t)}]`).join(", ")}]`})(r.key,e,r.compositions),c=((t,e)=>"doc"===t?"doc":t?Array.isArray(t)?`[${t.map(t=>`doc[${JSON.stringify(t)}]`).join(", ")}]`:"string"==typeof t?`doc[${JSON.stringify(t)}]`:G(t):`doc[${JSON.stringify(e)}]`)(r.value??(r.returnDocs&&"sum"!==r.kind?"doc":void 0),e);return`function (doc) {\n if (!(${a})) return;\n emit(${o}, ${c});\n}`})(n,e,r),a=r.reduce?"function"==typeof r.reduce?r.reduce.toString():r.reduce:(t=>{switch(t){case"count":case"groupBy":case"distinct":return"_count";case"sum":return"_sum";case"max":return"function (keys, values, rereduce) {\n var maxVal = null;\n for (var i = 0; i < values.length; i++) {\n var val = values[i];\n if (rereduce && val && typeof val === 'object' && 'value' in val) val = val.value;\n if (maxVal === null || val > maxVal) maxVal = val;\n }\n return maxVal;\n}";case"min":return"function (keys, values, rereduce) {\n var minVal = null;\n for (var i = 0; i < values.length; i++) {\n var val = values[i];\n if (rereduce && val && typeof val === 'object' && 'value' in val) val = val.value;\n if (minVal === null || val < minVal) minVal = val;\n }\n return minVal;\n}";default:return}})(t);return{map:i,reduce:a}})(t.kind,r,t,n);e[o]||(e[o]={_id:o,language:"javascript",views:{}}),e[o].views[i]=c})}),Object.values(e)}function Q(t){const e={},r=[[I.VIEW,"view"],[n.GROUP_BY,"groupBy"],[n.COUNT,"count"],[n.SUM,"sum"],[n.MAX,"max"],[n.MIN,"min"],[n.DISTINCT,"distinct"]];return t.forEach(t=>{const n=j.tableName(t);r.flatMap(([e,r])=>X(t,e,r)).forEach(t=>{const r=z(t.key,t.attribute,t.compositions);if(!r.length)return;const s=r[0],a=r.slice(1),o=t.directions||[i.ASC,i.DSC],c=J(s,n,a);e[c.name||""]=c,o.forEach(t=>{const r=J(s,n,a,t);e[r.name||""]=r})})}),Object.values(e)}function Y(t){const e=z(t.key,t.attribute);return{attribute:e[0],compositions:e.slice(1).concat(t.compositions||[]),directions:t.directions}}function W(t){const e=((t,e,r,n=m)=>[...t.map(t=>t===I.TABLE?"table":t),...r||[],...e?[e]:[],I.INDEX].join(n))([I.TABLE]),n={};return n[e]={index:{fields:[I.TABLE]},name:e,ddoc:e,type:"json"},t.forEach(t=>{const e=j.indexes(t);Object.entries(e).forEach(([e,s])=>{const a=[];Object.entries(s||{}).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(([t,e])=>{e&&a.push([t,e])}):a.push([e,r])}),a.forEach(([e,s])=>{if(!s)return;let{directions:a,compositions:o}=s;const c=j.tableName(t);o=o||[];const l=[e,...o],u={[I.TABLE]:{$eq:c}};function d(t,i){const s=[c,e,...o,...i?[i]:[],r.INDEX].join(m),a=[I.TABLE,...l],d=t?[{[I.TABLE]:t},...l.map(e=>({[e]:t}))]:a;n[s]={index:{fields:d},name:s,ddoc:s,type:"json"},t||(n[s].index.partial_filter_selector=u)}d(),Array.from(new Set((a||[i.ASC]).map(t=>(t+"").toLowerCase()))).filter(t=>t===i.ASC||t===i.DSC).forEach(t=>{d(t,t)})})})}),Q(t).forEach(t=>{t.name&&(n[t.name]=t)}),Object.values(n)}function H(t,e){Object.defineProperty(t,r.METADATA,{enumerable:!1,configurable:!0,writable:!0,value:e})}function K(t){const e=Object.getOwnPropertyDescriptor(t,r.METADATA);return e?e.value:void 0}function Z(t){Object.getOwnPropertyDescriptor(t,r.METADATA)&&delete t[r.METADATA]}class tt extends o{constructor(t,e){super(t,e)}assignMetadata(t,e){const r=(t,e)=>{const r=K(e??t);return r&&H(t,r),t};return Array.isArray(t)?t.map((t,n)=>{const i=Array.isArray(e)?e[n]:e;return r(t,i)}):r(t,Array.isArray(e)?e?.[0]:e)}async create(t,...e){const r=await super.create(t,...e);return this.assignMetadata(r),this.assignMetadata(t,r),r}async createAll(t,...e){const r=await super.createAll(t,...e);return this.assignMetadata(r),this.assignMetadata(t,r),r}async read(t,...e){const r=await super.read(t,...e);return this.assignMetadata(r)}async readAll(t,...e){const r=await super.readAll(t,...e);return this.assignMetadata(r)}async update(t,...e){const r=await super.update(t,...e);return this.assignMetadata(r),this.assignMetadata(t,r),r}async updateAll(t,...e){const r=await super.updateAll(t,...e);return this.assignMetadata(r),this.assignMetadata(t,r),r}async delete(t,...e){const r=await super.delete(t,...e);return this.assignMetadata(r)}async deleteAll(t,...e){const r=await super.deleteAll(t,...e);return this.assignMetadata(r)}async updatePrefix(t,...e){const{ctx:r,ctxArgs:n,log:i}=(await this.logCtx(e,y.UPDATE,!0)).for(this.updatePrefix),s=r.get("ignoreHandlers"),a=r.get("ignoreValidation");i.silly(`handlerSetting: ${s}, validationSetting: ${a}`);const o=t[this.pk];if(!o)throw new A("No value for the Id is defined under the property "+this.pk);let c,l;if(r.get("applyUpdateValidation")&&(c=await this.read(o),l=c?K(c):void 0,r.get("mergeForUpdate")&&(t=j.merge(c,t,this.class))),s||await E(this,r,t,y.UPDATE,y.ON,c),!a){const e=r.get("ignoredValidationProperties")||[];i.silly("ignored validation properties: "+e);const n=await Promise.resolve(t.hasErrors(c,...e));if(n)throw new b(n.toString())}return l&&H(t,l),[t,...n,c]}async updateAllPrefix(t,...e){const{ctx:r,ctxArgs:n,log:i}=(await this.logCtx(e,O.UPDATE_ALL,!0)).for(this.updateAllPrefix),s=r.get("ignoreHandlers"),a=r.get("ignoreValidation");i.silly(`handlerSetting: ${s}, ignoredValidation: ${a}`);const o=t.map(t=>{const e=t[this.pk];if(!e)throw new A("missing id on update operation");return e});let c;if(r.get("applyUpdateValidation")&&(c=await this.readAll(o,r),t=t.map((t,e)=>{r.get("mergeForUpdate")&&(t=j.merge(c[e],t,this.class));const n=K(c[e]);return n&&H(t,n),t})),s||await Promise.all(t.map((t,e)=>E(this,r,t,y.UPDATE,y.ON,c?c[e]:void 0))),!a){const e=r.get("ignoredValidationProperties")||[];let n;i.silly("ignored validation properties: "+e),n=r.get("applyUpdateValidation")?await Promise.all(t.map((t,r)=>Promise.resolve(t.hasErrors(c[r],...e)))):await Promise.resolve(t.map(t=>t.hasErrors(...e)));const s=w(n);if(s)throw new b(s)}return[t,...n,c]}}class et extends v{constructor(t){super(et.name,t,404)}}class rt extends c{constructor(t,e,r,n){super(t,e,r,n)}prepare(t){const e=Object.assign({},t);return e.limit&&(this.limit=e.limit),e.limit=this.size,e}async page(e=1,r,...n){const{log:i,ctxArgs:s,ctx:a}=this.adapter.logCtx([r,...n],this.page);if(this.isPreparedStatement())return await this.pagePrepared(e,...s);const o=Object.assign({},this.statement);if(this._recordCount&&this._totalPages)e=this.validatePage(e),o.skip=(e-1)*this.size;else{this._totalPages=this._recordCount=0;const t=await this.adapter.raw({...o,limit:Number.MAX_VALUE},!0,...s)||[];if(this._recordCount=t.length,this._recordCount>0){const t=o?.limit||this.size;return this._totalPages=Math.ceil(this._recordCount/t),await this.page(e,...s)}}if(1!==e){if(!this._bookmark)throw new l("No bookmark. Did you start in the first page?");o.bookmark=this._bookmark}const c=await this.adapter.raw(o,!1,...s),{docs:d,bookmark:p,warning:f}=c;if(f&&i.warn(f),!this.clazz)throw new l("No statement target defined");const g=j.pk(this.clazz),h=t.get(this.clazz,t.key(N.ID,g))?.type,m=o.fields&&o.fields.length?d:d.map(t=>this.adapter.revert(t,this.clazz,u.parseValue(h,t[g]),void 0,a));return this._bookmark=p,this._currentPage=e,m}}function nt(t){for(const e of[R,_]){const r=Object.keys(e).find(e=>e===t);if(r)return e[r]}throw new d("Could not find adapter translation for operator "+t)}class it extends p{constructor(t){super(t)}build(){const t=this.log.for(this.build),e={};e[I.TABLE]={},e[I.TABLE]=j.tableName(this.fromSelector);const r={selector:e};if(this.selectSelector&&(r.fields=this.selectSelector),this.whereCondition){const e=this.parseCondition(s.and(this.whereCondition,s.attribute(I.TABLE).eq(r.selector[I.TABLE]))).selector,n=Object.keys(e);if(1===n.length&&-1!==Object.values(_).indexOf(n[0]))switch(n[0]){case _.AND:e[_.AND]=[...Object.values(e[_.AND]).reduce((t,e)=>{const r=Object.keys(e);if(1!==r.length)throw Error("Too many keys in query selector. should be one");const n=r[0];return n===_.AND?t.push(...e[n]):t.push(e),t},[])],r.selector=e;break;case _.OR:{const t={};t[_.AND]=[e,...Object.entries(r.selector).map(([t,e])=>{const r={};return r[t]=e,r})],r.selector=t;break}default:throw Error("This should be impossible")}else Object.entries(e).forEach(([e,n])=>{r.selector[e]&&t.warn(`A ${e} query param is about to be overridden: ${r.selector[e]} by ${n}`),r.selector[e]=n})}if(this.orderBySelectors?.length){r.sort=r.sort||[],r.selector=r.selector||{};for(const[t,e]of this.orderBySelectors){const n=t,i={};i[n]=e,r.sort.push(i),r.selector[n]||(r.selector[n]={},r.selector[n].$gt=null)}}return this.limitSelector?r.limit=this.limitSelector:(t.warn("No limit selector defined. Using default couchdb limit of 250"),r.limit=250),this.offsetSelector&&(r.skip=this.offsetSelector),r}processRecord(t,e,r,n){if(t[I.ID]){const[,...e]=t[I.ID].split(I.SEPARATOR),i=e.join("_");return this.adapter.revert(t,this.fromSelector,u.parseValue(r,i),void 0,n)}return t}async raw(e,...r){const{ctx:n}=this.logCtx(r,this.raw),i=await this.adapter.raw(e,!0,n),s=j.pk(this.fromSelector),a=t.get(this.fromSelector,t.key(N.ID,s))?.type;return this.selectSelector?i:i.map(t=>this.processRecord(t,s,a,n))}parseCondition(t){const{attr1:e,operator:r,comparison:i}=t;let s={};if(-1===[a.AND,a.OR,n.NOT].indexOf(r))s[e]={},s[e][nt(r)]=i;else if(r===n.NOT)s=this.parseCondition(e).selector,s[nt(n.NOT)]={},s[nt(n.NOT)][e.attr1]=i;else{const t=this.parseCondition(e).selector,n=this.parseCondition(i).selector;s=((t,e,r)=>{const n={selector:{}};return n.selector[t]=[e,r],n})(nt(r),t,n).selector}return{selector:s}}}class st extends f{constructor(t,e,r){super(t,e,r),[this.create,this.createAll,this.update,this.updateAll].forEach(t=>{const e=t.name;x(this,t,this[e+"Prefix"])})}Statement(){return new it(this)}Paginator(t,e,r){return new rt(this,t,e,r)}async initialize(){const t=f.models(this.flavour);return this.index(...t)}repository(){return tt}assignMetadata(t,e){return e?(H(t,e),t):t}assignMultipleMetadata(t,e){return t.forEach((t,r)=>(H(t,e[r]),t)),t}prepare(t,...e){const{log:n}=this.logCtx(e,this.prepare),i=t.segregate(),s=Object.entries(i.model).reduce((e,[r,n])=>{if(void 0===n)return e;const i=j.columnName(t.constructor,r);if(this.isReserved(i))throw new A(`Property name ${i} is reserved`);return n=n instanceof Date?new Date(n):n,e[i]=n,e},{});return t[r.METADATA]&&(n.silly("Passing along persistence metadata for "+t[r.METADATA]),Object.defineProperty(s,r.METADATA,{enumerable:!1,writable:!0,configurable:!0,value:t[r.METADATA]})),{record:s,id:t[j.pk(t.constructor)],transient:i.transient}}createPrefix(t,e,r,...n){const{ctxArgs:i}=this.logCtx(n,this.createPrefix),s=j.tableName(t),a={};return a[I.TABLE]=s,a[I.ID]=this.generateId(s,e),Object.assign(a,r),[t,e,a,...i]}createAllPrefix(t,e,r,...n){const i=j.tableName(t);if(e.length!==r.length)throw new A("Ids and models must have the same length");const{ctxArgs:s}=this.logCtx(n,this.createAllPrefix),a=e.map((t,e)=>{const n={};return n[I.TABLE]=i,n[I.ID]=this.generateId(i,t),Object.assign(n,r[e]),n});return[t,e,a,...s]}updatePrefix(t,e,n,...i){const s=j.tableName(t),{ctxArgs:a}=this.logCtx(i,this.updatePrefix),o={};o[I.TABLE]=s,o[I.ID]=this.generateId(s,e);const c=n[r.METADATA];if(!c)throw new A("No revision number found for record with id "+e);return Object.assign(o,n),o[I.REV]=c,[t,e,o,...a]}updateAllPrefix(t,e,n,...i){const s=j.tableName(t);if(e.length!==n.length)throw new A("Ids and models must have the same length");const{ctxArgs:a}=this.logCtx(i,this.updateAllPrefix),o=e.map((t,e)=>{const i={};i[I.TABLE]=s,i[I.ID]=this.generateId(s,t);const a=n[e][r.METADATA];if(!a)throw new A("No revision number found for record with id "+t);return Object.assign(i,n[e]),i[I.REV]=a,i});return[t,e,o,...a]}generateId(t,e){return[t,e].join(I.SEPARATOR)}parseError(t,e){return st.parseError(t,e)}isReserved(t){return!!t.match(M)}static parseError(t,e){if(t instanceof v)return t;let r="";if("string"==typeof t){if(r=t,r.match(/already exist|update conflict/g))return new T(r);if(r.match(/missing|deleted/g))return new $(r)}else t.code?(r=t.code,e=e||t.message):t.statusCode?(r=t.statusCode,e=e||t.message):r=t.message;switch(r.toString()){case"401":case"412":case"409":return new T(e);case"404":return new $(e);case"400":return r.toString().match(/No\sindex\sexists/g)?new et(t):new A(t);default:return r.toString().match(/ECONNREFUSED/g)?new g(t):new A(t)}}static setMetadata(t,e){H(t,e)}static getMetadata(t){return K(t)}static removeMetadata(t){Z(t)}}function at(t,r){let i={};return Array.isArray(t)?i.compositions=t:"string"==typeof t?i.name=t:t&&(i=t),"string"==typeof r?i.name=r:r&&(i=Object.assign({},i,r)),e.for(n.GROUP_BY).define({decorator:t=>h(n.GROUP_BY,"groupBy",t),args:[i]}).apply()}function ot(t,r){let i={};return t instanceof s?i.condition=t:"object"==typeof t&&t?i=t:void 0!==t&&(i.value=t),r&&(i=Object.assign({},i,r)),e.for(n.COUNT).define({decorator:t=>h(n.COUNT,"count",t),args:[i]}).apply()}function ct(t,r){let i={};return t instanceof s?i.condition=t:t&&(i=t),r&&(i=Object.assign({},i,r)),e.for(n.SUM).define({decorator:t=>h(n.SUM,"sum",t),args:[i]}).apply()}function lt(t,r){let i={};return t instanceof s?i.condition=t:t&&(i=t),r&&(i=Object.assign({},i,r)),e.for(n.MAX).define({decorator:t=>h(n.MAX,"max",t),args:[i]}).apply()}function ut(t,r){let i={};return t instanceof s?i.condition=t:t&&(i=t),r&&(i=Object.assign({},i,r)),e.for(n.MIN).define({decorator:t=>h(n.MIN,"min",t),args:[i]}).apply()}function dt(t,r){let i={};return t instanceof s?i.condition=t:t&&(i=t),r&&(i=Object.assign({},i,r)),e.for(n.DISTINCT).define({decorator:t=>h(n.DISTINCT,"distinct",t),args:[i]}).apply()}S([P(),D("design:type",Function),D("design:paramtypes",[]),D("design:returntype",it)],st.prototype,"Statement",null),S([P(),D("design:type",Function),D("design:paramtypes",[Object,String]),D("design:returntype",Object)],st.prototype,"assignMetadata",null),S([P(),D("design:type",Function),D("design:paramtypes",[Array,Array]),D("design:returntype",Array)],st.prototype,"assignMultipleMetadata",null),S([P(),D("design:type",Function),D("design:paramtypes",[Object,Object,Object,Object]),D("design:returntype",Array)],st.prototype,"createPrefix",null),S([P(),D("design:type",Function),D("design:paramtypes",[Object,Array,Array,Object]),D("design:returntype",void 0)],st.prototype,"createAllPrefix",null),S([P(),D("design:type",Function),D("design:paramtypes",[Object,Object,Object,Object]),D("design:returntype",void 0)],st.prototype,"updatePrefix",null),S([P(),D("design:type",Function),D("design:paramtypes",[Object,Array,Array,Object]),D("design:returntype",void 0)],st.prototype,"updateAllPrefix",null);const pt="##VERSION##",ft="##PACKAGE##";t.registerLibrary(ft,pt);export{st as CouchDBAdapter,k as CouchDBConst,_ as CouchDBGroupOperator,I as CouchDBKeys,R as CouchDBOperator,rt as CouchDBPaginator,C as CouchDBQueryLimit,tt as CouchDBRepository,it as CouchDBStatement,et as IndexError,ft as PACKAGE_NAME,pt as VERSION,ot as count,dt as distinct,J as generateIndexDoc,U as generateIndexName,W as generateIndexes,Q as generateViewIndexes,q as generateViews,K as getMetadata,at as groupBy,lt as max,ut as min,L as reAuth,Z as removeMetadata,M as reservedAttributes,H as setMetadata,ct as sum,V as testReservedAttributes,nt as translateOperators,Y as viewIndexDefinition,B 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.ts","../src/query/Paginator.ts","../src/query/translate.ts","../src/query/Statement.ts","../src/adapter.ts","../src/decorators.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["reservedAttributes","CouchDBKeys","SEPARATOR","ID","REV","DELETED","TABLE","SEQUENCE","DDOC","NATIVE","INDEX","VIEW","CouchDBQueryLimit","CouchDBOperator","EQUAL","DIFFERENT","BIGGER","BIGGER_EQ","SMALLER","SMALLER_EQ","NOT","IN","REGEXP","CouchDBGroupOperator","AND","OR","CouchDBConst","NULL","async","reAuth","con","user","pass","auth","wrapDocumentScope","dbName","db","use","forEach","k","original","Object","defineProperty","enumerable","configurable","value","args","call","writable","testReservedAttributes","attr","match","generateIndexName","attribute","tableName","compositions","order","separator","DefaultSeparator","PersistenceKeys","push","join","generateIndexDoc","partialFilterSelector","fields","orderProp","sortedCompositions","map","c","r","sortedTable","name","index","ddoc","toJsLiteral","Date","JSON","stringify","toISOString","RegExp","source","flags","conditionToJs","condition","docVar","attr1","operator","comparison","Condition","left","Operator","right","GroupOperator","attrExpr","normalizeKey","key","Array","isArray","collectViewMetadata","model","kind","meta","Metadata","get","entries","flatMap","values","entry","generateViews","models","viewDocs","viewKeys","GROUP_BY","COUNT","SUM","MAX","MIN","DISTINCT","m","Model","viewName","replace","generateViewName","ddocName","generateDesignDocName","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","generateIndexes","n","type","ind","generate","sort","accum","el","res","tableFilter","partial_filter_selector","d","setMetadata","metadata","METADATA","getMetadata","descriptor","getOwnPropertyDescriptor","removeMetadata","CouchDBRepository","Repository","constructor","adapter","super","assignMetadata","target","apply","instance","carrier","create","result","this","createAll","results","read","id","readAll","ids","update","updateAll","delete","deleteAll","updatePrefix","ctx","ctxArgs","log","logCtx","OperationKeys","UPDATE","for","ignoreHandlers","ignoreValidate","silly","pk","InternalError","oldModel","oldMetadata","merge","class","enforceDBDecorators","ON","propsToIgnore","errors","Promise","resolve","hasErrors","ValidationError","updateAllPrefix","BulkCrudOperationKeys","UPDATE_ALL","oldModels","i","all","ignoredProps","modelsValidation","errorMessages","reduceErrorsToPrint","IndexError","BaseError","msg","CouchDBPaginator","Paginator","query","size","clazz","prepare","rawStatement","assign","limit","page","bookmark","isPreparedStatement","pagePrepared","statement","_recordCount","_totalPages","validatePage","skip","countResults","raw","Number","MAX_VALUE","Math","ceil","_bookmark","PagingError","rawResult","docs","nextBookmark","warning","warn","DBKeys","pageResults","revert","Sequence","parseValue","_currentPage","translateOperators","operators","find","QueryError","CouchDBStatement","Statement","build","selectors","fromSelector","selector","selectSelector","whereCondition","parseCondition","and","eq","selectorKeys","indexOf","val","Error","s","orderBySelector","rec","limitSelector","offsetSelector","processRecord","pkAttr","sequenceType","keyArgs","split","rawInput","op","op1","op2","obj1","obj2","CouchDBAdapter","Adapter","scope","flavour","alias","prefixMethod","initialize","managedModels","repository","rev","assignMultipleMetadata","revs","segregate","mappedProp","columnName","isReserved","record","transient","createPrefix","generateId","createAllPrefix","records","count","parseError","err","reason","code","ConflictError","NotFoundError","message","statusCode","ConnectionError","applyViewDecorator","metaKey","opts","slot","attrBucket","String","nextViewSlot","propMetadata","view","Decoration","define","decorator","o","groupBy","compositionsOrOptions","nameOrOptions","valueOrCondition","options","sum","conditionOrOptions","max","min","distinct","__decorate","final","prototype","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.ts","../src/query/Paginator.ts","../src/query/translate.ts","../src/query/Statement.ts","../src/adapter.ts","../src/decorators.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["reservedAttributes","CouchDBKeys","SEPARATOR","ID","REV","DELETED","TABLE","SEQUENCE","DDOC","NATIVE","INDEX","VIEW","CouchDBQueryLimit","CouchDBOperator","EQUAL","DIFFERENT","BIGGER","BIGGER_EQ","SMALLER","SMALLER_EQ","NOT","IN","REGEXP","CouchDBGroupOperator","AND","OR","CouchDBConst","NULL","async","reAuth","con","user","pass","auth","wrapDocumentScope","dbName","db","use","forEach","k","original","Object","defineProperty","enumerable","configurable","value","args","call","writable","testReservedAttributes","attr","match","generateIndexName","attribute","tableName","compositions","order","separator","DefaultSeparator","PersistenceKeys","push","join","generateIndexDoc","partialFilterSelector","fields","orderProp","sortedCompositions","map","c","r","sortedTable","name","index","ddoc","toJsLiteral","Date","JSON","stringify","toISOString","RegExp","source","flags","conditionToJs","condition","docVar","attr1","operator","comparison","Condition","left","Operator","right","GroupOperator","attrExpr","normalizeKey","key","Array","isArray","collectViewMetadata","model","kind","meta","Metadata","get","entries","flatMap","values","entry","generateViews","models","viewDocs","viewKeys","GROUP_BY","COUNT","SUM","MAX","MIN","DISTINCT","m","Model","viewName","replace","generateViewName","ddocName","generateDesignDocName","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","generateIndexes","n","type","ind","metadataEntries","metadataValue","candidate","fieldKey","fieldKeys","tableFilter","$eq","generate","sort","suffix","baseFields","sortField","partial_filter_selector","Set","dir","String","toLowerCase","filter","setMetadata","metadata","METADATA","getMetadata","descriptor","getOwnPropertyDescriptor","removeMetadata","CouchDBRepository","Repository","constructor","adapter","super","assignMetadata","target","apply","instance","carrier","create","result","this","createAll","results","read","id","readAll","ids","update","updateAll","delete","deleteAll","updatePrefix","ctx","ctxArgs","log","logCtx","OperationKeys","UPDATE","for","ignoreHandlers","ignoreValidate","silly","pk","InternalError","oldModel","oldMetadata","merge","class","enforceDBDecorators","ON","propsToIgnore","errors","Promise","resolve","hasErrors","ValidationError","updateAllPrefix","BulkCrudOperationKeys","UPDATE_ALL","oldModels","i","all","ignoredProps","modelsValidation","errorMessages","reduceErrorsToPrint","IndexError","BaseError","msg","CouchDBPaginator","Paginator","query","size","clazz","prepare","rawStatement","assign","limit","page","bookmark","isPreparedStatement","pagePrepared","statement","_recordCount","_totalPages","validatePage","skip","countResults","raw","Number","MAX_VALUE","Math","ceil","_bookmark","PagingError","rawResult","docs","nextBookmark","warning","warn","DBKeys","pageResults","d","revert","Sequence","parseValue","_currentPage","translateOperators","operators","el","find","QueryError","CouchDBStatement","Statement","build","selectors","fromSelector","selector","selectSelector","whereCondition","parseCondition","and","eq","selectorKeys","indexOf","accum","val","Error","s","orderBySelectors","selectorKey","rec","limitSelector","offsetSelector","processRecord","pkAttr","sequenceType","keyArgs","split","rawInput","op","op1","op2","obj1","obj2","CouchDBAdapter","Adapter","scope","flavour","alias","prefixMethod","initialize","managedModels","repository","rev","assignMultipleMetadata","revs","segregate","mappedProp","columnName","isReserved","record","transient","createPrefix","generateId","createAllPrefix","records","count","parseError","err","reason","code","ConflictError","NotFoundError","message","statusCode","ConnectionError","groupBy","compositionsOrOptions","nameOrOptions","opts","Decoration","define","decorator","o","applyViewDecorator","valueOrCondition","options","sum","conditionOrOptions","max","min","distinct","__decorate","final","prototype","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}