@decaf-ts/for-pouch 0.3.18 → 0.3.19
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/README.md +1 -1
- package/dist/for-pouch.cjs +1 -1
- package/dist/for-pouch.cjs.map +1 -1
- package/dist/for-pouch.js +1 -1
- package/dist/for-pouch.js.map +1 -1
- package/lib/PouchRepository.cjs +17 -0
- package/lib/PouchRepository.d.ts +9 -6
- package/lib/PouchRepository.js.map +1 -1
- package/lib/adapter.cjs +178 -114
- package/lib/adapter.d.ts +32 -65
- package/lib/adapter.js.map +1 -1
- package/lib/esm/PouchRepository.d.ts +9 -6
- package/lib/esm/PouchRepository.js +15 -1
- package/lib/esm/PouchRepository.js.map +1 -1
- package/lib/esm/adapter.d.ts +32 -65
- package/lib/esm/adapter.js +179 -115
- package/lib/esm/adapter.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/types.d.ts +2 -0
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/types.d.ts +2 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -30,7 +30,7 @@ A PouchDB-backed adapter and repository integration for the decaf-ts ecosystem.
|
|
|
30
30
|
|
|
31
31
|
Documentation available [here](https://decaf-ts.github.io/for-pouch/)
|
|
32
32
|
|
|
33
|
-
Minimal size:
|
|
33
|
+
Minimal size: 2.3 KB kb gzipped
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
# decaf-ts / for-pouch — Detailed Description
|
package/dist/for-pouch.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e,
|
|
1
|
+
var e,t;e=this,t=function(e,t,r,o,a,s,n,i,c,d,u,l){"use strict";function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function f(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(r=>{if("default"!==r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:()=>e[r]})}}),t.default=e,Object.freeze(t)}var p=h(i),g=f(c),w=f(d),y=f(u);const E="pouch",b="local_dbs";class m extends o.CouchDBRepository{constructor(e,t){super(e,t)}override(e){return super.override(e).for(e)}}async function C(e,t,r,o){try{const t=e.get("UUID");o[r]=t}catch(e){throw new s.UnsupportedError("No User found in context. Please provide a user in the context")}}class v extends o.CouchDBAdapter{constructor(e,t){super(e,E,t),this._pluginsRegistered=!1}registerPlugins(){if(this._pluginsRegistered)return;const e=[g,w,y,...this.config.plugins];for(const t of e)try{p.default.plugin(t)}catch(e){if(e instanceof Error&&e.message.includes("redefine property"))continue;throw e}this._pluginsRegistered=!0}buildClient(e,t){this.registerPlugins();const{host:r,protocol:o,dbName:s,storagePath:n}=this.config;try{if(r){const a=e?`${e?encodeURIComponent(e):""}${e&&t?":"+encodeURIComponent(t):""}@`:"";return new p.default(`${o}://${a}${r}/${s}`)}return new p.default(`${n||b}/${s}`)}catch(e){throw new a.InternalError("Failed to create PouchDB client: "+e)}}getAdminClient(){return this.config.adminUser?(this._adminClient||(this._adminClient=this.buildClient(this.config.adminUser,this.config.adminPassword??this.config.password)),this._adminClient):this.getClient()}getClient(){return this._client||(this._client=this.buildClient(this.config.user,this.config.password)),this._client}async flags(e,t,o,...a){return this.config.user||(this.config.user=r.randomUUID()),super.flags(e,t,Object.assign({UUID:this.config.user},o),...a)}repository(){return m}async index(...e){const t=this.getAdminClient();try{const r=3,a=o.generateIndexes(e),s=new Set;try{const e=await t.get("_index");(e?.indexes||[]).forEach(e=>{e.name&&s.add(e.name)})}catch{}for(const e of a){const o=e.name??e.ddoc??"index";if(s.has(o))continue;let a=0;for(;;)try{await t.createIndex(e),s.add(o);break}catch(s){if(409===s?.status||"conflict"===s?.error)break;if(500===s?.status){a+=1;const s="_design/"+(e.ddoc??o);try{const e=await t.get(s);await t.remove(s,e._rev)}catch{}if(a>=r)break;await new Promise(e=>setTimeout(e,100*a));continue}throw s}}const n=o.generateViews(e);for(const e of n)try{await t.put(e)}catch(r){if(409!==r?.status&&"conflict"!==r?.error)throw r;{const r=await t.get(e._id);await t.put({...e,_rev:r._rev})}}}catch(e){}}async create(e,t,r,...o){let s;try{s=await this.client.put(r)}catch(e){throw this.parseError(e)}if(!s.ok)throw new a.InternalError(`Failed to insert doc id: ${t} in table ${n.Model.tableName(e)}`);return this.assignMetadata(r,s.rev)}async createAll(e,t,r,...o){let s;try{s=await this.client.bulkDocs(r)}catch(e){throw this.parseError(e)}if(!s.every(e=>e.ok)){const e=s.reduce((e,t,r)=>(t.error&&e.push(`el ${r}: ${t.error}${t.reason?" - "+t.reason:""}`),e),[]);throw new a.InternalError(e.join("\n"))}return this.assignMultipleMetadata(r,s.map(e=>e.rev))}async read(e,t,...r){const o=this.generateId(n.Model.tableName(e),t);let a;try{a=await this.client.get(o)}catch(e){throw this.parseError(e)}return this.assignMetadata(a,a._rev)}async readAll(e,t,...r){const s=n.Model.tableName(e);return(await this.client.bulkGet({docs:t.map(e=>({id:this.generateId(s,e)}))})).results.reduce((e,t)=>(t.docs.forEach(t=>{if(t.error||!t.ok)throw this.parseError(t.error||new a.InternalError("Missing valid response"));const r=Object.assign({},t.ok);e.push(this.assignMetadata(r,t.ok[o.CouchDBKeys.REV]))}),e),[])}async update(e,t,r,...o){let s;try{s=await this.client.put(r)}catch(e){throw this.parseError(e)}if(!s.ok)throw new a.InternalError(`Failed to update doc id: ${t} in table ${n.Model.tableName(e)}`);return this.assignMetadata(r,s.rev)}async updateAll(e,t,r,...o){let s;try{s=await this.client.bulkDocs(r)}catch(e){throw this.parseError(e)}if(!s.every(e=>!e.error)){const e=s.reduce((e,t,r)=>(t.error&&e.push(`el ${r}: ${t.error}${t.reason?" - "+t.reason:""}`),e),[]);throw new a.InternalError(e.join("\n"))}return this.assignMultipleMetadata(r,s.map(e=>e.rev))}async delete(e,t,...r){const o=this.generateId(n.Model.tableName(e),t);let a;try{a=await this.client.get(o),await this.client.remove(o,a._rev)}catch(e){throw this.parseError(e)}return this.assignMetadata(a,a._rev)}async deleteAll(e,t,...r){const{log:s}=this.logCtx(r,this.deleteAll),i=n.Model.tableName(e),c=await this.client.bulkGet({docs:t.map(e=>({id:this.generateId(i,e)}))}),d=c.results.reduce((e,t)=>(t.docs.forEach(t=>{if(t.error)throw this.parseError(t.error||new a.InternalError("Missing valid response"));const r=Object.assign({},t.ok);r[o.CouchDBKeys.DELETED]=!0,e.push(r)}),e),[]);return(await this.client.bulkDocs(d)).forEach(e=>{const t=e.error;t&&s.error(t+"")}),c.results.reduce((e,t)=>(t.docs.forEach(t=>{if(t.error||!t.ok)throw this.parseError(t.error||new a.InternalError("Missing valid response"));const r=Object.assign({},t.ok);e.push(this.assignMetadata(r,t.ok[o.CouchDBKeys.REV]))}),e),[])}async raw(e,t=!0,...r){try{const o=await this.client.find(e);if(o.warning){const{log:e}=await this.logCtx(r,this.raw,!0);e.for(this.raw).warn(o.warning)}return t?o.docs:o}catch(e){throw this.parseError(e)}}async view(e,t,r,...o){try{const o=`${e}/${t}`;return await this.client.query(o,r)}catch(e){throw this.parseError(e)}}parseError(e,t){return v.parseError(e,t)}static parseError(e,t){if(e instanceof a.BaseError)return e;let r="";if("string"==typeof e){if(r=e,r.match(/already exist|update conflict/g))return new a.ConflictError(r);if(r.match(/missing|deleted/g))return new a.NotFoundError(r)}else e.status?(r=e.status,t=t||e.message):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 a.ConflictError(t);case"404":return new a.NotFoundError(t);case"400":return r.toString().match(/No\sindex\sexists/g)?new o.IndexError(e):new a.InternalError(e);default:return r.toString().match(/ECONNREFUSED/g)?new s.ConnectionError(e):new a.InternalError(e)}}static decoration(){super.decoration(),l.Decoration.flavouredAs(E).for(s.PersistenceKeys.CREATED_BY).define(a.onCreate(C),l.propMetadata(s.PersistenceKeys.CREATED_BY,{})).apply(),l.Decoration.flavouredAs(E).for(s.PersistenceKeys.UPDATED_BY).define(a.onCreateUpdate(C),l.propMetadata(s.PersistenceKeys.UPDATED_BY,{})).apply()}}s.Adapter.setCurrent(E),v.decoration();const D="##VERSION##",M="##PACKAGE##";l.Metadata.registerLibrary(M,D),e.DefaultLocalStoragePath=b,e.PACKAGE_NAME=M,e.PouchAdapter=v,e.PouchFlavour=E,e.PouchRepository=m,e.VERSION=D,e.createdByOnPouchCreateUpdate=C},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("reflect-metadata"),require("crypto"),require("@decaf-ts/for-couchdb"),require("@decaf-ts/db-decorators"),require("@decaf-ts/core"),require("@decaf-ts/decorator-validation"),require("pouchdb-core"),require("pouchdb-mapreduce"),require("pouchdb-replication"),require("pouchdb-find"),require("@decaf-ts/decoration")):"function"==typeof define&&define.amd?define(["exports","reflect-metadata","crypto","@decaf-ts/for-couchdb","@decaf-ts/db-decorators","@decaf-ts/core","@decaf-ts/decorator-validation","pouchdb-core","pouchdb-mapreduce","pouchdb-replication","pouchdb-find","@decaf-ts/decoration"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-pouch"]={},e.reflectMetadata,e.crypto,e.decafTsForCouchdb,e.decafTsDbDecorators,e.decafTsCore,e.decafTsDecoratorValidation,e.pouchdbCore,e.pouchdbMapreduce,e.pouchdbReplication,e.pouchdbFind,e.decafTsDecoration);
|
|
2
2
|
//# sourceMappingURL=for-pouch.cjs.map
|
package/dist/for-pouch.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for-pouch.cjs","sources":["../src/constants.ts","../src/adapter.ts","../src/index.ts"],"sourcesContent":[null,null,null],"names":["PouchFlavour","DefaultLocalStoragePath","async","createdByOnPouchCreateUpdate","context","data","key","
|
|
1
|
+
{"version":3,"file":"for-pouch.cjs","sources":["../src/constants.ts","../src/PouchRepository.ts","../src/adapter.ts","../src/index.ts"],"sourcesContent":[null,null,null,null],"names":["PouchFlavour","DefaultLocalStoragePath","PouchRepository","CouchDBRepository","constructor","adapter","model","super","override","flags","for","async","createdByOnPouchCreateUpdate","context","data","key","uuid","get","e","UnsupportedError","PouchAdapter","CouchDBAdapter","config","alias","this","_pluginsRegistered","registerPlugins","plugins","PouchMapReduce","PouchReplication","PouchFind","plugin","PouchDB","Error","message","includes","buildClient","user","password","host","protocol","dbName","storagePath","credentials","encodeURIComponent","InternalError","getAdminClient","adminUser","_adminClient","adminPassword","getClient","_client","operation","args","randomUUID","Object","assign","UUID","repository","index","models","client","MAX_INDEX_ATTEMPTS","indexes","generateIndexes","existingIndexNames","Set","response","forEach","idx","name","add","indexName","ddoc","has","attempts","createIndex","status","error","docId","existing","remove","_rev","Promise","resolve","setTimeout","views","generateViews","view","put","_id","create","tableName","id","parseError","ok","Model","assignMetadata","rev","createAll","ids","bulkDocs","every","r","errors","reduce","accum","el","i","push","reason","join","assignMultipleMetadata","map","read","generateId","record","readAll","table","bulkGet","docs","results","d","result","CouchDBKeys","REV","update","updateAll","deleteAll","log","logCtx","docsToDelete","next","DELETED","err","String","raw","rawInput","docsOnly","find","warning","warn","viewName","options","_args","queryName","query","BaseError","code","match","ConflictError","NotFoundError","statusCode","toString","IndexError","ConnectionError","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-pouch.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"reflect-metadata";import{
|
|
1
|
+
import"reflect-metadata";import{randomUUID as t}from"crypto";import{CouchDBRepository as e,CouchDBAdapter as r,generateIndexes as s,generateViews as i,CouchDBKeys as a,IndexError as o}from"@decaf-ts/for-couchdb";import{InternalError as n,BaseError as c,ConflictError as h,NotFoundError as d,onCreate as l,onCreateUpdate as u}from"@decaf-ts/db-decorators";import{Adapter as f,UnsupportedError as p,ConnectionError as g,PersistenceKeys as w}from"@decaf-ts/core";import{Model as m}from"@decaf-ts/decorator-validation";import y from"pouchdb-core";import*as E from"pouchdb-mapreduce";import*as b from"pouchdb-replication";import*as v from"pouchdb-find";import{Decoration as _,propMetadata as C,Metadata as $}from"@decaf-ts/decoration";const k="pouch",x="local_dbs";class A extends e{constructor(t,e){super(t,e)}override(t){return super.override(t).for(t)}}async function D(t,e,r,s){try{const e=t.get("UUID");s[r]=e}catch(t){throw new p("No User found in context. Please provide a user in the context")}}class M extends r{constructor(t,e){super(t,k,e),this._pluginsRegistered=!1}registerPlugins(){if(this._pluginsRegistered)return;const t=[E,b,v,...this.config.plugins];for(const e of t)try{y.plugin(e)}catch(t){if(t instanceof Error&&t.message.includes("redefine property"))continue;throw t}this._pluginsRegistered=!0}buildClient(t,e){this.registerPlugins();const{host:r,protocol:s,dbName:i,storagePath:a}=this.config;try{return new y(r?`${s}://${t?`${t?encodeURIComponent(t):""}${t&&e?":"+encodeURIComponent(e):""}@`:""}${r}/${i}`:`${a||x}/${i}`)}catch(t){throw new n("Failed to create PouchDB client: "+t)}}getAdminClient(){return this.config.adminUser?(this._adminClient||(this._adminClient=this.buildClient(this.config.adminUser,this.config.adminPassword??this.config.password)),this._adminClient):this.getClient()}getClient(){return this._client||(this._client=this.buildClient(this.config.user,this.config.password)),this._client}async flags(e,r,s,...i){return this.config.user||(this.config.user=t()),super.flags(e,r,Object.assign({UUID:this.config.user},s),...i)}repository(){return A}async index(...t){const e=this.getAdminClient();try{const r=3,a=s(t),o=new Set;try{const t=await e.get("_index");(t?.indexes||[]).forEach(t=>{t.name&&o.add(t.name)})}catch{}for(const t of a){const s=t.name??t.ddoc??"index";if(o.has(s))continue;let i=0;for(;;)try{await e.createIndex(t),o.add(s);break}catch(a){if(409===a?.status||"conflict"===a?.error)break;if(500===a?.status){i+=1;const a="_design/"+(t.ddoc??s);try{const t=await e.get(a);await e.remove(a,t._rev)}catch{}if(i>=r)break;await new Promise(t=>setTimeout(t,100*i));continue}throw a}}const n=i(t);for(const t of n)try{await e.put(t)}catch(r){if(409!==r?.status&&"conflict"!==r?.error)throw r;{const r=await e.get(t._id);await e.put({...t,_rev:r._rev})}}}catch(t){}}async create(t,e,r,...s){let i;try{i=await this.client.put(r)}catch(t){throw this.parseError(t)}if(!i.ok)throw new n(`Failed to insert doc id: ${e} in table ${m.tableName(t)}`);return this.assignMetadata(r,i.rev)}async createAll(t,e,r,...s){let i;try{i=await this.client.bulkDocs(r)}catch(t){throw this.parseError(t)}if(!i.every(t=>t.ok)){const t=i.reduce((t,e,r)=>(e.error&&t.push(`el ${r}: ${e.error}${e.reason?" - "+e.reason:""}`),t),[]);throw new n(t.join("\n"))}return this.assignMultipleMetadata(r,i.map(t=>t.rev))}async read(t,e,...r){const s=this.generateId(m.tableName(t),e);let i;try{i=await this.client.get(s)}catch(t){throw this.parseError(t)}return this.assignMetadata(i,i._rev)}async readAll(t,e,...r){const s=m.tableName(t);return(await this.client.bulkGet({docs:e.map(t=>({id:this.generateId(s,t)}))})).results.reduce((t,e)=>(e.docs.forEach(e=>{if(e.error||!e.ok)throw this.parseError(e.error||new n("Missing valid response"));const r=Object.assign({},e.ok);t.push(this.assignMetadata(r,e.ok[a.REV]))}),t),[])}async update(t,e,r,...s){let i;try{i=await this.client.put(r)}catch(t){throw this.parseError(t)}if(!i.ok)throw new n(`Failed to update doc id: ${e} in table ${m.tableName(t)}`);return this.assignMetadata(r,i.rev)}async updateAll(t,e,r,...s){let i;try{i=await this.client.bulkDocs(r)}catch(t){throw this.parseError(t)}if(!i.every(t=>!t.error)){const t=i.reduce((t,e,r)=>(e.error&&t.push(`el ${r}: ${e.error}${e.reason?" - "+e.reason:""}`),t),[]);throw new n(t.join("\n"))}return this.assignMultipleMetadata(r,i.map(t=>t.rev))}async delete(t,e,...r){const s=this.generateId(m.tableName(t),e);let i;try{i=await this.client.get(s),await this.client.remove(s,i._rev)}catch(t){throw this.parseError(t)}return this.assignMetadata(i,i._rev)}async deleteAll(t,e,...r){const{log:s}=this.logCtx(r,this.deleteAll),i=m.tableName(t),o=await this.client.bulkGet({docs:e.map(t=>({id:this.generateId(i,t)}))}),c=o.results.reduce((t,e)=>(e.docs.forEach(e=>{if(e.error)throw this.parseError(e.error||new n("Missing valid response"));const r=Object.assign({},e.ok);r[a.DELETED]=!0,t.push(r)}),t),[]);return(await this.client.bulkDocs(c)).forEach(t=>{const e=t.error;e&&s.error(e+"")}),o.results.reduce((t,e)=>(e.docs.forEach(e=>{if(e.error||!e.ok)throw this.parseError(e.error||new n("Missing valid response"));const r=Object.assign({},e.ok);t.push(this.assignMetadata(r,e.ok[a.REV]))}),t),[])}async raw(t,e=!0,...r){try{const s=await this.client.find(t);if(s.warning){const{log:t}=await this.logCtx(r,this.raw,!0);t.for(this.raw).warn(s.warning)}return e?s.docs:s}catch(t){throw this.parseError(t)}}async view(t,e,r,...s){try{const s=`${t}/${e}`;return await this.client.query(s,r)}catch(t){throw this.parseError(t)}}parseError(t,e){return M.parseError(t,e)}static parseError(t,e){if(t instanceof c)return t;let r="";if("string"==typeof t){if(r=t,r.match(/already exist|update conflict/g))return new h(r);if(r.match(/missing|deleted/g))return new d(r)}else t.status?(r=t.status,e=e||t.message):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 h(e);case"404":return new d(e);case"400":return r.toString().match(/No\sindex\sexists/g)?new o(t):new n(t);default:return r.toString().match(/ECONNREFUSED/g)?new g(t):new n(t)}}static decoration(){super.decoration(),_.flavouredAs(k).for(w.CREATED_BY).define(l(D),C(w.CREATED_BY,{})).apply(),_.flavouredAs(k).for(w.UPDATED_BY).define(u(D),C(w.UPDATED_BY,{})).apply()}}f.setCurrent(k),M.decoration();const N="##VERSION##",U="##PACKAGE##";$.registerLibrary(U,N);export{x as DefaultLocalStoragePath,U as PACKAGE_NAME,M as PouchAdapter,k as PouchFlavour,A as PouchRepository,N as VERSION,D as createdByOnPouchCreateUpdate};
|
|
2
2
|
//# sourceMappingURL=for-pouch.js.map
|
package/dist/for-pouch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for-pouch.js","sources":["../src/constants.ts","../src/adapter.ts","../src/index.ts"],"sourcesContent":[null,null,null],"names":["PouchFlavour","DefaultLocalStoragePath","async","createdByOnPouchCreateUpdate","context","data","key","
|
|
1
|
+
{"version":3,"file":"for-pouch.js","sources":["../src/constants.ts","../src/PouchRepository.ts","../src/adapter.ts","../src/index.ts"],"sourcesContent":[null,null,null,null],"names":["PouchFlavour","DefaultLocalStoragePath","PouchRepository","CouchDBRepository","constructor","adapter","model","super","override","flags","for","async","createdByOnPouchCreateUpdate","context","data","key","uuid","get","e","UnsupportedError","PouchAdapter","CouchDBAdapter","config","alias","this","_pluginsRegistered","registerPlugins","plugins","PouchMapReduce","PouchReplication","PouchFind","plugin","PouchDB","Error","message","includes","buildClient","user","password","host","protocol","dbName","storagePath","encodeURIComponent","InternalError","getAdminClient","adminUser","_adminClient","adminPassword","getClient","_client","operation","args","randomUUID","Object","assign","UUID","repository","index","models","client","MAX_INDEX_ATTEMPTS","indexes","generateIndexes","existingIndexNames","Set","response","forEach","idx","name","add","indexName","ddoc","has","attempts","createIndex","status","error","docId","existing","remove","_rev","Promise","resolve","setTimeout","views","generateViews","view","put","_id","create","tableName","id","parseError","ok","Model","assignMetadata","rev","createAll","ids","bulkDocs","every","r","errors","reduce","accum","el","i","push","reason","join","assignMultipleMetadata","map","read","generateId","record","readAll","table","bulkGet","docs","results","d","result","CouchDBKeys","REV","update","updateAll","deleteAll","log","logCtx","docsToDelete","next","DELETED","err","String","raw","rawInput","docsOnly","find","warning","warn","viewName","options","_args","queryName","query","BaseError","code","match","ConflictError","NotFoundError","statusCode","toString","IndexError","ConnectionError","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/lib/PouchRepository.cjs
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PouchRepository = void 0;
|
|
4
|
+
const for_couchdb_1 = require("@decaf-ts/for-couchdb");
|
|
5
|
+
/**
|
|
6
|
+
* @description Repository implementation for PouchDB-backed models
|
|
7
|
+
* @summary Extends the CouchDBRepository with PouchAdapter-specific overrides so the repository can be proxied with the correct flags.
|
|
8
|
+
* @template M - Model type managed by this repository
|
|
9
|
+
* @memberOf module:for-pouch
|
|
10
|
+
*/
|
|
11
|
+
class PouchRepository extends for_couchdb_1.CouchDBRepository {
|
|
12
|
+
constructor(adapter, model) {
|
|
13
|
+
super(adapter, model);
|
|
14
|
+
}
|
|
15
|
+
override(flags) {
|
|
16
|
+
return super.override(flags).for(flags);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.PouchRepository = PouchRepository;
|
|
3
20
|
//# sourceMappingURL=PouchRepository.js.map
|
package/lib/PouchRepository.d.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
2
2
|
import { CouchDBRepository } from "@decaf-ts/for-couchdb";
|
|
3
|
+
import { ContextOf, FlagsOf } from "@decaf-ts/core";
|
|
4
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
3
5
|
import { PouchAdapter } from "./adapter";
|
|
4
6
|
/**
|
|
5
|
-
* @description
|
|
6
|
-
* @summary
|
|
7
|
-
*
|
|
8
|
-
* @template M - The model type that extends Model
|
|
9
|
-
* @typedef {Repository<M, MangoQuery, PouchAdapter>} PouchRepository
|
|
7
|
+
* @description Repository implementation for PouchDB-backed models
|
|
8
|
+
* @summary Extends the CouchDBRepository with PouchAdapter-specific overrides so the repository can be proxied with the correct flags.
|
|
9
|
+
* @template M - Model type managed by this repository
|
|
10
10
|
* @memberOf module:for-pouch
|
|
11
11
|
*/
|
|
12
|
-
export
|
|
12
|
+
export declare class PouchRepository<M extends Model> extends CouchDBRepository<M, PouchAdapter> {
|
|
13
|
+
constructor(adapter: PouchAdapter, model: Constructor<M>);
|
|
14
|
+
override(flags: Partial<FlagsOf<ContextOf<PouchAdapter>>>): this;
|
|
15
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PouchRepository.js","sourceRoot":"","sources":["../src/PouchRepository.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"PouchRepository.js","sourceRoot":"","sources":["../src/PouchRepository.ts"],"names":[],"mappings":";;;AACA,uDAA0D;AAK1D;;;;;GAKG;AACH,MAAa,eAAiC,SAAQ,+BAGrD;IACC,YAAY,OAAqB,EAAE,KAAqB;QACtD,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;IAEQ,QAAQ,CACf,KAAgD;QAEhD,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAyB,CAAC,CAAC;IAC9D,CAAC;CACF;AAbD,0CAaC"}
|