@decaf-ts/for-couchdb 0.6.2 → 0.7.0

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 (102) hide show
  1. package/dist/for-couchdb.cjs +1 -1
  2. package/dist/for-couchdb.cjs.map +1 -1
  3. package/dist/for-couchdb.js +1 -1
  4. package/dist/for-couchdb.js.map +1 -1
  5. package/lib/cjs/adapter.js.map +1 -0
  6. package/lib/cjs/constants.js.map +1 -0
  7. package/lib/cjs/decorators.js.map +1 -0
  8. package/lib/cjs/errors.js.map +1 -0
  9. package/lib/{index.cjs → cjs/index.cjs} +1 -1
  10. package/lib/cjs/index.js.map +1 -0
  11. package/lib/cjs/indexes/generator.js.map +1 -0
  12. package/lib/cjs/indexes/index.js.map +1 -0
  13. package/lib/cjs/metadata.js.map +1 -0
  14. package/lib/cjs/query/Paginator.js.map +1 -0
  15. package/lib/{query → cjs/query}/Statement.cjs +60 -0
  16. package/lib/cjs/query/Statement.js.map +1 -0
  17. package/lib/cjs/query/constants.js.map +1 -0
  18. package/lib/cjs/query/index.js.map +1 -0
  19. package/lib/cjs/query/translate.js.map +1 -0
  20. package/lib/cjs/repository.js.map +1 -0
  21. package/lib/{views → cjs}/types.js.map +1 -1
  22. package/lib/cjs/utils.js.map +1 -0
  23. package/lib/cjs/views/generator.js.map +1 -0
  24. package/lib/cjs/views/index.js.map +1 -0
  25. package/lib/cjs/views/types.js.map +1 -0
  26. package/lib/esm/index.js +1 -1
  27. package/lib/esm/query/Statement.js +61 -1
  28. package/lib/esm/query/Statement.js.map +1 -1
  29. package/lib/{esm → types}/index.d.ts +1 -1
  30. package/lib/{query → types/query}/Statement.d.ts +3 -1
  31. package/package.json +15 -8
  32. package/lib/adapter.js.map +0 -1
  33. package/lib/constants.js.map +0 -1
  34. package/lib/decorators.js.map +0 -1
  35. package/lib/errors.js.map +0 -1
  36. package/lib/esm/adapter.d.ts +0 -296
  37. package/lib/esm/constants.d.ts +0 -42
  38. package/lib/esm/decorators.d.ts +0 -8
  39. package/lib/esm/errors.d.ts +0 -21
  40. package/lib/esm/query/Statement.d.ts +0 -193
  41. package/lib/index.d.ts +0 -28
  42. package/lib/index.js.map +0 -1
  43. package/lib/indexes/generator.d.ts +0 -51
  44. package/lib/indexes/generator.js.map +0 -1
  45. package/lib/indexes/index.d.ts +0 -1
  46. package/lib/indexes/index.js.map +0 -1
  47. package/lib/metadata.d.ts +0 -4
  48. package/lib/metadata.js.map +0 -1
  49. package/lib/query/Paginator.d.ts +0 -105
  50. package/lib/query/Paginator.js.map +0 -1
  51. package/lib/query/Statement.js.map +0 -1
  52. package/lib/query/constants.d.ts +0 -47
  53. package/lib/query/constants.js.map +0 -1
  54. package/lib/query/index.d.ts +0 -4
  55. package/lib/query/index.js.map +0 -1
  56. package/lib/query/translate.d.ts +0 -34
  57. package/lib/query/translate.js.map +0 -1
  58. package/lib/repository.d.ts +0 -39
  59. package/lib/repository.js.map +0 -1
  60. package/lib/types.d.ts +0 -166
  61. package/lib/types.js.map +0 -1
  62. package/lib/utils.d.ts +0 -112
  63. package/lib/utils.js.map +0 -1
  64. package/lib/views/generator.d.ts +0 -13
  65. package/lib/views/generator.js.map +0 -1
  66. package/lib/views/index.d.ts +0 -2
  67. package/lib/views/index.js.map +0 -1
  68. package/lib/views/types.d.ts +0 -30
  69. /package/lib/{adapter.cjs → cjs/adapter.cjs} +0 -0
  70. /package/lib/{constants.cjs → cjs/constants.cjs} +0 -0
  71. /package/lib/{decorators.cjs → cjs/decorators.cjs} +0 -0
  72. /package/lib/{errors.cjs → cjs/errors.cjs} +0 -0
  73. /package/lib/{indexes → cjs/indexes}/generator.cjs +0 -0
  74. /package/lib/{indexes → cjs/indexes}/index.cjs +0 -0
  75. /package/lib/{metadata.cjs → cjs/metadata.cjs} +0 -0
  76. /package/lib/{query → cjs/query}/Paginator.cjs +0 -0
  77. /package/lib/{query → cjs/query}/constants.cjs +0 -0
  78. /package/lib/{query → cjs/query}/index.cjs +0 -0
  79. /package/lib/{query → cjs/query}/translate.cjs +0 -0
  80. /package/lib/{repository.cjs → cjs/repository.cjs} +0 -0
  81. /package/lib/{types.cjs → cjs/types.cjs} +0 -0
  82. /package/lib/{utils.cjs → cjs/utils.cjs} +0 -0
  83. /package/lib/{views → cjs/views}/generator.cjs +0 -0
  84. /package/lib/{views → cjs/views}/index.cjs +0 -0
  85. /package/lib/{views → cjs/views}/types.cjs +0 -0
  86. /package/lib/{adapter.d.ts → types/adapter.d.ts} +0 -0
  87. /package/lib/{constants.d.ts → types/constants.d.ts} +0 -0
  88. /package/lib/{decorators.d.ts → types/decorators.d.ts} +0 -0
  89. /package/lib/{errors.d.ts → types/errors.d.ts} +0 -0
  90. /package/lib/{esm → types}/indexes/generator.d.ts +0 -0
  91. /package/lib/{esm → types}/indexes/index.d.ts +0 -0
  92. /package/lib/{esm → types}/metadata.d.ts +0 -0
  93. /package/lib/{esm → types}/query/Paginator.d.ts +0 -0
  94. /package/lib/{esm → types}/query/constants.d.ts +0 -0
  95. /package/lib/{esm → types}/query/index.d.ts +0 -0
  96. /package/lib/{esm → types}/query/translate.d.ts +0 -0
  97. /package/lib/{esm → types}/repository.d.ts +0 -0
  98. /package/lib/{esm → types}/types.d.ts +0 -0
  99. /package/lib/{esm → types}/utils.d.ts +0 -0
  100. /package/lib/{esm → types}/views/generator.d.ts +0 -0
  101. /package/lib/{esm → types}/views/index.d.ts +0 -0
  102. /package/lib/{esm → types}/views/types.d.ts +0 -0
