@decaf-ts/for-pouch 0.0.2
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/LICENSE.md +21 -0
- package/README.md +297 -0
- package/dist/esm/for-pouch.bundle.min.esm.js +2 -0
- package/dist/esm/for-pouch.bundle.min.esm.js.LICENSE.txt +14 -0
- package/dist/for-pouch.bundle.min.js +2 -0
- package/dist/for-pouch.bundle.min.js.LICENSE.txt +14 -0
- package/lib/PouchRepository.cjs +4 -0
- package/lib/PouchRepository.d.ts +7 -0
- package/lib/adapter.cjs +105 -0
- package/lib/adapter.d.ts +12 -0
- package/lib/esm/PouchRepository.d.ts +7 -0
- package/lib/esm/PouchRepository.js +3 -0
- package/lib/esm/adapter.d.ts +12 -0
- package/lib/esm/adapter.js +101 -0
- package/lib/esm/index.d.ts +15 -0
- package/lib/esm/index.js +17 -0
- package/lib/esm/utils.d.ts +21 -0
- package/lib/esm/utils.js +92 -0
- package/lib/index.cjs +34 -0
- package/lib/index.d.ts +15 -0
- package/lib/utils.cjs +96 -0
- package/lib/utils.d.ts +21 -0
- package/package.json +128 -0
package/lib/adapter.cjs
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PouchAdapter = void 0;
|
|
4
|
+
require("reflect-metadata");
|
|
5
|
+
const for_couchdb_1 = require("@decaf-ts/for-couchdb");
|
|
6
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
7
|
+
const core_1 = require("@decaf-ts/core");
|
|
8
|
+
class PouchAdapter extends for_couchdb_1.CouchDBAdapter {
|
|
9
|
+
constructor(scope, flavour = "pouch") {
|
|
10
|
+
super(scope, flavour);
|
|
11
|
+
}
|
|
12
|
+
async user() {
|
|
13
|
+
const url = this.native.server.name;
|
|
14
|
+
if (url) {
|
|
15
|
+
const regexp = /https?:\/\/(.+?):.+?@/g;
|
|
16
|
+
const m = regexp.exec(url);
|
|
17
|
+
if (m) {
|
|
18
|
+
return new core_1.User({
|
|
19
|
+
id: m[1],
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
throw new db_decorators_1.InternalError("Not implemented");
|
|
24
|
+
}
|
|
25
|
+
async readAll(tableName, ids) {
|
|
26
|
+
const results = await this.native.fetch({ keys: ids.map((id) => this.generateId(tableName, id)) }, {});
|
|
27
|
+
return results.rows.map((r) => {
|
|
28
|
+
if (r instanceof Error)
|
|
29
|
+
throw r;
|
|
30
|
+
const res = Object.assign({}, r);
|
|
31
|
+
Object.defineProperty(res, core_1.PersistenceKeys.METADATA, {
|
|
32
|
+
enumerable: false,
|
|
33
|
+
writable: false,
|
|
34
|
+
value: r[for_couchdb_1.CouchDBKeys.REV],
|
|
35
|
+
});
|
|
36
|
+
return res;
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
async deleteAll(tableName, ids) {
|
|
40
|
+
const results = await this.native.fetch({ keys: ids.map((id) => this.generateId(tableName, id)) }, {});
|
|
41
|
+
const deletion = await this.native.bulk({
|
|
42
|
+
docs: results.rows.map((r) => {
|
|
43
|
+
r[for_couchdb_1.CouchDBKeys.DELETED] = true;
|
|
44
|
+
return r;
|
|
45
|
+
}),
|
|
46
|
+
});
|
|
47
|
+
deletion.forEach((d) => {
|
|
48
|
+
if (d.error)
|
|
49
|
+
console.error(d.error);
|
|
50
|
+
});
|
|
51
|
+
return results.rows.map((r) => {
|
|
52
|
+
if (r instanceof Error)
|
|
53
|
+
throw r;
|
|
54
|
+
const res = Object.assign({}, r);
|
|
55
|
+
Object.defineProperty(res, core_1.PersistenceKeys.METADATA, {
|
|
56
|
+
enumerable: false,
|
|
57
|
+
writable: false,
|
|
58
|
+
value: r[for_couchdb_1.CouchDBKeys.REV],
|
|
59
|
+
});
|
|
60
|
+
return res;
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
parseError(err, reason) {
|
|
64
|
+
return PouchAdapter.parseError(err, reason);
|
|
65
|
+
}
|
|
66
|
+
static parseError(err, reason) {
|
|
67
|
+
// return super.parseError(err, reason);
|
|
68
|
+
if (err instanceof db_decorators_1.BaseError)
|
|
69
|
+
return err;
|
|
70
|
+
let code = "";
|
|
71
|
+
if (typeof err === "string") {
|
|
72
|
+
code = err;
|
|
73
|
+
if (code.match(/already exist|update conflict/g))
|
|
74
|
+
return new db_decorators_1.ConflictError(code);
|
|
75
|
+
if (code.match(/missing|deleted/g))
|
|
76
|
+
return new db_decorators_1.NotFoundError(code);
|
|
77
|
+
}
|
|
78
|
+
else if (err.status) {
|
|
79
|
+
code = err.status;
|
|
80
|
+
reason = reason || err.message;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
code = err.message;
|
|
84
|
+
}
|
|
85
|
+
switch (code.toString()) {
|
|
86
|
+
case "401":
|
|
87
|
+
case "412":
|
|
88
|
+
case "409":
|
|
89
|
+
return new db_decorators_1.ConflictError(reason);
|
|
90
|
+
case "404":
|
|
91
|
+
return new db_decorators_1.NotFoundError(reason);
|
|
92
|
+
case "400":
|
|
93
|
+
if (code.toString().match(/No\sindex\sexists/g))
|
|
94
|
+
return new for_couchdb_1.IndexError(err);
|
|
95
|
+
return new db_decorators_1.InternalError(err);
|
|
96
|
+
default:
|
|
97
|
+
if (code.toString().match(/ECONNREFUSED/g))
|
|
98
|
+
return new core_1.ConnectionError(err);
|
|
99
|
+
return new db_decorators_1.InternalError(err);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
exports.PouchAdapter = PouchAdapter;
|
|
104
|
+
|
|
105
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUFXLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDL0IsSUFBSSxHQUFJLEdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDM0IsTUFBTSxHQUFHLE1BQU0sSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQ2pDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFDckIsQ0FBQztRQUVELFFBQVEsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDeEIsS0FBSyxLQUFLLENBQUM7WUFDWCxLQUFLLEtBQUssQ0FBQztZQUNYLEtBQUssS0FBSztnQkFDUixPQUFPLElBQUksNkJBQWEsQ0FBQyxNQUFnQixDQUFDLENBQUM7WUFDN0MsS0FBSyxLQUFLO2dCQUNSLE9BQU8sSUFBSSw2QkFBYSxDQUFDLE1BQWdCLENBQUMsQ0FBQztZQUM3QyxLQUFLLEtBQUs7Z0JBQ1IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDO29CQUM3QyxPQUFPLElBQUksd0JBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDN0IsT0FBTyxJQUFJLDZCQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEM7Z0JBQ0UsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQztvQkFDeEMsT0FBTyxJQUFJLHNCQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2xDLE9BQU8sSUFBSSw2QkFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF6R0Qsb0NBeUdDIiwiZmlsZSI6ImFkYXB0ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJyZWZsZWN0LW1ldGFkYXRhXCI7XG5pbXBvcnQge1xuICBDb3VjaERCQWRhcHRlcixcbiAgQ291Y2hEQktleXMsXG4gIERvY3VtZW50QnVsa1Jlc3BvbnNlLFxuICBEb2N1bWVudFNjb3BlLFxuICBJbmRleEVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5pbXBvcnQge1xuICBCYXNlRXJyb3IsXG4gIENvbmZsaWN0RXJyb3IsXG4gIEludGVybmFsRXJyb3IsXG4gIE5vdEZvdW5kRXJyb3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQ29ubmVjdGlvbkVycm9yLCBQZXJzaXN0ZW5jZUtleXMsIFVzZXIgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcblxuZXhwb3J0IGNsYXNzIFBvdWNoQWRhcHRlciBleHRlbmRzIENvdWNoREJBZGFwdGVyIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IERvY3VtZW50U2NvcGU8YW55PiwgZmxhdm91cjogc3RyaW5nID0gXCJwb3VjaFwiKSB7XG4gICAgc3VwZXIoc2NvcGUsIGZsYXZvdXIpO1xuICB9XG5cbiAgYXN5bmMgdXNlcigpOiBQcm9taXNlPFVzZXI+IHtcbiAgICBjb25zdCB1cmwgPSAodGhpcy5uYXRpdmUuc2VydmVyIGFzIHVua25vd24gYXMgeyBuYW1lOiBzdHJpbmcgfSkubmFtZTtcbiAgICBpZiAodXJsKSB7XG4gICAgICBjb25zdCByZWdleHAgPSAvaHR0cHM/OlxcL1xcLyguKz8pOi4rP0AvZztcbiAgICAgIGNvbnN0IG0gPSByZWdleHAuZXhlYyh1cmwpO1xuICAgICAgaWYgKG0pIHtcbiAgICAgICAgcmV0dXJuIG5ldyBVc2VyKHtcbiAgICAgICAgICBpZDogbVsxXSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiTm90IGltcGxlbWVudGVkXCIpO1xuICB9XG5cbiAgYXN5bmMgcmVhZEFsbChcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZHM6IChzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQpW11cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+IHtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy5uYXRpdmUuZmV0Y2goXG4gICAgICB7IGtleXM6IGlkcy5tYXAoKGlkKSA9PiB0aGlzLmdlbmVyYXRlSWQodGFibGVOYW1lLCBpZCBhcyBhbnkpKSB9LFxuICAgICAge31cbiAgICApO1xuICAgIHJldHVybiByZXN1bHRzLnJvd3MubWFwKChyKSA9PiB7XG4gICAgICBpZiAociBpbnN0YW5jZW9mIEVycm9yKSB0aHJvdyByO1xuICAgICAgY29uc3QgcmVzID0gT2JqZWN0LmFzc2lnbih7fSwgcik7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVzLCBQZXJzaXN0ZW5jZUtleXMuTUVUQURBVEEsIHtcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgdmFsdWU6IChyIGFzIGFueSlbQ291Y2hEQktleXMuUkVWXSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUFsbChcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZHM6IChzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQpW11cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+IHtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy5uYXRpdmUuZmV0Y2goXG4gICAgICB7IGtleXM6IGlkcy5tYXAoKGlkKSA9PiB0aGlzLmdlbmVyYXRlSWQodGFibGVOYW1lLCBpZCBhcyBhbnkpKSB9LFxuICAgICAge31cbiAgICApO1xuICAgIGNvbnN0IGRlbGV0aW9uOiBEb2N1bWVudEJ1bGtSZXNwb25zZVtdID0gYXdhaXQgdGhpcy5uYXRpdmUuYnVsayh7XG4gICAgICBkb2NzOiByZXN1bHRzLnJvd3MubWFwKChyKSA9PiB7XG4gICAgICAgIChyIGFzIGFueSlbQ291Y2hEQktleXMuREVMRVRFRF0gPSB0cnVlO1xuICAgICAgICByZXR1cm4gcjtcbiAgICAgIH0pLFxuICAgIH0pO1xuICAgIGRlbGV0aW9uLmZvckVhY2goKGQ6IERvY3VtZW50QnVsa1Jlc3BvbnNlKSA9PiB7XG4gICAgICBpZiAoZC5lcnJvcikgY29uc29sZS5lcnJvcihkLmVycm9yKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0cy5yb3dzLm1hcCgocikgPT4ge1xuICAgICAgaWYgKHIgaW5zdGFuY2VvZiBFcnJvcikgdGhyb3cgcjtcbiAgICAgIGNvbnN0IHJlcyA9IE9iamVjdC5hc3NpZ24oe30sIHIpO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcywgUGVyc2lzdGVuY2VLZXlzLk1FVEFEQVRBLCB7XG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgIHZhbHVlOiAociBhcyBhbnkpW0NvdWNoREJLZXlzLlJFVl0sXG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfSk7XG4gIH1cblxuICBwYXJzZUVycm9yKGVycjogRXJyb3IgfCBzdHJpbmcsIHJlYXNvbj86IHN0cmluZyk6IEJhc2VFcnJvciB7XG4gICAgcmV0dXJuIFBvdWNoQWRhcHRlci5wYXJzZUVycm9yKGVyciwgcmVhc29uKTtcbiAgfVxuXG4gIHN0YXRpYyBwYXJzZUVycm9yKGVycjogRXJyb3IgfCBzdHJpbmcsIHJlYXNvbj86IHN0cmluZyk6IEJhc2VFcnJvciB7XG4gICAgLy8gcmV0dXJuIHN1cGVyLnBhcnNlRXJyb3IoZXJyLCByZWFzb24pO1xuICAgIGlmIChlcnIgaW5zdGFuY2VvZiBCYXNlRXJyb3IpIHJldHVybiBlcnIgYXMgYW55O1xuICAgIGxldCBjb2RlOiBzdHJpbmcgPSBcIlwiO1xuICAgIGlmICh0eXBlb2YgZXJyID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBjb2RlID0gZXJyO1xuICAgICAgaWYgKGNvZGUubWF0Y2goL2FscmVhZHkgZXhpc3R8dXBkYXRlIGNvbmZsaWN0L2cpKVxuICAgICAgICByZXR1cm4gbmV3IENvbmZsaWN0RXJyb3IoY29kZSk7XG4gICAgICBpZiAoY29kZS5tYXRjaCgvbWlzc2luZ3xkZWxldGVkL2cpKSByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IoY29kZSk7XG4gICAgfSBlbHNlIGlmICgoZXJyIGFzIGFueSkuc3RhdHVzKSB7XG4gICAgICBjb2RlID0gKGVyciBhcyBhbnkpLnN0YXR1cztcbiAgICAgIHJlYXNvbiA9IHJlYXNvbiB8fCBlcnIubWVzc2FnZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29kZSA9IGVyci5tZXNzYWdlO1xuICAgIH1cblxuICAgIHN3aXRjaCAoY29kZS50b1N0cmluZygpKSB7XG4gICAgICBjYXNlIFwiNDAxXCI6XG4gICAgICBjYXNlIFwiNDEyXCI6XG4gICAgICBjYXNlIFwiNDA5XCI6XG4gICAgICAgIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihyZWFzb24gYXMgc3RyaW5nKTtcbiAgICAgIGNhc2UgXCI0MDRcIjpcbiAgICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKHJlYXNvbiBhcyBzdHJpbmcpO1xuICAgICAgY2FzZSBcIjQwMFwiOlxuICAgICAgICBpZiAoY29kZS50b1N0cmluZygpLm1hdGNoKC9Ob1xcc2luZGV4XFxzZXhpc3RzL2cpKVxuICAgICAgICAgIHJldHVybiBuZXcgSW5kZXhFcnJvcihlcnIpO1xuICAgICAgICByZXR1cm4gbmV3IEludGVybmFsRXJyb3IoZXJyKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmIChjb2RlLnRvU3RyaW5nKCkubWF0Y2goL0VDT05OUkVGVVNFRC9nKSlcbiAgICAgICAgICByZXR1cm4gbmV3IENvbm5lY3Rpb25FcnJvcihlcnIpO1xuICAgICAgICByZXR1cm4gbmV3IEludGVybmFsRXJyb3IoZXJyKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/lib/adapter.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import "reflect-metadata";
|
|
2
|
+
import { CouchDBAdapter, DocumentScope } from "@decaf-ts/for-couchdb";
|
|
3
|
+
import { BaseError } from "@decaf-ts/db-decorators";
|
|
4
|
+
import { User } from "@decaf-ts/core";
|
|
5
|
+
export declare class PouchAdapter extends CouchDBAdapter {
|
|
6
|
+
constructor(scope: DocumentScope<any>, flavour?: string);
|
|
7
|
+
user(): Promise<User>;
|
|
8
|
+
readAll(tableName: string, ids: (string | number | bigint)[]): Promise<Record<string, any>[]>;
|
|
9
|
+
deleteAll(tableName: string, ids: (string | number | bigint)[]): Promise<Record<string, any>[]>;
|
|
10
|
+
parseError(err: Error | string, reason?: string): BaseError;
|
|
11
|
+
static parseError(err: Error | string, reason?: string): BaseError;
|
|
12
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
2
|
+
import { MangoQuery } from "@decaf-ts/for-couchdb";
|
|
3
|
+
import { PouchAdapter } from "./adapter";
|
|
4
|
+
import { Repository } from "@decaf-ts/core";
|
|
5
|
+
export interface PouchRepository<M extends Model> extends Repository<M, MangoQuery> {
|
|
6
|
+
adapter: PouchAdapter;
|
|
7
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9Qb3VjaFJlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJQb3VjaFJlcG9zaXRvcnkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IE1hbmdvUXVlcnkgfSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5pbXBvcnQgeyBQb3VjaEFkYXB0ZXIgfSBmcm9tIFwiLi9hZGFwdGVyXCI7XG5pbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG91Y2hSZXBvc2l0b3J5PE0gZXh0ZW5kcyBNb2RlbD5cbiAgZXh0ZW5kcyBSZXBvc2l0b3J5PE0sIE1hbmdvUXVlcnk+IHtcbiAgYWRhcHRlcjogUG91Y2hBZGFwdGVyO1xufVxuIl19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import "reflect-metadata";
|
|
2
|
+
import { CouchDBAdapter, DocumentScope } from "@decaf-ts/for-couchdb";
|
|
3
|
+
import { BaseError } from "@decaf-ts/db-decorators";
|
|
4
|
+
import { User } from "@decaf-ts/core";
|
|
5
|
+
export declare class PouchAdapter extends CouchDBAdapter {
|
|
6
|
+
constructor(scope: DocumentScope<any>, flavour?: string);
|
|
7
|
+
user(): Promise<User>;
|
|
8
|
+
readAll(tableName: string, ids: (string | number | bigint)[]): Promise<Record<string, any>[]>;
|
|
9
|
+
deleteAll(tableName: string, ids: (string | number | bigint)[]): Promise<Record<string, any>[]>;
|
|
10
|
+
parseError(err: Error | string, reason?: string): BaseError;
|
|
11
|
+
static parseError(err: Error | string, reason?: string): BaseError;
|
|
12
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import "reflect-metadata";
|
|
2
|
+
import { CouchDBAdapter, CouchDBKeys, IndexError, } from "@decaf-ts/for-couchdb";
|
|
3
|
+
import { BaseError, ConflictError, InternalError, NotFoundError, } from "@decaf-ts/db-decorators";
|
|
4
|
+
import { ConnectionError, PersistenceKeys, User } from "@decaf-ts/core";
|
|
5
|
+
export class PouchAdapter extends CouchDBAdapter {
|
|
6
|
+
constructor(scope, flavour = "pouch") {
|
|
7
|
+
super(scope, flavour);
|
|
8
|
+
}
|
|
9
|
+
async user() {
|
|
10
|
+
const url = this.native.server.name;
|
|
11
|
+
if (url) {
|
|
12
|
+
const regexp = /https?:\/\/(.+?):.+?@/g;
|
|
13
|
+
const m = regexp.exec(url);
|
|
14
|
+
if (m) {
|
|
15
|
+
return new User({
|
|
16
|
+
id: m[1],
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
throw new InternalError("Not implemented");
|
|
21
|
+
}
|
|
22
|
+
async readAll(tableName, ids) {
|
|
23
|
+
const results = await this.native.fetch({ keys: ids.map((id) => this.generateId(tableName, id)) }, {});
|
|
24
|
+
return results.rows.map((r) => {
|
|
25
|
+
if (r instanceof Error)
|
|
26
|
+
throw r;
|
|
27
|
+
const res = Object.assign({}, r);
|
|
28
|
+
Object.defineProperty(res, PersistenceKeys.METADATA, {
|
|
29
|
+
enumerable: false,
|
|
30
|
+
writable: false,
|
|
31
|
+
value: r[CouchDBKeys.REV],
|
|
32
|
+
});
|
|
33
|
+
return res;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
async deleteAll(tableName, ids) {
|
|
37
|
+
const results = await this.native.fetch({ keys: ids.map((id) => this.generateId(tableName, id)) }, {});
|
|
38
|
+
const deletion = await this.native.bulk({
|
|
39
|
+
docs: results.rows.map((r) => {
|
|
40
|
+
r[CouchDBKeys.DELETED] = true;
|
|
41
|
+
return r;
|
|
42
|
+
}),
|
|
43
|
+
});
|
|
44
|
+
deletion.forEach((d) => {
|
|
45
|
+
if (d.error)
|
|
46
|
+
console.error(d.error);
|
|
47
|
+
});
|
|
48
|
+
return results.rows.map((r) => {
|
|
49
|
+
if (r instanceof Error)
|
|
50
|
+
throw r;
|
|
51
|
+
const res = Object.assign({}, r);
|
|
52
|
+
Object.defineProperty(res, PersistenceKeys.METADATA, {
|
|
53
|
+
enumerable: false,
|
|
54
|
+
writable: false,
|
|
55
|
+
value: r[CouchDBKeys.REV],
|
|
56
|
+
});
|
|
57
|
+
return res;
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
parseError(err, reason) {
|
|
61
|
+
return PouchAdapter.parseError(err, reason);
|
|
62
|
+
}
|
|
63
|
+
static parseError(err, reason) {
|
|
64
|
+
// return super.parseError(err, reason);
|
|
65
|
+
if (err instanceof BaseError)
|
|
66
|
+
return err;
|
|
67
|
+
let code = "";
|
|
68
|
+
if (typeof err === "string") {
|
|
69
|
+
code = err;
|
|
70
|
+
if (code.match(/already exist|update conflict/g))
|
|
71
|
+
return new ConflictError(code);
|
|
72
|
+
if (code.match(/missing|deleted/g))
|
|
73
|
+
return new NotFoundError(code);
|
|
74
|
+
}
|
|
75
|
+
else if (err.status) {
|
|
76
|
+
code = err.status;
|
|
77
|
+
reason = reason || err.message;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
code = err.message;
|
|
81
|
+
}
|
|
82
|
+
switch (code.toString()) {
|
|
83
|
+
case "401":
|
|
84
|
+
case "412":
|
|
85
|
+
case "409":
|
|
86
|
+
return new ConflictError(reason);
|
|
87
|
+
case "404":
|
|
88
|
+
return new NotFoundError(reason);
|
|
89
|
+
case "400":
|
|
90
|
+
if (code.toString().match(/No\sindex\sexists/g))
|
|
91
|
+
return new IndexError(err);
|
|
92
|
+
return new InternalError(err);
|
|
93
|
+
default:
|
|
94
|
+
if (code.toString().match(/ECONNREFUSED/g))
|
|
95
|
+
return new ConnectionError(err);
|
|
96
|
+
return new InternalError(err);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,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ImltcG9ydCBcInJlZmxlY3QtbWV0YWRhdGFcIjtcbmltcG9ydCB7XG4gIENvdWNoREJBZGFwdGVyLFxuICBDb3VjaERCS2V5cyxcbiAgRG9jdW1lbnRCdWxrUmVzcG9uc2UsXG4gIERvY3VtZW50U2NvcGUsXG4gIEluZGV4RXJyb3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZm9yLWNvdWNoZGJcIjtcbmltcG9ydCB7XG4gIEJhc2VFcnJvcixcbiAgQ29uZmxpY3RFcnJvcixcbiAgSW50ZXJuYWxFcnJvcixcbiAgTm90Rm91bmRFcnJvcixcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb25uZWN0aW9uRXJyb3IsIFBlcnNpc3RlbmNlS2V5cywgVXNlciB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuXG5leHBvcnQgY2xhc3MgUG91Y2hBZGFwdGVyIGV4dGVuZHMgQ291Y2hEQkFkYXB0ZXIge1xuICBjb25zdHJ1Y3RvcihzY29wZTogRG9jdW1lbnRTY29wZTxhbnk+LCBmbGF2b3VyOiBzdHJpbmcgPSBcInBvdWNoXCIpIHtcbiAgICBzdXBlcihzY29wZSwgZmxhdm91cik7XG4gIH1cblxuICBhc3luYyB1c2VyKCk6IFByb21pc2U8VXNlcj4ge1xuICAgIGNvbnN0IHVybCA9ICh0aGlzLm5hdGl2ZS5zZXJ2ZXIgYXMgdW5rbm93biBhcyB7IG5hbWU6IHN0cmluZyB9KS5uYW1lO1xuICAgIGlmICh1cmwpIHtcbiAgICAgIGNvbnN0IHJlZ2V4cCA9IC9odHRwcz86XFwvXFwvKC4rPyk6Lis/QC9nO1xuICAgICAgY29uc3QgbSA9IHJlZ2V4cC5leGVjKHVybCk7XG4gICAgICBpZiAobSkge1xuICAgICAgICByZXR1cm4gbmV3IFVzZXIoe1xuICAgICAgICAgIGlkOiBtWzFdLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJOb3QgaW1wbGVtZW50ZWRcIik7XG4gIH1cblxuICBhc3luYyByZWFkQWxsKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkczogKHN0cmluZyB8IG51bWJlciB8IGJpZ2ludClbXVxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT5bXT4ge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCB0aGlzLm5hdGl2ZS5mZXRjaChcbiAgICAgIHsga2V5czogaWRzLm1hcCgoaWQpID0+IHRoaXMuZ2VuZXJhdGVJZCh0YWJsZU5hbWUsIGlkIGFzIGFueSkpIH0sXG4gICAgICB7fVxuICAgICk7XG4gICAgcmV0dXJuIHJlc3VsdHMucm93cy5tYXAoKHIpID0+IHtcbiAgICAgIGlmIChyIGluc3RhbmNlb2YgRXJyb3IpIHRocm93IHI7XG4gICAgICBjb25zdCByZXMgPSBPYmplY3QuYXNzaWduKHt9LCByKTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZXMsIFBlcnNpc3RlbmNlS2V5cy5NRVRBREFUQSwge1xuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgICB2YWx1ZTogKHIgYXMgYW55KVtDb3VjaERCS2V5cy5SRVZdLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlQWxsKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkczogKHN0cmluZyB8IG51bWJlciB8IGJpZ2ludClbXVxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT5bXT4ge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCB0aGlzLm5hdGl2ZS5mZXRjaChcbiAgICAgIHsga2V5czogaWRzLm1hcCgoaWQpID0+IHRoaXMuZ2VuZXJhdGVJZCh0YWJsZU5hbWUsIGlkIGFzIGFueSkpIH0sXG4gICAgICB7fVxuICAgICk7XG4gICAgY29uc3QgZGVsZXRpb246IERvY3VtZW50QnVsa1Jlc3BvbnNlW10gPSBhd2FpdCB0aGlzLm5hdGl2ZS5idWxrKHtcbiAgICAgIGRvY3M6IHJlc3VsdHMucm93cy5tYXAoKHIpID0+IHtcbiAgICAgICAgKHIgYXMgYW55KVtDb3VjaERCS2V5cy5ERUxFVEVEXSA9IHRydWU7XG4gICAgICAgIHJldHVybiByO1xuICAgICAgfSksXG4gICAgfSk7XG4gICAgZGVsZXRpb24uZm9yRWFjaCgoZDogRG9jdW1lbnRCdWxrUmVzcG9uc2UpID0+IHtcbiAgICAgIGlmIChkLmVycm9yKSBjb25zb2xlLmVycm9yKGQuZXJyb3IpO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHRzLnJvd3MubWFwKChyKSA9PiB7XG4gICAgICBpZiAociBpbnN0YW5jZW9mIEVycm9yKSB0aHJvdyByO1xuICAgICAgY29uc3QgcmVzID0gT2JqZWN0LmFzc2lnbih7fSwgcik7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVzLCBQZXJzaXN0ZW5jZUtleXMuTUVUQURBVEEsIHtcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgdmFsdWU6IChyIGFzIGFueSlbQ291Y2hEQktleXMuUkVWXSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9KTtcbiAgfVxuXG4gIHBhcnNlRXJyb3IoZXJyOiBFcnJvciB8IHN0cmluZywgcmVhc29uPzogc3RyaW5nKTogQmFzZUVycm9yIHtcbiAgICByZXR1cm4gUG91Y2hBZGFwdGVyLnBhcnNlRXJyb3IoZXJyLCByZWFzb24pO1xuICB9XG5cbiAgc3RhdGljIHBhcnNlRXJyb3IoZXJyOiBFcnJvciB8IHN0cmluZywgcmVhc29uPzogc3RyaW5nKTogQmFzZUVycm9yIHtcbiAgICAvLyByZXR1cm4gc3VwZXIucGFyc2VFcnJvcihlcnIsIHJlYXNvbik7XG4gICAgaWYgKGVyciBpbnN0YW5jZW9mIEJhc2VFcnJvcikgcmV0dXJuIGVyciBhcyBhbnk7XG4gICAgbGV0IGNvZGU6IHN0cmluZyA9IFwiXCI7XG4gICAgaWYgKHR5cGVvZiBlcnIgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIGNvZGUgPSBlcnI7XG4gICAgICBpZiAoY29kZS5tYXRjaCgvYWxyZWFkeSBleGlzdHx1cGRhdGUgY29uZmxpY3QvZykpXG4gICAgICAgIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihjb2RlKTtcbiAgICAgIGlmIChjb2RlLm1hdGNoKC9taXNzaW5nfGRlbGV0ZWQvZykpIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihjb2RlKTtcbiAgICB9IGVsc2UgaWYgKChlcnIgYXMgYW55KS5zdGF0dXMpIHtcbiAgICAgIGNvZGUgPSAoZXJyIGFzIGFueSkuc3RhdHVzO1xuICAgICAgcmVhc29uID0gcmVhc29uIHx8IGVyci5tZXNzYWdlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb2RlID0gZXJyLm1lc3NhZ2U7XG4gICAgfVxuXG4gICAgc3dpdGNoIChjb2RlLnRvU3RyaW5nKCkpIHtcbiAgICAgIGNhc2UgXCI0MDFcIjpcbiAgICAgIGNhc2UgXCI0MTJcIjpcbiAgICAgIGNhc2UgXCI0MDlcIjpcbiAgICAgICAgcmV0dXJuIG5ldyBDb25mbGljdEVycm9yKHJlYXNvbiBhcyBzdHJpbmcpO1xuICAgICAgY2FzZSBcIjQwNFwiOlxuICAgICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IocmVhc29uIGFzIHN0cmluZyk7XG4gICAgICBjYXNlIFwiNDAwXCI6XG4gICAgICAgIGlmIChjb2RlLnRvU3RyaW5nKCkubWF0Y2goL05vXFxzaW5kZXhcXHNleGlzdHMvZykpXG4gICAgICAgICAgcmV0dXJuIG5ldyBJbmRleEVycm9yKGVycik7XG4gICAgICAgIHJldHVybiBuZXcgSW50ZXJuYWxFcnJvcihlcnIpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKGNvZGUudG9TdHJpbmcoKS5tYXRjaCgvRUNPTk5SRUZVU0VEL2cpKVxuICAgICAgICAgIHJldHVybiBuZXcgQ29ubmVjdGlvbkVycm9yKGVycik7XG4gICAgICAgIHJldHVybiBuZXcgSW50ZXJuYWxFcnJvcihlcnIpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export * from "./adapter";
|
|
2
|
+
export * from "./PouchRepository";
|
|
3
|
+
export * from "./utils";
|
|
4
|
+
/**
|
|
5
|
+
* @summary Module summary
|
|
6
|
+
* @description Module description
|
|
7
|
+
* @module for-nano
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* @summary stores the current package version
|
|
11
|
+
* @description this is how you should document a constant
|
|
12
|
+
* @const VERSION
|
|
13
|
+
* @memberOf module:ts-workspace
|
|
14
|
+
*/
|
|
15
|
+
export declare const VERSION = "0.0.1";
|
package/lib/esm/index.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export * from "./adapter";
|
|
2
|
+
export * from "./PouchRepository";
|
|
3
|
+
export * from "./utils";
|
|
4
|
+
/**
|
|
5
|
+
* @summary Module summary
|
|
6
|
+
* @description Module description
|
|
7
|
+
* @module for-nano
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* @summary stores the current package version
|
|
11
|
+
* @description this is how you should document a constant
|
|
12
|
+
* @const VERSION
|
|
13
|
+
* @memberOf module:ts-workspace
|
|
14
|
+
*/
|
|
15
|
+
export const VERSION = "0.0.1";
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsU0FBUyxDQUFDO0FBRXhCOzs7O0dBSUc7QUFFSDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9hZGFwdGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Qb3VjaFJlcG9zaXRvcnlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgTW9kdWxlIHN1bW1hcnlcbiAqIEBkZXNjcmlwdGlvbiBNb2R1bGUgZGVzY3JpcHRpb25cbiAqIEBtb2R1bGUgZm9yLW5hbm9cbiAqL1xuXG4vKipcbiAqIEBzdW1tYXJ5IHN0b3JlcyB0aGUgY3VycmVudCBwYWNrYWdlIHZlcnNpb25cbiAqIEBkZXNjcmlwdGlvbiB0aGlzIGlzIGhvdyB5b3Ugc2hvdWxkIGRvY3VtZW50IGEgY29uc3RhbnRcbiAqIEBjb25zdCBWRVJTSU9OXG4gKiBAbWVtYmVyT2YgbW9kdWxlOnRzLXdvcmtzcGFjZVxuICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IFwiMC4wLjFcIjtcbiJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import Database = PouchDB.Database;
|
|
2
|
+
import { BulkFetchDocsWrapper, BulkModifyDocsWrapper, CreateIndexRequest, CreateIndexResponse, DatabaseAuthResponse, DatabaseSessionResponse, DocumentDestroyResponse, DocumentGetParams, DocumentInsertResponse, DocumentScope, MangoQuery, MangoResponse, ServerScope, DocumentFetchResponse } from "@decaf-ts/for-couchdb";
|
|
3
|
+
export declare function toServerScope(pouch: typeof PouchDB): {
|
|
4
|
+
pouch: typeof PouchDB;
|
|
5
|
+
use<D>(db: string): DocumentScope<D>;
|
|
6
|
+
auth(username: string, userpass: string): Promise<DatabaseAuthResponse>;
|
|
7
|
+
session(): Promise<DatabaseSessionResponse>;
|
|
8
|
+
};
|
|
9
|
+
export declare function toDocumentScope(database: Database): {
|
|
10
|
+
db: Database;
|
|
11
|
+
fetch(docnames: BulkFetchDocsWrapper): Promise<DocumentFetchResponse<any>>;
|
|
12
|
+
auth(username: string, userpass: string): Promise<DatabaseAuthResponse>;
|
|
13
|
+
session(): Promise<DatabaseSessionResponse>;
|
|
14
|
+
insert(document: any): Promise<DocumentInsertResponse>;
|
|
15
|
+
get(docname: string, params?: DocumentGetParams | undefined): Promise<any>;
|
|
16
|
+
destroy(docname: string, rev: string): Promise<DocumentDestroyResponse>;
|
|
17
|
+
bulk(docs: BulkModifyDocsWrapper): Promise<DocumentInsertResponse[]>;
|
|
18
|
+
createIndex(indexDef: CreateIndexRequest): Promise<CreateIndexResponse>;
|
|
19
|
+
find(query: MangoQuery): Promise<MangoResponse<any>>;
|
|
20
|
+
readonly server: ServerScope;
|
|
21
|
+
};
|
package/lib/esm/utils.js
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { InternalError } from "@decaf-ts/db-decorators";
|
|
2
|
+
export function toServerScope(pouch) {
|
|
3
|
+
return new (class {
|
|
4
|
+
constructor(pouch) {
|
|
5
|
+
this.pouch = pouch;
|
|
6
|
+
}
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
8
|
+
use(db) {
|
|
9
|
+
throw new Error("Method not implemented.");
|
|
10
|
+
}
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
12
|
+
auth(username, userpass) {
|
|
13
|
+
throw new Error("Method not implemented.");
|
|
14
|
+
}
|
|
15
|
+
session() {
|
|
16
|
+
throw new Error("Method not implemented.");
|
|
17
|
+
}
|
|
18
|
+
})(pouch);
|
|
19
|
+
}
|
|
20
|
+
export function toDocumentScope(database) {
|
|
21
|
+
return new (class {
|
|
22
|
+
constructor(db) {
|
|
23
|
+
this.db = db;
|
|
24
|
+
}
|
|
25
|
+
async fetch(docnames) {
|
|
26
|
+
const result = await this.db.bulkGet({
|
|
27
|
+
docs: docnames.keys.map((k) => ({ id: k })),
|
|
28
|
+
});
|
|
29
|
+
return {
|
|
30
|
+
offset: 0,
|
|
31
|
+
rows: result.results.reduce((accum, r) => {
|
|
32
|
+
const docs = r.docs.map((d) => {
|
|
33
|
+
if (d["error"])
|
|
34
|
+
throw new InternalError(d["error"]);
|
|
35
|
+
return d["ok"];
|
|
36
|
+
});
|
|
37
|
+
accum.push(...docs);
|
|
38
|
+
return accum;
|
|
39
|
+
}, []),
|
|
40
|
+
total_rows: 0,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
44
|
+
auth(username, userpass) {
|
|
45
|
+
throw new Error("Method not implemented.");
|
|
46
|
+
}
|
|
47
|
+
session() {
|
|
48
|
+
throw new Error("Method not implemented.");
|
|
49
|
+
}
|
|
50
|
+
async insert(document) {
|
|
51
|
+
return this.db.put(document);
|
|
52
|
+
}
|
|
53
|
+
get(docname, params) {
|
|
54
|
+
return new Promise((resolve, reject) => {
|
|
55
|
+
this.db.get(docname, params || {}, (err, result) => {
|
|
56
|
+
if (err)
|
|
57
|
+
return reject(err);
|
|
58
|
+
resolve(result);
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
destroy(docname, rev) {
|
|
63
|
+
return this.db.remove({ _id: docname, _rev: rev });
|
|
64
|
+
}
|
|
65
|
+
async bulk(docs) {
|
|
66
|
+
const results = await this.db.bulkDocs(docs.docs);
|
|
67
|
+
return results.map((r) => {
|
|
68
|
+
if (r instanceof Error)
|
|
69
|
+
return { ok: false };
|
|
70
|
+
return Object.assign({
|
|
71
|
+
ok: true,
|
|
72
|
+
}, r);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
async createIndex(indexDef) {
|
|
76
|
+
const result = await this.db.createIndex(indexDef);
|
|
77
|
+
return {
|
|
78
|
+
result: result.result,
|
|
79
|
+
id: indexDef.ddoc,
|
|
80
|
+
name: indexDef.name,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
find(query) {
|
|
84
|
+
return this.db.find(query);
|
|
85
|
+
}
|
|
86
|
+
get server() {
|
|
87
|
+
return this.db;
|
|
88
|
+
}
|
|
89
|
+
})(database);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,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NEIsQ0FBQztRQUMzQyxDQUFDO0tBQ0YsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ2YsQ0FBQyIsImZpbGUiOiJ1dGlscy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEYXRhYmFzZSA9IFBvdWNoREIuRGF0YWJhc2U7XG5pbXBvcnQge1xuICBCdWxrRmV0Y2hEb2NzV3JhcHBlcixcbiAgQnVsa01vZGlmeURvY3NXcmFwcGVyLFxuICBDcmVhdGVJbmRleFJlcXVlc3QsXG4gIENyZWF0ZUluZGV4UmVzcG9uc2UsXG4gIERhdGFiYXNlQXV0aFJlc3BvbnNlLFxuICBEYXRhYmFzZVNlc3Npb25SZXNwb25zZSxcbiAgRG9jdW1lbnREZXN0cm95UmVzcG9uc2UsXG4gIERvY3VtZW50R2V0UGFyYW1zLFxuICBEb2N1bWVudEluc2VydFJlc3BvbnNlLFxuICBEb2N1bWVudFNjb3BlLFxuICBNYW5nb1F1ZXJ5LFxuICBNYW5nb1Jlc3BvbnNlLFxuICBTZXJ2ZXJTY29wZSxcbiAgRG9jdW1lbnRGZXRjaFJlc3BvbnNlLFxufSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5pbXBvcnQgRmluZFJlcXVlc3QgPSBQb3VjaERCLkZpbmQuRmluZFJlcXVlc3Q7XG5pbXBvcnQgQnVsa0dldFJlc3BvbnNlID0gUG91Y2hEQi5Db3JlLkJ1bGtHZXRSZXNwb25zZTtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRvU2VydmVyU2NvcGUocG91Y2g6IHR5cGVvZiBQb3VjaERCKSB7XG4gIHJldHVybiBuZXcgKGNsYXNzIGltcGxlbWVudHMgU2VydmVyU2NvcGUge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBwb3VjaDogdHlwZW9mIFBvdWNoREIpIHt9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgdXNlPEQ+KGRiOiBzdHJpbmcpOiBEb2N1bWVudFNjb3BlPEQ+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBhdXRoKHVzZXJuYW1lOiBzdHJpbmcsIHVzZXJwYXNzOiBzdHJpbmcpOiBQcm9taXNlPERhdGFiYXNlQXV0aFJlc3BvbnNlPiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG5cbiAgICBzZXNzaW9uKCk6IFByb21pc2U8RGF0YWJhc2VTZXNzaW9uUmVzcG9uc2U+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cbiAgfSkocG91Y2gpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9Eb2N1bWVudFNjb3BlKGRhdGFiYXNlOiBEYXRhYmFzZSkge1xuICByZXR1cm4gbmV3IChjbGFzcyBpbXBsZW1lbnRzIERvY3VtZW50U2NvcGU8YW55PiB7XG4gICAgY29uc3RydWN0b3IocHVibGljIGRiOiBEYXRhYmFzZSkge31cblxuICAgIGFzeW5jIGZldGNoKFxuICAgICAgZG9jbmFtZXM6IEJ1bGtGZXRjaERvY3NXcmFwcGVyXG4gICAgKTogUHJvbWlzZTxEb2N1bWVudEZldGNoUmVzcG9uc2U8YW55Pj4ge1xuICAgICAgY29uc3QgcmVzdWx0OiBCdWxrR2V0UmVzcG9uc2U8YW55PiA9IGF3YWl0IHRoaXMuZGIuYnVsa0dldCh7XG4gICAgICAgIGRvY3M6IGRvY25hbWVzLmtleXMubWFwKChrOiBzdHJpbmcpID0+ICh7IGlkOiBrIH0pKSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgb2Zmc2V0OiAwLFxuICAgICAgICByb3dzOiByZXN1bHQucmVzdWx0cy5yZWR1Y2UoKGFjY3VtOiBhbnlbXSwgcikgPT4ge1xuICAgICAgICAgIGNvbnN0IGRvY3M6IGFueVtdID0gci5kb2NzLm1hcCgoZCkgPT4ge1xuICAgICAgICAgICAgaWYgKChkIGFzIGFueSlbXCJlcnJvclwiXSlcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoKGQgYXMgYW55KVtcImVycm9yXCJdKTtcbiAgICAgICAgICAgIHJldHVybiAoZCBhcyBhbnkpW1wib2tcIl0gYXMgYW55O1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGFjY3VtLnB1c2goLi4uZG9jcyk7XG4gICAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgICB9LCBbXSksXG4gICAgICAgIHRvdGFsX3Jvd3M6IDAsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBhdXRoKHVzZXJuYW1lOiBzdHJpbmcsIHVzZXJwYXNzOiBzdHJpbmcpOiBQcm9taXNlPERhdGFiYXNlQXV0aFJlc3BvbnNlPiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG4gICAgc2Vzc2lvbigpOiBQcm9taXNlPERhdGFiYXNlU2Vzc2lvblJlc3BvbnNlPiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG4gICAgYXN5bmMgaW5zZXJ0KGRvY3VtZW50OiBhbnkpOiBQcm9taXNlPERvY3VtZW50SW5zZXJ0UmVzcG9uc2U+IHtcbiAgICAgIHJldHVybiB0aGlzLmRiLnB1dChkb2N1bWVudCk7XG4gICAgfVxuICAgIGdldChkb2NuYW1lOiBzdHJpbmcsIHBhcmFtcz86IERvY3VtZW50R2V0UGFyYW1zIHwgdW5kZWZpbmVkKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxhbnk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgdGhpcy5kYi5nZXQoZG9jbmFtZSwgcGFyYW1zIHx8IHt9LCAoZXJyLCByZXN1bHQpID0+IHtcbiAgICAgICAgICBpZiAoZXJyKSByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBkZXN0cm95KGRvY25hbWU6IHN0cmluZywgcmV2OiBzdHJpbmcpOiBQcm9taXNlPERvY3VtZW50RGVzdHJveVJlc3BvbnNlPiB7XG4gICAgICByZXR1cm4gdGhpcy5kYi5yZW1vdmUoeyBfaWQ6IGRvY25hbWUsIF9yZXY6IHJldiB9KTtcbiAgICB9XG4gICAgYXN5bmMgYnVsayhkb2NzOiBCdWxrTW9kaWZ5RG9jc1dyYXBwZXIpOiBQcm9taXNlPERvY3VtZW50SW5zZXJ0UmVzcG9uc2VbXT4ge1xuICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IHRoaXMuZGIuYnVsa0RvY3MoZG9jcy5kb2NzKTtcbiAgICAgIHJldHVybiByZXN1bHRzLm1hcCgocikgPT4ge1xuICAgICAgICBpZiAociBpbnN0YW5jZW9mIEVycm9yKSByZXR1cm4geyBvazogZmFsc2UgfTtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAge1xuICAgICAgICAgICAgb2s6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICByXG4gICAgICAgICk7XG4gICAgICB9KSBhcyBEb2N1bWVudEluc2VydFJlc3BvbnNlW107XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZUluZGV4KFxuICAgICAgaW5kZXhEZWY6IENyZWF0ZUluZGV4UmVxdWVzdFxuICAgICk6IFByb21pc2U8Q3JlYXRlSW5kZXhSZXNwb25zZT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5kYi5jcmVhdGVJbmRleChpbmRleERlZiBhcyBhbnkpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmVzdWx0OiByZXN1bHQucmVzdWx0LFxuICAgICAgICBpZDogaW5kZXhEZWYuZGRvYyBhcyBzdHJpbmcsXG4gICAgICAgIG5hbWU6IGluZGV4RGVmLm5hbWUgYXMgc3RyaW5nLFxuICAgICAgfTtcbiAgICB9XG4gICAgZmluZChxdWVyeTogTWFuZ29RdWVyeSk6IFByb21pc2U8TWFuZ29SZXNwb25zZTxhbnk+PiB7XG4gICAgICByZXR1cm4gdGhpcy5kYi5maW5kKHF1ZXJ5IGFzIHVua25vd24gYXMgRmluZFJlcXVlc3Q8YW55Pik7XG4gICAgfVxuICAgIGdldCBzZXJ2ZXIoKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYiBhcyB1bmtub3duIGFzIFNlcnZlclNjb3BlO1xuICAgIH1cbiAgfSkoZGF0YWJhc2UpO1xufVxuIl19
|
package/lib/index.cjs
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.VERSION = void 0;
|
|
18
|
+
__exportStar(require("./adapter.cjs"), exports);
|
|
19
|
+
__exportStar(require("./PouchRepository.cjs"), exports);
|
|
20
|
+
__exportStar(require("./utils.cjs"), exports);
|
|
21
|
+
/**
|
|
22
|
+
* @summary Module summary
|
|
23
|
+
* @description Module description
|
|
24
|
+
* @module for-nano
|
|
25
|
+
*/
|
|
26
|
+
/**
|
|
27
|
+
* @summary stores the current package version
|
|
28
|
+
* @description this is how you should document a constant
|
|
29
|
+
* @const VERSION
|
|
30
|
+
* @memberOf module:ts-workspace
|
|
31
|
+
*/
|
|
32
|
+
exports.VERSION = "0.0.1";
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDRDQUEwQjtBQUMxQixvREFBa0M7QUFDbEMsMENBQXdCO0FBRXhCOzs7O0dBSUc7QUFFSDs7Ozs7R0FLRztBQUNVLFFBQUEsT0FBTyxHQUFHLE9BQU8sQ0FBQyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2FkYXB0ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1BvdWNoUmVwb3NpdG9yeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBNb2R1bGUgc3VtbWFyeVxuICogQGRlc2NyaXB0aW9uIE1vZHVsZSBkZXNjcmlwdGlvblxuICogQG1vZHVsZSBmb3ItbmFub1xuICovXG5cbi8qKlxuICogQHN1bW1hcnkgc3RvcmVzIHRoZSBjdXJyZW50IHBhY2thZ2UgdmVyc2lvblxuICogQGRlc2NyaXB0aW9uIHRoaXMgaXMgaG93IHlvdSBzaG91bGQgZG9jdW1lbnQgYSBjb25zdGFudFxuICogQGNvbnN0IFZFUlNJT05cbiAqIEBtZW1iZXJPZiBtb2R1bGU6dHMtd29ya3NwYWNlXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIwLjAuMVwiO1xuIl19
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export * from "./adapter";
|
|
2
|
+
export * from "./PouchRepository";
|
|
3
|
+
export * from "./utils";
|
|
4
|
+
/**
|
|
5
|
+
* @summary Module summary
|
|
6
|
+
* @description Module description
|
|
7
|
+
* @module for-nano
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* @summary stores the current package version
|
|
11
|
+
* @description this is how you should document a constant
|
|
12
|
+
* @const VERSION
|
|
13
|
+
* @memberOf module:ts-workspace
|
|
14
|
+
*/
|
|
15
|
+
export declare const VERSION = "0.0.1";
|
package/lib/utils.cjs
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toServerScope = toServerScope;
|
|
4
|
+
exports.toDocumentScope = toDocumentScope;
|
|
5
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
6
|
+
function toServerScope(pouch) {
|
|
7
|
+
return new (class {
|
|
8
|
+
constructor(pouch) {
|
|
9
|
+
this.pouch = pouch;
|
|
10
|
+
}
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
12
|
+
use(db) {
|
|
13
|
+
throw new Error("Method not implemented.");
|
|
14
|
+
}
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
16
|
+
auth(username, userpass) {
|
|
17
|
+
throw new Error("Method not implemented.");
|
|
18
|
+
}
|
|
19
|
+
session() {
|
|
20
|
+
throw new Error("Method not implemented.");
|
|
21
|
+
}
|
|
22
|
+
})(pouch);
|
|
23
|
+
}
|
|
24
|
+
function toDocumentScope(database) {
|
|
25
|
+
return new (class {
|
|
26
|
+
constructor(db) {
|
|
27
|
+
this.db = db;
|
|
28
|
+
}
|
|
29
|
+
async fetch(docnames) {
|
|
30
|
+
const result = await this.db.bulkGet({
|
|
31
|
+
docs: docnames.keys.map((k) => ({ id: k })),
|
|
32
|
+
});
|
|
33
|
+
return {
|
|
34
|
+
offset: 0,
|
|
35
|
+
rows: result.results.reduce((accum, r) => {
|
|
36
|
+
const docs = r.docs.map((d) => {
|
|
37
|
+
if (d["error"])
|
|
38
|
+
throw new db_decorators_1.InternalError(d["error"]);
|
|
39
|
+
return d["ok"];
|
|
40
|
+
});
|
|
41
|
+
accum.push(...docs);
|
|
42
|
+
return accum;
|
|
43
|
+
}, []),
|
|
44
|
+
total_rows: 0,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
48
|
+
auth(username, userpass) {
|
|
49
|
+
throw new Error("Method not implemented.");
|
|
50
|
+
}
|
|
51
|
+
session() {
|
|
52
|
+
throw new Error("Method not implemented.");
|
|
53
|
+
}
|
|
54
|
+
async insert(document) {
|
|
55
|
+
return this.db.put(document);
|
|
56
|
+
}
|
|
57
|
+
get(docname, params) {
|
|
58
|
+
return new Promise((resolve, reject) => {
|
|
59
|
+
this.db.get(docname, params || {}, (err, result) => {
|
|
60
|
+
if (err)
|
|
61
|
+
return reject(err);
|
|
62
|
+
resolve(result);
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
destroy(docname, rev) {
|
|
67
|
+
return this.db.remove({ _id: docname, _rev: rev });
|
|
68
|
+
}
|
|
69
|
+
async bulk(docs) {
|
|
70
|
+
const results = await this.db.bulkDocs(docs.docs);
|
|
71
|
+
return results.map((r) => {
|
|
72
|
+
if (r instanceof Error)
|
|
73
|
+
return { ok: false };
|
|
74
|
+
return Object.assign({
|
|
75
|
+
ok: true,
|
|
76
|
+
}, r);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
async createIndex(indexDef) {
|
|
80
|
+
const result = await this.db.createIndex(indexDef);
|
|
81
|
+
return {
|
|
82
|
+
result: result.result,
|
|
83
|
+
id: indexDef.ddoc,
|
|
84
|
+
name: indexDef.name,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
find(query) {
|
|
88
|
+
return this.db.find(query);
|
|
89
|
+
}
|
|
90
|
+
get server() {
|
|
91
|
+
return this.db;
|
|
92
|
+
}
|
|
93
|
+
})(database);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QzNDLENBQUM7S0FDRixDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDZixDQUFDIiwiZmlsZSI6InV0aWxzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERhdGFiYXNlID0gUG91Y2hEQi5EYXRhYmFzZTtcbmltcG9ydCB7XG4gIEJ1bGtGZXRjaERvY3NXcmFwcGVyLFxuICBCdWxrTW9kaWZ5RG9jc1dyYXBwZXIsXG4gIENyZWF0ZUluZGV4UmVxdWVzdCxcbiAgQ3JlYXRlSW5kZXhSZXNwb25zZSxcbiAgRGF0YWJhc2VBdXRoUmVzcG9uc2UsXG4gIERhdGFiYXNlU2Vzc2lvblJlc3BvbnNlLFxuICBEb2N1bWVudERlc3Ryb3lSZXNwb25zZSxcbiAgRG9jdW1lbnRHZXRQYXJhbXMsXG4gIERvY3VtZW50SW5zZXJ0UmVzcG9uc2UsXG4gIERvY3VtZW50U2NvcGUsXG4gIE1hbmdvUXVlcnksXG4gIE1hbmdvUmVzcG9uc2UsXG4gIFNlcnZlclNjb3BlLFxuICBEb2N1bWVudEZldGNoUmVzcG9uc2UsXG59IGZyb20gXCJAZGVjYWYtdHMvZm9yLWNvdWNoZGJcIjtcbmltcG9ydCBGaW5kUmVxdWVzdCA9IFBvdWNoREIuRmluZC5GaW5kUmVxdWVzdDtcbmltcG9ydCBCdWxrR2V0UmVzcG9uc2UgPSBQb3VjaERCLkNvcmUuQnVsa0dldFJlc3BvbnNlO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gdG9TZXJ2ZXJTY29wZShwb3VjaDogdHlwZW9mIFBvdWNoREIpIHtcbiAgcmV0dXJuIG5ldyAoY2xhc3MgaW1wbGVtZW50cyBTZXJ2ZXJTY29wZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHBvdWNoOiB0eXBlb2YgUG91Y2hEQikge31cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICB1c2U8RD4oZGI6IHN0cmluZyk6IERvY3VtZW50U2NvcGU8RD4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGF1dGgodXNlcm5hbWU6IHN0cmluZywgdXNlcnBhc3M6IHN0cmluZyk6IFByb21pc2U8RGF0YWJhc2VBdXRoUmVzcG9uc2U+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cblxuICAgIHNlc3Npb24oKTogUHJvbWlzZTxEYXRhYmFzZVNlc3Npb25SZXNwb25zZT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuICB9KShwb3VjaCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0RvY3VtZW50U2NvcGUoZGF0YWJhc2U6IERhdGFiYXNlKSB7XG4gIHJldHVybiBuZXcgKGNsYXNzIGltcGxlbWVudHMgRG9jdW1lbnRTY29wZTxhbnk+IHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZGI6IERhdGFiYXNlKSB7fVxuXG4gICAgYXN5bmMgZmV0Y2goXG4gICAgICBkb2NuYW1lczogQnVsa0ZldGNoRG9jc1dyYXBwZXJcbiAgICApOiBQcm9taXNlPERvY3VtZW50RmV0Y2hSZXNwb25zZTxhbnk+PiB7XG4gICAgICBjb25zdCByZXN1bHQ6IEJ1bGtHZXRSZXNwb25zZTxhbnk+ID0gYXdhaXQgdGhpcy5kYi5idWxrR2V0KHtcbiAgICAgICAgZG9jczogZG9jbmFtZXMua2V5cy5tYXAoKGs6IHN0cmluZykgPT4gKHsgaWQ6IGsgfSkpLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBvZmZzZXQ6IDAsXG4gICAgICAgIHJvd3M6IHJlc3VsdC5yZXN1bHRzLnJlZHVjZSgoYWNjdW06IGFueVtdLCByKSA9PiB7XG4gICAgICAgICAgY29uc3QgZG9jczogYW55W10gPSByLmRvY3MubWFwKChkKSA9PiB7XG4gICAgICAgICAgICBpZiAoKGQgYXMgYW55KVtcImVycm9yXCJdKVxuICAgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcigoZCBhcyBhbnkpW1wiZXJyb3JcIl0pO1xuICAgICAgICAgICAgcmV0dXJuIChkIGFzIGFueSlbXCJva1wiXSBhcyBhbnk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYWNjdW0ucHVzaCguLi5kb2NzKTtcbiAgICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICAgIH0sIFtdKSxcbiAgICAgICAgdG90YWxfcm93czogMCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGF1dGgodXNlcm5hbWU6IHN0cmluZywgdXNlcnBhc3M6IHN0cmluZyk6IFByb21pc2U8RGF0YWJhc2VBdXRoUmVzcG9uc2U+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cbiAgICBzZXNzaW9uKCk6IFByb21pc2U8RGF0YWJhc2VTZXNzaW9uUmVzcG9uc2U+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cbiAgICBhc3luYyBpbnNlcnQoZG9jdW1lbnQ6IGFueSk6IFByb21pc2U8RG9jdW1lbnRJbnNlcnRSZXNwb25zZT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZGIucHV0KGRvY3VtZW50KTtcbiAgICB9XG4gICAgZ2V0KGRvY25hbWU6IHN0cmluZywgcGFyYW1zPzogRG9jdW1lbnRHZXRQYXJhbXMgfCB1bmRlZmluZWQpOiBQcm9taXNlPGFueT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPGFueT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICB0aGlzLmRiLmdldChkb2NuYW1lLCBwYXJhbXMgfHwge30sIChlcnIsIHJlc3VsdCkgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGRlc3Ryb3koZG9jbmFtZTogc3RyaW5nLCByZXY6IHN0cmluZyk6IFByb21pc2U8RG9jdW1lbnREZXN0cm95UmVzcG9uc2U+IHtcbiAgICAgIHJldHVybiB0aGlzLmRiLnJlbW92ZSh7IF9pZDogZG9jbmFtZSwgX3JldjogcmV2IH0pO1xuICAgIH1cbiAgICBhc3luYyBidWxrKGRvY3M6IEJ1bGtNb2RpZnlEb2NzV3JhcHBlcik6IFByb21pc2U8RG9jdW1lbnRJbnNlcnRSZXNwb25zZVtdPiB7XG4gICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy5kYi5idWxrRG9jcyhkb2NzLmRvY3MpO1xuICAgICAgcmV0dXJuIHJlc3VsdHMubWFwKChyKSA9PiB7XG4gICAgICAgIGlmIChyIGluc3RhbmNlb2YgRXJyb3IpIHJldHVybiB7IG9rOiBmYWxzZSB9O1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvazogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJcbiAgICAgICAgKTtcbiAgICAgIH0pIGFzIERvY3VtZW50SW5zZXJ0UmVzcG9uc2VbXTtcbiAgICB9XG4gICAgYXN5bmMgY3JlYXRlSW5kZXgoXG4gICAgICBpbmRleERlZjogQ3JlYXRlSW5kZXhSZXF1ZXN0XG4gICAgKTogUHJvbWlzZTxDcmVhdGVJbmRleFJlc3BvbnNlPiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmRiLmNyZWF0ZUluZGV4KGluZGV4RGVmIGFzIGFueSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZXN1bHQ6IHJlc3VsdC5yZXN1bHQsXG4gICAgICAgIGlkOiBpbmRleERlZi5kZG9jIGFzIHN0cmluZyxcbiAgICAgICAgbmFtZTogaW5kZXhEZWYubmFtZSBhcyBzdHJpbmcsXG4gICAgICB9O1xuICAgIH1cbiAgICBmaW5kKHF1ZXJ5OiBNYW5nb1F1ZXJ5KTogUHJvbWlzZTxNYW5nb1Jlc3BvbnNlPGFueT4+IHtcbiAgICAgIHJldHVybiB0aGlzLmRiLmZpbmQocXVlcnkgYXMgdW5rbm93biBhcyBGaW5kUmVxdWVzdDxhbnk+KTtcbiAgICB9XG4gICAgZ2V0IHNlcnZlcigpIHtcbiAgICAgIHJldHVybiB0aGlzLmRiIGFzIHVua25vd24gYXMgU2VydmVyU2NvcGU7XG4gICAgfVxuICB9KShkYXRhYmFzZSk7XG59XG4iXX0=
|
package/lib/utils.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import Database = PouchDB.Database;
|
|
2
|
+
import { BulkFetchDocsWrapper, BulkModifyDocsWrapper, CreateIndexRequest, CreateIndexResponse, DatabaseAuthResponse, DatabaseSessionResponse, DocumentDestroyResponse, DocumentGetParams, DocumentInsertResponse, DocumentScope, MangoQuery, MangoResponse, ServerScope, DocumentFetchResponse } from "@decaf-ts/for-couchdb";
|
|
3
|
+
export declare function toServerScope(pouch: typeof PouchDB): {
|
|
4
|
+
pouch: typeof PouchDB;
|
|
5
|
+
use<D>(db: string): DocumentScope<D>;
|
|
6
|
+
auth(username: string, userpass: string): Promise<DatabaseAuthResponse>;
|
|
7
|
+
session(): Promise<DatabaseSessionResponse>;
|
|
8
|
+
};
|
|
9
|
+
export declare function toDocumentScope(database: Database): {
|
|
10
|
+
db: Database;
|
|
11
|
+
fetch(docnames: BulkFetchDocsWrapper): Promise<DocumentFetchResponse<any>>;
|
|
12
|
+
auth(username: string, userpass: string): Promise<DatabaseAuthResponse>;
|
|
13
|
+
session(): Promise<DatabaseSessionResponse>;
|
|
14
|
+
insert(document: any): Promise<DocumentInsertResponse>;
|
|
15
|
+
get(docname: string, params?: DocumentGetParams | undefined): Promise<any>;
|
|
16
|
+
destroy(docname: string, rev: string): Promise<DocumentDestroyResponse>;
|
|
17
|
+
bulk(docs: BulkModifyDocsWrapper): Promise<DocumentInsertResponse[]>;
|
|
18
|
+
createIndex(indexDef: CreateIndexRequest): Promise<CreateIndexResponse>;
|
|
19
|
+
find(query: MangoQuery): Promise<MangoResponse<any>>;
|
|
20
|
+
readonly server: ServerScope;
|
|
21
|
+
};
|