taxtank-core 0.29.19 → 0.29.20

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 (49) hide show
  1. package/bundles/taxtank-core.umd.js +1007 -938
  2. package/bundles/taxtank-core.umd.js.map +1 -1
  3. package/esm2015/lib/collections/subscription/service-price.collection.js +38 -1
  4. package/esm2015/lib/db/Enums/subscription/service-price-type.enum.js +6 -3
  5. package/esm2015/lib/db/Models/subscription/service-price.js +1 -1
  6. package/esm2015/lib/models/service-subscription/service-product.js +2 -1
  7. package/esm2015/lib/models/service-subscription/service-subscription.js +9 -1
  8. package/fesm2015/taxtank-core.js +795 -750
  9. package/fesm2015/taxtank-core.js.map +1 -1
  10. package/lib/collections/subscription/service-price.collection.d.ts +10 -0
  11. package/lib/db/Enums/subscription/service-price-type.enum.d.ts +5 -2
  12. package/lib/db/Models/subscription/service-price.d.ts +1 -0
  13. package/lib/models/service-subscription/service-product.d.ts +1 -0
  14. package/lib/models/service-subscription/service-subscription.d.ts +3 -0
  15. package/package.json +1 -1
  16. package/lib/forms/bank/bank-login.form.d.ts.map +0 -1
  17. package/lib/forms/client/client-income-types.form.d.ts.map +0 -1
  18. package/lib/forms/depreciation/depreciation.form.d.ts.map +0 -1
  19. package/lib/forms/depreciation/index.d.ts.map +0 -1
  20. package/lib/forms/form-validations.enum.d.ts.map +0 -1
  21. package/lib/forms/index.d.ts.map +0 -1
  22. package/lib/forms/login/login.form.d.ts.map +0 -1
  23. package/lib/forms/phone/index.d.ts.map +0 -1
  24. package/lib/forms/phone/phone.form.d.ts.map +0 -1
  25. package/lib/forms/property/index.d.ts.map +0 -1
  26. package/lib/forms/register/register-client.form.d.ts.map +0 -1
  27. package/lib/forms/register/register-firm.form.d.ts.map +0 -1
  28. package/lib/forms/sole/bas-report.form.d.ts.map +0 -1
  29. package/lib/forms/sole/index.d.ts.map +0 -1
  30. package/lib/forms/transaction/index.d.ts.map +0 -1
  31. package/lib/forms/transaction/messages.enum.d.ts.map +0 -1
  32. package/lib/forms/transaction/transaction-base.form.d.ts.map +0 -1
  33. package/lib/forms/transaction/transaction.form.d.ts.map +0 -1
  34. package/lib/forms/transaction/work-income.form.d.ts.map +0 -1
  35. package/lib/forms/user/index.d.ts.map +0 -1
  36. package/lib/forms/user/password.form.d.ts.map +0 -1
  37. package/lib/forms/user/reset-password.form.d.ts.map +0 -1
  38. package/lib/forms/user/user-invite.form.d.ts.map +0 -1
  39. package/lib/forms/vehicle/index.d.ts.map +0 -1
  40. package/lib/forms/vehicle/vehicle-claim-details.form.d.ts.map +0 -1
  41. package/lib/forms/vehicle/vehicle-claim.form.d.ts.map +0 -1
  42. package/lib/forms/vehicle/vehicle-logbook.form.d.ts.map +0 -1
  43. package/lib/forms/vehicle/vehicle.form.d.ts.map +0 -1
  44. package/lib/validators/at-least-one-enabled.validator.d.ts.map +0 -1
  45. package/lib/validators/date-range.validator.d.ts.map +0 -1
  46. package/lib/validators/phone-number.validator.d.ts.map +0 -1
  47. package/lib/validators/required-length.validator.d.ts.map +0 -1
  48. package/public-api.d.ts.map +0 -1
  49. package/taxtank-core.d.ts.map +0 -1
@@ -1,7 +1,44 @@
1
1
  import { Collection } from '../collection';
