@decaf-ts/core 0.8.24 → 0.8.26

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 (170) hide show
  1. package/README.md +1 -1
  2. package/dist/core.cjs +1 -1
  3. package/dist/core.cjs.map +1 -1
  4. package/dist/core.js +1 -1
  5. package/dist/core.js.map +1 -1
  6. package/lib/esm/identity/index.d.ts +5 -0
  7. package/lib/esm/identity/index.js +5 -0
  8. package/lib/esm/identity/index.js.map +1 -1
  9. package/lib/esm/index.d.ts +1 -1
  10. package/lib/esm/index.js +1 -1
  11. package/lib/esm/interfaces/index.d.ts +5 -0
  12. package/lib/esm/interfaces/index.js +5 -0
  13. package/lib/esm/interfaces/index.js.map +1 -1
  14. package/lib/esm/migrations/index.d.ts +5 -0
  15. package/lib/esm/migrations/index.js +5 -0
  16. package/lib/esm/migrations/index.js.map +1 -1
  17. package/lib/esm/model/decorators.d.ts +3 -0
  18. package/lib/esm/model/decorators.js.map +1 -1
  19. package/lib/esm/model/index.d.ts +5 -0
  20. package/lib/esm/model/index.js +5 -0
  21. package/lib/esm/model/index.js.map +1 -1
  22. package/lib/esm/overrides/index.d.ts +5 -0
  23. package/lib/esm/overrides/index.js +5 -0
  24. package/lib/esm/overrides/index.js.map +1 -1
  25. package/lib/esm/persistence/index.d.ts +5 -0
  26. package/lib/esm/persistence/index.js +5 -0
  27. package/lib/esm/persistence/index.js.map +1 -1
  28. package/lib/esm/query/Condition.js +21 -0
  29. package/lib/esm/query/Condition.js.map +1 -1
  30. package/lib/esm/query/Statement.d.ts +14 -5
  31. package/lib/esm/query/Statement.js +92 -8
  32. package/lib/esm/query/Statement.js.map +1 -1
  33. package/lib/esm/query/constants.d.ts +2 -0
  34. package/lib/esm/query/constants.js +2 -1
  35. package/lib/esm/query/constants.js.map +1 -1
  36. package/lib/esm/query/index.d.ts +5 -0
  37. package/lib/esm/query/index.js +5 -0
  38. package/lib/esm/query/index.js.map +1 -1
  39. package/lib/esm/query/options.d.ts +101 -7
  40. package/lib/esm/ram/RamAdapter.d.ts +13 -5
  41. package/lib/esm/ram/RamAdapter.js +213 -26
  42. package/lib/esm/ram/RamAdapter.js.map +1 -1
  43. package/lib/esm/ram/RamStatement.d.ts +7 -0
  44. package/lib/esm/ram/RamStatement.js +117 -3
  45. package/lib/esm/ram/RamStatement.js.map +1 -1
  46. package/lib/esm/ram/index.js +5 -0
  47. package/lib/esm/ram/index.js.map +1 -1
  48. package/lib/esm/ram/types.d.ts +7 -16
  49. package/lib/esm/repository/Repository.d.ts +49 -1
  50. package/lib/esm/repository/Repository.js +78 -0
  51. package/lib/esm/repository/Repository.js.map +1 -1
  52. package/lib/esm/repository/index.d.ts +5 -0
  53. package/lib/esm/repository/index.js +5 -0
  54. package/lib/esm/repository/index.js.map +1 -1
  55. package/lib/esm/services/index.d.ts +5 -0
  56. package/lib/esm/services/index.js +5 -0
  57. package/lib/esm/services/index.js.map +1 -1
  58. package/lib/esm/tasks/TaskContext.d.ts +9 -0
  59. package/lib/esm/tasks/TaskContext.js +39 -0
  60. package/lib/esm/tasks/TaskContext.js.map +1 -1
  61. package/lib/esm/tasks/TaskEngine.d.ts +14 -0
  62. package/lib/esm/tasks/TaskEngine.js +99 -2
  63. package/lib/esm/tasks/TaskEngine.js.map +1 -1
  64. package/lib/esm/tasks/TaskErrors.d.ts +20 -0
  65. package/lib/esm/tasks/TaskErrors.js +42 -0
  66. package/lib/esm/tasks/TaskErrors.js.map +1 -0
  67. package/lib/esm/tasks/TaskStateChangeError.d.ts +11 -0
  68. package/lib/esm/tasks/TaskStateChangeError.js +9 -0
  69. package/lib/esm/tasks/TaskStateChangeError.js.map +1 -0
  70. package/lib/esm/tasks/TaskTracker.d.ts +7 -5
  71. package/lib/esm/tasks/TaskTracker.js +72 -36
  72. package/lib/esm/tasks/TaskTracker.js.map +1 -1
  73. package/lib/esm/tasks/constants.d.ts +1 -0
  74. package/lib/esm/tasks/constants.js +1 -0
  75. package/lib/esm/tasks/constants.js.map +1 -1
  76. package/lib/esm/tasks/index.d.ts +6 -0
  77. package/lib/esm/tasks/index.js +6 -0
  78. package/lib/esm/tasks/index.js.map +1 -1
  79. package/lib/esm/tasks/logging.js +4 -1
  80. package/lib/esm/tasks/logging.js.map +1 -1
  81. package/lib/esm/tasks/models/TaskModel.d.ts +1 -0
  82. package/lib/esm/tasks/models/TaskModel.js +5 -0
  83. package/lib/esm/tasks/models/TaskModel.js.map +1 -1
  84. package/lib/esm/tasks/types.d.ts +2 -0
  85. package/lib/esm/utils/index.d.ts +5 -0
  86. package/lib/esm/utils/index.js +5 -0
  87. package/lib/esm/utils/index.js.map +1 -1
  88. package/lib/identity/index.cjs +5 -0
  89. package/lib/identity/index.d.ts +5 -0
  90. package/lib/identity/index.js.map +1 -1
  91. package/lib/index.cjs +1 -1
  92. package/lib/index.d.ts +1 -1
  93. package/lib/interfaces/index.cjs +5 -0
  94. package/lib/interfaces/index.d.ts +5 -0
  95. package/lib/interfaces/index.js.map +1 -1
  96. package/lib/migrations/index.cjs +5 -0
  97. package/lib/migrations/index.d.ts +5 -0
  98. package/lib/migrations/index.js.map +1 -1
  99. package/lib/model/decorators.d.ts +3 -0
  100. package/lib/model/decorators.js.map +1 -1
  101. package/lib/model/index.cjs +5 -0
  102. package/lib/model/index.d.ts +5 -0
  103. package/lib/model/index.js.map +1 -1
  104. package/lib/overrides/index.cjs +5 -0
  105. package/lib/overrides/index.d.ts +5 -0
  106. package/lib/overrides/index.js.map +1 -1
  107. package/lib/persistence/index.cjs +5 -0
  108. package/lib/persistence/index.d.ts +5 -0
  109. package/lib/persistence/index.js.map +1 -1
  110. package/lib/query/Condition.cjs +21 -0
  111. package/lib/query/Condition.js.map +1 -1
  112. package/lib/query/Statement.cjs +92 -8
  113. package/lib/query/Statement.d.ts +14 -5
  114. package/lib/query/Statement.js.map +1 -1
  115. package/lib/query/constants.cjs +2 -1
  116. package/lib/query/constants.d.ts +2 -0
  117. package/lib/query/constants.js.map +1 -1
  118. package/lib/query/index.cjs +5 -0
  119. package/lib/query/index.d.ts +5 -0
  120. package/lib/query/index.js.map +1 -1
  121. package/lib/query/options.d.ts +101 -7
  122. package/lib/ram/RamAdapter.cjs +213 -26
  123. package/lib/ram/RamAdapter.d.ts +13 -5
  124. package/lib/ram/RamAdapter.js.map +1 -1
  125. package/lib/ram/RamStatement.cjs +116 -2
  126. package/lib/ram/RamStatement.d.ts +7 -0
  127. package/lib/ram/RamStatement.js.map +1 -1
  128. package/lib/ram/index.cjs +5 -0
  129. package/lib/ram/index.js.map +1 -1
  130. package/lib/ram/types.d.ts +7 -16
  131. package/lib/repository/Repository.cjs +78 -0
  132. package/lib/repository/Repository.d.ts +49 -1
  133. package/lib/repository/Repository.js.map +1 -1
  134. package/lib/repository/index.cjs +5 -0
  135. package/lib/repository/index.d.ts +5 -0
  136. package/lib/repository/index.js.map +1 -1
  137. package/lib/services/index.cjs +5 -0
  138. package/lib/services/index.d.ts +5 -0
  139. package/lib/services/index.js.map +1 -1
  140. package/lib/tasks/TaskContext.cjs +39 -0
  141. package/lib/tasks/TaskContext.d.ts +9 -0
  142. package/lib/tasks/TaskContext.js.map +1 -1
  143. package/lib/tasks/TaskEngine.cjs +99 -2
  144. package/lib/tasks/TaskEngine.d.ts +14 -0
  145. package/lib/tasks/TaskEngine.js.map +1 -1
  146. package/lib/tasks/TaskErrors.cjs +50 -0
  147. package/lib/tasks/TaskErrors.d.ts +20 -0
  148. package/lib/tasks/TaskErrors.js.map +1 -0
  149. package/lib/tasks/TaskStateChangeError.cjs +13 -0
  150. package/lib/tasks/TaskStateChangeError.d.ts +11 -0
  151. package/lib/tasks/TaskStateChangeError.js.map +1 -0
  152. package/lib/tasks/TaskTracker.cjs +72 -36
  153. package/lib/tasks/TaskTracker.d.ts +7 -5
  154. package/lib/tasks/TaskTracker.js.map +1 -1
  155. package/lib/tasks/constants.cjs +1 -0
  156. package/lib/tasks/constants.d.ts +1 -0
  157. package/lib/tasks/constants.js.map +1 -1
  158. package/lib/tasks/index.cjs +6 -0
  159. package/lib/tasks/index.d.ts +6 -0
  160. package/lib/tasks/index.js.map +1 -1
  161. package/lib/tasks/logging.cjs +4 -1
  162. package/lib/tasks/logging.js.map +1 -1
  163. package/lib/tasks/models/TaskModel.cjs +5 -0
  164. package/lib/tasks/models/TaskModel.d.ts +1 -0
  165. package/lib/tasks/models/TaskModel.js.map +1 -1
  166. package/lib/tasks/types.d.ts +2 -0
  167. package/lib/utils/index.cjs +5 -0
  168. package/lib/utils/index.d.ts +5 -0
  169. package/lib/utils/index.js.map +1 -1
  170. package/package.json +1 -1
