@decaf-ts/for-nano 0.2.7 → 0.2.8

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/dist/for-nano.cjs CHANGED
@@ -1,2 +1,2 @@
1
- var e,t;e=this,t=function(e,t,r,a,s,o,n){"use strict";function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=i(a);const d="nano";class h extends o.Dispatch{constructor(e=5e3){super(),this.timeout=e,this.attemptCounter=0,this.active=!1}close(){return super.close()}async changeHandler(e,a,o,n){const i=n||this.adapter.context(t.OperationKeys.UPDATE,{},s.Model),c=i.logger.for(this.changeHandler);if(e)return c.error("Error in change request: "+e);try{a="string"==typeof a?a.split("\n").filter((e=>!!e)).map((e=>JSON.parse(e))):a}catch(e){return c.error("Error parsing couchdb change feed: "+e)}const d=a.length;if(d>0){c.debug(`Received ${d} changes. processing...`);const e=a.map(((e,a)=>{if(a===d-1)return void(this.observerLastUpdate===e.last_seq&&c.error(`Invalid last update check: ${this.observerLastUpdate} !== ${e.last_seq}`));const s=e,[o,n]=s.id.split(r.CouchDBKeys.SEPARATOR);return{table:o,id:n,operation:s.deleted?t.OperationKeys.DELETE:"1"===s.changes[s.changes.length-1].rev.split("-")[0]?t.OperationKeys.CREATE:t.OperationKeys.UPDATE,step:s.changes[s.changes.length-1].rev}})).reduce(((e,t)=>{if(!t)return e;const{table:r,id:a,operation:s,step:o}=t;return e[r]||(e[r]={}),e[r][s]||(e[r][s]={ids:new Set,step:o}),e[r][s].ids.add(a),e[r][s].step=o,e}),{});for(const t of Object.keys(e))for(const r of Object.keys(e[t]))try{await this.updateObservers(t,r,[...e[t][r].ids.values()],i),this.observerLastUpdate=e[t][r].step,c.verbose(`Observer refresh dispatched by ${r} for ${t}`),c.debug("pks: "+Array.from(e[t][r].ids.values()))}catch(e){c.error(`Failed to dispatch observer refresh for ${t}, op ${r}: ${e}`)}}}async initialize(){const e=this.log.for(this.initialize).for(r);async function r(){if(!this.adapter)throw new t.InternalError("No adapter/native observed for dispatch");if(!this.active)try{this.adapter.client.changes({feed:"continuous",include_docs:!1,since:this.observerLastUpdate||"now",timeout:this.timeout},this.changeHandler.bind(this))}catch(t){if(++this.attemptCounter>3)return e.error("Failed to subscribe to couchdb changes: "+t);if(e.info(`Failed to subscribe to couchdb changes: ${t}. Retrying in 5 seconds...`),!this.active)return;return await new Promise((e=>setTimeout(e,this.timeout))),r.call(this)}}this.active=!0,r.call(this).then((()=>{this.log.info("Subscribed to couchdb changes")})).catch((e=>{throw new t.InternalError("Failed to subscribe to couchdb changes: "+e)}))}}async function l(e,t,r,a){try{const t=e.get("user");a[r]=t.name}catch(e){throw new o.UnsupportedError("No User found in context. Please provide a user in the context")}}class u extends r.CouchDBAdapter{constructor(e,t){super(e,d,t)}async shutdown(){await this.shutdownProxies(),this._client&&(this._client=void 0)}getClient(){const{user:e,password:t,host:a,dbName:s}=this.config,o=u.connect(e,t,a);return r.wrapDocumentScope(o,s,e,t)}async flags(e,t,r){return Object.assign(await super.flags(e,t,r),{user:{name:this.config.user}})}Dispatch(){return new h}async index(...e){const a=r.generateIndexes(e);for(const e of a){const r=await this.client.createIndex(e),{result:a,id:s,name:o}=r;if("existing"===a)throw new t.ConflictError(`Index for table ${o} with id ${s}`)}}async create(e,r,a,...s){let o;try{o=await this.client.insert(a)}catch(e){throw this.parseError(e)}if(!o.ok)throw new t.InternalError(`Failed to insert doc id: ${r} in table ${e}`);return this.assignMetadata(a,o.rev)}async createAll(e,r,a,...s){let o;try{o=await this.client.bulk({docs:a})}catch(e){throw this.parseError(e)}if(!o.every((e=>!e.error))){const e=o.reduce(((e,t,r)=>(t.error&&e.push(`el ${r}: ${t.error}${t.reason?" - "+t.reason:""}`),e)),[]);throw new t.InternalError(e.join("\n"))}return this.assignMultipleMetadata(a,o.map((e=>e.rev)))}async read(e,t,...r){const a=this.generateId(s.Model.tableName(e),t);let o;try{o=await this.client.get(a)}catch(e){throw this.parseError(e)}return this.assignMetadata(o,o._rev)}async readAll(e,a,...o){const n=s.Model.tableName(e);return(await this.client.fetch({keys:a.map((e=>this.generateId(n,e)))},{})).rows.map((e=>{if(e.error)throw new t.InternalError(e.error);if(e.doc){const t=Object.assign({},e.doc);return this.assignMetadata(t,e.doc[r.CouchDBKeys.REV])}throw new t.InternalError("Should be impossible")}))}async update(e,r,a,...s){let o;try{o=await this.client.insert(a)}catch(e){throw this.parseError(e)}if(!o.ok)throw new t.InternalError(`Failed to update doc id: ${r} in table ${e}`);return this.assignMetadata(a,o.rev)}async updateAll(e,r,a,...s){let o;try{o=await this.client.bulk({docs:a})}catch(e){throw this.parseError(e)}if(!o.every((e=>!e.error))){const e=o.reduce(((e,t,r)=>(t.error&&e.push(`el ${r}: ${t.error}${t.reason?" - "+t.reason:""}`),e)),[]);throw new t.InternalError(e.join("\n"))}return this.assignMultipleMetadata(a,o.map((e=>e.rev)))}async delete(e,t,...r){const a=this.generateId(s.Model.tableName(e),t);let o;try{o=await this.client.get(a),await this.client.destroy(a,o._rev)}catch(e){throw this.parseError(e)}return this.assignMetadata(o,o._rev)}async deleteAll(e,a,...o){const{log:n}=this.logCtx(o,this.deleteAll),i=s.Model.tableName(e),c=await this.client.fetch({keys:a.map((e=>this.generateId(i,e)))},{});return(await this.client.bulk({docs:c.rows.map((e=>(e[r.CouchDBKeys.DELETED]=!0,e)))})).forEach((e=>{e.error&&n.error(e.error)})),c.rows.map((e=>{if(e.error)throw new t.InternalError(e.error);if(e.doc){const t=Object.assign({},e.doc);return this.assignMetadata(t,e.doc[r.CouchDBKeys.REV])}throw new t.InternalError("Should be impossible")}))}async raw(e,t=!0,...r){try{const a=await this.client.find(e);if(a.warning){const{log:e}=this.logCtx(r,this.raw);e.for(this.raw).warn(a.warning)}return t?a.docs:a}catch(e){throw this.parseError(e)}}static connect(e,t,r="localhost:5984",a="http"){return c.default(`${a}://${e}:${t}@${r}`)}static async createDatabase(e,t){let a;try{a=await e.db.create(t)}catch(e){throw r.CouchDBAdapter.parseError(e)}const{ok:s,error:o,reason:n}=a;if(!s)throw r.CouchDBAdapter.parseError(o,n)}static async deleteDatabase(e,a){let s;try{s=await e.db.destroy(a)}catch(e){throw r.CouchDBAdapter.parseError(e)}const{ok:o}=s;if(!o)throw new t.InternalError("Failed to delete database with name "+a)}static async createUser(e,a,s,o,n=["reader","writer"]){const i=e.db.use("_users"),c={_id:"org.couchdb.user:"+s,name:s,password:o,roles:n,type:"user"};try{const r=await i.insert(c),{ok:o}=r;if(!o)throw new t.InternalError("Failed to create user "+s);if(!(await e.request({db:a,method:"put",path:"_security",body:{admins:{names:[s],roles:[]},members:{names:[s],roles:n}}})).ok)throw new t.InternalError(`Failed to authorize user ${s} to db ${a}`)}catch(e){throw r.CouchDBAdapter.parseError(e)}}static async deleteUser(e,t,a){const s=e.db.use("_users"),o="org.couchdb.user:"+a;try{const e=await s.get(o);await s.destroy(o,e._rev)}catch(e){throw r.CouchDBAdapter.parseError(e)}}static decoration(){super.decoration(),n.Decoration.flavouredAs(d).for(o.PersistenceKeys.CREATED_BY).define(t.onCreate(l),n.propMetadata(o.PersistenceKeys.CREATED_BY,{})).apply(),n.Decoration.flavouredAs(d).for(o.PersistenceKeys.UPDATED_BY).define(t.onCreateUpdate(l),n.propMetadata(o.PersistenceKeys.UPDATED_BY,{})).apply()}}o.Adapter.setCurrent(d),u.decoration();const p="##VERSION##",f="##PACKAGE##";n.Metadata.registerLibrary(f,p),e.NanoAdapter=u,e.NanoFlavour=d,e.PACKAGE_NAME=f,e.VERSION=p,e.createdByOnNanoCreateUpdate=l},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/db-decorators"),require("@decaf-ts/for-couchdb"),require("nano"),require("@decaf-ts/decorator-validation"),require("@decaf-ts/core"),require("@decaf-ts/decoration")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/db-decorators","@decaf-ts/for-couchdb","nano","@decaf-ts/decorator-validation","@decaf-ts/core","@decaf-ts/decoration"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-nano"]={},e.decafTsDbDecorators,e.decafTsForCouchdb,e.nano,e.decafTsDecoratorValidation,e.decafTsCore,e.decafTsDecoration);
1
+ var e,t;e=this,t=function(e,t,r,a,s,o,n){"use strict";function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=i(a);const d="nano";class h extends o.Dispatch{constructor(e=5e3){super(),this.timeout=e,this.attemptCounter=0,this.active=!1}close(){return super.close()}async changeHandler(e,a,o,n){const i=n||this.adapter.context(t.OperationKeys.UPDATE,{},s.Model),c=i.logger.for(this.changeHandler);if(e)return c.error("Error in change request: "+e);try{a="string"==typeof a?a.split("\n").filter(e=>!!e).map(e=>JSON.parse(e)):a}catch(e){return c.error("Error parsing couchdb change feed: "+e)}const d=a.length;if(d>0){c.debug(`Received ${d} changes. processing...`);const e=a.map((e,a)=>{if(a===d-1)return void(this.observerLastUpdate===e.last_seq&&c.error(`Invalid last update check: ${this.observerLastUpdate} !== ${e.last_seq}`));const s=e,[o,n]=s.id.split(r.CouchDBKeys.SEPARATOR);return{table:o,id:n,operation:s.deleted?t.OperationKeys.DELETE:"1"===s.changes[s.changes.length-1].rev.split("-")[0]?t.OperationKeys.CREATE:t.OperationKeys.UPDATE,step:s.changes[s.changes.length-1].rev}}).reduce((e,t)=>{if(!t)return e;const{table:r,id:a,operation:s,step:o}=t;return e[r]||(e[r]={}),e[r][s]||(e[r][s]={ids:new Set,step:o}),e[r][s].ids.add(a),e[r][s].step=o,e},{});for(const t of Object.keys(e))for(const r of Object.keys(e[t]))try{await this.updateObservers(t,r,[...e[t][r].ids.values()],i),this.observerLastUpdate=e[t][r].step,c.verbose(`Observer refresh dispatched by ${r} for ${t}`),c.debug("pks: "+Array.from(e[t][r].ids.values()))}catch(e){c.error(`Failed to dispatch observer refresh for ${t}, op ${r}: ${e}`)}}}async initialize(){const e=this.log.for(this.initialize).for(r);async function r(){if(!this.adapter)throw new t.InternalError("No adapter/native observed for dispatch");if(!this.active)try{this.adapter.client.changes({feed:"continuous",include_docs:!1,since:this.observerLastUpdate||"now",timeout:this.timeout},this.changeHandler.bind(this))}catch(t){if(++this.attemptCounter>3)return e.error("Failed to subscribe to couchdb changes: "+t);if(e.info(`Failed to subscribe to couchdb changes: ${t}. Retrying in 5 seconds...`),!this.active)return;return await new Promise(e=>setTimeout(e,this.timeout)),r.call(this)}}this.active=!0,r.call(this).then(()=>{this.log.info("Subscribed to couchdb changes")}).catch(e=>{throw new t.InternalError("Failed to subscribe to couchdb changes: "+e)})}}async function l(e,t,r,a){try{const t=e.get("user");a[r]=t.name}catch(e){throw new o.UnsupportedError("No User found in context. Please provide a user in the context")}}class u extends r.CouchDBAdapter{constructor(e,t){super(e,d,t)}async shutdown(){await this.shutdownProxies(),this._client&&(this._client=void 0)}getClient(){const{user:e,password:t,host:a,dbName:s}=this.config,o=u.connect(e,t,a);return r.wrapDocumentScope(o,s,e,t)}async flags(e,t,r){return Object.assign(await super.flags(e,t,r),{user:{name:this.config.user}})}Dispatch(){return new h}async index(...e){const a=r.generateIndexes(e);for(const e of a){const r=await this.client.createIndex(e),{result:a,id:s,name:o}=r;if("existing"===a)throw new t.ConflictError(`Index for table ${o} with id ${s}`)}}async create(e,r,a,...s){let o;try{o=await this.client.insert(a)}catch(e){throw this.parseError(e)}if(!o.ok)throw new t.InternalError(`Failed to insert doc id: ${r} in table ${e}`);return this.assignMetadata(a,o.rev)}async createAll(e,r,a,...s){let o;try{o=await this.client.bulk({docs:a})}catch(e){throw this.parseError(e)}if(!o.every(e=>!e.error)){const e=o.reduce((e,t,r)=>(t.error&&e.push(`el ${r}: ${t.error}${t.reason?" - "+t.reason:""}`),e),[]);throw new t.InternalError(e.join("\n"))}return this.assignMultipleMetadata(a,o.map(e=>e.rev))}async read(e,t,...r){const a=this.generateId(s.Model.tableName(e),t);let o;try{o=await this.client.get(a)}catch(e){throw this.parseError(e)}return this.assignMetadata(o,o._rev)}async readAll(e,a,...o){const n=s.Model.tableName(e);return(await this.client.fetch({keys:a.map(e=>this.generateId(n,e))},{})).rows.map(e=>{if(e.error)throw new t.InternalError(e.error);if(e.doc){const t=Object.assign({},e.doc);return this.assignMetadata(t,e.doc[r.CouchDBKeys.REV])}throw new t.InternalError("Should be impossible")})}async update(e,r,a,...s){let o;try{o=await this.client.insert(a)}catch(e){throw this.parseError(e)}if(!o.ok)throw new t.InternalError(`Failed to update doc id: ${r} in table ${e}`);return this.assignMetadata(a,o.rev)}async updateAll(e,r,a,...s){let o;try{o=await this.client.bulk({docs:a})}catch(e){throw this.parseError(e)}if(!o.every(e=>!e.error)){const e=o.reduce((e,t,r)=>(t.error&&e.push(`el ${r}: ${t.error}${t.reason?" - "+t.reason:""}`),e),[]);throw new t.InternalError(e.join("\n"))}return this.assignMultipleMetadata(a,o.map(e=>e.rev))}async delete(e,t,...r){const a=this.generateId(s.Model.tableName(e),t);let o;try{o=await this.client.get(a),await this.client.destroy(a,o._rev)}catch(e){throw this.parseError(e)}return this.assignMetadata(o,o._rev)}async deleteAll(e,a,...o){const{log:n}=this.logCtx(o,this.deleteAll),i=s.Model.tableName(e),c=await this.client.fetch({keys:a.map(e=>this.generateId(i,e))},{});return(await this.client.bulk({docs:c.rows.map(e=>(e[r.CouchDBKeys.DELETED]=!0,e))})).forEach(e=>{e.error&&n.error(e.error)}),c.rows.map(e=>{if(e.error)throw new t.InternalError(e.error);if(e.doc){const t=Object.assign({},e.doc);return this.assignMetadata(t,e.doc[r.CouchDBKeys.REV])}throw new t.InternalError("Should be impossible")})}async raw(e,t=!0,...r){try{const a=await this.client.find(e);if(a.warning){const{log:e}=this.logCtx(r,this.raw);e.for(this.raw).warn(a.warning)}return t?a.docs:a}catch(e){throw this.parseError(e)}}static connect(e,t,r="localhost:5984",a="http"){return c.default(`${a}://${e}:${t}@${r}`)}static async createDatabase(e,t){let a;try{a=await e.db.create(t)}catch(e){throw r.CouchDBAdapter.parseError(e)}const{ok:s,error:o,reason:n}=a;if(!s)throw r.CouchDBAdapter.parseError(o,n)}static async deleteDatabase(e,a){let s;try{s=await e.db.destroy(a)}catch(e){throw r.CouchDBAdapter.parseError(e)}const{ok:o}=s;if(!o)throw new t.InternalError("Failed to delete database with name "+a)}static async createUser(e,a,s,o,n=["reader","writer"]){const i=e.db.use("_users"),c={_id:"org.couchdb.user:"+s,name:s,password:o,roles:n,type:"user"};try{const r=await i.insert(c),{ok:o}=r;if(!o)throw new t.InternalError("Failed to create user "+s);if(!(await e.request({db:a,method:"put",path:"_security",body:{admins:{names:[s],roles:[]},members:{names:[s],roles:n}}})).ok)throw new t.InternalError(`Failed to authorize user ${s} to db ${a}`)}catch(e){throw r.CouchDBAdapter.parseError(e)}}static async deleteUser(e,t,a){const s=e.db.use("_users"),o="org.couchdb.user:"+a;try{const e=await s.get(o);await s.destroy(o,e._rev)}catch(e){throw r.CouchDBAdapter.parseError(e)}}static decoration(){super.decoration(),n.Decoration.flavouredAs(d).for(o.PersistenceKeys.CREATED_BY).define(t.onCreate(l),n.propMetadata(o.PersistenceKeys.CREATED_BY,{})).apply(),n.Decoration.flavouredAs(d).for(o.PersistenceKeys.UPDATED_BY).define(t.onCreateUpdate(l),n.propMetadata(o.PersistenceKeys.UPDATED_BY,{})).apply()}}o.Adapter.setCurrent(d),u.decoration();const p="##VERSION##",f="##PACKAGE##";n.Metadata.registerLibrary(f,p),e.NanoAdapter=u,e.NanoFlavour=d,e.PACKAGE_NAME=f,e.VERSION=p,e.createdByOnNanoCreateUpdate=l},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/db-decorators"),require("@decaf-ts/for-couchdb"),require("nano"),require("@decaf-ts/decorator-validation"),require("@decaf-ts/core"),require("@decaf-ts/decoration")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/db-decorators","@decaf-ts/for-couchdb","nano","@decaf-ts/decorator-validation","@decaf-ts/core","@decaf-ts/decoration"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-nano"]={},e.decafTsDbDecorators,e.decafTsForCouchdb,e.nano,e.decafTsDecoratorValidation,e.decafTsCore,e.decafTsDecoration);
2
2
  //# sourceMappingURL=for-nano.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-nano.cjs","sources":["../src/constants.ts","../src/NanoDispatch.ts","../src/adapter.ts","../src/index.ts"],"sourcesContent":[null,null,null,null],"names":["NanoFlavour","NanoDispatch","Dispatch","constructor","timeout","super","this","attemptCounter","active","close","changeHandler","error","response","headers","ctxArg","ctx","adapter","context","OperationKeys","UPDATE","Model","log","logger","for","split","filter","r","map","JSON","parse","e","count","length","debug","changes","rec","i","observerLastUpdate","last_seq","table","id","CouchDBKeys","SEPARATOR","operation","deleted","DELETE","rev","CREATE","step","reduce","accum","ids","Set","add","Object","keys","op","updateObservers","values","verbose","Array","from","initialize","subLog","subscribeToCouch","async","InternalError","client","feed","include_docs","since","bind","info","Promise","resolve","setTimeout","call","then","catch","createdByOnNanoCreateUpdate","data","key","model","user","get","name","UnsupportedError","NanoAdapter","CouchDBAdapter","scope","alias","shutdown","shutdownProxies","_client","undefined","getClient","password","host","dbName","config","con","connect","wrapDocumentScope","flags","assign","index","models","indexes","generateIndexes","res","createIndex","result","ConflictError","create","tableName","args","insert","parseError","ok","assignMetadata","createAll","bulk","docs","every","errors","el","push","reason","join","assignMultipleMetadata","read","_id","generateId","record","_rev","readAll","fetch","rows","doc","REV","update","updateAll","destroy","deleteAll","logCtx","results","DELETED","forEach","d","raw","rawInput","docsOnly","find","warning","warn","pass","protocol","Nano","createDatabase","db","deleteDatabase","createUser","roles","users","use","usr","type","created","request","method","path","body","admins","names","members","deleteUser","decoration","Decoration","flavouredAs","PersistenceKeys","CREATED_BY","define","onCreate","propMetadata","apply","UPDATED_BY","onCreateUpdate","Adapter","setCurrent","VERSION","PACKAGE_NAME","Metadata","registerLibrary"],"mappings":"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"}
