@decaf-ts/for-couchdb 0.4.30 → 0.4.32

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 (39) 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/adapter.d.ts +12 -1
  6. package/lib/adapter.js.map +1 -1
  7. package/lib/decorators.cjs +9 -39
  8. package/lib/decorators.d.ts +2 -5
  9. package/lib/decorators.js.map +1 -1
  10. package/lib/esm/adapter.d.ts +12 -1
  11. package/lib/esm/adapter.js.map +1 -1
  12. package/lib/esm/decorators.d.ts +2 -5
  13. package/lib/esm/decorators.js +5 -33
  14. package/lib/esm/decorators.js.map +1 -1
  15. package/lib/esm/index.d.ts +1 -1
  16. package/lib/esm/index.js +1 -1
  17. package/lib/esm/indexes/generator.js +68 -38
  18. package/lib/esm/indexes/generator.js.map +1 -1
  19. package/lib/esm/query/Statement.d.ts +32 -2
  20. package/lib/esm/query/Statement.js +445 -12
  21. package/lib/esm/query/Statement.js.map +1 -1
  22. package/lib/esm/types.d.ts +11 -0
  23. package/lib/esm/views/generator.d.ts +8 -2
  24. package/lib/esm/views/generator.js +31 -4
  25. package/lib/esm/views/generator.js.map +1 -1
  26. package/lib/esm/views/types.d.ts +6 -20
  27. package/lib/index.cjs +1 -1
  28. package/lib/index.d.ts +1 -1
  29. package/lib/indexes/generator.cjs +67 -37
  30. package/lib/indexes/generator.js.map +1 -1
  31. package/lib/query/Statement.cjs +444 -11
  32. package/lib/query/Statement.d.ts +32 -2
  33. package/lib/query/Statement.js.map +1 -1
  34. package/lib/types.d.ts +11 -0
  35. package/lib/views/generator.cjs +31 -0
  36. package/lib/views/generator.d.ts +8 -2
  37. package/lib/views/generator.js.map +1 -1
  38. package/lib/views/types.d.ts +6 -20
  39. package/package.json +1 -1
@@ -8,6 +8,7 @@ const constants_1 = require("./../constants.cjs");
8
8
  const constants_2 = require("./constants.cjs");
9
9
  const db_decorators_1 = require("@decaf-ts/db-decorators");
10
10
  const decoration_1 = require("@decaf-ts/decoration");
11
+ const generator_1 = require("./../views/generator.cjs");
11
12
  /**
12
13
  * @description Statement builder for CouchDB Mango queries
13
14
  * @summary Provides a fluent interface for building CouchDB Mango queries with type safety
@@ -31,6 +32,7 @@ const decoration_1 = require("@decaf-ts/decoration");
31
32
  class CouchDBStatement extends core_1.Statement {
32
33
  constructor(adapter) {
33
34
  super(adapter);
35
+ this.attributeTypeCache = new Map();
34
36
  }
35
37
  /**
36
38
  * @description Builds a CouchDB Mango query from the statement
@@ -90,6 +92,16 @@ class CouchDBStatement extends core_1.Statement {
90
92
  */
91
93
  build() {
92
94
  const log = this.log.for(this.build);
95
+ this.manualAggregation = undefined;
96
+ const aggregateInfo = this.buildAggregateInfo();
97
+ if (aggregateInfo) {
98
+ if (this.shouldUseManualAggregation()) {
99
+ this.manualAggregation = aggregateInfo;
100
+ }
101
+ else {
102
+ return this.createAggregateQuery(aggregateInfo);
103
+ }
104
+ }
93
105
  const selectors = {};
94
106
  selectors[constants_1.CouchDBKeys.TABLE] = {};
95
107
  selectors[constants_1.CouchDBKeys.TABLE] = decorator_validation_1.Model.tableName(this.fromSelector);
@@ -142,23 +154,26 @@ class CouchDBStatement extends core_1.Statement {
142
154
  });