@@ -1,3 +1,8 @@
1
+ /**
2
+ * @description Exports for the overrides module.
3
+ * @summary This file exports all the necessary components for the overrides functionality, including Metadata, injectables, Model, and overrides.
4
+ * @module core/overrides
5
+ */
1
6
  export * from "./Metadata";
2
7
  export * from "./injectables";
3
8
  export * from "./Model";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/overrides/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA2B;AAC3B,oDAA8B;AAC9B,8CAAwB;AACxB,kDAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/overrides/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,iDAA2B;AAC3B,oDAA8B;AAC9B,8CAAwB;AACxB,kDAA4B"}
@@ -14,6 +14,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ /**
18
+ * @description Exports for the persistence module.
19
+ * @summary This file exports all the necessary components for the persistence functionality, including Dispatch, constants, and more.
20
+ * @module core/persistence
21
+ */
17
22
  // purposely in first place
18
23
  __exportStar(require("./Dispatch.cjs"), exports);
19
24
  __exportStar(require("./constants.cjs"), exports);
@@ -1,3 +1,8 @@
1
+ /**
2
+ * @description Exports for the persistence module.
3
+ * @summary This file exports all the necessary components for the persistence functionality, including Dispatch, constants, and more.
4
+ * @module core/persistence
5
+ */
1
6
  export * from "./Dispatch";