1
+ {"version":3,"file":"for-nano.cjs","sources":["../src/constants.ts","../src/NanoDispatch.ts","../src/adapter.ts","../src/index.ts"],"sourcesContent":[null,null,null,null],"names":["NanoFlavour","NanoDispatch","Dispatch","constructor","timeout","super","this","attemptCounter","active","close","changeHandler","error","response","headers","ctxArg","ctx","adapter","context","OperationKeys","UPDATE","Model","log","logger","for","split","filter","r","map","JSON","parse","e","count","length","debug","changes","rec","i","observerLastUpdate","last_seq","table","id","CouchDBKeys","SEPARATOR","operation","deleted","DELETE","rev","CREATE","step","reduce","accum","ids","Set","add","Object","keys","op","updateObservers","values","verbose","Array","from","initialize","subLog","subscribeToCouch","async","InternalError","client","feed","include_docs","since","bind","info","Promise","resolve","setTimeout","call","then","catch","createdByOnNanoCreateUpdate","data","key","model","user","get","name","UnsupportedError","NanoAdapter","CouchDBAdapter","scope","alias","shutdown","shutdownProxies","_client","undefined","getClient","password","host","dbName","config","con","connect","wrapDocumentScope","flags","assign","index","models","indexes","generateIndexes","res","createIndex","result","ConflictError","create","tableName","args","insert","parseError","ok","assignMetadata","createAll","bulk","docs","every","errors","el","push","reason","join","assignMultipleMetadata","read","_id","generateId","record","_rev","readAll","fetch","rows","doc","REV","update","updateAll","destroy","deleteAll","logCtx","results","DELETED","forEach","d","raw","rawInput","docsOnly","find","warning","warn","pass","protocol","Nano","createDatabase","db","deleteDatabase","createUser","roles","users","use","usr","type","created","request","method","path","body","admins","names","members","deleteUser","decoration","Decoration","flavouredAs","PersistenceKeys","CREATED_BY","define","onCreate","propMetadata","apply","UPDATED_BY","onCreateUpdate","Adapter","setCurrent","VERSION","PACKAGE_NAME","Metadata","registerLibrary"],"mappings":"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"}
package/dist/for-nano.js CHANGED
@@ -1,2 +1,2 @@
1
- import{OperationKeys as t,InternalError as e,ConflictError as r,onCreate as s,onCreateUpdate as a}from"@decaf-ts/db-decorators";import{CouchDBKeys as o,CouchDBAdapter as i,wrapDocumentScope as n,generateIndexes as c}from"@decaf-ts/for-couchdb";import h from"nano";import{Model as d}from"@decaf-ts/decorator-validation";import{Dispatch as l,Adapter as u,UnsupportedError as p,PersistenceKeys as w}from"@decaf-ts/core";import{Decoration as f,propMetadata as b,Metadata as g}from"@decaf-ts/decoration";const y="nano";class m extends l{constructor(t=5e3){super(),this.timeout=t,this.attemptCounter=0,this.active=!1}close(){return super.close()}async changeHandler(e,r,s,a){const i=a||this.adapter.context(t.UPDATE,{},d),n=i.logger.for(this.changeHandler);if(e)return n.error("Error in change request: "+e);try{r="string"==typeof r?r.split("\n").filter((t=>!!t)).map((t=>JSON.parse(t))):r}catch(t){return n.error("Error parsing couchdb change feed: "+t)}const c=r.length;if(c>0){n.debug(`Received ${c} changes. processing...`);const e=r.map(((e,r)=>{if(r===c-1)return void(this.observerLastUpdate===e.last_seq&&n.error(`Invalid last update check: ${this.observerLastUpdate} !== ${e.last_seq}`));const s=e,[a,i]=s.id.split(o.SEPARATOR);return{table:a,id:i,operation:s.deleted?t.DELETE:"1"===s.changes[s.changes.length-1].rev.split("-")[0]?t.CREATE:t.UPDATE,step:s.changes[s.changes.length-1].rev}})).reduce(((t,e)=>{if(!e)return t;const{table:r,id:s,operation:a,step:o}=e;return t[r]||(t[r]={}),t[r][a]||(t[r][a]={ids:new Set,step:o}),t[r][a].ids.add(s),t[r][a].step=o,t}),{});for(const t of Object.keys(e))for(const r of Object.keys(e[t]))try{await this.updateObservers(t,r,[...e[t][r].ids.values()],i),this.observerLastUpdate=e[t][r].step,n.verbose(`Observer refresh dispatched by ${r} for ${t}`),n.debug("pks: "+Array.from(e[t][r].ids.values()))}catch(e){n.error(`Failed to dispatch observer refresh for ${t}, op ${r}: ${e}`)}}}async initialize(){const t=this.log.for(this.initialize).for(r);async function r(){if(!this.adapter)throw new e("No adapter/native observed for dispatch");if(!this.active)try{this.adapter.client.changes({feed:"continuous",include_docs:!1,since:this.observerLastUpdate||"now",timeout:this.timeout},this.changeHandler.bind(this))}catch(e){if(++this.attemptCounter>3)return t.error("Failed to subscribe to couchdb changes: "+e);if(t.info(`Failed to subscribe to couchdb changes: ${e}. Retrying in 5 seconds...`),!this.active)return;return await new Promise((t=>setTimeout(t,this.timeout))),r.call(this)}}this.active=!0,r.call(this).then((()=>{this.log.info("Subscribed to couchdb changes")})).catch((t=>{throw new e("Failed to subscribe to couchdb changes: "+t)}))}}async function v(t,e,r,s){try{const e=t.get("user");s[r]=e.name}catch(t){throw new p("No User found in context. Please provide a user in the context")}}class E extends i{constructor(t,e){super(t,y,e)}async shutdown(){await this.shutdownProxies(),this._client&&(this._client=void 0)}getClient(){const{user:t,password:e,host:r,dbName:s}=this.config,a=E.connect(t,e,r);return n(a,s,t,e)}async flags(t,e,r){return Object.assign(await super.flags(t,e,r),{user:{name:this.config.user}})}Dispatch(){return new m}async index(...t){const e=c(t);for(const t of e){const e=await this.client.createIndex(t),{result:s,id:a,name:o}=e;if("existing"===s)throw new r(`Index for table ${o} with id ${a}`)}}async create(t,r,s,...a){let o;try{o=await this.client.insert(s)}catch(t){throw this.parseError(t)}if(!o.ok)throw new e(`Failed to insert doc id: ${r} in table ${t}`);return this.assignMetadata(s,o.rev)}async createAll(t,r,s,...a){let o;try{o=await this.client.bulk({docs:s})}catch(t){throw this.parseError(t)}if(!o.every((t=>!t.error))){const t=o.reduce(((t,e,r)=>(e.error&&t.push(`el ${r}: ${e.error}${e.reason?" - "+e.reason:""}`),t)),[]);throw new e(t.join("\n"))}return this.assignMultipleMetadata(s,o.map((t=>t.rev)))}async read(t,e,...r){const s=this.generateId(d.tableName(t),e);let a;try{a=await this.client.get(s)}catch(t){throw this.parseError(t)}return this.assignMetadata(a,a._rev)}async readAll(t,r,...s){const a=d.tableName(t);return(await this.client.fetch({keys:r.map((t=>this.generateId(a,t)))},{})).rows.map((t=>{if(t.error)throw new e(t.error);if(t.doc){const e=Object.assign({},t.doc);return this.assignMetadata(e,t.doc[o.REV])}throw new e("Should be impossible")}))}async update(t,r,s,...a){let o;try{o=await this.client.insert(s)}catch(t){throw this.parseError(t)}if(!o.ok)throw new e(`Failed to update doc id: ${r} in table ${t}`);return this.assignMetadata(s,o.rev)}async updateAll(t,r,s,...a){let o;try{o=await this.client.bulk({docs:s})}catch(t){throw this.parseError(t)}if(!o.every((t=>!t.error))){const t=o.reduce(((t,e,r)=>(e.error&&t.push(`el ${r}: ${e.error}${e.reason?" - "+e.reason:""}`),t)),[]);throw new e(t.join("\n"))}return this.assignMultipleMetadata(s,o.map((t=>t.rev)))}async delete(t,e,...r){const s=this.generateId(d.tableName(t),e);let a;try{a=await this.client.get(s),await this.client.destroy(s,a._rev)}catch(t){throw this.parseError(t)}return this.assignMetadata(a,a._rev)}async deleteAll(t,r,...s){const{log:a}=this.logCtx(s,this.deleteAll),i=d.tableName(t),n=await this.client.fetch({keys:r.map((t=>this.generateId(i,t)))},{});return(await this.client.bulk({docs:n.rows.map((t=>(t[o.DELETED]=!0,t)))})).forEach((t=>{t.error&&a.error(t.error)})),n.rows.map((t=>{if(t.error)throw new e(t.error);if(t.doc){const e=Object.assign({},t.doc);return this.assignMetadata(e,t.doc[o.REV])}throw new e("Should be impossible")}))}async raw(t,e=!0,...r){try{const s=await this.client.find(t);if(s.warning){const{log:t}=this.logCtx(r,this.raw);t.for(this.raw).warn(s.warning)}return e?s.docs:s}catch(t){throw this.parseError(t)}}static connect(t,e,r="localhost:5984",s="http"){return h(`${s}://${t}:${e}@${r}`)}static async createDatabase(t,e){let r;try{r=await t.db.create(e)}catch(t){throw i.parseError(t)}const{ok:s,error:a,reason:o}=r;if(!s)throw i.parseError(a,o)}static async deleteDatabase(t,r){let s;try{s=await t.db.destroy(r)}catch(t){throw i.parseError(t)}const{ok:a}=s;if(!a)throw new e("Failed to delete database with name "+r)}static async createUser(t,r,s,a,o=["reader","writer"]){const n=t.db.use("_users"),c={_id:"org.couchdb.user:"+s,name:s,password:a,roles:o,type:"user"};try{const a=await n.insert(c),{ok:i}=a;if(!i)throw new e("Failed to create user "+s);if(!(await t.request({db:r,method:"put",path:"_security",body:{admins:{names:[s],roles:[]},members:{names:[s],roles:o}}})).ok)throw new e(`Failed to authorize user ${s} to db ${r}`)}catch(t){throw i.parseError(t)}}static async deleteUser(t,e,r){const s=t.db.use("_users"),a="org.couchdb.user:"+r;try{const t=await s.get(a);await s.destroy(a,t._rev)}catch(t){throw i.parseError(t)}}static decoration(){super.decoration(),f.flavouredAs(y).for(w.CREATED_BY).define(s(v),b(w.CREATED_BY,{})).apply(),f.flavouredAs(y).for(w.UPDATED_BY).define(a(v),b(w.UPDATED_BY,{})).apply()}}u.setCurrent(y),E.decoration();const $="##VERSION##",A="##PACKAGE##";g.registerLibrary(A,$);export{E as NanoAdapter,y as NanoFlavour,A as PACKAGE_NAME,$ as VERSION,v as createdByOnNanoCreateUpdate};
1
+ import{OperationKeys as t,InternalError as e,ConflictError as r,onCreate as s,onCreateUpdate as a}from"@decaf-ts/db-decorators";import{CouchDBKeys as o,CouchDBAdapter as i,wrapDocumentScope as n,generateIndexes as c}from"@decaf-ts/for-couchdb";import h from"nano";import{Model as d}from"@decaf-ts/decorator-validation";import{Dispatch as l,Adapter as u,UnsupportedError as p,PersistenceKeys as w}from"@decaf-ts/core";import{Decoration as f,propMetadata as b,Metadata as g}from"@decaf-ts/decoration";const y="nano";class m extends l{constructor(t=5e3){super(),this.timeout=t,this.attemptCounter=0,this.active=!1}close(){return super.close()}async changeHandler(e,r,s,a){const i=a||this.adapter.context(t.UPDATE,{},d),n=i.logger.for(this.changeHandler);if(e)return n.error("Error in change request: "+e);try{r="string"==typeof r?r.split("\n").filter(t=>!!t).map(t=>JSON.parse(t)):r}catch(t){return n.error("Error parsing couchdb change feed: "+t)}const c=r.length;if(c>0){n.debug(`Received ${c} changes. processing...`);const e=r.map((e,r)=>{if(r===c-1)return void(this.observerLastUpdate===e.last_seq&&n.error(`Invalid last update check: ${this.observerLastUpdate} !== ${e.last_seq}`));const s=e,[a,i]=s.id.split(o.SEPARATOR);return{table:a,id:i,operation:s.deleted?t.DELETE:"1"===s.changes[s.changes.length-1].rev.split("-")[0]?t.CREATE:t.UPDATE,step:s.changes[s.changes.length-1].rev}}).reduce((t,e)=>{if(!e)return t;const{table:r,id:s,operation:a,step:o}=e;return t[r]||(t[r]={}),t[r][a]||(t[r][a]={ids:new Set,step:o}),t[r][a].ids.add(s),t[r][a].step=o,t},{});for(const t of Object.keys(e))for(const r of Object.keys(e[t]))try{await this.updateObservers(t,r,[...e[t][r].ids.values()],i),this.observerLastUpdate=e[t][r].step,n.verbose(`Observer refresh dispatched by ${r} for ${t}`),n.debug("pks: "+Array.from(e[t][r].ids.values()))}catch(e){n.error(`Failed to dispatch observer refresh for ${t}, op ${r}: ${e}`)}}}async initialize(){const t=this.log.for(this.initialize).for(r);async function r(){if(!this.adapter)throw new e("No adapter/native observed for dispatch");if(!this.active)try{this.adapter.client.changes({feed:"continuous",include_docs:!1,since:this.observerLastUpdate||"now",timeout:this.timeout},this.changeHandler.bind(this))}catch(e){if(++this.attemptCounter>3)return t.error("Failed to subscribe to couchdb changes: "+e);if(t.info(`Failed to subscribe to couchdb changes: ${e}. Retrying in 5 seconds...`),!this.active)return;return await new Promise(t=>setTimeout(t,this.timeout)),r.call(this)}}this.active=!0,r.call(this).then(()=>{this.log.info("Subscribed to couchdb changes")}).catch(t=>{throw new e("Failed to subscribe to couchdb changes: "+t)})}}async function v(t,e,r,s){try{const e=t.get("user");s[r]=e.name}catch(t){throw new p("No User found in context. Please provide a user in the context")}}class E extends i{constructor(t,e){super(t,y,e)}async shutdown(){await this.shutdownProxies(),this._client&&(this._client=void 0)}getClient(){const{user:t,password:e,host:r,dbName:s}=this.config,a=E.connect(t,e,r);return n(a,s,t,e)}async flags(t,e,r){return Object.assign(await super.flags(t,e,r),{user:{name:this.config.user}})}Dispatch(){return new m}async index(...t){const e=c(t);for(const t of e){const e=await this.client.createIndex(t),{result:s,id:a,name:o}=e;if("existing"===s)throw new r(`Index for table ${o} with id ${a}`)}}async create(t,r,s,...a){let o;try{o=await this.client.insert(s)}catch(t){throw this.parseError(t)}if(!o.ok)throw new e(`Failed to insert doc id: ${r} in table ${t}`);return this.assignMetadata(s,o.rev)}async createAll(t,r,s,...a){let o;try{o=await this.client.bulk({docs:s})}catch(t){throw this.parseError(t)}if(!o.every(t=>!t.error)){const t=o.reduce((t,e,r)=>(e.error&&t.push(`el ${r}: ${e.error}${e.reason?" - "+e.reason:""}`),t),[]);throw new e(t.join("\n"))}return this.assignMultipleMetadata(s,o.map(t=>t.rev))}async read(t,e,...r){const s=this.generateId(d.tableName(t),e);let a;try{a=await this.client.get(s)}catch(t){throw this.parseError(t)}return this.assignMetadata(a,a._rev)}async readAll(t,r,...s){const a=d.tableName(t);return(await this.client.fetch({keys:r.map(t=>this.generateId(a,t))},{})).rows.map(t=>{if(t.error)throw new e(t.error);if(t.doc){const e=Object.assign({},t.doc);return this.assignMetadata(e,t.doc[o.REV])}throw new e("Should be impossible")})}async update(t,r,s,...a){let o;try{o=await this.client.insert(s)}catch(t){throw this.parseError(t)}if(!o.ok)throw new e(`Failed to update doc id: ${r} in table ${t}`);return this.assignMetadata(s,o.rev)}async updateAll(t,r,s,...a){let o;try{o=await this.client.bulk({docs:s})}catch(t){throw this.parseError(t)}if(!o.every(t=>!t.error)){const t=o.reduce((t,e,r)=>(e.error&&t.push(`el ${r}: ${e.error}${e.reason?" - "+e.reason:""}`),t),[]);throw new e(t.join("\n"))}return this.assignMultipleMetadata(s,o.map(t=>t.rev))}async delete(t,e,...r){const s=this.generateId(d.tableName(t),e);let a;try{a=await this.client.get(s),await this.client.destroy(s,a._rev)}catch(t){throw this.parseError(t)}return this.assignMetadata(a,a._rev)}async deleteAll(t,r,...s){const{log:a}=this.logCtx(s,this.deleteAll),i=d.tableName(t),n=await this.client.fetch({keys:r.map(t=>this.generateId(i,t))},{});return(await this.client.bulk({docs:n.rows.map(t=>(t[o.DELETED]=!0,t))})).forEach(t=>{t.error&&a.error(t.error)}),n.rows.map(t=>{if(t.error)throw new e(t.error);if(t.doc){const e=Object.assign({},t.doc);return this.assignMetadata(e,t.doc[o.REV])}throw new e("Should be impossible")})}async raw(t,e=!0,...r){try{const s=await this.client.find(t);if(s.warning){const{log:t}=this.logCtx(r,this.raw);t.for(this.raw).warn(s.warning)}return e?s.docs:s}catch(t){throw this.parseError(t)}}static connect(t,e,r="localhost:5984",s="http"){return h(`${s}://${t}:${e}@${r}`)}static async createDatabase(t,e){let r;try{r=await t.db.create(e)}catch(t){throw i.parseError(t)}const{ok:s,error:a,reason:o}=r;if(!s)throw i.parseError(a,o)}static async deleteDatabase(t,r){let s;try{s=await t.db.destroy(r)}catch(t){throw i.parseError(t)}const{ok:a}=s;if(!a)throw new e("Failed to delete database with name "+r)}static async createUser(t,r,s,a,o=["reader","writer"]){const n=t.db.use("_users"),c={_id:"org.couchdb.user:"+s,name:s,password:a,roles:o,type:"user"};try{const a=await n.insert(c),{ok:i}=a;if(!i)throw new e("Failed to create user "+s);if(!(await t.request({db:r,method:"put",path:"_security",body:{admins:{names:[s],roles:[]},members:{names:[s],roles:o}}})).ok)throw new e(`Failed to authorize user ${s} to db ${r}`)}catch(t){throw i.parseError(t)}}static async deleteUser(t,e,r){const s=t.db.use("_users"),a="org.couchdb.user:"+r;try{const t=await s.get(a);await s.destroy(a,t._rev)}catch(t){throw i.parseError(t)}}static decoration(){super.decoration(),f.flavouredAs(y).for(w.CREATED_BY).define(s(v),b(w.CREATED_BY,{})).apply(),f.flavouredAs(y).for(w.UPDATED_BY).define(a(v),b(w.UPDATED_BY,{})).apply()}}u.setCurrent(y),E.decoration();const $="##VERSION##",A="##PACKAGE##";g.registerLibrary(A,$);export{E as NanoAdapter,y as NanoFlavour,A as PACKAGE_NAME,$ as VERSION,v as createdByOnNanoCreateUpdate};
2
2
  //# sourceMappingURL=for-nano.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-nano.js","sources":["../src/constants.ts","../src/NanoDispatch.ts","../src/adapter.ts","../src/index.ts"],"sourcesContent":[null,null,null,null],"names":["NanoFlavour","NanoDispatch","Dispatch","constructor","timeout","super","this","attemptCounter","active","close","changeHandler","error","response","headers","ctxArg","ctx","adapter","context","OperationKeys","UPDATE","Model","log","logger","for","split","filter","r","map","JSON","parse","e","count","length","debug","changes","rec","i","observerLastUpdate","last_seq","table","id","CouchDBKeys","SEPARATOR","operation","deleted","DELETE","rev","CREATE","step","reduce","accum","ids","Set","add","Object","keys","op","updateObservers","values","verbose","Array","from","initialize","subLog","subscribeToCouch","async","InternalError","client","feed","include_docs","since","bind","info","Promise","resolve","setTimeout","call","then","catch","createdByOnNanoCreateUpdate","data","key","model","user","get","name","UnsupportedError","NanoAdapter","CouchDBAdapter","scope","alias","shutdown","shutdownProxies","_client","undefined","getClient","password","host","dbName","config","con","connect","wrapDocumentScope","flags","assign","index","models","indexes","generateIndexes","res","createIndex","result","ConflictError","create","tableName","args","insert","parseError","ok","assignMetadata","createAll","bulk","docs","every","errors","el","push","reason","join","assignMultipleMetadata","read","_id","generateId","record","_rev","readAll","fetch","rows","doc","REV","update","updateAll","destroy","deleteAll","logCtx","results","DELETED","forEach","d","raw","rawInput","docsOnly","find","warning","warn","pass","protocol","Nano","createDatabase","db","deleteDatabase","createUser","roles","users","use","usr","type","created","request","method","path","body","admins","names","members","deleteUser","decoration","Decoration","flavouredAs","PersistenceKeys","CREATED_BY","define","onCreate","propMetadata","apply","UPDATED_BY","onCreateUpdate","Adapter","setCurrent","VERSION","PACKAGE_NAME","Metadata","registerLibrary"],"mappings":"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"}
