@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.
Files changed (111) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +297 -0
  3. package/dist/esm/for-couchdb.bundle.min.esm.js +2 -0
  4. package/dist/esm/for-couchdb.bundle.min.esm.js.LICENSE.txt +25 -0
  5. package/dist/for-couchdb.bundle.min.js +2 -0
  6. package/dist/for-couchdb.bundle.min.js.LICENSE.txt +25 -0
  7. package/lib/adapter.cjs +332 -0
  8. package/lib/adapter.d.ts +32 -0
  9. package/lib/constants.cjs +15 -0
  10. package/lib/constants.d.ts +10 -0
  11. package/lib/errors.cjs +12 -0
  12. package/lib/errors.d.ts +4 -0
  13. package/lib/esm/adapter.d.ts +32 -0
  14. package/lib/esm/adapter.js +328 -0
  15. package/lib/esm/constants.d.ts +10 -0
  16. package/lib/esm/constants.js +12 -0
  17. package/lib/esm/errors.d.ts +4 -0
  18. package/lib/esm/errors.js +8 -0
  19. package/lib/esm/index.d.ts +24 -0
  20. package/lib/esm/index.js +26 -0
  21. package/lib/esm/indexes/generator.d.ts +3 -0
  22. package/lib/esm/indexes/generator.js +72 -0
  23. package/lib/esm/indexes/index.d.ts +2 -0
  24. package/lib/esm/indexes/index.js +4 -0
  25. package/lib/esm/indexes/types.d.ts +11 -0
  26. package/lib/esm/indexes/types.js +3 -0
  27. package/lib/esm/interfaces/CouchDBRepository.d.ts +7 -0
  28. package/lib/esm/interfaces/CouchDBRepository.js +3 -0
  29. package/lib/esm/interfaces/index.d.ts +1 -0
  30. package/lib/esm/interfaces/index.js +3 -0
  31. package/lib/esm/model/CouchDBSequence.d.ts +20 -0
  32. package/lib/esm/model/CouchDBSequence.js +49 -0
  33. package/lib/esm/model/index.d.ts +1 -0
  34. package/lib/esm/model/index.js +3 -0
  35. package/lib/esm/query/FromClause.d.ts +7 -0
  36. package/lib/esm/query/FromClause.js +21 -0
  37. package/lib/esm/query/InsertClause.d.ts +7 -0
  38. package/lib/esm/query/InsertClause.js +14 -0
  39. package/lib/esm/query/Paginator.d.ts +10 -0
  40. package/lib/esm/query/Paginator.js +58 -0
  41. package/lib/esm/query/SelectClause.d.ts +7 -0
  42. package/lib/esm/query/SelectClause.js +17 -0
  43. package/lib/esm/query/Statement.d.ts +13 -0
  44. package/lib/esm/query/Statement.js +55 -0
  45. package/lib/esm/query/ValuesClause.d.ts +7 -0
  46. package/lib/esm/query/ValuesClause.js +13 -0
  47. package/lib/esm/query/WhereClause.d.ts +7 -0
  48. package/lib/esm/query/WhereClause.js +58 -0
  49. package/lib/esm/query/constants.d.ts +4 -0
  50. package/lib/esm/query/constants.js +22 -0
  51. package/lib/esm/query/factory.d.ts +24 -0
  52. package/lib/esm/query/factory.js +118 -0
  53. package/lib/esm/query/index.d.ts +1 -0
  54. package/lib/esm/query/index.js +3 -0
  55. package/lib/esm/query/translate.d.ts +3 -0
  56. package/lib/esm/query/translate.js +12 -0
  57. package/lib/esm/sequences/Sequence.d.ts +48 -0
  58. package/lib/esm/sequences/Sequence.js +127 -0
  59. package/lib/esm/sequences/index.d.ts +1 -0
  60. package/lib/esm/sequences/index.js +3 -0
  61. package/lib/esm/sequences/utils.d.ts +1 -0
  62. package/lib/esm/sequences/utils.js +17 -0
  63. package/lib/esm/utils.d.ts +7 -0
  64. package/lib/esm/utils.js +72 -0
  65. package/lib/index.cjs +43 -0
  66. package/lib/index.d.ts +24 -0
  67. package/lib/indexes/generator.cjs +75 -0
  68. package/lib/indexes/generator.d.ts +3 -0
  69. package/lib/indexes/index.cjs +20 -0
  70. package/lib/indexes/index.d.ts +2 -0
  71. package/lib/indexes/types.cjs +4 -0
  72. package/lib/indexes/types.d.ts +11 -0
  73. package/lib/interfaces/CouchDBRepository.cjs +4 -0
  74. package/lib/interfaces/CouchDBRepository.d.ts +7 -0
  75. package/lib/interfaces/index.cjs +19 -0
  76. package/lib/interfaces/index.d.ts +1 -0
  77. package/lib/model/CouchDBSequence.cjs +52 -0
  78. package/lib/model/CouchDBSequence.d.ts +20 -0
  79. package/lib/model/index.cjs +19 -0
  80. package/lib/model/index.d.ts +1 -0
  81. package/lib/query/FromClause.cjs +25 -0
  82. package/lib/query/FromClause.d.ts +7 -0
  83. package/lib/query/InsertClause.cjs +18 -0
  84. package/lib/query/InsertClause.d.ts +7 -0
  85. package/lib/query/Paginator.cjs +62 -0
  86. package/lib/query/Paginator.d.ts +10 -0
  87. package/lib/query/SelectClause.cjs +21 -0
  88. package/lib/query/SelectClause.d.ts +7 -0
  89. package/lib/query/Statement.cjs +59 -0
  90. package/lib/query/Statement.d.ts +13 -0
  91. package/lib/query/ValuesClause.cjs +17 -0
  92. package/lib/query/ValuesClause.d.ts +7 -0
  93. package/lib/query/WhereClause.cjs +62 -0
  94. package/lib/query/WhereClause.d.ts +7 -0
  95. package/lib/query/constants.cjs +25 -0
  96. package/lib/query/constants.d.ts +4 -0
  97. package/lib/query/factory.cjs +122 -0
  98. package/lib/query/factory.d.ts +24 -0
  99. package/lib/query/index.cjs +19 -0
  100. package/lib/query/index.d.ts +1 -0
  101. package/lib/query/translate.cjs +15 -0
  102. package/lib/query/translate.d.ts +3 -0
  103. package/lib/sequences/Sequence.cjs +131 -0
  104. package/lib/sequences/Sequence.d.ts +48 -0
  105. package/lib/sequences/index.cjs +19 -0
  106. package/lib/sequences/index.d.ts +1 -0
  107. package/lib/sequences/utils.cjs +20 -0
  108. package/lib/sequences/utils.d.ts +1 -0
  109. package/lib/utils.cjs +79 -0
  110. package/lib/utils.d.ts +7 -0
  111. 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,3 @@
