@recursyve/nestjs-data-filter 9.4.0-beta.0 → 9.4.1

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 (60) hide show
  1. package/lib/adapters/default-access-control.adapter.js +3 -3
  2. package/lib/adapters/default-export.adapter.js +3 -3
  3. package/lib/adapters/default-translate.adapter.js +3 -3
  4. package/lib/data-filter.repository.d.ts +1 -3
  5. package/lib/data-filter.repository.js +11 -14
  6. package/lib/data-filter.service.d.ts +4 -4
  7. package/lib/data-filter.service.js +9 -10
  8. package/lib/filter/base-filter.d.ts +0 -3
  9. package/lib/filter/base-filter.js +1 -19
  10. package/lib/filter/controllers/dynamic-filter.controller.js +2 -2
  11. package/lib/filter/controllers/filter.controller.js +2 -2
  12. package/lib/filter/decorators/inject-filter.decorator.d.ts +1 -1
  13. package/lib/filter/filter.factory.d.ts +1 -2
  14. package/lib/filter/filter.factory.js +3 -3
  15. package/lib/filter/filter.provider.js +2 -3
  16. package/lib/filter/filter.service.d.ts +2 -3
  17. package/lib/filter/filter.service.js +26 -17
  18. package/lib/filter/filters/date-time.filter.js +5 -12
  19. package/lib/filter/filters/filter.d.ts +0 -3
  20. package/lib/filter/filters/filter.js +5 -8
  21. package/lib/filter/filters/geo-bounds.filter.js +3 -2
  22. package/lib/filter/filters/geo-localization.filter.js +2 -2
  23. package/lib/filter/filters/group.filter.d.ts +0 -3
  24. package/lib/filter/filters/group.filter.js +2 -9
  25. package/lib/filter/filters/options.filter.d.ts +46 -0
  26. package/lib/filter/filters/options.filter.js +111 -0
  27. package/lib/filter/filters/select.filter.d.ts +3 -1
  28. package/lib/filter/filters/select.filter.js +2 -2
  29. package/lib/filter/guards/filter-query.guard.js +3 -3
  30. package/lib/filter/interceptors/data-file-download.interceptor.js +3 -3
  31. package/lib/filter/models/filter-configuration-search.model.d.ts +2 -0
  32. package/lib/filter/models/filter-configuration-search.model.js +1 -1
  33. package/lib/filter/operators.js +2 -2
  34. package/lib/filter/order-rules/enum.order-rule.js +3 -2
  35. package/lib/filter/order-rules/if.order-rule.js +3 -2
  36. package/lib/filter/order-rules/is-null.order-rule.js +3 -2
  37. package/lib/filter/order-rules/order-rule.d.ts +0 -3
  38. package/lib/filter/order-rules/order-rule.js +2 -5
  39. package/lib/filter/type.js +2 -2
  40. package/lib/index.js +5 -6
  41. package/lib/models/attributes.model.d.ts +1 -8
  42. package/lib/models/attributes.model.js +11 -21
  43. package/lib/models/count.model.d.ts +4 -11
  44. package/lib/models/count.model.js +14 -25
  45. package/lib/models/custom-attributes.model.d.ts +2 -6
  46. package/lib/models/custom-attributes.model.js +1 -5
  47. package/lib/models/data-filter.model.d.ts +2 -9
  48. package/lib/models/data-filter.model.js +30 -40
  49. package/lib/models/distance.model.d.ts +3 -10
  50. package/lib/models/distance.model.js +18 -29
  51. package/lib/models/export-types.model.js +2 -2
  52. package/lib/models/sum.model.d.ts +3 -10
  53. package/lib/models/sum.model.js +8 -19
  54. package/lib/scanners/data-filter.scanner.js +3 -3
  55. package/lib/scanners/sequelize-model.scanner.d.ts +2 -4
  56. package/lib/scanners/sequelize-model.scanner.js +10 -18
  57. package/lib/sequelize.utils.d.ts +3 -0
  58. package/lib/sequelize.utils.js +18 -1
  59. package/lib/services/data-filter-validation.service.js +3 -3
  60. package/package.json +1 -1
@@ -1,41 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CountAttributesContext = exports.CountAttributesConfig = void 0;
3
+ exports.CountAttributesConfig = void 0;
4
4
  const sequelize_1 = require("sequelize");