2
+ import { ServicePriceTypeEnum } from '../../db/Enums/subscription/service-price-type.enum';
3
+ import { ServiceProductIdEnum } from '../../db/Enums/subscription/service-product-id.enum';
4
+ /**
5
+ * @TODO vik refactor
6
+ */
2
7
  export class ServicePriceCollection extends Collection {
3
8
  getActive() {
4
9
  return this.filterBy('isActive', true);
5
10
  }
11
+ get monthly() {
12
+ return this.filterBy('type', ServicePriceTypeEnum.MONTHLY);
13
+ }
14
+ get monthlyPackage() {
15
+ return this.filterBy('type', ServicePriceTypeEnum.MONTHLY_PACKAGE);
16
+ }
17
+ get monthlyPackageSum() {
18
+ const property = this.monthlyPackage.findBy('product.id', ServiceProductIdEnum.PROPERTIES);
19
+ // @TODO move to const
20
+ return this.monthlyPackage.sumBy('amount') + property.amount * 4;
21
+ }
22
+ get annual() {
23
+ return this.filterBy('type', ServicePriceTypeEnum.YEARLY);
24
+ }
25
+ get annualPackage() {
26
+ return this.filterBy('type', ServicePriceTypeEnum.YEARLY_PACKAGE);
27
+ }
28
+ get annualPackageSum() {
29
+ const property = this.annualPackage.findBy('product.id', ServiceProductIdEnum.PROPERTIES);
30
+ // @TODO move to const
31
+ return this.annualPackage.sumBy('amount') + property.amount * 4;
32
+ }
33
+ getProperty(isAnnual, isPackage) {
34
+ let type;
35
+ if (isAnnual) {
36
+ type = isPackage ? ServicePriceTypeEnum.YEARLY_PACKAGE : ServicePriceTypeEnum.YEARLY;
37
+ }
38
+ else {
39
+ type = isPackage ? ServicePriceTypeEnum.MONTHLY_PACKAGE : ServicePriceTypeEnum.MONTHLY;
40
+ }
41
+ return this.filterBy('type', type).findBy('product.id', ServiceProductIdEnum.PROPERTIES);
42
+ }
6
43
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1wcmljZS5jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXByaWNlLmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsVUFBd0I7SUFDbEUsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHsgU2VydmljZVByaWNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuZXhwb3J0IGNsYXNzIFNlcnZpY2VQcmljZUNvbGxlY3Rpb24gZXh0ZW5kcyBDb2xsZWN0aW9uPFNlcnZpY2VQcmljZT4ge1xuICBnZXRBY3RpdmUoKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQnkoJ2lzQWN0aXZlJywgdHJ1ZSk7XG4gIH1cbn1cbiJdfQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1wcmljZS5jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXByaWNlLmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUN6RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUV6Rjs7R0FFRztBQUNILE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxVQUF3QjtJQUNsRSxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUzRixzQkFBc0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTFGLHNCQUFzQjtRQUN0QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBaUIsRUFBRSxTQUFrQjtRQUMvQyxJQUFJLElBQUksQ0FBQztRQUVULElBQUksUUFBUSxFQUFFO1lBQ1osSUFBSSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7U0FDdEY7YUFBTTtZQUNMLElBQUksR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDO1NBQ3hGO1FBRUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IFNlcnZpY2VQcmljZSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1NlcnZpY2VQcmljZVR5cGVFbnVtfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9zdWJzY3JpcHRpb24vc2VydmljZS1wcmljZS10eXBlLmVudW0nO1xuaW1wb3J0IHtTZXJ2aWNlUHJvZHVjdElkRW51bX0gZnJvbSAnLi4vLi4vZGIvRW51bXMvc3Vic2NyaXB0aW9uL3NlcnZpY2UtcHJvZHVjdC1pZC5lbnVtJztcblxuLyoqXG4gKiBAVE9ETyB2aWsgcmVmYWN0b3JcbiAqL1xuZXhwb3J0IGNsYXNzIFNlcnZpY2VQcmljZUNvbGxlY3Rpb24gZXh0ZW5kcyBDb2xsZWN0aW9uPFNlcnZpY2VQcmljZT4ge1xuICBnZXRBY3RpdmUoKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQnkoJ2lzQWN0aXZlJywgdHJ1ZSk7XG4gIH1cblxuICBnZXQgbW9udGhseSgpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJCeSgndHlwZScsIFNlcnZpY2VQcmljZVR5cGVFbnVtLk1PTlRITFkpO1xuICB9XG5cbiAgZ2V0IG1vbnRobHlQYWNrYWdlKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckJ5KCd0eXBlJywgU2VydmljZVByaWNlVHlwZUVudW0uTU9OVEhMWV9QQUNLQUdFKTtcbiAgfVxuXG4gIGdldCBtb250aGx5UGFja2FnZVN1bSgpOiBudW1iZXIge1xuICAgIGNvbnN0IHByb3BlcnR5ID0gdGhpcy5tb250aGx5UGFja2FnZS5maW5kQnkoJ3Byb2R1Y3QuaWQnLCBTZXJ2aWNlUHJvZHVjdElkRW51bS5QUk9QRVJUSUVTKTtcblxuICAgIC8vIEBUT0RPIG1vdmUgdG8gY29uc3RcbiAgICByZXR1cm4gdGhpcy5tb250aGx5UGFja2FnZS5zdW1CeSgnYW1vdW50JykgKyBwcm9wZXJ0eS5hbW91bnQgKiA0O1xuICB9XG5cbiAgZ2V0IGFubnVhbCgpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJCeSgndHlwZScsIFNlcnZpY2VQcmljZVR5cGVFbnVtLllFQVJMWSk7XG4gIH1cblxuICBnZXQgYW5udWFsUGFja2FnZSgpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJCeSgndHlwZScsIFNlcnZpY2VQcmljZVR5cGVFbnVtLllFQVJMWV9QQUNLQUdFKTtcbiAgfVxuXG4gIGdldCBhbm51YWxQYWNrYWdlU3VtKCk6IG51bWJlciB7XG4gICAgY29uc3QgcHJvcGVydHkgPSB0aGlzLmFubnVhbFBhY2thZ2UuZmluZEJ5KCdwcm9kdWN0LmlkJywgU2VydmljZVByb2R1Y3RJZEVudW0uUFJPUEVSVElFUyk7XG5cbiAgICAvLyBAVE9ETyBtb3ZlIHRvIGNvbnN0XG4gICAgcmV0dXJuIHRoaXMuYW5udWFsUGFja2FnZS5zdW1CeSgnYW1vdW50JykgKyBwcm9wZXJ0eS5hbW91bnQgKiA0O1xuICB9XG5cbiAgZ2V0UHJvcGVydHkoaXNBbm51YWw6IGJvb2xlYW4sIGlzUGFja2FnZTogYm9vbGVhbik6IFNlcnZpY2VQcmljZSB7XG4gICAgbGV0IHR5cGU7XG5cbiAgICBpZiAoaXNBbm51YWwpIHtcbiAgICAgIHR5cGUgPSBpc1BhY2thZ2UgPyBTZXJ2aWNlUHJpY2VUeXBlRW51bS5ZRUFSTFlfUEFDS0FHRSA6IFNlcnZpY2VQcmljZVR5cGVFbnVtLllFQVJMWTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHlwZSA9IGlzUGFja2FnZSA/IFNlcnZpY2VQcmljZVR5cGVFbnVtLk1PTlRITFlfUEFDS0FHRSA6IFNlcnZpY2VQcmljZVR5cGVFbnVtLk1PTlRITFk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQnkoJ3R5cGUnLCB0eXBlKS5maW5kQnkoJ3Byb2R1Y3QuaWQnLCBTZXJ2aWNlUHJvZHVjdElkRW51bS5QUk9QRVJUSUVTKTtcbiAgfVxufVxuIl19
@@ -1,6 +1,9 @@
1
1
  export var ServicePriceTypeEnum;
2
2
  (function (ServicePriceTypeEnum) {
3
- ServicePriceTypeEnum[ServicePriceTypeEnum["ONE_TIME"] = 1] = "ONE_TIME";
4
- ServicePriceTypeEnum[ServicePriceTypeEnum["RECURRING"] = 2] = "RECURRING";
3
+ ServicePriceTypeEnum[ServicePriceTypeEnum["DEPRECATED"] = 0] = "DEPRECATED";
4
+ ServicePriceTypeEnum[ServicePriceTypeEnum["MONTHLY"] = 1] = "MONTHLY";
5
+ ServicePriceTypeEnum[ServicePriceTypeEnum["MONTHLY_PACKAGE"] = 2] = "MONTHLY_PACKAGE";
6
+ ServicePriceTypeEnum[ServicePriceTypeEnum["YEARLY"] = 3] = "YEARLY";
7
+ ServicePriceTypeEnum[ServicePriceTypeEnum["YEARLY_PACKAGE"] = 4] = "YEARLY_PACKAGE";
5
8
  })(ServicePriceTypeEnum || (ServicePriceTypeEnum = {}));
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1wcmljZS10eXBlLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZGIvRW51bXMvc3Vic2NyaXB0aW9uL3NlcnZpY2UtcHJpY2UtdHlwZS5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLG9CQUdYO0FBSEQsV0FBWSxvQkFBb0I7SUFDL0IsdUVBQWEsQ0FBQTtJQUNiLHlFQUFjLENBQUE7QUFDZixDQUFDLEVBSFcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUcvQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFNlcnZpY2VQcmljZVR5cGVFbnVtIHtcblx0T05FX1RJTUUgID0gMSxcblx0UkVDVVJSSU5HICA9IDIsXG59Il19
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1wcmljZS10eXBlLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZGIvRW51bXMvc3Vic2NyaXB0aW9uL3NlcnZpY2UtcHJpY2UtdHlwZS5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLG9CQU1YO0FBTkQsV0FBWSxvQkFBb0I7SUFDOUIsMkVBQWMsQ0FBQTtJQUNkLHFFQUFXLENBQUE7SUFDWCxxRkFBbUIsQ0FBQTtJQUNuQixtRUFBVSxDQUFBO0lBQ1YsbUZBQWtCLENBQUE7QUFDcEIsQ0FBQyxFQU5XLG9CQUFvQixLQUFwQixvQkFBb0IsUUFNL0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBTZXJ2aWNlUHJpY2VUeXBlRW51bSB7XG4gIERFUFJFQ0FURUQgPSAwLFxuICBNT05USExZID0gMSxcbiAgTU9OVEhMWV9QQUNLQUdFID0gMixcbiAgWUVBUkxZID0gMyxcbiAgWUVBUkxZX1BBQ0tBR0UgPSA0LFxufVxuIl19
@@ -1,4 +1,4 @@
1
1
  import { AbstractModel } from '../abstract-model';
2
2
  export class ServicePrice extends AbstractModel {
3
3
  }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1wcmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9Nb2RlbHMvc3Vic2NyaXB0aW9uL3NlcnZpY2UtcHJpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRWhELE1BQU0sT0FBTyxZQUFhLFNBQVEsYUFBYTtDQVc5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcnZpY2VQcmljZVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vRW51bXMvc3Vic2NyaXB0aW9uL3NlcnZpY2UtcHJpY2UtdHlwZS5lbnVtJztcbmltcG9ydCB7IFNlcnZpY2VQcmljZVJlY3VycmluZ0ludGVydmFsRW51bSB9IGZyb20gJy4uLy4uL0VudW1zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXByaWNlLXJlY3VycmluZy1pbnRlcnZhbC5lbnVtJztcbmltcG9ydCB7IFNlcnZpY2VQcm9kdWN0IH0gZnJvbSAnLi9zZXJ2aWNlLXByb2R1Y3QnO1xuaW1wb3J0IHtBYnN0cmFjdE1vZGVsfSBmcm9tICcuLi9hYnN0cmFjdC1tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBTZXJ2aWNlUHJpY2UgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsIHtcbiAgaWQ/OiBudW1iZXI7XG4gIHN0cmlwZUlkPzogc3RyaW5nO1xuICBhbW91bnQ/OiBudW1iZXI7XG4gIHR5cGU/OiBTZXJ2aWNlUHJpY2VUeXBlRW51bTtcbiAgcmVjdXJyaW5nSW50ZXJ2YWw/OiBTZXJ2aWNlUHJpY2VSZWN1cnJpbmdJbnRlcnZhbEVudW07XG4gIHJlY3VycmluZ0ludGVydmFsQ291bnQ/OiBudW1iZXI7XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbiAgY3JlYXRlZEF0PzogRGF0ZTtcbiAgdXBkYXRlZEF0PzogRGF0ZTtcbiAgcHJvZHVjdD86IFNlcnZpY2VQcm9kdWN0O1xufVxuIl19
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1wcmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9Nb2RlbHMvc3Vic2NyaXB0aW9uL3NlcnZpY2UtcHJpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRWhELE1BQU0sT0FBTyxZQUFhLFNBQVEsYUFBYTtDQVk5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcnZpY2VQcmljZVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vRW51bXMvc3Vic2NyaXB0aW9uL3NlcnZpY2UtcHJpY2UtdHlwZS5lbnVtJztcbmltcG9ydCB7IFNlcnZpY2VQcmljZVJlY3VycmluZ0ludGVydmFsRW51bSB9IGZyb20gJy4uLy4uL0VudW1zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXByaWNlLXJlY3VycmluZy1pbnRlcnZhbC5lbnVtJztcbmltcG9ydCB7IFNlcnZpY2VQcm9kdWN0IH0gZnJvbSAnLi9zZXJ2aWNlLXByb2R1Y3QnO1xuaW1wb3J0IHtBYnN0cmFjdE1vZGVsfSBmcm9tICcuLi9hYnN0cmFjdC1tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBTZXJ2aWNlUHJpY2UgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsIHtcbiAgaWQ/OiBudW1iZXI7XG4gIHN0cmlwZUlkPzogc3RyaW5nO1xuICBhbW91bnQ/OiBudW1iZXI7XG4gIGlzUmVjdXJyaW5nPzogYm9vbGVhbjtcbiAgdHlwZT86IFNlcnZpY2VQcmljZVR5cGVFbnVtO1xuICByZWN1cnJpbmdJbnRlcnZhbD86IFNlcnZpY2VQcmljZVJlY3VycmluZ0ludGVydmFsRW51bTtcbiAgcmVjdXJyaW5nSW50ZXJ2YWxDb3VudD86IG51bWJlcjtcbiAgaXNBY3RpdmU/OiBib29sZWFuO1xuICBjcmVhdGVkQXQ/OiBEYXRlO1xuICB1cGRhdGVkQXQ/OiBEYXRlO1xuICBwcm9kdWN0PzogU2VydmljZVByb2R1Y3Q7XG59XG4iXX0=
@@ -15,9 +15,10 @@ export class ServiceProduct extends BaseServiceProduct {
15
15
  return this.status === ServiceProductStatusEnum.ARCHIVED;
16
16
  }
17
17
  }