2
7
  export * from "./constants";
3
8
  export * from "./Context";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/persistence/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2BAA2B;AAC3B,iDAA2B;AAC3B,kDAA4B;AAC5B,gDAA0B;AAC1B,mDAA6B;AAC7B,+CAAyB;AACzB,mDAA6B;AAC7B,sDAAgC;AAChC,wDAAkC;AAClC,iDAA2B;AAC3B,8CAAwB;AACxB,gDAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/persistence/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,2BAA2B;AAC3B,iDAA2B;AAC3B,kDAA4B;AAC5B,gDAA0B;AAC1B,mDAA6B;AAC7B,+CAAyB;AACzB,mDAA6B;AAC7B,sDAAgC;AAChC,wDAAkC;AAClC,iDAA2B;AAC3B,8CAAwB;AACxB,gDAA0B"}
@@ -108,6 +108,17 @@ class Condition extends decorator_validation_1.Model {
108
108
  condition: invalidOpMessage,
109
109
  },
110
110
  };
111
+ // Validate BETWEEN operator has array with 2 values
112
+ if (this.operator === constants_1.Operator.BETWEEN) {
113
+ if (!Array.isArray(this.comparison) ||
114
+ this.comparison.length !== 2) {
115
+ return {
116
+ comparison: {
117
+ condition: "BETWEEN operator requires an array with exactly 2 values [min, max]",
118
+ },
119
+ };
120
+ }
121
+ }
111
122
  }