5
- const custom_attributes_model_1 = require("./custom-attributes.model");
5
+ const sequelize_utils_1 = require("../sequelize.utils");
6
6
  class CountAttributesConfig {
7
7
  constructor(key, config) {
8
8
  this.key = key;
9
9
  this.config = config;
10
10
  this.type = "count";
11
11
  }
12
- withContext(dialectFormatterService) {
13
- return new CountAttributesContext(this, dialectFormatterService);
12
+ transform(options, path) {
13
+ if (this.config.distinct) {
14
+ const attribute = this.config.path
15
+ ? sequelize_utils_1.SequelizeUtils.getLiteralFullName(this.config.attribute, this.config.path)
16
+ : this.config.attribute;
17
+ return [(0, sequelize_1.literal)(`COUNT(DISTINCT ${attribute})`), this.key];
18
+ }
19
+ const attribute = this.config.path
20
+ ? (0, sequelize_1.literal)(sequelize_utils_1.SequelizeUtils.getLiteralFullName(this.config.attribute, this.config.path))
21
+ : this.config.attribute;
22
+ return [(0, sequelize_1.fn)("COUNT", attribute), this.key];
14
23
  }
15
24
  shouldGroupBy() {
16
25
  return true;
17
26
  }
18
27
  }
19
28
  exports.CountAttributesConfig = CountAttributesConfig;
20
- class CountAttributesContext extends custom_attributes_model_1.CustomAttributesContext {
21
- constructor(config, dialectFormatterService) {
22
- super();
23
- this.config = config;
24
- this.dialectFormatterService = dialectFormatterService;
25
- }
26
- transform(options, path) {
27
- if (this.config.config.distinct) {
28
- const attribute = this.config.config.path
29
- ? this.dialectFormatterService.getLiteralFullName(this.config.config.attribute, this.config.config.path)
30
- : this.config.config.attribute;
31
- return [(0, sequelize_1.literal)(`COUNT(DISTINCT ${attribute})`), this.config.key];
32
- }
33
- const attribute = this.config.config.path
34
- ? (0, sequelize_1.literal)(this.dialectFormatterService.getLiteralFullName(this.config.config.attribute, this.config.config.path))
35
- : this.config.config.attribute;
36
- return [(0, sequelize_1.fn)("COUNT", attribute), this.config.key];
37
- }
38
- }
39
- exports.CountAttributesContext = CountAttributesContext;
40
29
 
41
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvY291bnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXdDO0FBR3hDLHVFQUltQztBQU9uQyxNQUFhLHFCQUFxQjtJQUc5QixZQUFtQixHQUFXLEVBQVMsTUFBbUI7UUFBdkMsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUFTLFdBQU0sR0FBTixNQUFNLENBQWE7UUFGbkQsU0FBSSxHQUFHLE9BQU8sQ0FBQztJQUV1QyxDQUFDO0lBRXZELFdBQVcsQ0FBQyx1QkFBZ0Q7UUFDL0QsT0FBTyxJQUFJLHNCQUFzQixDQUFDLElBQUksRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTSxhQUFhO1FBQ2hCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Q0FDSjtBQVpELHNEQVlDO0FBRUQsTUFBYSxzQkFBdUIsU0FBUSxpREFBdUI7SUFDL0QsWUFBb0IsTUFBNkIsRUFBVSx1QkFBZ0Q7UUFDdkcsS0FBSyxFQUFFLENBQUM7UUFEUSxXQUFNLEdBQU4sTUFBTSxDQUF1QjtRQUFVLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7SUFFM0csQ0FBQztJQUVNLFNBQVMsQ0FBQyxPQUFlLEVBQUUsSUFBYTtRQUMzQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUM3QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJO2dCQUNyQyxDQUFDLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ3hHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7WUFDbkMsT0FBTyxDQUFDLElBQUEsbUJBQU8sRUFBQyxrQkFBa0IsU0FBUyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3JFO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSTtZQUNyQyxDQUFDLENBQUMsSUFBQSxtQkFBTyxFQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakgsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNuQyxPQUFPLENBQUMsSUFBQSxjQUFFLEVBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckQsQ0FBQztDQUNKO0FBbEJELHdEQWtCQyIsImZpbGUiOiJsaWIvbW9kZWxzL2NvdW50Lm1vZGVsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm4sIGxpdGVyYWwgfSBmcm9tIFwic2VxdWVsaXplXCI7XG5pbXBvcnQgeyBQcm9qZWN0aW9uQWxpYXMgfSBmcm9tIFwic2VxdWVsaXplL3R5cGVzL21vZGVsXCI7XG5pbXBvcnQgeyBEaWFsZWN0Rm9ybWF0dGVyU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9kaWFsZWN0LWZvcm1hdHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQge1xuICAgIEN1c3RvbUF0dHJpYnV0ZXNDb25maWcsXG4gICAgQ3VzdG9tQXR0cmlidXRlc0NvbnRleHQsXG4gICAgQ3VzdG9tQXR0cmlidXRlc09wdGlvbkNvbmZpZ1xufSBmcm9tIFwiLi9jdXN0b20tYXR0cmlidXRlcy5tb2RlbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvdW50Q29uZmlnIGV4dGVuZHMgQ3VzdG9tQXR0cmlidXRlc09wdGlvbkNvbmZpZyB7XG4gICAgYXR0cmlidXRlOiBzdHJpbmc7XG4gICAgZGlzdGluY3Q/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQ291bnRBdHRyaWJ1dGVzQ29uZmlnIGltcGxlbWVudHMgQ3VzdG9tQXR0cmlidXRlc0NvbmZpZzxDb3VudENvbmZpZywgQ291bnRBdHRyaWJ1dGVzQ29udGV4dD4ge1xuICAgIHB1YmxpYyB0eXBlID0gXCJjb3VudFwiO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGtleTogc3RyaW5nLCBwdWJsaWMgY29uZmlnOiBDb3VudENvbmZpZykge31cblxuICAgIHB1YmxpYyB3aXRoQ29udGV4dChkaWFsZWN0Rm9ybWF0dGVyU2VydmljZTogRGlhbGVjdEZvcm1hdHRlclNlcnZpY2UpOiBDb3VudEF0dHJpYnV0ZXNDb250ZXh0IHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb3VudEF0dHJpYnV0ZXNDb250ZXh0KHRoaXMsIGRpYWxlY3RGb3JtYXR0ZXJTZXJ2aWNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hvdWxkR3JvdXBCeSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ291bnRBdHRyaWJ1dGVzQ29udGV4dCBleHRlbmRzIEN1c3RvbUF0dHJpYnV0ZXNDb250ZXh0IHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZzogQ291bnRBdHRyaWJ1dGVzQ29uZmlnLCBwcml2YXRlIGRpYWxlY3RGb3JtYXR0ZXJTZXJ2aWNlOiBEaWFsZWN0Rm9ybWF0dGVyU2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm0ob3B0aW9uczogb2JqZWN0LCBwYXRoPzogc3RyaW5nKTogc3RyaW5nIHwgUHJvamVjdGlvbkFsaWFzIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmNvbmZpZy5kaXN0aW5jdCkge1xuICAgICAgICAgICAgY29uc3QgYXR0cmlidXRlID0gdGhpcy5jb25maWcuY29uZmlnLnBhdGhcbiAgICAgICAgICAgICAgICA/IHRoaXMuZGlhbGVjdEZvcm1hdHRlclNlcnZpY2UuZ2V0TGl0ZXJhbEZ1bGxOYW1lKHRoaXMuY29uZmlnLmNvbmZpZy5hdHRyaWJ1dGUsIHRoaXMuY29uZmlnLmNvbmZpZy5wYXRoKVxuICAgICAgICAgICAgICAgIDogdGhpcy5jb25maWcuY29uZmlnLmF0dHJpYnV0ZTtcbiAgICAgICAgICAgIHJldHVybiBbbGl0ZXJhbChgQ09VTlQoRElTVElOQ1QgJHthdHRyaWJ1dGV9KWApLCB0aGlzLmNvbmZpZy5rZXldO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXR0cmlidXRlID0gdGhpcy5jb25maWcuY29uZmlnLnBhdGhcbiAgICAgICAgICAgID8gbGl0ZXJhbCh0aGlzLmRpYWxlY3RGb3JtYXR0ZXJTZXJ2aWNlLmdldExpdGVyYWxGdWxsTmFtZSh0aGlzLmNvbmZpZy5jb25maWcuYXR0cmlidXRlLCB0aGlzLmNvbmZpZy5jb25maWcucGF0aCkpXG4gICAgICAgICAgICA6IHRoaXMuY29uZmlnLmNvbmZpZy5hdHRyaWJ1dGU7XG4gICAgICAgIHJldHVybiBbZm4oXCJDT1VOVFwiLCBhdHRyaWJ1dGUpLCB0aGlzLmNvbmZpZy5rZXldO1xuICAgIH1cbn0iXX0=
30
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvY291bnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQXlEO0FBRXpELHdEQUFvRDtBQVFwRCxNQUFhLHFCQUFxQjtJQUc5QixZQUFtQixHQUFXLEVBQVMsTUFBbUI7UUFBdkMsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUFTLFdBQU0sR0FBTixNQUFNLENBQWE7UUFGbkQsU0FBSSxHQUFHLE9BQU8sQ0FBQztJQUV1QyxDQUFDO0lBRXZELFNBQVMsQ0FBQyxPQUFlLEVBQUUsSUFBYTtRQUMzQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ3RCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtnQkFDOUIsQ0FBQyxDQUFDLGdDQUFjLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQzVFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUM1QixPQUFPLENBQUMsSUFBQSxtQkFBTyxFQUFDLGtCQUFrQixTQUFTLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM5RDtRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtZQUM5QixDQUFDLENBQUMsSUFBQSxtQkFBTyxFQUFDLGdDQUFjLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyRixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDNUIsT0FBTyxDQUFDLElBQUEsY0FBRSxFQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVNLGFBQWE7UUFDaEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKO0FBdEJELHNEQXNCQyIsImZpbGUiOiJsaWIvbW9kZWxzL2NvdW50Lm1vZGVsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHIgfSBmcm9tIFwiZGF0ZS1mbnMvbG9jYWxlXCI7XG5pbXBvcnQgeyBmbiwgbGl0ZXJhbCwgUHJvamVjdGlvbkFsaWFzIH0gZnJvbSBcInNlcXVlbGl6ZVwiO1xuaW1wb3J0IHsgR3JvdXBPcHRpb24gfSBmcm9tIFwic2VxdWVsaXplL3R5cGVzL21vZGVsXCI7XG5pbXBvcnQgeyBTZXF1ZWxpemVVdGlscyB9IGZyb20gXCIuLi9zZXF1ZWxpemUudXRpbHNcIjtcbmltcG9ydCB7IEN1c3RvbUF0dHJpYnV0ZXNDb25maWcsIEN1c3RvbUF0dHJpYnV0ZXNPcHRpb25Db25maWcgfSBmcm9tIFwiLi9jdXN0b20tYXR0cmlidXRlcy5tb2RlbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvdW50Q29uZmlnIGV4dGVuZHMgQ3VzdG9tQXR0cmlidXRlc09wdGlvbkNvbmZpZyB7XG4gICAgYXR0cmlidXRlOiBzdHJpbmc7XG4gICAgZGlzdGluY3Q/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQ291bnRBdHRyaWJ1dGVzQ29uZmlnIGltcGxlbWVudHMgQ3VzdG9tQXR0cmlidXRlc0NvbmZpZzxDb3VudENvbmZpZz4ge1xuICAgIHB1YmxpYyB0eXBlID0gXCJjb3VudFwiO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGtleTogc3RyaW5nLCBwdWJsaWMgY29uZmlnOiBDb3VudENvbmZpZykge31cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm0ob3B0aW9uczogb2JqZWN0LCBwYXRoPzogc3RyaW5nKTogc3RyaW5nIHwgUHJvamVjdGlvbkFsaWFzIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmRpc3RpbmN0KSB7XG4gICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGUgPSB0aGlzLmNvbmZpZy5wYXRoXG4gICAgICAgICAgICAgICAgPyBTZXF1ZWxpemVVdGlscy5nZXRMaXRlcmFsRnVsbE5hbWUodGhpcy5jb25maWcuYXR0cmlidXRlLCB0aGlzLmNvbmZpZy5wYXRoKVxuICAgICAgICAgICAgICAgIDogdGhpcy5jb25maWcuYXR0cmlidXRlO1xuICAgICAgICAgICAgcmV0dXJuIFtsaXRlcmFsKGBDT1VOVChESVNUSU5DVCAke2F0dHJpYnV0ZX0pYCksIHRoaXMua2V5XTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IHRoaXMuY29uZmlnLnBhdGhcbiAgICAgICAgICAgID8gbGl0ZXJhbChTZXF1ZWxpemVVdGlscy5nZXRMaXRlcmFsRnVsbE5hbWUodGhpcy5jb25maWcuYXR0cmlidXRlLCB0aGlzLmNvbmZpZy5wYXRoKSlcbiAgICAgICAgICAgIDogdGhpcy5jb25maWcuYXR0cmlidXRlO1xuICAgICAgICByZXR1cm4gW2ZuKFwiQ09VTlRcIiwgYXR0cmlidXRlKSwgdGhpcy5rZXldO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG91bGRHcm91cEJ5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG4iXX0=
@@ -1,5 +1,4 @@
1
1
  import { ProjectionAlias } from "sequelize";
2
- import { DialectFormatterService } from "../services/dialect-formatter.service";
3
2
  import { IncludeWhereModel } from "./include.model";
4
3
  import { PathModel } from "./path.model";
5
4
  export interface CustomAttributesOptionConfig {
@@ -7,16 +6,13 @@ export interface CustomAttributesOptionConfig {
7
6
  path?: string;
8
7
  where?: IncludeWhereModel;
9
8
  }
10
- export interface CustomAttributesConfig<T extends CustomAttributesOptionConfig = CustomAttributesOptionConfig, context = CustomAttributesContext> {
9
+ export interface CustomAttributesConfig<T extends CustomAttributesOptionConfig = CustomAttributesOptionConfig> {
11
10
  key: string;
12
11
  type: string;
13
12
  config?: T;
14
- withContext(dialectFormatterService: DialectFormatterService): context;
13
+ transform(options?: object, path?: string): string | ProjectionAlias;
15
14
  shouldGroupBy(): boolean;
16
15
  }
17
- export declare abstract class CustomAttributesContext {
18
- abstract transform(options?: object, path?: string): string | ProjectionAlias;
19
- }
20
16
  export interface CustomAttributesModel {
21
17
  key: string;
22
18
  attribute: string | ProjectionAlias;
@@ -1,8 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CustomAttributesContext = void 0;
4
- class CustomAttributesContext {
5
- }
6
- exports.CustomAttributesContext = CustomAttributesContext;
7
3
 
8
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvY3VzdG9tLWF0dHJpYnV0ZXMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBcUJBLE1BQXNCLHVCQUF1QjtDQUU1QztBQUZELDBEQUVDIiwiZmlsZSI6ImxpYi9tb2RlbHMvY3VzdG9tLWF0dHJpYnV0ZXMubW9kZWwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9qZWN0aW9uQWxpYXMgfSBmcm9tIFwic2VxdWVsaXplXCI7XG5pbXBvcnQgeyBHcm91cE9wdGlvbiB9IGZyb20gXCJzZXF1ZWxpemUvdHlwZXMvbW9kZWxcIjtcbmltcG9ydCB7IERpYWxlY3RGb3JtYXR0ZXJTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL2RpYWxlY3QtZm9ybWF0dGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7IEluY2x1ZGVXaGVyZU1vZGVsIH0gZnJvbSBcIi4vaW5jbHVkZS5tb2RlbFwiO1xuaW1wb3J0IHsgUGF0aE1vZGVsIH0gZnJvbSBcIi4vcGF0aC5tb2RlbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUF0dHJpYnV0ZXNPcHRpb25Db25maWcge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBwYXRoPzogc3RyaW5nO1xuICAgIHdoZXJlPzogSW5jbHVkZVdoZXJlTW9kZWw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tQXR0cmlidXRlc0NvbmZpZzxUIGV4dGVuZHMgQ3VzdG9tQXR0cmlidXRlc09wdGlvbkNvbmZpZyA9IEN1c3RvbUF0dHJpYnV0ZXNPcHRpb25Db25maWcsIGNvbnRleHQgPSBDdXN0b21BdHRyaWJ1dGVzQ29udGV4dD4ge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBjb25maWc/OiBUO1xuXG4gICAgd2l0aENvbnRleHQoZGlhbGVjdEZvcm1hdHRlclNlcnZpY2U6IERpYWxlY3RGb3JtYXR0ZXJTZXJ2aWNlKTogY29udGV4dDtcbiAgICBzaG91bGRHcm91cEJ5KCk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDdXN0b21BdHRyaWJ1dGVzQ29udGV4dCB7XG4gICAgcHVibGljIGFic3RyYWN0IHRyYW5zZm9ybShvcHRpb25zPzogb2JqZWN0LCBwYXRoPzogc3RyaW5nKTogc3RyaW5nIHwgUHJvamVjdGlvbkFsaWFzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUF0dHJpYnV0ZXNNb2RlbCB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgYXR0cmlidXRlOiBzdHJpbmcgfCBQcm9qZWN0aW9uQWxpYXM7XG4gICAgcGF0aD86IFBhdGhNb2RlbDtcbn1cbiJdfQ==
4
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvY3VzdG9tLWF0dHJpYnV0ZXMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJsaWIvbW9kZWxzL2N1c3RvbS1hdHRyaWJ1dGVzLm1vZGVsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvamVjdGlvbkFsaWFzIH0gZnJvbSBcInNlcXVlbGl6ZVwiO1xuaW1wb3J0IHsgR3JvdXBPcHRpb24gfSBmcm9tIFwic2VxdWVsaXplL3R5cGVzL21vZGVsXCI7XG5pbXBvcnQgeyBJbmNsdWRlV2hlcmVNb2RlbCB9IGZyb20gXCIuL2luY2x1ZGUubW9kZWxcIjtcbmltcG9ydCB7IFBhdGhNb2RlbCB9IGZyb20gXCIuL3BhdGgubW9kZWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21BdHRyaWJ1dGVzT3B0aW9uQ29uZmlnIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgcGF0aD86IHN0cmluZztcbiAgICB3aGVyZT86IEluY2x1ZGVXaGVyZU1vZGVsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUF0dHJpYnV0ZXNDb25maWc8VCBleHRlbmRzIEN1c3RvbUF0dHJpYnV0ZXNPcHRpb25Db25maWcgPSBDdXN0b21BdHRyaWJ1dGVzT3B0aW9uQ29uZmlnPiB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIGNvbmZpZz86IFQ7XG5cbiAgICB0cmFuc2Zvcm0ob3B0aW9ucz86IG9iamVjdCwgcGF0aD86IHN0cmluZyk6IHN0cmluZyB8IFByb2plY3Rpb25BbGlhcztcbiAgICBzaG91bGRHcm91cEJ5KCk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tQXR0cmlidXRlc01vZGVsIHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBhdHRyaWJ1dGU6IHN0cmluZyB8IFByb2plY3Rpb25BbGlhcztcbiAgICBwYXRoPzogUGF0aE1vZGVsO1xufVxuIl19
@@ -1,6 +1,5 @@
1
1
  import { FindAttributeOptions } from "sequelize";
2
2
  import { Model } from "sequelize-typescript";
3
- import { DialectFormatterService } from "../services/dialect-formatter.service";
4
3
  import { CustomAttributesConfig, CustomAttributesModel } from "./custom-attributes.model";
5
4
  import { IncludeConfig } from "./include.model";
6
5
  export interface DataFilterConfigModel {
@@ -16,20 +15,14 @@ export declare class DataFilterConfig implements DataFilterConfigModel {
16
15
  exportColumns?: string[];
17
16
  customAttributes: CustomAttributesConfig[];
18
17
  ignoreInSearch: boolean;
19
- withContext(dialectFormatterService: DialectFormatterService): DataFilterContext;
20
18
  setModel(model: typeof Model): void;
21
19
  setIgnoreInPath(ignore: boolean): void;
22
20
  setAttributes(attributes?: FindAttributeOptions): void;
23
21
  setSearchableAttributes(attributes: string[]): void;
24
22
  setExportColumns(exportColumns: string[]): void;
25
23
  addCustomAttribute(attribute: CustomAttributesConfig): void;
26
- getCustomAttributesIncludes(): IncludeConfig[];
27
- getSearchableAttributes(): string[];
28
- }
29
- export declare class DataFilterContext {
30
- private config;
31
- private dialectFormatterService;
32
- constructor(config: DataFilterConfig, dialectFormatterService: DialectFormatterService);
33
24
  transformAttributesConfig(options?: object): FindAttributeOptions;
34
25
  getCustomAttributes(options?: object): CustomAttributesModel[];
26
+ getCustomAttributesIncludes(): IncludeConfig[];
27
+ getSearchableAttributes(): string[];
35
28
  }
@@ -1,15 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DataFilterContext = exports.DataFilterConfig = void 0;
3
+ exports.DataFilterConfig = void 0;
4
4
  const sequelize_utils_1 = require("../sequelize.utils");
5
5
  class DataFilterConfig {
6
6
  constructor() {
7
7
  this.customAttributes = [];
8
8
  this.ignoreInSearch = false;
9
9
  }
10
- withContext(dialectFormatterService) {
11
- return new DataFilterContext(this, dialectFormatterService);
12
- }
13
10
  setModel(model) {
14
11
  this.model = model;
15
12
  }
@@ -28,6 +25,34 @@ class DataFilterConfig {
28
25
  addCustomAttribute(attribute) {
29
26
  this.customAttributes.push(attribute);
30
27
  }
28
+ transformAttributesConfig(options) {
29
+ const customAttributes = this.getCustomAttributes(options);
30
+ if (this.attributes) {
31
+ if (this.customAttributes.length) {
32
+ return sequelize_utils_1.SequelizeUtils.ensureAttributesValidity(sequelize_utils_1.SequelizeUtils.mergeAttributes(this.attributes, {
33
+ include: customAttributes.map(x => x.attribute)
34
+ }));
35
+ }
36
+ return sequelize_utils_1.SequelizeUtils.ensureAttributesValidity(this.attributes);
37
+ }
38
+ if (!this.attributes && customAttributes.length) {
39
+ return {
40
+ include: customAttributes.map(x => x.attribute)
41
+ };
42
+ }
43
+ }
44
+ getCustomAttributes(options) {
45
+ return this.customAttributes
46
+ .map(x => ({
47
+ key: x.key,
48
+ attribute: x.transform(options),
49
+ path: x.config.path ? {
50
+ path: x.config.path,
51
+ paranoid: true
52
+ } : null
53
+ }))
54
+ .filter(x => x.attribute);
55
+ }
31
56
  getCustomAttributesIncludes() {
32
57
  return this.customAttributes
33
58
  .filter(x => x.config.path)
@@ -54,40 +79,5 @@ class DataFilterConfig {
54
79
  }
55
80
  }
56
81
  exports.DataFilterConfig = DataFilterConfig;
57
- class DataFilterContext {
58
- constructor(config, dialectFormatterService) {
59
- this.config = config;
60
- this.dialectFormatterService = dialectFormatterService;
61
- }
62
- transformAttributesConfig(options) {
63
- const customAttributes = this.getCustomAttributes(options);
64
- if (this.config.attributes) {
65
- if (this.config.customAttributes.length) {
66
- return sequelize_utils_1.SequelizeUtils.ensureAttributesValidity(sequelize_utils_1.SequelizeUtils.mergeAttributes(this.config.attributes, {
67
- include: customAttributes.map(x => x.attribute)
68
- }));
69
- }
70
- return sequelize_utils_1.SequelizeUtils.ensureAttributesValidity(this.config.attributes);
71
- }
72
- if (!this.config.attributes && customAttributes.length) {
73
- return {
74
- include: customAttributes.map(x => x.attribute)
75
- };
76
- }
77
- }
78
- getCustomAttributes(options) {
79
- return this.config.customAttributes
80
- .map(x => ({
81
- key: x.key,
82
- attribute: x.withContext(this.dialectFormatterService).transform(options),
83
- path: x.config.path ? {
84
- path: x.config.path,
85
- paranoid: true
86
- } : null
87
- }))
88
- .filter(x => x.attribute);
89
- }
90
- }
91
- exports.DataFilterContext = DataFilterContext;
92
82
 
93
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvZGF0YS1maWx0ZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0Esd0RBQXVEO0FBU3ZELE1BQWEsZ0JBQWdCO0lBQTdCO1FBS1cscUJBQWdCLEdBQTZCLEVBQUUsQ0FBQztRQUNoRCxtQkFBYyxHQUFHLEtBQUssQ0FBQztJQXdEbEMsQ0FBQztJQXREVSxXQUFXLENBQUMsdUJBQWdEO1FBQy9ELE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQW1CO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxlQUFlLENBQUMsTUFBZTtRQUNsQyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBRU0sYUFBYSxDQUFDLFVBQWlDO1FBQ2xELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQ2pDLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxVQUFvQjtRQUMvQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsVUFBVSxDQUFDO0lBQzNDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxhQUF1QjtRQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUN2QyxDQUFDO0lBRU0sa0JBQWtCLENBQUMsU0FBaUM7UUFDdkQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sMkJBQTJCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQjthQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQzthQUMxQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ1AsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtZQUMzQixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJO1lBQ25CLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDckIsUUFBUSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRU0sdUJBQXVCOztRQUMxQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckIsT0FBTyxFQUFFLENBQUM7U0FDYjtRQUVELElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzNCLE9BQU8sZ0NBQWMsQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsS0FBaUIsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUM5RztRQUVELE1BQU0sb0JBQW9CLEdBQUcsZ0NBQWMsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsS0FBaUIsQ0FBQyxDQUFDO1FBQ2pHLE1BQU0sVUFBVSxHQUFHLGdDQUFjLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLEtBQWlCLEVBQUUsTUFBQSxJQUFJLENBQUMsVUFBc0IsbUNBQUksRUFBRSxDQUFDLENBQUM7UUFDL0gsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDckIsVUFBdUIsYUFBdkIsVUFBVSx1QkFBVixVQUFVLENBQWUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RixvQkFBb0IsQ0FBQztJQUM3QixDQUFDO0NBQ0o7QUE5REQsNENBOERDO0FBRUQsTUFBYSxpQkFBaUI7SUFDMUIsWUFBb0IsTUFBd0IsRUFBVSx1QkFBZ0Q7UUFBbEYsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFBVSw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO0lBQUcsQ0FBQztJQUVuRyx5QkFBeUIsQ0FBQyxPQUFnQjtRQUM3QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFO1lBQ3hCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3JDLE9BQU8sZ0NBQWMsQ0FBQyx3QkFBd0IsQ0FDMUMsZ0NBQWMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUU7b0JBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2lCQUNsRCxDQUFDLENBQ0wsQ0FBQzthQUNMO1lBRUQsT0FBTyxnQ0FBYyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDMUU7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLElBQUksZ0JBQWdCLENBQUMsTUFBTSxFQUFFO1lBQ3BELE9BQU87Z0JBQ0gsT0FBTyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7YUFDbEQsQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUVNLG1CQUFtQixDQUFDLE9BQWdCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0I7YUFDOUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNQLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRztZQUNWLFNBQVMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7WUFDekUsSUFBSSxFQUFHLENBQUMsQ0FBQyxNQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxFQUFHLENBQUMsQ0FBQyxNQUFjLENBQUMsSUFBSTtnQkFDNUIsUUFBUSxFQUFFLElBQUk7YUFDakIsQ0FBQyxDQUFDLENBQUMsSUFBSTtTQUNlLENBQUEsQ0FBQzthQUMzQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEMsQ0FBQztDQUNKO0FBbkNELDhDQW1DQyIsImZpbGUiOiJsaWIvbW9kZWxzL2RhdGEtZmlsdGVyLm1vZGVsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmluZEF0dHJpYnV0ZU9wdGlvbnMgfSBmcm9tIFwic2VxdWVsaXplXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJzZXF1ZWxpemUtdHlwZXNjcmlwdFwiO1xuaW1wb3J0IHsgRGlhbGVjdEZvcm1hdHRlclNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvZGlhbGVjdC1mb3JtYXR0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHsgQ3VzdG9tQXR0cmlidXRlc0NvbmZpZywgQ3VzdG9tQXR0cmlidXRlc01vZGVsIH0gZnJvbSBcIi4vY3VzdG9tLWF0dHJpYnV0ZXMubW9kZWxcIjtcbmltcG9ydCB7IEluY2x1ZGVDb25maWcgfSBmcm9tIFwiLi9pbmNsdWRlLm1vZGVsXCI7XG5pbXBvcnQgeyBNLCBTZXF1ZWxpemVVdGlscyB9IGZyb20gXCIuLi9zZXF1ZWxpemUudXRpbHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhRmlsdGVyQ29uZmlnTW9kZWwge1xuICAgIG1vZGVsOiB0eXBlb2YgTW9kZWw7XG4gICAgYXR0cmlidXRlcz86IEZpbmRBdHRyaWJ1dGVPcHRpb25zO1xuICAgIGV4cG9ydENvbHVtbnM/OiBzdHJpbmdbXTtcbiAgICBjdXN0b21BdHRyaWJ1dGVzOiBDdXN0b21BdHRyaWJ1dGVzQ29uZmlnW107XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhRmlsdGVyQ29uZmlnIGltcGxlbWVudHMgRGF0YUZpbHRlckNvbmZpZ01vZGVsIHtcbiAgICBwdWJsaWMgbW9kZWw6IHR5cGVvZiBNb2RlbDtcbiAgICBwdWJsaWMgYXR0cmlidXRlcz86IEZpbmRBdHRyaWJ1dGVPcHRpb25zO1xuICAgIHB1YmxpYyBzZWFyY2hhYmxlQXR0cmlidXRlcz86IHN0cmluZ1tdO1xuICAgIHB1YmxpYyBleHBvcnRDb2x1bW5zPzogc3RyaW5nW107XG4gICAgcHVibGljIGN1c3RvbUF0dHJpYnV0ZXM6IEN1c3RvbUF0dHJpYnV0ZXNDb25maWdbXSA9IFtdO1xuICAgIHB1YmxpYyBpZ25vcmVJblNlYXJjaCA9IGZhbHNlO1xuXG4gICAgcHVibGljIHdpdGhDb250ZXh0KGRpYWxlY3RGb3JtYXR0ZXJTZXJ2aWNlOiBEaWFsZWN0Rm9ybWF0dGVyU2VydmljZSk6IERhdGFGaWx0ZXJDb250ZXh0IHtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRhRmlsdGVyQ29udGV4dCh0aGlzLCBkaWFsZWN0Rm9ybWF0dGVyU2VydmljZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldE1vZGVsKG1vZGVsOiB0eXBlb2YgTW9kZWwpIHtcbiAgICAgICAgdGhpcy5tb2RlbCA9IG1vZGVsO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRJZ25vcmVJblBhdGgoaWdub3JlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaWdub3JlSW5TZWFyY2ggPSBpZ25vcmU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEF0dHJpYnV0ZXMoYXR0cmlidXRlcz86IEZpbmRBdHRyaWJ1dGVPcHRpb25zKSB7XG4gICAgICAgIHRoaXMuYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFNlYXJjaGFibGVBdHRyaWJ1dGVzKGF0dHJpYnV0ZXM6IHN0cmluZ1tdKSB7XG4gICAgICAgIHRoaXMuc2VhcmNoYWJsZUF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRFeHBvcnRDb2x1bW5zKGV4cG9ydENvbHVtbnM6IHN0cmluZ1tdKSB7XG4gICAgICAgIHRoaXMuZXhwb3J0Q29sdW1ucyA9IGV4cG9ydENvbHVtbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZEN1c3RvbUF0dHJpYnV0ZShhdHRyaWJ1dGU6IEN1c3RvbUF0dHJpYnV0ZXNDb25maWcpIHtcbiAgICAgICAgdGhpcy5jdXN0b21BdHRyaWJ1dGVzLnB1c2goYXR0cmlidXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3VzdG9tQXR0cmlidXRlc0luY2x1ZGVzKCk6IEluY2x1ZGVDb25maWdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1c3RvbUF0dHJpYnV0ZXNcbiAgICAgICAgICAgIC5maWx0ZXIoeCA9PiB4LmNvbmZpZy5wYXRoKVxuICAgICAgICAgICAgLm1hcCh4ID0+ICh7XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogeyBpbmNsdWRlOiBbXSB9LFxuICAgICAgICAgICAgICAgIHBhdGg6IHguY29uZmlnLnBhdGgsXG4gICAgICAgICAgICAgICAgd2hlcmU6IHguY29uZmlnLndoZXJlLFxuICAgICAgICAgICAgICAgIHBhcmFub2lkOiB0cnVlXG4gICAgICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNlYXJjaGFibGVBdHRyaWJ1dGVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgaWYgKHRoaXMuaWdub3JlSW5TZWFyY2gpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaGFibGVBdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gU2VxdWVsaXplVXRpbHMuZ2V0TW9kZWxTZWFyY2hhYmxlRmllbGRBdHRyaWJ1dGVzKHRoaXMubW9kZWwgYXMgdHlwZW9mIE0sIHRoaXMuc2VhcmNoYWJsZUF0dHJpYnV0ZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2VhcmNoYWJsZUF0dHJpYnV0ZXMgPSBTZXF1ZWxpemVVdGlscy5nZXRNb2RlbFNlYXJjaGFibGVBdHRyaWJ1dGVzKHRoaXMubW9kZWwgYXMgdHlwZW9mIE0pO1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gU2VxdWVsaXplVXRpbHMuZ2V0TW9kZWxTZWFyY2hhYmxlRmllbGRBdHRyaWJ1dGVzKHRoaXMubW9kZWwgYXMgdHlwZW9mIE0sIHRoaXMuYXR0cmlidXRlcyBhcyBzdHJpbmdbXSA/PyBbXSk7XG4gICAgICAgIHJldHVybiBhdHRyaWJ1dGVzLmxlbmd0aCA/XG4gICAgICAgICAgICAoYXR0cmlidXRlcyBhcyBzdHJpbmdbXSk/LmZpbHRlcih4ID0+IHNlYXJjaGFibGVBdHRyaWJ1dGVzLnNvbWUoYXR0ciA9PiBhdHRyID09PSB4KSkgOlxuICAgICAgICAgICAgc2VhcmNoYWJsZUF0dHJpYnV0ZXM7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGF0YUZpbHRlckNvbnRleHQge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnOiBEYXRhRmlsdGVyQ29uZmlnLCBwcml2YXRlIGRpYWxlY3RGb3JtYXR0ZXJTZXJ2aWNlOiBEaWFsZWN0Rm9ybWF0dGVyU2VydmljZSkge31cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm1BdHRyaWJ1dGVzQ29uZmlnKG9wdGlvbnM/OiBvYmplY3QpOiBGaW5kQXR0cmlidXRlT3B0aW9ucyB7XG4gICAgICAgIGNvbnN0IGN1c3RvbUF0dHJpYnV0ZXMgPSB0aGlzLmdldEN1c3RvbUF0dHJpYnV0ZXMob3B0aW9ucyk7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5hdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jb25maWcuY3VzdG9tQXR0cmlidXRlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gU2VxdWVsaXplVXRpbHMuZW5zdXJlQXR0cmlidXRlc1ZhbGlkaXR5KFxuICAgICAgICAgICAgICAgICAgICBTZXF1ZWxpemVVdGlscy5tZXJnZUF0dHJpYnV0ZXModGhpcy5jb25maWcuYXR0cmlidXRlcywge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZTogY3VzdG9tQXR0cmlidXRlcy5tYXAoeCA9PiB4LmF0dHJpYnV0ZSlcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gU2VxdWVsaXplVXRpbHMuZW5zdXJlQXR0cmlidXRlc1ZhbGlkaXR5KHRoaXMuY29uZmlnLmF0dHJpYnV0ZXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5jb25maWcuYXR0cmlidXRlcyAmJiBjdXN0b21BdHRyaWJ1dGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBpbmNsdWRlOiBjdXN0b21BdHRyaWJ1dGVzLm1hcCh4ID0+IHguYXR0cmlidXRlKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDdXN0b21BdHRyaWJ1dGVzKG9wdGlvbnM/OiBvYmplY3QpOiBDdXN0b21BdHRyaWJ1dGVzTW9kZWxbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5jdXN0b21BdHRyaWJ1dGVzXG4gICAgICAgICAgICAubWFwKHggPT4gKHtcbiAgICAgICAgICAgICAgICBrZXk6IHgua2V5LFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZTogeC53aXRoQ29udGV4dCh0aGlzLmRpYWxlY3RGb3JtYXR0ZXJTZXJ2aWNlKS50cmFuc2Zvcm0ob3B0aW9ucyksXG4gICAgICAgICAgICAgICAgcGF0aDogKHguY29uZmlnIGFzIGFueSkucGF0aCA/IHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogKHguY29uZmlnIGFzIGFueSkucGF0aCxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW5vaWQ6IHRydWVcbiAgICAgICAgICAgICAgICB9IDogbnVsbFxuICAgICAgICAgICAgfSBhcyBDdXN0b21BdHRyaWJ1dGVzTW9kZWwpKVxuICAgICAgICAgICAgLmZpbHRlcih4ID0+IHguYXR0cmlidXRlKTtcbiAgICB9XG59Il19
83
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvZGF0YS1maWx0ZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsd0RBQXVEO0FBU3ZELE1BQWEsZ0JBQWdCO0lBQTdCO1FBS1cscUJBQWdCLEdBQTZCLEVBQUUsQ0FBQztRQUNoRCxtQkFBYyxHQUFHLEtBQUssQ0FBQztJQXFGbEMsQ0FBQztJQW5GVSxRQUFRLENBQUMsS0FBbUI7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFlO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxhQUFhLENBQUMsVUFBaUM7UUFDbEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDakMsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFVBQW9CO1FBQy9DLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxVQUFVLENBQUM7SUFDM0MsQ0FBQztJQUVNLGdCQUFnQixDQUFDLGFBQXVCO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxTQUFpQztRQUN2RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxPQUFnQjtRQUM3QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO2dCQUM5QixPQUFPLGdDQUFjLENBQUMsd0JBQXdCLENBQzFDLGdDQUFjLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7b0JBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2lCQUNsRCxDQUFDLENBQ0wsQ0FBQzthQUNMO1lBRUQsT0FBTyxnQ0FBYyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNuRTtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtZQUM3QyxPQUFPO2dCQUNILE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2FBQ2xELENBQUM7U0FDTDtJQUNMLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxPQUFnQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0I7YUFDdkIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNQLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRztZQUNWLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztZQUMvQixJQUFJLEVBQUcsQ0FBQyxDQUFDLE1BQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUMzQixJQUFJLEVBQUcsQ0FBQyxDQUFDLE1BQWMsQ0FBQyxJQUFJO2dCQUM1QixRQUFRLEVBQUUsSUFBSTthQUNqQixDQUFDLENBQUMsQ0FBQyxJQUFJO1NBQ2UsQ0FBQSxDQUFDO2FBQzNCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sMkJBQTJCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQjthQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQzthQUMxQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ1AsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtZQUMzQixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJO1lBQ25CLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDckIsUUFBUSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRU0sdUJBQXVCOztRQUMxQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckIsT0FBTyxFQUFFLENBQUM7U0FDYjtRQUVELElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzNCLE9BQU8sZ0NBQWMsQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsS0FBaUIsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUM5RztRQUVELE1BQU0sb0JBQW9CLEdBQUcsZ0NBQWMsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsS0FBaUIsQ0FBQyxDQUFDO1FBQ2pHLE1BQU0sVUFBVSxHQUFHLGdDQUFjLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLEtBQWlCLEVBQUUsTUFBQSxJQUFJLENBQUMsVUFBc0IsbUNBQUksRUFBRSxDQUFDLENBQUM7UUFDL0gsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDckIsVUFBdUIsYUFBdkIsVUFBVSx1QkFBVixVQUFVLENBQWUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RixvQkFBb0IsQ0FBQztJQUM3QixDQUFDO0NBQ0o7QUEzRkQsNENBMkZDIiwiZmlsZSI6ImxpYi9tb2RlbHMvZGF0YS1maWx0ZXIubW9kZWwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaW5kQXR0cmlidXRlT3B0aW9ucyB9IGZyb20gXCJzZXF1ZWxpemVcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcInNlcXVlbGl6ZS10eXBlc2NyaXB0XCI7XG5pbXBvcnQgeyBDdXN0b21BdHRyaWJ1dGVzQ29uZmlnLCBDdXN0b21BdHRyaWJ1dGVzTW9kZWwgfSBmcm9tIFwiLi9jdXN0b20tYXR0cmlidXRlcy5tb2RlbFwiO1xuaW1wb3J0IHsgSW5jbHVkZUNvbmZpZyB9IGZyb20gXCIuL2luY2x1ZGUubW9kZWxcIjtcbmltcG9ydCB7IE0sIFNlcXVlbGl6ZVV0aWxzIH0gZnJvbSBcIi4uL3NlcXVlbGl6ZS51dGlsc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFGaWx0ZXJDb25maWdNb2RlbCB7XG4gICAgbW9kZWw6IHR5cGVvZiBNb2RlbDtcbiAgICBhdHRyaWJ1dGVzPzogRmluZEF0dHJpYnV0ZU9wdGlvbnM7XG4gICAgZXhwb3J0Q29sdW1ucz86IHN0cmluZ1tdO1xuICAgIGN1c3RvbUF0dHJpYnV0ZXM6IEN1c3RvbUF0dHJpYnV0ZXNDb25maWdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIERhdGFGaWx0ZXJDb25maWcgaW1wbGVtZW50cyBEYXRhRmlsdGVyQ29uZmlnTW9kZWwge1xuICAgIHB1YmxpYyBtb2RlbDogdHlwZW9mIE1vZGVsO1xuICAgIHB1YmxpYyBhdHRyaWJ1dGVzPzogRmluZEF0dHJpYnV0ZU9wdGlvbnM7XG4gICAgcHVibGljIHNlYXJjaGFibGVBdHRyaWJ1dGVzPzogc3RyaW5nW107XG4gICAgcHVibGljIGV4cG9ydENvbHVtbnM/OiBzdHJpbmdbXTtcbiAgICBwdWJsaWMgY3VzdG9tQXR0cmlidXRlczogQ3VzdG9tQXR0cmlidXRlc0NvbmZpZ1tdID0gW107XG4gICAgcHVibGljIGlnbm9yZUluU2VhcmNoID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgc2V0TW9kZWwobW9kZWw6IHR5cGVvZiBNb2RlbCkge1xuICAgICAgICB0aGlzLm1vZGVsID0gbW9kZWw7XG4gICAgfVxuXG4gICAgcHVibGljIHNldElnbm9yZUluUGF0aChpZ25vcmU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pZ25vcmVJblNlYXJjaCA9IGlnbm9yZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0QXR0cmlidXRlcyhhdHRyaWJ1dGVzPzogRmluZEF0dHJpYnV0ZU9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGVzID0gYXR0cmlidXRlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0U2VhcmNoYWJsZUF0dHJpYnV0ZXMoYXR0cmlidXRlczogc3RyaW5nW10pIHtcbiAgICAgICAgdGhpcy5zZWFyY2hhYmxlQXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEV4cG9ydENvbHVtbnMoZXhwb3J0Q29sdW1uczogc3RyaW5nW10pIHtcbiAgICAgICAgdGhpcy5leHBvcnRDb2x1bW5zID0gZXhwb3J0Q29sdW1ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ3VzdG9tQXR0cmlidXRlKGF0dHJpYnV0ZTogQ3VzdG9tQXR0cmlidXRlc0NvbmZpZykge1xuICAgICAgICB0aGlzLmN1c3RvbUF0dHJpYnV0ZXMucHVzaChhdHRyaWJ1dGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm1BdHRyaWJ1dGVzQ29uZmlnKG9wdGlvbnM/OiBvYmplY3QpOiBGaW5kQXR0cmlidXRlT3B0aW9ucyB7XG4gICAgICAgIGNvbnN0IGN1c3RvbUF0dHJpYnV0ZXMgPSB0aGlzLmdldEN1c3RvbUF0dHJpYnV0ZXMob3B0aW9ucyk7XG4gICAgICAgIGlmICh0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1c3RvbUF0dHJpYnV0ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFNlcXVlbGl6ZVV0aWxzLmVuc3VyZUF0dHJpYnV0ZXNWYWxpZGl0eShcbiAgICAgICAgICAgICAgICAgICAgU2VxdWVsaXplVXRpbHMubWVyZ2VBdHRyaWJ1dGVzKHRoaXMuYXR0cmlidXRlcywge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZTogY3VzdG9tQXR0cmlidXRlcy5tYXAoeCA9PiB4LmF0dHJpYnV0ZSlcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gU2VxdWVsaXplVXRpbHMuZW5zdXJlQXR0cmlidXRlc1ZhbGlkaXR5KHRoaXMuYXR0cmlidXRlcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmF0dHJpYnV0ZXMgJiYgY3VzdG9tQXR0cmlidXRlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaW5jbHVkZTogY3VzdG9tQXR0cmlidXRlcy5tYXAoeCA9PiB4LmF0dHJpYnV0ZSlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3VzdG9tQXR0cmlidXRlcyhvcHRpb25zPzogb2JqZWN0KTogQ3VzdG9tQXR0cmlidXRlc01vZGVsW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXN0b21BdHRyaWJ1dGVzXG4gICAgICAgICAgICAubWFwKHggPT4gKHtcbiAgICAgICAgICAgICAgICBrZXk6IHgua2V5LFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZTogeC50cmFuc2Zvcm0ob3B0aW9ucyksXG4gICAgICAgICAgICAgICAgcGF0aDogKHguY29uZmlnIGFzIGFueSkucGF0aCA/IHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogKHguY29uZmlnIGFzIGFueSkucGF0aCxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW5vaWQ6IHRydWVcbiAgICAgICAgICAgICAgICB9IDogbnVsbFxuICAgICAgICAgICAgfSBhcyBDdXN0b21BdHRyaWJ1dGVzTW9kZWwpKVxuICAgICAgICAgICAgLmZpbHRlcih4ID0+IHguYXR0cmlidXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3VzdG9tQXR0cmlidXRlc0luY2x1ZGVzKCk6IEluY2x1ZGVDb25maWdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1c3RvbUF0dHJpYnV0ZXNcbiAgICAgICAgICAgIC5maWx0ZXIoeCA9PiB4LmNvbmZpZy5wYXRoKVxuICAgICAgICAgICAgLm1hcCh4ID0+ICh7XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogeyBpbmNsdWRlOiBbXSB9LFxuICAgICAgICAgICAgICAgIHBhdGg6IHguY29uZmlnLnBhdGgsXG4gICAgICAgICAgICAgICAgd2hlcmU6IHguY29uZmlnLndoZXJlLFxuICAgICAgICAgICAgICAgIHBhcmFub2lkOiB0cnVlXG4gICAgICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNlYXJjaGFibGVBdHRyaWJ1dGVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgaWYgKHRoaXMuaWdub3JlSW5TZWFyY2gpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaGFibGVBdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gU2VxdWVsaXplVXRpbHMuZ2V0TW9kZWxTZWFyY2hhYmxlRmllbGRBdHRyaWJ1dGVzKHRoaXMubW9kZWwgYXMgdHlwZW9mIE0sIHRoaXMuc2VhcmNoYWJsZUF0dHJpYnV0ZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2VhcmNoYWJsZUF0dHJpYnV0ZXMgPSBTZXF1ZWxpemVVdGlscy5nZXRNb2RlbFNlYXJjaGFibGVBdHRyaWJ1dGVzKHRoaXMubW9kZWwgYXMgdHlwZW9mIE0pO1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gU2VxdWVsaXplVXRpbHMuZ2V0TW9kZWxTZWFyY2hhYmxlRmllbGRBdHRyaWJ1dGVzKHRoaXMubW9kZWwgYXMgdHlwZW9mIE0sIHRoaXMuYXR0cmlidXRlcyBhcyBzdHJpbmdbXSA/PyBbXSk7XG4gICAgICAgIHJldHVybiBhdHRyaWJ1dGVzLmxlbmd0aCA/XG4gICAgICAgICAgICAoYXR0cmlidXRlcyBhcyBzdHJpbmdbXSk/LmZpbHRlcih4ID0+IHNlYXJjaGFibGVBdHRyaWJ1dGVzLnNvbWUoYXR0ciA9PiBhdHRyID09PSB4KSkgOlxuICAgICAgICAgICAgc2VhcmNoYWJsZUF0dHJpYnV0ZXM7XG4gICAgfVxufVxuIl19
@@ -1,6 +1,5 @@
1
1
  import { ProjectionAlias } from "sequelize";
2
- import { DialectFormatterService } from "../services/dialect-formatter.service";
3
- import { CustomAttributesConfig, CustomAttributesContext, CustomAttributesOptionConfig } from "./custom-attributes.model";
2
+ import { CustomAttributesConfig, CustomAttributesOptionConfig } from "./custom-attributes.model";
4
3
  export interface BaseDistanceConfig extends CustomAttributesOptionConfig {
5
4
  coordinates: (option?: any) => [number, number];
6
5
  srid?: number;
@@ -13,18 +12,12 @@ export interface DistanceConfigWithLatLng {
13
12
  lngAttribute: string;
14
13
  }
15
14
  export type DistanceConfig = BaseDistanceConfig & (DistanceConfigWithPoint | DistanceConfigWithLatLng);
16
- export declare class DistanceAttributesConfig implements CustomAttributesConfig<DistanceConfig, DistanceAttributesContext> {
15
+ export declare class DistanceAttributesConfig implements CustomAttributesConfig<DistanceConfig> {
17
16
  key: string;
18
17
  config: DistanceConfig;
19
18
  type: string;
20
19
  constructor(key: string, config: DistanceConfig);
21
- withContext(dialectFormatterService: DialectFormatterService): DistanceAttributesContext;
22
- shouldGroupBy(): boolean;
23
- }
24
- export declare class DistanceAttributesContext extends CustomAttributesContext {
25
- private config;
26
- private dialectFormatterService;
27
- constructor(config: DistanceAttributesConfig, dialectFormatterService: DialectFormatterService);
28
20
  transform(options: object, path?: string): string | ProjectionAlias;
21
+ shouldGroupBy(): boolean;
29
22
  private getPointAttribute;
30
23
  }
@@ -1,34 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DistanceAttributesContext = exports.DistanceAttributesConfig = void 0;
3
+ exports.DistanceAttributesConfig = void 0;
4
4
  const sequelize_1 = require("sequelize");
5
- const custom_attributes_model_1 = require("./custom-attributes.model");
5
+ const sequelize_utils_1 = require("../sequelize.utils");
6
6
  class DistanceAttributesConfig {
7
7
  constructor(key, config) {
8
8
  this.key = key;
9
9
  this.config = config;
10
10
  this.type = "distance";
11
11
  }
12
- withContext(dialectFormatterService) {
13
- return new DistanceAttributesContext(this, dialectFormatterService);
14
- }
15
- shouldGroupBy() {
16
- return false;
17
- }
18
- }
19
- exports.DistanceAttributesConfig = DistanceAttributesConfig;
20
- class DistanceAttributesContext extends custom_attributes_model_1.CustomAttributesContext {
21
- constructor(config, dialectFormatterService) {
22
- super();
23
- this.config = config;
24
- this.dialectFormatterService = dialectFormatterService;
25
- }
26
12
  transform(options, path) {
27
13
  var _a, _b;
28
14
  if (!options) {
29
15
  return null;
30
16
  }
31
- const coordinates = this.config.config.coordinates(options);
17
+ const coordinates = this.config.coordinates(options);
32
18
  if (!coordinates || coordinates.length < 2) {
33
19
  return null;
34
20
  }
@@ -36,23 +22,26 @@ class DistanceAttributesContext extends custom_attributes_model_1.CustomAttribut
36
22
  if (typeof latitude !== "number" || typeof longitude !== "number") {
37
23
  return null;
38
24
  }
39
- if (path || this.config.config.path) {
40
- path = [path, this.config.config.path].filter(x => x).join(".");
25
+ if (path || this.config.path) {
26
+ path = [path, this.config.path].filter(x => x).join(".");
41
27
  }
42
- const location = (0, sequelize_1.fn)("ST_GeometryFromText", (0, sequelize_1.literal)(`'POINT(${latitude} ${longitude})'`), (_a = this.config.config.srid) !== null && _a !== void 0 ? _a : 0);
43
- return [(0, sequelize_1.fn)("ST_Distance_Sphere", this.getPointAttribute(path), location), (_b = this.config.config.name) !== null && _b !== void 0 ? _b : this.config.key];
28
+ const location = (0, sequelize_1.fn)("ST_GeometryFromText", (0, sequelize_1.literal)(`'POINT(${latitude} ${longitude})'`), (_a = this.config.srid) !== null && _a !== void 0 ? _a : 0);
29
+ return [(0, sequelize_1.fn)("ST_Distance_Sphere", this.getPointAttribute(path), location), (_b = this.config.name) !== null && _b !== void 0 ? _b : this.key];
30
+ }
31
+ shouldGroupBy() {
32
+ return false;
44
33
  }
45
34
  getPointAttribute(path) {
46
- if (this.config.config.attribute) {
47
- const att = this.config.config.attribute;
48
- return (0, sequelize_1.literal)(path ? this.dialectFormatterService.getLiteralFullName(att, path) : att);
35
+ if (this.config.attribute) {
36
+ const att = this.config.attribute;
37
+ return (0, sequelize_1.literal)(path ? sequelize_utils_1.SequelizeUtils.getLiteralFullName(att, path) : att);
49
38
  }
50
- const lat = path ? (0, sequelize_1.literal)(this.dialectFormatterService.getLiteralFullName(this.config.config.latAttribute, path)) : this.config.config.latAttribute;
51
- const lng = path ? (0, sequelize_1.literal)(this.dialectFormatterService.getLiteralFullName(this.config.config.lngAttribute, path)) : this.config.config.lngAttribute;
39
+ const lat = path ? (0, sequelize_1.literal)(sequelize_utils_1.SequelizeUtils.getLiteralFullName(this.config.latAttribute, path)) : this.config.latAttribute;
40
+ const lng = path ? (0, sequelize_1.literal)(sequelize_utils_1.SequelizeUtils.getLiteralFullName(this.config.lngAttribute, path)) : this.config.lngAttribute;
52
41
  const point = (0, sequelize_1.fn)("Point", lng, lat);
53
- return this.config.config.srid ? (0, sequelize_1.fn)("ST_SRID", point, this.config.config.srid) : point;
42
+ return this.config.srid ? (0, sequelize_1.fn)("ST_SRID", point, this.config.srid) : point;
54
43
  }
55
44
  }
56
- exports.DistanceAttributesContext = DistanceAttributesContext;
45
+ exports.DistanceAttributesConfig = DistanceAttributesConfig;
57
46
 
58
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvZGlzdGFuY2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXlEO0FBRXpELHVFQUltQztBQWtCbkMsTUFBYSx3QkFBd0I7SUFHakMsWUFBbUIsR0FBVyxFQUFTLE1BQXNCO1FBQTFDLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUZ0RCxTQUFJLEdBQUcsVUFBVSxDQUFDO0lBRXVDLENBQUM7SUFFMUQsV0FBVyxDQUFDLHVCQUFnRDtRQUMvRCxPQUFPLElBQUkseUJBQXlCLENBQUMsSUFBSSxFQUFFLHVCQUF1QixDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVNLGFBQWE7UUFDaEIsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztDQUNKO0FBWkQsNERBWUM7QUFFRCxNQUFhLHlCQUEwQixTQUFRLGlEQUF1QjtJQUNsRSxZQUFvQixNQUFnQyxFQUFVLHVCQUFnRDtRQUMxRyxLQUFLLEVBQUUsQ0FBQztRQURRLFdBQU0sR0FBTixNQUFNLENBQTBCO1FBQVUsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtJQUU5RyxDQUFDO0lBRU0sU0FBUyxDQUFDLE9BQWUsRUFBRSxJQUFhOztRQUMzQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3hDLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxNQUFNLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxHQUFHLFdBQVcsQ0FBQztRQUMxQyxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUU7WUFDL0QsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtZQUNqQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ25FO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBQSxjQUFFLEVBQUMscUJBQXFCLEVBQUUsSUFBQSxtQkFBTyxFQUFDLFVBQVUsUUFBUSxJQUFJLFNBQVMsSUFBSSxDQUFDLEVBQUUsTUFBQSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLG1DQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3ZILE9BQU8sQ0FBQyxJQUFBLGNBQUUsRUFBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxDQUFDLEVBQUUsTUFBQSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLG1DQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUgsQ0FBQztJQUVPLGlCQUFpQixDQUFDLElBQVk7UUFDbEMsSUFBSyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQWtDLENBQUMsU0FBUyxFQUFFO1lBQzNELE1BQU0sR0FBRyxHQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBa0MsQ0FBQyxTQUFTLENBQUM7WUFDdEUsT0FBTyxJQUFBLG1CQUFPLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMzRjtRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBQSxtQkFBTyxFQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBa0IsQ0FBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQW1DLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBbUMsQ0FBQyxZQUFZLENBQUM7UUFDak4sTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFBLG1CQUFPLEVBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGtCQUFrQixDQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBbUMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFtQyxDQUFDLFlBQVksQ0FBQztRQUNqTixNQUFNLEtBQUssR0FBRyxJQUFBLGNBQUUsRUFBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFBLGNBQUUsRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDM0YsQ0FBQztDQUNKO0FBdENELDhEQXNDQyIsImZpbGUiOiJsaWIvbW9kZWxzL2Rpc3RhbmNlLm1vZGVsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm4sIGxpdGVyYWwsIFByb2plY3Rpb25BbGlhcyB9IGZyb20gXCJzZXF1ZWxpemVcIjtcbmltcG9ydCB7IERpYWxlY3RGb3JtYXR0ZXJTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL2RpYWxlY3QtZm9ybWF0dGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7XG4gICAgQ3VzdG9tQXR0cmlidXRlc0NvbmZpZyxcbiAgICBDdXN0b21BdHRyaWJ1dGVzQ29udGV4dCxcbiAgICBDdXN0b21BdHRyaWJ1dGVzT3B0aW9uQ29uZmlnXG59IGZyb20gXCIuL2N1c3RvbS1hdHRyaWJ1dGVzLm1vZGVsXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZURpc3RhbmNlQ29uZmlnIGV4dGVuZHMgQ3VzdG9tQXR0cmlidXRlc09wdGlvbkNvbmZpZyB7XG4gICAgY29vcmRpbmF0ZXM6IChvcHRpb24/KSA9PiBbbnVtYmVyLCBudW1iZXJdO1xuICAgIHNyaWQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzdGFuY2VDb25maWdXaXRoUG9pbnQge1xuICAgIGF0dHJpYnV0ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpc3RhbmNlQ29uZmlnV2l0aExhdExuZyB7XG4gICAgbGF0QXR0cmlidXRlOiBzdHJpbmc7XG4gICAgbG5nQXR0cmlidXRlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIERpc3RhbmNlQ29uZmlnID0gQmFzZURpc3RhbmNlQ29uZmlnICYgKERpc3RhbmNlQ29uZmlnV2l0aFBvaW50IHwgRGlzdGFuY2VDb25maWdXaXRoTGF0TG5nKTtcblxuZXhwb3J0IGNsYXNzIERpc3RhbmNlQXR0cmlidXRlc0NvbmZpZyBpbXBsZW1lbnRzIEN1c3RvbUF0dHJpYnV0ZXNDb25maWc8RGlzdGFuY2VDb25maWcsIERpc3RhbmNlQXR0cmlidXRlc0NvbnRleHQ+IHtcbiAgICBwdWJsaWMgdHlwZSA9IFwiZGlzdGFuY2VcIjtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBrZXk6IHN0cmluZywgcHVibGljIGNvbmZpZzogRGlzdGFuY2VDb25maWcpIHt9XG5cbiAgICBwdWJsaWMgd2l0aENvbnRleHQoZGlhbGVjdEZvcm1hdHRlclNlcnZpY2U6IERpYWxlY3RGb3JtYXR0ZXJTZXJ2aWNlKTogRGlzdGFuY2VBdHRyaWJ1dGVzQ29udGV4dCB7XG4gICAgICAgIHJldHVybiBuZXcgRGlzdGFuY2VBdHRyaWJ1dGVzQ29udGV4dCh0aGlzLCBkaWFsZWN0Rm9ybWF0dGVyU2VydmljZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3VsZEdyb3VwQnkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEaXN0YW5jZUF0dHJpYnV0ZXNDb250ZXh0IGV4dGVuZHMgQ3VzdG9tQXR0cmlidXRlc0NvbnRleHQge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnOiBEaXN0YW5jZUF0dHJpYnV0ZXNDb25maWcsIHByaXZhdGUgZGlhbGVjdEZvcm1hdHRlclNlcnZpY2U6IERpYWxlY3RGb3JtYXR0ZXJTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHRyYW5zZm9ybShvcHRpb25zOiBvYmplY3QsIHBhdGg/OiBzdHJpbmcpOiBzdHJpbmcgfCBQcm9qZWN0aW9uQWxpYXMge1xuICAgICAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29vcmRpbmF0ZXMgPSB0aGlzLmNvbmZpZy5jb25maWcuY29vcmRpbmF0ZXMob3B0aW9ucyk7XG4gICAgICAgIGlmICghY29vcmRpbmF0ZXMgfHwgY29vcmRpbmF0ZXMubGVuZ3RoIDwgMikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBbbGF0aXR1ZGUsIGxvbmdpdHVkZV0gPSBjb29yZGluYXRlcztcbiAgICAgICAgaWYgKHR5cGVvZiBsYXRpdHVkZSAhPT0gXCJudW1iZXJcIiB8fCB0eXBlb2YgbG9uZ2l0dWRlICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGF0aCB8fCB0aGlzLmNvbmZpZy5jb25maWcucGF0aCkge1xuICAgICAgICAgICAgcGF0aCA9IFtwYXRoLCB0aGlzLmNvbmZpZy5jb25maWcucGF0aF0uZmlsdGVyKHggPT4geCkuam9pbihcIi5cIik7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsb2NhdGlvbiA9IGZuKFwiU1RfR2VvbWV0cnlGcm9tVGV4dFwiLCBsaXRlcmFsKGAnUE9JTlQoJHtsYXRpdHVkZX0gJHtsb25naXR1ZGV9KSdgKSwgdGhpcy5jb25maWcuY29uZmlnLnNyaWQgPz8gMCk7XG4gICAgICAgIHJldHVybiBbZm4oXCJTVF9EaXN0YW5jZV9TcGhlcmVcIiwgdGhpcy5nZXRQb2ludEF0dHJpYnV0ZShwYXRoKSwgbG9jYXRpb24pLCB0aGlzLmNvbmZpZy5jb25maWcubmFtZSA/PyB0aGlzLmNvbmZpZy5rZXldO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UG9pbnRBdHRyaWJ1dGUocGF0aDogc3RyaW5nKSB7XG4gICAgICAgIGlmICgodGhpcy5jb25maWcuY29uZmlnIGFzIERpc3RhbmNlQ29uZmlnV2l0aFBvaW50KS5hdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGF0dCA9ICh0aGlzLmNvbmZpZy5jb25maWcgYXMgRGlzdGFuY2VDb25maWdXaXRoUG9pbnQpLmF0dHJpYnV0ZTtcbiAgICAgICAgICAgIHJldHVybiBsaXRlcmFsKHBhdGggPyB0aGlzLmRpYWxlY3RGb3JtYXR0ZXJTZXJ2aWNlLmdldExpdGVyYWxGdWxsTmFtZShhdHQsIHBhdGgpIDogYXR0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxhdCA9IHBhdGggPyBsaXRlcmFsKHRoaXMuZGlhbGVjdEZvcm1hdHRlclNlcnZpY2UuZ2V0TGl0ZXJhbEZ1bGxOYW1lKCh0aGlzLmNvbmZpZy5jb25maWcgYXMgRGlzdGFuY2VDb25maWdXaXRoTGF0TG5nKS5sYXRBdHRyaWJ1dGUsIHBhdGgpKSA6ICh0aGlzLmNvbmZpZy5jb25maWcgYXMgRGlzdGFuY2VDb25maWdXaXRoTGF0TG5nKS5sYXRBdHRyaWJ1dGU7XG4gICAgICAgIGNvbnN0IGxuZyA9IHBhdGggPyBsaXRlcmFsKHRoaXMuZGlhbGVjdEZvcm1hdHRlclNlcnZpY2UuZ2V0TGl0ZXJhbEZ1bGxOYW1lKCh0aGlzLmNvbmZpZy5jb25maWcgYXMgRGlzdGFuY2VDb25maWdXaXRoTGF0TG5nKS5sbmdBdHRyaWJ1dGUsIHBhdGgpKSA6ICh0aGlzLmNvbmZpZy5jb25maWcgYXMgRGlzdGFuY2VDb25maWdXaXRoTGF0TG5nKS5sbmdBdHRyaWJ1dGU7XG4gICAgICAgIGNvbnN0IHBvaW50ID0gZm4oXCJQb2ludFwiLCBsbmcsIGxhdCk7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5jb25maWcuc3JpZCA/IGZuKFwiU1RfU1JJRFwiLCBwb2ludCwgdGhpcy5jb25maWcuY29uZmlnLnNyaWQpIDogcG9pbnQ7XG4gICAgfVxufSJdfQ==
47
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvZGlzdGFuY2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXlEO0FBRXpELHdEQUFvRDtBQW1CcEQsTUFBYSx3QkFBd0I7SUFHakMsWUFBbUIsR0FBVyxFQUFTLE1BQXNCO1FBQTFDLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUZ0RCxTQUFJLEdBQUcsVUFBVSxDQUFDO0lBRXVDLENBQUM7SUFFMUQsU0FBUyxDQUFDLE9BQWUsRUFBRSxJQUFhOztRQUMzQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDeEMsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELE1BQU0sQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLEdBQUcsV0FBVyxDQUFDO1FBQzFDLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsRUFBRTtZQUMvRCxPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDMUIsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzVEO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBQSxjQUFFLEVBQUMscUJBQXFCLEVBQUUsSUFBQSxtQkFBTyxFQUFDLFVBQVUsUUFBUSxJQUFJLFNBQVMsSUFBSSxDQUFDLEVBQUUsTUFBQSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksbUNBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEgsT0FBTyxDQUFDLElBQUEsY0FBRSxFQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLENBQUMsRUFBRSxNQUFBLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxtQ0FBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVNLGFBQWE7UUFDaEIsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVPLGlCQUFpQixDQUFDLElBQVk7UUFDbEMsSUFBSyxJQUFJLENBQUMsTUFBa0MsQ0FBQyxTQUFTLEVBQUU7WUFDcEQsTUFBTSxHQUFHLEdBQUksSUFBSSxDQUFDLE1BQWtDLENBQUMsU0FBUyxDQUFDO1lBQy9ELE9BQU8sSUFBQSxtQkFBTyxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZ0NBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzdFO1FBRUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFBLG1CQUFPLEVBQUMsZ0NBQWMsQ0FBQyxrQkFBa0IsQ0FBRSxJQUFJLENBQUMsTUFBbUMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLE1BQW1DLENBQUMsWUFBWSxDQUFDO1FBQ3JMLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBQSxtQkFBTyxFQUFDLGdDQUFjLENBQUMsa0JBQWtCLENBQUUsSUFBSSxDQUFDLE1BQW1DLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxNQUFtQyxDQUFDLFlBQVksQ0FBQztRQUNyTCxNQUFNLEtBQUssR0FBRyxJQUFBLGNBQUUsRUFBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUEsY0FBRSxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzdFLENBQUM7Q0FDSjtBQTFDRCw0REEwQ0MiLCJmaWxlIjoibGliL21vZGVscy9kaXN0YW5jZS5tb2RlbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZuLCBsaXRlcmFsLCBQcm9qZWN0aW9uQWxpYXMgfSBmcm9tIFwic2VxdWVsaXplXCI7XG5pbXBvcnQgeyBHcm91cE9wdGlvbiB9IGZyb20gXCJzZXF1ZWxpemUvdHlwZXMvbW9kZWxcIjtcbmltcG9ydCB7IFNlcXVlbGl6ZVV0aWxzIH0gZnJvbSBcIi4uL3NlcXVlbGl6ZS51dGlsc1wiO1xuaW1wb3J0IHsgQ3VzdG9tQXR0cmlidXRlc0NvbmZpZywgQ3VzdG9tQXR0cmlidXRlc09wdGlvbkNvbmZpZyB9IGZyb20gXCIuL2N1c3RvbS1hdHRyaWJ1dGVzLm1vZGVsXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZURpc3RhbmNlQ29uZmlnIGV4dGVuZHMgQ3VzdG9tQXR0cmlidXRlc09wdGlvbkNvbmZpZyB7XG4gICAgY29vcmRpbmF0ZXM6IChvcHRpb24/KSA9PiBbbnVtYmVyLCBudW1iZXJdO1xuICAgIHNyaWQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzdGFuY2VDb25maWdXaXRoUG9pbnQge1xuICAgIGF0dHJpYnV0ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpc3RhbmNlQ29uZmlnV2l0aExhdExuZyB7XG4gICAgbGF0QXR0cmlidXRlOiBzdHJpbmc7XG4gICAgbG5nQXR0cmlidXRlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIERpc3RhbmNlQ29uZmlnID0gQmFzZURpc3RhbmNlQ29uZmlnICYgKERpc3RhbmNlQ29uZmlnV2l0aFBvaW50IHwgRGlzdGFuY2VDb25maWdXaXRoTGF0TG5nKTtcblxuZXhwb3J0IGNsYXNzIERpc3RhbmNlQXR0cmlidXRlc0NvbmZpZyBpbXBsZW1lbnRzIEN1c3RvbUF0dHJpYnV0ZXNDb25maWc8RGlzdGFuY2VDb25maWc+IHtcbiAgICBwdWJsaWMgdHlwZSA9IFwiZGlzdGFuY2VcIjtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBrZXk6IHN0cmluZywgcHVibGljIGNvbmZpZzogRGlzdGFuY2VDb25maWcpIHt9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtKG9wdGlvbnM6IG9iamVjdCwgcGF0aD86IHN0cmluZyk6IHN0cmluZyB8IFByb2plY3Rpb25BbGlhcyB7XG4gICAgICAgIGlmICghb3B0aW9ucykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb29yZGluYXRlcyA9IHRoaXMuY29uZmlnLmNvb3JkaW5hdGVzKG9wdGlvbnMpO1xuICAgICAgICBpZiAoIWNvb3JkaW5hdGVzIHx8IGNvb3JkaW5hdGVzLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgW2xhdGl0dWRlLCBsb25naXR1ZGVdID0gY29vcmRpbmF0ZXM7XG4gICAgICAgIGlmICh0eXBlb2YgbGF0aXR1ZGUgIT09IFwibnVtYmVyXCIgfHwgdHlwZW9mIGxvbmdpdHVkZSAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGggfHwgdGhpcy5jb25maWcucGF0aCkge1xuICAgICAgICAgICAgcGF0aCA9IFtwYXRoLCB0aGlzLmNvbmZpZy5wYXRoXS5maWx0ZXIoeCA9PiB4KS5qb2luKFwiLlwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxvY2F0aW9uID0gZm4oXCJTVF9HZW9tZXRyeUZyb21UZXh0XCIsIGxpdGVyYWwoYCdQT0lOVCgke2xhdGl0dWRlfSAke2xvbmdpdHVkZX0pJ2ApLCB0aGlzLmNvbmZpZy5zcmlkID8/IDApO1xuICAgICAgICByZXR1cm4gW2ZuKFwiU1RfRGlzdGFuY2VfU3BoZXJlXCIsIHRoaXMuZ2V0UG9pbnRBdHRyaWJ1dGUocGF0aCksIGxvY2F0aW9uKSwgdGhpcy5jb25maWcubmFtZSA/PyB0aGlzLmtleV07XG4gICAgfVxuXG4gICAgcHVibGljIHNob3VsZEdyb3VwQnkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFBvaW50QXR0cmlidXRlKHBhdGg6IHN0cmluZykge1xuICAgICAgICBpZiAoKHRoaXMuY29uZmlnIGFzIERpc3RhbmNlQ29uZmlnV2l0aFBvaW50KS5hdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGF0dCA9ICh0aGlzLmNvbmZpZyBhcyBEaXN0YW5jZUNvbmZpZ1dpdGhQb2ludCkuYXR0cmlidXRlO1xuICAgICAgICAgICAgcmV0dXJuIGxpdGVyYWwocGF0aCA/IFNlcXVlbGl6ZVV0aWxzLmdldExpdGVyYWxGdWxsTmFtZShhdHQsIHBhdGgpIDogYXR0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxhdCA9IHBhdGggPyBsaXRlcmFsKFNlcXVlbGl6ZVV0aWxzLmdldExpdGVyYWxGdWxsTmFtZSgodGhpcy5jb25maWcgYXMgRGlzdGFuY2VDb25maWdXaXRoTGF0TG5nKS5sYXRBdHRyaWJ1dGUsIHBhdGgpKSA6ICh0aGlzLmNvbmZpZyBhcyBEaXN0YW5jZUNvbmZpZ1dpdGhMYXRMbmcpLmxhdEF0dHJpYnV0ZTtcbiAgICAgICAgY29uc3QgbG5nID0gcGF0aCA/IGxpdGVyYWwoU2VxdWVsaXplVXRpbHMuZ2V0TGl0ZXJhbEZ1bGxOYW1lKCh0aGlzLmNvbmZpZyBhcyBEaXN0YW5jZUNvbmZpZ1dpdGhMYXRMbmcpLmxuZ0F0dHJpYnV0ZSwgcGF0aCkpIDogKHRoaXMuY29uZmlnIGFzIERpc3RhbmNlQ29uZmlnV2l0aExhdExuZykubG5nQXR0cmlidXRlO1xuICAgICAgICBjb25zdCBwb2ludCA9IGZuKFwiUG9pbnRcIiwgbG5nLCBsYXQpO1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcuc3JpZCA/IGZuKFwiU1RfU1JJRFwiLCBwb2ludCwgdGhpcy5jb25maWcuc3JpZCkgOiBwb2ludDtcbiAgICB9XG59XG4iXX0=
@@ -8,6 +8,6 @@ var ExportTypes;
8
8
  ExportTypes["CSV"] = "csv";
9
9
  ExportTypes["PDF"] = "pdf";
10
10
  ExportTypes["ZIP"] = "zip";
11
- })(ExportTypes || (exports.ExportTypes = ExportTypes = {}));
11
+ })(ExportTypes = exports.ExportTypes || (exports.ExportTypes = {}));
12
12
 
13
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvZXhwb3J0LXR5cGVzLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQVksV0FNWDtBQU5ELFdBQVksV0FBVztJQUNuQiw0QkFBWSxDQUFBO0lBQ1osNEJBQVksQ0FBQTtJQUNaLDBCQUFVLENBQUE7SUFDViwwQkFBVSxDQUFBO0lBQ1YsMEJBQVUsQ0FBQTtBQUNkLENBQUMsRUFOVyxXQUFXLDJCQUFYLFdBQVcsUUFNdEIiLCJmaWxlIjoibGliL21vZGVscy9leHBvcnQtdHlwZXMubW9kZWwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBFeHBvcnRUeXBlcyB7XG4gICAgWExTWD0gXCJ4bHN4XCIsXG4gICAgSFRNTD0gXCJodG1sXCIsXG4gICAgQ1NWPSBcImNzdlwiLFxuICAgIFBERj0gXCJwZGZcIixcbiAgICBaSVA9IFwiemlwXCIsXG59XG4iXX0=
13
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvZXhwb3J0LXR5cGVzLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQVksV0FNWDtBQU5ELFdBQVksV0FBVztJQUNuQiw0QkFBWSxDQUFBO0lBQ1osNEJBQVksQ0FBQTtJQUNaLDBCQUFVLENBQUE7SUFDViwwQkFBVSxDQUFBO0lBQ1YsMEJBQVUsQ0FBQTtBQUNkLENBQUMsRUFOVyxXQUFXLEdBQVgsbUJBQVcsS0FBWCxtQkFBVyxRQU10QiIsImZpbGUiOiJsaWIvbW9kZWxzL2V4cG9ydC10eXBlcy5tb2RlbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEV4cG9ydFR5cGVzIHtcbiAgICBYTFNYPSBcInhsc3hcIixcbiAgICBIVE1MPSBcImh0bWxcIixcbiAgICBDU1Y9IFwiY3N2XCIsXG4gICAgUERGPSBcInBkZlwiLFxuICAgIFpJUD0gXCJ6aXBcIixcbn1cbiJdfQ==
@@ -1,20 +1,13 @@
1
1
  import { ProjectionAlias } from "sequelize";
2
- import { DialectFormatterService } from "../services/dialect-formatter.service";
3
- import { CustomAttributesConfig, CustomAttributesContext, CustomAttributesOptionConfig } from "./custom-attributes.model";
2
+ import { CustomAttributesConfig, CustomAttributesOptionConfig } from "./custom-attributes.model";
4
3
  export interface SumConfig extends CustomAttributesOptionConfig {
5
4
  attribute: string;
6
5
  }
7
- export declare class SumAttributesConfig implements CustomAttributesConfig<SumConfig, SumAttributesContext> {
6
+ export declare class SumAttributesConfig implements CustomAttributesConfig<SumConfig> {
8
7
  key: string;
9
8
  config: SumConfig;
10
9
  type: string;
11
10
  constructor(key: string, config: SumConfig);
12
- withContext(dialectFormatterService: DialectFormatterService): SumAttributesContext;
13
- shouldGroupBy(): boolean;
14
- }
15
- export declare class SumAttributesContext extends CustomAttributesContext {
16
- private config;
17
- private dialectFormatterService;
18
- constructor(config: SumAttributesConfig, dialectFormatterService: DialectFormatterService);
19
11
  transform(options: object, path?: string): string | ProjectionAlias;
12
+ shouldGroupBy(): boolean;
20
13
  }
@@ -1,35 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SumAttributesContext = exports.SumAttributesConfig = void 0;
3
+ exports.SumAttributesConfig = void 0;
4
4
  const sequelize_1 = require("sequelize");
5
- const custom_attributes_model_1 = require("./custom-attributes.model");
5
+ const sequelize_utils_1 = require("../sequelize.utils");
6
6
  class SumAttributesConfig {
7
7
  constructor(key, config) {
8
8
  this.key = key;
9
9
  this.config = config;
10
10
  this.type = "sum";
11
11
  }
12
- withContext(dialectFormatterService) {
13
- return new SumAttributesContext(this, dialectFormatterService);
12
+ transform(options, path) {
13
+ const attribute = this.config.path
14
+ ? (0, sequelize_1.literal)(sequelize_utils_1.SequelizeUtils.getLiteralFullName(this.config.attribute, this.config.path))
15
+ : this.config.attribute;
16
+ return [(0, sequelize_1.fn)("SUM", attribute), this.key];
14
17
  }
15
18
  shouldGroupBy() {
16
19
  return true;
17
20
  }
18
21
  }
19
22
  exports.SumAttributesConfig = SumAttributesConfig;
20
- class SumAttributesContext extends custom_attributes_model_1.CustomAttributesContext {
21
- constructor(config, dialectFormatterService) {
22
- super();
23
- this.config = config;
24
- this.dialectFormatterService = dialectFormatterService;
25
- }
26
- transform(options, path) {
27
- const attribute = this.config.config.path
28
- ? (0, sequelize_1.literal)(this.dialectFormatterService.getLiteralFullName(this.config.config.attribute, this.config.config.path))
29
- : this.config.config.attribute;
30
- return [(0, sequelize_1.fn)("SUM", attribute), this.config.key];
31
- }
32
- }
33
- exports.SumAttributesContext = SumAttributesContext;
34
23
 
35
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvc3VtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUF5RDtBQUV6RCx1RUFJbUM7QUFNbkMsTUFBYSxtQkFBbUI7SUFHNUIsWUFBbUIsR0FBVyxFQUFTLE1BQWlCO1FBQXJDLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBRmpELFNBQUksR0FBRyxLQUFLLENBQUM7SUFFdUMsQ0FBQztJQUVyRCxXQUFXLENBQUMsdUJBQWdEO1FBQy9ELE9BQU8sSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU0sYUFBYTtRQUNoQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0o7QUFaRCxrREFZQztBQUVELE1BQWEsb0JBQXFCLFNBQVEsaURBQXVCO0lBQzdELFlBQW9CLE1BQTJCLEVBQVUsdUJBQWdEO1FBQ3JHLEtBQUssRUFBRSxDQUFDO1FBRFEsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFBVSw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO0lBRXpHLENBQUM7SUFFTSxTQUFTLENBQUMsT0FBZSxFQUFFLElBQWE7UUFDM0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSTtZQUNyQyxDQUFDLENBQUMsSUFBQSxtQkFBTyxFQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakgsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNuQyxPQUFPLENBQUMsSUFBQSxjQUFFLEVBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkQsQ0FBQztDQUNKO0FBWEQsb0RBV0MiLCJmaWxlIjoibGliL21vZGVscy9zdW0ubW9kZWwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmbiwgbGl0ZXJhbCwgUHJvamVjdGlvbkFsaWFzIH0gZnJvbSBcInNlcXVlbGl6ZVwiO1xuaW1wb3J0IHsgRGlhbGVjdEZvcm1hdHRlclNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvZGlhbGVjdC1mb3JtYXR0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHtcbiAgICBDdXN0b21BdHRyaWJ1dGVzQ29uZmlnLFxuICAgIEN1c3RvbUF0dHJpYnV0ZXNDb250ZXh0LFxuICAgIEN1c3RvbUF0dHJpYnV0ZXNPcHRpb25Db25maWdcbn0gZnJvbSBcIi4vY3VzdG9tLWF0dHJpYnV0ZXMubW9kZWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTdW1Db25maWcgZXh0ZW5kcyBDdXN0b21BdHRyaWJ1dGVzT3B0aW9uQ29uZmlnIHtcbiAgICBhdHRyaWJ1dGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFN1bUF0dHJpYnV0ZXNDb25maWcgaW1wbGVtZW50cyBDdXN0b21BdHRyaWJ1dGVzQ29uZmlnPFN1bUNvbmZpZywgU3VtQXR0cmlidXRlc0NvbnRleHQ+IHtcbiAgICBwdWJsaWMgdHlwZSA9IFwic3VtXCI7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMga2V5OiBzdHJpbmcsIHB1YmxpYyBjb25maWc6IFN1bUNvbmZpZykge31cblxuICAgIHB1YmxpYyB3aXRoQ29udGV4dChkaWFsZWN0Rm9ybWF0dGVyU2VydmljZTogRGlhbGVjdEZvcm1hdHRlclNlcnZpY2UpOiBTdW1BdHRyaWJ1dGVzQ29udGV4dCB7XG4gICAgICAgIHJldHVybiBuZXcgU3VtQXR0cmlidXRlc0NvbnRleHQodGhpcywgZGlhbGVjdEZvcm1hdHRlclNlcnZpY2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG91bGRHcm91cEJ5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdW1BdHRyaWJ1dGVzQ29udGV4dCBleHRlbmRzIEN1c3RvbUF0dHJpYnV0ZXNDb250ZXh0IHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZzogU3VtQXR0cmlidXRlc0NvbmZpZywgcHJpdmF0ZSBkaWFsZWN0Rm9ybWF0dGVyU2VydmljZTogRGlhbGVjdEZvcm1hdHRlclNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtKG9wdGlvbnM6IG9iamVjdCwgcGF0aD86IHN0cmluZyk6IHN0cmluZyB8IFByb2plY3Rpb25BbGlhcyB7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IHRoaXMuY29uZmlnLmNvbmZpZy5wYXRoXG4gICAgICAgICAgICA/IGxpdGVyYWwodGhpcy5kaWFsZWN0Rm9ybWF0dGVyU2VydmljZS5nZXRMaXRlcmFsRnVsbE5hbWUodGhpcy5jb25maWcuY29uZmlnLmF0dHJpYnV0ZSwgdGhpcy5jb25maWcuY29uZmlnLnBhdGgpKVxuICAgICAgICAgICAgOiB0aGlzLmNvbmZpZy5jb25maWcuYXR0cmlidXRlO1xuICAgICAgICByZXR1cm4gW2ZuKFwiU1VNXCIsIGF0dHJpYnV0ZSksIHRoaXMuY29uZmlnLmtleV07XG4gICAgfVxufSJdfQ==
24
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvc3VtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlDQUF5RDtBQUV6RCx3REFBb0Q7QUFPcEQsTUFBYSxtQkFBbUI7SUFHNUIsWUFBbUIsR0FBVyxFQUFTLE1BQWlCO1FBQXJDLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBRmpELFNBQUksR0FBRyxLQUFLLENBQUM7SUFFdUMsQ0FBQztJQUVyRCxTQUFTLENBQUMsT0FBZSxFQUFFLElBQWE7UUFDM0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJO1lBQzlCLENBQUMsQ0FBQyxJQUFBLG1CQUFPLEVBQUMsZ0NBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JGLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUM1QixPQUFPLENBQUMsSUFBQSxjQUFFLEVBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU0sYUFBYTtRQUNoQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0o7QUFmRCxrREFlQyIsImZpbGUiOiJsaWIvbW9kZWxzL3N1bS5tb2RlbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRyIH0gZnJvbSBcImRhdGUtZm5zL2xvY2FsZVwiO1xuaW1wb3J0IHsgZm4sIGxpdGVyYWwsIFByb2plY3Rpb25BbGlhcyB9IGZyb20gXCJzZXF1ZWxpemVcIjtcbmltcG9ydCB7IEdyb3VwT3B0aW9uIH0gZnJvbSBcInNlcXVlbGl6ZS90eXBlcy9tb2RlbFwiO1xuaW1wb3J0IHsgU2VxdWVsaXplVXRpbHMgfSBmcm9tIFwiLi4vc2VxdWVsaXplLnV0aWxzXCI7XG5pbXBvcnQgeyBDdXN0b21BdHRyaWJ1dGVzQ29uZmlnLCBDdXN0b21BdHRyaWJ1dGVzT3B0aW9uQ29uZmlnIH0gZnJvbSBcIi4vY3VzdG9tLWF0dHJpYnV0ZXMubW9kZWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTdW1Db25maWcgZXh0ZW5kcyBDdXN0b21BdHRyaWJ1dGVzT3B0aW9uQ29uZmlnIHtcbiAgICBhdHRyaWJ1dGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFN1bUF0dHJpYnV0ZXNDb25maWcgaW1wbGVtZW50cyBDdXN0b21BdHRyaWJ1dGVzQ29uZmlnPFN1bUNvbmZpZz4ge1xuICAgIHB1YmxpYyB0eXBlID0gXCJzdW1cIjtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBrZXk6IHN0cmluZywgcHVibGljIGNvbmZpZzogU3VtQ29uZmlnKSB7fVxuXG4gICAgcHVibGljIHRyYW5zZm9ybShvcHRpb25zOiBvYmplY3QsIHBhdGg/OiBzdHJpbmcpOiBzdHJpbmcgfCBQcm9qZWN0aW9uQWxpYXMge1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGUgPSB0aGlzLmNvbmZpZy5wYXRoXG4gICAgICAgICAgICA/IGxpdGVyYWwoU2VxdWVsaXplVXRpbHMuZ2V0TGl0ZXJhbEZ1bGxOYW1lKHRoaXMuY29uZmlnLmF0dHJpYnV0ZSwgdGhpcy5jb25maWcucGF0aCkpXG4gICAgICAgICAgICA6IHRoaXMuY29uZmlnLmF0dHJpYnV0ZTtcbiAgICAgICAgcmV0dXJuIFtmbihcIlNVTVwiLCBhdHRyaWJ1dGUpLCB0aGlzLmtleV07XG4gICAgfVxuXG4gICAgcHVibGljIHNob3VsZEdyb3VwQnkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cbiJdfQ==
@@ -18,9 +18,9 @@ let DataFilterScanner = class DataFilterScanner {
18
18
  return (_a = Reflect.getMetadata(constant_1.ATTRIBUTES, target.prototype)) !== null && _a !== void 0 ? _a : [];
19
19
  }
20
20
  };
21
- exports.DataFilterScanner = DataFilterScanner;
22
- exports.DataFilterScanner = DataFilterScanner = __decorate([
21
+ DataFilterScanner = __decorate([
23
22
  (0, common_1.Injectable)()
24
23
  ], DataFilterScanner);
24
+ exports.DataFilterScanner = DataFilterScanner;
25
25
 
26
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9zY2FubmVycy9kYXRhLWZpbHRlci5zY2FubmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLDJDQUE0QztBQUM1QywwQ0FBdUQ7QUFLaEQsSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBaUI7SUFDbkIsYUFBYSxDQUFDLE1BQVc7UUFDNUIsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLHNCQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVNLGFBQWEsQ0FBQyxNQUFXOztRQUM1QixPQUFPLE1BQUEsT0FBTyxDQUFDLFdBQVcsQ0FBQyxxQkFBVSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsbUNBQUksRUFBRSxDQUFDO0lBQ25FLENBQUM7Q0FDSixDQUFBO0FBUlksOENBQWlCOzRCQUFqQixpQkFBaUI7SUFEN0IsSUFBQSxtQkFBVSxHQUFFO0dBQ0EsaUJBQWlCLENBUTdCIiwiZmlsZSI6ImxpYi9zY2FubmVycy9kYXRhLWZpbHRlci5zY2FubmVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgQVRUUklCVVRFUywgREFUQV9GSUxURVIsIH0gZnJvbSBcIi4uL2NvbnN0YW50XCI7XG5pbXBvcnQgeyBEYXRhRmlsdGVyQ29uZmlnIH0gZnJvbSBcIi4uL21vZGVscy9kYXRhLWZpbHRlci5tb2RlbFwiO1xuaW1wb3J0IHsgQXR0cmlidXRlc0NvbmZpZyB9IGZyb20gXCIuLi9tb2RlbHMvYXR0cmlidXRlcy5tb2RlbFwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGF0YUZpbHRlclNjYW5uZXIge1xuICAgIHB1YmxpYyBnZXREYXRhRmlsdGVyKHRhcmdldDogYW55KTogRGF0YUZpbHRlckNvbmZpZyB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmdldE1ldGFkYXRhKERBVEFfRklMVEVSLCB0YXJnZXQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBdHRyaWJ1dGVzKHRhcmdldDogYW55KTogQXR0cmlidXRlc0NvbmZpZ1tdIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEoQVRUUklCVVRFUywgdGFyZ2V0LnByb3RvdHlwZSkgPz8gW107XG4gICAgfVxufVxuIl19
26
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9zY2FubmVycy9kYXRhLWZpbHRlci5zY2FubmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLDJDQUE0QztBQUM1QywwQ0FBdUQ7QUFLaEQsSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBaUI7SUFDbkIsYUFBYSxDQUFDLE1BQVc7UUFDNUIsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLHNCQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVNLGFBQWEsQ0FBQyxNQUFXOztRQUM1QixPQUFPLE1BQUEsT0FBTyxDQUFDLFdBQVcsQ0FBQyxxQkFBVSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsbUNBQUksRUFBRSxDQUFDO0lBQ25FLENBQUM7Q0FDSixDQUFBO0FBUlksaUJBQWlCO0lBRDdCLElBQUEsbUJBQVUsR0FBRTtHQUNBLGlCQUFpQixDQVE3QjtBQVJZLDhDQUFpQiIsImZpbGUiOiJsaWIvc2Nhbm5lcnMvZGF0YS1maWx0ZXIuc2Nhbm5lci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IEFUVFJJQlVURVMsIERBVEFfRklMVEVSLCB9IGZyb20gXCIuLi9jb25zdGFudFwiO1xuaW1wb3J0IHsgRGF0YUZpbHRlckNvbmZpZyB9IGZyb20gXCIuLi9tb2RlbHMvZGF0YS1maWx0ZXIubW9kZWxcIjtcbmltcG9ydCB7IEF0dHJpYnV0ZXNDb25maWcgfSBmcm9tIFwiLi4vbW9kZWxzL2F0dHJpYnV0ZXMubW9kZWxcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERhdGFGaWx0ZXJTY2FubmVyIHtcbiAgICBwdWJsaWMgZ2V0RGF0YUZpbHRlcih0YXJnZXQ6IGFueSk6IERhdGFGaWx0ZXJDb25maWcge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5nZXRNZXRhZGF0YShEQVRBX0ZJTFRFUiwgdGFyZ2V0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QXR0cmlidXRlcyh0YXJnZXQ6IGFueSk6IEF0dHJpYnV0ZXNDb25maWdbXSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmdldE1ldGFkYXRhKEFUVFJJQlVURVMsIHRhcmdldC5wcm90b3R5cGUpID8/IFtdO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,12 +1,10 @@
1
1
  import { FindAttributeOptions, IncludeOptions, Order } from "sequelize";
2
2
  import { Model } from "sequelize-typescript";
3
- import { IncludeModel, OrderModel } from "..";
3
+ import { OrderModel } from "..";
4
+ import { IncludeModel } from "..";
4
5
  import { PathModel } from "../models/path.model";
5
6
  import { SearchAttributesModel } from "../models/search-attributes.model";
6
- import { DialectFormatterService } from "../services/dialect-formatter.service";
7
7
  export declare class SequelizeModelScanner {
8
- private dialectFormatterService;
9
- constructor(dialectFormatterService: DialectFormatterService);
10
8
  getIncludes(model: typeof Model, path: PathModel, additionalIncludes: IncludeModel[], attributes?: FindAttributeOptions, ignoreAttributes?: boolean): IncludeOptions[];
11
9
  getAttributes(model: typeof Model, path: PathModel, additionalIncludes: IncludeModel[], attributes?: FindAttributeOptions): SearchAttributesModel[];
12
10
  getOrder(model: typeof Model, orderObj: OrderModel): Order;