1
+ {"version":3,"file":"for-nano.js","sources":["../src/constants.ts","../src/NanoDispatch.ts","../src/adapter.ts","../src/index.ts"],"sourcesContent":[null,null,null,null],"names":["NanoFlavour","NanoDispatch","Dispatch","constructor","timeout","super","this","attemptCounter","active","close","changeHandler","error","response","headers","ctxArg","ctx","adapter","context","OperationKeys","UPDATE","Model","log","logger","for","split","filter","r","map","JSON","parse","e","count","length","debug","changes","rec","i","observerLastUpdate","last_seq","table","id","CouchDBKeys","SEPARATOR","operation","deleted","DELETE","rev","CREATE","step","reduce","accum","ids","Set","add","Object","keys","op","updateObservers","values","verbose","Array","from","initialize","subLog","subscribeToCouch","async","InternalError","client","feed","include_docs","since","bind","info","Promise","resolve","setTimeout","call","then","catch","createdByOnNanoCreateUpdate","data","key","model","user","get","name","UnsupportedError","NanoAdapter","CouchDBAdapter","scope","alias","shutdown","shutdownProxies","_client","undefined","getClient","password","host","dbName","config","con","connect","wrapDocumentScope","flags","assign","index","models","indexes","generateIndexes","res","createIndex","result","ConflictError","create","tableName","args","insert","parseError","ok","assignMetadata","createAll","bulk","docs","every","errors","el","push","reason","join","assignMultipleMetadata","read","_id","generateId","record","_rev","readAll","fetch","rows","doc","REV","update","updateAll","destroy","deleteAll","logCtx","results","DELETED","forEach","d","raw","rawInput","docsOnly","find","warning","warn","pass","protocol","Nano","createDatabase","db","deleteDatabase","createUser","roles","users","use","usr","type","created","request","method","path","body","admins","names","members","deleteUser","decoration","Decoration","flavouredAs","PersistenceKeys","CREATED_BY","define","onCreate","propMetadata","apply","UPDATED_BY","onCreateUpdate","Adapter","setCurrent","VERSION","PACKAGE_NAME","Metadata","registerLibrary"],"mappings":"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"}
@@ -13,7 +13,7 @@ export * from "./adapter";
13
13
  * @const VERSION
