@recursyve/nestjs-data-filter 9.3.3 → 9.4.0-beta.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 (57) 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 +5 -3
  5. package/lib/data-filter.repository.js +19 -16
  6. package/lib/data-filter.service.d.ts +4 -4
  7. package/lib/data-filter.service.js +10 -9
  8. package/lib/filter/base-filter.d.ts +3 -0
  9. package/lib/filter/base-filter.js +19 -1
  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 +2 -1
  14. package/lib/filter/filter.factory.js +3 -3
  15. package/lib/filter/filter.provider.js +3 -2
  16. package/lib/filter/filter.service.d.ts +3 -1
  17. package/lib/filter/filter.service.js +20 -13
  18. package/lib/filter/filters/date-time.filter.js +12 -5
  19. package/lib/filter/filters/filter.d.ts +3 -0
  20. package/lib/filter/filters/filter.js +7 -4
  21. package/lib/filter/filters/geo-bounds.filter.js +2 -3
  22. package/lib/filter/filters/geo-localization.filter.js +2 -2
  23. package/lib/filter/filters/group.filter.d.ts +3 -0
  24. package/lib/filter/filters/group.filter.js +9 -2
  25. package/lib/filter/guards/filter-query.guard.js +3 -3
  26. package/lib/filter/interceptors/data-file-download.interceptor.js +3 -3
  27. package/lib/filter/operators.js +2 -2
  28. package/lib/filter/order-rules/enum.order-rule.js +2 -3
  29. package/lib/filter/order-rules/if.order-rule.js +2 -3
  30. package/lib/filter/order-rules/is-null.order-rule.js +2 -3
  31. package/lib/filter/order-rules/order-rule.d.ts +3 -0
  32. package/lib/filter/order-rules/order-rule.js +5 -2
  33. package/lib/filter/type.js +2 -2
  34. package/lib/index.js +6 -5
  35. package/lib/models/attributes.model.d.ts +8 -1
  36. package/lib/models/attributes.model.js +21 -11
  37. package/lib/models/count.model.d.ts +11 -4
  38. package/lib/models/count.model.js +25 -14
  39. package/lib/models/custom-attributes.model.d.ts +6 -2
  40. package/lib/models/custom-attributes.model.js +5 -1
  41. package/lib/models/data-filter.model.d.ts +9 -2
  42. package/lib/models/data-filter.model.js +40 -30
  43. package/lib/models/distance.model.d.ts +10 -3
  44. package/lib/models/distance.model.js +29 -18
  45. package/lib/models/export-types.model.js +2 -2
  46. package/lib/models/sum.model.d.ts +10 -3
  47. package/lib/models/sum.model.js +19 -8
  48. package/lib/scanners/data-filter.scanner.js +3 -3
  49. package/lib/scanners/sequelize-model.scanner.d.ts +4 -2
  50. package/lib/scanners/sequelize-model.scanner.js +20 -11
  51. package/lib/sequelize.utils.d.ts +0 -3
  52. package/lib/sequelize.utils.js +1 -18
  53. package/lib/services/data-filter-validation.service.js +3 -3
  54. package/lib/services/dialect-formatter.service.js +3 -3
  55. package/package.json +1 -1
  56. package/lib/filter/filters/options.filter.d.ts +0 -46
  57. package/lib/filter/filters/options.filter.js +0 -111
package/lib/index.js CHANGED
@@ -39,6 +39,7 @@ const filter_provider_1 = require("./filter/filter.provider");
39
39
  const filter_config_1 = require("./filter/filter.config");
40
40
  const constant_1 = require("./constant");
41
41
  const data_filter_validation_service_1 = require("./services/data-filter-validation.service");
42
+ const dialect_formatter_service_1 = require("./services/dialect-formatter.service");
42
43
  let DataFilterModule = DataFilterModule_1 = class DataFilterModule {
43
44
  static forRoot(option) {
44
45
  var _a, _b, _c, _d, _e, _f, _g;
@@ -124,14 +125,14 @@ let DataFilterModule = DataFilterModule_1 = class DataFilterModule {
124
125
  };
125
126
  }
126
127
  };