18
+ ServiceProduct.quantity = 3;
18
19
  // const TestEnum = {
19
20
  // 4: 4,
20
21
  // 5: 7,
21
22
  // 6: 6
22
23
  // }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1wcm9kdWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9zZXJ2aWNlLXN1YnNjcmlwdGlvbi9zZXJ2aWNlLXByb2R1Y3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsSUFBSSxrQkFBa0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xHLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQ2pHLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBRXpGLE1BQU0sT0FBTyxjQUFlLFNBQVEsa0JBQWtCO0lBQ3BELFlBQVk7UUFDVixPQUFPLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLENBQUMsb0JBQW9CLENBQUMsYUFBYSxFQUFFLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxFQUFFLEtBQUssb0JBQW9CLENBQUMsU0FBUyxDQUFDO0lBQ3BELENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLHdCQUF3QixDQUFDLFFBQVEsQ0FBQztJQUMzRCxDQUFDO0NBYUY7QUFFRCxxQkFBcUI7QUFDckIsVUFBVTtBQUNWLFVBQVU7QUFDVixTQUFTO0FBQ1QsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2VydmljZVByb2R1Y3QgYXMgQmFzZVNlcnZpY2VQcm9kdWN0fSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvc3Vic2NyaXB0aW9uL3NlcnZpY2UtcHJvZHVjdCc7XG5pbXBvcnQge1NlcnZpY2VQcm9kdWN0U3RhdHVzRW51bX0gZnJvbSAnLi4vLi4vZGIvRW51bXMvc3Vic2NyaXB0aW9uL3NlcnZpY2UtcHJvZHVjdC1zdGF0dXMuZW51bSc7XG5pbXBvcnQge1NlcnZpY2VQcm9kdWN0SWRFbnVtfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9zdWJzY3JpcHRpb24vc2VydmljZS1wcm9kdWN0LWlkLmVudW0nO1xuXG5leHBvcnQgY2xhc3MgU2VydmljZVByb2R1Y3QgZXh0ZW5kcyBCYXNlU2VydmljZVByb2R1Y3Qge1xuICBpc1Byb3BlcnRpZXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFtTZXJ2aWNlUHJvZHVjdElkRW51bS5QUk9QRVJUWV9PTEQsIFNlcnZpY2VQcm9kdWN0SWRFbnVtLlBST1BFUlRJRVNdLmluY2x1ZGVzKHRoaXMuaWQpO1xuICB9XG5cbiAgaXNXb3JrVGFuaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gW1NlcnZpY2VQcm9kdWN0SWRFbnVtLldPUktfVEFOS19PTEQsIFNlcnZpY2VQcm9kdWN0SWRFbnVtLldPUktfVEFOS10uaW5jbHVkZXModGhpcy5pZCk7XG4gIH1cblxuICBpc1NvbGVUYW5rKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlkID09PSBTZXJ2aWNlUHJvZHVjdElkRW51bS5TT0xFX1RBTks7XG4gIH1cblxuICBpc0FyY2hpdmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gU2VydmljZVByb2R1Y3RTdGF0dXNFbnVtLkFSQ0hJVkVEO1xuICB9XG5cbiAgLy8gbWFrZVRyaWFsKCk6IFNlcnZpY2VTdWJzY3JpcHRpb24ge1xuICAvLyAgIHJldHVybiBwbGFpblRvQ2xhc3MoU2VydmljZVN1YnNjcmlwdGlvbiwge1xuICAvLyAgICAgaXRlbXM6IFtcbiAgLy8gICAgICAgcGxhaW5Ub0NsYXNzKFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtLCB7XG4gIC8vICAgICAgICAgcHJpY2U6IHtcbiAgLy8gICAgICAgICAgIGlkOiBUZXN0RW51bVt0aGlzLmlkXVxuICAvLyAgICAgICAgIH1cbiAgLy8gICAgICAgfSlcbiAgLy8gICAgIF1cbiAgLy8gICB9KTtcbiAgLy8gfVxufVxuXG4vLyBjb25zdCBUZXN0RW51bSA9IHtcbi8vICAgNDogNCxcbi8vICAgNTogNyxcbi8vICAgNjogNlxuLy8gfVxuIl19
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1wcm9kdWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9zZXJ2aWNlLXN1YnNjcmlwdGlvbi9zZXJ2aWNlLXByb2R1Y3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsSUFBSSxrQkFBa0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xHLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQ2pHLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBRXpGLE1BQU0sT0FBTyxjQUFlLFNBQVEsa0JBQWtCO0lBR3BELFlBQVk7UUFDVixPQUFPLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLENBQUMsb0JBQW9CLENBQUMsYUFBYSxFQUFFLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxFQUFFLEtBQUssb0JBQW9CLENBQUMsU0FBUyxDQUFDO0lBQ3BELENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLHdCQUF3QixDQUFDLFFBQVEsQ0FBQztJQUMzRCxDQUFDOztBQWhCTSx1QkFBUSxHQUFHLENBQUMsQ0FBQztBQStCdEIscUJBQXFCO0FBQ3JCLFVBQVU7QUFDVixVQUFVO0FBQ1YsU0FBUztBQUNULElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1NlcnZpY2VQcm9kdWN0IGFzIEJhc2VTZXJ2aWNlUHJvZHVjdH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXByb2R1Y3QnO1xuaW1wb3J0IHtTZXJ2aWNlUHJvZHVjdFN0YXR1c0VudW19IGZyb20gJy4uLy4uL2RiL0VudW1zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXByb2R1Y3Qtc3RhdHVzLmVudW0nO1xuaW1wb3J0IHtTZXJ2aWNlUHJvZHVjdElkRW51bX0gZnJvbSAnLi4vLi4vZGIvRW51bXMvc3Vic2NyaXB0aW9uL3NlcnZpY2UtcHJvZHVjdC1pZC5lbnVtJztcblxuZXhwb3J0IGNsYXNzIFNlcnZpY2VQcm9kdWN0IGV4dGVuZHMgQmFzZVNlcnZpY2VQcm9kdWN0IHtcbiAgc3RhdGljIHF1YW50aXR5ID0gMztcblxuICBpc1Byb3BlcnRpZXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFtTZXJ2aWNlUHJvZHVjdElkRW51bS5QUk9QRVJUWV9PTEQsIFNlcnZpY2VQcm9kdWN0SWRFbnVtLlBST1BFUlRJRVNdLmluY2x1ZGVzKHRoaXMuaWQpO1xuICB9XG5cbiAgaXNXb3JrVGFuaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gW1NlcnZpY2VQcm9kdWN0SWRFbnVtLldPUktfVEFOS19PTEQsIFNlcnZpY2VQcm9kdWN0SWRFbnVtLldPUktfVEFOS10uaW5jbHVkZXModGhpcy5pZCk7XG4gIH1cblxuICBpc1NvbGVUYW5rKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlkID09PSBTZXJ2aWNlUHJvZHVjdElkRW51bS5TT0xFX1RBTks7XG4gIH1cblxuICBpc0FyY2hpdmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gU2VydmljZVByb2R1Y3RTdGF0dXNFbnVtLkFSQ0hJVkVEO1xuICB9XG5cbiAgLy8gbWFrZVRyaWFsKCk6IFNlcnZpY2VTdWJzY3JpcHRpb24ge1xuICAvLyAgIHJldHVybiBwbGFpblRvQ2xhc3MoU2VydmljZVN1YnNjcmlwdGlvbiwge1xuICAvLyAgICAgaXRlbXM6IFtcbiAgLy8gICAgICAgcGxhaW5Ub0NsYXNzKFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtLCB7XG4gIC8vICAgICAgICAgcHJpY2U6IHtcbiAgLy8gICAgICAgICAgIGlkOiBUZXN0RW51bVt0aGlzLmlkXVxuICAvLyAgICAgICAgIH1cbiAgLy8gICAgICAgfSlcbiAgLy8gICAgIF1cbiAgLy8gICB9KTtcbiAgLy8gfVxufVxuXG4vLyBjb25zdCBUZXN0RW51bSA9IHtcbi8vICAgNDogNCxcbi8vICAgNTogNyxcbi8vICAgNjogNlxuLy8gfVxuIl19
@@ -4,6 +4,8 @@ import { ServiceSubscriptionItem } from './service-subscription-item';
4
4
  import { UserRolesEnum } from '../../db/Enums/user-roles.enum';
