@decaf-ts/for-couchdb 0.4.3 → 0.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/for-couchdb.cjs +1 -1
  2. package/dist/for-couchdb.cjs.map +1 -1
  3. package/dist/for-couchdb.js +1 -1
  4. package/dist/for-couchdb.js.map +1 -1
  5. package/lib/adapter.cjs +77 -37
  6. package/lib/adapter.d.ts +50 -22
  7. package/lib/adapter.js.map +1 -1
  8. package/lib/esm/adapter.d.ts +50 -22
  9. package/lib/esm/adapter.js +70 -30
  10. package/lib/esm/adapter.js.map +1 -1
  11. package/lib/esm/index.d.ts +2 -2
  12. package/lib/esm/index.js +2 -2
  13. package/lib/esm/index.js.map +1 -1
  14. package/lib/esm/indexes/generator.js +4 -3
  15. package/lib/esm/indexes/generator.js.map +1 -1
  16. package/lib/esm/query/Paginator.d.ts +1 -1
  17. package/lib/esm/query/Paginator.js +4 -3
  18. package/lib/esm/query/Paginator.js.map +1 -1
  19. package/lib/esm/query/Statement.d.ts +6 -5
  20. package/lib/esm/query/Statement.js +8 -7
  21. package/lib/esm/query/Statement.js.map +1 -1
  22. package/lib/esm/repository.d.ts +39 -0
  23. package/lib/esm/repository.js +147 -0
  24. package/lib/esm/repository.js.map +1 -0
  25. package/lib/esm/sequences/Sequence.d.ts +19 -18
  26. package/lib/esm/sequences/Sequence.js +33 -28
  27. package/lib/esm/sequences/Sequence.js.map +1 -1
  28. package/lib/index.cjs +2 -2
  29. package/lib/index.d.ts +2 -2
  30. package/lib/index.js.map +1 -1
  31. package/lib/indexes/generator.cjs +3 -2
  32. package/lib/indexes/generator.js.map +1 -1
  33. package/lib/query/Paginator.cjs +4 -3
  34. package/lib/query/Paginator.d.ts +1 -1
  35. package/lib/query/Paginator.js.map +1 -1
  36. package/lib/query/Statement.cjs +7 -6
  37. package/lib/query/Statement.d.ts +6 -5
  38. package/lib/query/Statement.js.map +1 -1
  39. package/lib/repository.cjs +151 -0
  40. package/lib/repository.d.ts +39 -0
  41. package/lib/repository.js.map +1 -0
  42. package/lib/sequences/Sequence.cjs +31 -26
  43. package/lib/sequences/Sequence.d.ts +19 -18
  44. package/lib/sequences/Sequence.js.map +1 -1
  45. package/package.json +1 -2
  46. package/lib/esm/interfaces/CouchDBRepository.d.ts +0 -16
  47. package/lib/esm/interfaces/CouchDBRepository.js +0 -2
  48. package/lib/esm/interfaces/CouchDBRepository.js.map +0 -1
  49. package/lib/esm/interfaces/index.d.ts +0 -1
  50. package/lib/esm/interfaces/index.js +0 -2
  51. package/lib/esm/interfaces/index.js.map +0 -1
  52. package/lib/interfaces/CouchDBRepository.cjs +0 -3
  53. package/lib/interfaces/CouchDBRepository.d.ts +0 -16
  54. package/lib/interfaces/CouchDBRepository.js.map +0 -1
  55. package/lib/interfaces/index.cjs +0 -18
  56. package/lib/interfaces/index.d.ts +0 -1
  57. package/lib/interfaces/index.js.map +0 -1