@@ -1,193 +0,0 @@
1
- import { Adapter, AdapterFlags, Condition, ContextOf, SelectSelector, Statement, UnsupportedError, ViewKind } from "@decaf-ts/core";
2
- import { MangoQuery, ViewResponse } from "../types";
3
- import { Model } from "@decaf-ts/decorator-validation";
4
- import { CouchDBViewMetadata } from "../views/types";
5
- import { CouchDBAdapter } from "../adapter";
6
- type CouchDBViewDescriptor = {
7
- ddoc: string;
8
- view: string;
9
- options: Record<string, any>;
10
- };
11
- type CouchDBAggregateInfo = {
12
- kind: ViewKind;
13
- meta: CouchDBViewMetadata;
14
- descriptor: CouchDBViewDescriptor;
15
- countDistinct?: boolean;
16
- } | {
17
- kind: "avg";
18
- attribute: string;
19
- sumDescriptor: CouchDBViewDescriptor;
20
- countDescriptor: CouchDBViewDescriptor;
21
- };
22
- /**
23
- * @description Statement builder for CouchDB Mango queries
24
- * @summary Provides a fluent interface for building CouchDB Mango queries with type safety
25
- * @template M - The model type that extends Model
26
- * @template R - The result type
27
- * @param adapter - The CouchDB adapter
28
- * @class CouchDBStatement
29
- * @example
30
- * // Example of using CouchDBStatement
31
- * const adapter = new MyCouchDBAdapter(scope);
32
- * const statement = new CouchDBStatement<User, User[]>(adapter);
33
- *
34
- * // Build a query
35
- * const users = await statement
36
- * .from(User)
37
- * .where(Condition.attribute<User>('age').gt(18))
38
- * .orderBy('lastName', 'asc')
39
- * .limit(10)
40
- * .execute();
41
- */
42
- export declare class CouchDBStatement<M extends Model, A extends Adapter<any, any, MangoQuery, any>, R> extends Statement<M, A, R, MangoQuery> {
43
- protected manualAggregation?: CouchDBAggregateInfo;
44
- protected attributeTypeCache: Map<string, string | undefined>;
45
- constructor(adapter: A, overrides?: Partial<AdapterFlags>);
46
- /**
47
- * @description Builds a CouchDB Mango query from the statement
48
- * @summary Converts the statement's conditions, selectors, and options into a CouchDB Mango query
49
- * @return {MangoQuery} The built Mango query
50
- * @throws {Error} If there are invalid query conditions
51
- * @mermaid
52
- * sequenceDiagram
53
- * participant Statement
54
- * participant Repository
55
- * participant parseCondition
56
- *
57
- * Statement->>Statement: build()
58
- * Note over Statement: Initialize selectors
59
- * Statement->>Repository: Get table name
60
- * Repository-->>Statement: Return table name
61
- * Statement->>Statement: Create base query
62
- *
63
- * alt Has selectSelector
64
- * Statement->>Statement: Add fields to query
65
- * end
66
- *
67
- * alt Has whereCondition
68
- * Statement->>Statement: Create combined condition with table
69
- * Statement->>parseCondition: Parse condition
70
- * parseCondition-->>Statement: Return parsed condition
71
- *
72
- * alt Is group operator
73
- * alt Is AND operator
74
- * Statement->>Statement: Flatten nested AND conditions
75
- * else Is OR operator
76
- * Statement->>Statement: Combine with table condition
77
- * else
78
- * Statement->>Statement: Throw error
79
- * end
80
- * else
81
- * Statement->>Statement: Merge conditions with existing selector
82
- * end
83
- * end
84
- *
85
- * alt Has orderBySelector
86
- * Statement->>Statement: Add sort to query
87
- * Statement->>Statement: Ensure field exists in selector
88
- * end
89
- *
90
- * alt Has limitSelector
91
- * Statement->>Statement: Set limit
92
- * else
93
- * Statement->>Statement: Use default limit
94
- * end
95
- *
96
- * alt Has offsetSelector
97
- * Statement->>Statement: Set skip
98
- * end
99
- *
100
- * Statement-->>Statement: Return query
101
- */
102
- protected build(): MangoQuery;
103
- /**
104
- * @description Processes a record from CouchDB
105
- * @summary Extracts the ID from a CouchDB document and reverts it to a model instance
106
- * @param {any} r - The raw record from CouchDB
107
- * @param pkAttr - The primary key attribute of the model
108
- * @param {"Number" | "BigInt" | undefined} sequenceType - The type of the sequence
109
- * @return {any} The processed record
110
- */
111
- protected processRecord(record: any, ctx: ContextOf<A>): M;
112
- /**
113
- * @description Executes a raw Mango query
114
- * @summary Sends a raw Mango query to CouchDB and processes the results
115
- * @template R - The result type
116
- * @param {MangoQuery} rawInput - The raw Mango query to execute
117
- * @return {Promise<R>} A promise that resolves to the query results
118
- */
119
- raw<R>(rawInput: MangoQuery, ...args: any[]): Promise<R>;
120
- /**
121
- * @description Parses a condition into a CouchDB Mango query selector
122
- * @summary Converts a Condition object into a CouchDB Mango query selector structure
123
- * @param {Condition<M>} condition - The condition to parse
124
- * @return {MangoQuery} The Mango query with the parsed condition as its selector
125
- * @mermaid
126
- * sequenceDiagram
127
- * participant Statement
128
- * participant translateOperators
129
- * participant merge
130
- *
131
- * Statement->>Statement: parseCondition(condition)
132
- *
133
- * Note over Statement: Extract condition parts
134
- *
135
- * alt Simple comparison operator
136
- * Statement->>translateOperators: translateOperators(operator)
137
- * translateOperators-->>Statement: Return CouchDB operator
138
- * Statement->>Statement: Create selector with attribute and operator
139
- * else NOT operator
140
- * Statement->>Statement: parseCondition(attr1)
141
- * Statement->>translateOperators: translateOperators(Operator.NOT)
142
- * translateOperators-->>Statement: Return CouchDB NOT operator
143
- * Statement->>Statement: Create negated selector
144
- * else AND/OR operator
145
- * Statement->>Statement: parseCondition(attr1)
146
- * Statement->>Statement: parseCondition(comparison)
147
- * Statement->>translateOperators: translateOperators(operator)
148
- * translateOperators-->>Statement: Return CouchDB group operator
149
- * Statement->>merge: merge(operator, op1, op2)
150
- * merge-->>Statement: Return merged selector
151
- * end
152
- *
153
- * Statement-->>Statement: Return query with selector
154
- */
155
- protected buildAggregateInfo(): CouchDBAggregateInfo | undefined;
156
- protected createAggregateDescriptor(kind: ViewKind, attribute?: string): Extract<CouchDBAggregateInfo, {
157
- kind: ViewKind;
158
- }> | undefined;
159
- protected createAggregateQuery(info: CouchDBAggregateInfo): MangoQuery & {
160
- aggregate: true;
161
- aggregateInfo: CouchDBAggregateInfo;
162
- };
163
- protected shouldUseManualAggregation(): boolean;
164
- protected executeAggregate<R>(info: CouchDBAggregateInfo, ctx: ContextOf<A>): Promise<R>;
165
- protected handleAverage<R>(info: CouchDBAggregateInfo, ctx: ContextOf<A>): Promise<R>;
166
- protected executeManualAggregation<R>(docs: any[], info: CouchDBAggregateInfo, ctx: ContextOf<A>): R;
167
- protected computeCount<R>(docs: any[], attribute?: string): R;
168
- protected computeDistinctCount<R>(docs: any[], attribute?: string): R;
169
- protected computeDistinctValues<R>(docs: any[], attribute?: string): R;
170
- protected computeSum<R>(docs: any[], attribute?: string): R;
171
- protected computeAverage<R>(docs: any[], attribute?: string): R;
172
- protected computeMinMax<R>(docs: any[], attribute: string | undefined, mode: "min" | "max"): R;
173
- protected computeGroupBy<R>(docs: any[], attribute: string): R;
174
- protected groupSelectResults(docs: any[]): Record<string, any[]>;
175
- protected collectValues(docs: any[], attribute: string): any[];
176
- protected convertValueByAttribute(attribute: string, value: any): any;
177
- protected getAttributeType(attribute?: string): string | undefined;
178
- protected normalizeMetaType(metaType: any): string | undefined;
179
- protected normalizeComparable(value: any): number | null;
180
- protected groupKey(value: any): string;
181
- protected toNumericValue(value: any, field: string, context: string): number;
182
- protected convertAggregateValue(attribute: string | undefined, value: any): any;
183
- protected resolveSelectorAttribute(selector?: SelectSelector<M> | null): string | undefined;
184
- protected missingDecorator(kind: ViewKind | "avg", attribute?: string): UnsupportedError;
185
- protected decoratorForKind(kind: ViewKind | "avg"): string;
186
- protected processViewResponse<R>(info: CouchDBAggregateInfo, response: ViewResponse): R;
187
- protected isViewAggregate(info: CouchDBAggregateInfo): info is Extract<CouchDBAggregateInfo, {
188
- kind: ViewKind;
189
- }>;
190
- protected getCouchAdapter(): CouchDBAdapter<any, any, any>;
191
- protected parseCondition(condition: Condition<M>): MangoQuery;
192
- }
193
- export {};
package/lib/index.d.ts DELETED
@@ -1,28 +0,0 @@
1
- export * from "./indexes";
2
- export * from "./repository";
3
- export * from "./adapter";
4
- export * from "./constants";
5
- export * from "./errors";
6
- export * from "./metadata";
7
- export * from "./decorators";
8
- export * from "./types";
9
- export * from "./utils";
10
- export * from "./query";
11
- export * from "./views";
12
- /**
13
- * @description CouchDB adapter for Decaf.ts
14
- * @summary A TypeScript adapter for CouchDB database operations, providing a seamless integration with the Decaf.ts framework. This module includes classes, interfaces, and utilities for working with CouchDB databases, including support for Mango queries, document operations, and sequence management.
15
- * @module for-couchdb
16
- */
17
- /**
18
- * @description Stores the current package version
19
- * @summary The version string of the for-couchdb package
20
- * @const VERSION
21
- */
22
- export declare const VERSION = "0.6.1";
23
- /**
24
- * @description Stores the current package name
25
- * @summary The version string of the for-couchdb package
26
- * @const PACKAGE_NAME
27
- */
28
- export declare const PACKAGE_NAME = "@decaf-ts/for-couchdb";
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAAgD;AAEhD,sDAA0B;AAC1B,mDAA6B;AAC7B,gDAA0B;AAC1B,kDAA4B;AAC5B,+CAAyB;AACzB,iDAA2B;AAC3B,mDAA6B;AAC7B,8CAAwB;AACxB,8CAAwB;AACxB,oDAAwB;AACxB,oDAAwB;AAExB;;;;GAIG;AAEH;;;;GAIG;AACU,QAAA,OAAO,GAAG,aAAa,CAAC;AAErC;;;;GAIG;AACU,QAAA,YAAY,GAAG,aAAa,CAAC;AAE1C,qBAAQ,CAAC,eAAe,CAAC,oBAAY,EAAE,eAAO,CAAC,CAAC"}
@@ -1,51 +0,0 @@
1
- import { Model } from "@decaf-ts/decorator-validation";
2
- import { CreateIndexRequest } from "../types";
3
- import { Constructor } from "@decaf-ts/decoration";
4
- /**
5
- * @description Generates CouchDB index configurations for models
6
- * @summary Creates a set of CouchDB index configurations based on the metadata of the provided models
7
- * @template M - The model type that extends Model
8
- * @param models - Array of model constructors to generate indexes for
9
- * @return {CreateIndexRequest[]} Array of CouchDB index configurations
10
- * @function generateIndexes
11
- * @memberOf module:for-couchdb
12
- * @mermaid
13
- * sequenceDiagram
14
- * participant Caller
15
- * participant generateIndexes
16
- * participant generateIndexName
17
- * participant Repository
18
- *
19
- * Caller->>generateIndexes: models
20
- *
21
- * Note over generateIndexes: Create base table index
22
- * generateIndexes->>generateIndexName: [CouchDBKeys.TABLE]
23
- * generateIndexName-->>generateIndexes: tableName
24
- * generateIndexes->>generateIndexes: Create table index config
25
- *
26
- * loop For each model
27
- * generateIndexes->>Repository: Get indexes metadata
28
- * Repository-->>generateIndexes: index metadata
29
- *
30
- * loop For each index in metadata
31
- * Note over generateIndexes: Extract index properties
32
- * generateIndexes->>Repository: Get table name
33
- * Repository-->>generateIndexes: tableName
34
- *
35
- * Note over generateIndexes: Define nested generate function
36
- *
37
- * generateIndexes->>generateIndexes: Call generate() for default order
38
- * Note over generateIndexes: Create index name and config
39
- *
40
- * alt Has directions
41
- * loop For each direction
42
- * generateIndexes->>generateIndexes: Call generate(direction)
43
- * Note over generateIndexes: Create ordered index config
44
- * end
45
- * end
46
- * end
47
- * end
48
- *
49
- * generateIndexes-->>Caller: Array of index configurations
50
- */
51
- export declare function generateIndexes<M extends Model>(models: Constructor<M>[]): CreateIndexRequest[];
@@ -1 +0,0 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/indexes/generator.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export * from "./generator";
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/indexes/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA4B"}
package/lib/metadata.d.ts DELETED
@@ -1,4 +0,0 @@
1
- import { Model } from "@decaf-ts/decorator-validation";
2
- export declare function setMetadata<M extends Model>(model: M, metadata: any): void;
3
- export declare function getMetadata<M extends Model>(model: M): any;
4
- export declare function removeMetadata<M extends Model>(model: M): void;
@@ -1 +0,0 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":";;AAGA,kCAOC;AAED,kCAMC;AAED,wCAMC;AA1BD,yCAAiD;AAGjD,SAAgB,WAAW,CAAkB,KAAQ,EAAE,QAAa;IAClE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,sBAAe,CAAC,QAAQ,EAAE;QACrD,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,QAAQ;KAChB,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,WAAW,CAAkB,KAAQ;IACnD,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAChD,KAAK,EACL,sBAAe,CAAC,QAAQ,CACzB,CAAC;IACF,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC;AAED,SAAgB,cAAc,CAAkB,KAAQ;IACtD,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAChD,KAAK,EACL,sBAAe,CAAC,QAAQ,CACzB,CAAC;IACF,IAAI,UAAU;QAAE,OAAQ,KAAa,CAAC,sBAAe,CAAC,QAAQ,CAAC,CAAC;AAClE,CAAC"}
@@ -1,105 +0,0 @@
1
- import { MaybeContextualArg, Paginator } from "@decaf-ts/core";
2
- import { MangoQuery } from "../types";
3
- import { Model } from "@decaf-ts/decorator-validation";
4
- import { CouchDBAdapter } from "../adapter";
5
- import { Constructor } from "@decaf-ts/decoration";
6
- /**
7
- * @description Paginator for ConuchDB query results
8
- * @summary Implements pagination for CouchDB queries using bookmarks for efficient navigation through result sets
9
- * @template M - The model type that extends Model
10
- * @template R - The result type
11
- * @param {CouchDBAdapter<any, any, any>} adapter - The CouchDB adapter
12
- * @param {MangoQuery} query - The Mango query to paginate
13
- * @param {number} size - The page size
14
- * @param {Constructor<M>} clazz - The model constructor
15
- * @class CouchDBPaginator
16
- * @example
17
- * // Example of using CouchDBPaginator
18
- * const adapter = new MyCouchDBAdapter(scope);
19
- * const query = { selector: { type: "user" } };
20
- * const paginator = new CouchDBPaginator(adapter, query, 10, User);
21
- *
22
- * // Get the first page
23
- * const page1 = await paginator.page(1);
24
- *
25
- * // Get the next page
26
- * const page2 = await paginator.page(2);
27
- */
28
- export declare class CouchDBPaginator<M extends Model> extends Paginator<M, M[], MangoQuery> {
29
- /**
30
- * @description Creates a new CouchDBPaginator instance
31
- * @summary Initializes a paginator for CouchDB query results
32
- * @param {CouchDBAdapter<any, any, any, any>} adapter - The CouchDB adapter
33
- * @param {MangoQuery} query - The Mango query to paginate
34
- * @param {number} size - The page size
35
- * @param {Constructor<M>} clazz - The model constructor
36
- */
37
- constructor(adapter: CouchDBAdapter<any, any, any>, query: MangoQuery, size: number, clazz: Constructor<M>);
38
- /**
39
- * @description Prepares a query for pagination
40
- * @summary Modifies the raw query to include pagination parameters
41
- * @param {MangoQuery} rawStatement - The original Mango query
42
- * @return {MangoQuery} The prepared query with pagination parameters
43
- */
44
- protected prepare(rawStatement: MangoQuery): MangoQuery;
45
- /**
46
- * @description Retrieves a specific page of results
47
- * @summary Executes the query with pagination and processes the results
48
- * @param {number} [page=1] - The page number to retrieve
49
- * @return {Promise<R[]>} A promise that resolves to an array of results
50
- * @throws {PagingError} If trying to access a page other than the first without a bookmark, or if no class is defined
51
- * @mermaid
52
- * sequenceDiagram
53
- * participant Client
54
- * participant CouchDBPaginator
55
- * participant Adapter
56
- * participant CouchDB
57
- *
58
- * Client->>CouchDBPaginator: page(pageNumber)
59
- * Note over CouchDBPaginator: Clone statement
60
- * CouchDBPaginator->>CouchDBPaginator: validatePage(page)
61
- *
62
- * alt page !== 1
63
- * CouchDBPaginator->>CouchDBPaginator: Check bookmark
64
- * alt No bookmark
65
- * CouchDBPaginator-->>Client: Throw PagingError
66
- * else Has bookmark
67
- * CouchDBPaginator->>CouchDBPaginator: Add bookmark to statement
68
- * end
69
- * end
70
- *
71
- * CouchDBPaginator->>Adapter: raw(statement, false)
72
- * Adapter->>CouchDB: Execute query
73
- * CouchDB-->>Adapter: Return results
74
- * Adapter-->>CouchDBPaginator: Return MangoResponse
75
- *
76
- * Note over CouchDBPaginator: Process results
77
- *
78
- * alt Has warning
79
- * CouchDBPaginator->>CouchDBPaginator: Log warning
80
- * end
81
- *
82
- * CouchDBPaginator->>CouchDBPaginator: Check for clazz
83
- *
84
- * alt No clazz
85
- * CouchDBPaginator-->>Client: Throw PagingError
86
- * else Has clazz
87
- * CouchDBPaginator->>CouchDBPaginator: Find primary key
88
- *
89
- * alt Has fields in statement
90
- * CouchDBPaginator->>CouchDBPaginator: Use docs directly
91
- * else No fields
92
- * CouchDBPaginator->>CouchDBPaginator: Process each document
93
- * loop For each document
94
- * CouchDBPaginator->>CouchDBPaginator: Extract original ID
95
- * CouchDBPaginator->>Adapter: revert(doc, clazz, pkDef.id, parsedId)
96
- * end
97
- * end
98
- *
99
- * CouchDBPaginator->>CouchDBPaginator: Store bookmark
100
- * CouchDBPaginator->>CouchDBPaginator: Update currentPage
101
- * CouchDBPaginator-->>Client: Return results
102
- * end
103
- */
104
- page(page?: number | undefined, bookmark?: any, ...args: MaybeContextualArg<any>): Promise<M[]>;
105
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"Paginator.js","sourceRoot":"","sources":["../../src/query/Paginator.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Statement.js","sourceRoot":"","sources":["../../src/query/Statement.ts"],"names":[],"mappings":"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"}
@@ -1,47 +0,0 @@
1
- import { MangoOperator } from "../types";
2
- /**
3
- * @description Default query limit for CouchDB queries
4
- * @summary Maximum number of documents to return in a single query
5
- * @const CouchDBQueryLimit
6
- * @memberOf module:for-couchdb
7
- */
8
- export declare const CouchDBQueryLimit = 250;
9
- /**
10
- * @description Mapping of operator names to CouchDB Mango query operators
11
- * @summary Constants for CouchDB comparison operators used in Mango queries
12
- * @typedef {Object} CouchDBOperatorType
13
- * @property {string} EQUAL - Equality operator ($eq)
14
- * @property {string} DIFFERENT - Inequality operator ($ne)
15
- * @property {string} BIGGER - Greater than operator ($gt)
16
- * @property {string} BIGGER_EQ - Greater than or equal operator ($gte)
17
- * @property {string} SMALLER - Less than operator ($lt)
18
- * @property {string} SMALLER_EQ - Less than or equal operator ($lte)
19
- * @property {string} NOT - Negation operator ($not)
20
- * @property {string} IN - In array operator ($in)
21
- * @property {string} REGEXP - Regular expression operator ($regex)
22
- * @const CouchDBOperator
23
- * @type {CouchDBOperatorType}
24
- * @memberOf module:for-couchdb
25
- */
26
- export declare const CouchDBOperator: Record<string, MangoOperator>;
27
- /**
28
- * @description Mapping of logical operator names to CouchDB Mango query operators
29
- * @summary Constants for CouchDB logical operators used in Mango queries
30
- * @typedef {Object} CouchDBGroupOperatorType
31
- * @property {string} AND - Logical AND operator ($and)
32
- * @property {string} OR - Logical OR operator ($or)
33
- * @const CouchDBGroupOperator
34
- * @type {CouchDBGroupOperatorType}
35
- * @memberOf module:for-couchdb
36
- */
37
- export declare const CouchDBGroupOperator: Record<string, MangoOperator>;
38
- /**
39
- * @description Special constant values used in CouchDB queries
40
- * @summary String constants representing special values in CouchDB
41
- * @typedef {Object} CouchDBConstType
42
- * @property {string} NULL - String representation of null value
43
- * @const CouchDBConst
44
- * @type {CouchDBConstType}
45
- * @memberOf module:for-couchdb
46
- */
47
- export declare const CouchDBConst: Record<string, string>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/query/constants.ts"],"names":[],"mappings":";;;AAEA;;;;;GAKG;AACU,QAAA,iBAAiB,GAAG,GAAG,CAAC;AAErC;;;;;;;;;;;;;;;;GAgBG;AACU,QAAA,eAAe,GAAkC;IAC5D,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,MAAM;IAClB,uBAAuB;IACvB,GAAG,EAAE,MAAM;IACX,EAAE,EAAE,KAAK;IACT,aAAa;IACb,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF;;;;;;;;;GASG;AACU,QAAA,oBAAoB,GAAkC;IACjE,GAAG,EAAE,MAAM;IACX,EAAE,EAAE,KAAK;CACV,CAAC;AAEF;;;;;;;;GAQG;AACU,QAAA,YAAY,GAA2B;IAClD,IAAI,EAAE,MAAM;CACb,CAAC"}
@@ -1,4 +0,0 @@
1
- export * from "./constants";
2
- export * from "./Paginator";
3
- export * from "./Statement";
4
- export * from "./translate";
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA4B;AAC5B,kDAA4B;AAC5B,kDAA4B;AAC5B,kDAA4B"}
@@ -1,34 +0,0 @@
1
- import { GroupOperator, Operator } from "@decaf-ts/core";
2
- import { MangoOperator } from "../types";
3
- /**
4
- * @description Translates core operators to CouchDB Mango operators
5
- * @summary Converts Decaf.ts core operators to their equivalent CouchDB Mango query operators
6
- * @param {GroupOperator | Operator} operator - The core operator to translate
7
- * @return {MangoOperator} The equivalent CouchDB Mango operator
8
- * @throws {QueryError} If no translation exists for the given operator
9
- * @function translateOperators
10
- * @memberOf module:for-couchdb
11
- * @mermaid
12
- * sequenceDiagram
13
- * participant Caller
14
- * participant translateOperators
15
- * participant CouchDBOperator
16
- * participant CouchDBGroupOperator
17
- *
18
- * Caller->>translateOperators: operator
19
- *
20
- * translateOperators->>CouchDBOperator: Check for match
21
- * alt Found in CouchDBOperator
22
- * CouchDBOperator-->>translateOperators: Return matching operator
23
- * translateOperators-->>Caller: Return MangoOperator
24
- * else Not found
25
- * translateOperators->>CouchDBGroupOperator: Check for match
26
- * alt Found in CouchDBGroupOperator
27
- * CouchDBGroupOperator-->>translateOperators: Return matching operator
28
- * translateOperators-->>Caller: Return MangoOperator
29
- * else Not found
30
- * translateOperators-->>Caller: Throw QueryError
31
- * end
32
- * end
33
- */
34
- export declare function translateOperators(operator: GroupOperator | Operator): MangoOperator;
@@ -1 +0,0 @@
1
- {"version":3,"file":"translate.js","sourceRoot":"","sources":["../../src/query/translate.ts"],"names":[],"mappings":";;AAoCA,gDAUC;AA7CD,+CAAoE;AACpE,yCAA4C;AAG5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,SAAgB,kBAAkB,CAChC,QAAkC;IAElC,KAAK,MAAM,SAAS,IAAI,CAAC,2BAAe,EAAE,gCAAoB,CAAC,EAAE,CAAC;QAChE,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;QAC9D,IAAI,EAAE;YAAE,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,IAAI,iBAAU,CAClB,mDAAmD,QAAQ,EAAE,CAC9D,CAAC;AACJ,CAAC"}
@@ -1,39 +0,0 @@
1
- import { MaybeContextualArg, Repository } from "@decaf-ts/core";
2
- import { Model } from "@decaf-ts/decorator-validation";
3
- import { Constructor } from "@decaf-ts/decoration";
4
- import type { CouchDBAdapter } from "./adapter";
5
- import { ContextOf } from "@decaf-ts/core";
6
- import type { PrimaryKeyType } from "@decaf-ts/db-decorators";
7
- export declare class CouchDBRepository<M extends Model, A extends CouchDBAdapter<any, any, any>> extends Repository<M, A> {
8
- constructor(adapter: A, model: Constructor<M>, force?: boolean);
9
- protected assignMetadata(model: M, source?: M): M;
10
- protected assignMetadata(models: M[], source?: M[]): M[];
11
- create(model: M, ...args: MaybeContextualArg<ContextOf<A>>): Promise<M>;
12
- createAll(models: M[], ...args: MaybeContextualArg<ContextOf<A>>): Promise<M[]>;
13
- read(id: PrimaryKeyType, ...args: MaybeContextualArg<ContextOf<A>>): Promise<M>;
14
- readAll(ids: PrimaryKeyType[], ...args: MaybeContextualArg<ContextOf<A>>): Promise<M[]>;
15
- update(model: M, ...args: MaybeContextualArg<ContextOf<A>>): Promise<M>;
16
- updateAll(models: M[], ...args: MaybeContextualArg<ContextOf<A>>): Promise<M[]>;
17
- delete(id: PrimaryKeyType, ...args: MaybeContextualArg<ContextOf<A>>): Promise<M>;
18
- deleteAll(ids: PrimaryKeyType[], ...args: MaybeContextualArg<ContextOf<A>>): Promise<M[]>;
19
- /**
20
- * @description Prepares a model for update.
21
- * @summary Validates the model and prepares it for update in the database.
22
- * @param {M} model - The model to update.
23
- * @param {...any[]} args - Additional arguments.
24
- * @return The prepared model and context arguments.
25
- * @throws {InternalError} If the model has no primary key value.
26
- * @throws {ValidationError} If the model fails validation.
27
- */
28
- protected updatePrefix(model: M, ...args: MaybeContextualArg<ContextOf<A>>): Promise<[M, ...args: any[], ContextOf<A>, M | undefined]>;
29
- /**
30
- * @description Prepares multiple models for update.
31
- * @summary Validates multiple models and prepares them for update in the database.
32
- * @param {M[]} models - The models to update.
33
- * @param {...any[]} args - Additional arguments.
34
- * @return {Promise<any[]>} The prepared models and context arguments.
35
- * @throws {InternalError} If any model has no primary key value.
36
- * @throws {ValidationError} If any model fails validation.
37
- */
38
- protected updateAllPrefix(models: M[], ...args: MaybeContextualArg<ContextOf<A>>): Promise<[M[], ...args: any[], ContextOf<A>, M[] | undefined]>;
39
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":"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"}