couchdb-web-node-plugin 1.0.814 → 1.0.816

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.
package/helper.d.ts CHANGED
@@ -98,19 +98,24 @@ export declare const isPropertySpecification: (value: ValueOf<Model>) => value i
98
98
  export declare const determineGenericIndexablePropertyNames: (modelConfiguration: ModelConfiguration, model: Model) => Array<string>;
99
99
  /**
100
100
  * Extend given model with all specified one.
101
- * @param modelName - Name of model to extend.
102
- * @param models - Pool of models to extend from.
103
- * @param extendPropertyName - Property name which indicates model
104
- * inheritance.
101
+ * @param model - Model to extend.
102
+ * @param modelConfiguration - Model specification object.
105
103
  * @returns Given model in extended version.
106
104
  */
107
- export declare const extendModel: (modelName: string, models: Mapping<Partial<Model>>, extendPropertyName?: SpecialPropertyNames["extend"]) => Partial<Model>;
105
+ export declare const applyModelInheritance: (model: Model, modelConfiguration: ModelConfiguration) => Partial<Model>;
106
+ /**
107
+ * Apply default property definitions to given model.
108
+ * @param model - Model to extends its properties.
109
+ * @param modelConfiguration - Model configuration to take into account.
110
+ * @returns Extended model.
111
+ */
112
+ export declare const applyDefaultPropertyConfigurations: (model: Model, modelConfiguration: ModelConfiguration) => Model;
108
113
  /**
109
114
  * Extend default specification with specific one.
110
115
  * @param modelConfiguration - Model specification object.
111
116
  * @returns Models with extended specific specifications.
112
117
  */
