@decaf-ts/for-couchdb 0.3.1 → 0.3.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 +646 -144
- package/README.md +371 -1
- package/dist/for-couchdb.cjs +733 -24
- package/dist/for-couchdb.esm.cjs +733 -24
- package/lib/adapter.cjs +186 -1
- package/lib/adapter.d.ts +234 -0
- package/lib/constants.cjs +29 -1
- package/lib/constants.d.ts +28 -0
- package/lib/errors.cjs +18 -1
- package/lib/errors.d.ts +17 -0
- package/lib/esm/adapter.d.ts +234 -0
- package/lib/esm/adapter.js +186 -1
- package/lib/esm/constants.d.ts +28 -0
- package/lib/esm/constants.js +29 -1
- package/lib/esm/errors.d.ts +17 -0
- package/lib/esm/errors.js +18 -1
- package/lib/esm/index.d.ts +6 -13
- package/lib/esm/index.js +7 -14
- package/lib/esm/indexes/generator.d.ts +47 -0
- package/lib/esm/indexes/generator.js +58 -1
- package/lib/esm/interfaces/CouchDBRepository.d.ts +10 -0
- package/lib/esm/interfaces/CouchDBRepository.js +1 -1
- package/lib/esm/model/CouchDBSequence.d.ts +19 -0
- package/lib/esm/model/CouchDBSequence.js +12 -1
- package/lib/esm/query/Paginator.d.ts +111 -0
- package/lib/esm/query/Paginator.js +117 -8
- package/lib/esm/query/Statement.d.ts +134 -0
- package/lib/esm/query/Statement.js +143 -1
- package/lib/esm/query/constants.d.ts +42 -0
- package/lib/esm/query/constants.js +43 -1
- package/lib/esm/query/translate.d.ts +31 -0
- package/lib/esm/query/translate.js +32 -1
- package/lib/esm/sequences/Sequence.d.ts +0 -2
- package/lib/esm/sequences/Sequence.js +2 -4
- package/lib/esm/types.d.ts +55 -12
- package/lib/esm/types.js +1 -1
- package/lib/esm/utils.d.ts +105 -0
- package/lib/esm/utils.js +106 -1
- package/lib/index.cjs +7 -14
- package/lib/index.d.ts +6 -13
- package/lib/indexes/generator.cjs +58 -1
- package/lib/indexes/generator.d.ts +47 -0
- package/lib/interfaces/CouchDBRepository.cjs +1 -1
- package/lib/interfaces/CouchDBRepository.d.ts +10 -0
- package/lib/model/CouchDBSequence.cjs +12 -1
- package/lib/model/CouchDBSequence.d.ts +19 -0
- package/lib/query/Paginator.cjs +117 -8
- package/lib/query/Paginator.d.ts +111 -0
- package/lib/query/Statement.cjs +143 -1
- package/lib/query/Statement.d.ts +134 -0
- package/lib/query/constants.cjs +43 -1
- package/lib/query/constants.d.ts +42 -0
- package/lib/query/translate.cjs +32 -1
- package/lib/query/translate.d.ts +31 -0
- package/lib/sequences/Sequence.cjs +2 -4
- package/lib/sequences/Sequence.d.ts +0 -2
- package/lib/types.cjs +1 -1
- package/lib/types.d.ts +55 -12
- package/lib/utils.cjs +106 -1
- package/lib/utils.d.ts +105 -0
- package/package.json +2 -2
|
@@ -13,13 +13,11 @@ const core_2 = require("@decaf-ts/core");
|
|
|
13
13
|
*
|
|
14
14
|
* @class CouchDBSequence
|
|
15
15
|
* @implements Sequence
|
|
16
|
-
*
|
|
17
|
-
* @category Sequences
|
|
18
16
|
*/
|
|
19
17
|
class CouchDBSequence extends core_2.Sequence {
|
|
20
18
|
constructor(options, adapter) {
|
|
21
19
|
super(options);
|
|
22
|
-
this.repo = core_1.Repository.forModel(CouchDBSequence_1.Sequence, adapter.
|
|
20
|
+
this.repo = core_1.Repository.forModel(CouchDBSequence_1.Sequence, adapter.alias);
|
|
23
21
|
}
|
|
24
22
|
/**
|
|
25
23
|
* @summary Retrieves the current value for the sequence
|
|
@@ -113,4 +111,4 @@ class CouchDBSequence extends core_2.Sequence {
|
|
|
113
111
|
}
|
|
114
112
|
}
|
|
115
113
|
exports.CouchDBSequence = CouchDBSequence;
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VxdWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VxdWVuY2VzL1NlcXVlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9FQUEyRDtBQUMzRCwyREFBdUU7QUFDdkUseUNBQXNFO0FBQ3RFLHlDQUEwQztBQUkxQzs7Ozs7Ozs7R0FRRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxlQUFRO0lBRzNDLFlBQ0UsT0FBd0IsRUFDeEIsT0FBMkM7UUFFM0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBVSxDQUFDLFFBQVEsQ0FBQywwQkFBRyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDekMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQVEsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFjLENBQUMsQ0FBQztZQUMzRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQTBCLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsWUFBWSw2QkFBYSxFQUFFLENBQUM7Z0JBQy9CLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVztvQkFDbEMsTUFBTSxJQUFJLDZCQUFhLENBQ3JCLDJEQUEyRCxDQUM1RCxDQUFDO2dCQUNKLElBQUksQ0FBQztvQkFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQy9CLENBQUM7Z0JBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQztvQkFDcEIsTUFBTSxJQUFJLDZCQUFhLENBQ3JCLDhDQUE4QyxTQUFTLEtB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QyxPQUFPLEdBQUcsV0FBVyxHQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFZLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJO1lBQ2xDLE1BQU0sSUFBSSw2QkFBYSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDckQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUFwSEQsMENBb0hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VxdWVuY2UgYXMgU2VxIH0gZnJvbSBcIi4uL21vZGVsL0NvdWNoREJTZXF1ZW5jZVwiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciwgTm90Rm91bmRFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQWRhcHRlciwgUmVwb3NpdG9yeSwgU2VxdWVuY2VPcHRpb25zIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBTZXF1ZW5jZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTWFuZ29RdWVyeSB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgQ291Y2hEQlJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IEFic3RyYWN0IGltcGxlbWVudGF0aW9uIG9mIGEgU2VxdWVuY2VcbiAqIEBkZXNjcmlwdGlvbiBwcm92aWRlcyB0aGUgYmFzaWMgZnVuY3Rpb25hbGl0eSBmb3Ige0BsaW5rIFNlcXVlbmNlfXNcbiAqXG4gKiBAcGFyYW0ge1NlcXVlbmNlT3B0aW9uc30gb3B0aW9uc1xuICpcbiAqIEBjbGFzcyBDb3VjaERCU2VxdWVuY2VcbiAqIEBpbXBsZW1lbnRzIFNlcXVlbmNlXG4gKi9cbmV4cG9ydCBjbGFzcyBDb3VjaERCU2VxdWVuY2UgZXh0ZW5kcyBTZXF1ZW5jZSB7XG4gIHByb3RlY3RlZCByZXBvOiBDb3VjaERCUmVwb3NpdG9yeTxTZXEsIGFueSwgYW55LCBhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG9wdGlvbnM6IFNlcXVlbmNlT3B0aW9ucyxcbiAgICBhZGFwdGVyOiBBZGFwdGVyPGFueSwgTWFuZ29RdWVyeSwgYW55LCBhbnk+XG4gICkge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgIHRoaXMucmVwbyA9IFJlcG9zaXRvcnkuZm9yTW9kZWwoU2VxLCBhZGFwdGVyLmFsaWFzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgdmFsdWUgZm9yIHRoZSBzZXF1ZW5jZVxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBhc3luYyBjdXJyZW50KCk6IFByb21pc2U8c3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50PiB7XG4gICAgY29uc3QgeyBuYW1lLCBzdGFydFdpdGggfSA9IHRoaXMub3B0aW9ucztcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2VxdWVuY2U6IFNlcSA9IGF3YWl0IHRoaXMucmVwby5yZWFkKG5hbWUgYXMgc3RyaW5nKTtcbiAgICAgIHJldHVybiB0aGlzLnBhcnNlKHNlcXVlbmNlLmN1cnJlbnQgYXMgc3RyaW5nIHwgbnVtYmVyKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgTm90Rm91bmRFcnJvcikge1xuICAgICAgICBpZiAodHlwZW9mIHN0YXJ0V2l0aCA9PT0gXCJ1bmRlZmluZWRcIilcbiAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICAgIFwiU3RhcnRpbmcgdmFsdWUgaXMgbm90IGRlZmluZWQgZm9yIGEgbm9uIGV4aXN0aW5nIHNlcXVlbmNlXCJcbiAgICAgICAgICApO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlKHN0YXJ0V2l0aCk7XG4gICAgICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICAgIGBGYWlsZWQgdG8gcGFyc2UgaW5pdGlhbCB2YWx1ZSBmb3Igc2VxdWVuY2UgJHtzdGFydFdpdGh9OiAke2V9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIHJldHJpZXZlIGN1cnJlbnQgdmFsdWUgZm9yIHNlcXVlbmNlICR7bmFtZX06ICR7ZX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBQYXJzZXMgdGhlIHtAbGluayBTZXF1ZW5jZX0gdmFsdWVcbiAgICpcbiAgICogQHByb3RlY3RlZFxuICAgKiBAcGFyYW0gdmFsdWVcbiAgICovXG4gIHByaXZhdGUgcGFyc2UodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludCk6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludCB7XG4gICAgcmV0dXJuIFNlcXVlbmNlLnBhcnNlVmFsdWUodGhpcy5vcHRpb25zLnR5cGUsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBpbmNyZW1lbnRzIHRoZSBzZXF1ZW5jZVxuICAgKiBAZGVzY3JpcHRpb24gU2VxdWVuY2Ugc3BlY2lmaWMgaW1wbGVtZW50YXRpb25cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnR9IGN1cnJlbnRcbiAgICogQHBhcmFtIGNvdW50XG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgaW5jcmVtZW50KFxuICAgIGN1cnJlbnQ6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludCxcbiAgICBjb3VudD86IG51bWJlclxuICApOiBQcm9taXNlPHN0cmluZyB8IG51bWJlciB8IGJpZ2ludD4ge1xuICAgIGNvbnN0IHsgdHlwZSwgaW5jcmVtZW50QnksIG5hbWUgfSA9IHRoaXMub3B0aW9ucztcbiAgICBsZXQgbmV4dDogc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50O1xuICAgIGNvbnN0IHRvSW5jcmVtZW50QnkgPSBjb3VudCB8fCBpbmNyZW1lbnRCeTtcbiAgICBpZiAodG9JbmNyZW1lbnRCeSAlIGluY3JlbWVudEJ5ICE9PSAwKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIGBWYWx1ZSB0byBpbmNyZW1lbnQgZG9lcyBub3QgY29uc2lkZXIgdGhlIGluY3JlbWVudEJ5IHNldHRpbmc6ICR7aW5jcmVtZW50Qnl9YFxuICAgICAgKTtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgXCJOdW1iZXJcIjpcbiAgICAgICAgbmV4dCA9ICh0aGlzLnBhcnNlKGN1cnJlbnQpIGFzIG51bWJlcikgKyB0b0luY3JlbWVudEJ5O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJCaWdJbnRcIjpcbiAgICAgICAgbmV4dCA9ICh0aGlzLnBhcnNlKGN1cnJlbnQpIGFzIGJpZ2ludCkgKyBCaWdJbnQodG9JbmNyZW1lbnRCeSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJTaG91bGQgbmV2ZXIgaGFwcGVuXCIpO1xuICAgIH1cbiAgICBsZXQgc2VxOiBTZXE7XG4gICAgdHJ5IHtcbiAgICAgIHNlcSA9IGF3YWl0IHRoaXMucmVwby51cGRhdGUobmV3IFNlcSh7IGlkOiBuYW1lLCBjdXJyZW50OiBuZXh0IH0pKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmICghKGUgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSkgdGhyb3cgZTtcbiAgICAgIHNlcSA9IGF3YWl0IHRoaXMucmVwby5jcmVhdGUobmV3IFNlcSh7IGlkOiBuYW1lLCBjdXJyZW50OiBuZXh0IH0pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2VxLmN1cnJlbnQgYXMgc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IEdlbmVyYXRlcyB0aGUgbmV4dCB2YWx1ZSBpbiB0aCBzZXF1ZW5jZVxuICAgKiBAZGVzY3JpcHRpb24gY2FsbHMge0BsaW5rIFNlcXVlbmNlI3BhcnNlfSBvbiB0aGUgY3VycmVudCB2YWx1ZVxuICAgKiBmb2xsb3dlZCBieSB7QGxpbmsgU2VxdWVuY2UjaW5jcmVtZW50fVxuICAgKlxuICAgKi9cbiAgYXN5bmMgbmV4dCgpOiBQcm9taXNlPG51bWJlciB8IHN0cmluZyB8IGJpZ2ludD4ge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBhd2FpdCB0aGlzLmN1cnJlbnQoKTtcbiAgICByZXR1cm4gdGhpcy5pbmNyZW1lbnQoY3VycmVudCk7XG4gIH1cblxuICBhc3luYyByYW5nZShjb3VudDogbnVtYmVyKTogUHJvbWlzZTwobnVtYmVyIHwgc3RyaW5nIHwgYmlnaW50KVtdPiB7XG4gICAgY29uc3QgY3VycmVudCA9IChhd2FpdCB0aGlzLmN1cnJlbnQoKSkgYXMgbnVtYmVyO1xuICAgIGNvbnN0IGluY3JlbWVudEJ5ID0gdGhpcy5wYXJzZSh0aGlzLm9wdGlvbnMuaW5jcmVtZW50QnkpIGFzIG51bWJlcjtcbiAgICBjb25zdCBuZXh0OiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQgPSBhd2FpdCB0aGlzLmluY3JlbWVudChcbiAgICAgIGN1cnJlbnQsXG4gICAgICAodGhpcy5wYXJzZShjb3VudCkgYXMgbnVtYmVyKSAqIGluY3JlbWVudEJ5XG4gICAgKTtcbiAgICBjb25zdCByYW5nZTogKG51bWJlciB8IHN0cmluZyB8IGJpZ2ludClbXSA9IFtdO1xuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDE7IGkgPD0gY291bnQ7IGkrKykge1xuICAgICAgcmFuZ2UucHVzaChjdXJyZW50ICsgaW5jcmVtZW50QnkgKiAodGhpcy5wYXJzZShpKSBhcyBudW1iZXIpKTtcbiAgICB9XG4gICAgaWYgKHJhbmdlW3JhbmdlLmxlbmd0aCAtIDFdICE9PSBuZXh0KVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJNaXNjYWxjdWxhdGlvbiBvZiByYW5nZVwiKTtcbiAgICByZXR1cm4gcmFuZ2U7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -11,8 +11,6 @@ import { CouchDBRepository } from "../interfaces";
|
|
|
11
11
|
*
|
|
12
12
|
* @class CouchDBSequence
|
|
13
13
|
* @implements Sequence
|
|
14
|
-
*
|
|
15
|
-
* @category Sequences
|
|
16
14
|
*/
|
|
17
15
|
export declare class CouchDBSequence extends Sequence {
|
|
18
16
|
protected repo: CouchDBRepository<Seq, any, any, any>;
|
package/lib/types.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIGZyb20gYSBDb3VjaERCIE1hbmdvIHF1ZXJ5XG4gKiBAc3VtbWFyeSBDb250YWlucyB0aGUgbWF0Y2hpbmcgZG9jdW1lbnRzIGFuZCBhZGRpdGlvbmFsIG1ldGFkYXRhIGFib3V0IHRoZSBxdWVyeSBleGVjdXRpb25cbiAqIEBpbnRlcmZhY2UgTWFuZ29SZXNwb25zZVxuICogQHRlbXBsYXRlIEQgLSBUaGUgZG9jdW1lbnQgdHlwZVxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cHM6Ly9kb2NzLmNvdWNoZGIub3JnL2VuL2xhdGVzdC9hcGkvZGF0YWJhc2UvZmluZC5odG1sI2RiLWZpbmR9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFuZ29SZXNwb25zZTxEPiB7XG4gIC8qKiBBcnJheSBvZiBkb2N1bWVudHMgbWF0Y2hpbmcgdGhlIHNlYXJjaC5cbiAgICpcbiAgICogSW4gZWFjaCBtYXRjaGluZyBkb2N1bWVudCwgdGhlIGZpZWxkcyBzcGVjaWZpZWQgaW4gdGhlIGZpZWxkcyBwYXJ0IG9mIHRoZSByZXF1ZXN0IGJvZHkgYXJlIGxpc3RlZCwgYWxvbmcgd2l0aFxuICAgKiB0aGVpciB2YWx1ZXMuICovXG4gIGRvY3M6IChEICYgeyBfaWQ6IHN0cmluZzsgX3Jldjogc3RyaW5nIH0pW107XG5cbiAgLyoqIEEgc3RyaW5nIHRoYXQgZW5hYmxlcyB5b3UgdG8gc3BlY2lmeSB3aGljaCBwYWdlIG9mIHJlc3VsdHMgeW91IHJlcXVpcmUuXG4gICAqXG4gICAqIFVzZWQgZm9yIHBhZ2luZyB0aHJvdWdoIHJlc3VsdCBzZXRzLiAqL1xuICBib29rbWFyaz86IHN0cmluZztcblxuICAvKiogRXhlY3V0aW9uIHdhcm5pbmdzICovXG4gIHdhcm5pbmc/OiBzdHJpbmc7XG5cbiAgLyoqIEJhc2ljIGV4ZWN1dGlvbiBzdGF0aXN0aWNzIGZvciBhIHNwZWNpZmljIHJlcXVlc3QuICovXG4gIGV4ZWN1dGlvbl9zdGF0cz86IE1hbmdvRXhlY3V0aW9uU3RhdHM7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFN0YXRpc3RpY3MgYWJvdXQgdGhlIGV4ZWN1dGlvbiBvZiBhIE1hbmdvIHF1ZXJ5XG4gKiBAc3VtbWFyeSBQcm92aWRlcyBkZXRhaWxlZCBtZXRyaWNzIGFib3V0IHF1ZXJ5IGV4ZWN1dGlvbiBpbmNsdWRpbmcgZG9jdW1lbnQgYW5kIGtleSBleGFtaW5hdGlvbiBjb3VudHNcbiAqIEBpbnRlcmZhY2UgTWFuZ29FeGVjdXRpb25TdGF0c1xuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cDovL2RvY3MuY291Y2hkYi5vcmcvZW4vbGF0ZXN0L2FwaS9kYXRhYmFzZS9maW5kLmh0bWwjZXhlY3V0aW9uLXN0YXRpc3RpY3N9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFuZ29FeGVjdXRpb25TdGF0cyB7XG4gIC8qKiBOdW1iZXIgb2YgaW5kZXgga2V5cyBleGFtaW5lZC4gQ3VycmVudGx5IGFsd2F5cyAwLiAqL1xuICB0b3RhbF9rZXlzX2V4YW1pbmVkOiBudW1iZXI7XG5cbiAgLyoqIE51bWJlciBvZiBkb2N1bWVudHMgZmV0Y2hlZCBmcm9tIHRoZSBkYXRhYmFzZSAvIGluZGV4LlxuICAgKlxuICAgKiBFcXVpdmFsZW50IHRvIHVzaW5nIGluY2x1ZGVfZG9jcyA9IHRydWUgaW4gYSB2aWV3LiAqL1xuICB0b3RhbF9kb2NzX2V4YW1pbmVkOiBudW1iZXI7XG5cbiAgLyoqIE51bWJlciBvZiBkb2N1bWVudHMgZmV0Y2hlZCBmcm9tIHRoZSBkYXRhYmFzZSB1c2luZyBhbiBvdXQtb2YtYmFuZCBkb2N1bWVudCBmZXRjaC5cbiAgICpcbiAgICogVGhpcyBpcyBvbmx5IG5vbi16ZXJvIHdoZW4gcmVhZCBxdW9ydW0gPiAxIGlzIHNwZWNpZmllZCBpbiB0aGUgcXVlcnkgcGFyYW1ldGVycy4gKi9cbiAgdG90YWxfcXVvcnVtX2RvY3NfZXhhbWluZWQ6IG51bWJlcjtcblxuICAvKiogTnVtYmVyIG9mIHJlc3VsdHMgcmV0dXJuZWQgZnJvbSB0aGUgcXVlcnkuICovXG4gIHJlc3VsdHNfcmV0dXJuZWQ6IG51bWJlcjtcblxuICAvKiogVG90YWwgZXhlY3V0aW9uIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGFzIG1lYXN1cmVkIGJ5IHRoZSBkYXRhYmFzZS4gKi9cbiAgZXhlY3V0aW9uX3RpbWVfbXM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgY3JlYXRpbmcgYSBDb3VjaERCIE1hbmdvIGluZGV4XG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBzdHJ1Y3R1cmUgYW5kIGNvbmZpZ3VyYXRpb24gZm9yIGEgbmV3IE1hbmdvIGluZGV4XG4gKiBAaW50ZXJmYWNlIENyZWF0ZUluZGV4UmVxdWVzdFxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cDovL2RvY3MuY291Y2hkYi5vcmcvZW4vbGF0ZXN0L2FwaS9kYXRhYmFzZS9maW5kLmh0bWwjZGItaW5kZXh9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlSW5kZXhSZXF1ZXN0IHtcbiAgLyoqIEpTT04gb2JqZWN0IGRlc2NyaWJpbmcgdGhlIGluZGV4IHRvIGNyZWF0ZSAqL1xuICBpbmRleDoge1xuICAgIC8qKiBBcnJheSBvZiBmaWVsZCBuYW1lcyBmb2xsb3dpbmcgdGhlIHNvcnQgc3ludGF4LiAqL1xuICAgIGZpZWxkczogU29ydE9yZGVyW107XG5cbiAgICAvKiogQSBzZWxlY3RvciB0byBhcHBseSB0byBkb2N1bWVudHMgYXQgaW5kZXhpbmcgdGltZSwgY3JlYXRpbmcgYSBwYXJ0aWFsIGluZGV4LiAqL1xuICAgIHBhcnRpYWxfZmlsdGVyX3NlbGVjdG9yPzogTWFuZ29TZWxlY3RvcjtcbiAgfTtcblxuICAvKiogTmFtZSBvZiB0aGUgZGVzaWduIGRvY3VtZW50IGluIHdoaWNoIHRoZSBpbmRleCB3aWxsIGJlIGNyZWF0ZWQuICovXG4gIGRkb2M/OiBzdHJpbmc7XG5cbiAgLyoqIE5hbWUgb2YgdGhlIGluZGV4LiBJZiBubyBuYW1lIGlzIHByb3ZpZGVkLCBhIG5hbWUgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseS4gKi9cbiAgbmFtZT86IHN0cmluZztcblxuICAvKiogQ2FuIGJlIFwianNvblwiIG9yIFwidGV4dFwiLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImpzb25cIiAqL1xuICB0eXBlPzogXCJqc29uXCIgfCBcInRleHRcIjtcblxuICAvKiogVGhpcyBmaWVsZCBzZXRzIHdoZXRoZXIgdGhlIGNyZWF0ZWQgaW5kZXggd2lsbCBiZSBhIHBhcnRpdGlvbmVkIG9yIGdsb2JhbCBpbmRleC4gKi9cbiAgcGFydGl0aW9uZWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBSZXByZXNlbnRzIHRoZSBwb3NzaWJsZSB2YWx1ZSB0eXBlcyBpbiBhIE1hbmdvIHF1ZXJ5XG4gKiBAc3VtbWFyeSBVbmlvbiB0eXBlIG9mIGFsbCBwb3NzaWJsZSB2YWx1ZSB0eXBlcyB0aGF0IGNhbiBiZSB1c2VkIGluIE1hbmdvIHF1ZXJpZXNcbiAqIEB0eXBlZGVmIHsobnVtYmVyfHN0cmluZ3xEYXRlfGJvb2xlYW58b2JqZWN0fG51bGwpfSBNYW5nb1ZhbHVlXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci1jb3VjaGRiXG4gKi9cbmV4cG9ydCB0eXBlIE1hbmdvVmFsdWUgPSBudW1iZXIgfCBzdHJpbmcgfCBEYXRlIHwgYm9vbGVhbiB8IG9iamVjdCB8IG51bGw7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE9wZXJhdG9ycyBhdmFpbGFibGUgaW4gTWFuZ28gcXVlcmllc1xuICogQHN1bW1hcnkgVW5pb24gdHlwZSBvZiBhbGwgcG9zc2libGUgb3BlcmF0b3JzIHRoYXQgY2FuIGJlIHVzZWQgaW4gTWFuZ28gcXVlcmllc1xuICogQHR5cGVkZWYge3N0cmluZ30gTWFuZ29PcGVyYXRvclxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICovXG5leHBvcnQgdHlwZSBNYW5nb09wZXJhdG9yID1cbiAgfCBcIiRsdFwiXG4gIHwgXCIkbHRlXCJcbiAgfCBcIiRlcVwiXG4gIHwgXCIkbmVcIlxuICB8IFwiJGd0ZVwiXG4gIHwgXCIkZ3RcIlxuICB8IFwiJGV4aXN0c1wiXG4gIHwgXCIkdHlwZVwiXG4gIHwgXCIkaW5cIlxuICB8IFwiJG5pblwiXG4gIHwgXCIkc2l6ZVwiXG4gIHwgXCIkbW9kXCJcbiAgfCBcIiRyZWdleFwiXG4gIHwgXCIkb3JcIlxuICB8IFwiJGFuZFwiXG4gIHwgXCIkbm9yXCJcbiAgfCBcIiRub3RcIlxuICB8IFwiJGFsbFwiXG4gIHwgXCIkYWxsTWF0Y2hcIlxuICB8IFwiJGVsZW1NYXRjaFwiO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyBhIENvdWNoREIgTWFuZ28gcXVlcnkgc2VsZWN0b3JcbiAqIEBzdW1tYXJ5IFR5cGUgZm9yIGRlZmluaW5nIHF1ZXJ5IGNvbmRpdGlvbnMgaW4gTWFuZ28gcXVlcmllc1xuICogQHR5cGVkZWYge09iamVjdH0gTWFuZ29TZWxlY3RvclxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cDovL2RvY3MuY291Y2hkYi5vcmcvZW4vbGF0ZXN0L2FwaS9kYXRhYmFzZS9maW5kLmh0bWwjc2VsZWN0b3Itc3ludGF4fVxuICovXG5leHBvcnQgdHlwZSBNYW5nb1NlbGVjdG9yID0ge1xuICBbSyBpbiBNYW5nb09wZXJhdG9yIHwgc3RyaW5nXTpcbiAgICB8IE1hbmdvU2VsZWN0b3JcbiAgICB8IE1hbmdvU2VsZWN0b3JbXVxuICAgIHwgTWFuZ29WYWx1ZVxuICAgIHwgTWFuZ29WYWx1ZVtdO1xufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyBhIHNvcnQgb3JkZXIgc3BlY2lmaWNhdGlvbiBpbiBNYW5nbyBxdWVyaWVzXG4gKiBAc3VtbWFyeSBUeXBlIGZvciBkZWZpbmluZyBzb3J0IG9yZGVyIGluIE1hbmdvIHF1ZXJpZXNcbiAqIEB0eXBlZGVmIHsoc3RyaW5nfHN0cmluZ1tdfE9iamVjdCl9IFNvcnRPcmRlclxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cDovL2RvY3MuY291Y2hkYi5vcmcvZW4vbGF0ZXN0L2FwaS9kYXRhYmFzZS9maW5kLmh0bWwjc29ydC1zeW50YXh9XG4gKi9cbmV4cG9ydCB0eXBlIFNvcnRPcmRlciA9IHN0cmluZyB8IHN0cmluZ1tdIHwgeyBba2V5OiBzdHJpbmddOiBcImFzY1wiIHwgXCJkZXNjXCIgfTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyBhIENvdWNoREIgTWFuZ28gcXVlcnlcbiAqIEBzdW1tYXJ5IEludGVyZmFjZSBmb3IgZGVmaW5pbmcgY29tcGxldGUgTWFuZ28gcXVlcmllcyB3aXRoIHNlbGVjdG9ycywgc29ydGluZywgcGFnaW5hdGlvbiwgYW5kIG90aGVyIG9wdGlvbnNcbiAqIEBpbnRlcmZhY2UgTWFuZ29RdWVyeVxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cHM6Ly9kb2NzLmNvdWNoZGIub3JnL2VuL2xhdGVzdC9hcGkvZGF0YWJhc2UvZmluZC5odG1sI2RiLWZpbmR9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFuZ29RdWVyeSB7XG4gIC8qKiBKU09OIG9iamVjdCBkZXNjcmliaW5nIGNyaXRlcmlhIHVzZWQgdG8gc2VsZWN0IGRvY3VtZW50cy4gKi9cbiAgc2VsZWN0b3I6IE1hbmdvU2VsZWN0b3I7XG5cbiAgLyoqIE1heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMgcmV0dXJuZWQuIEBkZWZhdWx0IDI1ICovXG4gIGxpbWl0PzogbnVtYmVyO1xuXG4gIC8qKiBTa2lwIHRoZSBmaXJzdCAnbicgcmVzdWx0cywgd2hlcmUgJ24nIGlzIHRoZSB2YWx1ZSBzcGVjaWZpZWQuICovXG4gIHNraXA/OiBudW1iZXI7XG5cbiAgLyoqIEpTT04gYXJyYXkgZm9sbG93aW5nIHNvcnQgc3ludGF4LiAqL1xuICBzb3J0PzogU29ydE9yZGVyW107XG5cbiAgLyoqIEpTT04gYXJyYXkgc3BlY2lmeWluZyB3aGljaCBmaWVsZHMgb2YgZWFjaCBvYmplY3Qgc2hvdWxkIGJlIHJldHVybmVkLlxuICAgKlxuICAgKiBJZiBpdCBpcyBvbWl0dGVkLCB0aGUgZW50aXJlIG9iamVjdCBpcyByZXR1cm5lZC5cbiAgICpcbiAgICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cDovL2RvY3MuY291Y2hkYi5vcmcvZW4vbGF0ZXN0L2FwaS9kYXRhYmFzZS9maW5kLmh0bWwjZmlsdGVyaW5nLWZpZWxkc30gKi9cbiAgZmllbGRzPzogc3RyaW5nW107XG5cbiAgLyogSW5zdHJ1Y3QgYSBxdWVyeSB0byB1c2UgYSBzcGVjaWZpYyBpbmRleC5cbiAgICpcbiAgICogU3BlY2lmaWVkIGVpdGhlciBhcyBcIjxkZXNpZ25fZG9jdW1lbnQ+XCIgb3IgW1wiPGRlc2lnbl9kb2N1bWVudD5cIiwgXCI8aW5kZXhfbmFtZT5cIl0uICovXG4gIHVzZV9pbmRleD86IHN0cmluZyB8IFtzdHJpbmcsIHN0cmluZ107XG5cbiAgLyoqIFJlYWQgcXVvcnVtIG5lZWRlZCBmb3IgdGhlIHJlc3VsdC5cbiAgICpcbiAgICogQGRlZmF1bHQgMSAqL1xuICByPzogbnVtYmVyO1xuXG4gIC8qKiBBIHN0cmluZyB0aGF0IGVuYWJsZXMgeW91IHRvIHNwZWNpZnkgd2hpY2ggcGFnZSBvZiByZXN1bHRzIHlvdSByZXF1aXJlLlxuICAgKlxuICAgKiBVc2VkIGZvciBwYWdpbmcgdGhyb3VnaCByZXN1bHQgc2V0cy4gKi9cbiAgYm9va21hcms/OiBzdHJpbmc7XG5cbiAgLyoqIFdoZXRoZXIgdG8gdXBkYXRlIHRoZSBpbmRleCBwcmlvciB0byByZXR1cm5pbmcgdGhlIHJlc3VsdC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZSAqL1xuICB1cGRhdGU/OiBib29sZWFuO1xuXG4gIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGUgdmlldyByZXN1bHRzIHNob3VsZCBiZSByZXR1cm5lZCBmcm9tIGEg4oCcc3RhYmxl4oCdIHNldCBvZiBzaGFyZHMuICovXG4gIHN0YWJsZT86IGJvb2xlYW47XG5cbiAgLyoqIENvbWJpbmF0aW9uIG9mIHVwZGF0ZSA9IGZhbHNlIGFuZCBzdGFibGUgPSB0cnVlIG9wdGlvbnMuXG4gICAqXG4gICAqIFBvc3NpYmxlIG9wdGlvbnM6IFwib2tcIiwgZmFsc2UgKGRlZmF1bHQpLiAqL1xuICBzdGFsZT86IFwib2tcIiB8IGZhbHNlO1xuXG4gIC8qKiBJbmNsdWRlIGV4ZWN1dGlvbiBzdGF0aXN0aWNzIGluIHRoZSBxdWVyeSByZXNwb25zZS5cbiAgICpcbiAgICogT3B0aW9uYWwsIGRlZmF1bHQ6IGZhbHNlLiAqL1xuICBleGVjdXRpb25fc3RhdHM/OiBib29sZWFuO1xufVxuIl19
|
package/lib/types.d.ts
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @
|
|
1
|
+
/**
|
|
2
|
+
* @description Response from a CouchDB Mango query
|
|
3
|
+
* @summary Contains the matching documents and additional metadata about the query execution
|
|
4
|
+
* @interface MangoResponse
|
|
5
|
+
* @template D - The document type
|
|
6
|
+
* @memberOf module:for-couchdb
|
|
7
|
+
* @see Docs: {@link https://docs.couchdb.org/en/latest/api/database/find.html#db-find}
|
|
8
|
+
*/
|
|
3
9
|
export interface MangoResponse<D> {
|
|
4
10
|
/** Array of documents matching the search.
|
|
5
11
|
*
|
|
@@ -18,8 +24,13 @@ export interface MangoResponse<D> {
|
|
|
18
24
|
/** Basic execution statistics for a specific request. */
|
|
19
25
|
execution_stats?: MangoExecutionStats;
|
|
20
26
|
}
|
|
21
|
-
/**
|
|
22
|
-
* @
|
|
27
|
+
/**
|
|
28
|
+
* @description Statistics about the execution of a Mango query
|
|
29
|
+
* @summary Provides detailed metrics about query execution including document and key examination counts
|
|
30
|
+
* @interface MangoExecutionStats
|
|
31
|
+
* @memberOf module:for-couchdb
|
|
32
|
+
* @see Docs: {@link http://docs.couchdb.org/en/latest/api/database/find.html#execution-statistics}
|
|
33
|
+
*/
|
|
23
34
|
export interface MangoExecutionStats {
|
|
24
35
|
/** Number of index keys examined. Currently always 0. */
|
|
25
36
|
total_keys_examined: number;
|
|
@@ -36,8 +47,13 @@ export interface MangoExecutionStats {
|
|
|
36
47
|
/** Total execution time in milliseconds as measured by the database. */
|
|
37
48
|
execution_time_ms: number;
|
|
38
49
|
}
|
|
39
|
-
/**
|
|
40
|
-
* @
|
|
50
|
+
/**
|
|
51
|
+
* @description Parameters for creating a CouchDB Mango index
|
|
52
|
+
* @summary Defines the structure and configuration for a new Mango index
|
|
53
|
+
* @interface CreateIndexRequest
|
|
54
|
+
* @memberOf module:for-couchdb
|
|
55
|
+
* @see Docs: {@link http://docs.couchdb.org/en/latest/api/database/find.html#db-index}
|
|
56
|
+
*/
|
|
41
57
|
export interface CreateIndexRequest {
|
|
42
58
|
/** JSON object describing the index to create */
|
|
43
59
|
index: {
|
|
@@ -57,20 +73,47 @@ export interface CreateIndexRequest {
|
|
|
57
73
|
/** This field sets whether the created index will be a partitioned or global index. */
|
|
58
74
|
partitioned?: boolean;
|
|
59
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* @description Represents the possible value types in a Mango query
|
|
78
|
+
* @summary Union type of all possible value types that can be used in Mango queries
|
|
79
|
+
* @typedef {(number|string|Date|boolean|object|null)} MangoValue
|
|
80
|
+
* @memberOf module:for-couchdb
|
|
81
|
+
*/
|
|
60
82
|
export type MangoValue = number | string | Date | boolean | object | null;
|
|
83
|
+
/**
|
|
84
|
+
* @description Operators available in Mango queries
|
|
85
|
+
* @summary Union type of all possible operators that can be used in Mango queries
|
|
86
|
+
* @typedef {string} MangoOperator
|
|
87
|
+
* @memberOf module:for-couchdb
|
|
88
|
+
*/
|
|
61
89
|
export type MangoOperator = "$lt" | "$lte" | "$eq" | "$ne" | "$gte" | "$gt" | "$exists" | "$type" | "$in" | "$nin" | "$size" | "$mod" | "$regex" | "$or" | "$and" | "$nor" | "$not" | "$all" | "$allMatch" | "$elemMatch";
|
|
62
|
-
/**
|
|
63
|
-
* @
|
|
90
|
+
/**
|
|
91
|
+
* @description Represents a CouchDB Mango query selector
|
|
92
|
+
* @summary Type for defining query conditions in Mango queries
|
|
93
|
+
* @typedef {Object} MangoSelector
|
|
94
|
+
* @memberOf module:for-couchdb
|
|
95
|
+
* @see Docs: {@link http://docs.couchdb.org/en/latest/api/database/find.html#selector-syntax}
|
|
96
|
+
*/
|
|
64
97
|
export type MangoSelector = {
|
|
65
98
|
[K in MangoOperator | string]: MangoSelector | MangoSelector[] | MangoValue | MangoValue[];
|
|
66
99
|
};
|
|
67
|
-
/**
|
|
68
|
-
* @
|
|
100
|
+
/**
|
|
101
|
+
* @description Represents a sort order specification in Mango queries
|
|
102
|
+
* @summary Type for defining sort order in Mango queries
|
|
103
|
+
* @typedef {(string|string[]|Object)} SortOrder
|
|
104
|
+
* @memberOf module:for-couchdb
|
|
105
|
+
* @see Docs: {@link http://docs.couchdb.org/en/latest/api/database/find.html#sort-syntax}
|
|
106
|
+
*/
|
|
69
107
|
export type SortOrder = string | string[] | {
|
|
70
108
|
[key: string]: "asc" | "desc";
|
|
71
109
|
};
|
|
72
|
-
/**
|
|
73
|
-
* @
|
|
110
|
+
/**
|
|
111
|
+
* @description Represents a CouchDB Mango query
|
|
112
|
+
* @summary Interface for defining complete Mango queries with selectors, sorting, pagination, and other options
|
|
113
|
+
* @interface MangoQuery
|
|
114
|
+
* @memberOf module:for-couchdb
|
|
115
|
+
* @see Docs: {@link https://docs.couchdb.org/en/latest/api/database/find.html#db-find}
|
|
116
|
+
*/
|
|
74
117
|
export interface MangoQuery {
|
|
75
118
|
/** JSON object describing criteria used to select documents. */
|
|
76
119
|
selector: MangoSelector;
|
package/lib/utils.cjs
CHANGED
|
@@ -9,9 +9,55 @@ const core_1 = require("@decaf-ts/core");
|
|
|
9
9
|
const constants_1 = require("./constants.cjs");
|
|
10
10
|
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
11
11
|
const constants_2 = require("./query/constants.cjs");
|
|
12
|
+
/**
|
|
13
|
+
* @description Re-authenticates a connection to CouchDB
|
|
14
|
+
* @summary Refreshes the authentication for a CouchDB connection using the provided credentials
|
|
15
|
+
* @param {any} con - The CouchDB connection object
|
|
16
|
+
* @param {string} user - The username for authentication
|
|
17
|
+
* @param {string} pass - The password for authentication
|
|
18
|
+
* @return {Promise<any>} A promise that resolves to the authentication result
|
|
19
|
+
* @function reAuth
|
|
20
|
+
* @memberOf module:for-couchdb
|
|
21
|
+
*/
|
|
12
22
|
async function reAuth(con, user, pass) {
|
|
13
23
|
return con.auth(user, pass);
|
|
14
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* @description Wraps a CouchDB database connection with automatic re-authentication
|
|
27
|
+
* @summary Creates a proxy around a CouchDB database connection that automatically re-authenticates before each operation
|
|
28
|
+
* @param {any} con - The CouchDB connection object
|
|
29
|
+
* @param {string} dbName - The name of the database to use
|
|
30
|
+
* @param {string} user - The username for authentication
|
|
31
|
+
* @param {string} pass - The password for authentication
|
|
32
|
+
* @return {any} The wrapped database connection object
|
|
33
|
+
* @function wrapDocumentScope
|
|
34
|
+
* @memberOf module:for-couchdb
|
|
35
|
+
* @mermaid
|
|
36
|
+
* sequenceDiagram
|
|
37
|
+
* participant Client
|
|
38
|
+
* participant wrapDocumentScope
|
|
39
|
+
* participant DB
|
|
40
|
+
* participant reAuth
|
|
41
|
+
*
|
|
42
|
+
* Client->>wrapDocumentScope: con, dbName, user, pass
|
|
43
|
+
* wrapDocumentScope->>DB: con.use(dbName)
|
|
44
|
+
* Note over wrapDocumentScope: Wrap DB methods with re-auth
|
|
45
|
+
*
|
|
46
|
+
* loop For each method (insert, get, put, destroy, find)
|
|
47
|
+
* wrapDocumentScope->>wrapDocumentScope: Store original method
|
|
48
|
+
* wrapDocumentScope->>wrapDocumentScope: Define new method with re-auth
|
|
49
|
+
* end
|
|
50
|
+
*
|
|
51
|
+
* wrapDocumentScope->>wrapDocumentScope: Add NATIVE property with con value
|
|
52
|
+
* wrapDocumentScope-->>Client: Return wrapped DB
|
|
53
|
+
*
|
|
54
|
+
* Note over Client: Later when client uses DB methods
|
|
55
|
+
* Client->>DB: Any wrapped method call
|
|
56
|
+
* DB->>reAuth: Authenticate before operation
|
|
57
|
+
* reAuth-->>DB: Authentication complete
|
|
58
|
+
* DB->>DB: Call original method
|
|
59
|
+
* DB-->>Client: Return result
|
|
60
|
+
*/
|
|
15
61
|
function wrapDocumentScope(con, dbName, user, pass) {
|
|
16
62
|
const db = con.use(dbName);
|
|
17
63
|
["insert", "get", "put", "destroy", "find"].forEach((k) => {
|
|
@@ -33,10 +79,30 @@ function wrapDocumentScope(con, dbName, user, pass) {
|
|
|
33
79
|
});
|
|
34
80
|
return db;
|
|
35
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* @description Tests if an attribute name is reserved in CouchDB
|
|
84
|
+
* @summary Checks if an attribute name starts with an underscore, which indicates it's a reserved attribute in CouchDB
|
|
85
|
+
* @param {string} attr - The attribute name to test
|
|
86
|
+
* @return {RegExpMatchArray|null} The match result or null if no match
|
|
87
|
+
* @function testReservedAttributes
|
|
88
|
+
* @memberOf module:for-couchdb
|
|
89
|
+
*/
|
|
36
90
|
function testReservedAttributes(attr) {
|
|
37
91
|
const regexp = /^_.*$/g;
|
|
38
92
|
return attr.match(regexp);
|
|
39
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* @description Generates a name for a CouchDB index
|
|
96
|
+
* @summary Creates a standardized name for a CouchDB index based on the table, attribute, compositions, and order
|
|
97
|
+
* @param {string} attribute - The primary attribute for the index
|
|
98
|
+
* @param {string} tableName - The name of the table
|
|
99
|
+
* @param {string[]} [compositions] - Optional additional attributes to include in the index
|
|
100
|
+
* @param {OrderDirection} [order] - Optional sort order for the index
|
|
101
|
+
* @param {string} [separator=DefaultSeparator] - The separator to use between parts of the index name
|
|
102
|
+
* @return {string} The generated index name
|
|
103
|
+
* @function generateIndexName
|
|
104
|
+
* @memberOf module:for-couchdb
|
|
105
|
+
*/
|
|
40
106
|
function generateIndexName(attribute, tableName, compositions, order, separator = db_decorators_1.DefaultSeparator) {
|
|
41
107
|
const attr = [core_1.PersistenceKeys.INDEX, tableName, attribute];
|
|
42
108
|
if (compositions)
|
|
@@ -45,6 +111,45 @@ function generateIndexName(attribute, tableName, compositions, order, separator
|
|
|
45
111
|
attr.push(order);
|
|
46
112
|
return attr.join(separator);
|
|
47
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* @description Generates a CouchDB index configuration
|
|
116
|
+
* @summary Creates a complete CreateIndexRequest object for defining a CouchDB index based on specified parameters
|
|
117
|
+
* @param {string} attribute - The primary attribute for the index
|
|
118
|
+
* @param {string} tableName - The name of the table
|
|
119
|
+
* @param {string[]} [compositions] - Optional additional attributes to include in the index
|
|
120
|
+
* @param {OrderDirection} [order] - Optional sort order for the index
|
|
121
|
+
* @param {string} [separator=DefaultSeparator] - The separator to use between parts of the index name
|
|
122
|
+
* @return {CreateIndexRequest} The complete index configuration object
|
|
123
|
+
* @function generateIndexDoc
|
|
124
|
+
* @memberOf module:for-couchdb
|
|
125
|
+
* @mermaid
|
|
126
|
+
* sequenceDiagram
|
|
127
|
+
* participant Caller
|
|
128
|
+
* participant generateIndexDoc
|
|
129
|
+
* participant generateIndexName
|
|
130
|
+
*
|
|
131
|
+
* Caller->>generateIndexDoc: attribute, tableName, compositions, order, separator
|
|
132
|
+
*
|
|
133
|
+
* Note over generateIndexDoc: Create partial filter selector
|
|
134
|
+
* generateIndexDoc->>generateIndexDoc: Set up filter for tableName
|
|
135
|
+
*
|
|
136
|
+
* alt order is specified
|
|
137
|
+
* Note over generateIndexDoc: Create ordered fields array
|
|
138
|
+
* generateIndexDoc->>generateIndexDoc: Create orderProp for attribute
|
|
139
|
+
* generateIndexDoc->>generateIndexDoc: Map compositions to ordered props
|
|
140
|
+
* generateIndexDoc->>generateIndexDoc: Create sortedTable for table field
|
|
141
|
+
* generateIndexDoc->>generateIndexDoc: Combine all ordered fields
|
|
142
|
+
* else
|
|
143
|
+
* Note over generateIndexDoc: Create simple fields array
|
|
144
|
+
* generateIndexDoc->>generateIndexDoc: Use attribute, compositions, and table as strings
|
|
145
|
+
* end
|
|
146
|
+
*
|
|
147
|
+
* generateIndexDoc->>generateIndexName: Generate index name
|
|
148
|
+
* generateIndexName-->>generateIndexDoc: Return name
|
|
149
|
+
*
|
|
150
|
+
* Note over generateIndexDoc: Create final index request
|
|
151
|
+
* generateIndexDoc-->>Caller: Return CreateIndexRequest
|
|
152
|
+
*/
|
|
48
153
|
function generateIndexDoc(attribute, tableName, compositions, order, separator = db_decorators_1.DefaultSeparator) {
|
|
49
154
|
const partialFilterSelector = {};
|
|
50
155
|
partialFilterSelector[constants_1.CouchDBKeys.TABLE] = {};
|
|
@@ -75,4 +180,4 @@ function generateIndexDoc(attribute, tableName, compositions, order, separator =
|
|
|
75
180
|
name: name,
|
|
76
181
|
};
|
|
77
182
|
}
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSx3QkFFQztBQUVELDhDQXlCQztBQUVELHdEQUdDO0FBRUQsOENBV0M7QUFFRCw0Q0EwQ0M7QUFqR0QseUNBQWlFO0FBQ2pFLCtDQUEwQztBQUMxQywyREFBMkQ7QUFDM0QscURBQW9EO0FBRzdDLEtBQUssVUFBVSxNQUFNLENBQUMsR0FBUSxFQUFFLElBQVksRUFBRSxJQUFZO0lBQy9ELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQUVELFNBQWdCLGlCQUFpQixDQUMvQixHQUFRLEVBQ1IsTUFBYyxFQUNkLElBQVksRUFDWixJQUFZO0lBRVosTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUN4RCxNQUFNLFFBQVEsR0FBSSxFQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUMzQixVQUFVLEVBQUUsS0FBSztZQUNqQixZQUFZLEVBQUUsSUFBSTtZQUNsQixLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBVyxFQUFFLEVBQUU7Z0JBQzlCLE1BQU0sTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzlCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNwQyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDSCxNQUFNLENBQUMs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b20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgQ291Y2hEQktleXMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IERlZmF1bHRTZXBhcmF0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENvdWNoREJPcGVyYXRvciB9IGZyb20gXCIuL3F1ZXJ5L2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgQ3JlYXRlSW5kZXhSZXF1ZXN0LCBNYW5nb1NlbGVjdG9yLCBTb3J0T3JkZXIgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVBdXRoKGNvbjogYW55LCB1c2VyOiBzdHJpbmcsIHBhc3M6IHN0cmluZykge1xuICByZXR1cm4gY29uLmF1dGgodXNlciwgcGFzcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwRG9jdW1lbnRTY29wZShcbiAgY29uOiBhbnksXG4gIGRiTmFtZTogc3RyaW5nLFxuICB1c2VyOiBzdHJpbmcsXG4gIHBhc3M6IHN0cmluZ1xuKTogYW55IHtcbiAgY29uc3QgZGIgPSBjb24udXNlKGRiTmFtZSk7XG4gIFtcImluc2VydFwiLCBcImdldFwiLCBcInB1dFwiLCBcImRlc3Ryb3lcIiwgXCJmaW5kXCJdLmZvckVhY2goKGspID0+IHtcbiAgICBjb25zdCBvcmlnaW5hbCA9IChkYiBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVtrXTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZGIsIGssIHtcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgdmFsdWU6IGFzeW5jICguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgICAgICBhd2FpdCByZUF1dGgoY29uLCB1c2VyLCBwYXNzKTtcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsLmNhbGwoZGIsIC4uLmFyZ3MpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkYiwgQ291Y2hEQktleXMuTkFUSVZFLCB7XG4gICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgdmFsdWU6IGNvbixcbiAgfSk7XG4gIHJldHVybiBkYjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlc3RSZXNlcnZlZEF0dHJpYnV0ZXMoYXR0cjogc3RyaW5nKSB7XG4gIGNvbnN0IHJlZ2V4cCA9IC9eXy4qJC9nO1xuICByZXR1cm4gYXR0ci5tYXRjaChyZWdleHApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVJbmRleE5hbWUoXG4gIGF0dHJpYnV0ZTogc3RyaW5nLFxuICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgY29tcG9zaXRpb25zPzogc3RyaW5nW10sXG4gIG9yZGVyPzogT3JkZXJEaXJlY3Rpb24sXG4gIHNlcGFyYXRvciA9IERlZmF1bHRTZXBhcmF0b3Jcbik6IHN0cmluZyB7XG4gIGNvbnN0IGF0dHIgPSBbUGVyc2lzdGVuY2VLZXlzLklOREVYLCB0YWJsZU5hbWUsIGF0dHJpYnV0ZV07XG4gIGlmIChjb21wb3NpdGlvbnMpIGF0dHIucHVzaCguLi5jb21wb3NpdGlvbnMpO1xuICBpZiAob3JkZXIpIGF0dHIucHVzaChvcmRlcik7XG4gIHJldHVybiBhdHRyLmpvaW4oc2VwYXJhdG9yKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlSW5kZXhEb2MoXG4gIGF0dHJpYnV0ZTogc3RyaW5nLFxuICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgY29tcG9zaXRpb25zPzogc3RyaW5nW10sXG4gIG9yZGVyPzogT3JkZXJEaXJlY3Rpb24sXG4gIHNlcGFyYXRvciA9IERlZmF1bHRTZXBhcmF0b3Jcbik6IENyZWF0ZUluZGV4UmVxdWVzdCB7XG4gIGNvbnN0IHBhcnRpYWxGaWx0ZXJTZWxlY3RvcjogTWFuZ29TZWxlY3RvciA9IHt9O1xuICBwYXJ0aWFsRmlsdGVyU2VsZWN0b3JbQ291Y2hEQktleXMuVEFCTEVdID0ge30gYXMgTWFuZ29TZWxlY3RvcjtcbiAgKHBhcnRpYWxGaWx0ZXJTZWxlY3RvcltDb3VjaERCS2V5cy5UQUJMRV0gYXMgTWFuZ29TZWxlY3RvcilbXG4gICAgQ291Y2hEQk9wZXJhdG9yLkVRVUFMXG4gIF0gPSB0YWJsZU5hbWU7XG4gIGxldCBmaWVsZHM6IFNvcnRPcmRlcltdO1xuICBpZiAob3JkZXIpIHtcbiAgICBjb25zdCBvcmRlclByb3A6IFNvcnRPcmRlciA9IHt9O1xuICAgIG9yZGVyUHJvcFthdHRyaWJ1dGVdID0gb3JkZXIgYXMgXCJhc2NcIiB8IFwiZGVzY1wiO1xuICAgIGNvbnN0IHNvcnRlZENvbXBvc2l0aW9uczogU29ydE9yZGVyW10gPSAoY29tcG9zaXRpb25zIHx8IFtdKS5tYXAoKGMpID0+IHtcbiAgICAgIGNvbnN0IHI6IFNvcnRPcmRlciA9IHt9O1xuICAgICAgcltjXSA9IG9yZGVyIGFzIFwiYXNjXCIgfCBcImRlc2NcIjtcbiAgICAgIHJldHVybiByO1xuICAgIH0pO1xuICAgIGNvbnN0IHNvcnRlZFRhYmxlOiBTb3J0T3JkZXIgPSB7fTtcbiAgICBzb3J0ZWRUYWJsZVtDb3VjaERCS2V5cy5UQUJMRV0gPSBvcmRlciBhcyBcImFzY1wiIHwgXCJkZXNjXCI7XG4gICAgZmllbGRzID0gW29yZGVyUHJvcCwgLi4uc29ydGVkQ29tcG9zaXRpb25zLCBzb3J0ZWRUYWJsZV07XG4gIH0gZWxzZSB7XG4gICAgZmllbGRzID0gW2F0dHJpYnV0ZSwgLi4uKGNvbXBvc2l0aW9ucyB8fCBbXSksIENvdWNoREJLZXlzLlRBQkxFXTtcbiAgfVxuICBjb25zdCBuYW1lID0gZ2VuZXJhdGVJbmRleE5hbWUoXG4gICAgYXR0cmlidXRlLFxuICAgIHRhYmxlTmFtZSxcbiAgICBjb21wb3NpdGlvbnMsXG4gICAgb3JkZXIsXG4gICAgc2VwYXJhdG9yXG4gICk7XG4gIHJldHVybiB7XG4gICAgaW5kZXg6IHtcbiAgICAgIGZpZWxkczogZmllbGRzLFxuICAgICAgLy8gcGFydGlhbF9maWx0ZXJfc2VsZWN0b3I6IHBhcnRpYWxGaWx0ZXJTZWxlY3RvcixcbiAgICB9LFxuICAgIGRkb2M6IFtuYW1lLCBDb3VjaERCS2V5cy5ERE9DXS5qb2luKHNlcGFyYXRvciksXG4gICAgbmFtZTogbmFtZSxcbiAgfTtcbn1cbiJdfQ==
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFnQkEsd0JBRUM7QUFzQ0QsOENBeUJDO0FBVUQsd0RBR0M7QUFjRCw4Q0FXQztBQXlDRCw0Q0EwQ0M7QUExTUQseUNBQWlFO0FBQ2pFLCtDQUEwQztBQUMxQywyREFBMkQ7QUFDM0QscURBQW9EO0FBR3BEOzs7Ozs7Ozs7R0FTRztBQUNJLEtBQUssVUFBVSxNQUFNLENBQUMsR0FBUSxFQUFFLElBQVksRUFBRSxJQUFZO0lBQy9ELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1DRztBQUNILFNBQWdCLGlCQUFpQixDQUMvQixHQUFRLEVBQ1IsTUFBYyxFQUNkLElBQVksRUFDWixJQUFZO0lBRVosTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUN4RCxNQUFNLFFBQVEsR0FBSSxFQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUMzQixVQUFVLEVBQUUsS0FBSztZQUNqQixZQUFZLEVBQUUsSUFBSTtZQUNsQixLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBVyxFQUFFLEVBQUU7Z0JBQzlCLE1BQU0sTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzlCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMs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QUFXLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUM5QyxJQUFJLEVBQUUsSUFBSTtLQUNYLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3JkZXJEaXJlY3Rpb24sIFBlcnNpc3RlbmNlS2V5cyB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgQ291Y2hEQktleXMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IERlZmF1bHRTZXBhcmF0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENvdWNoREJPcGVyYXRvciB9IGZyb20gXCIuL3F1ZXJ5L2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgQ3JlYXRlSW5kZXhSZXF1ZXN0LCBNYW5nb1NlbGVjdG9yLCBTb3J0T3JkZXIgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBSZS1hdXRoZW50aWNhdGVzIGEgY29ubmVjdGlvbiB0byBDb3VjaERCXG4gKiBAc3VtbWFyeSBSZWZyZXNoZXMgdGhlIGF1dGhlbnRpY2F0aW9uIGZvciBhIENvdWNoREIgY29ubmVjdGlvbiB1c2luZyB0aGUgcHJvdmlkZWQgY3JlZGVudGlhbHNcbiAqIEBwYXJhbSB7YW55fSBjb24gLSBUaGUgQ291Y2hEQiBjb25uZWN0aW9uIG9iamVjdFxuICogQHBhcmFtIHtzdHJpbmd9IHVzZXIgLSBUaGUgdXNlcm5hbWUgZm9yIGF1dGhlbnRpY2F0aW9uXG4gKiBAcGFyYW0ge3N0cmluZ30gcGFzcyAtIFRoZSBwYXNzd29yZCBmb3IgYXV0aGVudGljYXRpb25cbiAqIEByZXR1cm4ge1Byb21pc2U8YW55Pn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGF1dGhlbnRpY2F0aW9uIHJlc3VsdFxuICogQGZ1bmN0aW9uIHJlQXV0aFxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVBdXRoKGNvbjogYW55LCB1c2VyOiBzdHJpbmcsIHBhc3M6IHN0cmluZykge1xuICByZXR1cm4gY29uLmF1dGgodXNlciwgcGFzcyk7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFdyYXBzIGEgQ291Y2hEQiBkYXRhYmFzZSBjb25uZWN0aW9uIHdpdGggYXV0b21hdGljIHJlLWF1dGhlbnRpY2F0aW9uXG4gKiBAc3VtbWFyeSBDcmVhdGVzIGEgcHJveHkgYXJvdW5kIGEgQ291Y2hEQiBkYXRhYmFzZSBjb25uZWN0aW9uIHRoYXQgYXV0b21hdGljYWxseSByZS1hdXRoZW50aWNhdGVzIGJlZm9yZSBlYWNoIG9wZXJhdGlvblxuICogQHBhcmFtIHthbnl9IGNvbiAtIFRoZSBDb3VjaERCIGNvbm5lY3Rpb24gb2JqZWN0XG4gKiBAcGFyYW0ge3N0cmluZ30gZGJOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGRhdGFiYXNlIHRvIHVzZVxuICogQHBhcmFtIHtzdHJpbmd9IHVzZXIgLSBUaGUgdXNlcm5hbWUgZm9yIGF1dGhlbnRpY2F0aW9uXG4gKiBAcGFyYW0ge3N0cmluZ30gcGFzcyAtIFRoZSBwYXNzd29yZCBmb3IgYXV0aGVudGljYXRpb25cbiAqIEByZXR1cm4ge2FueX0gVGhlIHdyYXBwZWQgZGF0YWJhc2UgY29ubmVjdGlvbiBvYmplY3RcbiAqIEBmdW5jdGlvbiB3cmFwRG9jdW1lbnRTY29wZVxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDbGllbnRcbiAqICAgcGFydGljaXBhbnQgd3JhcERvY3VtZW50U2NvcGVcbiAqICAgcGFydGljaXBhbnQgREJcbiAqICAgcGFydGljaXBhbnQgcmVBdXRoXG4gKiAgIFxuICogICBDbGllbnQtPj53cmFwRG9jdW1lbnRTY29wZTogY29uLCBkYk5hbWUsIHVzZXIsIHBhc3NcbiAqICAgd3JhcERvY3VtZW50U2NvcGUtPj5EQjogY29uLnVzZShkYk5hbWUpXG4gKiAgIE5vdGUgb3ZlciB3cmFwRG9jdW1lbnRTY29wZTogV3JhcCBEQiBtZXRob2RzIHdpdGggcmUtYXV0aFxuICogICBcbiAqICAgbG9vcCBGb3IgZWFjaCBtZXRob2QgKGluc2VydCwgZ2V0LCBwdXQsIGRlc3Ryb3ksIGZpbmQpXG4gKiAgICAgd3JhcERvY3VtZW50U2NvcGUtPj53cmFwRG9jdW1lbnRTY29wZTogU3RvcmUgb3JpZ2luYWwgbWV0aG9kXG4gKiAgICAgd3JhcERvY3VtZW50U2NvcGUtPj53cmFwRG9jdW1lbnRTY29wZTogRGVmaW5lIG5ldyBtZXRob2Qgd2l0aCByZS1hdXRoXG4gKiAgIGVuZFxuICogICBcbiAqICAgd3JhcERvY3VtZW50U2NvcGUtPj53cmFwRG9jdW1lbnRTY29wZTogQWRkIE5BVElWRSBwcm9wZXJ0eSB3aXRoIGNvbiB2YWx1ZVxuICogICB3cmFwRG9jdW1lbnRTY29wZS0tPj5DbGllbnQ6IFJldHVybiB3cmFwcGVkIERCXG4gKiAgIFxuICogICBOb3RlIG92ZXIgQ2xpZW50OiBMYXRlciB3aGVuIGNsaWVudCB1c2VzIERCIG1ldGhvZHNcbiAqICAgQ2xpZW50LT4+REI6IEFueSB3cmFwcGVkIG1ldGhvZCBjYWxsXG4gKiAgIERCLT4+cmVBdXRoOiBBdXRoZW50aWNhdGUgYmVmb3JlIG9wZXJhdGlvblxuICogICByZUF1dGgtLT4+REI6IEF1dGhlbnRpY2F0aW9uIGNvbXBsZXRlXG4gKiAgIERCLT4+REI6IENhbGwgb3JpZ2luYWwgbWV0aG9kXG4gKiAgIERCLS0+PkNsaWVudDogUmV0dXJuIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gd3JhcERvY3VtZW50U2NvcGUoXG4gIGNvbjogYW55LFxuICBkYk5hbWU6IHN0cmluZyxcbiAgdXNlcjogc3RyaW5nLFxuICBwYXNzOiBzdHJpbmdcbik6IGFueSB7XG4gIGNvbnN0IGRiID0gY29uLnVzZShkYk5hbWUpO1xuICBbXCJpbnNlcnRcIiwgXCJnZXRcIiwgXCJwdXRcIiwgXCJkZXN0cm95XCIsIFwiZmluZFwiXS5mb3JFYWNoKChrKSA9PiB7XG4gICAgY29uc3Qgb3JpZ2luYWwgPSAoZGIgYXMgUmVjb3JkPHN0cmluZywgYW55Pilba107XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGRiLCBrLCB7XG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHZhbHVlOiBhc3luYyAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgICAgYXdhaXQgcmVBdXRoKGNvbiwgdXNlciwgcGFzcyk7XG4gICAgICAgIHJldHVybiBvcmlnaW5hbC5jYWxsKGRiLCAuLi5hcmdzKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZGIsIENvdWNoREJLZXlzLk5BVElWRSwge1xuICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIHZhbHVlOiBjb24sXG4gIH0pO1xuICByZXR1cm4gZGI7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFRlc3RzIGlmIGFuIGF0dHJpYnV0ZSBuYW1lIGlzIHJlc2VydmVkIGluIENvdWNoREJcbiAqIEBzdW1tYXJ5IENoZWNrcyBpZiBhbiBhdHRyaWJ1dGUgbmFtZSBzdGFydHMgd2l0aCBhbiB1bmRlcnNjb3JlLCB3aGljaCBpbmRpY2F0ZXMgaXQncyBhIHJlc2VydmVkIGF0dHJpYnV0ZSBpbiBDb3VjaERCXG4gKiBAcGFyYW0ge3N0cmluZ30gYXR0ciAtIFRoZSBhdHRyaWJ1dGUgbmFtZSB0byB0ZXN0XG4gKiBAcmV0dXJuIHtSZWdFeHBNYXRjaEFycmF5fG51bGx9IFRoZSBtYXRjaCByZXN1bHQgb3IgbnVsbCBpZiBubyBtYXRjaFxuICogQGZ1bmN0aW9uIHRlc3RSZXNlcnZlZEF0dHJpYnV0ZXNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWNvdWNoZGJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRlc3RSZXNlcnZlZEF0dHJpYnV0ZXMoYXR0cjogc3RyaW5nKSB7XG4gIGNvbnN0IHJlZ2V4cCA9IC9eXy4qJC9nO1xuICByZXR1cm4gYXR0ci5tYXRjaChyZWdleHApO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBHZW5lcmF0ZXMgYSBuYW1lIGZvciBhIENvdWNoREIgaW5kZXhcbiAqIEBzdW1tYXJ5IENyZWF0ZXMgYSBzdGFuZGFyZGl6ZWQgbmFtZSBmb3IgYSBDb3VjaERCIGluZGV4IGJhc2VkIG9uIHRoZSB0YWJsZSwgYXR0cmlidXRlLCBjb21wb3NpdGlvbnMsIGFuZCBvcmRlclxuICogQHBhcmFtIHtzdHJpbmd9IGF0dHJpYnV0ZSAtIFRoZSBwcmltYXJ5IGF0dHJpYnV0ZSBmb3IgdGhlIGluZGV4XG4gKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBbY29tcG9zaXRpb25zXSAtIE9wdGlvbmFsIGFkZGl0aW9uYWwgYXR0cmlidXRlcyB0byBpbmNsdWRlIGluIHRoZSBpbmRleFxuICogQHBhcmFtIHtPcmRlckRpcmVjdGlvbn0gW29yZGVyXSAtIE9wdGlvbmFsIHNvcnQgb3JkZXIgZm9yIHRoZSBpbmRleFxuICogQHBhcmFtIHtzdHJpbmd9IFtzZXBhcmF0b3I9RGVmYXVsdFNlcGFyYXRvcl0gLSBUaGUgc2VwYXJhdG9yIHRvIHVzZSBiZXR3ZWVuIHBhcnRzIG9mIHRoZSBpbmRleCBuYW1lXG4gKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBnZW5lcmF0ZWQgaW5kZXggbmFtZVxuICogQGZ1bmN0aW9uIGdlbmVyYXRlSW5kZXhOYW1lXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci1jb3VjaGRiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUluZGV4TmFtZShcbiAgYXR0cmlidXRlOiBzdHJpbmcsXG4gIHRhYmxlTmFtZTogc3RyaW5nLFxuICBjb21wb3NpdGlvbnM/OiBzdHJpbmdbXSxcbiAgb3JkZXI/OiBPcmRlckRpcmVjdGlvbixcbiAgc2VwYXJhdG9yID0gRGVmYXVsdFNlcGFyYXRvclxuKTogc3RyaW5nIHtcbiAgY29uc3QgYXR0ciA9IFtQZXJzaXN0ZW5jZUtleXMuSU5ERVgsIHRhYmxlTmFtZSwgYXR0cmlidXRlXTtcbiAgaWYgKGNvbXBvc2l0aW9ucykgYXR0ci5wdXNoKC4uLmNvbXBvc2l0aW9ucyk7XG4gIGlmIChvcmRlcikgYXR0ci5wdXNoKG9yZGVyKTtcbiAgcmV0dXJuIGF0dHIuam9pbihzZXBhcmF0b3IpO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBHZW5lcmF0ZXMgYSBDb3VjaERCIGluZGV4IGNvbmZpZ3VyYXRpb25cbiAqIEBzdW1tYXJ5IENyZWF0ZXMgYSBjb21wbGV0ZSBDcmVhdGVJbmRleFJlcXVlc3Qgb2JqZWN0IGZvciBkZWZpbmluZyBhIENvdWNoREIgaW5kZXggYmFzZWQgb24gc3BlY2lmaWVkIHBhcmFtZXRlcnNcbiAqIEBwYXJhbSB7c3RyaW5nfSBhdHRyaWJ1dGUgLSBUaGUgcHJpbWFyeSBhdHRyaWJ1dGUgZm9yIHRoZSBpbmRleFxuICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZVxuICogQHBhcmFtIHtzdHJpbmdbXX0gW2NvbXBvc2l0aW9uc10gLSBPcHRpb25hbCBhZGRpdGlvbmFsIGF0dHJpYnV0ZXMgdG8gaW5jbHVkZSBpbiB0aGUgaW5kZXhcbiAqIEBwYXJhbSB7T3JkZXJEaXJlY3Rpb259IFtvcmRlcl0gLSBPcHRpb25hbCBzb3J0IG9yZGVyIGZvciB0aGUgaW5kZXhcbiAqIEBwYXJhbSB7c3RyaW5nfSBbc2VwYXJhdG9yPURlZmF1bHRTZXBhcmF0b3JdIC0gVGhlIHNlcGFyYXRvciB0byB1c2UgYmV0d2VlbiBwYXJ0cyBvZiB0aGUgaW5kZXggbmFtZVxuICogQHJldHVybiB7Q3JlYXRlSW5kZXhSZXF1ZXN0fSBUaGUgY29tcGxldGUgaW5kZXggY29uZmlndXJhdGlvbiBvYmplY3RcbiAqIEBmdW5jdGlvbiBnZW5lcmF0ZUluZGV4RG9jXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci1jb3VjaGRiXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IENhbGxlclxuICogICBwYXJ0aWNpcGFudCBnZW5lcmF0ZUluZGV4RG9jXG4gKiAgIHBhcnRpY2lwYW50IGdlbmVyYXRlSW5kZXhOYW1lXG4gKiAgIFxuICogICBDYWxsZXItPj5nZW5lcmF0ZUluZGV4RG9jOiBhdHRyaWJ1dGUsIHRhYmxlTmFtZSwgY29tcG9zaXRpb25zLCBvcmRlciwgc2VwYXJhdG9yXG4gKiAgIFxuICogICBOb3RlIG92ZXIgZ2VuZXJhdGVJbmRleERvYzogQ3JlYXRlIHBhcnRpYWwgZmlsdGVyIHNlbGVjdG9yXG4gKiAgIGdlbmVyYXRlSW5kZXhEb2MtPj5nZW5lcmF0ZUluZGV4RG9jOiBTZXQgdXAgZmlsdGVyIGZvciB0YWJsZU5hbWVcbiAqICAgXG4gKiAgIGFsdCBvcmRlciBpcyBzcGVjaWZpZWRcbiAqICAgICBOb3RlIG92ZXIgZ2VuZXJhdGVJbmRleERvYzogQ3JlYXRlIG9yZGVyZWQgZmllbGRzIGFycmF5XG4gKiAgICAgZ2VuZXJhdGVJbmRleERvYy0+PmdlbmVyYXRlSW5kZXhEb2M6IENyZWF0ZSBvcmRlclByb3AgZm9yIGF0dHJpYnV0ZVxuICogICAgIGdlbmVyYXRlSW5kZXhEb2MtPj5nZW5lcmF0ZUluZGV4RG9jOiBNYXAgY29tcG9zaXRpb25zIHRvIG9yZGVyZWQgcHJvcHNcbiAqICAgICBnZW5lcmF0ZUluZGV4RG9jLT4+Z2VuZXJhdGVJbmRleERvYzogQ3JlYXRlIHNvcnRlZFRhYmxlIGZvciB0YWJsZSBmaWVsZFxuICogICAgIGdlbmVyYXRlSW5kZXhEb2MtPj5nZW5lcmF0ZUluZGV4RG9jOiBDb21iaW5lIGFsbCBvcmRlcmVkIGZpZWxkc1xuICogICBlbHNlXG4gKiAgICAgTm90ZSBvdmVyIGdlbmVyYXRlSW5kZXhEb2M6IENyZWF0ZSBzaW1wbGUgZmllbGRzIGFycmF5XG4gKiAgICAgZ2VuZXJhdGVJbmRleERvYy0+PmdlbmVyYXRlSW5kZXhEb2M6IFVzZSBhdHRyaWJ1dGUsIGNvbXBvc2l0aW9ucywgYW5kIHRhYmxlIGFzIHN0cmluZ3NcbiAqICAgZW5kXG4gKiAgIFxuICogICBnZW5lcmF0ZUluZGV4RG9jLT4+Z2VuZXJhdGVJbmRleE5hbWU6IEdlbmVyYXRlIGluZGV4IG5hbWVcbiAqICAgZ2VuZXJhdGVJbmRleE5hbWUtLT4+Z2VuZXJhdGVJbmRleERvYzogUmV0dXJuIG5hbWVcbiAqICAgXG4gKiAgIE5vdGUgb3ZlciBnZW5lcmF0ZUluZGV4RG9jOiBDcmVhdGUgZmluYWwgaW5kZXggcmVxdWVzdFxuICogICBnZW5lcmF0ZUluZGV4RG9jLS0+PkNhbGxlcjogUmV0dXJuIENyZWF0ZUluZGV4UmVxdWVzdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVJbmRleERvYyhcbiAgYXR0cmlidXRlOiBzdHJpbmcsXG4gIHRhYmxlTmFtZTogc3RyaW5nLFxuICBjb21wb3NpdGlvbnM/OiBzdHJpbmdbXSxcbiAgb3JkZXI/OiBPcmRlckRpcmVjdGlvbixcbiAgc2VwYXJhdG9yID0gRGVmYXVsdFNlcGFyYXRvclxuKTogQ3JlYXRlSW5kZXhSZXF1ZXN0IHtcbiAgY29uc3QgcGFydGlhbEZpbHRlclNlbGVjdG9yOiBNYW5nb1NlbGVjdG9yID0ge307XG4gIHBhcnRpYWxGaWx0ZXJTZWxlY3RvcltDb3VjaERCS2V5cy5UQUJMRV0gPSB7fSBhcyBNYW5nb1NlbGVjdG9yO1xuICAocGFydGlhbEZpbHRlclNlbGVjdG9yW0NvdWNoREJLZXlzLlRBQkxFXSBhcyBNYW5nb1NlbGVjdG9yKVtcbiAgICBDb3VjaERCT3BlcmF0b3IuRVFVQUxcbiAgXSA9IHRhYmxlTmFtZTtcbiAgbGV0IGZpZWxkczogU29ydE9yZGVyW107XG4gIGlmIChvcmRlcikge1xuICAgIGNvbnN0IG9yZGVyUHJvcDogU29ydE9yZGVyID0ge307XG4gICAgb3JkZXJQcm9wW2F0dHJpYnV0ZV0gPSBvcmRlciBhcyBcImFzY1wiIHwgXCJkZXNjXCI7XG4gICAgY29uc3Qgc29ydGVkQ29tcG9zaXRpb25zOiBTb3J0T3JkZXJbXSA9IChjb21wb3NpdGlvbnMgfHwgW10pLm1hcCgoYykgPT4ge1xuICAgICAgY29uc3QgcjogU29ydE9yZGVyID0ge307XG4gICAgICByW2NdID0gb3JkZXIgYXMgXCJhc2NcIiB8IFwiZGVzY1wiO1xuICAgICAgcmV0dXJuIHI7XG4gICAgfSk7XG4gICAgY29uc3Qgc29ydGVkVGFibGU6IFNvcnRPcmRlciA9IHt9O1xuICAgIHNvcnRlZFRhYmxlW0NvdWNoREJLZXlzLlRBQkxFXSA9IG9yZGVyIGFzIFwiYXNjXCIgfCBcImRlc2NcIjtcbiAgICBmaWVsZHMgPSBbb3JkZXJQcm9wLCAuLi5zb3J0ZWRDb21wb3NpdGlvbnMsIHNvcnRlZFRhYmxlXTtcbiAgfSBlbHNlIHtcbiAgICBmaWVsZHMgPSBbYXR0cmlidXRlLCAuLi4oY29tcG9zaXRpb25zIHx8IFtdKSwgQ291Y2hEQktleXMuVEFCTEVdO1xuICB9XG4gIGNvbnN0IG5hbWUgPSBnZW5lcmF0ZUluZGV4TmFtZShcbiAgICBhdHRyaWJ1dGUsXG4gICAgdGFibGVOYW1lLFxuICAgIGNvbXBvc2l0aW9ucyxcbiAgICBvcmRlcixcbiAgICBzZXBhcmF0b3JcbiAgKTtcbiAgcmV0dXJuIHtcbiAgICBpbmRleDoge1xuICAgICAgZmllbGRzOiBmaWVsZHMsXG4gICAgICAvLyBwYXJ0aWFsX2ZpbHRlcl9zZWxlY3RvcjogcGFydGlhbEZpbHRlclNlbGVjdG9yLFxuICAgIH0sXG4gICAgZGRvYzogW25hbWUsIENvdWNoREJLZXlzLkRET0NdLmpvaW4oc2VwYXJhdG9yKSxcbiAgICBuYW1lOiBuYW1lLFxuICB9O1xufVxuIl19
|
package/lib/utils.d.ts
CHANGED
|
@@ -1,7 +1,112 @@
|
|
|
1
1
|
import { OrderDirection } from "@decaf-ts/core";
|
|
2
2
|
import { CreateIndexRequest } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* @description Re-authenticates a connection to CouchDB
|
|
5
|
+
* @summary Refreshes the authentication for a CouchDB connection using the provided credentials
|
|
6
|
+
* @param {any} con - The CouchDB connection object
|
|
7
|
+
* @param {string} user - The username for authentication
|
|
8
|
+
* @param {string} pass - The password for authentication
|
|
9
|
+
* @return {Promise<any>} A promise that resolves to the authentication result
|
|
10
|
+
* @function reAuth
|
|
11
|
+
* @memberOf module:for-couchdb
|
|
12
|
+
*/
|
|
3
13
|
export declare function reAuth(con: any, user: string, pass: string): Promise<any>;
|
|
14
|
+
/**
|
|
15
|
+
* @description Wraps a CouchDB database connection with automatic re-authentication
|
|
16
|
+
* @summary Creates a proxy around a CouchDB database connection that automatically re-authenticates before each operation
|
|
17
|
+
* @param {any} con - The CouchDB connection object
|
|
18
|
+
* @param {string} dbName - The name of the database to use
|
|
19
|
+
* @param {string} user - The username for authentication
|
|
20
|
+
* @param {string} pass - The password for authentication
|
|
21
|
+
* @return {any} The wrapped database connection object
|
|
22
|
+
* @function wrapDocumentScope
|
|
23
|
+
* @memberOf module:for-couchdb
|
|
24
|
+
* @mermaid
|
|
25
|
+
* sequenceDiagram
|
|
26
|
+
* participant Client
|
|
27
|
+
* participant wrapDocumentScope
|
|
28
|
+
* participant DB
|
|
29
|
+
* participant reAuth
|
|
30
|
+
*
|
|
31
|
+
* Client->>wrapDocumentScope: con, dbName, user, pass
|
|
32
|
+
* wrapDocumentScope->>DB: con.use(dbName)
|
|
33
|
+
* Note over wrapDocumentScope: Wrap DB methods with re-auth
|
|
34
|
+
*
|
|
35
|
+
* loop For each method (insert, get, put, destroy, find)
|
|
36
|
+
* wrapDocumentScope->>wrapDocumentScope: Store original method
|
|
37
|
+
* wrapDocumentScope->>wrapDocumentScope: Define new method with re-auth
|
|
38
|
+
* end
|
|
39
|
+
*
|
|
40
|
+
* wrapDocumentScope->>wrapDocumentScope: Add NATIVE property with con value
|
|
41
|
+
* wrapDocumentScope-->>Client: Return wrapped DB
|
|
42
|
+
*
|
|
43
|
+
* Note over Client: Later when client uses DB methods
|
|
44
|
+
* Client->>DB: Any wrapped method call
|
|
45
|
+
* DB->>reAuth: Authenticate before operation
|
|
46
|
+
* reAuth-->>DB: Authentication complete
|
|
47
|
+
* DB->>DB: Call original method
|
|
48
|
+
* DB-->>Client: Return result
|
|
49
|
+
*/
|
|
4
50
|
export declare function wrapDocumentScope(con: any, dbName: string, user: string, pass: string): any;
|
|
51
|
+
/**
|
|
52
|
+
* @description Tests if an attribute name is reserved in CouchDB
|
|
53
|
+
* @summary Checks if an attribute name starts with an underscore, which indicates it's a reserved attribute in CouchDB
|
|
54
|
+
* @param {string} attr - The attribute name to test
|
|
55
|
+
* @return {RegExpMatchArray|null} The match result or null if no match
|
|
56
|
+
* @function testReservedAttributes
|
|
57
|
+
* @memberOf module:for-couchdb
|
|
58
|
+
*/
|
|
5
59
|
export declare function testReservedAttributes(attr: string): RegExpMatchArray | null;
|
|
60
|
+
/**
|
|
61
|
+
* @description Generates a name for a CouchDB index
|
|
62
|
+
* @summary Creates a standardized name for a CouchDB index based on the table, attribute, compositions, and order
|
|
63
|
+
* @param {string} attribute - The primary attribute for the index
|
|
64
|
+
* @param {string} tableName - The name of the table
|
|
65
|
+
* @param {string[]} [compositions] - Optional additional attributes to include in the index
|
|
66
|
+
* @param {OrderDirection} [order] - Optional sort order for the index
|
|
67
|
+
* @param {string} [separator=DefaultSeparator] - The separator to use between parts of the index name
|
|
68
|
+
* @return {string} The generated index name
|
|
69
|
+
* @function generateIndexName
|
|
70
|
+
* @memberOf module:for-couchdb
|
|
71
|
+
*/
|
|
6
72
|
export declare function generateIndexName(attribute: string, tableName: string, compositions?: string[], order?: OrderDirection, separator?: string): string;
|
|
73
|
+
/**
|
|
74
|
+
* @description Generates a CouchDB index configuration
|
|
75
|
+
* @summary Creates a complete CreateIndexRequest object for defining a CouchDB index based on specified parameters
|
|
76
|
+
* @param {string} attribute - The primary attribute for the index
|
|
77
|
+
* @param {string} tableName - The name of the table
|
|
78
|
+
* @param {string[]} [compositions] - Optional additional attributes to include in the index
|
|
79
|
+
* @param {OrderDirection} [order] - Optional sort order for the index
|
|
80
|
+
* @param {string} [separator=DefaultSeparator] - The separator to use between parts of the index name
|
|
81
|
+
* @return {CreateIndexRequest} The complete index configuration object
|
|
82
|
+
* @function generateIndexDoc
|
|
83
|
+
* @memberOf module:for-couchdb
|
|
84
|
+
* @mermaid
|
|
85
|
+
* sequenceDiagram
|
|
86
|
+
* participant Caller
|
|
87
|
+
* participant generateIndexDoc
|
|
88
|
+
* participant generateIndexName
|
|
89
|
+
*
|
|
90
|
+
* Caller->>generateIndexDoc: attribute, tableName, compositions, order, separator
|
|
91
|
+
*
|
|
92
|
+
* Note over generateIndexDoc: Create partial filter selector
|
|
93
|
+
* generateIndexDoc->>generateIndexDoc: Set up filter for tableName
|
|
94
|
+
*
|
|
95
|
+
* alt order is specified
|
|
96
|
+
* Note over generateIndexDoc: Create ordered fields array
|
|
97
|
+
* generateIndexDoc->>generateIndexDoc: Create orderProp for attribute
|
|
98
|
+
* generateIndexDoc->>generateIndexDoc: Map compositions to ordered props
|
|
99
|
+
* generateIndexDoc->>generateIndexDoc: Create sortedTable for table field
|
|
100
|
+
* generateIndexDoc->>generateIndexDoc: Combine all ordered fields
|
|
101
|
+
* else
|
|
102
|
+
* Note over generateIndexDoc: Create simple fields array
|
|
103
|
+
* generateIndexDoc->>generateIndexDoc: Use attribute, compositions, and table as strings
|
|
104
|
+
* end
|
|
105
|
+
*
|
|
106
|
+
* generateIndexDoc->>generateIndexName: Generate index name
|
|
107
|
+
* generateIndexName-->>generateIndexDoc: Return name
|
|
108
|
+
*
|
|
109
|
+
* Note over generateIndexDoc: Create final index request
|
|
110
|
+
* generateIndexDoc-->>Caller: Return CreateIndexRequest
|
|
111
|
+
*/
|
|
7
112
|
export declare function generateIndexDoc(attribute: string, tableName: string, compositions?: string[], order?: OrderDirection, separator?: string): CreateIndexRequest;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decaf-ts/for-couchdb",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "template for ts projects",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"ts"
|
|
74
74
|
],
|
|
75
75
|
"author": "Tiago Venceslau",
|
|
76
|
-
"license": "
|
|
76
|
+
"license": "AGPL-3.0-or-later",
|
|
77
77
|
"bugs": {
|
|
78
78
|
"url": "https://github.com/decaf-ts/for-couchdb/issues"
|
|
79
79
|
},
|