127
- exports.DataFilterModule = DataFilterModule;
128
- exports.DataFilterModule = DataFilterModule = DataFilterModule_1 = __decorate([
128
+ DataFilterModule = DataFilterModule_1 = __decorate([
129
129
  (0, common_1.Global)(),
130
130
  (0, common_1.Module)({
131
- providers: [data_filter_scanner_1.DataFilterScanner, sequelize_model_scanner_1.SequelizeModelScanner, data_filter_service_1.DataFilterService],
132
- exports: [data_filter_scanner_1.DataFilterScanner, sequelize_model_scanner_1.SequelizeModelScanner, data_filter_service_1.DataFilterService]
131
+ providers: [data_filter_scanner_1.DataFilterScanner, sequelize_model_scanner_1.SequelizeModelScanner, data_filter_service_1.DataFilterService, dialect_formatter_service_1.DialectFormatterService],
132
+ exports: [data_filter_scanner_1.DataFilterScanner, sequelize_model_scanner_1.SequelizeModelScanner, data_filter_service_1.DataFilterService, dialect_formatter_service_1.DialectFormatterService]
133
133
  })
134
134
  ], DataFilterModule);
135
+ exports.DataFilterModule = DataFilterModule;
135
136
  __exportStar(require("./data-filter.service"), exports);
136
137
  __exportStar(require("./data-filter.repository"), exports);
137
138
  __exportStar(require("./adapters"), exports);
@@ -143,4 +144,4 @@ __exportStar(require("./models/filter.model"), exports);
143
144
  __exportStar(require("./models/include.model"), exports);
144
145
  __exportStar(require("./models/user.model"), exports);
145
146
 
146
- //# sourceMappingURL=data:application/json;charset=utf8;base64,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QzNCLCtDQUE2QjtBQUM3QixrREFBZ0M7QUFDaEMsMkNBQXlCO0FBQ3pCLDhEQUE0QztBQUM1Qyx3REFBc0M7QUFDdEMseURBQXVDO0FBQ3ZDLHNEQUFvQyIsImZpbGUiOiJsaWIvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEeW5hbWljTW9kdWxlLCBmb3J3YXJkUmVmLCBGb3J3YXJkUmVmZXJlbmNlLCBHbG9iYWwsIE1vZHVsZSwgUHJvdmlkZXIsIFR5cGUgfSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IEV4cG9ydEFkYXB0ZXIgfSBmcm9tIFwiLi9hZGFwdGVyc1wiO1xuaW1wb3J0IHsgQWNjZXNzQ29udHJvbEFkYXB0ZXIgfSBmcm9tIFwiLi9hZGFwdGVycy9hY2Nlc3MtY29udHJvbC5hZGFwdGVyXCI7XG5pbXBvcnQgeyBEZWZhdWx0QWNjZXNzQ29udHJvbEFkYXB0ZXIgfSBmcm9tIFwiLi9hZGFwdGVycy9kZWZhdWx0LWFjY2Vzcy1jb250cm9sLmFkYXB0ZXJcIjtcbmltcG9ydCB7IERlZmF1bHRFeHBvcnRBZGFwdGVyIH0gZnJvbSBcIi4vYWRhcHRlcnMvZGVmYXVsdC1leHBvcnQuYWRhcHRlclwiO1xuaW1wb3J0IHsgRGVmYXVsdFRyYW5zbGF0ZUFkYXB0ZXIgfSBmcm9tIFwiLi9hZGFwdGVycy9kZWZhdWx0LXRyYW5zbGF0ZS5hZGFwdGVyXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVBZGFwdGVyIH0gZnJvbSBcIi4vYWRhcHRlcnMvdHJhbnNsYXRlLmFkYXB0ZXJcIjtcbmltcG9ydCB7IERhdGFGaWx0ZXJTZXJ2aWNlIH0gZnJvbSBcIi4vZGF0YS1maWx0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHsgRGVmYXVsdERlc2VyaWFsaXplciwgVXNlckRlc2VyaWFsaXplciB9IGZyb20gXCIuL2Rlc2VyaWFsaXplcnNcIjtcbmltcG9ydCB7IEZpbHRlclV0aWxzIH0gZnJvbSBcIi4vZmlsdGVyXCI7XG5pbXBvcnQgeyBCYXNlRmlsdGVyIH0gZnJvbSBcIi4vZmlsdGVyL2Jhc2UtZmlsdGVyXCI7XG5pbXBvcnQgeyBGaWx0ZXJGYWN0b3J5IH0gZnJvbSBcIi4vZmlsdGVyL2ZpbHRlci5mYWN0b3J5XCI7XG5pbXBvcnQgeyBEYXRhRmlsdGVyU2Nhbm5lciB9IGZyb20gXCIuL3NjYW5uZXJzL2RhdGEtZmlsdGVyLnNjYW5uZXJcIjtcbmltcG9ydCB7IFNlcXVlbGl6ZU1vZGVsU2Nhbm5lciB9IGZyb20gXCIuL3NjYW5uZXJzL3NlcXVlbGl6ZS1tb2RlbC5zY2FubmVyXCI7XG5pbXBvcnQgeyBjcmVhdGVGaWx0ZXJQcm92aWRlciB9IGZyb20gXCIuL2ZpbHRlci9maWx0ZXIucHJvdmlkZXJcIjtcbmltcG9ydCB7IGRlZmF1bHRGaWx0ZXJPcHRpb25Db25maWcsIEZpbHRlck9wdGlvbkNvbmZpZyB9IGZyb20gXCIuL2ZpbHRlci9maWx0ZXIuY29uZmlnXCI7XG5pbXBvcnQgeyBGSUxURVJfT1BUSU9OLCBWQUxJREFURV9EQVRBIH0gZnJvbSBcIi4vY29uc3RhbnRcIjtcbmltcG9ydCB7IERhdGFGaWx0ZXJWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzL2RhdGEtZmlsdGVyLXZhbGlkYXRpb24uc2VydmljZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFGaWx0ZXJDb25maWcge1xuICAgIGltcG9ydHM/OiBBcnJheTxUeXBlIHwgRHluYW1pY01vZHVsZSB8IFByb21pc2U8RHluYW1pY01vZHVsZT4gfCBGb3J3YXJkUmVmZXJlbmNlPjtcbiAgICBkZXNlcmlhbGl6ZXI/OiBQcm92aWRlcjtcbiAgICBhY2Nlc3NDb250cm9sQWRhcHRlcj86IFByb3ZpZGVyO1xuICAgIHRyYW5zbGF0ZUFkYXB0ZXI/OiBQcm92aWRlcjtcbiAgICBleHBvcnRBZGFwdGVyPzogUHJvdmlkZXI7XG4gICAgZmlsdGVyPzogRmlsdGVyT3B0aW9uQ29uZmlnO1xuICAgIHZhbGlkYXRlRGF0YT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUZpbHRlckZlYXR1cmVDb25maWcgZXh0ZW5kcyBEYXRhRmlsdGVyQ29uZmlnIHtcbiAgICBmaWx0ZXJzOiB7IGZpbHRlcjogVHlwZTxCYXNlRmlsdGVyPGFueT4+OyBpbmplY3Q/OiBhbnlbXTsgZGlzYWJsZUFjY2Vzc0NvbnRyb2w/OiBib29sZWFuOyB9W107XG59XG5cbkBHbG9iYWwoKVxuQE1vZHVsZSh7XG4gICAgcHJvdmlkZXJzOiBbRGF0YUZpbHRlclNjYW5uZXIsIFNlcXVlbGl6ZU1vZGVsU2Nhbm5lciwgRGF0YUZpbHRlclNlcnZpY2VdLFxuICAgIGV4cG9ydHM6IFtEYXRhRmlsdGVyU2Nhbm5lciwgU2VxdWVsaXplTW9kZWxTY2FubmVyLCBEYXRhRmlsdGVyU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgRGF0YUZpbHRlck1vZHVsZSB7XG4gICAgcHVibGljIHN0YXRpYyBmb3JSb290KG9wdGlvbj86IERhdGFGaWx0ZXJDb25maWcpOiBEeW5hbWljTW9kdWxlIHtcbiAgICAgICAgb3B0aW9uID0ge1xuICAgICAgICAgICAgaW1wb3J0czogb3B0aW9uPy5pbXBvcnRzID8/IFtdLFxuICAgICAgICAgICAgZGVzZXJpYWxpemVyOiBvcHRpb24/LmRlc2VyaWFsaXplciA/PyB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogVXNlckRlc2VyaWFsaXplcixcbiAgICAgICAgICAgICAgICB1c2VDbGFzczogRGVmYXVsdERlc2VyaWFsaXplclxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFjY2Vzc0NvbnRyb2xBZGFwdGVyOiBvcHRpb24/LmFjY2Vzc0NvbnRyb2xBZGFwdGVyID8/IHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBBY2Nlc3NDb250cm9sQWRhcHRlcixcbiAgICAgICAgICAgICAgICB1c2VDbGFzczogRGVmYXVsdEFjY2Vzc0NvbnRyb2xBZGFwdGVyXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdHJhbnNsYXRlQWRhcHRlcjogb3B0aW9uPy50cmFuc2xhdGVBZGFwdGVyID8/IHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBUcmFuc2xhdGVBZGFwdGVyLFxuICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBEZWZhdWx0VHJhbnNsYXRlQWRhcHRlclxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGV4cG9ydEFkYXB0ZXI6IG9wdGlvbj8uZXhwb3J0QWRhcHRlciA/PyB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogRXhwb3J0QWRhcHRlcixcbiAgICAgICAgICAgICAgICB1c2VDbGFzczogRGVmYXVsdEV4cG9ydEFkYXB0ZXJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmaWx0ZXI6IHtcbiAgICAgICAgICAgICAgICAuLi5kZWZhdWx0RmlsdGVyT3B0aW9uQ29uZmlnLFxuICAgICAgICAgICAgICAgIC4uLihvcHRpb24/LmZpbHRlciA/PyB7fSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2YWxpZGF0ZURhdGE6IG9wdGlvbj8udmFsaWRhdGVEYXRhID8/IGZhbHNlXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtb2R1bGU6IERhdGFGaWx0ZXJNb2R1bGUsXG4gICAgICAgICAgICBpbXBvcnRzOiBbLi4ub3B0aW9uLmltcG9ydHNdLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBGSUxURVJfT1BUSU9OLFxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9uLmZpbHRlclxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBWQUxJREFURV9EQVRBLFxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9uLnZhbGlkYXRlRGF0YVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb3B0aW9uLmRlc2VyaWFsaXplcixcbiAgICAgICAgICAgICAgICBvcHRpb24uYWNjZXNzQ29udHJvbEFkYXB0ZXIsXG4gICAgICAgICAgICAgICAgb3B0aW9uLnRyYW5zbGF0ZUFkYXB0ZXIsXG4gICAgICAgICAgICAgICAgb3B0aW9uLmV4cG9ydEFkYXB0ZXIsXG4gICAgICAgICAgICAgICAgRGF0YUZpbHRlclZhbGlkYXRpb25TZXJ2aWNlXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgZXhwb3J0czogW1xuICAgICAgICAgICAgICAgIEZJTFRFUl9PUFRJT04sXG4gICAgICAgICAgICAgICAgVXNlckRlc2VyaWFsaXplcixcbiAgICAgICAgICAgICAgICBBY2Nlc3NDb250cm9sQWRhcHRlcixcbiAgICAgICAgICAgICAgICBUcmFuc2xhdGVBZGFwdGVyLFxuICAgICAgICAgICAgICAgIEV4cG9ydEFkYXB0ZXJcbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZvckZlYXR1cmUob3B0aW9uOiBEYXRhRmlsdGVyRmVhdHVyZUNvbmZpZyk6IER5bmFtaWNNb2R1bGUge1xuICAgICAgICBjb25zdCBwcm92aWRlck92ZXJyaWRlID0gT2JqZWN0LmtleXMob3B0aW9uKS5tYXAoeCA9PiB7XG4gICAgICAgICAgICBpZiAoeCA9PT0gXCJpbXBvcnRzXCIgfHwgeCA9PT0gXCJmaWx0ZXJzXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9uW3hdO1xuICAgICAgICB9KS5maWx0ZXIoeCA9PiB4KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1vZHVsZTogRGF0YUZpbHRlck1vZHVsZSxcbiAgICAgICAgICAgIGltcG9ydHM6IG9wdGlvbi5pbXBvcnRzID8/IFtdLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAgLi4ucHJvdmlkZXJPdmVycmlkZSxcbiAgICAgICAgICAgICAgICAuLi5vcHRpb24uZmlsdGVycy5mbGF0TWFwKHggPT4gKFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogeC5maWx0ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiBGaWx0ZXJGYWN0b3J5KHguZmlsdGVyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluamVjdDogeC5pbmplY3QgPz8gW11cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlRmlsdGVyUHJvdmlkZXIoeC5maWx0ZXIsIHguZGlzYWJsZUFjY2Vzc0NvbnRyb2wpXG4gICAgICAgICAgICAgICAgXSkpXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgZXhwb3J0czogW1xuICAgICAgICAgICAgICAgIC4uLm9wdGlvbi5maWx0ZXJzLm1hcCh4ID0+IEZpbHRlclV0aWxzLmdldFByb3ZpZGVyVG9rZW4oeC5maWx0ZXIpKVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cbn1cblxuZXhwb3J0ICogZnJvbSBcIi4vZGF0YS1maWx0ZXIuc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGF0YS1maWx0ZXIucmVwb3NpdG9yeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYWRhcHRlcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Rlc2VyaWFsaXplcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ZpbHRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL2V4cG9ydC10eXBlcy5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL2ZpbHRlci5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL2luY2x1ZGUubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVscy91c2VyLm1vZGVsXCI7XG4iXX0=
147
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,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N0Isd0RBQXNDO0FBQ3RDLDJEQUF5QztBQUN6Qyw2Q0FBMkI7QUFDM0IsK0NBQTZCO0FBQzdCLGtEQUFnQztBQUNoQywyQ0FBeUI7QUFDekIsOERBQTRDO0FBQzVDLHdEQUFzQztBQUN0Qyx5REFBdUM7QUFDdkMsc0RBQW9DIiwiZmlsZSI6ImxpYi9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER5bmFtaWNNb2R1bGUsIGZvcndhcmRSZWYsIEZvcndhcmRSZWZlcmVuY2UsIEdsb2JhbCwgTW9kdWxlLCBQcm92aWRlciwgVHlwZSB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgRXhwb3J0QWRhcHRlciB9IGZyb20gXCIuL2FkYXB0ZXJzXCI7XG5pbXBvcnQgeyBBY2Nlc3NDb250cm9sQWRhcHRlciB9IGZyb20gXCIuL2FkYXB0ZXJzL2FjY2Vzcy1jb250cm9sLmFkYXB0ZXJcIjtcbmltcG9ydCB7IERlZmF1bHRBY2Nlc3NDb250cm9sQWRhcHRlciB9IGZyb20gXCIuL2FkYXB0ZXJzL2RlZmF1bHQtYWNjZXNzLWNvbnRyb2wuYWRhcHRlclwiO1xuaW1wb3J0IHsgRGVmYXVsdEV4cG9ydEFkYXB0ZXIgfSBmcm9tIFwiLi9hZGFwdGVycy9kZWZhdWx0LWV4cG9ydC5hZGFwdGVyXCI7XG5pbXBvcnQgeyBEZWZhdWx0VHJhbnNsYXRlQWRhcHRlciB9IGZyb20gXCIuL2FkYXB0ZXJzL2RlZmF1bHQtdHJhbnNsYXRlLmFkYXB0ZXJcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZUFkYXB0ZXIgfSBmcm9tIFwiLi9hZGFwdGVycy90cmFuc2xhdGUuYWRhcHRlclwiO1xuaW1wb3J0IHsgRGF0YUZpbHRlclNlcnZpY2UgfSBmcm9tIFwiLi9kYXRhLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBEZWZhdWx0RGVzZXJpYWxpemVyLCBVc2VyRGVzZXJpYWxpemVyIH0gZnJvbSBcIi4vZGVzZXJpYWxpemVyc1wiO1xuaW1wb3J0IHsgRmlsdGVyVXRpbHMgfSBmcm9tIFwiLi9maWx0ZXJcIjtcbmltcG9ydCB7IEJhc2VGaWx0ZXIgfSBmcm9tIFwiLi9maWx0ZXIvYmFzZS1maWx0ZXJcIjtcbmltcG9ydCB7IEZpbHRlckZhY3RvcnkgfSBmcm9tIFwiLi9maWx0ZXIvZmlsdGVyLmZhY3RvcnlcIjtcbmltcG9ydCB7IERhdGFGaWx0ZXJTY2FubmVyIH0gZnJvbSBcIi4vc2Nhbm5lcnMvZGF0YS1maWx0ZXIuc2Nhbm5lclwiO1xuaW1wb3J0IHsgU2VxdWVsaXplTW9kZWxTY2FubmVyIH0gZnJvbSBcIi4vc2Nhbm5lcnMvc2VxdWVsaXplLW1vZGVsLnNjYW5uZXJcIjtcbmltcG9ydCB7IGNyZWF0ZUZpbHRlclByb3ZpZGVyIH0gZnJvbSBcIi4vZmlsdGVyL2ZpbHRlci5wcm92aWRlclwiO1xuaW1wb3J0IHsgZGVmYXVsdEZpbHRlck9wdGlvbkNvbmZpZywgRmlsdGVyT3B0aW9uQ29uZmlnIH0gZnJvbSBcIi4vZmlsdGVyL2ZpbHRlci5jb25maWdcIjtcbmltcG9ydCB7IEZJTFRFUl9PUFRJT04sIFZBTElEQVRFX0RBVEEgfSBmcm9tIFwiLi9jb25zdGFudFwiO1xuaW1wb3J0IHsgRGF0YUZpbHRlclZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZXMvZGF0YS1maWx0ZXItdmFsaWRhdGlvbi5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBEaWFsZWN0Rm9ybWF0dGVyU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzL2RpYWxlY3QtZm9ybWF0dGVyLnNlcnZpY2VcIjtcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhRmlsdGVyQ29uZmlnIHtcbiAgICBpbXBvcnRzPzogQXJyYXk8VHlwZSB8IER5bmFtaWNNb2R1bGUgfCBQcm9taXNlPER5bmFtaWNNb2R1bGU+IHwgRm9yd2FyZFJlZmVyZW5jZT47XG4gICAgZGVzZXJpYWxpemVyPzogUHJvdmlkZXI7XG4gICAgYWNjZXNzQ29udHJvbEFkYXB0ZXI/OiBQcm92aWRlcjtcbiAgICB0cmFuc2xhdGVBZGFwdGVyPzogUHJvdmlkZXI7XG4gICAgZXhwb3J0QWRhcHRlcj86IFByb3ZpZGVyO1xuICAgIGZpbHRlcj86IEZpbHRlck9wdGlvbkNvbmZpZztcbiAgICB2YWxpZGF0ZURhdGE/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFGaWx0ZXJGZWF0dXJlQ29uZmlnIGV4dGVuZHMgRGF0YUZpbHRlckNvbmZpZyB7XG4gICAgZmlsdGVyczogeyBmaWx0ZXI6IFR5cGU8QmFzZUZpbHRlcjxhbnk+PjsgaW5qZWN0PzogYW55W107IGRpc2FibGVBY2Nlc3NDb250cm9sPzogYm9vbGVhbjsgfVtdO1xufVxuXG5AR2xvYmFsKClcbkBNb2R1bGUoe1xuICAgIHByb3ZpZGVyczogW0RhdGFGaWx0ZXJTY2FubmVyLCBTZXF1ZWxpemVNb2RlbFNjYW5uZXIsIERhdGFGaWx0ZXJTZXJ2aWNlLCBEaWFsZWN0Rm9ybWF0dGVyU2VydmljZV0sXG4gICAgZXhwb3J0czogW0RhdGFGaWx0ZXJTY2FubmVyLCBTZXF1ZWxpemVNb2RlbFNjYW5uZXIsIERhdGFGaWx0ZXJTZXJ2aWNlLCBEaWFsZWN0Rm9ybWF0dGVyU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgRGF0YUZpbHRlck1vZHVsZSB7XG4gICAgcHVibGljIHN0YXRpYyBmb3JSb290KG9wdGlvbj86IERhdGFGaWx0ZXJDb25maWcpOiBEeW5hbWljTW9kdWxlIHtcbiAgICAgICAgb3B0aW9uID0ge1xuICAgICAgICAgICAgaW1wb3J0czogb3B0aW9uPy5pbXBvcnRzID8/IFtdLFxuICAgICAgICAgICAgZGVzZXJpYWxpemVyOiBvcHRpb24/LmRlc2VyaWFsaXplciA/PyB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogVXNlckRlc2VyaWFsaXplcixcbiAgICAgICAgICAgICAgICB1c2VDbGFzczogRGVmYXVsdERlc2VyaWFsaXplclxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFjY2Vzc0NvbnRyb2xBZGFwdGVyOiBvcHRpb24/LmFjY2Vzc0NvbnRyb2xBZGFwdGVyID8/IHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBBY2Nlc3NDb250cm9sQWRhcHRlcixcbiAgICAgICAgICAgICAgICB1c2VDbGFzczogRGVmYXVsdEFjY2Vzc0NvbnRyb2xBZGFwdGVyXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdHJhbnNsYXRlQWRhcHRlcjogb3B0aW9uPy50cmFuc2xhdGVBZGFwdGVyID8/IHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBUcmFuc2xhdGVBZGFwdGVyLFxuICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBEZWZhdWx0VHJhbnNsYXRlQWRhcHRlclxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGV4cG9ydEFkYXB0ZXI6IG9wdGlvbj8uZXhwb3J0QWRhcHRlciA/PyB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogRXhwb3J0QWRhcHRlcixcbiAgICAgICAgICAgICAgICB1c2VDbGFzczogRGVmYXVsdEV4cG9ydEFkYXB0ZXJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmaWx0ZXI6IHtcbiAgICAgICAgICAgICAgICAuLi5kZWZhdWx0RmlsdGVyT3B0aW9uQ29uZmlnLFxuICAgICAgICAgICAgICAgIC4uLihvcHRpb24/LmZpbHRlciA/PyB7fSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2YWxpZGF0ZURhdGE6IG9wdGlvbj8udmFsaWRhdGVEYXRhID8/IGZhbHNlXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtb2R1bGU6IERhdGFGaWx0ZXJNb2R1bGUsXG4gICAgICAgICAgICBpbXBvcnRzOiBbLi4ub3B0aW9uLmltcG9ydHNdLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBGSUxURVJfT1BUSU9OLFxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9uLmZpbHRlclxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBWQUxJREFURV9EQVRBLFxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9uLnZhbGlkYXRlRGF0YVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb3B0aW9uLmRlc2VyaWFsaXplcixcbiAgICAgICAgICAgICAgICBvcHRpb24uYWNjZXNzQ29udHJvbEFkYXB0ZXIsXG4gICAgICAgICAgICAgICAgb3B0aW9uLnRyYW5zbGF0ZUFkYXB0ZXIsXG4gICAgICAgICAgICAgICAgb3B0aW9uLmV4cG9ydEFkYXB0ZXIsXG4gICAgICAgICAgICAgICAgRGF0YUZpbHRlclZhbGlkYXRpb25TZXJ2aWNlXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgZXhwb3J0czogW1xuICAgICAgICAgICAgICAgIEZJTFRFUl9PUFRJT04sXG4gICAgICAgICAgICAgICAgVXNlckRlc2VyaWFsaXplcixcbiAgICAgICAgICAgICAgICBBY2Nlc3NDb250cm9sQWRhcHRlcixcbiAgICAgICAgICAgICAgICBUcmFuc2xhdGVBZGFwdGVyLFxuICAgICAgICAgICAgICAgIEV4cG9ydEFkYXB0ZXJcbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZvckZlYXR1cmUob3B0aW9uOiBEYXRhRmlsdGVyRmVhdHVyZUNvbmZpZyk6IER5bmFtaWNNb2R1bGUge1xuICAgICAgICBjb25zdCBwcm92aWRlck92ZXJyaWRlID0gT2JqZWN0LmtleXMob3B0aW9uKS5tYXAoeCA9PiB7XG4gICAgICAgICAgICBpZiAoeCA9PT0gXCJpbXBvcnRzXCIgfHwgeCA9PT0gXCJmaWx0ZXJzXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9uW3hdO1xuICAgICAgICB9KS5maWx0ZXIoeCA9PiB4KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1vZHVsZTogRGF0YUZpbHRlck1vZHVsZSxcbiAgICAgICAgICAgIGltcG9ydHM6IG9wdGlvbi5pbXBvcnRzID8/IFtdLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAgLi4ucHJvdmlkZXJPdmVycmlkZSxcbiAgICAgICAgICAgICAgICAuLi5vcHRpb24uZmlsdGVycy5mbGF0TWFwKHggPT4gKFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogeC5maWx0ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiBGaWx0ZXJGYWN0b3J5KHguZmlsdGVyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluamVjdDogeC5pbmplY3QgPz8gW11cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlRmlsdGVyUHJvdmlkZXIoeC5maWx0ZXIsIHguZGlzYWJsZUFjY2Vzc0NvbnRyb2wpXG4gICAgICAgICAgICAgICAgXSkpXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgZXhwb3J0czogW1xuICAgICAgICAgICAgICAgIC4uLm9wdGlvbi5maWx0ZXJzLm1hcCh4ID0+IEZpbHRlclV0aWxzLmdldFByb3ZpZGVyVG9rZW4oeC5maWx0ZXIpKVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cbn1cblxuZXhwb3J0ICogZnJvbSBcIi4vZGF0YS1maWx0ZXIuc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGF0YS1maWx0ZXIucmVwb3NpdG9yeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYWRhcHRlcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Rlc2VyaWFsaXplcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ZpbHRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL2V4cG9ydC10eXBlcy5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL2ZpbHRlci5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL2luY2x1ZGUubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVscy91c2VyLm1vZGVsXCI7XG4iXX0=
@@ -1,7 +1,8 @@
1
1
  import { FindAttributeOptions, Order } from "sequelize";
2
+ import { DialectFormatterService } from "../services/dialect-formatter.service";
3
+ import { CustomAttributesConfig, CustomAttributesModel } from "./custom-attributes.model";
2
4
  import { IncludeConfig, IncludeModel } from "./include.model";
3
5
  import { PathConfig } from "./path.model";
4
- import { CustomAttributesConfig, CustomAttributesModel } from "./custom-attributes.model";
5
6
  export interface AttributesConfigModel {
6
7
  key: string;
7
8
  attributes?: FindAttributeOptions;
@@ -18,6 +19,7 @@ export declare class AttributesConfig implements AttributesConfigModel {
18
19
  customAttributes: CustomAttributesConfig[];
19
20
  ignoreInSearch: boolean;
20
21
  constructor(key: string);
22
+ withContext(dialectFormatterService: DialectFormatterService): AttributesContext;
21
23
  setAttributes(attributes?: FindAttributeOptions): void;
22
24
  setSearchableAttributes(attributes: string[]): void;
23
25
  setPath(path: PathConfig): void;
@@ -27,6 +29,11 @@ export declare class AttributesConfig implements AttributesConfigModel {
27
29
  setOrder(order: Order): void;
28
30
  addInclude(include: IncludeConfig): void;
29
31
  addCustomAttribute(attribute: CustomAttributesConfig): void;
32
+ }
33
+ export declare class AttributesContext {
34
+ private config;
35
+ private dialectFormatterService;
36
+ constructor(config: AttributesConfig, dialectFormatterService: DialectFormatterService);
30
37
  transformAttributesConfig(options?: object): FindAttributeOptions;
31
38
  transformIncludesConfig(options?: object): IncludeModel[];
32
39
  getCustomAttributes(options?: object, path?: string): CustomAttributesModel[];
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AttributesConfig = void 0;
3
+ exports.AttributesContext = exports.AttributesConfig = void 0;
4
4
  const sequelize_utils_1 = require("../sequelize.utils");
5
5
  const path_model_1 = require("./path.model");
6
6
  class AttributesConfig {
@@ -14,6 +14,9 @@ class AttributesConfig {
14
14
  paranoid: true
15
15
  });
16
16
  }
17
+ withContext(dialectFormatterService) {
18
+ return new AttributesContext(this, dialectFormatterService);
19
+ }
17
20
  setAttributes(attributes) {
18
21
  this.attributes = attributes;
19
22
  }
@@ -42,24 +45,31 @@ class AttributesConfig {
42
45
  addCustomAttribute(attribute) {
43
46
  this.customAttributes.push(attribute);
44
47
  }
48
+ }
49
+ exports.AttributesConfig = AttributesConfig;
50
+ class AttributesContext {
51
+ constructor(config, dialectFormatterService) {
52
+ this.config = config;
53
+ this.dialectFormatterService = dialectFormatterService;
54
+ }
45
55
  transformAttributesConfig(options) {
46
56
  const customAttributes = this.getCustomAttributes(options);
47
- if (this.attributes) {
48
- if (this.customAttributes.length) {
49
- return sequelize_utils_1.SequelizeUtils.ensureAttributesValidity(sequelize_utils_1.SequelizeUtils.mergeAttributes(this.attributes, {
57
+ if (this.config.attributes) {
58
+ if (this.config.customAttributes.length) {
59
+ return sequelize_utils_1.SequelizeUtils.ensureAttributesValidity(sequelize_utils_1.SequelizeUtils.mergeAttributes(this.config.attributes, {
50
60
  include: customAttributes.map(x => x.attribute)
51
61
  }));
52
62
  }
53
- return sequelize_utils_1.SequelizeUtils.ensureAttributesValidity(this.attributes);
63
+ return sequelize_utils_1.SequelizeUtils.ensureAttributesValidity(this.config.attributes);
54
64
  }
55
- if (!this.attributes && customAttributes.length) {
65
+ if (!this.config.attributes && customAttributes.length) {
56
66
  return {
57
67
  include: customAttributes.map(x => x.attribute)
58
68
  };
59
69
  }
60
70
  }
61
71
  transformIncludesConfig(options) {
62
- return this.includes
72
+ return this.config.includes
63
73
  .map(x => {
64
74
  const customAttributes = this.getCustomAttributes(options, x.path);
65
75
  if (!customAttributes.length) {
@@ -95,11 +105,11 @@ class AttributesConfig {
95
105
  });
96
106
  }
97
107
  getCustomAttributes(options, path) {
98
- return this.customAttributes
108
+ return this.config.customAttributes
99
109
  .filter(x => x.config.path === path)
100
110
  .map(x => ({
101
111
  key: x.key,
102
- attribute: x.transform(options, this.path.path),
112
+ attribute: x.withContext(this.dialectFormatterService).transform(options, this.config.path.path),
103
113
  path: x.config.path ? {
104
114
  path: x.config.path,
105
115
  paranoid: true
@@ -108,6 +118,6 @@ class AttributesConfig {
108
118
  .filter(x => x.attribute);
109
119
  }
110
120
  }
111
- exports.AttributesConfig = AttributesConfig;
121
+ exports.AttributesContext = AttributesContext;
112
122
 
113
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvYXR0cmlidXRlcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx3REFBb0Q7QUFFcEQsNkNBQXFEO0FBV3JELE1BQWEsZ0JBQWdCO0lBUXpCLFlBQW1CLEdBQVc7UUFBWCxRQUFHLEdBQUgsR0FBRyxDQUFRO1FBSnZCLGFBQVEsR0FBb0IsRUFBRSxDQUFDO1FBQy9CLHFCQUFnQixHQUE2QixFQUFFLENBQUM7UUFDaEQsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFHMUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLHVCQUFVLENBQUM7WUFDdkIsSUFBSSxFQUFFLEdBQUc7WUFDVCxRQUFRLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sYUFBYSxDQUFDLFVBQWlDO1FBQ2xELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQ2pDLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxVQUFvQjtRQUMvQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsVUFBVSxDQUFDO0lBQzNDLENBQUM7SUFFTSxPQUFPLENBQUMsSUFBZ0I7UUFDM0IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUFZOztRQUM1QixPQUFPLE1BQUEsSUFBSSxDQUFDLElBQUksMENBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU0sZUFBZSxDQUFDLE1BQWU7UUFDbEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUM7SUFDakMsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFZO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRU0sVUFBVSxDQUFD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QyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDUCxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUc7WUFDVixTQUFTLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDL0MsSUFBSSxFQUFHLENBQUMsQ0FBQyxNQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxFQUFHLENBQUMsQ0FBQyxNQUFjLENBQUMsSUFBSTtnQkFDNUIsUUFBUSxFQUFFLElBQUk7YUFDakIsQ0FBQyxDQUFDLENBQUMsSUFBSTtTQUNlLENBQUEsQ0FBQzthQUMzQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEMsQ0FBQztDQUNKO0FBM0hELDRDQTJIQyIsImZpbGUiOiJsaWIvbW9kZWxzL2F0dHJpYnV0ZXMubW9kZWwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaW5kQXR0cmlidXRlT3B0aW9ucywgT3JkZXIsIFdoZXJlT3B0aW9ucyB9IGZyb20gXCJzZXF1ZWxpemVcIjtcbmltcG9ydCB7IFNlcXVlbGl6ZVV0aWxzIH0gZnJvbSBcIi4uL3NlcXVlbGl6ZS51dGlsc1wiO1xuaW1wb3J0IHsgSW5jbHVkZUNvbmZpZywgSW5jbHVkZU1vZGVsLCBJbmNsdWRlV2hlcmVNb2RlbCB9IGZyb20gXCIuL2luY2x1ZGUubW9kZWxcIjtcbmltcG9ydCB7IFBhdGhDb25maWcsIFBhdGhNb2RlbCB9IGZyb20gXCIuL3BhdGgubW9kZWxcIjtcbmltcG9ydCB7IEN1c3RvbUF0dHJpYnV0ZXNDb25maWcsIEN1c3RvbUF0dHJpYnV0ZXNNb2RlbCB9IGZyb20gXCIuL2N1c3RvbS1hdHRyaWJ1dGVzLm1vZGVsXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXR0cmlidXRlc0NvbmZpZ01vZGVsIHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBhdHRyaWJ1dGVzPzogRmluZEF0dHJpYnV0ZU9wdGlvbnM7XG4gICAgcGF0aD86IFBhdGhDb25maWc7XG4gICAgaW5jbHVkZXM6IEluY2x1ZGVDb25maWdbXTtcbiAgICBjdXN0b21BdHRyaWJ1dGVzOiBDdXN0b21BdHRyaWJ1dGVzQ29uZmlnW107XG59XG5cbmV4cG9ydCBjbGFzcyBBdHRyaWJ1dGVzQ29uZmlnIGltcGxlbWVudHMgQXR0cmlidXRlc0NvbmZpZ01vZGVsIHtcbiAgICBwdWJsaWMgYXR0cmlidXRlcz86IEZpbmRBdHRyaWJ1dGVPcHRpb25zO1xuICAgIHB1YmxpYyBzZWFyY2hhYmxlQXR0cmlidXRlcz86IHN0cmluZ1tdO1xuICAgIHB1YmxpYyBwYXRoOiBQYXRoQ29uZmlnO1xuICAgIHB1YmxpYyBpbmNsdWRlczogSW5jbHVkZUNvbmZpZ1tdID0gW107XG4gICAgcHVibGljIGN1c3RvbUF0dHJpYnV0ZXM6IEN1c3RvbUF0dHJpYnV0ZXNDb25maWdbXSA9IFtdO1xuICAgIHB1YmxpYyBpZ25vcmVJblNlYXJjaCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGtleTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMucGF0aCA9IG5ldyBQYXRoQ29uZmlnKHtcbiAgICAgICAgICAgIHBhdGg6IGtleSxcbiAgICAgICAgICAgIHBhcmFub2lkOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRBdHRyaWJ1dGVzKGF0dHJpYnV0ZXM/OiBGaW5kQXR0cmlidXRlT3B0aW9ucykge1xuICAgICAgICB0aGlzLmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRTZWFyY2hhYmxlQXR0cmlidXRlcyhhdHRyaWJ1dGVzOiBzdHJpbmdbXSkge1xuICAgICAgICB0aGlzLnNlYXJjaGFibGVBdHRyaWJ1dGVzID0gYXR0cmlidXRlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0UGF0aChwYXRoOiBQYXRoQ29uZmlnKSB7XG4gICAgICAgIHRoaXMucGF0aCA9IHBhdGg7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnRhaW5zUGF0aChwYXRoOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGF0aD8ucGF0aC5zdGFydHNXaXRoKHBhdGgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRJZ25vcmVJblBhdGgoaWdub3JlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaWdub3JlSW5TZWFyY2ggPSBpZ25vcmU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFNlcGFyYXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhdGguc2VwYXJhdGUgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRPcmRlcihvcmRlcjogT3JkZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYXRoLm9yZGVyID0gb3JkZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZEluY2x1ZGUoaW5jbHVkZTogSW5jbHVkZUNvbmZpZykge1xuICAgICAgICB0aGlzLmluY2x1ZGVzLnB1c2goaW5jbHVkZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZEN1c3RvbUF0dHJpYnV0ZShhdHRyaWJ1dGU6IEN1c3RvbUF0dHJpYnV0ZXNDb25maWcpIHtcbiAgICAgICAgdGhpcy5jdXN0b21BdHRyaWJ1dGVzLnB1c2goYXR0cmlidXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtQXR0cmlidXRlc0NvbmZpZyhvcHRpb25zPzogb2JqZWN0KTogRmluZEF0dHJpYnV0ZU9wdGlvbnMge1xuICAgICAgICBjb25zdCBjdXN0b21BdHRyaWJ1dGVzID0gdGhpcy5nZXRDdXN0b21BdHRyaWJ1dGVzKG9wdGlvbnMpO1xuICAgICAgICBpZiAodGhpcy5hdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jdXN0b21BdHRyaWJ1dGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBTZXF1ZWxpemVVdGlscy5lbnN1cmVBdHRyaWJ1dGVzVmFsaWRpdHkoXG4gICAgICAgICAgICAgICAgICAgIFNlcXVlbGl6ZVV0aWxzLm1lcmdlQXR0cmlidXRlcyh0aGlzLmF0dHJpYnV0ZXMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGU6IGN1c3RvbUF0dHJpYnV0ZXMubWFwKHggPT4geC5hdHRyaWJ1dGUpXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIFNlcXVlbGl6ZVV0aWxzLmVuc3VyZUF0dHJpYnV0ZXNWYWxpZGl0eSh0aGlzLmF0dHJpYnV0ZXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5hdHRyaWJ1dGVzICYmIGN1c3RvbUF0dHJpYnV0ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGluY2x1ZGU6IGN1c3RvbUF0dHJpYnV0ZXMubWFwKHggPT4geC5hdHRyaWJ1dGUpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHRyYW5zZm9ybUluY2x1ZGVzQ29uZmlnKG9wdGlvbnM/OiBvYmplY3QpOiBJbmNsdWRlTW9kZWxbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmluY2x1ZGVzXG4gICAgICAgICAgICAubWFwKHggPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1c3RvbUF0dHJpYnV0ZXMgPSB0aGlzLmdldEN1c3RvbUF0dHJpYnV0ZXMob3B0aW9ucywgeC5wYXRoKTtcbiAgICAgICAgICAgICAgICBpZiAoIWN1c3RvbUF0dHJpYnV0ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh4LmF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLngsXG4gICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiBbLi4ueC5hdHRyaWJ1dGVzIGFzIHN0cmluZ1tdLCAuLi5jdXN0b21BdHRyaWJ1dGVzLm1hcChhID0+IGEuYXR0cmlidXRlKV1cbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4ueCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlOiBjdXN0b21BdHRyaWJ1dGVzLm1hcChhID0+IGEuYXR0cmlidXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAubWFwKHggPT4ge1xuICAgICAgICAgICAgICAgIGlmICghb3B0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHdoZXJlLCAuLi52YWx1ZXMgfSA9IHg7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCF4LndoZXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLngsXG4gICAgICAgICAgICAgICAgICAgIHdoZXJlOiBTZXF1ZWxpemVVdGlscy5nZW5lcmF0ZVdoZXJlQ29uZGl0aW9ucyh4LndoZXJlLCBvcHRpb25zKVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3VzdG9tQXR0cmlidXRlcyhvcHRpb25zPzogb2JqZWN0LCBwYXRoPzogc3RyaW5nKTogQ3VzdG9tQXR0cmlidXRlc01vZGVsW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXN0b21BdHRyaWJ1dGVzXG4gICAgICAgICAgICAuZmlsdGVyKHggPT4geC5jb25maWcucGF0aCA9PT0gcGF0aClcbiAgICAgICAgICAgIC5tYXAoeCA9PiAoe1xuICAgICAgICAgICAgICAgIGtleTogeC5rZXksXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlOiB4LnRyYW5zZm9ybShvcHRpb25zLCB0aGlzLnBhdGgucGF0aCksXG4gICAgICAgICAgICAgICAgcGF0aDogKHguY29uZmlnIGFzIGFueSkucGF0aCA/IHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogKHguY29uZmlnIGFzIGFueSkucGF0aCxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW5vaWQ6IHRydWVcbiAgICAgICAgICAgICAgICB9IDogbnVsbFxuICAgICAgICAgICAgfSBhcyBDdXN0b21BdHRyaWJ1dGVzTW9kZWwpKVxuICAgICAgICAgICAgLmZpbHRlcih4ID0+IHguYXR0cmlidXRlKTtcbiAgICB9XG59XG4iXX0=
123
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvYXR0cmlidXRlcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx3REFBb0Q7QUFJcEQsNkNBQTBDO0FBVTFDLE1BQWEsZ0JBQWdCO0lBUXpCLFlBQW1CLEdBQVc7UUFBWCxRQUFHLEdBQUgsR0FBRyxDQUFRO1FBSnZCLGFBQVEsR0FBb0IsRUFBRSxDQUFDO1FBQy9CLHFCQUFnQixHQUE2QixFQUFFLENBQUM7UUFDaEQsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFHMUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLHVCQUFVLENBQUM7WUFDdkIsSUFBSSxFQUFFLEdBQUc7WUFDVCxRQUFRLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sV0FBVyxDQUFDLHVCQUFnRDtRQUMvRCxPQUFPLElBQUksaUJBQWlCLENBQUMsSUFBSSxFQUFFLHVCQUF1QixDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVNLGFBQWEsQ0FBQyxVQUFpQztRQUNsRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUNqQyxDQUFDO0lBRU0sdUJBQXVCLENBQUMsVUFBb0I7UUFDL0MsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFVBQVUsQ0FBQztJQUMzQyxDQUFDO0lBRU0sT0FBTyxDQUFDLElBQWdCO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxZQUFZLENBQUMsSUFBWTs7UUFDNUIsT0FBTyxNQUFBLElBQUksQ0FBQyxJQUFJLDBDQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFlO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFF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LE9BQU87Z0JBQ0gsR0FBRyxDQUFDO2dCQUNKLEtBQUssRUFBRSxnQ0FBYyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDO2FBQ2xFLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxPQUFnQixFQUFFLElBQWE7UUFDdEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQjthQUM5QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUM7YUFDbkMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNQLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRztZQUNWLFNBQVMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ2hHLElBQUksRUFBRyxDQUFDLENBQUMsTUFBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQzNCLElBQUksRUFBRyxDQUFDLENBQUMsTUFBYyxDQUFDLElBQUk7Z0JBQzVCLFFBQVEsRUFBRSxJQUFJO2FBQ2pCLENBQUMsQ0FBQyxDQUFDLElBQUk7U0FDZSxDQUFBLENBQUM7YUFDM0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Q0FDSjtBQTNFRCw4Q0EyRUMiLCJmaWxlIjoibGliL21vZGVscy9hdHRyaWJ1dGVzLm1vZGVsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmluZEF0dHJpYnV0ZU9wdGlvbnMsIE9yZGVyIH0gZnJvbSBcInNlcXVlbGl6ZVwiO1xuaW1wb3J0IHsgU2VxdWVsaXplVXRpbHMgfSBmcm9tIFwiLi4vc2VxdWVsaXplLnV0aWxzXCI7XG5pbXBvcnQgeyBEaWFsZWN0Rm9ybWF0dGVyU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9kaWFsZWN0LWZvcm1hdHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBDdXN0b21BdHRyaWJ1dGVzQ29uZmlnLCBDdXN0b21BdHRyaWJ1dGVzTW9kZWwgfSBmcm9tIFwiLi9jdXN0b20tYXR0cmlidXRlcy5tb2RlbFwiO1xuaW1wb3J0IHsgSW5jbHVkZUNvbmZpZywgSW5jbHVkZU1vZGVsIH0gZnJvbSBcIi4vaW5jbHVkZS5tb2RlbFwiO1xuaW1wb3J0IHsgUGF0aENvbmZpZyB9IGZyb20gXCIuL3BhdGgubW9kZWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBdHRyaWJ1dGVzQ29uZmlnTW9kZWwge1xuICAgIGtleTogc3RyaW5nO1xuICAgIGF0dHJpYnV0ZXM/OiBGaW5kQXR0cmlidXRlT3B0aW9ucztcbiAgICBwYXRoPzogUGF0aENvbmZpZztcbiAgICBpbmNsdWRlczogSW5jbHVkZUNvbmZpZ1tdO1xuICAgIGN1c3RvbUF0dHJpYnV0ZXM6IEN1c3RvbUF0dHJpYnV0ZXNDb25maWdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIEF0dHJpYnV0ZXNDb25maWcgaW1wbGVtZW50cyBBdHRyaWJ1dGVzQ29uZmlnTW9kZWwge1xuICAgIHB1YmxpYyBhdHRyaWJ1dGVzPzogRmluZEF0dHJpYnV0ZU9wdGlvbnM7XG4gICAgcHVibGljIHNlYXJjaGFibGVBdHRyaWJ1dGVzPzogc3RyaW5nW107XG4gICAgcHVibGljIHBhdGg6IFBhdGhDb25maWc7XG4gICAgcHVibGljIGluY2x1ZGVzOiBJbmNsdWRlQ29uZmlnW10gPSBbXTtcbiAgICBwdWJsaWMgY3VzdG9tQXR0cmlidXRlczogQ3VzdG9tQXR0cmlidXRlc0NvbmZpZ1tdID0gW107XG4gICAgcHVibGljIGlnbm9yZUluU2VhcmNoID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMga2V5OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5wYXRoID0gbmV3IFBhdGhDb25maWcoe1xuICAgICAgICAgICAgcGF0aDoga2V5LFxuICAgICAgICAgICAgcGFyYW5vaWQ6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhDb250ZXh0KGRpYWxlY3RGb3JtYXR0ZXJTZXJ2aWNlOiBEaWFsZWN0Rm9ybWF0dGVyU2VydmljZSk6IEF0dHJpYnV0ZXNDb250ZXh0IHtcbiAgICAgICAgcmV0dXJuIG5ldyBBdHRyaWJ1dGVzQ29udGV4dCh0aGlzLCBkaWFsZWN0Rm9ybWF0dGVyU2VydmljZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEF0dHJpYnV0ZXMoYXR0cmlidXRlcz86IEZpbmRBdHRyaWJ1dGVPcHRpb25zKSB7XG4gICAgICAgIHRoaXMuYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFNlYXJjaGFibGVBdHRyaWJ1dGVzKGF0dHJpYnV0ZXM6IHN0cmluZ1tdKSB7XG4gICAgICAgIHRoaXMuc2VhcmNoYWJsZUF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRQYXRoKHBhdGg6IFBhdGhDb25maWcpIHtcbiAgICAgICAgdGhpcy5wYXRoID0gcGF0aDtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29udGFpbnNQYXRoKHBhdGg6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXRoPy5wYXRoLnN0YXJ0c1dpdGgocGF0aCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldElnbm9yZUluUGF0aChpZ25vcmU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pZ25vcmVJblNlYXJjaCA9IGlnbm9yZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0U2VwYXJhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGF0aC5zZXBhcmF0ZSA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldE9yZGVyKG9yZGVyOiBPcmRlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnBhdGgub3JkZXIgPSBvcmRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkSW5jbHVkZShpbmNsdWRlOiBJbmNsdWRlQ29uZmlnKSB7XG4gICAgICAgIHRoaXMuaW5jbHVkZXMucHVzaChpbmNsdWRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ3VzdG9tQXR0cmlidXRlKGF0dHJpYnV0ZTogQ3VzdG9tQXR0cmlidXRlc0NvbmZpZykge1xuICAgICAgICB0aGlzLmN1c3RvbUF0dHJpYnV0ZXMucHVzaChhdHRyaWJ1dGUpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEF0dHJpYnV0ZXNDb250ZXh0IHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZzogQXR0cmlidXRlc0NvbmZpZywgcHJpdmF0ZSBkaWFsZWN0Rm9ybWF0dGVyU2VydmljZTogRGlhbGVjdEZvcm1hdHRlclNlcnZpY2UpIHt9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtQXR0cmlidXRlc0NvbmZpZyhvcHRpb25zPzogb2JqZWN0KTogRmluZEF0dHJpYnV0ZU9wdGlvbnMge1xuICAgICAgICBjb25zdCBjdXN0b21BdHRyaWJ1dGVzID0gdGhpcy5nZXRDdXN0b21BdHRyaWJ1dGVzKG9wdGlvbnMpO1xuICAgICAgICBpZiAodGhpcy5jb25maWcuYXR0cmlidXRlcykge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnLmN1c3RvbUF0dHJpYnV0ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFNlcXVlbGl6ZVV0aWxzLmVuc3VyZUF0dHJpYnV0ZXNWYWxpZGl0eShcbiAgICAgICAgICAgICAgICAgICAgU2VxdWVsaXplVXRpbHMubWVyZ2VBdHRyaWJ1dGVzKHRoaXMuY29uZmlnLmF0dHJpYnV0ZXMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGU6IGN1c3RvbUF0dHJpYnV0ZXMubWFwKHggPT4geC5hdHRyaWJ1dGUpXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIFNlcXVlbGl6ZVV0aWxzLmVuc3VyZUF0dHJpYnV0ZXNWYWxpZGl0eSh0aGlzLmNvbmZpZy5hdHRyaWJ1dGVzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuY29uZmlnLmF0dHJpYnV0ZXMgJiYgY3VzdG9tQXR0cmlidXRlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaW5jbHVkZTogY3VzdG9tQXR0cmlidXRlcy5tYXAoeCA9PiB4LmF0dHJpYnV0ZSlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtSW5jbHVkZXNDb25maWcob3B0aW9ucz86IG9iamVjdCk6IEluY2x1ZGVNb2RlbFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLmluY2x1ZGVzXG4gICAgICAgICAgICAubWFwKHggPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1c3RvbUF0dHJpYnV0ZXMgPSB0aGlzLmdldEN1c3RvbUF0dHJpYnV0ZXMob3B0aW9ucywgeC5wYXRoKTtcbiAgICAgICAgICAgICAgICBpZiAoIWN1c3RvbUF0dHJpYnV0ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh4LmF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLngsXG4gICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiBbLi4ueC5hdHRyaWJ1dGVzIGFzIHN0cmluZ1tdLCAuLi5jdXN0b21BdHRyaWJ1dGVzLm1hcChhID0+IGEuYXR0cmlidXRlKV1cbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4ueCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlOiBjdXN0b21BdHRyaWJ1dGVzLm1hcChhID0+IGEuYXR0cmlidXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAubWFwKHggPT4ge1xuICAgICAgICAgICAgICAgIGlmICghb3B0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7d2hlcmUsIC4uLnZhbHVlc30gPSB4O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICgheC53aGVyZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi54LFxuICAgICAgICAgICAgICAgICAgICB3aGVyZTogU2VxdWVsaXplVXRpbHMuZ2VuZXJhdGVXaGVyZUNvbmRpdGlvbnMoeC53aGVyZSwgb3B0aW9ucylcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEN1c3RvbUF0dHJpYnV0ZXMob3B0aW9ucz86IG9iamVjdCwgcGF0aD86IHN0cmluZyk6IEN1c3RvbUF0dHJpYnV0ZXNNb2RlbFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLmN1c3RvbUF0dHJpYnV0ZXNcbiAgICAgICAgICAgIC5maWx0ZXIoeCA9PiB4LmNvbmZpZy5wYXRoID09PSBwYXRoKVxuICAgICAgICAgICAgLm1hcCh4ID0+ICh7XG4gICAgICAgICAgICAgICAga2V5OiB4LmtleSxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGU6IHgud2l0aENvbnRleHQodGhpcy5kaWFsZWN0Rm9ybWF0dGVyU2VydmljZSkudHJhbnNmb3JtKG9wdGlvbnMsIHRoaXMuY29uZmlnLnBhdGgucGF0aCksXG4gICAgICAgICAgICAgICAgcGF0aDogKHguY29uZmlnIGFzIGFueSkucGF0aCA/IHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogKHguY29uZmlnIGFzIGFueSkucGF0aCxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW5vaWQ6IHRydWVcbiAgICAgICAgICAgICAgICB9IDogbnVsbFxuICAgICAgICAgICAgfSBhcyBDdXN0b21BdHRyaWJ1dGVzTW9kZWwpKVxuICAgICAgICAgICAgLmZpbHRlcih4ID0+IHguYXR0cmlidXRlKTtcbiAgICB9XG59XG4iXX0=
@@ -1,14 +1,21 @@
1
- import { ProjectionAlias } from "sequelize";
2
- import { CustomAttributesConfig, CustomAttributesOptionConfig } from "./custom-attributes.model";
1
+ import { ProjectionAlias } from "sequelize/types/model";
2
+ import { DialectFormatterService } from "../services/dialect-formatter.service";
3
+ import { CustomAttributesConfig, CustomAttributesContext, CustomAttributesOptionConfig } from "./custom-attributes.model";
3
4
  export interface CountConfig extends CustomAttributesOptionConfig {
4
5
  attribute: string;
5
6
  distinct?: boolean;
6
7
  }
7
- export declare class CountAttributesConfig implements CustomAttributesConfig<CountConfig> {
8
+ export declare class CountAttributesConfig implements CustomAttributesConfig<CountConfig, CountAttributesContext> {
8
9
  key: string;
9
10
  config: CountConfig;
10
11
  type: string;
11
12
  constructor(key: string, config: CountConfig);
12
- transform(options: object, path?: string): string | ProjectionAlias;
13
+ withContext(dialectFormatterService: DialectFormatterService): CountAttributesContext;
13
14
  shouldGroupBy(): boolean;
14
15
  }
16
+ export declare class CountAttributesContext extends CustomAttributesContext {
17
+ private config;
18
+ private dialectFormatterService;
19
+ constructor(config: CountAttributesConfig, dialectFormatterService: DialectFormatterService);
20
+ transform(options: object, path?: string): string | ProjectionAlias;
21
+ }
@@ -1,30 +1,41 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CountAttributesConfig = void 0;
3
+ exports.CountAttributesContext = exports.CountAttributesConfig = void 0;
4
4
  const sequelize_1 = require("sequelize");
5
- const sequelize_utils_1 = require("../sequelize.utils");
5
+ const custom_attributes_model_1 = require("./custom-attributes.model");
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
- 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];
12
+ withContext(dialectFormatterService) {
13
+ return new CountAttributesContext(this, dialectFormatterService);
23
14
  }
24
15
  shouldGroupBy() {
25
16
  return true;
26
17
  }
27
18
  }
28
19
  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;
29
40
 
30
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvY291bnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQXlEO0FBRXpELHdEQUFvRDtBQVFwRCxNQUFhLHFCQUFxQjtJQUc5QixZQUFtQixHQUFXLEVBQVMsTUFBbUI7UUFBdkMsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUFTLFdBQU0sR0FBTixNQUFNLENBQWE7UUFGbkQsU0FBSSxHQUFHLE9BQU8sQ0FBQztJQUV1QyxDQUFDO0lBRXZELFNBQVMsQ0FBQyxPQUFlLEVBQUUsSUFBYTtRQUMzQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ3RCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtnQkFDOUIsQ0FBQyxDQUFDLGdDQUFjLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQzVFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUM1QixPQUFPLENBQUMsSUFBQSxtQkFBTyxFQUFDLGtCQUFrQixTQUFTLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM5RDtRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtZQUM5QixDQUFDLENBQUMsSUFBQSxtQkFBTyxFQUFDLGdDQUFjLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyRixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDNUIsT0FBTyxDQUFDLElBQUEsY0FBRSxFQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVNLGFBQWE7UUFDaEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKO0FBdEJELHNEQXNCQyIsImZpbGUiOiJsaWIvbW9kZWxzL2NvdW50Lm1vZGVsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHIgfSBmcm9tIFwiZGF0ZS1mbnMvbG9jYWxlXCI7XG5pbXBvcnQgeyBmbiwgbGl0ZXJhbCwgUHJvamVjdGlvbkFsaWFzIH0gZnJvbSBcInNlcXVlbGl6ZVwiO1xuaW1wb3J0IHsgR3JvdXBPcHRpb24gfSBmcm9tIFwic2VxdWVsaXplL3R5cGVzL21vZGVsXCI7XG5pbXBvcnQgeyBTZXF1ZWxpemVVdGlscyB9IGZyb20gXCIuLi9zZXF1ZWxpemUudXRpbHNcIjtcbmltcG9ydCB7IEN1c3RvbUF0dHJpYnV0ZXNDb25maWcsIEN1c3RvbUF0dHJpYnV0ZXNPcHRpb25Db25maWcgfSBmcm9tIFwiLi9jdXN0b20tYXR0cmlidXRlcy5tb2RlbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvdW50Q29uZmlnIGV4dGVuZHMgQ3VzdG9tQXR0cmlidXRlc09wdGlvbkNvbmZpZyB7XG4gICAgYXR0cmlidXRlOiBzdHJpbmc7XG4gICAgZGlzdGluY3Q/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQ291bnRBdHRyaWJ1dGVzQ29uZmlnIGltcGxlbWVudHMgQ3VzdG9tQXR0cmlidXRlc0NvbmZpZzxDb3VudENvbmZpZz4ge1xuICAgIHB1YmxpYyB0eXBlID0gXCJjb3VudFwiO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGtleTogc3RyaW5nLCBwdWJsaWMgY29uZmlnOiBDb3VudENvbmZpZykge31cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm0ob3B0aW9uczogb2JqZWN0LCBwYXRoPzogc3RyaW5nKTogc3RyaW5nIHwgUHJvamVjdGlvbkFsaWFzIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmRpc3RpbmN0KSB7XG4gICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGUgPSB0aGlzLmNvbmZpZy5wYXRoXG4gICAgICAgICAgICAgICAgPyBTZXF1ZWxpemVVdGlscy5nZXRMaXRlcmFsRnVsbE5hbWUodGhpcy5jb25maWcuYXR0cmlidXRlLCB0aGlzLmNvbmZpZy5wYXRoKVxuICAgICAgICAgICAgICAgIDogdGhpcy5jb25maWcuYXR0cmlidXRlO1xuICAgICAgICAgICAgcmV0dXJuIFtsaXRlcmFsKGBDT1VOVChESVNUSU5DVCAke2F0dHJpYnV0ZX0pYCksIHRoaXMua2V5XTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IHRoaXMuY29uZmlnLnBhdGhcbiAgICAgICAgICAgID8gbGl0ZXJhbChTZXF1ZWxpemVVdGlscy5nZXRMaXRlcmFsRnVsbE5hbWUodGhpcy5jb25maWcuYXR0cmlidXRlLCB0aGlzLmNvbmZpZy5wYXRoKSlcbiAgICAgICAgICAgIDogdGhpcy5jb25maWcuYXR0cmlidXRlO1xuICAgICAgICByZXR1cm4gW2ZuKFwiQ09VTlRcIiwgYXR0cmlidXRlKSwgdGhpcy5rZXldO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG91bGRHcm91cEJ5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG4iXX0=
41
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvY291bnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXdDO0FBR3hDLHVFQUltQztBQU9uQyxNQUFhLHFCQUFxQjtJQUc5QixZQUFtQixHQUFXLEVBQVMsTUFBbUI7UUFBdkMsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUFTLFdBQU0sR0FBTixNQUFNLENBQWE7UUFGbkQsU0FBSSxHQUFHLE9BQU8sQ0FBQztJQUV1QyxDQUFDO0lBRXZELFdBQVcsQ0FBQyx1QkFBZ0Q7UUFDL0QsT0FBTyxJQUFJLHNCQUFzQixDQUFDLElBQUksRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTSxhQUFhO1FBQ2hCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Q0FDSjtBQVpELHNEQVlDO0FBRUQsTUFBYSxzQkFBdUIsU0FBUSxpREFBdUI7SUFDL0QsWUFBb0IsTUFBNkIsRUFBVSx1QkFBZ0Q7UUFDdkcsS0FBSyxFQUFFLENBQUM7UUFEUSxXQUFNLEdBQU4sTUFBTSxDQUF1QjtRQUFVLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7SUFFM0csQ0FBQztJQUVNLFNBQVMsQ0FBQyxPQUFlLEVBQUUsSUFBYTtRQUMzQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUM3QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJO2dCQUNyQyxDQUFDLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ3hHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7WUFDbkMsT0FBTyxDQUFDLElBQUEsbUJBQU8sRUFBQyxrQkFBa0IsU0FBUyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3JFO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSTtZQUNyQyxDQUFDLENBQUMsSUFBQSxtQkFBTyxFQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakgsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNuQyxPQUFPLENBQUMsSUFBQSxjQUFFLEVBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckQsQ0FBQztDQUNKO0FBbEJELHdEQWtCQyIsImZpbGUiOiJsaWIvbW9kZWxzL2NvdW50Lm1vZGVsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm4sIGxpdGVyYWwgfSBmcm9tIFwic2VxdWVsaXplXCI7XG5pbXBvcnQgeyBQcm9qZWN0aW9uQWxpYXMgfSBmcm9tIFwic2VxdWVsaXplL3R5cGVzL21vZGVsXCI7XG5pbXBvcnQgeyBEaWFsZWN0Rm9ybWF0dGVyU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9kaWFsZWN0LWZvcm1hdHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQge1xuICAgIEN1c3RvbUF0dHJpYnV0ZXNDb25maWcsXG4gICAgQ3VzdG9tQXR0cmlidXRlc0NvbnRleHQsXG4gICAgQ3VzdG9tQXR0cmlidXRlc09wdGlvbkNvbmZpZ1xufSBmcm9tIFwiLi9jdXN0b20tYXR0cmlidXRlcy5tb2RlbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvdW50Q29uZmlnIGV4dGVuZHMgQ3VzdG9tQXR0cmlidXRlc09wdGlvbkNvbmZpZyB7XG4gICAgYXR0cmlidXRlOiBzdHJpbmc7XG4gICAgZGlzdGluY3Q/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQ291bnRBdHRyaWJ1dGVzQ29uZmlnIGltcGxlbWVudHMgQ3VzdG9tQXR0cmlidXRlc0NvbmZpZzxDb3VudENvbmZpZywgQ291bnRBdHRyaWJ1dGVzQ29udGV4dD4ge1xuICAgIHB1YmxpYyB0eXBlID0gXCJjb3VudFwiO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGtleTogc3RyaW5nLCBwdWJsaWMgY29uZmlnOiBDb3VudENvbmZpZykge31cblxuICAgIHB1YmxpYyB3aXRoQ29udGV4dChkaWFsZWN0Rm9ybWF0dGVyU2VydmljZTogRGlhbGVjdEZvcm1hdHRlclNlcnZpY2UpOiBDb3VudEF0dHJpYnV0ZXNDb250ZXh0IHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb3VudEF0dHJpYnV0ZXNDb250ZXh0KHRoaXMsIGRpYWxlY3RGb3JtYXR0ZXJTZXJ2aWNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hvdWxkR3JvdXBCeSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ291bnRBdHRyaWJ1dGVzQ29udGV4dCBleHRlbmRzIEN1c3RvbUF0dHJpYnV0ZXNDb250ZXh0IHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZzogQ291bnRBdHRyaWJ1dGVzQ29uZmlnLCBwcml2YXRlIGRpYWxlY3RGb3JtYXR0ZXJTZXJ2aWNlOiBEaWFsZWN0Rm9ybWF0dGVyU2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm0ob3B0aW9uczogb2JqZWN0LCBwYXRoPzogc3RyaW5nKTogc3RyaW5nIHwgUHJvamVjdGlvbkFsaWFzIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmNvbmZpZy5kaXN0aW5jdCkge1xuICAgICAgICAgICAgY29uc3QgYXR0cmlidXRlID0gdGhpcy5jb25maWcuY29uZmlnLnBhdGhcbiAgICAgICAgICAgICAgICA/IHRoaXMuZGlhbGVjdEZvcm1hdHRlclNlcnZpY2UuZ2V0TGl0ZXJhbEZ1bGxOYW1lKHRoaXMuY29uZmlnLmNvbmZpZy5hdHRyaWJ1dGUsIHRoaXMuY29uZmlnLmNvbmZpZy5wYXRoKVxuICAgICAgICAgICAgICAgIDogdGhpcy5jb25maWcuY29uZmlnLmF0dHJpYnV0ZTtcbiAgICAgICAgICAgIHJldHVybiBbbGl0ZXJhbChgQ09VTlQoRElTVElOQ1QgJHthdHRyaWJ1dGV9KWApLCB0aGlzLmNvbmZpZy5rZXldO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXR0cmlidXRlID0gdGhpcy5jb25maWcuY29uZmlnLnBhdGhcbiAgICAgICAgICAgID8gbGl0ZXJhbCh0aGlzLmRpYWxlY3RGb3JtYXR0ZXJTZXJ2aWNlLmdldExpdGVyYWxGdWxsTmFtZSh0aGlzLmNvbmZpZy5jb25maWcuYXR0cmlidXRlLCB0aGlzLmNvbmZpZy5jb25maWcucGF0aCkpXG4gICAgICAgICAgICA6IHRoaXMuY29uZmlnLmNvbmZpZy5hdHRyaWJ1dGU7XG4gICAgICAgIHJldHVybiBbZm4oXCJDT1VOVFwiLCBhdHRyaWJ1dGUpLCB0aGlzLmNvbmZpZy5rZXldO1xuICAgIH1cbn0iXX0=
@@ -1,4 +1,5 @@
1
1
  import { ProjectionAlias } from "sequelize";
2
+ import { DialectFormatterService } from "../services/dialect-formatter.service";
2
3
  import { IncludeWhereModel } from "./include.model";
3
4
  import { PathModel } from "./path.model";
4
5
  export interface CustomAttributesOptionConfig {
@@ -6,13 +7,16 @@ export interface CustomAttributesOptionConfig {
6
7
  path?: string;
7
8
  where?: IncludeWhereModel;
8
9
  }
9
- export interface CustomAttributesConfig<T extends CustomAttributesOptionConfig = CustomAttributesOptionConfig> {
10
+ export interface CustomAttributesConfig<T extends CustomAttributesOptionConfig = CustomAttributesOptionConfig, context = CustomAttributesContext> {
10
11
  key: string;
11
12
  type: string;
12
13
  config?: T;
13
- transform(options?: object, path?: string): string | ProjectionAlias;
14
+ withContext(dialectFormatterService: DialectFormatterService): context;
14
15
  shouldGroupBy(): boolean;
15
16
  }
17
+ export declare abstract class CustomAttributesContext {
18
+ abstract transform(options?: object, path?: string): string | ProjectionAlias;
19
+ }
16
20
  export interface CustomAttributesModel {
17
21
  key: string;
18
22
  attribute: string | ProjectionAlias;
@@ -1,4 +1,8 @@
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;
3
7
 
4
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvY3VzdG9tLWF0dHJpYnV0ZXMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJsaWIvbW9kZWxzL2N1c3RvbS1hdHRyaWJ1dGVzLm1vZGVsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvamVjdGlvbkFsaWFzIH0gZnJvbSBcInNlcXVlbGl6ZVwiO1xuaW1wb3J0IHsgR3JvdXBPcHRpb24gfSBmcm9tIFwic2VxdWVsaXplL3R5cGVzL21vZGVsXCI7XG5pbXBvcnQgeyBJbmNsdWRlV2hlcmVNb2RlbCB9IGZyb20gXCIuL2luY2x1ZGUubW9kZWxcIjtcbmltcG9ydCB7IFBhdGhNb2RlbCB9IGZyb20gXCIuL3BhdGgubW9kZWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21BdHRyaWJ1dGVzT3B0aW9uQ29uZmlnIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgcGF0aD86IHN0cmluZztcbiAgICB3aGVyZT86IEluY2x1ZGVXaGVyZU1vZGVsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUF0dHJpYnV0ZXNDb25maWc8VCBleHRlbmRzIEN1c3RvbUF0dHJpYnV0ZXNPcHRpb25Db25maWcgPSBDdXN0b21BdHRyaWJ1dGVzT3B0aW9uQ29uZmlnPiB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIGNvbmZpZz86IFQ7XG5cbiAgICB0cmFuc2Zvcm0ob3B0aW9ucz86IG9iamVjdCwgcGF0aD86IHN0cmluZyk6IHN0cmluZyB8IFByb2plY3Rpb25BbGlhcztcbiAgICBzaG91bGRHcm91cEJ5KCk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tQXR0cmlidXRlc01vZGVsIHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBhdHRyaWJ1dGU6IHN0cmluZyB8IFByb2plY3Rpb25BbGlhcztcbiAgICBwYXRoPzogUGF0aE1vZGVsO1xufVxuIl19
8
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvY3VzdG9tLWF0dHJpYnV0ZXMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBcUJBLE1BQXNCLHVCQUF1QjtDQUU1QztBQUZELDBEQUVDIiwiZmlsZSI6ImxpYi9tb2RlbHMvY3VzdG9tLWF0dHJpYnV0ZXMubW9kZWwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9qZWN0aW9uQWxpYXMgfSBmcm9tIFwic2VxdWVsaXplXCI7XG5pbXBvcnQgeyBHcm91cE9wdGlvbiB9IGZyb20gXCJzZXF1ZWxpemUvdHlwZXMvbW9kZWxcIjtcbmltcG9ydCB7IERpYWxlY3RGb3JtYXR0ZXJTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL2RpYWxlY3QtZm9ybWF0dGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7IEluY2x1ZGVXaGVyZU1vZGVsIH0gZnJvbSBcIi4vaW5jbHVkZS5tb2RlbFwiO1xuaW1wb3J0IHsgUGF0aE1vZGVsIH0gZnJvbSBcIi4vcGF0aC5tb2RlbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUF0dHJpYnV0ZXNPcHRpb25Db25maWcge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBwYXRoPzogc3RyaW5nO1xuICAgIHdoZXJlPzogSW5jbHVkZVdoZXJlTW9kZWw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tQXR0cmlidXRlc0NvbmZpZzxUIGV4dGVuZHMgQ3VzdG9tQXR0cmlidXRlc09wdGlvbkNvbmZpZyA9IEN1c3RvbUF0dHJpYnV0ZXNPcHRpb25Db25maWcsIGNvbnRleHQgPSBDdXN0b21BdHRyaWJ1dGVzQ29udGV4dD4ge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBjb25maWc/OiBUO1xuXG4gICAgd2l0aENvbnRleHQoZGlhbGVjdEZvcm1hdHRlclNlcnZpY2U6IERpYWxlY3RGb3JtYXR0ZXJTZXJ2aWNlKTogY29udGV4dDtcbiAgICBzaG91bGRHcm91cEJ5KCk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDdXN0b21BdHRyaWJ1dGVzQ29udGV4dCB7XG4gICAgcHVibGljIGFic3RyYWN0IHRyYW5zZm9ybShvcHRpb25zPzogb2JqZWN0LCBwYXRoPzogc3RyaW5nKTogc3RyaW5nIHwgUHJvamVjdGlvbkFsaWFzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUF0dHJpYnV0ZXNNb2RlbCB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgYXR0cmlidXRlOiBzdHJpbmcgfCBQcm9qZWN0aW9uQWxpYXM7XG4gICAgcGF0aD86IFBhdGhNb2RlbDtcbn1cbiJdfQ==
@@ -1,5 +1,6 @@
1
1
  import { FindAttributeOptions } from "sequelize";
2
2
  import { Model } from "sequelize-typescript";
3
+ import { DialectFormatterService } from "../services/dialect-formatter.service";
3
4
  import { CustomAttributesConfig, CustomAttributesModel } from "./custom-attributes.model";
4
5
  import { IncludeConfig } from "./include.model";
5
6
  export interface DataFilterConfigModel {
@@ -15,14 +16,20 @@ export declare class DataFilterConfig implements DataFilterConfigModel {
15
16
  exportColumns?: string[];
16
17
  customAttributes: CustomAttributesConfig[];
17
18
  ignoreInSearch: boolean;
19
+ withContext(dialectFormatterService: DialectFormatterService): DataFilterContext;
18
20
  setModel(model: typeof Model): void;
19
21
  setIgnoreInPath(ignore: boolean): void;
20
22
  setAttributes(attributes?: FindAttributeOptions): void;
21
23
  setSearchableAttributes(attributes: string[]): void;
22
24
  setExportColumns(exportColumns: string[]): void;
23
25
  addCustomAttribute(attribute: CustomAttributesConfig): void;
24
- transformAttributesConfig(options?: object): FindAttributeOptions;
25
- getCustomAttributes(options?: object): CustomAttributesModel[];
26
26
  getCustomAttributesIncludes(): IncludeConfig[];
27
27
  getSearchableAttributes(): string[];
28
28
  }
29
+ export declare class DataFilterContext {
30
+ private config;
31
+ private dialectFormatterService;
32
+ constructor(config: DataFilterConfig, dialectFormatterService: DialectFormatterService);
33
+ transformAttributesConfig(options?: object): FindAttributeOptions;
34
+ getCustomAttributes(options?: object): CustomAttributesModel[];
35
+ }
@@ -1,12 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DataFilterConfig = void 0;
3
+ exports.DataFilterContext = 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
+ }
10
13
  setModel(model) {
11
14
  this.model = model;
12
15
  }
@@ -25,34 +28,6 @@ class DataFilterConfig {
25
28
  addCustomAttribute(attribute) {
26
29
  this.customAttributes.push(attribute);
27
30
  }
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
- }
56
31
  getCustomAttributesIncludes() {
57
32
  return this.customAttributes
58
33
  .filter(x => x.config.path)
@@ -79,5 +54,40 @@ class DataFilterConfig {
79
54
  }
80
55
  }
81
56
  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;
82
92
 
83
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvZGF0YS1maWx0ZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsd0RBQXVEO0FBU3ZELE1BQWEsZ0JBQWdCO0lBQTdCO1FBS1cscUJBQWdCLEdBQTZCLEVBQUUsQ0FBQztRQUNoRCxtQkFBYyxHQUFHLEtBQUssQ0FBQztJQXFGbEMsQ0FBQztJQW5GVSxRQUFRLENBQUMsS0FBbUI7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFlO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxhQUFhLENBQUMsVUFBaUM7UUFDbEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDakMsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFVBQW9CO1FBQy9DLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxVQUFVLENBQUM7SUFDM0MsQ0FBQztJQUVNLGdCQUFnQixDQUFDLGFBQXVCO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxTQUFpQztRQUN2RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxPQUFnQjtRQUM3QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO2dCQUM5QixPQUFPLGdDQUFjLENBQUMsd0JBQXdCLENBQzFDLGdDQUFjLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7b0JBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2lCQUNsRCxDQUFDLENBQ0wsQ0FBQzthQUNMO1lBRUQsT0FBTyxnQ0FBYyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNuRTtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtZQUM3QyxPQUFPO2dCQUNILE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2FBQ2xELENBQUM7U0FDTDtJQUNMLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxPQUFnQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0I7YUFDdkIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNQLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRztZQUNWLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztZQUMvQixJQUFJLEVBQUcsQ0FBQyxDQUFDLE1BQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUMzQixJQUFJLEVBQUcsQ0FBQyxDQUFDLE1BQWMsQ0FBQyxJQUFJO2dCQUM1QixRQUFRLEVBQUUsSUFBSTthQUNqQixDQUFDLENBQUMsQ0FBQyxJQUFJO1NBQ2UsQ0FBQSxDQUFDO2FBQzNCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sMkJBQTJCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQjthQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQzthQUMxQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ1AsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtZQUMzQixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJO1lBQ25CLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDckIsUUFBUSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRU0sdUJBQXVCOztRQUMxQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckIsT0FBTyxFQUFFLENBQUM7U0FDYjtRQUVELElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzNCLE9BQU8sZ0NBQWMsQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsS0FBaUIsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUM5RztRQUVELE1BQU0sb0JBQW9CLEdBQUcsZ0NBQWMsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsS0FBaUIsQ0FBQyxDQUFDO1FBQ2pHLE1BQU0sVUFBVSxHQUFHLGdDQUFjLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLEtBQWlCLEVBQUUsTUFBQSxJQUFJLENBQUMsVUFBc0IsbUNBQUksRUFBRSxDQUFDLENBQUM7UUFDL0gsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDckIsVUFBdUIsYUFBdkIsVUFBVSx1QkFBVixVQUFVLENBQWUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RixvQkFBb0IsQ0FBQztJQUM3QixDQUFDO0NBQ0o7QUEzRkQsNENBMkZDIiwiZmlsZSI6ImxpYi9tb2RlbHMvZGF0YS1maWx0ZXIubW9kZWwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaW5kQXR0cmlidXRlT3B0aW9ucyB9IGZyb20gXCJzZXF1ZWxpemVcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcInNlcXVlbGl6ZS10eXBlc2NyaXB0XCI7XG5pbXBvcnQgeyBDdXN0b21BdHRyaWJ1dGVzQ29uZmlnLCBDdXN0b21BdHRyaWJ1dGVzTW9kZWwgfSBmcm9tIFwiLi9jdXN0b20tYXR0cmlidXRlcy5tb2RlbFwiO1xuaW1wb3J0IHsgSW5jbHVkZUNvbmZpZyB9IGZyb20gXCIuL2luY2x1ZGUubW9kZWxcIjtcbmltcG9ydCB7IE0sIFNlcXVlbGl6ZVV0aWxzIH0gZnJvbSBcIi4uL3NlcXVlbGl6ZS51dGlsc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFGaWx0ZXJDb25maWdNb2RlbCB7XG4gICAgbW9kZWw6IHR5cGVvZiBNb2RlbDtcbiAgICBhdHRyaWJ1dGVzPzogRmluZEF0dHJpYnV0ZU9wdGlvbnM7XG4gICAgZXhwb3J0Q29sdW1ucz86IHN0cmluZ1tdO1xuICAgIGN1c3RvbUF0dHJpYnV0ZXM6IEN1c3RvbUF0dHJpYnV0ZXNDb25maWdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIERhdGFGaWx0ZXJDb25maWcgaW1wbGVtZW50cyBEYXRhRmlsdGVyQ29uZmlnTW9kZWwge1xuICAgIHB1YmxpYyBtb2RlbDogdHlwZW9mIE1vZGVsO1xuICAgIHB1YmxpYyBhdHRyaWJ1dGVzPzogRmluZEF0dHJpYnV0ZU9wdGlvbnM7XG4gICAgcHVibGljIHNlYXJjaGFibGVBdHRyaWJ1dGVzPzogc3RyaW5nW107XG4gICAgcHVibGljIGV4cG9ydENvbHVtbnM/OiBzdHJpbmdbXTtcbiAgICBwdWJsaWMgY3VzdG9tQXR0cmlidXRlczogQ3VzdG9tQXR0cmlidXRlc0NvbmZpZ1tdID0gW107XG4gICAgcHVibGljIGlnbm9yZUluU2VhcmNoID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgc2V0TW9kZWwobW9kZWw6IHR5cGVvZiBNb2RlbCkge1xuICAgICAgICB0aGlzLm1vZGVsID0gbW9kZWw7XG4gICAgfVxuXG4gICAgcHVibGljIHNldElnbm9yZUluUGF0aChpZ25vcmU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pZ25vcmVJblNlYXJjaCA9IGlnbm9yZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0QXR0cmlidXRlcyhhdHRyaWJ1dGVzPzogRmluZEF0dHJpYnV0ZU9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGVzID0gYXR0cmlidXRlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0U2VhcmNoYWJsZUF0dHJpYnV0ZXMoYXR0cmlidXRlczogc3RyaW5nW10pIHtcbiAgICAgICAgdGhpcy5zZWFyY2hhYmxlQXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEV4cG9ydENvbHVtbnMoZXhwb3J0Q29sdW1uczogc3RyaW5nW10pIHtcbiAgICAgICAgdGhpcy5leHBvcnRDb2x1bW5zID0gZXhwb3J0Q29sdW1ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ3VzdG9tQXR0cmlidXRlKGF0dHJpYnV0ZTogQ3VzdG9tQXR0cmlidXRlc0NvbmZpZykge1xuICAgICAgICB0aGlzLmN1c3RvbUF0dHJpYnV0ZXMucHVzaChhdHRyaWJ1dGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm1BdHRyaWJ1dGVzQ29uZmlnKG9wdGlvbnM/OiBvYmplY3QpOiBGaW5kQXR0cmlidXRlT3B0aW9ucyB7XG4gICAgICAgIGNvbnN0IGN1c3RvbUF0dHJpYnV0ZXMgPSB0aGlzLmdldEN1c3RvbUF0dHJpYnV0ZXMob3B0aW9ucyk7XG4gICAgICAgIGlmICh0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1c3RvbUF0dHJpYnV0ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFNlcXVlbGl6ZVV0aWxzLmVuc3VyZUF0dHJpYnV0ZXNWYWxpZGl0eShcbiAgICAgICAgICAgICAgICAgICAgU2VxdWVsaXplVXRpbHMubWVyZ2VBdHRyaWJ1dGVzKHRoaXMuYXR0cmlidXRlcywge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZTogY3VzdG9tQXR0cmlidXRlcy5tYXAoeCA9PiB4LmF0dHJpYnV0ZSlcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gU2VxdWVsaXplVXRpbHMuZW5zdXJlQXR0cmlidXRlc1ZhbGlkaXR5KHRoaXMuYXR0cmlidXRlcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmF0dHJpYnV0ZXMgJiYgY3VzdG9tQXR0cmlidXRlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaW5jbHVkZTogY3VzdG9tQXR0cmlidXRlcy5tYXAoeCA9PiB4LmF0dHJpYnV0ZSlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3VzdG9tQXR0cmlidXRlcyhvcHRpb25zPzogb2JqZWN0KTogQ3VzdG9tQXR0cmlidXRlc01vZGVsW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXN0b21BdHRyaWJ1dGVzXG4gICAgICAgICAgICAubWFwKHggPT4gKHtcbiAgICAgICAgICAgICAgICBrZXk6IHgua2V5LFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZTogeC50cmFuc2Zvcm0ob3B0aW9ucyksXG4gICAgICAgICAgICAgICAgcGF0aDogKHguY29uZmlnIGFzIGFueSkucGF0aCA/IHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogKHguY29uZmlnIGFzIGFueSkucGF0aCxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW5vaWQ6IHRydWVcbiAgICAgICAgICAgICAgICB9IDogbnVsbFxuICAgICAgICAgICAgfSBhcyBDdXN0b21BdHRyaWJ1dGVzTW9kZWwpKVxuICAgICAgICAgICAgLmZpbHRlcih4ID0+IHguYXR0cmlidXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3VzdG9tQXR0cmlidXRlc0luY2x1ZGVzKCk6IEluY2x1ZGVDb25maWdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1c3RvbUF0dHJpYnV0ZXNcbiAgICAgICAgICAgIC5maWx0ZXIoeCA9PiB4LmNvbmZpZy5wYXRoKVxuICAgICAgICAgICAgLm1hcCh4ID0+ICh7XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogeyBpbmNsdWRlOiBbXSB9LFxuICAgICAgICAgICAgICAgIHBhdGg6IHguY29uZmlnLnBhdGgsXG4gICAgICAgICAgICAgICAgd2hlcmU6IHguY29uZmlnLndoZXJlLFxuICAgICAgICAgICAgICAgIHBhcmFub2lkOiB0cnVlXG4gICAgICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNlYXJjaGFibGVBdHRyaWJ1dGVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgaWYgKHRoaXMuaWdub3JlSW5TZWFyY2gpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaGFibGVBdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gU2VxdWVsaXplVXRpbHMuZ2V0TW9kZWxTZWFyY2hhYmxlRmllbGRBdHRyaWJ1dGVzKHRoaXMubW9kZWwgYXMgdHlwZW9mIE0sIHRoaXMuc2VhcmNoYWJsZUF0dHJpYnV0ZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2VhcmNoYWJsZUF0dHJpYnV0ZXMgPSBTZXF1ZWxpemVVdGlscy5nZXRNb2RlbFNlYXJjaGFibGVBdHRyaWJ1dGVzKHRoaXMubW9kZWwgYXMgdHlwZW9mIE0pO1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gU2VxdWVsaXplVXRpbHMuZ2V0TW9kZWxTZWFyY2hhYmxlRmllbGRBdHRyaWJ1dGVzKHRoaXMubW9kZWwgYXMgdHlwZW9mIE0sIHRoaXMuYXR0cmlidXRlcyBhcyBzdHJpbmdbXSA/PyBbXSk7XG4gICAgICAgIHJldHVybiBhdHRyaWJ1dGVzLmxlbmd0aCA/XG4gICAgICAgICAgICAoYXR0cmlidXRlcyBhcyBzdHJpbmdbXSk/LmZpbHRlcih4ID0+IHNlYXJjaGFibGVBdHRyaWJ1dGVzLnNvbWUoYXR0ciA9PiBhdHRyID09PSB4KSkgOlxuICAgICAgICAgICAgc2VhcmNoYWJsZUF0dHJpYnV0ZXM7XG4gICAgfVxufVxuIl19
93
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9tb2RlbHMvZGF0YS1maWx0ZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0Esd0RBQXVEO0FBU3ZELE1BQWEsZ0JBQWdCO0lBQTdCO1FBS1cscUJBQWdCLEdBQTZCLEVBQUUsQ0FBQztRQUNoRCxtQkFBYyxHQUFHLEtBQUssQ0FBQztJQXdEbEMsQ0FBQztJQXREVSxXQUFXLENBQUMsdUJBQWdEO1FBQy9ELE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQW1CO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxlQUFlLENBQUMsTUFBZTtRQUNsQyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBRU0sYUFBYSxDQUFDLFVBQWlDO1FBQ2xELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQ2pDLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxVQUFvQjtRQUMvQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsVUFBVSxDQUFDO0lBQzNDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxhQUF1QjtRQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUN2QyxDQUFDO0lBRU0sa0JBQWtCLENBQUMsU0FBaUM7UUFDdkQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sMkJBQTJCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQjthQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQzthQUMxQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ1AsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtZ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LElBQUk7YUFDakIsQ0FBQyxDQUFDLENBQUMsSUFBSTtTQUNlLENBQUEsQ0FBQzthQUMzQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEMsQ0FBQztDQUNKO0FBbkNELDhDQW1DQyIsImZpbGUiOiJsaWIvbW9kZWxzL2RhdGEtZmlsdGVyLm1vZGVsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmluZEF0dHJpYnV0ZU9wdGlvbnMgfSBmcm9tIFwic2VxdWVsaXplXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJzZXF1ZWxpemUtdHlwZXNjcmlwdFwiO1xuaW1wb3J0IHsgRGlhbGVjdEZvcm1hdHRlclNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvZGlhbGVjdC1mb3JtYXR0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHsgQ3VzdG9tQXR0cmlidXRlc0NvbmZpZywgQ3VzdG9tQXR0cmlidXRlc01vZGVsIH0gZnJvbSBcIi4vY3VzdG9tLWF0dHJpYnV0ZXMubW9kZWxcIjtcbmltcG9ydCB7IEluY2x1ZGVDb25maWcgfSBmcm9tIFwiLi9pbmNsdWRlLm1vZGVsXCI7XG5pbXBvcnQgeyBNLCBTZXF1ZWxpemVVdGlscyB9IGZyb20gXCIuLi9zZXF1ZWxpemUudXRpbHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhRmlsdGVyQ29uZmlnTW9kZWwge1xuICAgIG1vZGVsOiB0eXBlb2YgTW9kZWw7XG4gICAgYXR0cmlidXRlcz86IEZpbmRBdHRyaWJ1dGVPcHRpb25zO1xuICAgIGV4cG9ydENvbHVtbnM/OiBzdHJpbmdbXTtcbiAgICBjdXN0b21BdHRyaWJ1dGVzOiBDdXN0b21BdHRyaWJ1dGVzQ29uZmlnW107XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhRmlsdGVyQ29uZmlnIGltcGxlbWVudHMgRGF0YUZpbHRlckNvbmZpZ01vZGVsIHtcbiAgICBwdWJsaWMgbW9kZWw6IHR5cGVvZiBNb2RlbDtcbiAgICBwdWJsaWMgYXR0cmlidXRlcz86IEZpbmRBdHRyaWJ1dGVPcHRpb25zO1xuICAgIHB1YmxpYyBzZWFyY2hhYmxlQXR0cmlidXRlcz86IHN0cmluZ1tdO1xuICAgIHB1YmxpYyBleHBvcnRDb2x1bW5zPzogc3RyaW5nW107XG4gICAgcHVibGljIGN1c3RvbUF0dHJpYnV0ZXM6IEN1c3RvbUF0dHJpYnV0ZXNDb25maWdbXSA9IFtdO1xuICAgIHB1YmxpYyBpZ25vcmVJblNlYXJjaCA9IGZhbHNlO1xuXG4gICAgcHVibGljIHdpdGhDb250ZXh0KGRpYWxlY3RGb3JtYXR0ZXJTZXJ2aWNlOiBEaWFsZWN0Rm9ybWF0dGVyU2VydmljZSk6IERhdGFGaWx0ZXJDb250ZXh0IHtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRhRmlsdGVyQ29udGV4dCh0aGlzLCBkaWFsZWN0Rm9ybWF0dGVyU2VydmljZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldE1vZGVsKG1vZGVsOiB0eXBlb2YgTW9kZWwpIHtcbiAgICAgICAgdGhpcy5tb2RlbCA9IG1vZGVsO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRJZ25vcmVJblBhdGgoaWdub3JlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaWdub3JlSW5TZWFyY2ggPSBpZ25vcmU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEF0dHJpYnV0ZXMoYXR0cmlidXRlcz86IEZpbmRBdHRyaWJ1dGVPcHRpb25zKSB7XG4gICAgICAgIHRoaXMuYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFNlYXJjaGFibGVBdHRyaWJ1dGVzKGF0dHJpYnV0ZXM6IHN0cmluZ1tdKSB7XG4gICAgICAgIHRoaXMuc2VhcmNoYWJsZUF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRFeHBvcnRDb2x1bW5zKGV4cG9ydENvbHVtbnM6IHN0cmluZ1tdKSB7XG4gICAgICAgIHRoaXMuZXhwb3J0Q29sdW1ucyA9IGV4cG9ydENvbHVtbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZEN1c3RvbUF0dHJpYnV0ZShhdHRyaWJ1dGU6IEN1c3RvbUF0dHJpYnV0ZXNDb25maWcpIHtcbiAgICAgICAgdGhpcy5jdXN0b21BdHRyaWJ1dGVzLnB1c2goYXR0cmlidXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3VzdG9tQXR0cmlidXRlc0luY2x1ZGVzKCk6IEluY2x1ZGVDb25maWdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1c3RvbUF0dHJpYnV0ZXNcbiAgICAgICAgICAgIC5maWx0ZXIoeCA9PiB4LmNvbmZpZy5wYXRoKVxuICAgICAgICAgICAgLm1hcCh4ID0+ICh7XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogeyBpbmNsdWRlOiBbXSB9LFxuICAgICAgICAgICAgICAgIHBhdGg6IHguY29uZmlnLnBhdGgsXG4gICAgICAgICAgICAgICAgd2hlcmU6IHguY29uZmlnLndoZXJlLFxuICAgICAgICAgICAgICAgIHBhcmFub2lkOiB0cnVlXG4gICAgICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNlYXJjaGFibGVBdHRyaWJ1dGVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgaWYgKHRoaXMuaWdub3JlSW5TZWFyY2gpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaGFibGVBdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gU2VxdWVsaXplVXRpbHMuZ2V0TW9kZWxTZWFyY2hhYmxlRmllbGRBdHRyaWJ1dGVzKHRoaXMubW9kZWwgYXMgdHlwZW9mIE0sIHRoaXMuc2VhcmNoYWJsZUF0dHJpYnV0ZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2VhcmNoYWJsZUF0dHJpYnV0ZXMgPSBTZXF1ZWxpemVVdGlscy5nZXRNb2RlbFNlYXJjaGFibGVBdHRyaWJ1dGVzKHRoaXMubW9kZWwgYXMgdHlwZW9mIE0pO1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gU2VxdWVsaXplVXRpbHMuZ2V0TW9kZWxTZWFyY2hhYmxlRmllbGRBdHRyaWJ1dGVzKHRoaXMubW9kZWwgYXMgdHlwZW9mIE0sIHRoaXMuYXR0cmlidXRlcyBhcyBzdHJpbmdbXSA/PyBbXSk7XG4gICAgICAgIHJldHVybiBhdHRyaWJ1dGVzLmxlbmd0aCA/XG4gICAgICAgICAgICAoYXR0cmlidXRlcyBhcyBzdHJpbmdbXSk/LmZpbHRlcih4ID0+IHNlYXJjaGFibGVBdHRyaWJ1dGVzLnNvbWUoYXR0ciA9PiBhdHRyID09PSB4KSkgOlxuICAgICAgICAgICAgc2VhcmNoYWJsZUF0dHJpYnV0ZXM7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGF0YUZpbHRlckNvbnRleHQge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnOiBEYXRhRmlsdGVyQ29uZmlnLCBwcml2YXRlIGRpYWxlY3RGb3JtYXR0ZXJTZXJ2aWNlOiBEaWFsZWN0Rm9ybWF0dGVyU2VydmljZSkge31cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm1BdHRyaWJ1dGVzQ29uZmlnKG9wdGlvbnM/OiBvYmplY3QpOiBGaW5kQXR0cmlidXRlT3B0aW9ucyB7XG4gICAgICAgIGNvbnN0IGN1c3RvbUF0dHJpYnV0ZXMgPSB0aGlzLmdldEN1c3RvbUF0dHJpYnV0ZXMob3B0aW9ucyk7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5hdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jb25maWcuY3VzdG9tQXR0cmlidXRlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gU2VxdWVsaXplVXRpbHMuZW5zdXJlQXR0cmlidXRlc1ZhbGlkaXR5KFxuICAgICAgICAgICAgICAgICAgICBTZXF1ZWxpemVVdGlscy5tZXJnZUF0dHJpYnV0ZXModGhpcy5jb25maWcuYXR0cmlidXRlcywge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZTogY3VzdG9tQXR0cmlidXRlcy5tYXAoeCA9PiB4LmF0dHJpYnV0ZSlcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gU2VxdWVsaXplVXRpbHMuZW5zdXJlQXR0cmlidXRlc1ZhbGlkaXR5KHRoaXMuY29uZmlnLmF0dHJpYnV0ZXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5jb25maWcuYXR0cmlidXRlcyAmJiBjdXN0b21BdHRyaWJ1dGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBpbmNsdWRlOiBjdXN0b21BdHRyaWJ1dGVzLm1hcCh4ID0+IHguYXR0cmlidXRlKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDdXN0b21BdHRyaWJ1dGVzKG9wdGlvbnM/OiBvYmplY3QpOiBDdXN0b21BdHRyaWJ1dGVzTW9kZWxbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5jdXN0b21BdHRyaWJ1dGVzXG4gICAgICAgICAgICAubWFwKHggPT4gKHtcbiAgICAgICAgICAgICAgICBrZXk6IHgua2V5LFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZTogeC53aXRoQ29udGV4dCh0aGlzLmRpYWxlY3RGb3JtYXR0ZXJTZXJ2aWNlKS50cmFuc2Zvcm0ob3B0aW9ucyksXG4gICAgICAgICAgICAgICAgcGF0aDogKHguY29uZmlnIGFzIGFueSkucGF0aCA/IHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogKHguY29uZmlnIGFzIGFueSkucGF0aCxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW5vaWQ6IHRydWVcbiAgICAgICAgICAgICAgICB9IDogbnVsbFxuICAgICAgICAgICAgfSBhcyBDdXN0b21BdHRyaWJ1dGVzTW9kZWwpKVxuICAgICAgICAgICAgLmZpbHRlcih4ID0+IHguYXR0cmlidXRlKTtcbiAgICB9XG59Il19
@@ -1,5 +1,6 @@
1
1
  import { ProjectionAlias } from "sequelize";
2
- import { CustomAttributesConfig, CustomAttributesOptionConfig } from "./custom-attributes.model";
2
+ import { DialectFormatterService } from "../services/dialect-formatter.service";
3
+ import { CustomAttributesConfig, CustomAttributesContext, CustomAttributesOptionConfig } from "./custom-attributes.model";
3
4
  export interface BaseDistanceConfig extends CustomAttributesOptionConfig {
4
5
  coordinates: (option?: any) => [number, number];
5
6
  srid?: number;
@@ -12,12 +13,18 @@ export interface DistanceConfigWithLatLng {
12
13
  lngAttribute: string;
13
14
  }
14
15
  export type DistanceConfig = BaseDistanceConfig & (DistanceConfigWithPoint | DistanceConfigWithLatLng);
15
- export declare class DistanceAttributesConfig implements CustomAttributesConfig<DistanceConfig> {
16
+ export declare class DistanceAttributesConfig implements CustomAttributesConfig<DistanceConfig, DistanceAttributesContext> {
16
17
  key: string;
17
18
  config: DistanceConfig;
18
19
  type: string;
19
20
  constructor(key: string, config: DistanceConfig);
20
- transform(options: object, path?: string): string | ProjectionAlias;
21
+ withContext(dialectFormatterService: DialectFormatterService): DistanceAttributesContext;
21
22
  shouldGroupBy(): boolean;
23
+ }
24
+ export declare class DistanceAttributesContext extends CustomAttributesContext {
25
+ private config;
26
+ private dialectFormatterService;
27
+ constructor(config: DistanceAttributesConfig, dialectFormatterService: DialectFormatterService);
28
+ transform(options: object, path?: string): string | ProjectionAlias;
22
29
  private getPointAttribute;
23
30
  }