5
5
  import { Type } from 'class-transformer';
6
6
  import { ServiceSubscriptionStatusEnum } from '../../db/Enums/subscription/service-subscription-status.enum';
7
+ import { ServiceProduct } from './service-product';
8
+ import { SubscriptionItemCollection } from '../../collections';
7
9
  export class ServiceSubscription extends ServiceSubscriptionBase {
8
10
  constructor() {
9
11
  super(...arguments);
@@ -49,6 +51,9 @@ export class ServiceSubscription extends ServiceSubscriptionBase {
49
51
  isRenewable() {
50
52
  return !this.isTrial && this.isActive;
51
53
  }
54
+ getItems() {
55
+ return new SubscriptionItemCollection(this.items);
56
+ }
52
57
  /**
53
58
  * @TODO move to collection
54
59
  */
@@ -94,6 +99,9 @@ export class ServiceSubscription extends ServiceSubscriptionBase {
94
99
  hasProduct(product) {
95
100
  return !!this.items.find((item) => item.price.product.id === product.id);
96
101
  }
102
+ isPackage() {
103
+ return this.items.length === ServiceProduct.quantity;
104
+ }
97
105
  /**
98
106
  * Recommended number of properties to buy,
99
107
  * based on the property service product and the number of properties the user has
@@ -112,4 +120,4 @@ __decorate([
112
120
  __decorate([
113
121
  Type(() => ServiceSubscriptionItem)
114
122
  ], ServiceSubscription.prototype, "items", void 0);
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1zdWJzY3JpcHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsbUJBQW1CLElBQUksdUJBQXVCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNuSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBSTdHLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSx1QkFBdUI7SUFBaEU7O1FBVUUsNERBQTREO1FBQzVELGtCQUFhLEdBQVcsQ0FBQyxDQUFDO0lBcUg1QixDQUFDO0lBbkhDLElBQUksT0FBTztRQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBVyxFQUFFLElBQTZCLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFL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a0RBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJ2aWNlU3Vic2NyaXB0aW9uIGFzIFNlcnZpY2VTdWJzY3JpcHRpb25CYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXN1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB9IGZyb20gJy4vc2VydmljZS1zdWJzY3JpcHRpb24taXRlbSc7XG5pbXBvcnQgeyBVc2VyUm9sZXNFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdXNlci1yb2xlcy5lbnVtJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBTZXJ2aWNlU3Vic2NyaXB0aW9uU3RhdHVzRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXN1YnNjcmlwdGlvbi1zdGF0dXMuZW51bSc7XG5pbXBvcnQgeyBTZXJ2aWNlUHJvZHVjdCB9IGZyb20gJy4vc2VydmljZS1wcm9kdWN0JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbkl0ZW1Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMnO1xuXG5leHBvcnQgY2xhc3MgU2VydmljZVN1YnNjcmlwdGlvbiBleHRlbmRzIFNlcnZpY2VTdWJzY3JpcHRpb25CYXNlIHtcbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgc3RhcnREYXRlOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIGVuZERhdGU6IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pXG4gIGl0ZW1zOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbVtdO1xuXG4gIC8vIE51bWJlciBvZiBkYXlzIGFmdGVyIHdoaWNoIHRoZSB0cmlhbCB0aW1lIHdpbGwgYmUgZXhwaXJlZFxuICBsYXN0VHJpYWxEYXlzOiBudW1iZXIgPSA0O1xuXG4gIGdldCBpc1RyaWFsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5zdHJpcGVJZDtcbiAgfVxuXG4gIGdldCBpc1BhaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5zdHJpcGVJZDtcbiAgfVxuXG4gIGdldCBwcmljZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKSA9PiBzdW0gKyBpdGVtLnRvdGFsLCAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgdGl0bGUgb2Ygc3Vic2NyaXB0aW9uXG4gICAqL1xuICBnZXQgdGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0ucHJpY2UucHJvZHVjdC50aXRsZSkuam9pbignICsgJyk7XG4gICAgLy8gcmV0dXJuIHRoaXMuaXNUcmlhbCA/ICdUcmlhbCBwZXJpb2QnIDogdGhpcy5pdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0ucHJpY2UucHJvZHVjdC50aXRsZSkuam9pbignICsgJyk7XG4gIH1cblxuICAvKipcbiAgICogQSBzdWJzY3JpcHRpb24gaXMgY29uc2lkZXJlZCBhY3RpdmUgaWYgdGhlIGVuZCBkYXRlIGhhcyBub3QgeWV0IGFycml2ZWQgYW5kIGl0cyBzdGF0dXMgaXMgXCJBY3RpdmVcIiBvciBcIlBhc3QgZHVlXCJcbiAgICovXG4gIGdldCBpc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc0V4cGlyZWQ6IGJvb2xlYW4gPSBuZXcgRGF0ZSh0aGlzLmVuZERhdGUpLmdldFRpbWUoKSA8IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuXG4gICAgcmV0dXJuICFpc0V4cGlyZWQgJiYgKFtTZXJ2aWNlU3Vic2NyaXB0aW9uU3RhdHVzRW51bS5BQ1RJVkUsIFNlcnZpY2VTdWJzY3JpcHRpb25TdGF0dXNFbnVtLlBBU1RfRFVFXS5pbmNsdWRlcyh0aGlzLnN0YXR1cykpO1xuICB9XG5cbiAgZ2V0IGRheXNSZW1haW4oKTogbnVtYmVyIHtcbiAgICBjb25zdCBkYXlzUmVtYWluczogbnVtYmVyID0gTWF0aC5yb3VuZChcbiAgICAgIChuZXcgRGF0ZSh0aGlzLmVuZERhdGUpLmdldFRpbWUoKSAtIG5ldyBEYXRlKCkuZ2V0VGltZSgpKSAvICgxMDAwICogMzYwMCAqIDI0KVxuICAgICk7XG5cbiAgICByZXR1cm4gZGF5c1JlbWFpbnMgPiAwID8gZGF5c1JlbWFpbnMgOiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRyaWFsIGV4cGlyZWRcbiAgICovXG4gIGlzVHJpYWxFeHBpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRheXNSZW1haW4gJiYgdGhpcy5kYXlzUmVtYWluIDw9IDA7XG4gIH1cblxuICBpc1RyaWFsRXhwaXJpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGF5c1JlbWFpbiA+IDAgJiYgdGhpcy5kYXlzUmVtYWluIDw9IHRoaXMubGFzdFRyaWFsRGF5cztcbiAgfVxuXG4gIGlzUmVuZXdhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5pc1RyaWFsICYmIHRoaXMuaXNBY3RpdmU7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gbW92ZSB0byBjb2xsZWN0aW9uXG4gICAqL1xuICBnZXQgd29ya1RhbmtJdGVtKCk6IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maW5kKChpdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSk6IGJvb2xlYW4gPT4gaXRlbS5wcmljZS5wcm9kdWN0LmlzV29ya1RhbmsoKSk7XG4gIH1cblxuICBnZXQgc29sZVRhbmtJdGVtKCk6IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maW5kKChpdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSk6IGJvb2xlYW4gPT4gaXRlbS5wcmljZS5wcm9kdWN0LmlzU29sZVRhbmsoKSk7XG4gIH1cblxuICBnZXQgcHJvcGVydHlUYW5rSXRlbSgpOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgoaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuID0+IGl0ZW0ucHJpY2UucHJvZHVjdC5pc1Byb3BlcnRpZXMoKSk7XG4gIH1cblxuICBoYXNQcm9wZXJ0eVRhbmsoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5pdGVtcy5maW5kKChzdWJzY3JpcHRpb25JdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSkgPT4ge1xuICAgICAgcmV0dXJuIHN1YnNjcmlwdGlvbkl0ZW0ucHJpY2UucHJvZHVjdC5yb2xlLmluY2x1ZGVzKFVzZXJSb2xlc0VudW0uUFJPUEVSVFlfVEFOSyk7XG4gICAgfSk7XG4gIH1cblxuICBoYXNXb3JrVGFuaygpIHtcbiAgICByZXR1cm4gISF0aGlzLml0ZW1zLmZpbmQoKHN1YnNjcmlwdGlvbkl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKSA9PiB7XG4gICAgICByZXR1cm4gc3Vic2NyaXB0aW9uSXRlbS5wcmljZS5wcm9kdWN0LnJvbGUuaW5jbHVkZXMoVXNlclJvbGVzRW51bS5XT1JLX1RBTkspO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIGJvdWdodCBiZWZvcmUgcHJpY2UgdXBkYXRlcywgYWN0aXZlIGZvciBzb21lIHRpbWUgdG8gbGV0IGN1c3RvbWVyIHNlbGVjdCBhIG5ldyBwbGFuXG4gICAqIGltcG9zc2libGUgdG8gdXBkYXRlLCBvbmx5IHByb2xvbmcgb3IgYnV5IG5ld1xuICAgKi9cbiAgaXNBcmNoaXZlZCgpOiBib29sZWFuIHtcbiAgICAvLyBzdWJzY3JpcHRpb24gd2l0aCBhdCBsZWFzdCBvbmUgYXJjaGl2ZWQgcHJvZHVjdCBjb25zaWRlcmVkIGFzIGFyY2hpdmVkXG4gICAgcmV0dXJuICEhdGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ucHJpY2UucHJvZHVjdC5pc0FyY2hpdmVkKCkpLmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYXNlIHdoZW4gcGF5bWVudCB3YXMgZmFpbGVkLCBidXQgdXNlciBoYXMgYSB0aW1lIHRvIHVwZGF0ZSBwYXltZW50IG1ldGhvZFxuICAgKi9cbiAgaXNQYXN0RHVlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gU2VydmljZVN1YnNjcmlwdGlvblN0YXR1c0VudW0uUEFTVF9EVUU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgY3VycmVudCBzdWJzY3JpcHRpb24gaGFzIHByb3ZpZGVkIHN1YnNjcmlwdGlvbiBpdGVtXG4gICAqL1xuICBoYXNJdGVtKGl0ZW1Ub0NoZWNrOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuaXRlbXMuZmluZCgoaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuID0+IGl0ZW0ucHJpY2UuaWQgPT09IGl0ZW1Ub0NoZWNrLnByaWNlLmlkKTtcbiAgfVxuXG4gIGhhc1Byb2R1Y3QocHJvZHVjdDogU2VydmljZVByb2R1Y3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLml0ZW1zLmZpbmQoKGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKTogYm9vbGVhbiA9PiBpdGVtLnByaWNlLnByb2R1Y3QuaWQgPT09IHByb2R1Y3QuaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY29tbWVuZGVkIG51bWJlciBvZiBwcm9wZXJ0aWVzIHRvIGJ1eSxcbiAgICogYmFzZWQgb24gdGhlIHByb3BlcnR5IHNlcnZpY2UgcHJvZHVjdCBhbmQgdGhlIG51bWJlciBvZiBwcm9wZXJ0aWVzIHRoZSB1c2VyIGhhc1xuICAgKi9cbiAgZ2V0UmVjb21tZW5kZWRQcm9wZXJ0aWVzUXR5KHByb3BlcnR5SXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0sIHByb3BlcnRpZXNRdHk6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgbWluOiBudW1iZXIgPSBwcm9wZXJ0eUl0ZW0ucHJpY2UucHJvZHVjdC5taW5RdHk7XG5cbiAgICByZXR1cm4gTWF0aC5tYXgobWluLCBwcm9wZXJ0aWVzUXR5KTtcbiAgfVxufVxuIl19
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1zdWJzY3JpcHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsbUJBQW1CLElBQUksdUJBQXVCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNuSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQzdHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsdUJBQXVCO0lBQWhFOztRQVVFLDREQUE0RDtRQUM1RCxrQkFBYSxHQUFXLENBQUMsQ0FBQztJQTZINUIsQ0FBQztJQTNIQyxJQUFJLE9BQU87UUFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVcsRUFBRSxJQUE2QixFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJ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QUFPLENBQUMsTUFBTSxDQUFDO1FBRXRELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNGO0FBdElDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztzREFDRDtBQUdoQjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7b0RBQ0g7QUFHZDtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztrREFDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcnZpY2VTdWJzY3JpcHRpb24gYXMgU2VydmljZVN1YnNjcmlwdGlvbkJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uJztcbmltcG9ydCB7IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtIH0gZnJvbSAnLi9zZXJ2aWNlLXN1YnNjcmlwdGlvbi1pdGVtJztcbmltcG9ydCB7IFVzZXJSb2xlc0VudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy91c2VyLXJvbGVzLmVudW0nO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFNlcnZpY2VTdWJzY3JpcHRpb25TdGF0dXNFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uLXN0YXR1cy5lbnVtJztcbmltcG9ydCB7IFNlcnZpY2VQcm9kdWN0IH0gZnJvbSAnLi9zZXJ2aWNlLXByb2R1Y3QnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uSXRlbUNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucyc7XG5cbmV4cG9ydCBjbGFzcyBTZXJ2aWNlU3Vic2NyaXB0aW9uIGV4dGVuZHMgU2VydmljZVN1YnNjcmlwdGlvbkJhc2Uge1xuICBAVHlwZSgoKSA9PiBEYXRlKVxuICBzdGFydERhdGU6IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgZW5kRGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSlcbiAgaXRlbXM6IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtW107XG5cbiAgLy8gTnVtYmVyIG9mIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHRyaWFsIHRpbWUgd2lsbCBiZSBleHBpcmVkXG4gIGxhc3RUcmlhbERheXM6IG51bWJlciA9IDQ7XG5cbiAgZ2V0IGlzVHJpYWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnN0cmlwZUlkO1xuICB9XG5cbiAgZ2V0IGlzUGFpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnN0cmlwZUlkO1xuICB9XG5cbiAgZ2V0IHByaWNlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pID0+IHN1bSArIGl0ZW0udG90YWwsIDApO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCB0aXRsZSBvZiBzdWJzY3JpcHRpb25cbiAgICovXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5wcmljZS5wcm9kdWN0LnRpdGxlKS5qb2luKCcgKyAnKTtcbiAgICAvLyByZXR1cm4gdGhpcy5pc1RyaWFsID8gJ1RyaWFsIHBlcmlvZCcgOiB0aGlzLml0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5wcmljZS5wcm9kdWN0LnRpdGxlKS5qb2luKCcgKyAnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHN1YnNjcmlwdGlvbiBpcyBjb25zaWRlcmVkIGFjdGl2ZSBpZiB0aGUgZW5kIGRhdGUgaGFzIG5vdCB5ZXQgYXJyaXZlZCBhbmQgaXRzIHN0YXR1cyBpcyBcIkFjdGl2ZVwiIG9yIFwiUGFzdCBkdWVcIlxuICAgKi9cbiAgZ2V0IGlzQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGlzRXhwaXJlZDogYm9vbGVhbiA9IG5ldyBEYXRlKHRoaXMuZW5kRGF0ZSkuZ2V0VGltZSgpIDwgbmV3IERhdGUoKS5nZXRUaW1lKCk7XG5cbiAgICByZXR1cm4gIWlzRXhwaXJlZCAmJiAoW1NlcnZpY2VTdWJzY3JpcHRpb25TdGF0dXNFbnVtLkFDVElWRSwgU2VydmljZVN1YnNjcmlwdGlvblN0YXR1c0VudW0uUEFTVF9EVUVdLmluY2x1ZGVzKHRoaXMuc3RhdHVzKSk7XG4gIH1cblxuICBnZXQgZGF5c1JlbWFpbigpOiBudW1iZXIge1xuICAgIGNvbnN0IGRheXNSZW1haW5zOiBudW1iZXIgPSBNYXRoLnJvdW5kKFxuICAgICAgKG5ldyBEYXRlKHRoaXMuZW5kRGF0ZSkuZ2V0VGltZSgpIC0gbmV3IERhdGUoKS5nZXRUaW1lKCkpIC8gKDEwMDAgKiAzNjAwICogMjQpXG4gICAgKTtcblxuICAgIHJldHVybiBkYXlzUmVtYWlucyA+IDAgPyBkYXlzUmVtYWlucyA6IDA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdHJpYWwgZXhwaXJlZFxuICAgKi9cbiAgaXNUcmlhbEV4cGlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGF5c1JlbWFpbiAmJiB0aGlzLmRheXNSZW1haW4gPD0gMDtcbiAgfVxuXG4gIGlzVHJpYWxFeHBpcmluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kYXlzUmVtYWluID4gMCAmJiB0aGlzLmRheXNSZW1haW4gPD0gdGhpcy5sYXN0VHJpYWxEYXlzO1xuICB9XG5cbiAgaXNSZW5ld2FibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmlzVHJpYWwgJiYgdGhpcy5pc0FjdGl2ZTtcbiAgfVxuXG4gIGdldEl0ZW1zKCk6IFN1YnNjcmlwdGlvbkl0ZW1Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvbkl0ZW1Db2xsZWN0aW9uKHRoaXMuaXRlbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIG1vdmUgdG8gY29sbGVjdGlvblxuICAgKi9cbiAgZ2V0IHdvcmtUYW5rSXRlbSgpOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgoaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuID0+IGl0ZW0ucHJpY2UucHJvZHVjdC5pc1dvcmtUYW5rKCkpO1xuICB9XG5cbiAgZ2V0IHNvbGVUYW5rSXRlbSgpOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgoaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuID0+IGl0ZW0ucHJpY2UucHJvZHVjdC5pc1NvbGVUYW5rKCkpO1xuICB9XG5cbiAgZ2V0IHByb3BlcnR5VGFua0l0ZW0oKTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbmQoKGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKTogYm9vbGVhbiA9PiBpdGVtLnByaWNlLnByb2R1Y3QuaXNQcm9wZXJ0aWVzKCkpO1xuICB9XG5cbiAgaGFzUHJvcGVydHlUYW5rKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuaXRlbXMuZmluZCgoc3Vic2NyaXB0aW9uSXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBzdWJzY3JpcHRpb25JdGVtLnByaWNlLnByb2R1Y3Qucm9sZS5pbmNsdWRlcyhVc2VyUm9sZXNFbnVtLlBST1BFUlRZX1RBTkspO1xuICAgIH0pO1xuICB9XG5cbiAgaGFzV29ya1RhbmsoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5pdGVtcy5maW5kKChzdWJzY3JpcHRpb25JdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSkgPT4ge1xuICAgICAgcmV0dXJuIHN1YnNjcmlwdGlvbkl0ZW0ucHJpY2UucHJvZHVjdC5yb2xlLmluY2x1ZGVzKFVzZXJSb2xlc0VudW0uV09SS19UQU5LKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBib3VnaHQgYmVmb3JlIHByaWNlIHVwZGF0ZXMsIGFjdGl2ZSBmb3Igc29tZSB0aW1lIHRvIGxldCBjdXN0b21lciBzZWxlY3QgYSBuZXcgcGxhblxuICAgKiBpbXBvc3NpYmxlIHRvIHVwZGF0ZSwgb25seSBwcm9sb25nIG9yIGJ1eSBuZXdcbiAgICovXG4gIGlzQXJjaGl2ZWQoKTogYm9vbGVhbiB7XG4gICAgLy8gc3Vic2NyaXB0aW9uIHdpdGggYXQgbGVhc3Qgb25lIGFyY2hpdmVkIHByb2R1Y3QgY29uc2lkZXJlZCBhcyBhcmNoaXZlZFxuICAgIHJldHVybiAhIXRoaXMuaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnByaWNlLnByb2R1Y3QuaXNBcmNoaXZlZCgpKS5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogQ2FzZSB3aGVuIHBheW1lbnQgd2FzIGZhaWxlZCwgYnV0IHVzZXIgaGFzIGEgdGltZSB0byB1cGRhdGUgcGF5bWVudCBtZXRob2RcbiAgICovXG4gIGlzUGFzdER1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT09IFNlcnZpY2VTdWJzY3JpcHRpb25TdGF0dXNFbnVtLlBBU1RfRFVFO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGN1cnJlbnQgc3Vic2NyaXB0aW9uIGhhcyBwcm92aWRlZCBzdWJzY3JpcHRpb24gaXRlbVxuICAgKi9cbiAgaGFzSXRlbShpdGVtVG9DaGVjazogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLml0ZW1zLmZpbmQoKGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKTogYm9vbGVhbiA9PiBpdGVtLnByaWNlLmlkID09PSBpdGVtVG9DaGVjay5wcmljZS5pZCk7XG4gIH1cblxuICBoYXNQcm9kdWN0KHByb2R1Y3Q6IFNlcnZpY2VQcm9kdWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5pdGVtcy5maW5kKChpdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSk6IGJvb2xlYW4gPT4gaXRlbS5wcmljZS5wcm9kdWN0LmlkID09PSBwcm9kdWN0LmlkKTtcbiAgfVxuXG4gIGlzUGFja2FnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5sZW5ndGggPT09IFNlcnZpY2VQcm9kdWN0LnF1YW50aXR5O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY29tbWVuZGVkIG51bWJlciBvZiBwcm9wZXJ0aWVzIHRvIGJ1eSxcbiAgICogYmFzZWQgb24gdGhlIHByb3BlcnR5IHNlcnZpY2UgcHJvZHVjdCBhbmQgdGhlIG51bWJlciBvZiBwcm9wZXJ0aWVzIHRoZSB1c2VyIGhhc1xuICAgKi9cbiAgZ2V0UmVjb21tZW5kZWRQcm9wZXJ0aWVzUXR5KHByb3BlcnR5SXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0sIHByb3BlcnRpZXNRdHk6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgbWluOiBudW1iZXIgPSBwcm9wZXJ0eUl0ZW0ucHJpY2UucHJvZHVjdC5taW5RdHk7XG5cbiAgICByZXR1cm4gTWF0aC5tYXgobWluLCBwcm9wZXJ0aWVzUXR5KTtcbiAgfVxufVxuIl19