112
123
  if (this.attr1 instanceof Condition) {
113
124
  if (!(this.comparison instanceof Condition) &&
@@ -293,6 +304,16 @@ class Condition extends decorator_validation_1.Model {
293
304
  regexp(val) {
294
305
  return this.setOp(constants_1.Operator.REGEXP, new RegExp(val).source);
295
306
  }
307
+ /**
308
+ * @description Creates a between condition
309
+ * @summary Builds a condition that checks if the attribute value is between min and max (inclusive)
310
+ * @param {any} min - The minimum value (inclusive)
311
+ * @param {any} max - The maximum value (inclusive)
312
+ * @return {Condition<M>} A new condition representing the between comparison
313
+ */
314
+ between(min, max) {
315
+ return this.setOp(constants_1.Operator.BETWEEN, [min, max]);
316
+ }
296
317
  /**
297
318
  * @description Sets the operator and comparison value for the condition
298
319
  * @summary Private method that configures the condition with the specified operator and value
@@ -1 +1 @@
1
- {"version":3,"file":"Condition.js","sourceRoot":"","sources":["../../src/query/Condition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Condition.js","sourceRoot":"","sources":["../../src/query/Condition.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
- var _a, _b, _c, _d;
11
+ var _a, _b, _c, _d, _e, _f, _g;
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.Statement = void 0;
14
14
  const decorator_validation_1 = require("@decaf-ts/decorator-validation");
@@ -79,6 +79,7 @@ class Statement extends ContextualLoggedClass_1.ContextualLoggedClass {
79
79
  super();
80
80
  this.adapter = adapter;
81
81
  this.overrides = overrides;
82
+ this._inCountMode = false;
82
83
  [this.execute, this.paginate].forEach((m) => {
83
84
  (0, db_decorators_1.prefixMethod)(this, m, (...args) => {
84
85
  return this.executionPrefix(m, ...args);
@@ -111,6 +112,18 @@ class Statement extends ContextualLoggedClass_1.ContextualLoggedClass {
111
112
  return this;
112
113
  }
113
114
  distinct(selector) {
115
+ // When chained after count(), make it a count distinct
116
+ if (this._inCountMode) {
117
+ // Use the count selector as the field to count distinct on
118
+ this.countDistinctSelector = this.countSelector;
119
+ this.countSelector = undefined;
120
+ this._inCountMode = false;
121
+ return this;
122
+ }
123
+ // Standalone distinct requires a selector
124
+ if (!selector) {
125
+ throw new errors_2.QueryError("distinct() requires a selector when not chained after count()");
126
+ }
114
127
  this.distinctSelector = selector;
115
128
  return this;
116
129
  }
@@ -122,8 +135,17 @@ class Statement extends ContextualLoggedClass_1.ContextualLoggedClass {
122
135
  this.minSelector = selector;
123
136
  return this;
124
137
  }
138
+ sum(selector) {
139
+ this.sumSelector = selector;
140
+ return this;
141
+ }
142
+ avg(selector) {
143
+ this.avgSelector = selector;
144
+ return this;
145
+ }
125
146
  count(selector) {
126
- this.countSelector = selector;
147
+ this.countSelector = selector ?? null;
148
+ this._inCountMode = true;
127
149
  return this;
128
150
  }
129
151
  from(selector) {
@@ -189,19 +211,47 @@ class Statement extends ContextualLoggedClass_1.ContextualLoggedClass {
189
211
  return this;
190
212
  }
191
213
  async execute(...args) {
192
- const { log, ctxArgs } = this.logCtx(args, this.execute);
214
+ const { log, ctx, ctxArgs } = this.logCtx(args, this.execute);
193
215
  try {
194
216
  if (this.prepared)
195
217
  return this.executePrepared(...args);
196
218
  log.silly(`Building raw statement...`);
197
219
  const query = this.build();
198
220
  log.silly(`executing raw statement`);
199
- return (await this.raw(query, ...ctxArgs));
221
+ const results = (await this.raw(query, ...ctxArgs));
222
+ if (this.hasAggregation()) {
223
+ return results;
224
+ }
225
+ if (!this.selectSelector) {
226
+ const pkAttr = decorator_validation_1.Model.pk(this.fromSelector);
227
+ const processor = function recordProcessor(r) {
228
+ const id = r[pkAttr];
229
+ return this.adapter.revert(r, this.fromSelector, id, undefined, ctx);
230
+ }.bind(this);
231
+ if (this.groupBySelectors?.length) {
232
+ return this.revertGroupedResults(results, processor);
233
+ }
234
+ if (Array.isArray(results))
235
+ return results.map(processor);
236
+ return processor(results);
237
+ }
238
+ return results;
200
239
  }
201
240
  catch (e) {
202
241
  throw new errors_2.QueryError(e);
203
242
  }
204
243
  }
244
+ revertGroupedResults(value, processor) {
245
+ if (Array.isArray(value))
246
+ return value.map(processor);
247
+ if (value && typeof value === "object") {
248
+ return Object.entries(value).reduce((acc, [key, val]) => {
249
+ acc[key] = this.revertGroupedResults(val, processor);
250
+ return acc;
251
+ }, {});
252
+ }
253
+ return value;
254
+ }
205
255
  async executePrepared(...argz) {
206
256
  const repo = Repository_1.Repository.forModel(this.fromSelector, this.adapter.alias);
207
257
  const { method, args, params } = this.prepared;
@@ -213,6 +263,9 @@ class Statement extends ContextualLoggedClass_1.ContextualLoggedClass {
213
263
  if (!allowRawStatements)
214
264
  throw new errors_1.UnsupportedError("Raw statements are not allowed in the current configuration");
215
265
  const results = await this.adapter.raw(rawInput, true, ...ctxArgs);
266
+ if (this.hasAggregation()) {
267
+ return results;
268
+ }
216
269
  if (!this.selectSelector) {
217
270
  return results;
218
271
  }
@@ -289,12 +342,18 @@ class Statement extends ContextualLoggedClass_1.ContextualLoggedClass {
289
342
  return undefined;
290
343
  if (this.groupBySelectors && this.groupBySelectors.length)
291
344
  return undefined;
292
- if (this.countSelector)
345
+ if (typeof this.countSelector !== "undefined")
346
+ return undefined;
347
+ if (this.countDistinctSelector)
293
348
  return undefined;
294
349
  if (this.maxSelector)
295
350
  return undefined;
296
351
  if (this.minSelector)
297
352
  return undefined;
353
+ if (this.sumSelector)
354
+ return undefined;
355
+ if (this.avgSelector)
356
+ return undefined;
298
357
  let attrFromWhere;
299
358
  if (this.whereCondition) {
300
359
  // if (this.orderBySelector) return undefined;
@@ -390,9 +449,22 @@ class Statement extends ContextualLoggedClass_1.ContextualLoggedClass {
390
449
  isSimpleQuery() {
391
450
  return !((this.selectSelector && this.selectSelector.length) ||
392
451
  (this.groupBySelectors && this.groupBySelectors.length) ||
393
- this.countSelector ||
452
+ typeof this.countSelector !== "undefined" ||
453
+ this.countDistinctSelector ||
394
454
  this.maxSelector ||
395
- this.minSelector);
455
+ this.minSelector ||
456
+ this.sumSelector ||
457
+ this.avgSelector);
458
+ }
459
+ hasAggregation() {
460
+ return (typeof this.countSelector !== "undefined" ||
461
+ typeof this.countDistinctSelector !== "undefined" ||
462
+ typeof this.maxSelector !== "undefined" ||
463
+ typeof this.minSelector !== "undefined" ||
464
+ typeof this.sumSelector !== "undefined" ||
465
+ typeof this.avgSelector !== "undefined" ||
466
+ typeof this.distinctSelector !== "undefined" ||
467
+ ((this.groupBySelectors?.length || 0) > 0));
396
468
  }
397
469
  /**
398
470
  * @description Creates a paginator for the query
@@ -445,6 +517,18 @@ __decorate([
445
517
  __metadata("design:type", Function),
446
518
  __metadata("design:paramtypes", [typeof (_d = typeof S !== "undefined" && S) === "function" ? _d : Object]),
447
519
  __metadata("design:returntype", Object)
520
+ ], Statement.prototype, "sum", null);
521
+ __decorate([
522
+ (0, logging_1.final)(),
523
+ __metadata("design:type", Function),
524
+ __metadata("design:paramtypes", [typeof (_e = typeof S !== "undefined" && S) === "function" ? _e : Object]),
525
+ __metadata("design:returntype", Object)
526
+ ], Statement.prototype, "avg", null);
527
+ __decorate([
528
+ (0, logging_1.final)(),
529
+ __metadata("design:type", Function),
530
+ __metadata("design:paramtypes", [typeof (_f = typeof S !== "undefined" && S) === "function" ? _f : Object]),
531
+ __metadata("design:returntype", Object)
448
532
  ], Statement.prototype, "count", null);
449
533
  __decorate([
450
534
  (0, logging_1.final)(),
@@ -473,7 +557,7 @@ __decorate([
473
557
  __decorate([
474
558
  (0, logging_1.final)(),
475
559
  __metadata("design:type", Function),
476
- __metadata("design:paramtypes", [Object]),
560
+ __metadata("design:paramtypes", [typeof (_g = typeof Key !== "undefined" && Key) === "function" ? _g : Object]),
477
561
  __metadata("design:returntype", Object)
478
562
  ], Statement.prototype, "groupBy", null);
479
563
  __decorate([
@@ -3,7 +3,7 @@ import type { Executor, RawExecutor } from "../interfaces";
3
3
  import type { FromSelector, GroupBySelector, OrderBySelector, OrderDirectionInput, SelectSelector } from "./selectors";
4
4
  import { Condition } from "./Condition";
5
5
  import { Logger } from "@decaf-ts/logging";
6
- import type { CountOption, DistinctOption, GroupByResult, MaxOption, MinOption, OffsetOption, OrderAndGroupOption, OrderByResult, OrderByThenByOption, PreparableStatementExecutor, SelectOption, StatementExecutor, WhereOption } from "./options";
6
+ import type { CountDistinctOption, CountOption, DistinctOption, GroupByResult, MaxOption, MinOption, OffsetOption, OrderAndGroupOption, OrderByResult, OrderByThenByOption, PreparableStatementExecutor, SelectOption, StatementExecutor, SumOption, AvgOption, WhereOption } from "./options";
7
7
  import { Paginatable } from "../interfaces/Paginatable";
8
8
  import { Paginator } from "./Paginator";
9
9
  import { Adapter } from "../persistence/Adapter";
@@ -69,7 +69,11 @@ export declare abstract class Statement<M extends Model, A extends Adapter<any,
69
69
  protected distinctSelector?: SelectSelector<M>;
70
70
  protected maxSelector?: SelectSelector<M>;
71
71
  protected minSelector?: SelectSelector<M>;
72
- protected countSelector?: SelectSelector<M>;
72
+ protected countSelector?: SelectSelector<M> | null;
73
+ protected countDistinctSelector?: SelectSelector<M> | null;
74
+ protected sumSelector?: SelectSelector<M>;
75
+ protected avgSelector?: SelectSelector<M>;
76
+ private _inCountMode;
73
77
  protected fromSelector: Constructor<M>;
74
78
  protected whereCondition?: Condition<M>;
75
79
  protected orderBySelectors?: OrderBySelector<M>[];
@@ -83,28 +87,33 @@ export declare abstract class Statement<M extends Model, A extends Adapter<any,
83
87
  select<S extends readonly SelectSelector<M>[]>(): SelectOption<M, M[]>;
84
88
  select<S extends readonly SelectSelector<M>[]>(selector: readonly [...S]): SelectOption<M, Pick<M, S[number]>[]>;
85
89
  distinct<S extends SelectSelector<M>>(selector: S): DistinctOption<M, M[S][]>;
90
+ distinct(): CountDistinctOption<M>;
86
91
  max<S extends SelectSelector<M>>(selector: S): MaxOption<M, M[S]>;
87
92
  min<S extends SelectSelector<M>>(selector: S): MinOption<M, M[S]>;
88
- count<S extends SelectSelector<M>>(selector?: S): CountOption<M, number>;
93
+ sum<S extends SelectSelector<M>>(selector: S): SumOption<M, number>;
94
+ avg<S extends SelectSelector<M>>(selector: S): AvgOption<M, number>;
95
+ count<S extends SelectSelector<M>>(selector?: S): CountOption<M>;
89
96
  from(selector: FromSelector<M>): WhereOption<M, R>;
90
97
  where(condition: Condition<M>): OrderAndGroupOption<M, R>;
91
98
  orderBy(selector: OrderBySelector<M>): OrderByResult<M, R>;
92
99
  orderBy(attribute: keyof M, direction: OrderDirectionInput): OrderByResult<M, R>;
93
- thenBy(selector: GroupBySelector<M>): GroupByResult<M, R>;
100
+ thenBy(selector: GroupBySelector<M>): GroupByResult<M>;
94
101
  thenBy(selector: OrderBySelector<M>): OrderByThenByOption<M, R>;
95
102
  thenBy(attribute: keyof M, direction: OrderDirectionInput): OrderByThenByOption<M, R>;
96
103
  private normalizeOrderCriterion;
97
104
  private normalizeOrderDirection;
98
- groupBy(selector: GroupBySelector<M>): GroupByResult<M, R>;
105
+ groupBy<Key extends GroupBySelector<M>>(selector: Key): GroupByResult<M, [Key]>;
99
106
  limit(value: number): OffsetOption<M, R>;
100
107
  offset(value: number): PreparableStatementExecutor<M, R>;
101
108
  execute(...args: MaybeContextualArg<ContextOf<A>>): Promise<R>;
109
+ private revertGroupedResults;
102
110
  protected executePrepared(...argz: ContextualArgs<ContextOf<A>>): Promise<R>;
103
111
  raw<R>(rawInput: Q, ...args: ContextualArgs<ContextOf<A>>): Promise<R>;
104
112
  protected prepareCondition(condition: Condition<any>, ctx: ContextOf<A>): PreparedStatement<any>;
105
113
  protected squash(ctx: ContextOf<A>): PreparedStatement<any> | undefined;
106
114
  prepare(ctx?: ContextOf<A>): Promise<StatementExecutor<M, R>>;
107
115
  protected isSimpleQuery(): boolean;
116
+ protected hasAggregation(): boolean;
108
117
  protected abstract build(): Q;
109
118
  protected abstract parseCondition(condition: Condition<M>, ...args: any[]): Q;
110
119
  /**
@@ -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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"}
@@ -23,7 +23,8 @@ var Operator;
23
23
  Operator["SMALLER"] = "SMALLER";
24
24
  /** Less than or equal comparison (<=) */
25
25
  Operator["SMALLER_EQ"] = "SMALLER_EQ";
26
- // BETWEEN = "BETWEEN",
26
+ /** Between comparison (BETWEEN) */
27
+ Operator["BETWEEN"] = "BETWEEN";
27
28
  /** Negation operator (NOT) */
28
29
  Operator["NOT"] = "NOT";
29
30
  /** Inclusion operator (IN) */
@@ -18,6 +18,8 @@ export declare enum Operator {
18
18
  SMALLER = "SMALLER",
19
19
  /** Less than or equal comparison (<=) */
20
20
  SMALLER_EQ = "SMALLER_EQ",
21
+ /** Between comparison (BETWEEN) */
22
+ BETWEEN = "BETWEEN",
21
23
  /** Negation operator (NOT) */
22
24
  NOT = "NOT",
23
25
  /** Inclusion operator (IN) */
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/query/constants.ts"],"names":[],"mappings":";;;AAAA,uCAAsC;AAEtC;;;;;;GAMG;AACH,IAAY,QA4BX;AA5BD,WAAY,QAAQ;IAClB,2BAA2B;IAC3B,2BAAe,CAAA;IACf,gCAAgC;IAChC,mCAAuB,CAAA;IACvB,kCAAkC;IAClC,6BAAiB,CAAA;IACjB,4CAA4C;IAC5C,mCAAuB,CAAA;IACvB,+BAA+B;IAC/B,+BAAmB,CAAA;IACnB,yCAAyC;IACzC,qCAAyB,CAAA;IACzB,uBAAuB;IACvB,8BAA8B;IAC9B,uBAAW,CAAA;IACX,8BAA8B;IAC9B,qBAAS,CAAA;IACT,aAAa;IACb,kCAAkC;IAClC,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;IACrB,2BAAe,CAAA;IACf,uBAAW,CAAA;IACX,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,iCAAqB,CAAA;IACrB,yBAAa,CAAA;AACf,CAAC,EA5BW,QAAQ,wBAAR,QAAQ,QA4BnB;AAED;;;;;;GAMG;AACH,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,yDAAyD;IACzD,4BAAW,CAAA;IACX,gEAAgE;IAChE,0BAAS,CAAA;AACX,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB;AAED,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC/B,2CAAkB,CAAA;IAClB,2CAA6B,CAAA;IAC7B,kDAAyB,CAAA;IACzB,+CAAsB,CAAA;AACxB,CAAC,EALW,qBAAqB,qCAArB,qBAAqB,QAKhC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/query/constants.ts"],"names":[],"mappings":";;;AAAA,uCAAsC;AAEtC;;;;;;GAMG;AACH,IAAY,QA6BX;AA7BD,WAAY,QAAQ;IAClB,2BAA2B;IAC3B,2BAAe,CAAA;IACf,gCAAgC;IAChC,mCAAuB,CAAA;IACvB,kCAAkC;IAClC,6BAAiB,CAAA;IACjB,4CAA4C;IAC5C,mCAAuB,CAAA;IACvB,+BAA+B;IAC/B,+BAAmB,CAAA;IACnB,yCAAyC;IACzC,qCAAyB,CAAA;IACzB,mCAAmC;IACnC,+BAAmB,CAAA;IACnB,8BAA8B;IAC9B,uBAAW,CAAA;IACX,8BAA8B;IAC9B,qBAAS,CAAA;IACT,aAAa;IACb,kCAAkC;IAClC,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;IACrB,2BAAe,CAAA;IACf,uBAAW,CAAA;IACX,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,iCAAqB,CAAA;IACrB,yBAAa,CAAA;AACf,CAAC,EA7BW,QAAQ,wBAAR,QAAQ,QA6BnB;AAED;;;;;;GAMG;AACH,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,yDAAyD;IACzD,4BAAW,CAAA;IACX,gEAAgE;IAChE,0BAAS,CAAA;AACX,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB;AAED,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC/B,2CAAkB,CAAA;IAClB,2CAA6B,CAAA;IAC7B,kDAAyB,CAAA;IACzB,+CAAsB,CAAA;AACxB,CAAC,EALW,qBAAqB,qCAArB,qBAAqB,QAKhC"}
@@ -14,6 +14,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ /**
18
+ * @description Exports for the query module.
19
+ * @summary This file exports all the necessary components for the query functionality, including Condition, constants, errors, and more.
20
+ * @module core/query
21
+ */
17
22
  __exportStar(require("./Condition.cjs"), exports);
18
23
  __exportStar(require("./constants.cjs"), exports);
19
24
  __exportStar(require("./errors.cjs"), exports);
@@ -1,3 +1,8 @@
1
+ /**
2
+ * @description Exports for the query module.
3
+ * @summary This file exports all the necessary components for the query functionality, including Condition, constants, errors, and more.
4
+ * @module core/query
5
+ */
1
6
  export * from "./Condition";
2
7
  export * from "./constants";
3
8
  export * from "./errors";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA4B;AAC5B,kDAA4B;AAC5B,+CAAyB;AACzB,gDAA0B;AAC1B,kDAA4B;AAC5B,kDAA4B;AAC5B,kDAA4B;AAC5B,mDAA6B;AAC7B,2DAAqC;AACrC,8CAAwB;AACxB,8CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,kDAA4B;AAC5B,kDAA4B;AAC5B,+CAAyB;AACzB,gDAA0B;AAC1B,kDAA4B;AAC5B,kDAA4B;AAC5B,kDAA4B;AAC5B,mDAA6B;AAC7B,2DAAqC;AACrC,8CAAwB;AACxB,8CAAwB"}
@@ -4,6 +4,11 @@ import { Model } from "@decaf-ts/decorator-validation";
4
4
  import { Condition } from "./Condition";
5
5
  import { Paginatable } from "../interfaces/Paginatable";
6
6
  import { Constructor } from "@decaf-ts/decoration";
7
+ type NormalizedGroupKey<M extends Model, K extends keyof M> = M[K] extends PropertyKey ? M[K] : PropertyKey;
8
+ type GroupByReturnValue<M extends Model, Keys extends readonly GroupBySelector<M>[]> = Keys extends [
9
+ infer Head extends keyof M,
10
+ ...infer Tail extends readonly GroupBySelector<M>[]
11
+ ] ? Record<NormalizedGroupKey<M, Head>, GroupByReturnValue<M, Tail>> : M[];
7
12
  export interface StatementExecutor<M extends Model, R> extends Executor<R>, Paginatable<M, R, any> {
8
13
  }
9
14
  export interface PreparableStatementExecutor<M extends Model, R> extends StatementExecutor<M, R> {
@@ -16,11 +21,11 @@ export interface PreparableStatementExecutor<M extends Model, R> extends Stateme
16
21
  * @interface GroupByOption
17
22
  * @memberOf module:core
18
23
  */
19
- export interface GroupByResult<M extends Model, R> extends PreparableStatementExecutor<M, R>, OrderByOption<M, R>, LimitOption<M, R>, OffsetOption<M, R> {
20
- thenBy(selector: GroupBySelector<M>): GroupByResult<M, R>;
24
+ export interface GroupByResult<M extends Model, Keys extends readonly GroupBySelector<M>[] = readonly GroupBySelector<M>[]> extends PreparableStatementExecutor<M, GroupByReturnValue<M, Keys>>, OrderByOption<M, GroupByReturnValue<M, Keys>>, LimitOption<M, GroupByReturnValue<M, Keys>>, OffsetOption<M, GroupByReturnValue<M, Keys>> {
25
+ thenBy<Key extends GroupBySelector<M>>(selector: Key): GroupByResult<M, [...Keys, Key]>;
21
26
  }
22
- export interface GroupByOption<M extends Model, R> extends Executor<R> {
23
- groupBy(selector: GroupBySelector<M>): GroupByResult<M, R>;
27
+ export interface GroupByOption<M extends Model> {
28
+ groupBy<Key extends GroupBySelector<M>>(selector: Key): GroupByResult<M, [Key]>;
24
29
  }
25
30
  /**
26
31
  * @summary Offset Option interface
@@ -85,7 +90,7 @@ export interface OrderByThenByOption<M extends Model, R> extends LimitOption<M,
85
90
  * @extends OffsetOption
86
91
  * @memberOf module:core
87
92
  */
88
- export interface OrderAndGroupOption<M extends Model, R> extends OrderByOption<M, R>, PreparableStatementExecutor<M, R>, GroupByOption<M, R>, LimitOption<M, R>, OffsetOption<M, R> {
93
+ export interface OrderAndGroupOption<M extends Model, R> extends OrderByOption<M, R>, PreparableStatementExecutor<M, R>, GroupByOption<M>, LimitOption<M, R>, OffsetOption<M, R> {
89
94
  }
90
95
  /**
91
96
  * @summary Where Option interface
@@ -150,15 +155,93 @@ export interface MaxOption<M extends Model, R> extends FromOption<M, R> {
150
155
  */
151
156
  export interface MinOption<M extends Model, R> extends FromOption<M, R> {
152
157
  }
158
+ /**
159
+ * @summary Count Distinct Where Option Interface
160
+ * @description Exposes the remaining options after COUNT DISTINCT...FROM
161
+ *
162
+ * @interface CountDistinctWhereOption
163
+ * @memberOf module:core
164
+ */
165
+ export interface CountDistinctWhereOption<M extends Model> extends OrderAndGroupOption<M, number> {
166
+ /**
167
+ * @summary filter the records by a condition
168
+ * @param {Condition} condition
169
+ */
170
+ where(condition: Condition<M>): CountDistinctWhereOption<M>;
171
+ }
172
+ /**
173
+ * @summary Count Where Option Interface
174
+ * @description Exposes the remaining options after COUNT...FROM with distinct() available
175
+ *
176
+ * @interface CountWhereOption
177
+ * @memberOf module:core
178
+ */
179
+ export interface CountWhereOption<M extends Model> extends OrderAndGroupOption<M, number> {
180
+ /**
181
+ * @summary Makes the count distinct
182
+ * @description When chained after count(), counts only distinct values
183
+ * @return A count distinct query builder
184
+ */
185
+ distinct(): CountDistinctWhereOption<M>;
186
+ /**
187
+ * @summary filter the records by a condition
188
+ * @param {Condition} condition
189
+ */
190
+ where(condition: Condition<M>): CountWhereOption<M>;
191
+ }
153
192
  /**
154
193
  * @summary Count Option Interface
155
194
  * @description Exposes the remaining options after a COUNT
156
195
  *
157
196
  * @interface CountOption
197
+ * @memberOf module:core
198
+ */
199
+ export interface CountOption<M extends Model> {
200
+ /**
201
+ * @summary Makes the count distinct
202
+ * @description When chained after count(), counts only distinct values
203
+ * @return A count distinct query builder
204
+ */
205
+ distinct(): CountDistinctOption<M>;
206
+ /**
207
+ * @summary selects records from a table
208
+ * @param {Constructor} tableName
209
+ */
210
+ from(tableName: Constructor<M> | string): CountWhereOption<M>;
211
+ }
212
+ /**
213
+ * @summary Count Distinct Option Interface
214
+ * @description Exposes the remaining options after a COUNT DISTINCT
215
+ *
216
+ * @interface CountDistinctOption
217
+ * @memberOf module:core
218
+ */
219
+ export interface CountDistinctOption<M extends Model> {
220
+ /**
221
+ * @summary selects records from a table
222
+ * @param {Constructor} tableName
223
+ */
224
+ from(tableName: Constructor<M> | string): CountWhereOption<M>;
225
+ }
226
+ /**
227
+ * @summary Sum Option Interface
228
+ * @description Exposes the remaining options after a SUM
229
+ *
230
+ * @interface SumOption
231
+ * @extends FromOption
232
+ * @memberOf module:core
233
+ */
234
+ export interface SumOption<M extends Model, R> extends FromOption<M, R> {
235
+ }
236
+ /**
237
+ * @summary Avg Option Interface
238
+ * @description Exposes the remaining options after an AVG
239
+ *
240
+ * @interface AvgOption
158
241
  * @extends FromOption
159
242
  * @memberOf module:core
160
243
  */
161
- export interface CountOption<M extends Model, R> extends FromOption<M, R> {
244
+ export interface AvgOption<M extends Model, R> extends FromOption<M, R> {
162
245
  }
163
246
  /**
164
247
  * @summary Select Option Interface
@@ -172,7 +255,9 @@ export interface SelectOption<M extends Model, R> extends FromOption<M, R> {
172
255
  distinct<S extends SelectSelector<M>>(selector: S): DistinctOption<M, M[S][]>;
173
256
  max<S extends SelectSelector<M>>(selector: S): MaxOption<M, M[S]>;
174
257
  min<S extends SelectSelector<M>>(selector: S): MinOption<M, M[S]>;
175
- count<S extends SelectSelector<M>>(selector?: S): CountOption<M, number>;
258
+ count<S extends SelectSelector<M>>(selector?: S): CountOption<M>;
259
+ sum<S extends SelectSelector<M>>(selector: S): SumOption<M, number>;
260
+ avg<S extends SelectSelector<M>>(selector: S): AvgOption<M, number>;
176
261
  }
177
262
  /**
178
263
  * @summary Into Option Interface
@@ -265,6 +350,13 @@ export interface AttributeOption<M extends Model> {
265
350
  * @param {any[]} val
266
351
  */
267
352
  in(val: any[]): Condition<M>;
353
+ /**
354
+ * @summary Test value is between min and max (inclusive)
355
+ * @param {any} min the minimum value
356
+ * @param {any} max the maximum value
357
+ * @method
358
+ */
359
+ between(min: any, max: any): Condition<M>;
268
360
  /**
269
361
  * @summary Test matches {@link RegExp}
270
362
  *
@@ -282,4 +374,6 @@ export interface AttributeOption<M extends Model> {
282
374
  */
283
375
  export interface ConditionBuilderOption<M extends Model> {
284
376
  attribute(attr: keyof M): AttributeOption<M>;
377
+ attr(attr: keyof M): AttributeOption<M>;
285
378
  }
379
+ export {};