@decaf-ts/for-couchdb 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-couchdb.bundle.min.esm.js +2 -0
- package/dist/esm/for-couchdb.bundle.min.esm.js.LICENSE.txt +25 -0
- package/dist/for-couchdb.bundle.min.js +2 -0
- package/dist/for-couchdb.bundle.min.js.LICENSE.txt +25 -0
- package/lib/adapter.cjs +332 -0
- package/lib/adapter.d.ts +32 -0
- package/lib/constants.cjs +15 -0
- package/lib/constants.d.ts +10 -0
- package/lib/errors.cjs +12 -0
- package/lib/errors.d.ts +4 -0
- package/lib/esm/adapter.d.ts +32 -0
- package/lib/esm/adapter.js +328 -0
- package/lib/esm/constants.d.ts +10 -0
- package/lib/esm/constants.js +12 -0
- package/lib/esm/errors.d.ts +4 -0
- package/lib/esm/errors.js +8 -0
- package/lib/esm/index.d.ts +24 -0
- package/lib/esm/index.js +26 -0
- package/lib/esm/indexes/generator.d.ts +3 -0
- package/lib/esm/indexes/generator.js +72 -0
- package/lib/esm/indexes/index.d.ts +2 -0
- package/lib/esm/indexes/index.js +4 -0
- package/lib/esm/indexes/types.d.ts +11 -0
- package/lib/esm/indexes/types.js +3 -0
- package/lib/esm/interfaces/CouchDBRepository.d.ts +7 -0
- package/lib/esm/interfaces/CouchDBRepository.js +3 -0
- package/lib/esm/interfaces/index.d.ts +1 -0
- package/lib/esm/interfaces/index.js +3 -0
- package/lib/esm/model/CouchDBSequence.d.ts +20 -0
- package/lib/esm/model/CouchDBSequence.js +49 -0
- package/lib/esm/model/index.d.ts +1 -0
- package/lib/esm/model/index.js +3 -0
- package/lib/esm/query/FromClause.d.ts +7 -0
- package/lib/esm/query/FromClause.js +21 -0
- package/lib/esm/query/InsertClause.d.ts +7 -0
- package/lib/esm/query/InsertClause.js +14 -0
- package/lib/esm/query/Paginator.d.ts +10 -0
- package/lib/esm/query/Paginator.js +58 -0
- package/lib/esm/query/SelectClause.d.ts +7 -0
- package/lib/esm/query/SelectClause.js +17 -0
- package/lib/esm/query/Statement.d.ts +13 -0
- package/lib/esm/query/Statement.js +55 -0
- package/lib/esm/query/ValuesClause.d.ts +7 -0
- package/lib/esm/query/ValuesClause.js +13 -0
- package/lib/esm/query/WhereClause.d.ts +7 -0
- package/lib/esm/query/WhereClause.js +58 -0
- package/lib/esm/query/constants.d.ts +4 -0
- package/lib/esm/query/constants.js +22 -0
- package/lib/esm/query/factory.d.ts +24 -0
- package/lib/esm/query/factory.js +118 -0
- package/lib/esm/query/index.d.ts +1 -0
- package/lib/esm/query/index.js +3 -0
- package/lib/esm/query/translate.d.ts +3 -0
- package/lib/esm/query/translate.js +12 -0
- package/lib/esm/sequences/Sequence.d.ts +48 -0
- package/lib/esm/sequences/Sequence.js +127 -0
- package/lib/esm/sequences/index.d.ts +1 -0
- package/lib/esm/sequences/index.js +3 -0
- package/lib/esm/sequences/utils.d.ts +1 -0
- package/lib/esm/sequences/utils.js +17 -0
- package/lib/esm/utils.d.ts +7 -0
- package/lib/esm/utils.js +72 -0
- package/lib/index.cjs +43 -0
- package/lib/index.d.ts +24 -0
- package/lib/indexes/generator.cjs +75 -0
- package/lib/indexes/generator.d.ts +3 -0
- package/lib/indexes/index.cjs +20 -0
- package/lib/indexes/index.d.ts +2 -0
- package/lib/indexes/types.cjs +4 -0
- package/lib/indexes/types.d.ts +11 -0
- package/lib/interfaces/CouchDBRepository.cjs +4 -0
- package/lib/interfaces/CouchDBRepository.d.ts +7 -0
- package/lib/interfaces/index.cjs +19 -0
- package/lib/interfaces/index.d.ts +1 -0
- package/lib/model/CouchDBSequence.cjs +52 -0
- package/lib/model/CouchDBSequence.d.ts +20 -0
- package/lib/model/index.cjs +19 -0
- package/lib/model/index.d.ts +1 -0
- package/lib/query/FromClause.cjs +25 -0
- package/lib/query/FromClause.d.ts +7 -0
- package/lib/query/InsertClause.cjs +18 -0
- package/lib/query/InsertClause.d.ts +7 -0
- package/lib/query/Paginator.cjs +62 -0
- package/lib/query/Paginator.d.ts +10 -0
- package/lib/query/SelectClause.cjs +21 -0
- package/lib/query/SelectClause.d.ts +7 -0
- package/lib/query/Statement.cjs +59 -0
- package/lib/query/Statement.d.ts +13 -0
- package/lib/query/ValuesClause.cjs +17 -0
- package/lib/query/ValuesClause.d.ts +7 -0
- package/lib/query/WhereClause.cjs +62 -0
- package/lib/query/WhereClause.d.ts +7 -0
- package/lib/query/constants.cjs +25 -0
- package/lib/query/constants.d.ts +4 -0
- package/lib/query/factory.cjs +122 -0
- package/lib/query/factory.d.ts +24 -0
- package/lib/query/index.cjs +19 -0
- package/lib/query/index.d.ts +1 -0
- package/lib/query/translate.cjs +15 -0
- package/lib/query/translate.d.ts +3 -0
- package/lib/sequences/Sequence.cjs +131 -0
- package/lib/sequences/Sequence.d.ts +48 -0
- package/lib/sequences/index.cjs +19 -0
- package/lib/sequences/index.d.ts +1 -0
- package/lib/sequences/utils.cjs +20 -0
- package/lib/sequences/utils.d.ts +1 -0
- package/lib/utils.cjs +79 -0
- package/lib/utils.d.ts +7 -0
- package/package.json +124 -0
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
__exportStar(require("./factory.cjs"), exports);
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9xdWVyeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCIiwiZmlsZSI6InF1ZXJ5L2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vZmFjdG9yeVwiO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./factory";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.translateOperators = translateOperators;
|
|
4
|
+
const constants_1 = require("./constants.cjs");
|
|
5
|
+
const core_1 = require("@decaf-ts/core");
|
|
6
|
+
function translateOperators(operator) {
|
|
7
|
+
for (const operators of [constants_1.CouchDBOperator, constants_1.CouchDBGroupOperator]) {
|
|
8
|
+
const el = Object.keys(operators).find((k) => k === operator);
|
|
9
|
+
if (el)
|
|
10
|
+
return operators[el];
|
|
11
|
+
}
|
|
12
|
+
throw new core_1.QueryError(`Could not find adapter translation for operator ${operator}`);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9xdWVyeS90cmFuc2xhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFLQSxnREFVQztBQWRELDJDQUFvRTtBQUNwRSx5Q0FBNEM7QUFHNUMsU0FBZ0Isa0JBQWtCLENBQ2hDLFFBQWtDO0lBRWxDLEtBQUssTUFBTSxTQUFTLElBQUksQ0FBQywyQkFBZSxFQUFFLGdDQUFvQixDQUFDLEVBQUUsQ0FBQztRQUNoRSxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDO1FBQzlELElBQUksRUFBRTtZQUFFLE9BQU8sU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxNQUFNLElBQUksaUJBQVUsQ0FDbEIsbURBQW1ELFFBQVEsRUFBRSxDQUM5RCxDQUFDO0FBQ0osQ0FBQyIsImZpbGUiOiJxdWVyeS90cmFuc2xhdGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHcm91cE9wZXJhdG9yLCBPcGVyYXRvciB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgQ291Y2hEQkdyb3VwT3BlcmF0b3IsIENvdWNoREJPcGVyYXRvciB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgUXVlcnlFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTWFuZ29PcGVyYXRvciB9IGZyb20gXCJuYW5vXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2xhdGVPcGVyYXRvcnMoXG4gIG9wZXJhdG9yOiBHcm91cE9wZXJhdG9yIHwgT3BlcmF0b3Jcbik6IE1hbmdvT3BlcmF0b3Ige1xuICBmb3IgKGNvbnN0IG9wZXJhdG9ycyBvZiBbQ291Y2hEQk9wZXJhdG9yLCBDb3VjaERCR3JvdXBPcGVyYXRvcl0pIHtcbiAgICBjb25zdCBlbCA9IE9iamVjdC5rZXlzKG9wZXJhdG9ycykuZmluZCgoaykgPT4gayA9PT0gb3BlcmF0b3IpO1xuICAgIGlmIChlbCkgcmV0dXJuIG9wZXJhdG9yc1tlbF07XG4gIH1cbiAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoXG4gICAgYENvdWxkIG5vdCBmaW5kIGFkYXB0ZXIgdHJhbnNsYXRpb24gZm9yIG9wZXJhdG9yICR7b3BlcmF0b3J9YFxuICApO1xufVxuIl19
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.CouchDBSequence = void 0;
|
|
13
|
+
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
14
|
+
const CouchDBSequence_1 = require("../model/CouchDBSequence.cjs");
|
|
15
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
16
|
+
const core_1 = require("@decaf-ts/core");
|
|
17
|
+
const core_2 = require("@decaf-ts/core");
|
|
18
|
+
const utils_1 = require("./utils.cjs");
|
|
19
|
+
/**
|
|
20
|
+
* @summary Abstract implementation of a Sequence
|
|
21
|
+
* @description provides the basic functionality for {@link Sequence}s
|
|
22
|
+
*
|
|
23
|
+
* @param {SequenceOptions} options
|
|
24
|
+
*
|
|
25
|
+
* @class CouchDBSequence
|
|
26
|
+
* @implements Sequence
|
|
27
|
+
*
|
|
28
|
+
* @category Sequences
|
|
29
|
+
*/
|
|
30
|
+
class CouchDBSequence extends core_2.Sequence {
|
|
31
|
+
constructor(options) {
|
|
32
|
+
super(options);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @summary Retrieves the current value for the sequence
|
|
36
|
+
* @protected
|
|
37
|
+
*/
|
|
38
|
+
async current() {
|
|
39
|
+
const { name, startWith } = this.options;
|
|
40
|
+
try {
|
|
41
|
+
const sequence = await this.repo.read(name);
|
|
42
|
+
return this.parse(sequence.current);
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
if (e instanceof db_decorators_1.NotFoundError) {
|
|
46
|
+
if (typeof startWith === "undefined")
|
|
47
|
+
throw new db_decorators_1.InternalError("Starting value is not defined for a non existing sequence");
|
|
48
|
+
try {
|
|
49
|
+
return this.parse(startWith);
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
throw new db_decorators_1.InternalError((0, decorator_validation_1.sf)("Failed to parse initial value for sequence {0}: {1}", startWith.toString(), e));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
throw new db_decorators_1.InternalError((0, decorator_validation_1.sf)("Failed to retrieve current value for sequence {0}: {1}", name, e));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* @summary Parses the {@link Sequence} value
|
|
60
|
+
*
|
|
61
|
+
* @protected
|
|
62
|
+
* @param value
|
|
63
|
+
*/
|
|
64
|
+
parse(value) {
|
|
65
|
+
return (0, utils_1.parseSequenceValue)(this.options.type, value);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* @summary increments the sequence
|
|
69
|
+
* @description Sequence specific implementation
|
|
70
|
+
*
|
|
71
|
+
* @param {string | number | bigint} current
|
|
72
|
+
* @param count
|
|
73
|
+
* @protected
|
|
74
|
+
*/
|
|
75
|
+
async increment(current, count) {
|
|
76
|
+
const { type, incrementBy, name } = this.options;
|
|
77
|
+
let next;
|
|
78
|
+
const toIncrementBy = count || incrementBy;
|
|
79
|
+
if (toIncrementBy % incrementBy !== 0)
|
|
80
|
+
throw new db_decorators_1.InternalError(`Value to increment does not consider the incrementBy setting: ${incrementBy}`);
|
|
81
|
+
switch (type) {
|
|
82
|
+
case "Number":
|
|
83
|
+
next = this.parse(current) + toIncrementBy;
|
|
84
|
+
break;
|
|
85
|
+
case "BigInt":
|
|
86
|
+
next = this.parse(current) + BigInt(toIncrementBy);
|
|
87
|
+
break;
|
|
88
|
+
default:
|
|
89
|
+
throw new db_decorators_1.InternalError("Should never happen");
|
|
90
|
+
}
|
|
91
|
+
let seq;
|
|
92
|
+
try {
|
|
93
|
+
seq = await this.repo.update(new CouchDBSequence_1.Sequence({ id: name, current: next }));
|
|
94
|
+
}
|
|
95
|
+
catch (e) {
|
|
96
|
+
if (!(e instanceof db_decorators_1.NotFoundError))
|
|
97
|
+
throw e;
|
|
98
|
+
seq = await this.repo.create(new CouchDBSequence_1.Sequence({ id: name, current: next }));
|
|
99
|
+
}
|
|
100
|
+
return seq.current;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* @summary Generates the next value in th sequence
|
|
104
|
+
* @description calls {@link Sequence#parse} on the current value
|
|
105
|
+
* followed by {@link Sequence#increment}
|
|
106
|
+
*
|
|
107
|
+
*/
|
|
108
|
+
async next() {
|
|
109
|
+
const current = await this.current();
|
|
110
|
+
return this.increment(current);
|
|
111
|
+
}
|
|
112
|
+
async range(count) {
|
|
113
|
+
const current = (await this.current());
|
|
114
|
+
const incrementBy = this.parse(this.options.incrementBy);
|
|
115
|
+
const next = await this.increment(current, this.parse(count) * incrementBy);
|
|
116
|
+
const range = [];
|
|
117
|
+
for (let i = 1; i <= count; i++) {
|
|
118
|
+
range.push(current + incrementBy * this.parse(i));
|
|
119
|
+
}
|
|
120
|
+
if (range[range.length - 1] !== next)
|
|
121
|
+
throw new db_decorators_1.InternalError("Miscalculation of range");
|
|
122
|
+
return range;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
exports.CouchDBSequence = CouchDBSequence;
|
|
126
|
+
__decorate([
|
|
127
|
+
(0, core_1.repository)(CouchDBSequence_1.Sequence),
|
|
128
|
+
__metadata("design:type", Object)
|
|
129
|
+
], CouchDBSequence.prototype, "repo", void 0);
|
|
130
|
+
|
|
131
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9zZXF1ZW5jZXMvU2VxdWVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEseUVBQW9EO0FBQ3BELDhEQUEyRDtBQUMzRCwyREFJaUM7QUFDakMseUNBQTZEO0FBQzdELHlDQUEwQztBQUMxQyxtQ0FBNkM7QUFFN0M7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxlQUFRO0lBSTNDLFlBQVksT0FBd0I7UUFDbEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN6QyxJQUFJLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBUSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQWMsQ0FBQyxDQUFDO1lBQzNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBMEIsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxZQUFZLDZCQUFhLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXO29CQUNsQyxNQUFNLElBQUksNkJBQWEsQ0FDckIsMkRBQTJELENBQzVELENBQUM7Z0JBQ0osSUFBSSxDQUFDO29CQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDL0IsQ0FBQztnQkFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO29CQUNoQixNQUFNLElBQUksNkJBQWEsQ0FDckIsSUFBQSx5QkFBRSxFQUNBLHFEQUFxRCxFQUNyRCxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQ3BCLENBQUMsQ0FDRixDQUNGLENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7WUFDRCxNQUFNLElBQUksNkJB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QyxDQUFZLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJO1lBQ2xDLE1BQU0sSUFBSSw2QkFBYSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDckQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUF6SEQsMENBeUhDO0FBdkhXO0lBRFQsSUFBQSxpQkFBVSxFQUFDLDBCQUFHLENBQUM7OzZDQUNrQiIsImZpbGUiOiJzZXF1ZW5jZXMvU2VxdWVuY2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzZiB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IFNlcXVlbmNlIGFzIFNlcSB9IGZyb20gXCIuLi9tb2RlbC9Db3VjaERCU2VxdWVuY2VcIjtcbmltcG9ydCB7XG4gIEludGVybmFsRXJyb3IsXG4gIElSZXBvc2l0b3J5LFxuICBOb3RGb3VuZEVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IHJlcG9zaXRvcnksIFNlcXVlbmNlT3B0aW9ucyB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgU2VxdWVuY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IHBhcnNlU2VxdWVuY2VWYWx1ZSB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgQWJzdHJhY3QgaW1wbGVtZW50YXRpb24gb2YgYSBTZXF1ZW5jZVxuICogQGRlc2NyaXB0aW9uIHByb3ZpZGVzIHRoZSBiYXNpYyBmdW5jdGlvbmFsaXR5IGZvciB7QGxpbmsgU2VxdWVuY2V9c1xuICpcbiAqIEBwYXJhbSB7U2VxdWVuY2VPcHRpb25zfSBvcHRpb25zXG4gKlxuICogQGNsYXNzIENvdWNoREJTZXF1ZW5jZVxuICogQGltcGxlbWVudHMgU2VxdWVuY2VcbiAqXG4gKiBAY2F0ZWdvcnkgU2VxdWVuY2VzXG4gKi9cbmV4cG9ydCBjbGFzcyBDb3VjaERCU2VxdWVuY2UgZXh0ZW5kcyBTZXF1ZW5jZSB7XG4gIEByZXBvc2l0b3J5KFNlcSlcbiAgcHJvdGVjdGVkIHJlcG8hOiBJUmVwb3NpdG9yeTxTZXE+O1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFNlcXVlbmNlT3B0aW9ucykge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFJldHJpZXZlcyB0aGUgY3VycmVudCB2YWx1ZSBmb3IgdGhlIHNlcXVlbmNlXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIGFzeW5jIGN1cnJlbnQoKTogUHJvbWlzZTxzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQ+IHtcbiAgICBjb25zdCB7IG5hbWUsIHN0YXJ0V2l0aCB9ID0gdGhpcy5vcHRpb25zO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzZXF1ZW5jZTogU2VxID0gYXdhaXQgdGhpcy5yZXBvLnJlYWQobmFtZSBhcyBzdHJpbmcpO1xuICAgICAgcmV0dXJuIHRoaXMucGFyc2Uoc2VxdWVuY2UuY3VycmVudCBhcyBzdHJpbmcgfCBudW1iZXIpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc3RhcnRXaXRoID09PSBcInVuZGVmaW5lZFwiKVxuICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICAgICAgXCJTdGFydGluZyB2YWx1ZSBpcyBub3QgZGVmaW5lZCBmb3IgYSBub24gZXhpc3Rpbmcgc2VxdWVuY2VcIlxuICAgICAgICAgICk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2Uoc3RhcnRXaXRoKTtcbiAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgICBzZihcbiAgICAgICAgICAgICAgXCJGYWlsZWQgdG8gcGFyc2UgaW5pdGlhbCB2YWx1ZSBmb3Igc2VxdWVuY2UgezB9OiB7MX1cIixcbiAgICAgICAgICAgICAgc3RhcnRXaXRoLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIGVcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgc2YoXG4gICAgICAgICAgXCJGYWlsZWQgdG8gcmV0cmlldmUgY3VycmVudCB2YWx1ZSBmb3Igc2VxdWVuY2UgezB9OiB7MX1cIixcbiAgICAgICAgICBuYW1lIGFzIHN0cmluZyxcbiAgICAgICAgICBlXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFBhcnNlcyB0aGUge0BsaW5rIFNlcXVlbmNlfSB2YWx1ZVxuICAgKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgcHJpdmF0ZSBwYXJzZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50KTogc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50IHtcbiAgICByZXR1cm4gcGFyc2VTZXF1ZW5jZVZhbHVlKHRoaXMub3B0aW9ucy50eXBlLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgaW5jcmVtZW50cyB0aGUgc2VxdWVuY2VcbiAgICogQGRlc2NyaXB0aW9uIFNlcXVlbmNlIHNwZWNpZmljIGltcGxlbWVudGF0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50fSBjdXJyZW50XG4gICAqIEBwYXJhbSBjb3VudFxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGluY3JlbWVudChcbiAgICBjdXJyZW50OiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQsXG4gICAgY291bnQ/OiBudW1iZXJcbiAgKTogUHJvbWlzZTxzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQ+IHtcbiAgICBjb25zdCB7IHR5cGUsIGluY3JlbWVudEJ5LCBuYW1lIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgbGV0IG5leHQ6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludDtcbiAgICBjb25zdCB0b0luY3JlbWVudEJ5ID0gY291bnQgfHwgaW5jcmVtZW50Qnk7XG4gICAgaWYgKHRvSW5jcmVtZW50QnkgJSBpbmNyZW1lbnRCeSAhPT0gMClcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgVmFsdWUgdG8gaW5jcmVtZW50IGRvZXMgbm90IGNvbnNpZGVyIHRoZSBpbmNyZW1lbnRCeSBzZXR0aW5nOiAke2luY3JlbWVudEJ5fWBcbiAgICAgICk7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIFwiTnVtYmVyXCI6XG4gICAgICAgIG5leHQgPSAodGhpcy5wYXJzZShjdXJyZW50KSBhcyBudW1iZXIpICsgdG9JbmNyZW1lbnRCeTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiQmlnSW50XCI6XG4gICAgICAgIG5leHQgPSAodGhpcy5wYXJzZShjdXJyZW50KSBhcyBiaWdpbnQpICsgQmlnSW50KHRvSW5jcmVtZW50QnkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiU2hvdWxkIG5ldmVyIGhhcHBlblwiKTtcbiAgICB9XG4gICAgbGV0IHNlcTogU2VxO1xuICAgIHRyeSB7XG4gICAgICBzZXEgPSBhd2FpdCB0aGlzLnJlcG8udXBkYXRlKG5ldyBTZXEoeyBpZDogbmFtZSwgY3VycmVudDogbmV4dCB9KSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoIShlIGluc3RhbmNlb2YgTm90Rm91bmRFcnJvcikpIHRocm93IGU7XG4gICAgICBzZXEgPSBhd2FpdCB0aGlzLnJlcG8uY3JlYXRlKG5ldyBTZXEoeyBpZDogbmFtZSwgY3VycmVudDogbmV4dCB9KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlcS5jdXJyZW50IGFzIHN0cmluZyB8IG51bWJlciB8IGJpZ2ludDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBHZW5lcmF0ZXMgdGhlIG5leHQgdmFsdWUgaW4gdGggc2VxdWVuY2VcbiAgICogQGRlc2NyaXB0aW9uIGNhbGxzIHtAbGluayBTZXF1ZW5jZSNwYXJzZX0gb24gdGhlIGN1cnJlbnQgdmFsdWVcbiAgICogZm9sbG93ZWQgYnkge0BsaW5rIFNlcXVlbmNlI2luY3JlbWVudH1cbiAgICpcbiAgICovXG4gIGFzeW5jIG5leHQoKTogUHJvbWlzZTxudW1iZXIgfCBzdHJpbmcgfCBiaWdpbnQ+IHtcbiAgICBjb25zdCBjdXJyZW50ID0gYXdhaXQgdGhpcy5jdXJyZW50KCk7XG4gICAgcmV0dXJuIHRoaXMuaW5jcmVtZW50KGN1cnJlbnQpO1xuICB9XG5cbiAgYXN5bmMgcmFuZ2UoY291bnQ6IG51bWJlcik6IFByb21pc2U8KG51bWJlciB8IHN0cmluZyB8IGJpZ2ludClbXT4ge1xuICAgIGNvbnN0IGN1cnJlbnQgPSAoYXdhaXQgdGhpcy5jdXJyZW50KCkpIGFzIG51bWJlcjtcbiAgICBjb25zdCBpbmNyZW1lbnRCeSA9IHRoaXMucGFyc2UodGhpcy5vcHRpb25zLmluY3JlbWVudEJ5KSBhcyBudW1iZXI7XG4gICAgY29uc3QgbmV4dDogc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50ID0gYXdhaXQgdGhpcy5pbmNyZW1lbnQoXG4gICAgICBjdXJyZW50LFxuICAgICAgKHRoaXMucGFyc2UoY291bnQpIGFzIG51bWJlcikgKiBpbmNyZW1lbnRCeVxuICAgICk7XG4gICAgY29uc3QgcmFuZ2U6IChudW1iZXIgfCBzdHJpbmcgfCBiaWdpbnQpW10gPSBbXTtcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAxOyBpIDw9IGNvdW50OyBpKyspIHtcbiAgICAgIHJhbmdlLnB1c2goY3VycmVudCArIGluY3JlbWVudEJ5ICogKHRoaXMucGFyc2UoaSkgYXMgbnVtYmVyKSk7XG4gICAgfVxuICAgIGlmIChyYW5nZVtyYW5nZS5sZW5ndGggLSAxXSAhPT0gbmV4dClcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiTWlzY2FsY3VsYXRpb24gb2YgcmFuZ2VcIik7XG4gICAgcmV0dXJuIHJhbmdlO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Sequence as Seq } from "../model/CouchDBSequence";
|
|
2
|
+
import { IRepository } from "@decaf-ts/db-decorators";
|
|
3
|
+
import { SequenceOptions } from "@decaf-ts/core";
|
|
4
|
+
import { Sequence } from "@decaf-ts/core";
|
|
5
|
+
/**
|
|
6
|
+
* @summary Abstract implementation of a Sequence
|
|
7
|
+
* @description provides the basic functionality for {@link Sequence}s
|
|
8
|
+
*
|
|
9
|
+
* @param {SequenceOptions} options
|
|
10
|
+
*
|
|
11
|
+
* @class CouchDBSequence
|
|
12
|
+
* @implements Sequence
|
|
13
|
+
*
|
|
14
|
+
* @category Sequences
|
|
15
|
+
*/
|
|
16
|
+
export declare class CouchDBSequence extends Sequence {
|
|
17
|
+
protected repo: IRepository<Seq>;
|
|
18
|
+
constructor(options: SequenceOptions);
|
|
19
|
+
/**
|
|
20
|
+
* @summary Retrieves the current value for the sequence
|
|
21
|
+
* @protected
|
|
22
|
+
*/
|
|
23
|
+
current(): Promise<string | number | bigint>;
|
|
24
|
+
/**
|
|
25
|
+
* @summary Parses the {@link Sequence} value
|
|
26
|
+
*
|
|
27
|
+
* @protected
|
|
28
|
+
* @param value
|
|
29
|
+
*/
|
|
30
|
+
private parse;
|
|
31
|
+
/**
|
|
32
|
+
* @summary increments the sequence
|
|
33
|
+
* @description Sequence specific implementation
|
|
34
|
+
*
|
|
35
|
+
* @param {string | number | bigint} current
|
|
36
|
+
* @param count
|
|
37
|
+
* @protected
|
|
38
|
+
*/
|
|
39
|
+
private increment;
|
|
40
|
+
/**
|
|
41
|
+
* @summary Generates the next value in th sequence
|
|
42
|
+
* @description calls {@link Sequence#parse} on the current value
|
|
43
|
+
* followed by {@link Sequence#increment}
|
|
44
|
+
*
|
|
45
|
+
*/
|
|
46
|
+
next(): Promise<number | string | bigint>;
|
|
47
|
+
range(count: number): Promise<(number | string | bigint)[]>;
|
|
48
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
__exportStar(require("./Sequence.cjs"), exports);
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9zZXF1ZW5jZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyQiIsImZpbGUiOiJzZXF1ZW5jZXMvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9TZXF1ZW5jZVwiO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Sequence";
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseSequenceValue = parseSequenceValue;
|
|
4
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
5
|
+
function parseSequenceValue(type, value) {
|
|
6
|
+
switch (type) {
|
|
7
|
+
case "Number":
|
|
8
|
+
return typeof value === "string"
|
|
9
|
+
? parseInt(value)
|
|
10
|
+
: typeof value === "number"
|
|
11
|
+
? value
|
|
12
|
+
: BigInt(value);
|
|
13
|
+
case "BigInt":
|
|
14
|
+
return BigInt(value);
|
|
15
|
+
default:
|
|
16
|
+
throw new db_decorators_1.InternalError("Should never happen");
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9zZXF1ZW5jZXMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSxnREFnQkM7QUFsQkQsMkRBQXdEO0FBRXhELFNBQWdCLGtCQUFrQixDQUNoQyxJQUFxQyxFQUNyQyxLQUErQjtJQUUvQixRQUFRLElBQUksRUFBRSxDQUFDO1FBQ2IsS0FBSyxRQUFRO1lBQ1gsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRO2dCQUM5QixDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztnQkFDakIsQ0FBQyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVE7b0JBQ3pCLENBQUMsQ0FBQyxLQUFLO29CQUNQLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsS0FBSyxRQUFRO1lBQ1gsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkI7WUFDRSxNQUFNLElBQUksNkJBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ25ELENBQUM7QUFDSCxDQUFDIiwiZmlsZSI6InNlcXVlbmNlcy91dGlscy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU2VxdWVuY2VWYWx1ZShcbiAgdHlwZTogXCJOdW1iZXJcIiB8IFwiQmlnSW50XCIgfCB1bmRlZmluZWQsXG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnRcbik6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludCB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgXCJOdW1iZXJcIjpcbiAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyBwYXJzZUludCh2YWx1ZSlcbiAgICAgICAgOiB0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCJcbiAgICAgICAgICA/IHZhbHVlXG4gICAgICAgICAgOiBCaWdJbnQodmFsdWUpO1xuICAgIGNhc2UgXCJCaWdJbnRcIjpcbiAgICAgIHJldHVybiBCaWdJbnQodmFsdWUpO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIlNob3VsZCBuZXZlciBoYXBwZW5cIik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function parseSequenceValue(type: "Number" | "BigInt" | undefined, value: string | number | bigint): string | number | bigint;
|
package/lib/utils.cjs
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.reAuth = reAuth;
|
|
4
|
+
exports.wrapDocumentScope = wrapDocumentScope;
|
|
5
|
+
exports.testReservedAttributes = testReservedAttributes;
|
|
6
|
+
exports.generateIndexName = generateIndexName;
|
|
7
|
+
exports.generateIndexDoc = generateIndexDoc;
|
|
8
|
+
const core_1 = require("@decaf-ts/core");
|
|
9
|
+
const constants_1 = require("./constants.cjs");
|
|
10
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
11
|
+
const constants_2 = require("./query/constants.cjs");
|
|
12
|
+
async function reAuth(con, user, pass) {
|
|
13
|
+
return con.auth(user, pass);
|
|
14
|
+
}
|
|
15
|
+
function wrapDocumentScope(con, dbName, user, pass) {
|
|
16
|
+
const db = con.use(dbName);
|
|
17
|
+
["insert", "get", "put", "destroy", "find"].forEach((k) => {
|
|
18
|
+
const original = db[k];
|
|
19
|
+
Object.defineProperty(db, k, {
|
|
20
|
+
enumerable: false,
|
|
21
|
+
configurable: true,
|
|
22
|
+
value: async (...args) => {
|
|
23
|
+
await reAuth(con, user, pass);
|
|
24
|
+
return original.call(db, ...args);
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
Object.defineProperty(db, constants_1.CouchDBKeys.NATIVE, {
|
|
29
|
+
enumerable: false,
|
|
30
|
+
configurable: false,
|
|
31
|
+
writable: false,
|
|
32
|
+
value: con,
|
|
33
|
+
});
|
|
34
|
+
return db;
|
|
35
|
+
}
|
|
36
|
+
function testReservedAttributes(attr) {
|
|
37
|
+
const regexp = /^_.*$/g;
|
|
38
|
+
return attr.match(regexp);
|
|
39
|
+
}
|
|
40
|
+
function generateIndexName(attribute, tableName, compositions, order, separator = db_decorators_1.DefaultSeparator) {
|
|
41
|
+
const attr = [core_1.PersistenceKeys.INDEX, tableName, attribute];
|
|
42
|
+
if (compositions)
|
|
43
|
+
attr.push(...compositions);
|
|
44
|
+
if (order)
|
|
45
|
+
attr.push(order);
|
|
46
|
+
return attr.join(separator);
|
|
47
|
+
}
|
|
48
|
+
function generateIndexDoc(attribute, tableName, compositions, order, separator = db_decorators_1.DefaultSeparator) {
|
|
49
|
+
const partialFilterSelector = {};
|
|
50
|
+
partialFilterSelector[constants_1.CouchDBKeys.TABLE] = {};
|
|
51
|
+
partialFilterSelector[constants_1.CouchDBKeys.TABLE][constants_2.CouchDBOperator.EQUAL] = tableName;
|
|
52
|
+
let fields;
|
|
53
|
+
if (order) {
|
|
54
|
+
const orderProp = {};
|
|
55
|
+
orderProp[attribute] = order;
|
|
56
|
+
const sortedCompositions = (compositions || []).map((c) => {
|
|
57
|
+
const r = {};
|
|
58
|
+
r[c] = order;
|
|
59
|
+
return r;
|
|
60
|
+
});
|
|
61
|
+
const sortedTable = {};
|
|
62
|
+
sortedTable[constants_1.CouchDBKeys.TABLE] = order;
|
|
63
|
+
fields = [orderProp, ...sortedCompositions, sortedTable];
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
fields = [attribute, ...(compositions || []), constants_1.CouchDBKeys.TABLE];
|
|
67
|
+
}
|
|
68
|
+
const name = generateIndexName(attribute, tableName, compositions, order, separator);
|
|
69
|
+
return {
|
|
70
|
+
index: {
|
|
71
|
+
fields: fields,
|
|
72
|
+
// partial_filter_selector: partialFilterSelector,
|
|
73
|
+
},
|
|
74
|
+
ddoc: [name, constants_1.CouchDBKeys.DDOC].join(separator),
|
|
75
|
+
name: name,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUFNLFNBQVMsR0FBYyxFQUFFLENBQUM7UUFDaEMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEtBQXVCLENBQUM7UUFDL0MsTUFBTSxrQkFBa0IsR0FBZ0IsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDckUsTUFBTSxDQUFDLEdBQWMsRUFBRSxDQUFDO1lBQ3hCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUF1QixDQUFDO1lBQy9CLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLFdBQVcsR0FBYyxFQUFFLENBQUM7UUFDbEMsV0FBVyxDQUFDLHVCQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBdUIsQ0FBQztRQUN6RCxNQUFNLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxrQkFBa0IsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMzRCxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sR0FBRyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxFQUFFLHVCQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUNELE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUM1QixTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsU0FBUyxDQUNWLENBQUM7SUFDRixPQUFPO1FBQ0wsS0FBSyxFQUFFO1lBQ0wsTUFBTSxFQUFFLE1BQU07WUFDZCxrREFBa0Q7U0FDbkQ7UUFDRCxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsdUJBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzlDLElBQUksRUFBRSxJQUFJO0tBQ1gsQ0FBQztBQUNKLENBQUMiLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcmRlckRpcmVjdGlvbiwgUGVyc2lzdGVuY2VLZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQge1xuICBDcmVhdGVJbmRleFJlcXVlc3QsXG4gIERvY3VtZW50U2NvcGUsXG4gIE1hbmdvU2VsZWN0b3IsXG4gIFNlcnZlclNjb3BlLFxuICBTb3J0T3JkZXIsXG59IGZyb20gXCJuYW5vXCI7XG5pbXBvcnQgeyBDb3VjaERCS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgRGVmYXVsdFNlcGFyYXRvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQ291Y2hEQk9wZXJhdG9yIH0gZnJvbSBcIi4vcXVlcnkvY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZUF1dGgoY29uOiBTZXJ2ZXJTY29wZSwgdXNlcjogc3RyaW5nLCBwYXNzOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNvbi5hdXRoKHVzZXIsIHBhc3MpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JhcERvY3VtZW50U2NvcGUoXG4gIGNvbjogU2VydmVyU2NvcGUsXG4gIGRiTmFtZTogc3RyaW5nLFxuICB1c2VyOiBzdHJpbmcsXG4gIHBhc3M6IHN0cmluZ1xuKTogRG9jdW1lbnRTY29wZTxhbnk+IHtcbiAgY29uc3QgZGIgPSBjb24udXNlKGRiTmFtZSk7XG4gIFtcImluc2VydFwiLCBcImdldFwiLCBcInB1dFwiLCBcImRlc3Ryb3lcIiwgXCJmaW5kXCJdLmZvckVhY2goKGspID0+IHtcbiAgICBjb25zdCBvcmlnaW5hbCA9IChkYiBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVtrXTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZGIsIGssIHtcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgdmFsdWU6IGFzeW5jICguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgICAgICBhd2FpdCByZUF1dGgoY29uLCB1c2VyLCBwYXNzKTtcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsLmNhbGwoZGIsIC4uLmFyZ3MpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkYiwgQ291Y2hEQktleXMuTkFUSVZFLCB7XG4gICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgdmFsdWU6IGNvbixcbiAgfSk7XG4gIHJldHVybiBkYjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlc3RSZXNlcnZlZEF0dHJpYnV0ZXMoYXR0cjogc3RyaW5nKSB7XG4gIGNvbnN0IHJlZ2V4cCA9IC9eXy4qJC9nO1xuICByZXR1cm4gYXR0ci5tYXRjaChyZWdleHApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVJbmRleE5hbWUoXG4gIGF0dHJpYnV0ZTogc3RyaW5nLFxuICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgY29tcG9zaXRpb25zPzogc3RyaW5nW10sXG4gIG9yZGVyPzogT3JkZXJEaXJlY3Rpb24sXG4gIHNlcGFyYXRvciA9IERlZmF1bHRTZXBhcmF0b3Jcbik6IHN0cmluZyB7XG4gIGNvbnN0IGF0dHIgPSBbUGVyc2lzdGVuY2VLZXlzLklOREVYLCB0YWJsZU5hbWUsIGF0dHJpYnV0ZV07XG4gIGlmIChjb21wb3NpdGlvbnMpIGF0dHIucHVzaCguLi5jb21wb3NpdGlvbnMpO1xuICBpZiAob3JkZXIpIGF0dHIucHVzaChvcmRlcik7XG4gIHJldHVybiBhdHRyLmpvaW4oc2VwYXJhdG9yKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlSW5kZXhEb2MoXG4gIGF0dHJpYnV0ZTogc3RyaW5nLFxuICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgY29tcG9zaXRpb25zPzogc3RyaW5nW10sXG4gIG9yZGVyPzogT3JkZXJEaXJlY3Rpb24sXG4gIHNlcGFyYXRvciA9IERlZmF1bHRTZXBhcmF0b3Jcbik6IENyZWF0ZUluZGV4UmVxdWVzdCB7XG4gIGNvbnN0IHBhcnRpYWxGaWx0ZXJTZWxlY3RvcjogTWFuZ29TZWxlY3RvciA9IHt9O1xuICBwYXJ0aWFsRmlsdGVyU2VsZWN0b3JbQ291Y2hEQktleXMuVEFCTEVdID0ge30gYXMgTWFuZ29TZWxlY3RvcjtcbiAgKHBhcnRpYWxGaWx0ZXJTZWxlY3RvcltDb3VjaERCS2V5cy5UQUJMRV0gYXMgTWFuZ29TZWxlY3RvcilbXG4gICAgQ291Y2hEQk9wZXJhdG9yLkVRVUFMXG4gIF0gPSB0YWJsZU5hbWU7XG4gIGxldCBmaWVsZHM6IFNvcnRPcmRlcltdO1xuICBpZiAob3JkZXIpIHtcbiAgICBjb25zdCBvcmRlclByb3A6IFNvcnRPcmRlciA9IHt9O1xuICAgIG9yZGVyUHJvcFthdHRyaWJ1dGVdID0gb3JkZXIgYXMgXCJhc2NcIiB8IFwiZGVzY1wiO1xuICAgIGNvbnN0IHNvcnRlZENvbXBvc2l0aW9uczogU29ydE9yZGVyW10gPSAoY29tcG9zaXRpb25zIHx8IFtdKS5tYXAoKGMpID0+IHtcbiAgICAgIGNvbnN0IHI6IFNvcnRPcmRlciA9IHt9O1xuICAgICAgcltjXSA9IG9yZGVyIGFzIFwiYXNjXCIgfCBcImRlc2NcIjtcbiAgICAgIHJldHVybiByO1xuICAgIH0pO1xuICAgIGNvbnN0IHNvcnRlZFRhYmxlOiBTb3J0T3JkZXIgPSB7fTtcbiAgICBzb3J0ZWRUYWJsZVtDb3VjaERCS2V5cy5UQUJMRV0gPSBvcmRlciBhcyBcImFzY1wiIHwgXCJkZXNjXCI7XG4gICAgZmllbGRzID0gW29yZGVyUHJvcCwgLi4uc29ydGVkQ29tcG9zaXRpb25zLCBzb3J0ZWRUYWJsZV07XG4gIH0gZWxzZSB7XG4gICAgZmllbGRzID0gW2F0dHJpYnV0ZSwgLi4uKGNvbXBvc2l0aW9ucyB8fCBbXSksIENvdWNoREJLZXlzLlRBQkxFXTtcbiAgfVxuICBjb25zdCBuYW1lID0gZ2VuZXJhdGVJbmRleE5hbWUoXG4gICAgYXR0cmlidXRlLFxuICAgIHRhYmxlTmFtZSxcbiAgICBjb21wb3NpdGlvbnMsXG4gICAgb3JkZXIsXG4gICAgc2VwYXJhdG9yXG4gICk7XG4gIHJldHVybiB7XG4gICAgaW5kZXg6IHtcbiAgICAgIGZpZWxkczogZmllbGRzLFxuICAgICAgLy8gcGFydGlhbF9maWx0ZXJfc2VsZWN0b3I6IHBhcnRpYWxGaWx0ZXJTZWxlY3RvcixcbiAgICB9LFxuICAgIGRkb2M6IFtuYW1lLCBDb3VjaERCS2V5cy5ERE9DXS5qb2luKHNlcGFyYXRvciksXG4gICAgbmFtZTogbmFtZSxcbiAgfTtcbn1cbiJdfQ==
|
package/lib/utils.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { OrderDirection } from "@decaf-ts/core";
|
|
2
|
+
import { CreateIndexRequest, DocumentScope, ServerScope } from "nano";
|
|
3
|
+
export declare function reAuth(con: ServerScope, user: string, pass: string): Promise<import("nano").DatabaseAuthResponse>;
|
|
4
|
+
export declare function wrapDocumentScope(con: ServerScope, dbName: string, user: string, pass: string): DocumentScope<any>;
|
|
5
|
+
export declare function testReservedAttributes(attr: string): RegExpMatchArray | null;
|
|
6
|
+
export declare function generateIndexName(attribute: string, tableName: string, compositions?: string[], order?: OrderDirection, separator?: string): string;
|
|
7
|
+
export declare function generateIndexDoc(attribute: string, tableName: string, compositions?: string[], order?: OrderDirection, separator?: string): CreateIndexRequest;
|
package/package.json
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@decaf-ts/for-couchdb",
|
|
3
|
+
"version": "0.0.2",
|
|
4
|
+
"description": "template for ts projects",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"exports": {
|
|
7
|
+
"require": "./lib/index.cjs",
|
|
8
|
+
"import": "./lib/esm/index.js"
|
|
9
|
+
},
|
|
10
|
+
"types": "lib/index.d.ts",
|
|
11
|
+
"scripts": {
|
|
12
|
+
"do-install": "TOKEN=$(cat .token) npm install",
|
|
13
|
+
"update-dependencies": "rimraf node_modules/@decaf-ts package-lock.json && npm run do-install",
|
|
14
|
+
"flash-forward": "npx npm-check-updates -u && npm run do-install",
|
|
15
|
+
"reset": "rm -rf * && git checkout . && git pull && npm run do-install",
|
|
16
|
+
"build": "rimraf ./lib && rimraf ./dist && gulp dev",
|
|
17
|
+
"build:prod": "rimraf ./lib && rimraf ./dist && gulp prod",
|
|
18
|
+
"test": "jest --coverage --testPathPattern=\"/tests/unit\" --passWithNoTests --detectOpenHandles",
|
|
19
|
+
"test:integration": "jest --coverage --testPathPattern=\"/tests/(integration)\" --passWithNoTests --detectOpenHandles --globalSetup=./tests/integration/setup.ts --globalTeardown=./tests/integration/teardown.ts",
|
|
20
|
+
"test:all": "jest --coverage --testPathPattern=\"/tests/(unit|integration)\" --passWithNoTests --detectOpenHandles",
|
|
21
|
+
"lint": "eslint .",
|
|
22
|
+
"lint-fix": "eslint --fix ./src/*",
|
|
23
|
+
"test:circular": "dpdm -T --no-warning --no-tree ./src/index.ts",
|
|
24
|
+
"prepare-release": "npm run lint-fix && npm run build:prod && npm run coverage && npm run docs",
|
|
25
|
+
"release": "./bin/tag-release.sh",
|
|
26
|
+
"clean-publish": "npx clean-publish",
|
|
27
|
+
"coverage": "npm run test:all && cd workdocs && jest-coverage-badges",
|
|
28
|
+
"docker:login": "echo $(cat .token) | docker login ghcr.io -u decaf --password-stdin",
|
|
29
|
+
"docker:build": "npm run docker:build-booter && npm run docker:build-couchdb",
|
|
30
|
+
"docker:build-booter": "docker build -t ghcr.io/decaf-ts/couchdb-booter:$(cat package.json | jq -r '.version') -t ghcr.io/decaf-ts/couchdb-booter:latest -f ./docker/Dockerfile-booter ./docker",
|
|
31
|
+
"docker:build-couchdb": "docker build -t ghcr.io/decaf-ts/couchdb:$(cat package.json | jq -r '.version') -t ghcr.io/decaf-ts/couchdb:latest -f ./docker/Dockerfile-couchdb ./docker",
|
|
32
|
+
"docker:publish": "npm run docker:publish-booter && npm run docker:publish-couchdb",
|
|
33
|
+
"docker:publish-booter": "docker push ghcr.io/decaf-ts/couchdb-booter:$(cat package.json | jq -r '.version') && docker push ghcr.io/decaf-ts/couchdb-booter:latest",
|
|
34
|
+
"docker:publish-couchdb": "docker push ghcr.io/decaf-ts/couchdb:$(cat package.json | jq -r '.version') && docker push ghcr.io/decaf-ts/couchdb:latest",
|
|
35
|
+
"docs": "npx rimraf ./docs && mkdir docs && npm run do-install -- better-docs taffydb && gulp docs; npm remove better-docs taffydb"
|
|
36
|
+
},
|
|
37
|
+
"repository": {
|
|
38
|
+
"type": "git",
|
|
39
|
+
"url": "git+https://github.com/decaf-ts/for-couchdb.git"
|
|
40
|
+
},
|
|
41
|
+
"engines": {
|
|
42
|
+
"node": ">=20.0.0",
|
|
43
|
+
"npm": ">=10.0.0"
|
|
44
|
+
},
|
|
45
|
+
"files": [
|
|
46
|
+
"lib",
|
|
47
|
+
"dist"
|
|
48
|
+
],
|
|
49
|
+
"keywords": [
|
|
50
|
+
"plantuml",
|
|
51
|
+
"mermaid",
|
|
52
|
+
"uml",
|
|
53
|
+
"drawio",
|
|
54
|
+
"mddocs",
|
|
55
|
+
"md",
|
|
56
|
+
"jsdoc",
|
|
57
|
+
"doc",
|
|
58
|
+
"docs",
|
|
59
|
+
"documentation",
|
|
60
|
+
"ci/cd",
|
|
61
|
+
"ci",
|
|
62
|
+
"cd",
|
|
63
|
+
"template",
|
|
64
|
+
"typescript",
|
|
65
|
+
"ts"
|
|
66
|
+
],
|
|
67
|
+
"author": "Tiago Venceslau",
|
|
68
|
+
"license": "MIT",
|
|
69
|
+
"bugs": {
|
|
70
|
+
"url": "https://github.com/decaf-ts/for-couchdb/issues"
|
|
71
|
+
},
|
|
72
|
+
"homepage": "https://github.com/decaf-ts/for-couchdb#readme",
|
|
73
|
+
"devDependencies": {
|
|
74
|
+
"@eslint/js": "^9.13.0",
|
|
75
|
+
"@types/jest": "^29.5.13",
|
|
76
|
+
"@typescript-eslint/eslint-plugin": "^8.10.0",
|
|
77
|
+
"clean-publish": "^5.0.0",
|
|
78
|
+
"dpdm": "^3.14.0",
|
|
79
|
+
"eslint": "^9.13.0",
|
|
80
|
+
"eslint-config-prettier": "^9.1.0",
|
|
81
|
+
"eslint-plugin-prettier": "^5.2.1",
|
|
82
|
+
"globals": "^15.11.0",
|
|
83
|
+
"gulp": "^5.0.0",
|
|
84
|
+
"gulp-if": "^3.0.0",
|
|
85
|
+
"gulp-rename": "^2.0.0",
|
|
86
|
+
"gulp-replace": "^1.1.4",
|
|
87
|
+
"gulp-run-command": "^0.0.10",
|
|
88
|
+
"gulp-sourcemaps": "^2.6.5",
|
|
89
|
+
"gulp-typescript": "^6.0.0-alpha.1",
|
|
90
|
+
"gulp-uglify": "^3.0.2",
|
|
91
|
+
"https-browserify": "^1.0.0",
|
|
92
|
+
"jest": "^29.7.0",
|
|
93
|
+
"jest-coverage-badges": "^1.0.0",
|
|
94
|
+
"jest-junit": "^16.0.0",
|
|
95
|
+
"jsdoc": "^4.0.4",
|
|
96
|
+
"jsdoc-mermaid": "^1.0.0",
|
|
97
|
+
"markdown-include": "^0.4.3",
|
|
98
|
+
"merge-stream": "^2.0.0",
|
|
99
|
+
"nodemon": "^3.1.7",
|
|
100
|
+
"npm-check-updates": "^17.1.4",
|
|
101
|
+
"prettier": "^3.3.3",
|
|
102
|
+
"rimraf": "^6.0.1",
|
|
103
|
+
"stream-http": "^3.2.0",
|
|
104
|
+
"ts-jest": "^29.2.5",
|
|
105
|
+
"ts-loader": "^9.5.1",
|
|
106
|
+
"ts-node": "^10.9.2",
|
|
107
|
+
"typescript": "^5.6.3",
|
|
108
|
+
"typescript-eslint": "^8.10.0",
|
|
109
|
+
"vinyl-named": "^1.1.0",
|
|
110
|
+
"webpack-stream": "^7.0.0"
|
|
111
|
+
},
|
|
112
|
+
"peerDependencies": {
|
|
113
|
+
"@decaf-ts/core": "latest",
|
|
114
|
+
"@decaf-ts/db-decorators": "latest",
|
|
115
|
+
"@decaf-ts/decorator-validation": "latest",
|
|
116
|
+
"@decaf-ts/injectable-decorators": "latest",
|
|
117
|
+
"@decaf-ts/reflection": "latest",
|
|
118
|
+
"https-browserify": "^1.0.0",
|
|
119
|
+
"nano": "^10.1.4",
|
|
120
|
+
"reflect-metadata": "^0.2.1",
|
|
121
|
+
"stream-http": "^3.2.0",
|
|
122
|
+
"url": "^0.11.4"
|
|
123
|
+
}
|
|
124
|
+
}
|