14
14
  * @memberOf module:for-nano
15
15
  */
16
- export declare const VERSION = "0.2.6";
16
+ export declare const VERSION = "0.2.7";
17
17
  /**
18
18
  * @description Package version identifier
19
19
  * @summary Stores the current package version string for the for-nano module
package/lib/esm/index.js CHANGED
@@ -18,7 +18,7 @@ export * from "./adapter.js";
18
18
  * @const VERSION
19
19
  * @memberOf module:for-nano
20
20
  */
21
- export const VERSION = "0.2.6";
21
+ export const VERSION = "0.2.7";
22
22
  /**
23
23
  * @description Package version identifier
24
24
  * @summary Stores the current package version string for the for-nano module
package/lib/index.cjs CHANGED
@@ -35,7 +35,7 @@ __exportStar(require("./adapter.cjs"), exports);
35
35
  * @const VERSION
36
36
  * @memberOf module:for-nano
37
37
  */
38
- exports.VERSION = "0.2.6";
38
+ exports.VERSION = "0.2.7";
39
39
  /**
40
40
  * @description Package version identifier
41
41
  * @summary Stores the current package version string for the for-nano module
package/lib/index.d.ts CHANGED
@@ -13,7 +13,7 @@ export * from "./adapter";
13
13
  * @const VERSION
14
14
  * @memberOf module:for-nano
15
15
  */
16
- export declare const VERSION = "0.2.6";
16
+ export declare const VERSION = "0.2.7";
17
17
  /**
18
18
  * @description Package version identifier
19
19
  * @summary Stores the current package version string for the for-nano module
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/for-nano",
3
- "version": "0.2.7",
3
+ "version": "0.2.8",
4
4
  "description": "decaf-ts persistence adapter for CouchDB via nano",
5
5
  "type": "module",
6
6
  "exports": {