1
+ import { GroupOperator, Operator } from "@decaf-ts/core";
2
+ import { MangoOperator } from "nano";
3
+ export declare function translateOperators(operator: GroupOperator | Operator): MangoOperator;
@@ -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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9zZXF1ZW5jZXMvU2VxdWVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEseUVBQW9EO0FBQ3BELDhEQUEyRDtBQUMzRCwyREFJaUM7QUFDakMseUNBQTZEO0FBQzdELHlDQUEwQztBQUMxQyxtQ0FBNkM7QUFFN0M7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxlQUFRO0lBSTNDLFlBQVksT0FBd0I7UUFDbEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN6QyxJQUFJLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBUSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQWMsQ0FBQyxDQUFDO1lBQzNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBMEIsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxZQUFZLDZCQUFhLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXO29CQUNsQyxNQUFNLElBQUksNkJBQWEsQ0FDckIsMkRBQTJELENBQzVELENBQUM7Z0JBQ0osSUFBSSxDQUFDO29CQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDL0IsQ0FBQztnQkFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO29CQUNoQixNQUFNLElBQUksNkJBQWEsQ0FDckIsSUFBQSx5QkFBRSxFQUNBLHFEQUFxRCxFQUNyRCxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQ3BCLENBQUMsQ0FDRixDQUNGLENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7WUFDRCxNQUFNLElBQUksNkJBQWEsQ0FDckIsSUFBQSx5QkFBRSxFQUNBLHdEQUF3RCxFQUN4RCxJQUFjLEVBQ2QsQ0FBQyxDQUNGLENBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxLQUFLLENBQUMsS0FBK0I7UUFDM0MsT0FBTyxJQUFBLDBCQUFrQixFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ssS0FBSyxDQUFDLFNBQVMsQ0FDckIsT0FBaUMsRUFDakMsS0FBYztRQUVkLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDakQsSUFBSSxJQUE4QixDQUFDO1FBQ25DLE1BQU0sYUFBYSxHQUFHLEtBQUssSUFBSSxXQUFXLENBQUM7UUFDM0MsSUFBSSxhQUFhLEdBQUcsV0FBVyxLQUFLLENBQUM7WUFDbkMsTUFBTSxJQUFJLDZCQUFhLENBQ3JCLGlFQUFpRSxXQUFXLEVBQUUsQ0FDL0UsQ0FBQztRQUNKLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDYixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxHQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFZLEdBQUcsYUFBYSxDQUFDO2dCQUN2RCxNQUFNO1lBQ1IsS0FBSyxRQUFRO2dCQUNYLElBQUksR0FBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBWSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDL0QsTUFBTTtZQUNSO2dCQUNFLE1BQU0sSUFBSSw2QkFBYSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELElBQUksR0FBUSxDQUFDO1FBQ2IsSUFBSSxDQUFDO1lBQ0gsR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSwwQkFBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSw2QkFBYSxDQUFDO2dCQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzNDLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksMEJBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUMsT0FBbUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsSUFBSTtRQUNSLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFhO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQVcsQ0FBQztRQUNqRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFXLENBQUM7UUFDbkUsTUFBTSxJQUFJLEdBQTZCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FDekQsT0FBTyxFQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFZLEdBQUcsV0FBVyxDQUM1QyxDQUFDO1FBQ0YsTUFBTSxLQUFLLEdBQWlDLEVBQUUsQ0FBQztRQUMvQyxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDeEMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsV0FBVyxHQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFZLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJO1lBQ2xDLE1BQU0sSUFBSSw2QkFBYSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDckQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUF6SEQsMENBeUhDO0FBdkhXO0lBRFQsSUFBQSxpQkFBVSxFQUFDLDBCQUFHLENBQUM7OzZDQUNrQiIsImZpbGUiOiJzZXF1ZW5jZXMvU2VxdWVuY2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzZiB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IFNlcXVlbmNlIGFzIFNlcSB9IGZyb20gXCIuLi9tb2RlbC9Db3VjaERCU2VxdWVuY2VcIjtcbmltcG9ydCB7XG4gIEludGVybmFsRXJyb3IsXG4gIElSZXBvc2l0b3J5LFxuICBOb3RGb3VuZEVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IHJlcG9zaXRvcnksIFNlcXVlbmNlT3B0aW9ucyB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgU2VxdWVuY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IHBhcnNlU2VxdWVuY2VWYWx1ZSB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgQWJzdHJhY3QgaW1wbGVtZW50YXRpb24gb2YgYSBTZXF1ZW5jZVxuICogQGRlc2NyaXB0aW9uIHByb3ZpZGVzIHRoZSBiYXNpYyBmdW5jdGlvbmFsaXR5IGZvciB7QGxpbmsgU2VxdWVuY2V9c1xuICpcbiAqIEBwYXJhbSB7U2VxdWVuY2VPcHRpb25zfSBvcHRpb25zXG4gKlxuICogQGNsYXNzIENvdWNoREJTZXF1ZW5jZVxuICogQGltcGxlbWVudHMgU2VxdWVuY2VcbiAqXG4gKiBAY2F0ZWdvcnkgU2VxdWVuY2VzXG4gKi9cbmV4cG9ydCBjbGFzcyBDb3VjaERCU2VxdWVuY2UgZXh0ZW5kcyBTZXF1ZW5jZSB7XG4gIEByZXBvc2l0b3J5KFNlcSlcbiAgcHJvdGVjdGVkIHJlcG8hOiBJUmVwb3NpdG9yeTxTZXE+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
+ }