113
- export declare const extendModels: (modelConfiguration: ModelConfiguration) => Models;
118
+ export declare const applyModelsInheritance: (modelConfiguration: ModelConfiguration) => Models;
114
119
  /**
115
120
  * Convert given roles to its normalized representation.
116
121
  * @param roles - Unstructured role's description.
package/helper.js CHANGED
@@ -1 +1 @@
1
- (()=>{"use strict";var e=[,e=>{e.exports=require("@babel/runtime/helpers/extends")},e=>{e.exports=require("@babel/runtime/helpers/asyncToGenerator")},e=>{e.exports=require("@babel/runtime/regenerator")},e=>{e.exports=require("clientnode")}],t={};function r(n){var a=t[n];if(void 0!==a)return a.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,r),o.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};r.r(n),r.d(n,{TOGGLE_LATEST_REVISION_DETERMINING:()=>h,determineGenericIndexablePropertyNames:()=>T,determineModelRolesMapping:()=>A,ensureValidationDocumentPresence:()=>k,extendModel:()=>I,extendModels:()=>P,getConnectorOptions:()=>x,getEffectiveURL:()=>j,getPouchDBPlugin:()=>b,initializeConnection:()=>O,isPropertySpecification:()=>R,log:()=>y,mayStripRepresentation:()=>w,normalizeRoles:()=>D,removeDeprecatedIndexes:()=>g,waitWithTimeout:()=>S});var a=r(1),o=r.n(a),i=r(2),s=r.n(i),c=r(3),u=r.n(c),l=r(4);const p=require("rxjs"),d=require("rxjs/fetch"),f="1.0.814";function m(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return v(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?v(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var h=Symbol("toggleLatestRevisionDetermining"),y=new l.Logger({name:"web-node.couchdb"}),b=function(e){var t=e.model.property.name.special,r=t.id,n=t.revision,a=t.attachment,o=t.deleted;return{installCouchDBWebNodePlugin:function(t){var i=this;if(this.bulkDocs){var c=this.bulkDocs.bind(this);this.bulkDocs=s()(u().mark((function a(o){var s,p,d,f,v,b,g,x,w,k,O,j,S,A,R,T,I,P,D,E,_,M,N,C=arguments;return u().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:y.debug("BulkDocs called from:",t),(0,l.isObject)(o)&&1===Object.keys(o).length&&"docs"in o&&Array.isArray(o.docs)&&(o=o.docs);for(s=C.length,p=new Array(s>1?s-1:0),d=1;d<s;d++)p[d-1]=C[d];f=p.length>0&&p[p.length-1]===h,v=f?!e.skipLatestRevisionDetermining:e.skipLatestRevisionDetermining,f&&p.pop(),b=!Array.isArray(o)&&(0,l.isObject)(o)&&r in o?[o]:o,g=e.maximumNumberOfEntitiesInBulkOperation,x=[],w=0;case 1:if(!(w<b.length)){a.next=4;break}return k=b.slice(w,w+g),a.next=2,c.call.apply(c,[i,k].concat(p));case 2:O=a.sent,x=x.concat(O);case 3:w+=g,a.next=1;break;case 4:j=[],S=[],A=0,R=m(x);case 5:if((T=R()).done){a.next=12;break}if(I=T.value,"object"!=typeof b[A]){a.next=10;break}if(!(n in b[A])||"conflict"!==I.name||!["0-latest","0-upsert"].includes(b[A][n])){a.next=6;break}S.push(b[A]),j.push(A),a.next=10;break;case 6:if(!(r in b[A]&&e.ignoreNoChangeError&&"name"in I&&"forbidden"===I.name&&"message"in I&&I.message.startsWith("NoChange:"))){a.next=10;break}if(x[A]={id:b[A][r],ok:!0},v){a.next=10;break}if(!(n in b[A])||["0-latest","0-upsert"].includes(b[A][n])){a.next=7;break}M=b[A][n],a.next=9;break;case 7:return a.next=8,i.get(x[A].id);case 8:N=n,M=a.sent[N];case 9:x[A].rev=M;case 10:A+=1;case 11:a.next=5;break;case 12:if(!S.length){a.next=14;break}return b=S,f&&p.push(h),a.next=13,i.bulkDocs.apply(i,[b].concat(p));case 13:for(P=a.sent,D=m(P);!(E=D()).done;)_=E.value,x[j.shift()]=_;case 14:return a.abrupt("return",x);case 15:case"end":return a.stop()}}),a)})))}this.post=this.put=s()(u().mark((function e(t,r){var n;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,i.bulkDocs([t],r);case 1:if(null==(n=e.sent[0])||!n.name){e.next=2;break}throw n;case 2:return e.abrupt("return",n);case 3:case"end":return e.stop()}}),e)}))),this.remove=s()(u().mark((function e(t,a){var s;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",i.put(((s={})[r]=t,s[n]=a,s[o]=!0,s)));case 1:case"end":return e.stop()}}),e)}))),this.putAttachment&&(this.putAttachment=s()(u().mark((function e(t,o,s,c,l){var p,d,f,m,v,h;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return"string"==typeof s?(v=c,h=s):(v=s,h="0-latest"),e.abrupt("return",i.put(((m={})[r]=t,m[n]=h,m[a]=((f={})[o]={content_type:null!==(p=null!==(d=v.type)&&void 0!==d?d:l)&&void 0!==p?p:"application/octet-stream",data:v},f),m)));case 1:case"end":return e.stop()}}),e)})))),this.removeAttachment&&(this.removeAttachment=s()(u().mark((function e(t,o,s){var c,l;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",i.put(((l={})[r]=t,l[n]=s,l[a]=((c={})[o]={content_type:"application/octet-stream",data:null},c),l)));case 1:case"end":return e.stop()}}),e)}))))}}},g=function(){var e=s()(u().mark((function e(t,r,n){var a,o,i,s,c,l,p,d,f,v,h,y,b;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,t.getIndexes();case 1:a=e.sent.indexes.filter((function(e){return e.name.endsWith("-GenericIndex")})),o=m(a);case 2:if((i=o()).done){e.next=7;break}s=i.value,c=!1,l=0,p=Object.entries(r);case 3:if(!(l<p.length)){e.next=5;break}if(d=p[l],f=d[0],v=d[1],!s.name.startsWith(f+"-")){e.next=4;break}for(h=0,y=T(n,v);h<y.length;h++)b=y[h],[f+"-"+b+"-GenericIndex",f+"-GenericIndex"].includes(s.name)&&(c=!0);return e.abrupt("continue",5);case 4:l++,e.next=3;break;case 5:if(c){e.next=6;break}return e.next=6,t.deleteIndex(s);case 6:e.next=2;break;case 7:case"end":return e.stop()}}),e)})));return function(t,r,n){return e.apply(this,arguments)}}(),x=function(e,t){var r=new Map([[408,"Request Timeout"],[425,"Too Early"],[429,"Too Many Requests"],[502,"Bad Gateway"],[503,"Service Unavailable"],[504,"Gateway Timeout"]]);return o()({},e,{fetch:function(n,a){var o=e.fetchInterceptor,i=o.numberOfRetries,s=o.retryIntervalInSeconds,c=o.exponentialBackoff,u=o.maximumRetryIntervallInSeconds,f=(0,d.fromFetch)(n,function(r){var n;return void 0===r&&(r={}),r=(0,l.extend)(!0,(0,l.copy)(e.fetch),r),Array.isArray(t)&&t.length>0&&(r.signal=null==(n=t.pop())?void 0:n.controller.signal),r}(a)).pipe((0,p.map)((function(e){if(r.has(e.status))throw e;return e})),(0,p.retry)({count:i,delay:function(e,t){if("number"!=typeof e.status)throw e;var r=e;if(r.headers.has("retry-after")){var n=r.headers.get("retry-after");if("string"==typeof n){var a=parseInt(n);if(String(a)===n)return y.info("Retry in "+n+" seconds","according to given retry value."),(0,p.timer)(1e3*a);var o=new Date(n);if(!isNaN(o.getTime())){var i=new Date;if(i<o){if(u<(o.getTime()-i.getTime())/1e3)return y.info("Retry at",o.toUTCString(),"according to given retry","value."),(0,p.timer)(o);y.warn("The recommended retry attempt is",o.toUTCString(),"further in the future than the","configured maximum wait time of",u,"seconds.")}else y.warn("Given retry time recommendation","from server is in the past and","has to be ignored therefore.")}}}var l=c?Math.pow(2,t-1)*s:s;return(0,p.timer)(1e3*Math.min(l,u))}}));return(0,p.lastValueFrom)(f)}})},w=function(e,t,r){var n=(0,l.represent)(e);return n.length<=t?n.length>r?n.substring(0,r-3)+"...":n:"DOCUMENT IS TOO BIG TO REPRESENT"},k=function(){var e=s()(u().mark((function e(t,r,n,a,i,s,c,p){var d,m,v,h,b;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===i&&(i=!0),void 0===s&&(s="_id"),void 0===c&&(c="_rev"),void 0===p&&(p="_design/"),m=o()(((d={})[s]=""+p+r,d.language="javascript",d.version=f,d),n),e.prev=1,e.next=2,t.get(""+p+r);case 2:return v=e.sent,m[c]=v[c],e.next=3,t.put(m);case 3:i&&y.info(a+" updated."),e.next=8;break;case 4:return e.prev=4,h=e.catch(1),i&&("not_found"===h.error||"not_found"===h.name||"missing"===h.message||"missing"===h.reason?y.info(a+" not available. Create new one."):y.info(a+" couldn't be updated:",'"'+(0,l.represent)(h)+'" create new one.')),e.prev=5,e.next=6,t.put(m);case 6:i&&y.info(a+" installed/updated."),e.next=8;break;case 7:throw e.prev=7,b=e.catch(5),new Error(a+" couldn't be installed/updated: \""+(0,l.represent)(b)+'".',{cause:b});case 8:case"end":return e.stop()}}),e,null,[[1,4],[5,7]])})));return function(t,r,n,a,o,i,s,c){return e.apply(this,arguments)}}(),O=function(){var e=s()(u().mark((function e(t,r,n){var a,o,i,s;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===n&&(n=!0),a=t.couchdb,o=r.couchdb,i=j(o),t.couchdb.server.expressPouchDBInstance?(a.connection=new a.connector(o.databaseName,a.server.runner.configuration),a.connection.installValidationMethods()):a.connection=new a.connector(i,x(o.connector)),a.connection.installCouchDBWebNodePlugin("backend"),a.connection.setMaxListeners(1/0),!n){e.next=4;break}return e.prev=1,e.next=2,a.connection.allDocs({limit:1});case 2:e.next=4;break;case 3:throw e.prev=3,s=e.catch(1),new Error("Database has not been installed yet: "+(0,l.represent)(s),{cause:s});case 4:return e.abrupt("return",t);case 5:case"end":return e.stop()}}),e,null,[[1,3]])})));return function(t,r,n){return e.apply(this,arguments)}}(),j=function(e,t,r){void 0===t&&(t=!0),void 0===r&&(r=!1);var n=/^https?:\/\//.test(e.url)?e.url:"http://{1}"+e.runner.host+":"+String(e.runner.port);return(0,l.format)(n,r?e.admin.name+":"+e.admin.password+"@":"")+(t?"/"+e.databaseName:"")},S=function(e,t,r){var n=!0;return Promise.race([e.then((function(){n=!1})),(0,l.timeout)(1e3*t).then((function(){n&&y.warn("Timeout of",String(t)+".","seconds reached while waiting for "+r+".")}))])},A=function(e){for(var t=e.property.name.special,r=t.allowedRole,n=t.attachment,a={},i=P(e),s=0,c=Object.entries(i);s<c.length;s++){var u=c[s],p=u[0],d=u[1];if(d[r]){a[p]=o()({properties:{}},D(d[r]));for(var f=0,m=Object.entries(d);f<m.length;f++){var v=m[f],h=v[0],y=v[1];if((0,l.isObject)(y))if(h===n){a[p].attachments={};for(var b=0,g=Object.entries(y);b<g.length;b++){var x=g[b],w=x[0],k=x[1];k.allowedRoles&&(a[p].attachments[w]=D(k.allowedRoles))}}else y.allowedRoles&&(a[p].properties[h]=D(y.allowedRoles))}}}return a},R=function(e){return(0,l.isObject)(e)},T=function(e,t){var r=e.property.name.special;return Object.keys(t).filter((function(n){var a=t[n];return R(a)&&Object.prototype.hasOwnProperty.call(a,"index")&&a.index||R(a)&&!(Object.prototype.hasOwnProperty.call(a,"index")&&!a.index||e.property.name.reserved.concat(r.additional,r.allowedRole,r.attachment,r.conflict,r.constraint.execution,r.constraint.expression,r.deleted,r.deletedConflict,r.extend,r.maximumAggregatedSize,r.minimumAggregatedSize,r.oldType,r.id,r.revision,r.revisions,r.revisionsInformation,r.type,r.updateStrategy).includes(n)||a.type&&("string"==typeof a.type&&a.type.endsWith("[]")||Array.isArray(a.type)&&a.type.length&&Array.isArray(a.type[0])||Object.prototype.hasOwnProperty.call(e.entities,a.type)))})).concat([r.id,r.revision]).sort()},I=function(e,t,r){if(void 0===r&&(r="_extends"),"_base"===e)return t[e];if(Object.prototype.hasOwnProperty.call(t,"_base")&&(Object.prototype.hasOwnProperty.call(t[e],r)&&t[e][r]?t[e][r]=["_base"].concat(t[e][r]):t[e][r]="_base"),Object.prototype.hasOwnProperty.call(t[e],r)){for(var n,a=m([].concat(t[e][r]));!(n=a()).done;){var o=n.value;t[e]=(0,l.extend)(!0,(0,l.copy)(I(o,t,r)),t[e])}delete t[e][r]}return t[e]},P=function(e){for(var t=e.property.name.special,r={},n=e.property.name.typePattern,a=0,o=Object.keys(e.entities);a<o.length;a++){var i=o[a];if(!new RegExp(n.public).test(i)&&!new RegExp(n.private).test(i))throw new Error('Model names have to match "'+n.public+'" or "'+n.private+'" for private one (given name: "'+i+'").');r[i]=I(i,e.entities,t.extend)}for(var s=0,c=Object.values(r);s<c.length;s++)for(var u=c[s],p=0,d=Object.entries(u);p<d.length;p++){var f=d[p],m=f[0],v=f[1];if(m===t.attachment)for(var h=v,y=0,b=Object.entries(h);y<b.length;y++){var g=b[y],x=g[0],w=g[1];h[x]=(0,l.extend)(!0,(0,l.copy)(e.property.defaultSpecification),w)}else[t.allowedRole,t.constraint.execution,t.constraint.expression,t.extend,t.maximumAggregatedSize,t.minimumAggregatedSize,t.oldType].includes(m)||(u[m]=(0,l.extend)(!0,(0,l.copy)(e.property.defaultSpecification),v))}return r},D=function(e){if(Array.isArray(e))return{read:e,write:e};if("object"==typeof e){for(var t={read:[],write:[]},r=0,n=Object.keys(t);r<n.length;r++){var a=n[r];if(Object.prototype.hasOwnProperty.call(e,a)){var o=e[a];Array.isArray(o)?t[a]=o:"string"==typeof o&&(t[a]=[o])}}return t}return{read:[e],write:[e]}};module.exports=n})();
1
+ (()=>{"use strict";var e=[,e=>{e.exports=require("@babel/runtime/helpers/extends")},e=>{e.exports=require("@babel/runtime/helpers/asyncToGenerator")},e=>{e.exports=require("@babel/runtime/regenerator")},e=>{e.exports=require("clientnode")}],t={};function r(n){var a=t[n];if(void 0!==a)return a.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,r),o.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};r.r(n),r.d(n,{TOGGLE_LATEST_REVISION_DETERMINING:()=>h,applyDefaultPropertyConfigurations:()=>P,applyModelInheritance:()=>T,applyModelsInheritance:()=>D,determineGenericIndexablePropertyNames:()=>R,determineModelRolesMapping:()=>S,ensureValidationDocumentPresence:()=>k,getConnectorOptions:()=>x,getEffectiveURL:()=>j,getPouchDBPlugin:()=>b,initializeConnection:()=>O,isPropertySpecification:()=>I,log:()=>y,mayStripRepresentation:()=>w,normalizeRoles:()=>_,removeDeprecatedIndexes:()=>g,waitWithTimeout:()=>A});var a=r(1),o=r.n(a),i=r(2),s=r.n(i),c=r(3),u=r.n(c),l=r(4);const p=require("rxjs"),d=require("rxjs/fetch"),f="1.0.816";function m(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return v(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?v(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var h=Symbol("toggleLatestRevisionDetermining"),y=new l.Logger({name:"web-node.couchdb"}),b=function(e){var t=e.model.property.name.special,r=t.id,n=t.revision,a=t.attachment,o=t.deleted;return{installCouchDBWebNodePlugin:function(t){var i=this;if(this.bulkDocs){var c=this.bulkDocs.bind(this);this.bulkDocs=s()(u().mark((function a(o){var s,p,d,f,v,b,g,x,w,k,O,j,A,S,I,R,T,P,D,_,E,M,N,C=arguments;return u().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:y.debug("BulkDocs called from:",t),(0,l.isObject)(o)&&1===Object.keys(o).length&&"docs"in o&&Array.isArray(o.docs)&&(o=o.docs);for(s=C.length,p=new Array(s>1?s-1:0),d=1;d<s;d++)p[d-1]=C[d];f=p.length>0&&p[p.length-1]===h,v=f?!e.skipLatestRevisionDetermining:e.skipLatestRevisionDetermining,f&&p.pop(),b=!Array.isArray(o)&&(0,l.isObject)(o)&&r in o?[o]:o,g=e.maximumNumberOfEntitiesInBulkOperation,x=[],w=0;case 1:if(!(w<b.length)){a.next=4;break}return k=b.slice(w,w+g),a.next=2,c.call.apply(c,[i,k].concat(p));case 2:O=a.sent,x=x.concat(O);case 3:w+=g,a.next=1;break;case 4:j=[],A=[],S=0,I=m(x);case 5:if((R=I()).done){a.next=12;break}if(T=R.value,"object"!=typeof b[S]){a.next=10;break}if(!(n in b[S])||"conflict"!==T.name||!["0-latest","0-upsert"].includes(b[S][n])){a.next=6;break}A.push(b[S]),j.push(S),a.next=10;break;case 6:if(!(r in b[S]&&e.ignoreNoChangeError&&"name"in T&&"forbidden"===T.name&&"message"in T&&T.message.startsWith("NoChange:"))){a.next=10;break}if(x[S]={id:b[S][r],ok:!0},v){a.next=10;break}if(!(n in b[S])||["0-latest","0-upsert"].includes(b[S][n])){a.next=7;break}M=b[S][n],a.next=9;break;case 7:return a.next=8,i.get(x[S].id);case 8:N=n,M=a.sent[N];case 9:x[S].rev=M;case 10:S+=1;case 11:a.next=5;break;case 12:if(!A.length){a.next=14;break}return b=A,f&&p.push(h),a.next=13,i.bulkDocs.apply(i,[b].concat(p));case 13:for(P=a.sent,D=m(P);!(_=D()).done;)E=_.value,x[j.shift()]=E;case 14:return a.abrupt("return",x);case 15:case"end":return a.stop()}}),a)})))}this.post=this.put=s()(u().mark((function e(t,r){var n;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,i.bulkDocs([t],r);case 1:if(null==(n=e.sent[0])||!n.name){e.next=2;break}throw n;case 2:return e.abrupt("return",n);case 3:case"end":return e.stop()}}),e)}))),this.remove=s()(u().mark((function e(t,a){var s;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",i.put(((s={})[r]=t,s[n]=a,s[o]=!0,s)));case 1:case"end":return e.stop()}}),e)}))),this.putAttachment&&(this.putAttachment=s()(u().mark((function e(t,o,s,c,l){var p,d,f,m,v,h;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return"string"==typeof s?(v=c,h=s):(v=s,h="0-latest"),e.abrupt("return",i.put(((m={})[r]=t,m[n]=h,m[a]=((f={})[o]={content_type:null!==(p=null!==(d=v.type)&&void 0!==d?d:l)&&void 0!==p?p:"application/octet-stream",data:v},f),m)));case 1:case"end":return e.stop()}}),e)})))),this.removeAttachment&&(this.removeAttachment=s()(u().mark((function e(t,o,s){var c,l;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",i.put(((l={})[r]=t,l[n]=s,l[a]=((c={})[o]={content_type:"application/octet-stream",data:null},c),l)));case 1:case"end":return e.stop()}}),e)}))))}}},g=function(){var e=s()(u().mark((function e(t,r,n){var a,o,i,s,c,l,p,d,f,v,h,y,b;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,t.getIndexes();case 1:a=e.sent.indexes.filter((function(e){return e.name.endsWith("-GenericIndex")})),o=m(a);case 2:if((i=o()).done){e.next=7;break}s=i.value,c=!1,l=0,p=Object.entries(r);case 3:if(!(l<p.length)){e.next=5;break}if(d=p[l],f=d[0],v=d[1],!s.name.startsWith(f+"-")){e.next=4;break}for(h=0,y=R(n,v);h<y.length;h++)b=y[h],[f+"-"+b+"-GenericIndex",f+"-GenericIndex"].includes(s.name)&&(c=!0);return e.abrupt("continue",5);case 4:l++,e.next=3;break;case 5:if(c){e.next=6;break}return e.next=6,t.deleteIndex(s);case 6:e.next=2;break;case 7:case"end":return e.stop()}}),e)})));return function(t,r,n){return e.apply(this,arguments)}}(),x=function(e,t){var r=new Map([[408,"Request Timeout"],[425,"Too Early"],[429,"Too Many Requests"],[502,"Bad Gateway"],[503,"Service Unavailable"],[504,"Gateway Timeout"]]);return o()({},e,{fetch:function(n,a){var o=e.fetchInterceptor,i=o.numberOfRetries,s=o.retryIntervalInSeconds,c=o.exponentialBackoff,u=o.maximumRetryIntervallInSeconds,f=(0,d.fromFetch)(n,function(r){var n;return void 0===r&&(r={}),r=(0,l.extend)(!0,(0,l.copy)(e.fetch),r),Array.isArray(t)&&t.length>0&&(r.signal=null==(n=t.pop())?void 0:n.controller.signal),r}(a)).pipe((0,p.map)((function(e){if(r.has(e.status))throw e;return e})),(0,p.retry)({count:i,delay:function(e,t){if("number"!=typeof e.status)throw e;var r=e;if(r.headers.has("retry-after")){var n=r.headers.get("retry-after");if("string"==typeof n){var a=parseInt(n);if(String(a)===n)return y.info("Retry in "+n+" seconds","according to given retry value."),(0,p.timer)(1e3*a);var o=new Date(n);if(!isNaN(o.getTime())){var i=new Date;if(i<o){if(u<(o.getTime()-i.getTime())/1e3)return y.info("Retry at",o.toUTCString(),"according to given retry","value."),(0,p.timer)(o);y.warn("The recommended retry attempt is",o.toUTCString(),"further in the future than the","configured maximum wait time of",u,"seconds.")}else y.warn("Given retry time recommendation","from server is in the past and","has to be ignored therefore.")}}}var l=c?Math.pow(2,t-1)*s:s;return(0,p.timer)(1e3*Math.min(l,u))}}));return(0,p.lastValueFrom)(f)}})},w=function(e,t,r){var n=(0,l.represent)(e);return n.length<=t?n.length>r?n.substring(0,r-3)+"...":n:"DOCUMENT IS TOO BIG TO REPRESENT"},k=function(){var e=s()(u().mark((function e(t,r,n,a,i,s,c,p){var d,m,v,h,b;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===i&&(i=!0),void 0===s&&(s="_id"),void 0===c&&(c="_rev"),void 0===p&&(p="_design/"),m=o()(((d={})[s]=""+p+r,d.language="javascript",d.version=f,d),n),e.prev=1,e.next=2,t.get(""+p+r);case 2:return v=e.sent,m[c]=v[c],e.next=3,t.put(m);case 3:i&&y.info(a+" updated."),e.next=8;break;case 4:return e.prev=4,h=e.catch(1),i&&("not_found"===h.error||"not_found"===h.name||"missing"===h.message||"missing"===h.reason?y.info(a+" not available. Create new one."):y.info(a+" couldn't be updated:",'"'+(0,l.represent)(h)+'" create new one.')),e.prev=5,e.next=6,t.put(m);case 6:i&&y.info(a+" installed/updated."),e.next=8;break;case 7:throw e.prev=7,b=e.catch(5),new Error(a+" couldn't be installed/updated: \""+(0,l.represent)(b)+'".',{cause:b});case 8:case"end":return e.stop()}}),e,null,[[1,4],[5,7]])})));return function(t,r,n,a,o,i,s,c){return e.apply(this,arguments)}}(),O=function(){var e=s()(u().mark((function e(t,r,n){var a,o,i,s;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===n&&(n=!0),a=t.couchdb,o=r.couchdb,i=j(o),t.couchdb.server.expressPouchDBInstance?(a.connection=new a.connector(o.databaseName,a.server.runner.configuration),a.connection.installValidationMethods()):a.connection=new a.connector(i,x(o.connector)),a.connection.installCouchDBWebNodePlugin("backend"),a.connection.setMaxListeners(1/0),!n){e.next=4;break}return e.prev=1,e.next=2,a.connection.allDocs({limit:1});case 2:e.next=4;break;case 3:throw e.prev=3,s=e.catch(1),new Error("Database has not been installed yet: "+(0,l.represent)(s),{cause:s});case 4:return e.abrupt("return",t);case 5:case"end":return e.stop()}}),e,null,[[1,3]])})));return function(t,r,n){return e.apply(this,arguments)}}(),j=function(e,t,r){void 0===t&&(t=!0),void 0===r&&(r=!1);var n=/^https?:\/\//.test(e.url)?e.url:"http://{1}"+e.runner.host+":"+String(e.runner.port);return(0,l.format)(n,r?e.admin.name+":"+e.admin.password+"@":"")+(t?"/"+e.databaseName:"")},A=function(e,t,r){var n=!0;return Promise.race([e.then((function(){n=!1})),(0,l.timeout)(1e3*t).then((function(){n&&y.warn("Timeout of",String(t)+".","seconds reached while waiting for "+r+".")}))])},S=function(e){for(var t=e.property.name.special,r=t.allowedRole,n=t.attachment,a={},i=D(e),s=0,c=Object.entries(i);s<c.length;s++){var u=c[s],p=u[0],d=u[1];if(d[r]){a[p]=o()({properties:{}},_(d[r]));for(var f=0,m=Object.entries(d);f<m.length;f++){var v=m[f],h=v[0],y=v[1];if((0,l.isObject)(y))if(h===n){a[p].attachments={};for(var b=0,g=Object.entries(y);b<g.length;b++){var x=g[b],w=x[0],k=x[1];k.allowedRoles&&(a[p].attachments[w]=_(k.allowedRoles))}}else y.allowedRoles&&(a[p].properties[h]=_(y.allowedRoles))}}}return a},I=function(e){return(0,l.isObject)(e)},R=function(e,t){var r=e.property.name.special;return Object.keys(t).filter((function(n){var a=t[n];return I(a)&&Object.prototype.hasOwnProperty.call(a,"index")&&a.index||I(a)&&!(Object.prototype.hasOwnProperty.call(a,"index")&&!a.index||e.property.name.reserved.concat(r.additional,r.allowedRole,r.attachment,r.conflict,r.constraint.execution,r.constraint.expression,r.deleted,r.deletedConflict,r.extend,r.maximumAggregatedSize,r.minimumAggregatedSize,r.oldType,r.id,r.revision,r.revisions,r.revisionsInformation,r.type,r.updateStrategy).includes(n)||a.type&&("string"==typeof a.type&&a.type.endsWith("[]")||Array.isArray(a.type)&&a.type.length&&Array.isArray(a.type[0])||Object.prototype.hasOwnProperty.call(e.entities,a.type)))})).concat([r.id,r.revision]).sort()},T=function(e,t){var r=t.entities,n=t.property.name.special.extend;if(Object.prototype.hasOwnProperty.call(r,"_base")&&(Object.prototype.hasOwnProperty.call(e,n)&&e[n]&&![].concat(e[n]).includes("_base")?e[n]=["_base"].concat(e[n]):e[n]="_base"),Object.prototype.hasOwnProperty.call(e,n)){for(var a,o=[].concat(e[n]),i=m(o);!(a=i()).done;){var s=a.value;"_base"!==s&&T(r[s],t),(0,l.extend)(!0,e,r[s],e),e[n]=o}delete e[n]}return P(e,t),e},P=function(e,t){for(var r=t.property.name.special,n=0,a=Object.entries(e);n<a.length;n++){var o=a[n],i=o[0],s=o[1];if(i===r.attachment)for(var c=s,u=0,p=Object.entries(c);u<p.length;u++){var d=p[u],f=d[0],v=d[1];c[f]=(0,l.extend)(!0,(0,l.copy)(t.property.defaultSpecification),v)}else if(![r.allowedRole,r.constraint.execution,r.constraint.expression,r.extend,r.maximumAggregatedSize,r.minimumAggregatedSize,r.oldType].includes(i)){var h=(0,l.extend)(!0,(0,l.copy)(t.property.defaultSpecification),s);e[i]=h;for(var y,b=m([].concat(h.type));!(y=b()).done;){var g=y.value;Array.isArray(g)||"object"!=typeof g||(h.type=T(g,t))}}}return e},D=function(e){for(var t=e.entities,r=e.property.name.typePattern,n=0,a=Object.keys(t);n<a.length;n++){var o=a[n];if(!new RegExp(r.public).test(o)&&!new RegExp(r.private).test(o))throw new Error('Model names have to match "'+r.public+'" or "'+r.private+'" for xprivate one (given name: "'+o+'").');"_base"!==o&&T(t[o],e)}return t},_=function(e){if(Array.isArray(e))return{read:e,write:e};if("object"==typeof e){for(var t={read:[],write:[]},r=0,n=Object.keys(t);r<n.length;r++){var a=n[r];if(Object.prototype.hasOwnProperty.call(e,a)){var o=e[a];Array.isArray(o)?t[a]=o:"string"==typeof o&&(t[a]=[o])}}return t}return{read:[e],write:[e]}};module.exports=n})();