143
155
  }
144
156
  }
145
- if (this.orderBySelector) {
157
+ if (this.orderBySelectors?.length) {
146
158
  query.sort = query.sort || [];
147
159
  query.selector = query.selector || {};
148
- const [selector, value] = this.orderBySelector;
149
- const rec = {};
150
- rec[selector] = value;
151
- query.sort.push(rec);
152
- if (!query.selector[selector]) {
153
- query.selector[selector] = {};
154
- query.selector[selector][constants_2.CouchDBOperator.BIGGER] =
155
- null;
160
+ for (const [selectorKey, direction] of this.orderBySelectors) {
161
+ const selector = selectorKey;
162
+ const rec = {};
163
+ rec[selector] = direction;
164
+ query.sort.push(rec);
165
+ if (!query.selector[selector]) {
166
+ query.selector[selector] = {};
167
+ query.selector[selector][constants_2.CouchDBOperator.BIGGER] =
168
+ null;
169
+ }
156
170
  }
157
171
  }
172
+ const hasManualAggregate = !!this.manualAggregation;
158
173
  if (this.limitSelector) {
159
174
  query.limit = this.limitSelector;
160
175
  }
161
- else {
176
+ else if (!hasManualAggregate) {
162
177
  log.warn(`No limit selector defined. Using default couchdb limit of ${constants_2.CouchDBQueryLimit}`);
163
178
  query.limit = constants_2.CouchDBQueryLimit;
164
179
  }
@@ -191,11 +206,24 @@ class CouchDBStatement extends core_1.Statement {
191
206
  */
192
207
  async raw(rawInput, ...args) {
193
208
  const { ctx } = this.logCtx(args, this.raw);
209
+ const aggregator = rawInput?.aggregateInfo;
210
+ if (rawInput?.aggregate && aggregator) {
211
+ return this.executeAggregate(aggregator, ctx);
212
+ }
194
213
  const results = await this.adapter.raw(rawInput, true, ctx);
195
214
  const pkAttr = decorator_validation_1.Model.pk(this.fromSelector);
196
215
  const type = decoration_1.Metadata.get(this.fromSelector, decoration_1.Metadata.key(db_decorators_1.DBKeys.ID, pkAttr))?.type;
216
+ const processed = results.map((r) => this.processRecord(r, pkAttr, type, ctx));
217
+ if (this.manualAggregation) {
218
+ const manualResult = this.executeManualAggregation(processed, this.manualAggregation, ctx);
219
+ this.manualAggregation = undefined;
220
+ return manualResult;
221
+ }
222
+ if (!this.selectSelector && this.groupBySelectors?.length) {
223
+ return this.groupSelectResults(processed);
224
+ }
197
225
  if (!this.selectSelector)
198
- return results.map((r) => this.processRecord(r, pkAttr, type, ctx));
226
+ return processed;
199
227
  return results;
200
228
  }
201
229
  /**
@@ -233,6 +261,400 @@ class CouchDBStatement extends core_1.Statement {
233
261
  *
234
262
  * Statement-->>Statement: Return query with selector
235
263
  */
264
+ buildAggregateInfo() {
265
+ if (!this.fromSelector)
266
+ return undefined;
267
+ if (this.avgSelector) {
268
+ const attribute = String(this.avgSelector);
269
+ const sumInfo = this.createAggregateDescriptor("sum", attribute);
270
+ if (!sumInfo)
271
+ throw this.missingDecorator("sum", attribute);
272
+ const countInfo = this.createAggregateDescriptor("count", attribute);
273
+ if (!countInfo)
274
+ throw this.missingDecorator("count", attribute);
275
+ return {
276
+ kind: "avg",
277
+ attribute,
278
+ sumDescriptor: sumInfo.descriptor,
279
+ countDescriptor: countInfo.descriptor,
280
+ };
281
+ }
282
+ if (typeof this.countDistinctSelector !== "undefined") {
283
+ const attribute = this.resolveSelectorAttribute(this.countDistinctSelector);
284
+ const info = this.createAggregateDescriptor("distinct", attribute);
285
+ if (!info)
286
+ throw this.missingDecorator("distinct", attribute);
287
+ info.countDistinct = true;
288
+ return info;
289
+ }
290
+ if (typeof this.countSelector !== "undefined") {
291
+ const attribute = this.resolveSelectorAttribute(this.countSelector);
292
+ const info = this.createAggregateDescriptor("count", attribute);
293
+ if (!info)
294
+ throw this.missingDecorator("count", attribute);
295
+ return info;
296
+ }
297
+ if (this.maxSelector) {
298
+ const attribute = this.resolveSelectorAttribute(this.maxSelector);
299
+ const info = this.createAggregateDescriptor("max", attribute);
300
+ if (!info)
301
+ throw this.missingDecorator("max", attribute);
302
+ return info;
303
+ }
304
+ if (this.minSelector) {
305
+ const attribute = this.resolveSelectorAttribute(this.minSelector);
306
+ const info = this.createAggregateDescriptor("min", attribute);
307
+ if (!info)
308
+ throw this.missingDecorator("min", attribute);
309
+ return info;
310
+ }
311
+ if (this.sumSelector) {
312
+ const attribute = this.resolveSelectorAttribute(this.sumSelector);
313
+ const info = this.createAggregateDescriptor("sum", attribute);
314
+ if (!info)
315
+ throw this.missingDecorator("sum", attribute);
316
+ return info;
317
+ }
318
+ if (this.distinctSelector) {
319
+ const attribute = this.resolveSelectorAttribute(this.distinctSelector);
320
+ const info = this.createAggregateDescriptor("distinct", attribute);
321
+ if (!info)
322
+ throw this.missingDecorator("distinct", attribute);
323
+ return info;
324
+ }
325
+ return undefined;
326
+ }
327
+ createAggregateDescriptor(kind, attribute) {
328
+ if (!this.fromSelector)
329
+ return undefined;
330
+ const metas = (0, generator_1.findViewMetadata)(this.fromSelector, kind, attribute);
331
+ if (!metas.length)
332
+ return undefined;
333
+ const meta = metas[0];
334
+ const tableName = decorator_validation_1.Model.tableName(this.fromSelector);
335
+ const viewName = (0, generator_1.generateViewName)(tableName, meta.attribute, kind, meta);
336
+ const ddoc = meta.ddoc || (0, generator_1.generateDesignDocName)(tableName, viewName);
337
+ const options = {
338
+ reduce: meta.reduce !== undefined ? true : !meta.returnDocs,
339
+ };
340
+ if (kind === "distinct" || kind === "groupBy")
341
+ options.group = true;
342
+ return {
343
+ kind,
344
+ meta,
345
+ descriptor: {
346
+ ddoc,
347
+ view: viewName,
348
+ options,
349
+ },
350
+ };
351
+ }
352
+ createAggregateQuery(info) {
353
+ return {
354
+ selector: {},
355
+ aggregate: true,
356
+ aggregateInfo: info,
357
+ };
358
+ }
359
+ shouldUseManualAggregation() {
360
+ return !!this.whereCondition;
361
+ }
362
+ async executeAggregate(info, ctx) {
363
+ if (!this.isViewAggregate(info)) {
364
+ return this.handleAverage(info, ctx);
365
+ }
366
+ const couchAdapter = this.getCouchAdapter();
367
+ const viewInfo = info;
368
+ const response = await couchAdapter.view(viewInfo.descriptor.ddoc, viewInfo.descriptor.view, viewInfo.descriptor.options, ctx);
369
+ return this.processViewResponse(info, response);
370
+ }
371
+ async handleAverage(info, ctx) {
372
+ if (info.kind !== "avg")
373
+ throw new core_1.QueryError("Average descriptor is not valid");
374
+ const [sumDesc, countDesc] = [info.sumDescriptor, info.countDescriptor];
375
+ const couchAdapter = this.getCouchAdapter();
376
+ const [sumResponse, countResponse] = await Promise.all([
377
+ couchAdapter.view(sumDesc.ddoc, sumDesc.view, sumDesc.options, ctx),
378
+ couchAdapter.view(countDesc.ddoc, countDesc.view, countDesc.options, ctx),
379
+ ]);
380
+ const sum = sumResponse.rows?.[0]?.value ?? 0;
381
+ const count = countResponse.rows?.[0]?.value ?? 0;
382
+ if (!count)
383
+ return 0;
384
+ return (sum / count);
385
+ }
386
+ executeManualAggregation(docs, info,
387
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
388
+ ctx) {
389
+ if (!this.fromSelector)
390
+ throw new core_1.QueryError("Manual aggregation requires a target model");
391
+ if (info.kind === "avg") {
392
+ return this.computeAverage(docs, info.attribute);
393
+ }
394
+ if (info.kind === "groupBy") {
395
+ return this.computeGroupBy(docs, info.meta.attribute);
396
+ }
397
+ const attribute = info.meta.attribute;
398
+ switch (info.kind) {
399
+ case "count": {
400
+ if (info.countDistinct) {
401
+ return this.computeDistinctCount(docs, attribute);
402
+ }
403
+ return this.computeCount(docs, attribute);
404
+ }
405
+ case "distinct":
406
+ if (info.countDistinct) {
407
+ return this.computeDistinctCount(docs, attribute);
408
+ }
409
+ return this.computeDistinctValues(docs, attribute);
410
+ case "sum":
411
+ return this.computeSum(docs, attribute);
412
+ case "min":
413
+ return this.computeMinMax(docs, attribute, "min");
414
+ case "max":
415
+ return this.computeMinMax(docs, attribute, "max");
416
+ default:
417
+ throw new core_1.QueryError(`Unsupported manual aggregation ${info.kind}`);
418
+ }
419
+ }
420
+ computeCount(docs, attribute) {
421
+ if (!attribute)
422
+ return docs.length;
423
+ const values = this.collectValues(docs, attribute);
424
+ return values.filter((value) => value !== undefined && value !== null)
425
+ .length;
426
+ }
427
+ computeDistinctCount(docs, attribute) {
428
+ const values = attribute
429
+ ? this.collectValues(docs, attribute).filter((value) => value !== undefined && value !== null)
430
+ : docs;
431
+ const seen = new Set();
432
+ values.forEach((value) => seen.add(JSON.stringify(value)));
433
+ return seen.size;
434
+ }
435
+ computeDistinctValues(docs, attribute) {
436
+ if (!attribute)
437
+ return [];
438
+ const values = this.collectValues(docs, attribute);
439
+ const seen = new Set();
440
+ const unique = [];
441
+ values.forEach((value) => {
442
+ const key = JSON.stringify(value);
443
+ if (!seen.has(key)) {
444
+ seen.add(key);
445
+ unique.push(value);
446
+ }
447
+ });
448
+ return unique;
449
+ }
450
+ computeSum(docs, attribute) {
451
+ if (!attribute)
452
+ return docs.length;
453
+ const values = this.collectValues(docs, attribute).filter((value) => value !== undefined && value !== null);
454
+ const sum = values.reduce((acc, value) => acc + this.toNumericValue(value, attribute, "SUM operation"), 0);
455
+ return sum;
456
+ }
457
+ computeAverage(docs, attribute) {
458
+ if (!attribute)
459
+ return 0;
460
+ const values = this.collectValues(docs, attribute).filter((value) => value !== undefined && value !== null);
461
+ if (!values.length)
462
+ return 0;
463
+ const sum = values.reduce((acc, value) => acc + this.toNumericValue(value, attribute, "AVG operation"), 0);
464
+ return (sum / values.length);
465
+ }
466
+ computeMinMax(docs, attribute, mode) {
467
+ if (!attribute)
468
+ return null;
469
+ const values = this.collectValues(docs, attribute).filter((value) => value !== undefined && value !== null);
470
+ let currentValue = null;
471
+ let currentComparable = null;
472
+ for (const value of values) {
473
+ const normalized = this.normalizeComparable(value);
474
+ if (normalized === null)
475
+ continue;
476
+ if (currentComparable === null) {
477
+ currentComparable = normalized;
478
+ currentValue = value;
479
+ continue;
480
+ }
481
+ if ((mode === "min" && normalized < currentComparable) ||
482
+ (mode === "max" && normalized > currentComparable)) {
483
+ currentComparable = normalized;
484
+ currentValue = value;
485
+ }
486
+ }
487
+ return currentValue;
488
+ }
489
+ computeGroupBy(docs, attribute) {
490
+ const grouped = {};
491
+ const values = this.collectValues(docs, attribute);
492
+ docs.forEach((doc, index) => {
493
+ const key = this.groupKey(values[index]);
494
+ if (!grouped[key])
495
+ grouped[key] = [];
496
+ grouped[key].push(doc);
497
+ });
498
+ return grouped;
499
+ }
500
+ groupSelectResults(docs) {
501
+ if (!this.groupBySelectors?.length)
502
+ return {};
503
+ const attribute = this.resolveSelectorAttribute(this.groupBySelectors[0]);
504
+ if (!attribute)
505
+ return {};
506
+ const grouped = {};
507
+ docs.forEach((doc) => {
508
+ const key = this.groupKey(this.convertValueByAttribute(attribute, doc[attribute]));
509
+ if (!grouped[key])
510
+ grouped[key] = [];
511
+ grouped[key].push(doc);
512
+ });
513
+ return grouped;
514
+ }
515
+ collectValues(docs, attribute) {
516
+ return docs.map((doc) => {
517
+ if (!doc || typeof doc !== "object")
518
+ return undefined;
519
+ return this.convertValueByAttribute(attribute, doc[attribute]);
520
+ });
521
+ }
522
+ convertValueByAttribute(attribute, value) {
523
+ if (!this.fromSelector)
524
+ return value;
525
+ const attributeType = this.getAttributeType(attribute);
526
+ if (attributeType === "date") {
527
+ if (value instanceof Date)
528
+ return value;
529
+ const parsed = new Date(value);
530
+ if (!Number.isNaN(parsed.getTime()))
531
+ return parsed;
532
+ }
533
+ if (typeof value === "string" && attribute.toLowerCase().includes("date")) {
534
+ const parsed = new Date(value);
535
+ if (!Number.isNaN(parsed.getTime()))
536
+ return parsed;
537
+ }
538
+ return value;
539
+ }
540
+ getAttributeType(attribute) {
541
+ if (!attribute || !this.fromSelector)
542
+ return undefined;
543
+ if (this.attributeTypeCache.has(attribute)) {
544
+ return this.attributeTypeCache.get(attribute);
545
+ }
546
+ const metaType = decoration_1.Metadata.type(this.fromSelector, attribute) ??
547
+ decoration_1.Metadata.getPropDesignTypes?.(this.fromSelector, attribute)
548
+ ?.designType;
549
+ const normalized = this.normalizeMetaType(metaType);
550
+ this.attributeTypeCache.set(attribute, normalized);
551
+ return normalized;
552
+ }
553
+ normalizeMetaType(metaType) {
554
+ if (!metaType)
555
+ return undefined;
556
+ if (typeof metaType === "string")
557
+ return metaType.toLowerCase();
558
+ if (typeof metaType === "function" && metaType.name)
559
+ return metaType.name.toLowerCase();
560
+ return undefined;
561
+ }
562
+ normalizeComparable(value) {
563
+ if (typeof value === "number")
564
+ return value;
565
+ if (typeof value === "bigint")
566
+ return Number(value);
567
+ if (value instanceof Date)
568
+ return value.getTime();
569
+ if (typeof value === "string" && !isNaN(Number(value)))
570
+ return Number(value);
571
+ return null;
572
+ }
573
+ groupKey(value) {
574
+ if (value === undefined)
575
+ return "undefined";
576
+ if (value === null)
577
+ return "null";
578
+ if (typeof value === "symbol")
579
+ return value.toString();
580
+ if (typeof value === "object") {
581
+ try {
582
+ return JSON.stringify(value);
583
+ }
584
+ catch {
585
+ return String(value);
586
+ }
587
+ }
588
+ return String(value);
589
+ }
590
+ toNumericValue(value, field, context) {
591
+ if (typeof value === "number")
592
+ return value;
593
+ if (typeof value === "bigint")
594
+ return Number(value);
595
+ if (value instanceof Date)
596
+ return value.getTime();
597
+ if (typeof value === "string" && !isNaN(Number(value)))
598
+ return Number(value);
599
+ throw new core_1.QueryError(`${context} on "${field}" requires numeric values, but got ${typeof value}`);
600
+ }
601
+ convertAggregateValue(attribute, value) {
602
+ if (!attribute)
603
+ return value;
604
+ return this.convertValueByAttribute(attribute, value);
605
+ }
606
+ resolveSelectorAttribute(selector) {
607
+ if (selector == null)
608
+ return undefined;
609
+ return String(selector);
610
+ }
611
+ missingDecorator(kind, attribute) {
612
+ const decorator = this.decoratorForKind(kind);
613
+ const table = this.fromSelector
614
+ ? decorator_validation_1.Model.tableName(this.fromSelector)
615
+ : "<unknown table>";
616
+ const attributeDesc = attribute ? ` on "${attribute}"` : "";
617
+ return new core_1.UnsupportedError(`${decorator} decorator is required for CouchDB ${kind} aggregation${attributeDesc} on table "${table}".`);
618
+ }
619
+ decoratorForKind(kind) {
620
+ const map = {
621
+ count: "@count",
622
+ sum: "@sum",
623
+ min: "@min",
624
+ max: "@max",
625
+ distinct: "@distinct",
626
+ groupBy: "@groupBy",
627
+ view: "@view",
628
+ avg: "@avg",
629
+ };
630
+ return map[kind] || `@${kind}`;
631
+ }
632
+ processViewResponse(info, response) {
633
+ if (info.kind === "avg")
634
+ throw new core_1.QueryError("Average results should be handled before processing rows");
635
+ const rows = response.rows || [];
636
+ const viewInfo = info;
637
+ const meta = viewInfo.meta;
638
+ if (viewInfo.countDistinct) {
639
+ return (rows.length || 0);
640
+ }
641
+ if (viewInfo.kind === "distinct" || viewInfo.kind === "groupBy") {
642
+ return rows.map((row) => this.convertAggregateValue(viewInfo.meta.attribute, row.key ?? row.value));
643
+ }
644
+ if (meta.returnDocs) {
645
+ return rows.map((row) => row.value ?? row.doc ?? row);
646
+ }
647
+ if (!rows.length) {
648
+ return (viewInfo.kind === "count" ? 0 : null);
649
+ }
650
+ return this.convertAggregateValue(viewInfo.meta.attribute, rows[0].value ?? rows[0].key ?? null);
651
+ }
652
+ isViewAggregate(info) {
653
+ return info.kind !== "avg";
654
+ }
655
+ getCouchAdapter() {
656
+ return this.adapter;
657
+ }
236
658
  parseCondition(condition) {
237
659
  /**
238
660
  * @description Merges two selectors with a logical operator
@@ -248,6 +670,17 @@ class CouchDBStatement extends core_1.Statement {
248
670
  return result;
249
671
  }
250
672
  const { attr1, operator, comparison } = condition;
673
+ if (operator === core_1.Operator.BETWEEN) {
674
+ const attr = attr1;
675
+ if (!Array.isArray(comparison) || comparison.length !== 2)
676
+ throw new core_1.QueryError("BETWEEN operator requires [min, max] comparison");
677
+ const [min, max] = comparison;
678
+ const opBetween = {};
679
+ opBetween[attr] = {};
680
+ opBetween[attr][(0, translate_1.translateOperators)(core_1.Operator.BIGGER_EQ)] = min;
681
+ opBetween[attr][(0, translate_1.translateOperators)(core_1.Operator.SMALLER_EQ)] = max;
682
+ return { selector: opBetween };
683
+ }
251
684
  let op = {};
252
685
  if ([core_1.GroupOperator.AND, core_1.GroupOperator.OR, core_1.Operator.NOT].indexOf(operator) === -1) {
253
686
  op[attr1] = {};
@@ -1,8 +1,7 @@
1
- import { Condition, Statement } from "@decaf-ts/core";
1
+ import { Adapter, Condition, Statement } from "@decaf-ts/core";
2
2
  import { MangoQuery } from "../types";
3
3
  import { Model } from "@decaf-ts/decorator-validation";
4
4
  import type { Context } from "@decaf-ts/db-decorators";
5
- import { Adapter } from "@decaf-ts/core";
6
5
  /**
7
6
  * @description Statement builder for CouchDB Mango queries
8
7
  * @summary Provides a fluent interface for building CouchDB Mango queries with type safety
@@ -24,6 +23,8 @@ import { Adapter } from "@decaf-ts/core";
24
23
  * .execute();
25
24
  */
26
25
  export declare class CouchDBStatement<M extends Model, A extends Adapter<any, any, MangoQuery, any>, R> extends Statement<M, A, R, MangoQuery> {
26
+ private manualAggregation?;
27
+ private attributeTypeCache;
27
28
  constructor(adapter: A);
28
29
  /**
29
30
  * @description Builds a CouchDB Mango query from the statement
@@ -134,5 +135,34 @@ export declare class CouchDBStatement<M extends Model, A extends Adapter<any, an
134
135
  *
135
136
  * Statement-->>Statement: Return query with selector
136
137
  */
138
+ private buildAggregateInfo;
139
+ private createAggregateDescriptor;
140
+ private createAggregateQuery;
141
+ private shouldUseManualAggregation;
142
+ private executeAggregate;
143
+ private handleAverage;
144
+ private executeManualAggregation;
145
+ private computeCount;
146
+ private computeDistinctCount;
147
+ private computeDistinctValues;
148
+ private computeSum;
149
+ private computeAverage;
150
+ private computeMinMax;
151
+ private computeGroupBy;
152
+ private groupSelectResults;
153
+ private collectValues;
154
+ private convertValueByAttribute;
155
+ private getAttributeType;
156
+ private normalizeMetaType;
157
+ private normalizeComparable;
158
+ private groupKey;
159
+ private toNumericValue;
160
+ private convertAggregateValue;
161
+ private resolveSelectorAttribute;
162
+ private missingDecorator;
163
+ private decoratorForKind;
164
+ private processViewResponse;
165
+ private isViewAggregate;
166
+ private getCouchAdapter;
137
167
  protected parseCondition(condition: Condition<M>): MangoQuery;
138
168
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Statement.js","sourceRoot":"","sources":["../../src/query/Statement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Statement.js","sourceRoot":"","sources":["../../src/query/Statement.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -153,3 +153,14 @@ export interface MangoQuery {
153
153
  * Optional, default: false. */
154
154
  execution_stats?: boolean;
155
155
  }
156
+ export interface ViewRow<D = any> {
157
+ id?: string;
158
+ key?: any;
159
+ value?: any;
160
+ doc?: D;
161
+ }
162
+ export interface ViewResponse<D = any> {
163
+ total_rows?: number;
164
+ offset?: number;
165
+ rows: ViewRow<D>[];
166
+ }