@@ -1,2 +1,2 @@
1
- var e,t;e=this,t=function(e,t,r,n,a,o){"use strict";const s=/^_.*$/g,i={SEPARATOR:"__",ID:"_id",REV:"_rev",DELETED:"_deleted",TABLE:"??table",SEQUENCE:"??sequence",DDOC:"ddoc",NATIVE:"__native",INDEX:"index"},c={EQUAL:"$eq",DIFFERENT:"$ne",BIGGER:"$gt",BIGGER_EQ:"$gte",SMALLER:"$lt",SMALLER_EQ:"$lte",NOT:"$not",IN:"$in",REGEXP:"$regex"},d={AND:"$and",OR:"$or"};e.Sequence=class extends r.BaseModel{constructor(e){super(e)}},a.__decorate([r.pk(),a.__metadata("design:type",String)],e.Sequence.prototype,"id",void 0),a.__decorate([o.required(),r.index(),a.__metadata("design:type",Object)],e.Sequence.prototype,"current",void 0),e.Sequence=a.__decorate([r.table(i.SEQUENCE),o.model(),a.__metadata("design:paramtypes",[Object])],e.Sequence);class l extends r.Sequence{constructor(t,n){super(t),this.repo=r.Repository.forModel(e.Sequence,n.alias)}async current(){const{name:e,startWith:t}=this.options;try{const t=await this.repo.read(e);return this.parse(t.current)}catch(r){if(r instanceof n.NotFoundError){if(void 0===t)throw new n.InternalError("Starting value is not defined for a non existing sequence");try{return this.parse(t)}catch(e){throw new n.InternalError(`Failed to parse initial value for sequence ${t}: ${e}`)}}throw new n.InternalError(`Failed to retrieve current value for sequence ${e}: ${r}`)}}parse(e){return r.Sequence.parseValue(this.options.type,e)}async increment(t,r){const{type:a,incrementBy:o,name:s}=this.options;let i;const c=r||o;if(c%o!==0)throw new n.InternalError("Value to increment does not consider the incrementBy setting: "+o);switch(a){case"Number":i=this.parse(t)+c;break;case"BigInt":i=this.parse(t)+BigInt(c);break;default:throw new n.InternalError("Should never happen")}let d;try{d=await this.repo.update(new e.Sequence({id:s,current:i}))}catch(t){if(!(t instanceof n.NotFoundError))throw t;d=await this.repo.create(new e.Sequence({id:s,current:i}))}return d.current}async next(){const e=await this.current();return this.increment(e)}async range(e){const t=await this.current(),r=this.parse(this.options.incrementBy),a=await this.increment(t,this.parse(e)*r),o=[];for(let n=1;e>=n;n++)o.push(t+r*this.parse(n));if(o[o.length-1]!==a)throw new n.InternalError("Miscalculation of range");return o}}class u extends n.BaseError{constructor(e){super(u.name,e,404)}}class p extends r.Paginator{get total(){throw new n.InternalError("The total pages api is not available for couchdb")}get count(){throw new n.InternalError("The record count api is not available for couchdb")}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(e=1){const a=Object.assign({},this.statement);if(!this._recordCount||!this._totalPages){this._totalPages=this._recordCount=0;const e=await this.adapter.raw({...a,limit:void 0})||[];if(this._recordCount=e.length,this._recordCount>0){const e=a?.limit||this.size;this._totalPages=Math.ceil(this._recordCount/e)}}if(this.validatePage(e),1!==e){if(!this.bookMark)throw new r.PagingError("No bookmark. Did you start in the first page?");a.bookmark=this.bookMark}const s=await this.adapter.raw(a,!1),{docs:c,bookmark:d,warning:l}=s;if(l&&this.log.for(this.page).warn(l),!this.clazz)throw new r.PagingError("No statement target defined");const u=o.Model.pk(this.clazz),p=t.Metadata.get(this.clazz,t.Metadata.key(n.DBKeys.ID,u))?.type,h=a.fields&&a.fields.length?c:c.map(e=>{const t=e._id.split(i.SEPARATOR);return t.splice(0,1),this.adapter.revert(e,this.clazz,u,r.Sequence.parseValue(p,t.join(i.SEPARATOR)))});return this.bookMark=d,this._currentPage=e,h}}function h(e){for(const t of[c,d]){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 f extends r.Statement{constructor(e){super(e)}build(){const e=this.log.for(this.build),t={};t[i.TABLE]={},t[i.TABLE]=r.Repository.table(this.fromSelector);const n={selector:t};if(this.selectSelector&&(n.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(r.Condition.and(this.whereCondition,r.Condition.attribute(i.TABLE).eq(n.selector[i.TABLE]))).selector,a=Object.keys(t);if(1===a.length&&-1!==Object.values(d).indexOf(a[0]))switch(a[0]){case d.AND:t[d.AND]=[...Object.values(t[d.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===d.AND?e.push(...t[n]):e.push(t),e},[])],n.selector=t;break;case d.OR:{const e={};e[d.AND]=[t,...Object.entries(n.selector).map(([e,t])=>{const r={};return r[e]=t,r})],n.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach(([t,r])=>{n.selector[t]&&e.warn(`A ${t} query param is about to be overridden: ${n.selector[t]} by ${r}`),n.selector[t]=r})}if(this.orderBySelector){n.sort=n.sort||[],n.selector=n.selector||{};const[e,t]=this.orderBySelector,r={};r[e]=t,n.sort.push(r),n.selector[e]||(n.selector[e]={},n.selector[e][c.BIGGER]=null)}return this.limitSelector?n.limit=this.limitSelector:(e.warn("No limit selector defined. Using default couchdb limit of 250"),n.limit=250),this.offsetSelector&&(n.skip=this.offsetSelector),n}async paginate(e){try{const t=this.build();return new p(this.adapter,t,e,this.fromSelector)}catch(e){throw new n.InternalError(e)}}processRecord(e,t,n){if(e[i.ID]){const[,...a]=e[i.ID].split(i.SEPARATOR),o=a.join("_");return this.adapter.revert(e,this.fromSelector,t,r.Sequence.parseValue(n,o))}return e}async raw(e){const r=await this.adapter.raw(e,!0),a=o.Model.pk(this.fromSelector),s=t.Metadata.get(this.fromSelector,t.Metadata.key(n.DBKeys.ID,a))?.type;return this.selectSelector?r:r.map(e=>this.processRecord(e,a,s))}parseCondition(e){const{attr1:t,operator:n,comparison:a}=e;let o={};if(-1===[r.GroupOperator.AND,r.GroupOperator.OR,r.Operator.NOT].indexOf(n))o[t]={},o[t][h(n)]=a;else if(n===r.Operator.NOT)o=this.parseCondition(t).selector,o[h(r.Operator.NOT)]={},o[h(r.Operator.NOT)][t.attr1]=a;else{const e=this.parseCondition(t).selector,r=this.parseCondition(a).selector;o=((e,t,r)=>{const n={selector:{}};return n.selector[e]=[t,r],n})(h(n),e,r).selector}return{selector:o}}}class g 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;n.prefixMethod(this,e,this[t+"Prefix"])})}Statement(){return new f(this)}async Sequence(e){return new l(e,this)}async initialize(){const e=r.Adapter.models(this.flavour);return this.index(...e)}assignMetadata(e,t){return Object.defineProperty(e,r.PersistenceKeys.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:t}),e}assignMultipleMetadata(e,t){return e.forEach((e,n)=>(r.Repository.setMetadata(e,t[n]),e)),e}createPrefix(e,t,r,...n){const a={};return a[i.TABLE]=e,a[i.ID]=this.generateId(e,t),Object.assign(a,r),[e,t,a]}createAllPrefix(e,t,r,...a){if(t.length!==r.length)throw new n.InternalError("Ids and models must have the same length");const o=t.map((t,n)=>{const a={};return a[i.TABLE]=e,a[i.ID]=this.generateId(e,t),Object.assign(a,r[n]),a});return[e,t,o]}updatePrefix(e,t,a,...o){const s={};s[i.TABLE]=e,s[i.ID]=this.generateId(e,t);const c=a[r.PersistenceKeys.METADATA];if(!c)throw new n.InternalError("No revision number found for record with id "+t);return Object.assign(s,a),s[i.REV]=c,[e,t,s]}updateAllPrefix(e,t,a,...o){if(t.length!==a.length)throw new n.InternalError("Ids and models must have the same length");const s=t.map((t,o)=>{const s={};s[i.TABLE]=e,s[i.ID]=this.generateId(e,t);const c=a[o][r.PersistenceKeys.METADATA];if(!c)throw new n.InternalError("No revision number found for record with id "+t);return Object.assign(s,a[o]),s[i.REV]=c,s});return[e,t,s]}generateId(e,t){return[e,t].join(i.SEPARATOR)}parseError(e,t){return g.parseError(e,t)}isReserved(e){return!!e.match(s)}static parseError(e,t){if(e instanceof n.BaseError)return e;let a="";if("string"==typeof e){if(a=e,a.match(/already exist|update conflict/g))return new n.ConflictError(a);if(a.match(/missing|deleted/g))return new n.NotFoundError(a)}else e.code?(a=e.code,t=t||e.message):e.statusCode?(a=e.statusCode,t=t||e.message):a=e.message;switch(a.toString()){case"401":case"412":case"409":return new n.ConflictError(t);case"404":return new n.NotFoundError(t);case"400":return a.toString().match(/No\sindex\sexists/g)?new u(e):new n.InternalError(e);default:return a.toString().match(/ECONNREFUSED/g)?new r.ConnectionError(e):new n.InternalError(e)}}}async function m(e,t,r){return e.auth(t,r)}function y(e,t,a,o,s=n.DefaultSeparator){const i=[r.PersistenceKeys.INDEX,t,e];return a&&i.push(...a),o&&i.push(o),i.join(s)}a.__decorate([r.final(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",[]),a.__metadata("design:returntype",f)],g.prototype,"Statement",null),a.__decorate([r.final(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",[Object]),a.__metadata("design:returntype",Promise)],g.prototype,"Sequence",null),a.__decorate([r.final(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",[Object,String]),a.__metadata("design:returntype",Object)],g.prototype,"assignMetadata",null),a.__decorate([r.final(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",[Array,Array]),a.__metadata("design:returntype",Array)],g.prototype,"assignMultipleMetadata",null),a.__decorate([r.final(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",[String,Object,Object,Object]),a.__metadata("design:returntype",void 0)],g.prototype,"createPrefix",null),a.__decorate([r.final(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",[String,Array,Array,Object]),a.__metadata("design:returntype",void 0)],g.prototype,"createAllPrefix",null),a.__decorate([r.final(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",[String,Object,Object,Object]),a.__metadata("design:returntype",void 0)],g.prototype,"updatePrefix",null),a.__decorate([r.final(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",[String,Array,Array,Object]),a.__metadata("design:returntype",void 0)],g.prototype,"updateAllPrefix",null);const E="##VERSION##",_="##PACKAGE##";t.Metadata.registerLibrary(_,E),e.CouchDBAdapter=g,e.CouchDBConst={NULL:"null"},e.CouchDBGroupOperator=d,e.CouchDBKeys=i,e.CouchDBOperator=c,e.CouchDBPaginator=p,e.CouchDBQueryLimit=250,e.CouchDBSequence=l,e.CouchDBStatement=f,e.IndexError=u,e.PACKAGE_NAME=_,e.VERSION=E,e.generateIndexDoc=(e,t,r,a,o=n.DefaultSeparator)=>{const s={};let d;if(s[i.TABLE]={},s[i.TABLE][c.EQUAL]=t,a){const t={};t[e]=a;const n=(r||[]).map(e=>{const t={};return t[e]=a,t}),o={};o[i.TABLE]=a,d=[t,...n,o]}else d=[e,...r||[],i.TABLE];const l=y(e,t,r,a,o);return{index:{fields:d},ddoc:[l,i.DDOC].join(o),name:l}},e.generateIndexName=y,e.generateIndexes=e=>{const t=((e,t,r,a=n.DefaultSeparator)=>[...e.map(e=>e===i.TABLE?"table":e),...r||[],...t?[t]:[],i.INDEX].join(a))([i.TABLE]),a={};return a[t]={index:{fields:[i.TABLE]},name:t,ddoc:t,type:"json"},e.forEach(e=>{const t=r.Repository.indexes(e);Object.entries(t).forEach(([t,o])=>{const s=Object.keys(o)[0];let{directions:d,compositions:l}=o[s];const u=r.Repository.table(e);function p(e){const o=[u,t,...l,r.PersistenceKeys.INDEX].join(n.DefaultSeparator);if(a[o]={index:{fields:[t,...l,i.TABLE].reduce((t,r)=>{if(e){const n={};n[r]=e,t.push(n)}else t.push(r);return t},[])},name:o,ddoc:o,type:"json"},!e){const e={};e[i.TABLE]={},e[i.TABLE][c.EQUAL]=u,a[o].index.partial_filter_selector=e}}l=l||[],p(),d&&d.forEach(e=>p(e))})}),Object.values(a)},e.reAuth=m,e.reservedAttributes=s,e.testReservedAttributes=e=>e.match(/^_.*$/g),e.translateOperators=h,e.wrapDocumentScope=(e,t,r,n)=>{const a=e.use(t);return["insert","get","put","destroy","find"].forEach(t=>{const o=a[t];Object.defineProperty(a,t,{enumerable:!1,configurable:!0,value:async(...t)=>(await m(e,r,n),o.call(a,...t))})}),Object.defineProperty(a,i.NATIVE,{enumerable:!1,configurable:!1,writable:!1,value:e}),a}},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("@decaf-ts/core"),require("@decaf-ts/db-decorators"),require("tslib"),require("@decaf-ts/decorator-validation")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/core","@decaf-ts/db-decorators","tslib","@decaf-ts/decorator-validation"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-couchdb"]={},e.decafTsDecoration,e.decafTsCore,e.decafTsDbDecorators,e.tslib,e.decafTsDecoratorValidation);
1
+ var e,t;e=this,t=function(e,t,r,a,s,n,o){"use strict";const i=/^_.*$/g,c={SEPARATOR:"__",ID:"_id",REV:"_rev",DELETED:"_deleted",TABLE:"??table",SEQUENCE:"??sequence",DDOC:"ddoc",NATIVE:"__native",INDEX:"index"},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"};e.Sequence=class extends r.BaseModel{constructor(e){super(e)}},n.__decorate([r.pk(),n.__metadata("design:type",String)],e.Sequence.prototype,"id",void 0),n.__decorate([s.required(),r.index(),n.__metadata("design:type",Object)],e.Sequence.prototype,"current",void 0),e.Sequence=n.__decorate([r.table(c.SEQUENCE),s.model(),n.__metadata("design:paramtypes",[Object])],e.Sequence);class u extends r.Sequence{constructor(t,a){super(t,a),this.repo=r.Repository.forModel(e.Sequence,a.alias)}async current(...t){const r=(await a.Context.args(a.OperationKeys.READ,e.Sequence,t,this.adapter)).context,{name:s,startWith:n}=this.options;try{const e=await this.repo.read(s,r);return this.parse(e.current)}catch(e){if(e instanceof a.NotFoundError){if(void 0===n)throw new a.InternalError("Starting value is not defined for a non existing sequence");try{return this.parse(n)}catch(e){throw new a.InternalError(`Failed to parse initial value for sequence ${n}: ${e}`)}}throw new a.InternalError(`Failed to retrieve current value for sequence ${s}: ${e}`)}}async increment(t,r,s){const{type:n,incrementBy:o,name:i}=this.options;let c;const d=r||o;if(d%o!==0)throw new a.InternalError("Value to increment does not consider the incrementBy setting: "+o);switch(n){case"Number":c=this.parse(t)+d;break;case"BigInt":c=this.parse(t)+BigInt(d);break;default:throw new a.InternalError("Should never happen")}let l;try{l=await this.repo.update(new e.Sequence({id:i,current:c}),s)}catch(t){if(!(t instanceof a.NotFoundError))throw t;l=await this.repo.create(new e.Sequence({id:i,current:c}),s)}return l.current}async next(...t){const r=await a.Context.args(a.OperationKeys.UPDATE,e.Sequence,t,this.adapter),{context:s,args:n}=r,o=await this.current(...n);return this.increment(o,void 0,s)}async range(t,...r){const s=await a.Context.args(a.OperationKeys.UPDATE,e.Sequence,r,this.adapter),{context:n,args:o}=s,i=await this.current(...o),c=this.parse(this.options.incrementBy),d=await this.increment(i,this.parse(t)*c,n),l=[];for(let e=1;t>=e;e++)l.push(i+c*this.parse(e));if(l[l.length-1]!==d&&"String"!==this.options.type)throw new a.InternalError("Miscalculation of range");return l}}class p extends a.BaseError{constructor(e){super(p.name,e,404)}}class h extends r.Paginator{get total(){throw new a.InternalError("The total pages api is not available for couchdb")}get count(){throw new a.InternalError("The record count api is not available for couchdb")}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){const{ctx:n}=this.adapter.logCtx([e],this.page),o=Object.assign({},this.statement);if(!this._recordCount||!this._totalPages){this._totalPages=this._recordCount=0;const e=await this.adapter.raw({...o,limit:void 0},!0,n)||[];if(this._recordCount=e.length,this._recordCount>0){const e=o?.limit||this.size;this._totalPages=Math.ceil(this._recordCount/e)}}if(this.validatePage(e),1!==e){if(!this.bookMark)throw new r.PagingError("No bookmark. Did you start in the first page?");o.bookmark=this.bookMark}const i=await this.adapter.raw(o,!1,n),{docs:d,bookmark:l,warning:u}=i;if(u&&this.log.for(this.page).warn(u),!this.clazz)throw new r.PagingError("No statement target defined");const p=s.Model.pk(this.clazz),h=t.Metadata.get(this.clazz,t.Metadata.key(a.DBKeys.ID,p))?.type,g=o.fields&&o.fields.length?d:d.map(e=>{const t=e._id.split(c.SEPARATOR);return t.splice(0,1),this.adapter.revert(e,this.clazz,r.Sequence.parseValue(h,t.join(c.SEPARATOR)),void 0,n)});return this.bookMark=l,this._currentPage=e,g}}function g(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 f extends r.Statement{constructor(e){super(e)}build(){const e=this.log.for(this.build),t={};t[c.TABLE]={},t[c.TABLE]=s.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,s=Object.keys(t);if(1===s.length&&-1!==Object.values(l).indexOf(s[0]))switch(s[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}async paginate(e){try{const t=this.build();return new h(this.adapter,t,e,this.fromSelector)}catch(e){throw new a.InternalError(e)}}processRecord(e,t,a,s){if(e[c.ID]){const[,...t]=e[c.ID].split(c.SEPARATOR),n=t.join("_");return this.adapter.revert(e,this.fromSelector,r.Sequence.parseValue(a,n),void 0,s)}return e}async raw(e,...r){const{ctx:n}=this.logCtx(r,this.raw),o=await this.adapter.raw(e,!0,n),i=s.Model.pk(this.fromSelector),c=t.Metadata.get(this.fromSelector,t.Metadata.key(a.DBKeys.ID,i))?.type;return this.selectSelector?o:o.map(e=>this.processRecord(e,i,c,n))}parseCondition(e){const{attr1:t,operator:a,comparison:s}=e;let n={};if(-1===[r.GroupOperator.AND,r.GroupOperator.OR,r.Operator.NOT].indexOf(a))n[t]={},n[t][g(a)]=s;else if(a===r.Operator.NOT)n=this.parseCondition(t).selector,n[g(r.Operator.NOT)]={},n[g(r.Operator.NOT)][t.attr1]=s;else{const e=this.parseCondition(t).selector,r=this.parseCondition(s).selector;n=((e,t,r)=>{const a={selector:{}};return a.selector[e]=[t,r],a})(g(a),e,r).selector}return{selector:n}}}class y 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 f(this)}async Sequence(e){return new u(e,this)}async initialize(){const e=r.Adapter.models(this.flavour);return this.index(...e)}repository(){return m}assignMetadata(e,t){return t?(y.setMetadata(e,t),e):e}assignMultipleMetadata(e,t){return e.forEach((e,r)=>(y.setMetadata(e,t[r]),e)),e}createPrefix(e,t,r,...a){const{ctxArgs:n}=this.logCtx(a,this.createPrefix),o=s.Model.tableName(e),i={};return i[c.TABLE]=o,i[c.ID]=this.generateId(o,t),Object.assign(i,r),[e,t,i,...n]}createAllPrefix(e,t,r,...n){const o=s.Model.tableName(e);if(t.length!==r.length)throw new a.InternalError("Ids and models must have the same length");const{ctxArgs:i}=this.logCtx(n,this.createAllPrefix),d=t.map((e,t)=>{const a={};return a[c.TABLE]=o,a[c.ID]=this.generateId(o,e),Object.assign(a,r[t]),a});return[o,t,d,...i]}updatePrefix(e,t,n,...o){const i=s.Model.tableName(e),{ctxArgs:d}=this.logCtx(o,this.updatePrefix),l={};l[c.TABLE]=i,l[c.ID]=this.generateId(i,t);const u=n[r.PersistenceKeys.METADATA];if(!u)throw new a.InternalError("No revision number found for record with id "+t);return Object.assign(l,n),l[c.REV]=u,[i,t,l,...d]}updateAllPrefix(e,t,n,...o){const i=s.Model.tableName(e);if(t.length!==n.length)throw new a.InternalError("Ids and models must have the same length");const{ctxArgs:d}=this.logCtx(o,this.updateAllPrefix),l=t.map((e,t)=>{const s={};s[c.TABLE]=i,s[c.ID]=this.generateId(i,e);const o=n[t][r.PersistenceKeys.METADATA];if(!o)throw new a.InternalError("No revision number found for record with id "+e);return Object.assign(s,n[t]),s[c.REV]=o,s});return[i,t,l,...d]}generateId(e,t){return[e,t].join(c.SEPARATOR)}parseError(e,t){return y.parseError(e,t)}isReserved(e){return!!e.match(i)}static parseError(e,t){if(e instanceof a.BaseError)return e;let s="";if("string"==typeof e){if(s=e,s.match(/already exist|update conflict/g))return new a.ConflictError(s);if(s.match(/missing|deleted/g))return new a.NotFoundError(s)}else e.code?(s=e.code,t=t||e.message):e.statusCode?(s=e.statusCode,t=t||e.message):s=e.message;switch(s.toString()){case"401":case"412":case"409":return new a.ConflictError(t);case"404":return new a.NotFoundError(t);case"400":return s.toString().match(/No\sindex\sexists/g)?new p(e):new a.InternalError(e);default:return s.toString().match(/ECONNREFUSED/g)?new r.ConnectionError(e):new a.InternalError(e)}}static setMetadata(e,t){Object.defineProperty(e,r.PersistenceKeys.METADATA,{enumerable:!1,configurable:!0,writable:!0,value:t})}static getMetadata(e){const t=Object.getOwnPropertyDescriptor(e,r.PersistenceKeys.METADATA);return t?t.value:void 0}static removeMetadata(e){Object.getOwnPropertyDescriptor(e,r.PersistenceKeys.METADATA)&&delete e[r.PersistenceKeys.METADATA]}}n.__decorate([o.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[]),n.__metadata("design:returntype",f)],y.prototype,"Statement",null),n.__decorate([o.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object]),n.__metadata("design:returntype",Promise)],y.prototype,"Sequence",null),n.__decorate([o.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,String]),n.__metadata("design:returntype",Object)],y.prototype,"assignMetadata",null),n.__decorate([o.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Array,Array]),n.__metadata("design:returntype",Array)],y.prototype,"assignMultipleMetadata",null),n.__decorate([o.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,Object,Object,Object]),n.__metadata("design:returntype",Array)],y.prototype,"createPrefix",null),n.__decorate([o.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,Array,Array,Object]),n.__metadata("design:returntype",void 0)],y.prototype,"createAllPrefix",null),n.__decorate([o.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,Object,Object,Object]),n.__metadata("design:returntype",void 0)],y.prototype,"updatePrefix",null),n.__decorate([o.final(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,Array,Array,Object]),n.__metadata("design:returntype",void 0)],y.prototype,"updateAllPrefix",null);class m extends r.Repository{constructor(e,t){super(e,t)}assignMetadata(e,t){const r=(e,t)=>{const r=t??e,a=y.getMetadata(r);return a&&y.setMetadata(e,a),e};return Array.isArray(e)?e.map((e,a)=>{const s=Array.isArray(t)?t[a]:t;return r(e,s)}):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 r=await a.Context.args(a.OperationKeys.UPDATE,this.class,t,this.adapter,this._overrides||{}),n=!1!==r.context.get("ignoreHandlers"),o=!r.context.get("ignoreValidation"),i=e[this.pk];if(!i)throw new a.InternalError("No value for the Id is defined under the property "+this.pk);const c=await this.read(i,...r.args);if(e=s.Model.merge(c,e,this.class),n&&await a.enforceDBDecorators(this,r.context,e,a.OperationKeys.UPDATE,a.OperationKeys.ON,c),o){const t=await Promise.resolve(e.hasErrors(c,...s.Model.relations(this.class),...r.context.get("ignoredValidationProperties")||[]));if(t)throw new a.ValidationError(t.toString())}const d=y.getMetadata(c);return d&&y.setMetadata(e,d),[e,...r.args]}async updateAllPrefix(e,...t){const r=await a.Context.args(a.OperationKeys.UPDATE,this.class,t,this.adapter,this._overrides||{}),n=!1!==r.context.get("ignoreHandlers"),o=!r.context.get("ignoreValidation"),i=e.map(e=>{const t=e[this.pk];if(!t)throw new a.InternalError("missing id on update operation");return t}),c=await this.readAll(i,...r.args);if(e=e.map((e,t)=>{e=s.Model.merge(c[t],e,this.class);const r=y.getMetadata(c[t]);return r&&y.setMetadata(e,r),e}),n&&await Promise.all(e.map((e,t)=>a.enforceDBDecorators(this,r.context,e,a.OperationKeys.UPDATE,a.OperationKeys.ON,c[t]))),o){const t=r.context.get("ignoredValidationProperties")||[],s=(await Promise.all(e.map((e,r)=>Promise.resolve(e.hasErrors(c[r],e,...t))))).reduce((e,t,r)=>(t&&(e="string"==typeof e?e+`\n - ${r}: ${t.toString()}`:` - ${r}: ${t.toString()}`),e),void 0);if(s)throw new a.ValidationError(s)}return e.forEach((e,t)=>{const r=y.getMetadata(c[t]);r&&y.setMetadata(e,r)}),[e,...r.args]}}async function E(e,t,r){return e.auth(t,r)}function A(e,t,s,n,o=a.DefaultSeparator){const i=[r.PersistenceKeys.INDEX,t,e];return s&&i.push(...s),n&&i.push(n),i.join(o)}const w="##VERSION##",_="##PACKAGE##";t.Metadata.registerLibrary(_,w),e.CouchDBAdapter=y,e.CouchDBConst={NULL:"null"},e.CouchDBGroupOperator=l,e.CouchDBKeys=c,e.CouchDBOperator=d,e.CouchDBPaginator=h,e.CouchDBQueryLimit=250,e.CouchDBRepository=m,e.CouchDBSequence=u,e.CouchDBStatement=f,e.IndexError=p,e.PACKAGE_NAME=_,e.VERSION=w,e.generateIndexDoc=(e,t,r,s,n=a.DefaultSeparator)=>{const o={};let i;if(o[c.TABLE]={},o[c.TABLE][d.EQUAL]=t,s){const t={};t[e]=s;const a=(r||[]).map(e=>{const t={};return t[e]=s,t}),n={};n[c.TABLE]=s,i=[t,...a,n]}else i=[e,...r||[],c.TABLE];const l=A(e,t,r,s,n);return{index:{fields:i},ddoc:[l,c.DDOC].join(n),name:l}},e.generateIndexName=A,e.generateIndexes=e=>{const t=((e,t,r,s=a.DefaultSeparator)=>[...e.map(e=>e===c.TABLE?"table":e),...r||[],...t?[t]:[],c.INDEX].join(s))([c.TABLE]),n={};return n[t]={index:{fields:[c.TABLE]},name:t,ddoc:t,type:"json"},e.forEach(e=>{const t=s.Model.indexes(e);Object.entries(t).forEach(([t,o])=>{const i=Object.keys(o)[0];let{directions:l,compositions:u}=o[i];const p=s.Model.tableName(e);function h(e){const s=[p,t,...u,r.PersistenceKeys.INDEX].join(a.DefaultSeparator);if(n[s]={index:{fields:[t,...u,c.TABLE].reduce((t,r)=>{if(e){const a={};a[r]=e,t.push(a)}else t.push(r);return t},[])},name:s,ddoc:s,type:"json"},!e){const e={};e[c.TABLE]={},e[c.TABLE][d.EQUAL]=p,n[s].index.partial_filter_selector=e}}u=u||[],h(),l&&l.forEach(e=>h(e))})}),Object.values(n)},e.reAuth=E,e.reservedAttributes=i,e.testReservedAttributes=e=>e.match(/^_.*$/g),e.translateOperators=g,e.wrapDocumentScope=(e,t,r,a)=>{const s=e.use(t);return["insert","get","put","destroy","find"].forEach(t=>{const n=s[t];Object.defineProperty(s,t,{enumerable:!1,configurable:!0,value:async(...t)=>(await E(e,r,a),n.call(s,...t))})}),Object.defineProperty(s,c.NATIVE,{enumerable:!1,configurable:!1,writable:!1,value:e}),s}},"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/model/CouchDBSequence.ts","../src/sequences/Sequence.ts","../src/errors.ts","../src/query/Paginator.ts","../src/query/translate.ts","../src/query/Statement.ts","../src/adapter.ts","../src/utils.ts","../src/index.ts","../src/indexes/generator.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null],"names":["reservedAttributes","CouchDBKeys","SEPARATOR","ID","REV","DELETED","TABLE","SEQUENCE","DDOC","NATIVE","INDEX","CouchDBOperator","EQUAL","DIFFERENT","BIGGER","BIGGER_EQ","SMALLER","SMALLER_EQ","NOT","IN","REGEXP","CouchDBGroupOperator","AND","OR","Sequence","BaseModel","constructor","seq","super","__decorate","pk","prototype","required","index","exports","table","model","CouchDBSequence","options","adapter","this","repo","Repository","forModel","Seq","alias","current","name","startWith","sequence","read","parse","e","NotFoundError","InternalError","value","parseValue","type","increment","count","incrementBy","next","toIncrementBy","BigInt","update","id","create","range","i","push","length","IndexError","BaseError","msg","CouchDBPaginator","Paginator","total","query","size","clazz","prepare","rawStatement","Object","assign","limit","page","statement","_recordCount","_totalPages","results","raw","undefined","Math","ceil","validatePage","bookMark","PagingError","rawResult","docs","bookmark","warning","log","for","warn","Model","Metadata","get","key","DBKeys","fields","map","d","originalId","_id","split","splice","revert","join","_currentPage","translateOperators","operator","operators","el","keys","find","k","QueryError","CouchDBStatement","Statement","build","selectors","fromSelector","selector","selectSelector","whereCondition","condition","parseCondition","Condition","and","attribute","eq","selectorKeys","values","indexOf","reduce","accum","val","Error","s","entries","result","forEach","orderBySelector","sort","rec","limitSelector","offsetSelector","skip","paginate","processRecord","r","pkAttr","sequenceType","keyArgs","rawInput","attr1","comparison","op","GroupOperator","Operator","op1","op2","obj1","obj2","merge","CouchDBAdapter","Adapter","scope","flavour","createAll","updateAll","m","prefixMethod","initialize","managedModels","models","assignMetadata","rev","defineProperty","PersistenceKeys","METADATA","enumerable","configurable","writable","assignMultipleMetadata","revs","setMetadata","createPrefix","tableName","args","record","generateId","createAllPrefix","ids","records","updatePrefix","updateAllPrefix","parseError","err","reason","isReserved","attr","match","code","ConflictError","message","statusCode","toString","ConnectionError","async","reAuth","con","user","pass","auth","generateIndexName","compositions","order","separator","DefaultSeparator","final","VERSION","PACKAGE_NAME","registerLibrary","NULL","partialFilterSelector","orderProp","sortedCompositions","c","sortedTable","ddoc","direction","n","indexes","ind","directions","generate","res","tableFilter","partial_filter_selector","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/model/CouchDBSequence.ts","../src/sequences/Sequence.ts","../src/errors.ts","../src/query/Paginator.ts","../src/query/translate.ts","../src/query/Statement.ts","../src/adapter.ts","../src/repository.ts","../src/utils.ts","../src/index.ts","../src/indexes/generator.ts"],"sourcesContent":[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","CouchDBOperator","EQUAL","DIFFERENT","BIGGER","BIGGER_EQ","SMALLER","SMALLER_EQ","NOT","IN","REGEXP","CouchDBGroupOperator","AND","OR","Sequence","BaseModel","constructor","seq","super","__decorate","pk","prototype","required","index","exports","table","model","CouchDBSequence","options","adapter","this","repo","Repository","forModel","Seq","alias","current","args","ctx","Context","OperationKeys","READ","context","name","startWith","sequence","read","parse","e","NotFoundError","InternalError","increment","count","type","incrementBy","next","toIncrementBy","BigInt","update","id","create","argz","contextArgs","UPDATE","undefined","range","i","push","length","IndexError","BaseError","msg","CouchDBPaginator","Paginator","total","query","size","clazz","prepare","rawStatement","Object","assign","limit","page","statement","_recordCount","_totalPages","results","raw","Math","ceil","validatePage","bookMark","PagingError","rawResult","docs","bookmark","warning","log","for","warn","Model","Metadata","get","key","DBKeys","fields","map","d","originalId","_id","split","splice","revert","parseValue","join","_currentPage","translateOperators","operator","operators","el","keys","find","k","QueryError","CouchDBStatement","Statement","build","selectors","tableName","fromSelector","selector","selectSelector","whereCondition","condition","parseCondition","Condition","and","attribute","eq","selectorKeys","values","indexOf","reduce","accum","val","Error","s","entries","result","forEach","orderBySelector","sort","value","rec","limitSelector","offsetSelector","skip","paginate","processRecord","r","pkAttr","sequenceType","keyArgs","rawInput","logCtx","attr1","comparison","op","GroupOperator","Operator","op1","op2","obj1","obj2","merge","CouchDBAdapter","Adapter","scope","flavour","createAll","updateAll","m","prefixMethod","initialize","managedModels","models","repository","CouchDBRepository","assignMetadata","rev","setMetadata","assignMultipleMetadata","revs","createPrefix","ctxArgs","record","generateId","createAllPrefix","ids","records","updatePrefix","PersistenceKeys","METADATA","updateAllPrefix","parseError","err","reason","isReserved","attr","match","code","ConflictError","message","statusCode","toString","ConnectionError","metadata","defineProperty","enumerable","configurable","writable","getMetadata","descriptor","getOwnPropertyDescriptor","removeMetadata","final","target","source","apply","instance","carrier","metadataSource","Array","isArray","readAll","delete","deleteAll","class","_overrides","shouldRunHandlers","shouldValidate","oldModel","enforceDBDecorators","ON","errors","Promise","resolve","hasErrors","relations","ValidationError","oldMetadata","oldModels","all","ignoredProps","errorMessages","async","reAuth","con","user","pass","auth","generateIndexName","compositions","order","separator","DefaultSeparator","VERSION","PACKAGE_NAME","registerLibrary","NULL","partialFilterSelector","orderProp","sortedCompositions","c","sortedTable","ddoc","direction","n","indexes","ind","directions","generate","res","tableFilter","partial_filter_selector","dbName","db","use","original","call"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{Metadata as e}from"@decaf-ts/decoration";import{Repository as t,PersistenceKeys as r,pk as n,index as s,table as i,BaseModel as o,Sequence as a,Paginator as c,PagingError as l,QueryError as u,Statement as d,Condition as h,GroupOperator as p,Operator as f,final as g,Adapter as m,ConnectionError as y}from"@decaf-ts/core";import{DefaultSeparator as b,NotFoundError as w,InternalError as E,BaseError as A,DBKeys as O,prefixMethod as T,ConflictError as j}from"@decaf-ts/db-decorators";import{__decorate as S,__metadata as v}from"tslib";import{required as N,model as D,Model as x}from"@decaf-ts/decorator-validation";const I=/^_.*$/g,B={SEPARATOR:"__",ID:"_id",REV:"_rev",DELETED:"_deleted",TABLE:"??table",SEQUENCE:"??sequence",DDOC:"ddoc",NATIVE:"__native",INDEX:"index"},L=250,R={EQUAL:"$eq",DIFFERENT:"$ne",BIGGER:"$gt",BIGGER_EQ:"$gte",SMALLER:"$lt",SMALLER_EQ:"$lte",NOT:"$not",IN:"$in",REGEXP:"$regex"},k={AND:"$and",OR:"$or"},P={NULL:"null"};function _(e){const n=((e,t,r,n=b)=>[...e.map(e=>e===B.TABLE?"table":e),...r||[],...t?[t]:[],B.INDEX].join(n))([B.TABLE]),s={};return s[n]={index:{fields:[B.TABLE]},name:n,ddoc:n,type:"json"},e.forEach(e=>{const n=t.indexes(e);Object.entries(n).forEach(([n,i])=>{const o=Object.keys(i)[0];let{directions:a,compositions:c}=i[o];const l=t.table(e);function u(e){const t=[l,n,...c,r.INDEX].join(b);if(s[t]={index:{fields:[n,...c,B.TABLE].reduce((t,r)=>{if(e){const n={};n[r]=e,t.push(n)}else t.push(r);return t},[])},name:t,ddoc:t,type:"json"},!e){const e={};e[B.TABLE]={},e[B.TABLE].$eq=l,s[t].index.partial_filter_selector=e}}c=c||[],u(),a&&a.forEach(e=>u(e))})}),Object.values(s)}let $=class extends o{constructor(e){super(e)}};S([n(),v("design:type",String)],$.prototype,"id",void 0),S([N(),s(),v("design:type",Object)],$.prototype,"current",void 0),$=S([i(B.SEQUENCE),D(),v("design:paramtypes",[Object])],$);class C extends a{constructor(e,r){super(e),this.repo=t.forModel($,r.alias)}async current(){const{name:e,startWith:t}=this.options;try{const t=await this.repo.read(e);return this.parse(t.current)}catch(r){if(r instanceof w){if(void 0===t)throw new E("Starting value is not defined for a non existing sequence");try{return this.parse(t)}catch(e){throw new E(`Failed to parse initial value for sequence ${t}: ${e}`)}}throw new E(`Failed to retrieve current value for sequence ${e}: ${r}`)}}parse(e){return a.parseValue(this.options.type,e)}async increment(e,t){const{type:r,incrementBy:n,name:s}=this.options;let i;const o=t||n;if(o%n!==0)throw new E("Value to increment does not consider the incrementBy setting: "+n);switch(r){case"Number":i=this.parse(e)+o;break;case"BigInt":i=this.parse(e)+BigInt(o);break;default:throw new E("Should never happen")}let a;try{a=await this.repo.update(new $({id:s,current:i}))}catch(e){if(!(e instanceof w))throw e;a=await this.repo.create(new $({id:s,current:i}))}return a.current}async next(){const e=await this.current();return this.increment(e)}async range(e){const t=await this.current(),r=this.parse(this.options.incrementBy),n=await this.increment(t,this.parse(e)*r),s=[];for(let n=1;e>=n;n++)s.push(t+r*this.parse(n));if(s[s.length-1]!==n)throw new E("Miscalculation of range");return s}}class M extends A{constructor(e){super(M.name,e,404)}}class q extends c{get total(){throw new E("The total pages api is not available for couchdb")}get count(){throw new E("The record count api is not available for couchdb")}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){const r=Object.assign({},this.statement);if(!this._recordCount||!this._totalPages){this._totalPages=this._recordCount=0;const e=await this.adapter.raw({...r,limit:void 0})||[];if(this._recordCount=e.length,this._recordCount>0){const e=r?.limit||this.size;this._totalPages=Math.ceil(this._recordCount/e)}}if(this.validatePage(t),1!==t){if(!this.bookMark)throw new l("No bookmark. Did you start in the first page?");r.bookmark=this.bookMark}const n=await this.adapter.raw(r,!1),{docs:s,bookmark:i,warning:o}=n;if(o&&this.log.for(this.page).warn(o),!this.clazz)throw new l("No statement target defined");const c=x.pk(this.clazz),u=e.get(this.clazz,e.key(O.ID,c))?.type,d=r.fields&&r.fields.length?s:s.map(e=>{const t=e._id.split(B.SEPARATOR);return t.splice(0,1),this.adapter.revert(e,this.clazz,c,a.parseValue(u,t.join(B.SEPARATOR)))});return this.bookMark=i,this._currentPage=t,d}}function F(e){for(const t of[R,k]){const r=Object.keys(t).find(t=>t===e);if(r)return t[r]}throw new u("Could not find adapter translation for operator "+e)}class z extends d{constructor(e){super(e)}build(){const e=this.log.for(this.build),r={};r[B.TABLE]={},r[B.TABLE]=t.table(this.fromSelector);const n={selector:r};if(this.selectSelector&&(n.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(h.and(this.whereCondition,h.attribute(B.TABLE).eq(n.selector[B.TABLE]))).selector,r=Object.keys(t);if(1===r.length&&-1!==Object.values(k).indexOf(r[0]))switch(r[0]){case k.AND:t[k.AND]=[...Object.values(t[k.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===k.AND?e.push(...t[n]):e.push(t),e},[])],n.selector=t;break;case k.OR:{const e={};e[k.AND]=[t,...Object.entries(n.selector).map(([e,t])=>{const r={};return r[e]=t,r})],n.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach(([t,r])=>{n.selector[t]&&e.warn(`A ${t} query param is about to be overridden: ${n.selector[t]} by ${r}`),n.selector[t]=r})}if(this.orderBySelector){n.sort=n.sort||[],n.selector=n.selector||{};const[e,t]=this.orderBySelector,r={};r[e]=t,n.sort.push(r),n.selector[e]||(n.selector[e]={},n.selector[e].$gt=null)}return this.limitSelector?n.limit=this.limitSelector:(e.warn("No limit selector defined. Using default couchdb limit of 250"),n.limit=250),this.offsetSelector&&(n.skip=this.offsetSelector),n}async paginate(e){try{const t=this.build();return new q(this.adapter,t,e,this.fromSelector)}catch(e){throw new E(e)}}processRecord(e,t,r){if(e[B.ID]){const[,...n]=e[B.ID].split(B.SEPARATOR),s=n.join("_");return this.adapter.revert(e,this.fromSelector,t,a.parseValue(r,s))}return e}async raw(t){const r=await this.adapter.raw(t,!0),n=x.pk(this.fromSelector),s=e.get(this.fromSelector,e.key(O.ID,n))?.type;return this.selectSelector?r:r.map(e=>this.processRecord(e,n,s))}parseCondition(e){const{attr1:t,operator:r,comparison:n}=e;let s={};if(-1===[p.AND,p.OR,f.NOT].indexOf(r))s[t]={},s[t][F(r)]=n;else if(r===f.NOT)s=this.parseCondition(t).selector,s[F(f.NOT)]={},s[F(f.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})(F(r),e,i).selector}return{selector:s}}}class V extends m{constructor(e,t,r){super(e,t,r),[this.create,this.createAll,this.update,this.updateAll].forEach(e=>{const t=e.name;T(this,e,this[t+"Prefix"])})}Statement(){return new z(this)}async Sequence(e){return new C(e,this)}async initialize(){const e=m.models(this.flavour);return this.index(...e)}assignMetadata(e,t){return Object.defineProperty(e,r.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:t}),e}assignMultipleMetadata(e,r){return e.forEach((e,n)=>(t.setMetadata(e,r[n]),e)),e}createPrefix(e,t,r,...n){const s={};return s[B.TABLE]=e,s[B.ID]=this.generateId(e,t),Object.assign(s,r),[e,t,s]}createAllPrefix(e,t,r,...n){if(t.length!==r.length)throw new E("Ids and models must have the same length");const s=t.map((t,n)=>{const s={};return s[B.TABLE]=e,s[B.ID]=this.generateId(e,t),Object.assign(s,r[n]),s});return[e,t,s]}updatePrefix(e,t,n,...s){const i={};i[B.TABLE]=e,i[B.ID]=this.generateId(e,t);const o=n[r.METADATA];if(!o)throw new E("No revision number found for record with id "+t);return Object.assign(i,n),i[B.REV]=o,[e,t,i]}updateAllPrefix(e,t,n,...s){if(t.length!==n.length)throw new E("Ids and models must have the same length");const i=t.map((t,s)=>{const i={};i[B.TABLE]=e,i[B.ID]=this.generateId(e,t);const o=n[s][r.METADATA];if(!o)throw new E("No revision number found for record with id "+t);return Object.assign(i,n[s]),i[B.REV]=o,i});return[e,t,i]}generateId(e,t){return[e,t].join(B.SEPARATOR)}parseError(e,t){return V.parseError(e,t)}isReserved(e){return!!e.match(I)}static parseError(e,t){if(e instanceof A)return e;let r="";if("string"==typeof e){if(r=e,r.match(/already exist|update conflict/g))return new j(r);if(r.match(/missing|deleted/g))return new w(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 j(t);case"404":return new w(t);case"400":return r.toString().match(/No\sindex\sexists/g)?new M(e):new E(e);default:return r.toString().match(/ECONNREFUSED/g)?new y(e):new E(e)}}}async function G(e,t,r){return e.auth(t,r)}function U(e,t,r,n){const s=e.use(t);return["insert","get","put","destroy","find"].forEach(t=>{const i=s[t];Object.defineProperty(s,t,{enumerable:!1,configurable:!0,value:async(...t)=>(await G(e,r,n),i.call(s,...t))})}),Object.defineProperty(s,B.NATIVE,{enumerable:!1,configurable:!1,writable:!1,value:e}),s}function Q(e){return e.match(/^_.*$/g)}function X(e,t,n,s,i=b){const o=[r.INDEX,t,e];return n&&o.push(...n),s&&o.push(s),o.join(i)}function K(e,t,r,n,s=b){const i={};let o;if(i[B.TABLE]={},i[B.TABLE].$eq=t,n){const t={};t[e]=n;const s=(r||[]).map(e=>{const t={};return t[e]=n,t}),i={};i[B.TABLE]=n,o=[t,...s,i]}else o=[e,...r||[],B.TABLE];const a=X(e,t,r,n,s);return{index:{fields:o},ddoc:[a,B.DDOC].join(s),name:a}}S([g(),v("design:type",Function),v("design:paramtypes",[]),v("design:returntype",z)],V.prototype,"Statement",null),S([g(),v("design:type",Function),v("design:paramtypes",[Object]),v("design:returntype",Promise)],V.prototype,"Sequence",null),S([g(),v("design:type",Function),v("design:paramtypes",[Object,String]),v("design:returntype",Object)],V.prototype,"assignMetadata",null),S([g(),v("design:type",Function),v("design:paramtypes",[Array,Array]),v("design:returntype",Array)],V.prototype,"assignMultipleMetadata",null),S([g(),v("design:type",Function),v("design:paramtypes",[String,Object,Object,Object]),v("design:returntype",void 0)],V.prototype,"createPrefix",null),S([g(),v("design:type",Function),v("design:paramtypes",[String,Array,Array,Object]),v("design:returntype",void 0)],V.prototype,"createAllPrefix",null),S([g(),v("design:type",Function),v("design:paramtypes",[String,Object,Object,Object]),v("design:returntype",void 0)],V.prototype,"updatePrefix",null),S([g(),v("design:type",Function),v("design:paramtypes",[String,Array,Array,Object]),v("design:returntype",void 0)],V.prototype,"updateAllPrefix",null);const W="##VERSION##",H="##PACKAGE##";e.registerLibrary(H,W);export{V as CouchDBAdapter,P as CouchDBConst,k as CouchDBGroupOperator,B as CouchDBKeys,R as CouchDBOperator,q as CouchDBPaginator,L as CouchDBQueryLimit,C as CouchDBSequence,z as CouchDBStatement,M as IndexError,H as PACKAGE_NAME,$ as Sequence,W as VERSION,K as generateIndexDoc,X as generateIndexName,_ as generateIndexes,G as reAuth,I as reservedAttributes,Q as testReservedAttributes,F as translateOperators,U as wrapDocumentScope};
1
+ import{Metadata as t}from"@decaf-ts/decoration";import{PersistenceKeys as e,pk as r,index as s,table as a,BaseModel as n,Sequence as i,Repository as o,Paginator as c,PagingError as l,QueryError as d,Statement as u,Condition as h,GroupOperator as p,Operator as g,Adapter as f,ConnectionError as m}from"@decaf-ts/core";import{DefaultSeparator as y,Context as w,OperationKeys as A,NotFoundError as E,InternalError as b,BaseError as x,DBKeys as O,prefixMethod as T,ConflictError as j,enforceDBDecorators as M,ValidationError as v}from"@decaf-ts/db-decorators";import{Model as P,required as D,model as N}from"@decaf-ts/decorator-validation";import{__decorate as S,__metadata as I}from"tslib";import{final as k}from"@decaf-ts/logging";const B=/^_.*$/g,L={SEPARATOR:"__",ID:"_id",REV:"_rev",DELETED:"_deleted",TABLE:"??table",SEQUENCE:"??sequence",DDOC:"ddoc",NATIVE:"__native",INDEX:"index"},R=250,C={EQUAL:"$eq",DIFFERENT:"$ne",BIGGER:"$gt",BIGGER_EQ:"$gte",SMALLER:"$lt",SMALLER_EQ:"$lte",NOT:"$not",IN:"$in",REGEXP:"$regex"},$={AND:"$and",OR:"$or"},_={NULL:"null"};function q(t){const r=((t,e,r,s=y)=>[...t.map(t=>t===L.TABLE?"table":t),...r||[],...e?[e]:[],L.INDEX].join(s))([L.TABLE]),s={};return s[r]={index:{fields:[L.TABLE]},name:r,ddoc:r,type:"json"},t.forEach(t=>{const r=P.indexes(t);Object.entries(r).forEach(([r,a])=>{const n=Object.keys(a)[0];let{directions:i,compositions:o}=a[n];const c=P.tableName(t);function l(t){const a=[c,r,...o,e.INDEX].join(y);if(s[a]={index:{fields:[r,...o,L.TABLE].reduce((e,r)=>{if(t){const s={};s[r]=t,e.push(s)}else e.push(r);return e},[])},name:a,ddoc:a,type:"json"},!t){const t={};t[L.TABLE]={},t[L.TABLE].$eq=c,s[a].index.partial_filter_selector=t}}o=o||[],l(),i&&i.forEach(t=>l(t))})}),Object.values(s)}let F=class extends n{constructor(t){super(t)}};S([r(),I("design:type",String)],F.prototype,"id",void 0),S([D(),s(),I("design:type",Object)],F.prototype,"current",void 0),F=S([a(L.SEQUENCE),N(),I("design:paramtypes",[Object])],F);class V extends i{constructor(t,e){super(t,e),this.repo=o.forModel(F,e.alias)}async current(...t){const e=(await w.args(A.READ,F,t,this.adapter)).context,{name:r,startWith:s}=this.options;try{const t=await this.repo.read(r,e);return this.parse(t.current)}catch(t){if(t instanceof E){if(void 0===s)throw new b("Starting value is not defined for a non existing sequence");try{return this.parse(s)}catch(t){throw new b(`Failed to parse initial value for sequence ${s}: ${t}`)}}throw new b(`Failed to retrieve current value for sequence ${r}: ${t}`)}}async increment(t,e,r){const{type:s,incrementBy:a,name:n}=this.options;let i;const o=e||a;if(o%a!==0)throw new b("Value to increment does not consider the incrementBy setting: "+a);switch(s){case"Number":i=this.parse(t)+o;break;case"BigInt":i=this.parse(t)+BigInt(o);break;default:throw new b("Should never happen")}let c;try{c=await this.repo.update(new F({id:n,current:i}),r)}catch(t){if(!(t instanceof E))throw t;c=await this.repo.create(new F({id:n,current:i}),r)}return c.current}async next(...t){const e=await w.args(A.UPDATE,F,t,this.adapter),{context:r,args:s}=e,a=await this.current(...s);return this.increment(a,void 0,r)}async range(t,...e){const r=await w.args(A.UPDATE,F,e,this.adapter),{context:s,args:a}=r,n=await this.current(...a),i=this.parse(this.options.incrementBy),o=await this.increment(n,this.parse(t)*i,s),c=[];for(let e=1;t>=e;e++)c.push(n+i*this.parse(e));if(c[c.length-1]!==o&&"String"!==this.options.type)throw new b("Miscalculation of range");return c}}class U extends x{constructor(t){super(U.name,t,404)}}class z extends c{get total(){throw new b("The total pages api is not available for couchdb")}get count(){throw new b("The record count api is not available for couchdb")}constructor(t,e,r,s){super(t,e,r,s)}prepare(t){const e=Object.assign({},t);return e.limit&&(this.limit=e.limit),e.limit=this.size,e}async page(e=1){const{ctx:r}=this.adapter.logCtx([e],this.page),s=Object.assign({},this.statement);if(!this._recordCount||!this._totalPages){this._totalPages=this._recordCount=0;const t=await this.adapter.raw({...s,limit:void 0},!0,r)||[];if(this._recordCount=t.length,this._recordCount>0){const t=s?.limit||this.size;this._totalPages=Math.ceil(this._recordCount/t)}}if(this.validatePage(e),1!==e){if(!this.bookMark)throw new l("No bookmark. Did you start in the first page?");s.bookmark=this.bookMark}const a=await this.adapter.raw(s,!1,r),{docs:n,bookmark:o,warning:c}=a;if(c&&this.log.for(this.page).warn(c),!this.clazz)throw new l("No statement target defined");const d=P.pk(this.clazz),u=t.get(this.clazz,t.key(O.ID,d))?.type,h=s.fields&&s.fields.length?n:n.map(t=>{const e=t._id.split(L.SEPARATOR);return e.splice(0,1),this.adapter.revert(t,this.clazz,i.parseValue(u,e.join(L.SEPARATOR)),void 0,r)});return this.bookMark=o,this._currentPage=e,h}}function G(t){for(const e of[C,$]){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 Q extends u{constructor(t){super(t)}build(){const t=this.log.for(this.build),e={};e[L.TABLE]={},e[L.TABLE]=P.tableName(this.fromSelector);const r={selector:e};if(this.selectSelector&&(r.fields=this.selectSelector),this.whereCondition){const e=this.parseCondition(h.and(this.whereCondition,h.attribute(L.TABLE).eq(r.selector[L.TABLE]))).selector,s=Object.keys(e);if(1===s.length&&-1!==Object.values($).indexOf(s[0]))switch(s[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 s=r[0];return s===$.AND?t.push(...e[s]):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,s])=>{r.selector[e]&&t.warn(`A ${e} query param is about to be overridden: ${r.selector[e]} by ${s}`),r.selector[e]=s})}if(this.orderBySelector){r.sort=r.sort||[],r.selector=r.selector||{};const[t,e]=this.orderBySelector,s={};s[t]=e,r.sort.push(s),r.selector[t]||(r.selector[t]={},r.selector[t].$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}async paginate(t){try{const e=this.build();return new z(this.adapter,e,t,this.fromSelector)}catch(t){throw new b(t)}}processRecord(t,e,r,s){if(t[L.ID]){const[,...e]=t[L.ID].split(L.SEPARATOR),a=e.join("_");return this.adapter.revert(t,this.fromSelector,i.parseValue(r,a),void 0,s)}return t}async raw(e,...r){const{ctx:s}=this.logCtx(r,this.raw),a=await this.adapter.raw(e,!0,s),n=P.pk(this.fromSelector),i=t.get(this.fromSelector,t.key(O.ID,n))?.type;return this.selectSelector?a:a.map(t=>this.processRecord(t,n,i,s))}parseCondition(t){const{attr1:e,operator:r,comparison:s}=t;let a={};if(-1===[p.AND,p.OR,g.NOT].indexOf(r))a[e]={},a[e][G(r)]=s;else if(r===g.NOT)a=this.parseCondition(e).selector,a[G(g.NOT)]={},a[G(g.NOT)][e.attr1]=s;else{const t=this.parseCondition(e).selector,n=this.parseCondition(s).selector;a=((t,e,r)=>{const s={selector:{}};return s.selector[t]=[e,r],s})(G(r),t,n).selector}return{selector:a}}}class X extends f{constructor(t,e,r){super(t,e,r),[this.create,this.createAll,this.update,this.updateAll].forEach(t=>{const e=t.name;T(this,t,this[e+"Prefix"])})}Statement(){return new Q(this)}async Sequence(t){return new V(t,this)}async initialize(){const t=f.models(this.flavour);return this.index(...t)}repository(){return H}assignMetadata(t,e){return e?(X.setMetadata(t,e),t):t}assignMultipleMetadata(t,e){return t.forEach((t,r)=>(X.setMetadata(t,e[r]),t)),t}createPrefix(t,e,r,...s){const{ctxArgs:a}=this.logCtx(s,this.createPrefix),n=P.tableName(t),i={};return i[L.TABLE]=n,i[L.ID]=this.generateId(n,e),Object.assign(i,r),[t,e,i,...a]}createAllPrefix(t,e,r,...s){const a=P.tableName(t);if(e.length!==r.length)throw new b("Ids and models must have the same length");const{ctxArgs:n}=this.logCtx(s,this.createAllPrefix),i=e.map((t,e)=>{const s={};return s[L.TABLE]=a,s[L.ID]=this.generateId(a,t),Object.assign(s,r[e]),s});return[a,e,i,...n]}updatePrefix(t,r,s,...a){const n=P.tableName(t),{ctxArgs:i}=this.logCtx(a,this.updatePrefix),o={};o[L.TABLE]=n,o[L.ID]=this.generateId(n,r);const c=s[e.METADATA];if(!c)throw new b("No revision number found for record with id "+r);return Object.assign(o,s),o[L.REV]=c,[n,r,o,...i]}updateAllPrefix(t,r,s,...a){const n=P.tableName(t);if(r.length!==s.length)throw new b("Ids and models must have the same length");const{ctxArgs:i}=this.logCtx(a,this.updateAllPrefix),o=r.map((t,r)=>{const a={};a[L.TABLE]=n,a[L.ID]=this.generateId(n,t);const i=s[r][e.METADATA];if(!i)throw new b("No revision number found for record with id "+t);return Object.assign(a,s[r]),a[L.REV]=i,a});return[n,r,o,...i]}generateId(t,e){return[t,e].join(L.SEPARATOR)}parseError(t,e){return X.parseError(t,e)}isReserved(t){return!!t.match(B)}static parseError(t,e){if(t instanceof x)return t;let r="";if("string"==typeof t){if(r=t,r.match(/already exist|update conflict/g))return new j(r);if(r.match(/missing|deleted/g))return new E(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 j(e);case"404":return new E(e);case"400":return r.toString().match(/No\sindex\sexists/g)?new U(t):new b(t);default:return r.toString().match(/ECONNREFUSED/g)?new m(t):new b(t)}}static setMetadata(t,r){Object.defineProperty(t,e.METADATA,{enumerable:!1,configurable:!0,writable:!0,value:r})}static getMetadata(t){const r=Object.getOwnPropertyDescriptor(t,e.METADATA);return r?r.value:void 0}static removeMetadata(t){Object.getOwnPropertyDescriptor(t,e.METADATA)&&delete t[e.METADATA]}}S([k(),I("design:type",Function),I("design:paramtypes",[]),I("design:returntype",Q)],X.prototype,"Statement",null),S([k(),I("design:type",Function),I("design:paramtypes",[Object]),I("design:returntype",Promise)],X.prototype,"Sequence",null),S([k(),I("design:type",Function),I("design:paramtypes",[Object,String]),I("design:returntype",Object)],X.prototype,"assignMetadata",null),S([k(),I("design:type",Function),I("design:paramtypes",[Array,Array]),I("design:returntype",Array)],X.prototype,"assignMultipleMetadata",null),S([k(),I("design:type",Function),I("design:paramtypes",[Object,Object,Object,Object]),I("design:returntype",Array)],X.prototype,"createPrefix",null),S([k(),I("design:type",Function),I("design:paramtypes",[Object,Array,Array,Object]),I("design:returntype",void 0)],X.prototype,"createAllPrefix",null),S([k(),I("design:type",Function),I("design:paramtypes",[Object,Object,Object,Object]),I("design:returntype",void 0)],X.prototype,"updatePrefix",null),S([k(),I("design:type",Function),I("design:paramtypes",[Object,Array,Array,Object]),I("design:returntype",void 0)],X.prototype,"updateAllPrefix",null);class H extends o{constructor(t,e){super(t,e)}assignMetadata(t,e){const r=(t,e)=>{const r=e??t,s=X.getMetadata(r);return s&&X.setMetadata(t,s),t};return Array.isArray(t)?t.map((t,s)=>{const a=Array.isArray(e)?e[s]:e;return r(t,a)}):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 r=await w.args(A.UPDATE,this.class,e,this.adapter,this._overrides||{}),s=!1!==r.context.get("ignoreHandlers"),a=!r.context.get("ignoreValidation"),n=t[this.pk];if(!n)throw new b("No value for the Id is defined under the property "+this.pk);const i=await this.read(n,...r.args);if(t=P.merge(i,t,this.class),s&&await M(this,r.context,t,A.UPDATE,A.ON,i),a){const e=await Promise.resolve(t.hasErrors(i,...P.relations(this.class),...r.context.get("ignoredValidationProperties")||[]));if(e)throw new v(e.toString())}const o=X.getMetadata(i);return o&&X.setMetadata(t,o),[t,...r.args]}async updateAllPrefix(t,...e){const r=await w.args(A.UPDATE,this.class,e,this.adapter,this._overrides||{}),s=!1!==r.context.get("ignoreHandlers"),a=!r.context.get("ignoreValidation"),n=t.map(t=>{const e=t[this.pk];if(!e)throw new b("missing id on update operation");return e}),i=await this.readAll(n,...r.args);if(t=t.map((t,e)=>{t=P.merge(i[e],t,this.class);const r=X.getMetadata(i[e]);return r&&X.setMetadata(t,r),t}),s&&await Promise.all(t.map((t,e)=>M(this,r.context,t,A.UPDATE,A.ON,i[e]))),a){const e=r.context.get("ignoredValidationProperties")||[],s=(await Promise.all(t.map((t,r)=>Promise.resolve(t.hasErrors(i[r],t,...e))))).reduce((t,e,r)=>(e&&(t="string"==typeof t?t+`\n - ${r}: ${e.toString()}`:` - ${r}: ${e.toString()}`),t),void 0);if(s)throw new v(s)}return t.forEach((t,e)=>{const r=X.getMetadata(i[e]);r&&X.setMetadata(t,r)}),[t,...r.args]}}async function K(t,e,r){return t.auth(e,r)}function W(t,e,r,s){const a=t.use(e);return["insert","get","put","destroy","find"].forEach(e=>{const n=a[e];Object.defineProperty(a,e,{enumerable:!1,configurable:!0,value:async(...e)=>(await K(t,r,s),n.call(a,...e))})}),Object.defineProperty(a,L.NATIVE,{enumerable:!1,configurable:!1,writable:!1,value:t}),a}function J(t){return t.match(/^_.*$/g)}function Y(t,r,s,a,n=y){const i=[e.INDEX,r,t];return s&&i.push(...s),a&&i.push(a),i.join(n)}function Z(t,e,r,s,a=y){const n={};let i;if(n[L.TABLE]={},n[L.TABLE].$eq=e,s){const e={};e[t]=s;const a=(r||[]).map(t=>{const e={};return e[t]=s,e}),n={};n[L.TABLE]=s,i=[e,...a,n]}else i=[t,...r||[],L.TABLE];const o=Y(t,e,r,s,a);return{index:{fields:i},ddoc:[o,L.DDOC].join(a),name:o}}const tt="##VERSION##",et="##PACKAGE##";t.registerLibrary(et,tt);export{X as CouchDBAdapter,_ as CouchDBConst,$ as CouchDBGroupOperator,L as CouchDBKeys,C as CouchDBOperator,z as CouchDBPaginator,R as CouchDBQueryLimit,H as CouchDBRepository,V as CouchDBSequence,Q as CouchDBStatement,U as IndexError,et as PACKAGE_NAME,F as Sequence,tt as VERSION,Z as generateIndexDoc,Y as generateIndexName,q as generateIndexes,K as reAuth,B as reservedAttributes,J as testReservedAttributes,G as translateOperators,W 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/indexes/generator.ts","../src/model/CouchDBSequence.ts","../src/sequences/Sequence.ts","../src/errors.ts","../src/query/Paginator.ts","../src/query/translate.ts","../src/query/Statement.ts","../src/adapter.ts","../src/utils.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null],"names":["reservedAttributes","CouchDBKeys","SEPARATOR","ID","REV","DELETED","TABLE","SEQUENCE","DDOC","NATIVE","INDEX","CouchDBQueryLimit","CouchDBOperator","EQUAL","DIFFERENT","BIGGER","BIGGER_EQ","SMALLER","SMALLER_EQ","NOT","IN","REGEXP","CouchDBGroupOperator","AND","OR","CouchDBConst","NULL","generateIndexes","models","tableName","name","direction","compositions","separator","DefaultSeparator","map","n","join","generateIndexName","indexes","index","fields","ddoc","type","forEach","m","ind","Repository","Object","entries","key","value","k","keys","directions","table","generate","sort","PersistenceKeys","reduce","accum","el","res","push","tableFilter","partial_filter_selector","d","values","Sequence","BaseModel","constructor","seq","super","__decorate","pk","prototype","required","model","CouchDBSequence","options","adapter","this","repo","forModel","Seq","alias","current","startWith","sequence","read","parse","e","NotFoundError","InternalError","parseValue","increment","count","incrementBy","next","toIncrementBy","BigInt","update","id","create","range","i","length","IndexError","BaseError","msg","CouchDBPaginator","Paginator","total","query","size","clazz","prepare","rawStatement","assign","limit","page","statement","_recordCount","_totalPages","results","raw","undefined","Math","ceil","validatePage","bookMark","PagingError","rawResult","docs","bookmark","warning","log","for","warn","Model","Metadata","get","DBKeys","originalId","_id","split","splice","revert","_currentPage","translateOperators","operator","operators","find","QueryError","CouchDBStatement","Statement","build","selectors","fromSelector","selector","selectSelector","whereCondition","condition","parseCondition","Condition","and","attribute","eq","selectorKeys","indexOf","val","Error","s","result","orderBySelector","rec","limitSelector","offsetSelector","skip","paginate","processRecord","r","pkAttr","sequenceType","keyArgs","rawInput","attr1","comparison","op","GroupOperator","Operator","op1","op2","obj1","obj2","merge","CouchDBAdapter","Adapter","scope","flavour","createAll","updateAll","prefixMethod","initialize","managedModels","assignMetadata","rev","defineProperty","METADATA","enumerable","configurable","writable","assignMultipleMetadata","revs","setMetadata","createPrefix","args","record","generateId","createAllPrefix","ids","records","updatePrefix","updateAllPrefix","parseError","err","reason","isReserved","attr","match","code","ConflictError","message","statusCode","toString","ConnectionError","async","reAuth","con","user","pass","auth","wrapDocumentScope","dbName","db","use","original","call","testReservedAttributes","order","generateIndexDoc","partialFilterSelector","orderProp","sortedCompositions","c","sortedTable","final","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/indexes/generator.ts","../src/model/CouchDBSequence.ts","../src/sequences/Sequence.ts","../src/errors.ts","../src/query/Paginator.ts","../src/query/translate.ts","../src/query/Statement.ts","../src/adapter.ts","../src/repository.ts","../src/utils.ts","../src/index.ts"],"sourcesContent":[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","CouchDBQueryLimit","CouchDBOperator","EQUAL","DIFFERENT","BIGGER","BIGGER_EQ","SMALLER","SMALLER_EQ","NOT","IN","REGEXP","CouchDBGroupOperator","AND","OR","CouchDBConst","NULL","generateIndexes","models","tableName","name","direction","compositions","separator","DefaultSeparator","map","n","join","generateIndexName","indexes","index","fields","ddoc","type","forEach","m","ind","Model","Object","entries","key","value","k","keys","directions","generate","sort","PersistenceKeys","reduce","accum","el","res","push","tableFilter","partial_filter_selector","d","values","Sequence","BaseModel","constructor","seq","super","__decorate","pk","prototype","required","table","model","CouchDBSequence","options","adapter","this","repo","Repository","forModel","Seq","alias","current","args","ctx","Context","OperationKeys","READ","context","startWith","sequence","read","parse","e","NotFoundError","InternalError","increment","count","incrementBy","next","toIncrementBy","BigInt","update","id","create","argz","contextArgs","UPDATE","undefined","range","i","length","IndexError","BaseError","msg","CouchDBPaginator","Paginator","total","query","size","clazz","prepare","rawStatement","assign","limit","page","statement","_recordCount","_totalPages","results","raw","Math","ceil","validatePage","bookMark","PagingError","rawResult","docs","bookmark","warning","log","for","warn","Metadata","get","DBKeys","originalId","_id","split","splice","revert","parseValue","_currentPage","translateOperators","operator","operators","find","QueryError","CouchDBStatement","Statement","build","selectors","fromSelector","selector","selectSelector","whereCondition","condition","parseCondition","Condition","and","attribute","eq","selectorKeys","indexOf","val","Error","s","result","orderBySelector","rec","limitSelector","offsetSelector","skip","paginate","processRecord","r","pkAttr","sequenceType","keyArgs","rawInput","logCtx","attr1","comparison","op","GroupOperator","Operator","op1","op2","obj1","obj2","merge","CouchDBAdapter","Adapter","scope","flavour","createAll","updateAll","prefixMethod","initialize","managedModels","repository","CouchDBRepository","assignMetadata","rev","setMetadata","assignMultipleMetadata","revs","createPrefix","ctxArgs","record","generateId","createAllPrefix","ids","records","updatePrefix","METADATA","updateAllPrefix","parseError","err","reason","isReserved","attr","match","code","ConflictError","message","statusCode","toString","ConnectionError","metadata","defineProperty","enumerable","configurable","writable","getMetadata","descriptor","getOwnPropertyDescriptor","removeMetadata","final","target","source","apply","instance","carrier","metadataSource","Array","isArray","readAll","delete","deleteAll","class","_overrides","shouldRunHandlers","shouldValidate","oldModel","enforceDBDecorators","ON","errors","Promise","resolve","hasErrors","relations","ValidationError","oldMetadata","oldModels","all","ignoredProps","errorMessages","async","reAuth","con","user","pass","auth","wrapDocumentScope","dbName","db","use","original","call","testReservedAttributes","order","generateIndexDoc","partialFilterSelector","orderProp","sortedCompositions","c","sortedTable","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
package/lib/adapter.cjs CHANGED
@@ -14,9 +14,11 @@ const core_1 = require("@decaf-ts/core");
14
14
  const constants_1 = require("./constants.cjs");
15
15
  const db_decorators_1 = require("@decaf-ts/db-decorators");
16
16
  const Sequence_1 = require("./sequences/Sequence.cjs");
17
+ const decorator_validation_1 = require("@decaf-ts/decorator-validation");
17
18
  const errors_1 = require("./errors.cjs");
18
19
  const query_1 = require("./query/index.cjs");
19
- const core_2 = require("@decaf-ts/core");
20
+ const logging_1 = require("@decaf-ts/logging");
21
+ const repository_1 = require("./repository.cjs");
20
22
  /**
21
23
  * @description Abstract adapter for CouchDB database operations
22
24
  * @summary Provides a base implementation for CouchDB database operations, including CRUD operations, sequence management, and error handling
@@ -95,6 +97,9 @@ class CouchDBAdapter extends core_1.Adapter {
95
97
  const managedModels = core_1.Adapter.models(this.flavour);
96
98
  return this.index(...managedModels);
97
99
  }
100
+ repository() {
101
+ return repository_1.CouchDBRepository;
102
+ }
98
103
  /**
99
104
  * @description Assigns metadata to a model
100
105
  * @summary Adds revision metadata to a model as a non-enumerable property
@@ -103,12 +108,9 @@ class CouchDBAdapter extends core_1.Adapter {
103
108
  * @return {Record<string, any>} The model with metadata assigned
104
109
  */
105
110
  assignMetadata(model, rev) {
106
- Object.defineProperty(model, core_1.PersistenceKeys.METADATA, {
107
- enumerable: false,
108
- configurable: false,
109
- writable: false,
110
- value: rev,
111
- });
111
+ if (!rev)
112
+ return model;
113
+ CouchDBAdapter.setMetadata(model, rev);
112
114
  return model;
113
115
  }
114
116
  /**
@@ -120,7 +122,7 @@ class CouchDBAdapter extends core_1.Adapter {
120
122
  */
121
123
  assignMultipleMetadata(models, revs) {
122
124
  models.forEach((m, i) => {
123
- core_1.Repository.setMetadata(m, revs[i]);
125
+ CouchDBAdapter.setMetadata(m, revs[i]);
124
126
  return m;
125
127
  });
126
128
  return models;
@@ -133,14 +135,14 @@ class CouchDBAdapter extends core_1.Adapter {
133
135
  * @param {Record<string, any>} model - The model to prepare
134
136
  * @return A tuple containing the tableName, id, and prepared record
135
137
  */
136
- createPrefix(tableName, id, model,
137
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
138
- ...args) {
138
+ createPrefix(clazz, id, model, ...args) {
139
+ const { ctxArgs } = this.logCtx(args, this.createPrefix);
140
+ const tableName = decorator_validation_1.Model.tableName(clazz);
139
141
  const record = {};
140
142
  record[constants_1.CouchDBKeys.TABLE] = tableName;
141
143
  record[constants_1.CouchDBKeys.ID] = this.generateId(tableName, id);
142
144
  Object.assign(record, model);
143
- return [tableName, id, record];
145
+ return [clazz, id, record, ...ctxArgs];
144
146
  }
145
147
  /**
146
148
  * @description Prepares multiple records for creation
@@ -151,11 +153,11 @@ class CouchDBAdapter extends core_1.Adapter {
151
153
  * @return A tuple containing the tableName, ids, and prepared records
152
154
  * @throws {InternalError} If ids and models arrays have different lengths
153
155
  */
154
- createAllPrefix(tableName, ids, models,
155
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
156
- ...args) {
156
+ createAllPrefix(clazz, ids, models, ...args) {
157
+ const tableName = decorator_validation_1.Model.tableName(clazz);
157
158
  if (ids.length !== models.length)
158
159
  throw new db_decorators_1.InternalError("Ids and models must have the same length");
160
+ const { ctxArgs } = this.logCtx(args, this.createAllPrefix);
159
161
  const records = ids.map((id, count) => {
160
162
  const record = {};
161
163
  record[constants_1.CouchDBKeys.TABLE] = tableName;
@@ -163,7 +165,7 @@ class CouchDBAdapter extends core_1.Adapter {
163
165
  Object.assign(record, models[count]);
164
166
  return record;
165
167
  });
166
- return [tableName, ids, records];
168
+ return [tableName, ids, records, ...ctxArgs];
167
169
  }
168
170
  /**
169
171
  * @description Prepares a record for update
@@ -175,9 +177,9 @@ class CouchDBAdapter extends core_1.Adapter {
175
177
  * @return A tuple containing the tableName, id, and prepared record
176
178
  * @throws {InternalError} If no revision number is found in the model
177
179
  */
178
- updatePrefix(tableName, id, model,
179
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
180
- ...args) {
180
+ updatePrefix(clazz, id, model, ...args) {
181
+ const tableName = decorator_validation_1.Model.tableName(clazz);
182
+ const { ctxArgs } = this.logCtx(args, this.updatePrefix);
181
183
  const record = {};
182
184
  record[constants_1.CouchDBKeys.TABLE] = tableName;
183
185
  record[constants_1.CouchDBKeys.ID] = this.generateId(tableName, id);
@@ -186,7 +188,7 @@ class CouchDBAdapter extends core_1.Adapter {
186
188
  throw new db_decorators_1.InternalError(`No revision number found for record with id ${id}`);
187
189
  Object.assign(record, model);
188
190
  record[constants_1.CouchDBKeys.REV] = rev;
189
- return [tableName, id, record];
191
+ return [tableName, id, record, ...ctxArgs];
190
192
  }
191
193
  /**
192
194
  * @description Prepares multiple records for update
@@ -197,11 +199,11 @@ class CouchDBAdapter extends core_1.Adapter {
197
199
  * @return A tuple containing the tableName, ids, and prepared records
198
200
  * @throws {InternalError} If ids and models arrays have different lengths or if no revision number is found in a model
199
201
  */
200
- updateAllPrefix(tableName, ids, models,
201
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
202
- ...args) {
202
+ updateAllPrefix(clazz, ids, models, ...args) {
203
+ const tableName = decorator_validation_1.Model.tableName(clazz);
203
204
  if (ids.length !== models.length)
204
205
  throw new db_decorators_1.InternalError("Ids and models must have the same length");
206
+ const { ctxArgs } = this.logCtx(args, this.updateAllPrefix);
205
207
  const records = ids.map((id, count) => {
206
208
  const record = {};
207
209
  record[constants_1.CouchDBKeys.TABLE] = tableName;
@@ -213,7 +215,7 @@ class CouchDBAdapter extends core_1.Adapter {
213
215
  record[constants_1.CouchDBKeys.REV] = rev;
214
216
  return record;
215
217
  });
216
- return [tableName, ids, records];
218
+ return [tableName, ids, records, ...ctxArgs];
217
219
  }
218
220
  /**
219
221
  * @description Generates a CouchDB document ID
@@ -339,54 +341,92 @@ class CouchDBAdapter extends core_1.Adapter {
339
341
  return new db_decorators_1.InternalError(err);
340
342
  }
341
343
  }
344
+ // TODO why do we need this?
345
+ /**
346
+ * @description Sets metadata on a model instance.
347
+ * @summary Attaches metadata to a model instance using a non-enumerable property.
348
+ * @template M - The model type that extends Model.
349
+ * @param {M} model - The model instance.
350
+ * @param {any} metadata - The metadata to attach to the model.
351
+ */
352
+ static setMetadata(model, metadata) {
353
+ Object.defineProperty(model, core_1.PersistenceKeys.METADATA, {
354
+ enumerable: false,
355
+ configurable: true,
356
+ writable: true,
357
+ value: metadata,
358
+ });
359
+ }
360
+ /**
361
+ * @description Gets metadata from a model instance.
362
+ * @summary Retrieves previously attached metadata from a model instance.
363
+ * @template M - The model type that extends Model.
364
+ * @param {M} model - The model instance.
365
+ * @return {any} The metadata or undefined if not found.
366
+ */
367
+ static getMetadata(model) {
368
+ const descriptor = Object.getOwnPropertyDescriptor(model, core_1.PersistenceKeys.METADATA);
369
+ return descriptor ? descriptor.value : undefined;
370
+ }
371
+ /**
372
+ * @description Removes metadata from a model instance.
373
+ * @summary Deletes the metadata property from a model instance.
374
+ * @template M - The model type that extends Model.
375
+ * @param {M} model - The model instance.
376
+ */
377
+ static removeMetadata(model) {
378
+ const descriptor = Object.getOwnPropertyDescriptor(model, core_1.PersistenceKeys.METADATA);
379
+ if (descriptor)
380
+ delete model[core_1.PersistenceKeys.METADATA];
381
+ }
342
382
  }
343
383
  exports.CouchDBAdapter = CouchDBAdapter;
344
384
  __decorate([
345
- (0, core_2.final)(),
385
+ (0, logging_1.final)(),
346
386
  __metadata("design:type", Function),
347
387
  __metadata("design:paramtypes", []),
348
388
  __metadata("design:returntype", query_1.CouchDBStatement)
349
389
  ], CouchDBAdapter.prototype, "Statement", null);
350
390
  __decorate([
351
- (0, core_2.final)(),
391
+ (0, logging_1.final)(),
352
392
  __metadata("design:type", Function),
353
393
  __metadata("design:paramtypes", [Object]),
354
394
  __metadata("design:returntype", Promise)
355
395
  ], CouchDBAdapter.prototype, "Sequence", null);
356
396
  __decorate([
357
- (0, core_2.final)(),
397
+ (0, logging_1.final)(),
358
398
  __metadata("design:type", Function),
359
399
  __metadata("design:paramtypes", [Object, String]),
360
400
  __metadata("design:returntype", Object)
361
401
  ], CouchDBAdapter.prototype, "assignMetadata", null);
362
402
  __decorate([
363
- (0, core_2.final)(),
403
+ (0, logging_1.final)(),
364
404
  __metadata("design:type", Function),
365
405
  __metadata("design:paramtypes", [Array, Array]),
366
406
  __metadata("design:returntype", Array)
367
407
  ], CouchDBAdapter.prototype, "assignMultipleMetadata", null);
368
408
  __decorate([
369
- (0, core_2.final)(),
409
+ (0, logging_1.final)(),
370
410
  __metadata("design:type", Function),
371
- __metadata("design:paramtypes", [String, Object, Object, Object]),
372
- __metadata("design:returntype", void 0)
411
+ __metadata("design:paramtypes", [Object, Object, Object, Object]),
412
+ __metadata("design:returntype", Array)
373
413
  ], CouchDBAdapter.prototype, "createPrefix", null);
374
414
  __decorate([
375
- (0, core_2.final)(),
415
+ (0, logging_1.final)(),
376
416
  __metadata("design:type", Function),
377
- __metadata("design:paramtypes", [String, Array, Array, Object]),
417
+ __metadata("design:paramtypes", [Object, Array, Array, Object]),
378
418
  __metadata("design:returntype", void 0)
379
419
  ], CouchDBAdapter.prototype, "createAllPrefix", null);
380
420
  __decorate([
381
- (0, core_2.final)(),
421
+ (0, logging_1.final)(),
382
422
  __metadata("design:type", Function),
383
- __metadata("design:paramtypes", [String, Object, Object, Object]),
423
+ __metadata("design:paramtypes", [Object, Object, Object, Object]),
384
424
  __metadata("design:returntype", void 0)
385
425
  ], CouchDBAdapter.prototype, "updatePrefix", null);
386
426
  __decorate([
387
- (0, core_2.final)(),
427
+ (0, logging_1.final)(),
388
428
  __metadata("design:type", Function),
389
- __metadata("design:paramtypes", [String, Array, Array, Object]),
429
+ __metadata("design:paramtypes", [Object, Array, Array, Object]),
390
430
  __metadata("design:returntype", void 0)
391
431
  ], CouchDBAdapter.prototype, "updateAllPrefix", null);
392
432
  //# sourceMappingURL=adapter.js.map