@infrab4a/connect-angular 5.0.0-beta.96 → 5.0.0

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 (211) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/eslint.config.js +18 -0
  3. package/index.ts +1 -0
  4. package/karma.conf.js +32 -0
  5. package/ng-package.json +8 -0
  6. package/package.json +10 -22
  7. package/project.json +37 -0
  8. package/src/angular-connect.module.ts +256 -0
  9. package/src/angular-elastic-search.module.ts +23 -0
  10. package/src/angular-firebase-auth.module.ts +101 -0
  11. package/src/angular-firestore.module.ts +371 -0
  12. package/src/angular-hasura-graphql.module.ts +219 -0
  13. package/src/angular-vertex-search.module.ts +23 -0
  14. package/src/consts/backend-url.const.ts +1 -0
  15. package/src/consts/category-structure.ts +1 -0
  16. package/src/consts/default-shop.const.ts +1 -0
  17. package/src/consts/es-config.const.ts +1 -0
  18. package/src/consts/firebase-const.ts +5 -0
  19. package/src/consts/hasura-options.const.ts +1 -0
  20. package/src/consts/index.ts +8 -0
  21. package/src/consts/persistence.const.ts +1 -0
  22. package/src/consts/storage-base-url.const.ts +1 -0
  23. package/src/consts/vertex-config.const.ts +1 -0
  24. package/src/helpers/index.ts +1 -0
  25. package/src/helpers/mobile-operation-system-checker.helper.ts +10 -0
  26. package/src/index.ts +6 -0
  27. package/src/interfaces/catalog-strategies.interface.ts +36 -0
  28. package/src/interfaces/category-facades.interface.ts +7 -0
  29. package/src/interfaces/index.ts +2 -0
  30. package/src/persistence/cookie-data-persistence.ts +21 -0
  31. package/src/persistence/data-persistence.ts +7 -0
  32. package/src/persistence/index.ts +2 -0
  33. package/src/services/auth.service.ts +39 -0
  34. package/src/services/cart/cart-services.facade.ts +14 -0
  35. package/src/services/cart/index.ts +1 -0
  36. package/src/services/cart.service.ts +124 -0
  37. package/src/services/catalog/adapters/category-structure.adapter.ts +5 -0
  38. package/src/services/catalog/adapters/index.ts +3 -0
  39. package/src/services/catalog/adapters/new-category-structure.adapter.ts +42 -0
  40. package/src/services/catalog/adapters/old-category-structure.adapter.ts +17 -0
  41. package/src/services/catalog/catalog.service.ts +153 -0
  42. package/src/services/catalog/category.service.ts +52 -0
  43. package/src/services/catalog/context/catalog-search.context.ts +61 -0
  44. package/src/services/catalog/enums/index.ts +1 -0
  45. package/src/services/catalog/enums/product-sorts.enum.ts +9 -0
  46. package/src/services/catalog/facades/catalog-service.facade.ts +32 -0
  47. package/src/services/catalog/facades/catalog-strategies.facade.ts +12 -0
  48. package/src/services/catalog/facades/category-repository.facade.ts +10 -0
  49. package/src/services/catalog/facades/category-service.facade.ts +25 -0
  50. package/src/services/catalog/facades/index.ts +5 -0
  51. package/src/services/catalog/facades/product-catalog.facade.ts +13 -0
  52. package/src/services/catalog/helpers/brand-manager.helper.ts +63 -0
  53. package/src/services/catalog/helpers/catalog-filter.helper.ts +50 -0
  54. package/src/services/catalog/helpers/catalog-sort.helper.ts +54 -0
  55. package/src/services/catalog/helpers/index.ts +4 -0
  56. package/src/services/catalog/helpers/product-fields.helper.ts +35 -0
  57. package/src/services/catalog/index.ts +7 -0
  58. package/src/services/catalog/models/category-with-tree.model.ts +7 -0
  59. package/src/services/catalog/models/index.ts +1 -0
  60. package/src/services/catalog/services/catalog-helpers.service.ts +35 -0
  61. package/src/services/catalog/services/catalog-operations.facade.ts +24 -0
  62. package/src/services/catalog/services/catalog-repository.service.ts +20 -0
  63. package/src/services/catalog/services/index.ts +4 -0
  64. package/src/services/catalog/services/product-management.facade.ts +20 -0
  65. package/src/services/catalog/strategies/category-search.strategy.ts +172 -0
  66. package/src/services/catalog/strategies/index.ts +3 -0
  67. package/src/services/catalog/strategies/profile-search.strategy.ts +51 -0
  68. package/src/services/catalog/strategies/term-search.strategy.ts +178 -0
  69. package/src/services/catalog/strategies/types/strategy-params.type.ts +58 -0
  70. package/src/services/catalog/types/fetch-products-options.type.ts +10 -0
  71. package/src/services/catalog/types/fetch-products-params.type.ts +27 -0
  72. package/src/services/catalog/types/fetch-products-response.type.ts +11 -0
  73. package/src/services/catalog/types/index.ts +5 -0
  74. package/src/services/catalog/types/method-params.type.ts +21 -0
  75. package/src/services/catalog/types/product-sort.type.ts +3 -0
  76. package/src/services/catalog/wishlist.service.ts +368 -0
  77. package/src/services/checkout/checkout-dependencies.facade.ts +13 -0
  78. package/src/services/checkout/checkout-repositories.facade.ts +10 -0
  79. package/src/services/checkout/index.ts +2 -0
  80. package/src/services/checkout-subscription.service.ts +76 -0
  81. package/src/services/checkout.service.ts +196 -0
  82. package/src/services/coupon/coupon-repositories.facade.ts +11 -0
  83. package/src/services/coupon/index.ts +1 -0
  84. package/src/services/coupon/types/coupon-params.type.ts +15 -0
  85. package/src/services/coupon.service.ts +347 -0
  86. package/src/services/errors/group-invalid-coupon.error.ts +9 -0
  87. package/src/services/errors/index.ts +2 -0
  88. package/src/services/errors/invalid-coupon.error.ts +7 -0
  89. package/src/services/helpers/index.ts +1 -0
  90. package/src/services/helpers/util.helper.ts +17 -0
  91. package/src/services/home-shop/home-shop-repositories.facade.ts +11 -0
  92. package/src/services/home-shop/index.ts +1 -0
  93. package/src/services/home-shop.service.ts +196 -0
  94. package/src/services/index.ts +9 -0
  95. package/src/services/order.service.ts +23 -0
  96. package/src/services/shared/configuration.facade.ts +21 -0
  97. package/src/services/shared/index.ts +1 -0
  98. package/src/services/types/index.ts +2 -0
  99. package/src/services/types/required-checkout-data.type.ts +3 -0
  100. package/src/services/types/required-checkout-subscription-data.type.ts +3 -0
  101. package/src/types/firebase-app-config.type.ts +1 -0
  102. package/src/types/index.ts +1 -0
  103. package/tsconfig.json +17 -0
  104. package/tsconfig.lib.json +13 -0
  105. package/tsconfig.lib.prod.json +13 -0
  106. package/tsconfig.spec.json +17 -0
  107. package/angular-connect.module.d.ts +0 -32
  108. package/angular-elastic-search.module.d.ts +0 -9
  109. package/angular-firebase-auth.module.d.ts +0 -11
  110. package/angular-firestore.module.d.ts +0 -17
  111. package/angular-hasura-graphql.module.d.ts +0 -14
  112. package/angular-vertex-search.module.d.ts +0 -9
  113. package/consts/backend-url.const.d.ts +0 -1
  114. package/consts/category-structure.d.ts +0 -1
  115. package/consts/default-shop.const.d.ts +0 -1
  116. package/consts/es-config.const.d.ts +0 -1
  117. package/consts/firebase-const.d.ts +0 -4
  118. package/consts/hasura-options.const.d.ts +0 -1
  119. package/consts/index.d.ts +0 -8
  120. package/consts/persistence.const.d.ts +0 -1
  121. package/consts/storage-base-url.const.d.ts +0 -1
  122. package/consts/vertex-config.const.d.ts +0 -1
  123. package/esm2022/angular-connect.module.mjs +0 -187
  124. package/esm2022/angular-elastic-search.module.mjs +0 -34
  125. package/esm2022/angular-firebase-auth.module.mjs +0 -141
  126. package/esm2022/angular-firestore.module.mjs +0 -541
  127. package/esm2022/angular-hasura-graphql.module.mjs +0 -333
  128. package/esm2022/angular-vertex-search.module.mjs +0 -34
  129. package/esm2022/consts/backend-url.const.mjs +0 -2
  130. package/esm2022/consts/category-structure.mjs +0 -2
  131. package/esm2022/consts/default-shop.const.mjs +0 -2
  132. package/esm2022/consts/es-config.const.mjs +0 -2
  133. package/esm2022/consts/firebase-const.mjs +0 -5
  134. package/esm2022/consts/hasura-options.const.mjs +0 -2
  135. package/esm2022/consts/index.mjs +0 -9
  136. package/esm2022/consts/persistence.const.mjs +0 -2
  137. package/esm2022/consts/storage-base-url.const.mjs +0 -2
  138. package/esm2022/consts/vertex-config.const.mjs +0 -2
  139. package/esm2022/helpers/index.mjs +0 -2
  140. package/esm2022/helpers/mobile-operation-system-checker.helper.mjs +0 -7
  141. package/esm2022/index.mjs +0 -7
  142. package/esm2022/infrab4a-connect-angular.mjs +0 -5
  143. package/esm2022/persistence/cookie-data-persistence.mjs +0 -22
  144. package/esm2022/persistence/data-persistence.mjs +0 -2
  145. package/esm2022/persistence/index.mjs +0 -3
  146. package/esm2022/services/auth.service.mjs +0 -37
  147. package/esm2022/services/cart.service.mjs +0 -86
  148. package/esm2022/services/catalog/adapters/category-structure.adapter.mjs +0 -2
  149. package/esm2022/services/catalog/adapters/index.mjs +0 -4
  150. package/esm2022/services/catalog/adapters/new-category-structure.adapter.mjs +0 -43
  151. package/esm2022/services/catalog/adapters/old-category-structure.adapter.mjs +0 -23
  152. package/esm2022/services/catalog/catalog.service.mjs +0 -325
  153. package/esm2022/services/catalog/category.service.mjs +0 -51
  154. package/esm2022/services/catalog/enums/index.mjs +0 -2
  155. package/esm2022/services/catalog/enums/product-sorts.enum.mjs +0 -11
  156. package/esm2022/services/catalog/index.mjs +0 -8
  157. package/esm2022/services/catalog/models/category-with-tree.model.mjs +0 -10
  158. package/esm2022/services/catalog/models/index.mjs +0 -2
  159. package/esm2022/services/catalog/types/index.mjs +0 -2
  160. package/esm2022/services/catalog/types/product-sort.type.mjs +0 -2
  161. package/esm2022/services/catalog/wishlist.service.mjs +0 -235
  162. package/esm2022/services/checkout-subscription.service.mjs +0 -50
  163. package/esm2022/services/checkout.service.mjs +0 -122
  164. package/esm2022/services/coupon.service.mjs +0 -228
  165. package/esm2022/services/helpers/index.mjs +0 -2
  166. package/esm2022/services/helpers/util.helper.mjs +0 -18
  167. package/esm2022/services/home-shop.service.mjs +0 -125
  168. package/esm2022/services/index.mjs +0 -10
  169. package/esm2022/services/order.service.mjs +0 -30
  170. package/esm2022/services/types/index.mjs +0 -3
  171. package/esm2022/services/types/required-checkout-data.type.mjs +0 -2
  172. package/esm2022/services/types/required-checkout-subscription-data.type.mjs +0 -2
  173. package/esm2022/types/firebase-app-config.type.mjs +0 -2
  174. package/esm2022/types/index.mjs +0 -2
  175. package/fesm2022/infrab4a-connect-angular.mjs +0 -2603
  176. package/fesm2022/infrab4a-connect-angular.mjs.map +0 -1
  177. package/helpers/index.d.ts +0 -1
  178. package/helpers/mobile-operation-system-checker.helper.d.ts +0 -3
  179. package/index.d.ts +0 -6
  180. package/persistence/cookie-data-persistence.d.ts +0 -10
  181. package/persistence/data-persistence.d.ts +0 -6
  182. package/persistence/index.d.ts +0 -2
  183. package/services/auth.service.d.ts +0 -18
  184. package/services/cart.service.d.ts +0 -31
  185. package/services/catalog/adapters/category-structure.adapter.d.ts +0 -4
  186. package/services/catalog/adapters/index.d.ts +0 -3
  187. package/services/catalog/adapters/new-category-structure.adapter.d.ts +0 -12
  188. package/services/catalog/adapters/old-category-structure.adapter.d.ts +0 -10
  189. package/services/catalog/catalog.service.d.ts +0 -96
  190. package/services/catalog/category.service.d.ts +0 -24
  191. package/services/catalog/enums/index.d.ts +0 -1
  192. package/services/catalog/enums/product-sorts.enum.d.ts +0 -9
  193. package/services/catalog/index.d.ts +0 -7
  194. package/services/catalog/models/category-with-tree.model.d.ts +0 -4
  195. package/services/catalog/models/index.d.ts +0 -1
  196. package/services/catalog/types/index.d.ts +0 -1
  197. package/services/catalog/types/product-sort.type.d.ts +0 -2
  198. package/services/catalog/wishlist.service.d.ts +0 -50
  199. package/services/checkout-subscription.service.d.ts +0 -19
  200. package/services/checkout.service.d.ts +0 -34
  201. package/services/coupon.service.d.ts +0 -27
  202. package/services/helpers/index.d.ts +0 -1
  203. package/services/helpers/util.helper.d.ts +0 -3
  204. package/services/home-shop.service.d.ts +0 -26
  205. package/services/index.d.ts +0 -9
  206. package/services/order.service.d.ts +0 -13
  207. package/services/types/index.d.ts +0 -2
  208. package/services/types/required-checkout-data.type.d.ts +0 -2
  209. package/services/types/required-checkout-subscription-data.type.d.ts +0 -2
  210. package/types/firebase-app-config.type.d.ts +0 -1
  211. package/types/index.d.ts +0 -1
@@ -1,51 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { Shops, } from '@infrab4a/connect';
3
- import { CATEGORY_STRUCTURE, DEFAULT_SHOP } from '../../consts';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@infrab4a/connect";
6
- export class CategoryService {
7
- constructor(productRepository, categoryRepository, categoryFilterRepository, categoryStructureAdapter, shop) {
8
- this.productRepository = productRepository;
9
- this.categoryRepository = categoryRepository;
10
- this.categoryFilterRepository = categoryFilterRepository;
11
- this.categoryStructureAdapter = categoryStructureAdapter;
12
- this.shop = shop;
13
- }
14
- async fetchBrands(category, options, optionsCache) {
15
- const brands = await this.productRepository
16
- .findCatalog({
17
- filters: await this.categoryStructureAdapter.buildProductFilterByCategory(category),
18
- fields: ['brand'],
19
- }, options?.mainGender ? options?.mainGender : this.shop === Shops.MENSMARKET ? 'male' : 'female', optionsCache)
20
- .then(({ data }) => Object.keys(data.map((product) => product.brand).reduce((brands, brand) => ({ ...brands, [brand]: true }), {})));
21
- return this.categoryRepository
22
- .find({ filters: { brandCategory: true, shop: options?.shop || this.shop }, orderBy: { name: 'asc' } }, optionsCache)
23
- .then(({ data }) => data.filter((category) => brands.includes(category.conditions.brand)));
24
- }
25
- async fetchFilterOptions(category, optionsCache) {
26
- return await this.categoryFilterRepository
27
- .find({ filters: { categoryId: +category.id } }, optionsCache)
28
- .then(({ data }) => data.map((categoryFilter) => categoryFilter.filter));
29
- }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CategoryService, deps: [{ token: 'ProductRepository' }, { token: 'CategoryRepository' }, { token: 'CategoryFilterRepository' }, { token: CATEGORY_STRUCTURE }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable }); }
31
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CategoryService }); }
32
- }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CategoryService, decorators: [{
34
- type: Injectable
35
- }], ctorParameters: () => [{ type: undefined, decorators: [{
36
- type: Inject,
37
- args: ['ProductRepository']
38
- }] }, { type: undefined, decorators: [{
39
- type: Inject,
40
- args: ['CategoryRepository']
41
- }] }, { type: undefined, decorators: [{
42
- type: Inject,
43
- args: ['CategoryFilterRepository']
44
- }] }, { type: undefined, decorators: [{
45
- type: Inject,
46
- args: [CATEGORY_STRUCTURE]
47
- }] }, { type: i1.Shops, decorators: [{
48
- type: Inject,
49
- args: [DEFAULT_SHOP]
50
- }] }] });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9jYXRlZ29yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFRTCxLQUFLLEdBQ04sTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFBOzs7QUFTL0QsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFDZ0QsaUJBQW9DLEVBQ25DLGtCQUFzQyxFQUNoQyx3QkFBa0QsRUFDMUQsd0JBQWtELEVBQ3hELElBQVc7UUFKSixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ25DLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDaEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUMxRCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ3hELFNBQUksR0FBSixJQUFJLENBQU87SUFDakQsQ0FBQztJQUVKLEtBQUssQ0FBQyxXQUFXLENBQ2YsUUFBa0IsRUFDbEIsT0FBNEIsRUFDNUIsWUFBaUQ7UUFFakQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCO2FBQ3hDLFdBQVcsQ0FDVjtZQUNFLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUM7WUFDbkYsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO1NBQ2xCLEVBQ0QsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFDOUYsWUFBWSxDQUNiO2FBQ0EsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FDaEgsQ0FBQTtRQUVILE9BQU8sSUFBSSxDQUFDLGtCQUFrQjthQUMzQixJQUFJLENBQ0gsRUFBRSxPQUFPLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFDaEcsWUFBWSxDQUNiO2FBQ0EsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUM5RixDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFFBQWtCLEVBQUUsWUFBaUQ7UUFDNUYsT0FBTyxNQUFNLElBQUksQ0FBQyx3QkFBd0I7YUFDdkMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsWUFBWSxDQUFDO2FBQzdELElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBQzVFLENBQUM7OEdBdkNVLGVBQWUsa0JBRWhCLG1CQUFtQixhQUNuQixvQkFBb0IsYUFDcEIsMEJBQTBCLGFBQzFCLGtCQUFrQixhQUNsQixZQUFZO2tIQU5YLGVBQWU7OzJGQUFmLGVBQWU7a0JBRDNCLFVBQVU7OzBCQUdOLE1BQU07MkJBQUMsbUJBQW1COzswQkFDMUIsTUFBTTsyQkFBQyxvQkFBb0I7OzBCQUMzQixNQUFNOzJCQUFDLDBCQUEwQjs7MEJBQ2pDLE1BQU07MkJBQUMsa0JBQWtCOzswQkFDekIsTUFBTTsyQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIENhdGVnb3J5LFxuICBDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnksXG4gIENhdGVnb3J5UmVwb3NpdG9yeSxcbiAgRmlsdGVyLFxuICBQcm9kdWN0R2VuZGVyLFxuICBQcm9kdWN0UmVwb3NpdG9yeSxcbiAgUmVwb3NpdG9yeUNhY2hlT3B0aW9ucyxcbiAgU2hvcHMsXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xuaW1wb3J0IHsgQ0FURUdPUllfU1RSVUNUVVJFLCBERUZBVUxUX1NIT1AgfSBmcm9tICcuLi8uLi9jb25zdHMnXG5pbXBvcnQgeyBDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIgfSBmcm9tICcuL2FkYXB0ZXJzJ1xuXG50eXBlIEZldGNoQnJhbmRzT3B0aW9ucyA9IHtcbiAgbWFpbkdlbmRlcj86IFByb2R1Y3RHZW5kZXJcbiAgc2hvcD86IFNob3BzXG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYXRlZ29yeVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KCdQcm9kdWN0UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdFJlcG9zaXRvcnk6IFByb2R1Y3RSZXBvc2l0b3J5LFxuICAgIEBJbmplY3QoJ0NhdGVnb3J5UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgY2F0ZWdvcnlSZXBvc2l0b3J5OiBDYXRlZ29yeVJlcG9zaXRvcnksXG4gICAgQEluamVjdCgnQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBjYXRlZ29yeUZpbHRlclJlcG9zaXRvcnk6IENhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeSxcbiAgICBASW5qZWN0KENBVEVHT1JZX1NUUlVDVFVSRSkgcHJpdmF0ZSByZWFkb25seSBjYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXI6IENhdGVnb3J5U3RydWN0dXJlQWRhcHRlcixcbiAgICBASW5qZWN0KERFRkFVTFRfU0hPUCkgcHJpdmF0ZSByZWFkb25seSBzaG9wOiBTaG9wcyxcbiAgKSB7fVxuXG4gIGFzeW5jIGZldGNoQnJhbmRzKFxuICAgIGNhdGVnb3J5OiBDYXRlZ29yeSxcbiAgICBvcHRpb25zPzogRmV0Y2hCcmFuZHNPcHRpb25zLFxuICAgIG9wdGlvbnNDYWNoZT86IHsgY2FjaGU/OiBSZXBvc2l0b3J5Q2FjaGVPcHRpb25zIH0sXG4gICk6IFByb21pc2U8Q2F0ZWdvcnlbXT4ge1xuICAgIGNvbnN0IGJyYW5kcyA9IGF3YWl0IHRoaXMucHJvZHVjdFJlcG9zaXRvcnlcbiAgICAgIC5maW5kQ2F0YWxvZyhcbiAgICAgICAge1xuICAgICAgICAgIGZpbHRlcnM6IGF3YWl0IHRoaXMuY2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyLmJ1aWxkUHJvZHVjdEZpbHRlckJ5Q2F0ZWdvcnkoY2F0ZWdvcnkpLFxuICAgICAgICAgIGZpZWxkczogWydicmFuZCddLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zPy5tYWluR2VuZGVyID8gb3B0aW9ucz8ubWFpbkdlbmRlciA6IHRoaXMuc2hvcCA9PT0gU2hvcHMuTUVOU01BUktFVCA/ICdtYWxlJyA6ICdmZW1hbGUnLFxuICAgICAgICBvcHRpb25zQ2FjaGUsXG4gICAgICApXG4gICAgICAudGhlbigoeyBkYXRhIH0pID0+XG4gICAgICAgIE9iamVjdC5rZXlzKGRhdGEubWFwKChwcm9kdWN0KSA9PiBwcm9kdWN0LmJyYW5kKS5yZWR1Y2UoKGJyYW5kcywgYnJhbmQpID0+ICh7IC4uLmJyYW5kcywgW2JyYW5kXTogdHJ1ZSB9KSwge30pKSxcbiAgICAgIClcblxuICAgIHJldHVybiB0aGlzLmNhdGVnb3J5UmVwb3NpdG9yeVxuICAgICAgLmZpbmQoXG4gICAgICAgIHsgZmlsdGVyczogeyBicmFuZENhdGVnb3J5OiB0cnVlLCBzaG9wOiBvcHRpb25zPy5zaG9wIHx8IHRoaXMuc2hvcCB9LCBvcmRlckJ5OiB7IG5hbWU6ICdhc2MnIH0gfSxcbiAgICAgICAgb3B0aW9uc0NhY2hlLFxuICAgICAgKVxuICAgICAgLnRoZW4oKHsgZGF0YSB9KSA9PiBkYXRhLmZpbHRlcigoY2F0ZWdvcnkpID0+IGJyYW5kcy5pbmNsdWRlcyhjYXRlZ29yeS5jb25kaXRpb25zLmJyYW5kKSkpXG4gIH1cblxuICBhc3luYyBmZXRjaEZpbHRlck9wdGlvbnMoY2F0ZWdvcnk6IENhdGVnb3J5LCBvcHRpb25zQ2FjaGU/OiB7IGNhY2hlPzogUmVwb3NpdG9yeUNhY2hlT3B0aW9ucyB9KTogUHJvbWlzZTxGaWx0ZXJbXT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeVxuICAgICAgLmZpbmQoeyBmaWx0ZXJzOiB7IGNhdGVnb3J5SWQ6ICtjYXRlZ29yeS5pZCB9IH0sIG9wdGlvbnNDYWNoZSlcbiAgICAgIC50aGVuKCh7IGRhdGEgfSkgPT4gZGF0YS5tYXAoKGNhdGVnb3J5RmlsdGVyKSA9PiBjYXRlZ29yeUZpbHRlci5maWx0ZXIpKVxuICB9XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export * from './product-sorts.enum';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvZW51bXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC1zb3J0cy5lbnVtJ1xuIl19
@@ -1,11 +0,0 @@
1
- export var ProductSorts;
2
- (function (ProductSorts) {
3
- ProductSorts["MOST_RELEVANT"] = "most-relevant";
4
- ProductSorts["BEST_SELLER"] = "best-sellers";
5
- ProductSorts["BIGGEST_PRICE"] = "biggest-price";
6
- ProductSorts["LOWEST_PRICE"] = "lowest-price";
7
- ProductSorts["BIGGEST_DISCOUNT"] = "biggest-discount";
8
- ProductSorts["BEST_RATING"] = "best-rating";
9
- ProductSorts["NEWS"] = "news";
10
- })(ProductSorts || (ProductSorts = {}));
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zb3J0cy5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2VudW1zL3Byb2R1Y3Qtc29ydHMuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxZQVFYO0FBUkQsV0FBWSxZQUFZO0lBQ3RCLCtDQUErQixDQUFBO0lBQy9CLDRDQUE0QixDQUFBO0lBQzVCLCtDQUErQixDQUFBO0lBQy9CLDZDQUE2QixDQUFBO0lBQzdCLHFEQUFxQyxDQUFBO0lBQ3JDLDJDQUEyQixDQUFBO0lBQzNCLDZCQUFhLENBQUE7QUFDZixDQUFDLEVBUlcsWUFBWSxLQUFaLFlBQVksUUFRdkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBQcm9kdWN0U29ydHMge1xuICBNT1NUX1JFTEVWQU5UID0gJ21vc3QtcmVsZXZhbnQnLFxuICBCRVNUX1NFTExFUiA9ICdiZXN0LXNlbGxlcnMnLFxuICBCSUdHRVNUX1BSSUNFID0gJ2JpZ2dlc3QtcHJpY2UnLFxuICBMT1dFU1RfUFJJQ0UgPSAnbG93ZXN0LXByaWNlJyxcbiAgQklHR0VTVF9ESVNDT1VOVCA9ICdiaWdnZXN0LWRpc2NvdW50JyxcbiAgQkVTVF9SQVRJTkcgPSAnYmVzdC1yYXRpbmcnLFxuICBORVdTID0gJ25ld3MnLFxufVxuIl19
@@ -1,8 +0,0 @@
1
- export * from './adapters';
2
- export * from './catalog.service';
3
- export * from './category.service';
4
- export * from './enums';
5
- export * from './models';
6
- export * from './types';
7
- export * from './wishlist.service';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUE7QUFDMUIsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLG9CQUFvQixDQUFBO0FBQ2xDLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsb0JBQW9CLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FkYXB0ZXJzJ1xuZXhwb3J0ICogZnJvbSAnLi9jYXRhbG9nLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2NhdGVnb3J5LnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2VudW1zJ1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMnXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJ1xuZXhwb3J0ICogZnJvbSAnLi93aXNobGlzdC5zZXJ2aWNlJ1xuIl19
@@ -1,10 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Type } from 'class-transformer';
3
- import { Category } from '@infrab4a/connect';
4
- export class CategoryWithTree extends Category {
5
- }
6
- __decorate([
7
- Type(() => CategoryWithTree),
8
- __metadata("design:type", Array)
9
- ], CategoryWithTree.prototype, "children", void 0);
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktd2l0aC10cmVlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL21vZGVscy9jYXRlZ29yeS13aXRoLXRyZWUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUV4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFNUMsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFFBQVE7Q0FHN0M7QUFEQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQzs7a0RBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInXG5cbmltcG9ydCB7IENhdGVnb3J5IH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5cbmV4cG9ydCBjbGFzcyBDYXRlZ29yeVdpdGhUcmVlIGV4dGVuZHMgQ2F0ZWdvcnkge1xuICBAVHlwZSgoKSA9PiBDYXRlZ29yeVdpdGhUcmVlKVxuICBjaGlsZHJlbj86IENhdGVnb3J5V2l0aFRyZWVbXVxufVxuIl19
@@ -1,2 +0,0 @@
1
- export * from './category-with-tree.model';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhdGVnb3J5LXdpdGgtdHJlZS5tb2RlbCdcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export * from './product-sort.type';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC1zb3J0LnR5cGUnXG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zb3J0LnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvdHlwZXMvcHJvZHVjdC1zb3J0LnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2R1Y3RTb3J0cyB9IGZyb20gJy4uL2VudW1zJ1xuXG5leHBvcnQgdHlwZSBQcm9kdWN0U29ydCA9IGAke1Byb2R1Y3RTb3J0c31gXG4iXX0=
@@ -1,235 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { PersonTypes, Shops, Wishlist, WishlistLogType, } from '@infrab4a/connect';
3
- import { DEFAULT_SHOP } from '../../consts';
4
- import { NewCategoryStructureAdapter } from './adapters';
5
- import { CatalogService } from './catalog.service';
6
- import { CategoryService } from './category.service';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@infrab4a/connect";
9
- export class WishlistService {
10
- constructor(wishlistRepository, shop, productRepository, categoryFilterRepository, categoryRepository, productStockNotificationRepository, productSearch, logRepository) {
11
- this.wishlistRepository = wishlistRepository;
12
- this.shop = shop;
13
- this.productRepository = productRepository;
14
- this.productSearch = productSearch;
15
- this.logRepository = logRepository;
16
- const categoryStructureAdapter = new NewCategoryStructureAdapter(wishlistRepository);
17
- this.catalogService = new CatalogService(productRepository, productStockNotificationRepository, categoryRepository, categoryStructureAdapter, shop, productSearch);
18
- this.categoryService = new CategoryService(productRepository, categoryRepository, categoryFilterRepository, categoryStructureAdapter, shop);
19
- }
20
- getCatalogService() {
21
- return this.catalogService;
22
- }
23
- getCategoryService() {
24
- return this.categoryService;
25
- }
26
- async create({ personId, title, description, published, userFullName, userPhoto, theme, bannerUrl, personType, personIsSubscriber, }) {
27
- const data = {
28
- slug: '',
29
- name: title,
30
- description,
31
- metadatas: [
32
- {
33
- shop: this.shop,
34
- title: `${userFullName} - ${title}`,
35
- description: `${userFullName} - ${description}`,
36
- },
37
- ],
38
- shop: this.shop,
39
- shops: [this.shop],
40
- personId,
41
- personName: userFullName,
42
- personPhoto: userPhoto,
43
- brandCategory: false,
44
- published,
45
- theme,
46
- bannerUrl,
47
- personType: personType ?? PersonTypes.NONE,
48
- personIsSubscriber: personIsSubscriber ?? false,
49
- };
50
- const hasWishlist = await this.wishlistRepository
51
- .find({
52
- filters: {
53
- personId,
54
- },
55
- options: {
56
- enableCount: false,
57
- },
58
- orderBy: {
59
- id: 'asc',
60
- },
61
- })
62
- .then((res) => res.data);
63
- await this.createWishlistLog(WishlistLogType.CREATE, data);
64
- if (hasWishlist.length)
65
- return hasWishlist.at(0);
66
- const newWishlist = await this.wishlistRepository.create(data);
67
- await this.wishlistRepository.update({ id: newWishlist.id, slug: newWishlist.id });
68
- return Wishlist.toInstance({ ...newWishlist.toPlain(), slug: newWishlist.id });
69
- }
70
- async update({ id, title, description, published, userFullName, userPhoto, theme, bannerUrl, personType, personIsSubscriber, }) {
71
- const data = {
72
- id,
73
- name: title,
74
- description,
75
- published,
76
- metadatas: [
77
- {
78
- shop: this.shop,
79
- title: `${userFullName} - ${title}`,
80
- description: `${userFullName} - ${description}`,
81
- },
82
- ],
83
- personName: userFullName,
84
- personPhoto: userPhoto,
85
- theme,
86
- bannerUrl,
87
- personType: personType ?? PersonTypes.NONE,
88
- personIsSubscriber: personIsSubscriber ?? false,
89
- };
90
- await this.createWishlistLog(WishlistLogType.UPDATE, data);
91
- return this.wishlistRepository.update(data);
92
- }
93
- async delete(wishlistId) {
94
- const wishlist = await this.findById(wishlistId);
95
- await this.createWishlistLog(WishlistLogType.DELETE, wishlist);
96
- return this.wishlistRepository.delete({ id: wishlistId });
97
- }
98
- getWishlistBySlug(slug) {
99
- const [id] = slug.split('-');
100
- if (+id)
101
- return this.wishlistRepository.get({ id });
102
- return this.wishlistRepository.getWishlistBySlug(slug);
103
- }
104
- getWishlistsByPerson(personId) {
105
- return this.wishlistRepository.getWishlistByPerson(personId);
106
- }
107
- async addProduct(wishlistId, productId) {
108
- const wishlist = await this.wishlistRepository.get({ id: wishlistId });
109
- const hasProduct = wishlist.products.some((p) => p == productId);
110
- const wishlistData = await this.findById(wishlistId);
111
- const productData = await this.findProductById(productId);
112
- await this.createWishlistLog(WishlistLogType.ADD_PRODUCT, wishlistData, productData);
113
- if (!hasProduct) {
114
- wishlist.products = [...wishlist.products, productId];
115
- await this.wishlistRepository.addProduct(wishlistId, productId);
116
- }
117
- return wishlist;
118
- }
119
- async removeProduct(wishlistId, productId) {
120
- const wishlist = await this.wishlistRepository.get({ id: wishlistId });
121
- const productIndex = wishlist.products.findIndex((p) => p == productId);
122
- if (productIndex != -1) {
123
- wishlist.products.splice(productIndex, 1);
124
- const wishlistData = await this.findById(wishlistId);
125
- const productData = await this.findProductById(productId);
126
- await this.createWishlistLog(WishlistLogType.REMOVE_PRODUCT, wishlistData, productData);
127
- await this.wishlistRepository.removeProduct(wishlistId, productId);
128
- }
129
- return wishlist;
130
- }
131
- async findById(id) {
132
- return this.wishlistRepository
133
- .find({
134
- fields: ['id', 'name', 'description', 'personId', 'personIsSubscriber', 'personType', 'personName'],
135
- filters: {
136
- id,
137
- },
138
- })
139
- .then((res) => res.data.at(0));
140
- }
141
- async findProductById(id) {
142
- return this.productRepository
143
- .find({
144
- fields: ['id', 'sku', 'EAN', 'name', 'brand'],
145
- filters: {
146
- id,
147
- },
148
- })
149
- .then((res) => res.data.at(0));
150
- }
151
- async createWishlistLog(type, wishlist, product) {
152
- switch (type) {
153
- case WishlistLogType.CREATE:
154
- case WishlistLogType.UPDATE:
155
- case WishlistLogType.DELETE:
156
- await this.logRepository.create({
157
- collection: 'wishlist',
158
- date: new Date(),
159
- operation: WishlistLogType.CREATE ? 'CREATE' : WishlistLogType.UPDATE ? 'UPDATE' : 'DELETE',
160
- documentId: wishlist.id,
161
- document: {
162
- id: wishlist.id,
163
- shop: this.shop,
164
- name: wishlist.name,
165
- description: wishlist.description,
166
- published: wishlist.published,
167
- type: type,
168
- personType: wishlist.personType,
169
- personId: wishlist.personId,
170
- personName: wishlist.personName,
171
- personIsSubscriber: wishlist.personIsSubscriber,
172
- },
173
- });
174
- break;
175
- case WishlistLogType.ADD_PRODUCT:
176
- case WishlistLogType.REMOVE_PRODUCT:
177
- await this.logRepository.create({
178
- collection: 'wishlist',
179
- date: new Date(),
180
- operation: 'UPDATE',
181
- documentId: wishlist.id,
182
- document: {
183
- id: wishlist.id,
184
- shop: this.shop,
185
- name: wishlist.name,
186
- description: wishlist.description,
187
- published: wishlist.published,
188
- type: type,
189
- personType: wishlist.personType,
190
- personId: wishlist.personId,
191
- personName: wishlist.personName,
192
- personIsSubscriber: wishlist.personIsSubscriber,
193
- productId: product.id,
194
- productEAN: product.EAN,
195
- productSKU: product.sku,
196
- productName: product.name,
197
- productBrand: product.brand,
198
- },
199
- });
200
- break;
201
- default:
202
- break;
203
- }
204
- }
205
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: WishlistService, deps: [{ token: 'WishlistRepository' }, { token: DEFAULT_SHOP }, { token: 'ProductRepository' }, { token: 'CategoryFilterRepository' }, { token: 'CategoryRepository' }, { token: 'ProductStockNotificationRepository' }, { token: 'ProductSearch' }, { token: 'LogRepository' }], target: i0.ɵɵFactoryTarget.Injectable }); }
206
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: WishlistService }); }
207
- }
208
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: WishlistService, decorators: [{
209
- type: Injectable
210
- }], ctorParameters: () => [{ type: undefined, decorators: [{
211
- type: Inject,
212
- args: ['WishlistRepository']
213
- }] }, { type: i1.Shops, decorators: [{
214
- type: Inject,
215
- args: [DEFAULT_SHOP]
216
- }] }, { type: undefined, decorators: [{
217
- type: Inject,
218
- args: ['ProductRepository']
219
- }] }, { type: undefined, decorators: [{
220
- type: Inject,
221
- args: ['CategoryFilterRepository']
222
- }] }, { type: undefined, decorators: [{
223
- type: Inject,
224
- args: ['CategoryRepository']
225
- }] }, { type: undefined, decorators: [{
226
- type: Inject,
227
- args: ['ProductStockNotificationRepository']
228
- }] }, { type: undefined, decorators: [{
229
- type: Inject,
230
- args: ['ProductSearch']
231
- }] }, { type: undefined, decorators: [{
232
- type: Inject,
233
- args: ['LogRepository']
234
- }] }] });
235
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lzaGxpc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy93aXNobGlzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFLTCxXQUFXLEVBS1gsS0FBSyxFQUNMLFFBQVEsRUFDUixlQUFlLEdBRWhCLE1BQU0sbUJBQW1CLENBQUE7QUFDMUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTs7O0FBR3BELE1BQU0sT0FBTyxlQUFlO0lBSTFCLFlBQ2lELGtCQUFzQyxFQUM5QyxJQUFXLEVBQ2QsaUJBQW9DLEVBQ3BDLHdCQUFrRCxFQUN4RCxrQkFBc0MsRUFFcEUsa0NBQXNFLEVBQzVCLGFBQWlDLEVBQ2pDLGFBQTRCO1FBUnZCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDOUMsU0FBSSxHQUFKLElBQUksQ0FBTztRQUNkLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFLOUIsa0JBQWEsR0FBYixhQUFhLENBQW9CO1FBQ2pDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBRXRFLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSwyQkFBMkIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBRXBGLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQ3RDLGlCQUFpQixFQUNqQixrQ0FBa0MsRUFDbEMsa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4QixJQUFJLEVB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QWYsZUFBZTtrQkFEM0IsVUFBVTs7MEJBTU4sTUFBTTsyQkFBQyxvQkFBb0I7OzBCQUMzQixNQUFNOzJCQUFDLFlBQVk7OzBCQUNuQixNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQzFCLE1BQU07MkJBQUMsMEJBQTBCOzswQkFDakMsTUFBTTsyQkFBQyxvQkFBb0I7OzBCQUMzQixNQUFNOzJCQUFDLG9DQUFvQzs7MEJBRTNDLE1BQU07MkJBQUMsZUFBZTs7MEJBQ3RCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnksXG4gIENhdGVnb3J5UmVwb3NpdG9yeSxcbiAgTG9nUmVwb3NpdG9yeSxcbiAgUGVyc29uVHlwZSxcbiAgUGVyc29uVHlwZXMsXG4gIFByb2R1Y3QsXG4gIFByb2R1Y3RSZXBvc2l0b3J5LFxuICBQcm9kdWN0U2VhcmNoSW5kZXgsXG4gIFByb2R1Y3RTdG9ja05vdGlmaWNhdGlvblJlcG9zaXRvcnksXG4gIFNob3BzLFxuICBXaXNobGlzdCxcbiAgV2lzaGxpc3RMb2dUeXBlLFxuICBXaXNobGlzdFJlcG9zaXRvcnksXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xuaW1wb3J0IHsgREVGQVVMVF9TSE9QIH0gZnJvbSAnLi4vLi4vY29uc3RzJ1xuaW1wb3J0IHsgTmV3Q2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyIH0gZnJvbSAnLi9hZGFwdGVycydcbmltcG9ydCB7IENhdGFsb2dTZXJ2aWNlIH0gZnJvbSAnLi9jYXRhbG9nLnNlcnZpY2UnXG5pbXBvcnQgeyBDYXRlZ29yeVNlcnZpY2UgfSBmcm9tICcuL2NhdGVnb3J5LnNlcnZpY2UnXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBXaXNobGlzdFNlcnZpY2Uge1xuICBwcml2YXRlIGNhdGFsb2dTZXJ2aWNlOiBDYXRhbG9nU2VydmljZVxuICBwcml2YXRlIGNhdGVnb3J5U2VydmljZTogQ2F0ZWdvcnlTZXJ2aWNlXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCgnV2lzaGxpc3RSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSB3aXNobGlzdFJlcG9zaXRvcnk6IFdpc2hsaXN0UmVwb3NpdG9yeSxcbiAgICBASW5qZWN0KERFRkFVTFRfU0hPUCkgcHJpdmF0ZSByZWFkb25seSBzaG9wOiBTaG9wcyxcbiAgICBASW5qZWN0KCdQcm9kdWN0UmVwb3NpdG9yeScpIHB1YmxpYyBwcm9kdWN0UmVwb3NpdG9yeTogUHJvZHVjdFJlcG9zaXRvcnksXG4gICAgQEluamVjdCgnQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5JykgY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5OiBDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnksXG4gICAgQEluamVjdCgnQ2F0ZWdvcnlSZXBvc2l0b3J5JykgY2F0ZWdvcnlSZXBvc2l0b3J5OiBDYXRlZ29yeVJlcG9zaXRvcnksXG4gICAgQEluamVjdCgnUHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uUmVwb3NpdG9yeScpXG4gICAgcHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uUmVwb3NpdG9yeTogUHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uUmVwb3NpdG9yeSxcbiAgICBASW5qZWN0KCdQcm9kdWN0U2VhcmNoJykgcHJpdmF0ZSByZWFkb25seSBwcm9kdWN0U2VhcmNoOiBQcm9kdWN0U2VhcmNoSW5kZXgsXG4gICAgQEluamVjdCgnTG9nUmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgbG9nUmVwb3NpdG9yeTogTG9nUmVwb3NpdG9yeSxcbiAgKSB7XG4gICAgY29uc3QgY2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyID0gbmV3IE5ld0NhdGVnb3J5U3RydWN0dXJlQWRhcHRlcih3aXNobGlzdFJlcG9zaXRvcnkpXG5cbiAgICB0aGlzLmNhdGFsb2dTZXJ2aWNlID0gbmV3IENhdGFsb2dTZXJ2aWNlPFdpc2hsaXN0PihcbiAgICAgIHByb2R1Y3RSZXBvc2l0b3J5LFxuICAgICAgcHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uUmVwb3NpdG9yeSxcbiAgICAgIGNhdGVnb3J5UmVwb3NpdG9yeSxcbiAgICAgIGNhdGVnb3J5U3RydWN0dXJlQWRhcHRlcixcbiAgICAgIHNob3AsXG4gICAgICBwcm9kdWN0U2VhcmNoLFxuICAgIClcbiAgICB0aGlzLmNhdGVnb3J5U2VydmljZSA9IG5ldyBDYXRlZ29yeVNlcnZpY2UoXG4gICAgICBwcm9kdWN0UmVwb3NpdG9yeSxcbiAgICAgIGNhdGVnb3J5UmVwb3NpdG9yeSxcbiAgICAgIGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeSxcbiAgICAgIGNhdGVnb3J5U3RydWN0dXJlQWRhcHRlcixcbiAgICAgIHNob3AsXG4gICAgKVxuICB9XG5cbiAgZ2V0Q2F0YWxvZ1NlcnZpY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2F0YWxvZ1NlcnZpY2VcbiAgfVxuXG4gIGdldENhdGVnb3J5U2VydmljZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yeVNlcnZpY2VcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZSh7XG4gICAgcGVyc29uSWQsXG4gICAgdGl0bGUsXG4gICAgZGVzY3JpcHRpb24sXG4gICAgcHVibGlzaGVkLFxuICAgIHVzZXJGdWxsTmFtZSxcbiAgICB1c2VyUGhvdG8sXG4gICAgdGhlbWUsXG4gICAgYmFubmVyVXJsLFxuICAgIHBlcnNvblR5cGUsXG4gICAgcGVyc29uSXNTdWJzY3JpYmVyLFxuICB9OiB7XG4gICAgcGVyc29uSWQ6IHN0cmluZ1xuICAgIHRpdGxlOiBzdHJpbmdcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nXG4gICAgcHVibGlzaGVkOiBib29sZWFuXG4gICAgdXNlckZ1bGxOYW1lOiBzdHJpbmdcbiAgICB1c2VyUGhvdG8/OiBzdHJpbmdcbiAgICB0aGVtZT86IHN0cmluZ1xuICAgIGJhbm5lclVybD86IHN0cmluZ1xuICAgIHBlcnNvblR5cGU/OiBQZXJzb25UeXBlXG4gICAgcGVyc29uSXNTdWJzY3JpYmVyPzogYm9vbGVhblxuICB9KTogUHJvbWlzZTxXaXNobGlzdD4ge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBzbHVnOiAnJyxcbiAgICAgIG5hbWU6IHRpdGxlLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICBtZXRhZGF0YXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHNob3A6IHRoaXMuc2hvcCxcbiAgICAgICAgICB0aXRsZTogYCR7dXNlckZ1bGxOYW1lfSAtICR7dGl0bGV9YCxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogYCR7dXNlckZ1bGxOYW1lfSAtICR7ZGVzY3JpcHRpb259YCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBzaG9wOiB0aGlzLnNob3AsXG4gICAgICBzaG9wczogW3RoaXMuc2hvcF0sXG4gICAgICBwZXJzb25JZCxcbiAgICAgIHBlcnNvbk5hbWU6IHVzZXJGdWxsTmFtZSxcbiAgICAgIHBlcnNvblBob3RvOiB1c2VyUGhvdG8sXG4gICAgICBicmFuZENhdGVnb3J5OiBmYWxzZSxcbiAgICAgIHB1Ymxpc2hlZCxcbiAgICAgIHRoZW1lLFxuICAgICAgYmFubmVyVXJsLFxuICAgICAgcGVyc29uVHlwZTogcGVyc29uVHlwZSA/PyBQZXJzb25UeXBlcy5OT05FLFxuICAgICAgcGVyc29uSXNTdWJzY3JpYmVyOiBwZXJzb25Jc1N1YnNjcmliZXIgPz8gZmFsc2UsXG4gICAgfVxuXG4gICAgY29uc3QgaGFzV2lzaGxpc3QgPSBhd2FpdCB0aGlzLndpc2hsaXN0UmVwb3NpdG9yeVxuICAgICAgLmZpbmQoe1xuICAgICAgICBmaWx0ZXJzOiB7XG4gICAgICAgICAgcGVyc29uSWQsXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBlbmFibGVDb3VudDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICAgIG9yZGVyQnk6IHtcbiAgICAgICAgICBpZDogJ2FzYycsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgLnRoZW4oKHJlcykgPT4gcmVzLmRhdGEpXG5cbiAgICBhd2FpdCB0aGlzLmNyZWF0ZVdpc2hsaXN0TG9nKFdpc2hsaXN0TG9nVHlwZS5DUkVBVEUsIGRhdGEgYXMgV2lzaGxpc3QpXG5cbiAgICBpZiAoaGFzV2lzaGxpc3QubGVuZ3RoKSByZXR1cm4gaGFzV2lzaGxpc3QuYXQoMClcblxuICAgIGNvbnN0IG5ld1dpc2hsaXN0ID0gYXdhaXQgdGhpcy53aXNobGlzdFJlcG9zaXRvcnkuY3JlYXRlKGRhdGEpXG4gICAgYXdhaXQgdGhpcy53aXNobGlzdFJlcG9zaXRvcnkudXBkYXRlKHsgaWQ6IG5ld1dpc2hsaXN0LmlkLCBzbHVnOiBuZXdXaXNobGlzdC5pZCB9KVxuXG4gICAgcmV0dXJuIFdpc2hsaXN0LnRvSW5zdGFuY2UoeyAuLi5uZXdXaXNobGlzdC50b1BsYWluKCksIHNsdWc6IG5ld1dpc2hsaXN0LmlkIH0pXG4gIH1cblxuICBhc3luYyB1cGRhdGUoe1xuICAgIGlkLFxuICAgIHRpdGxlLFxuICAgIGRlc2NyaXB0aW9uLFxuICAgIHB1Ymxpc2hlZCxcbiAgICB1c2VyRnVsbE5hbWUsXG4gICAgdXNlclBob3RvLFxuICAgIHRoZW1lLFxuICAgIGJhbm5lclVybCxcbiAgICBwZXJzb25UeXBlLFxuICAgIHBlcnNvbklzU3Vic2NyaWJlcixcbiAgfToge1xuICAgIGlkOiBzdHJpbmdcbiAgICB0aXRsZTogc3RyaW5nXG4gICAgZGVzY3JpcHRpb246IHN0cmluZ1xuICAgIHB1Ymxpc2hlZDogYm9vbGVhblxuICAgIHVzZXJGdWxsTmFtZTogc3RyaW5nXG4gICAgdXNlclBob3RvPzogc3RyaW5nXG4gICAgdGhlbWU/OiBzdHJpbmdcbiAgICBiYW5uZXJVcmw/OiBzdHJpbmdcbiAgICBwZXJzb25UeXBlPzogUGVyc29uVHlwZVxuICAgIHBlcnNvbklzU3Vic2NyaWJlcj86IGJvb2xlYW5cbiAgfSk6IFByb21pc2U8V2lzaGxpc3Q+IHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgaWQsXG4gICAgICBuYW1lOiB0aXRsZSxcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgcHVibGlzaGVkLFxuICAgICAgbWV0YWRhdGFzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBzaG9wOiB0aGlzLnNob3AsXG4gICAgICAgICAgdGl0bGU6IGAke3VzZXJGdWxsTmFtZX0gLSAke3RpdGxlfWAsXG4gICAgICAgICAgZGVzY3JpcHRpb246IGAke3VzZXJGdWxsTmFtZX0gLSAke2Rlc2NyaXB0aW9ufWAsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcGVyc29uTmFtZTogdXNlckZ1bGxOYW1lLFxuICAgICAgcGVyc29uUGhvdG86IHVzZXJQaG90byxcbiAgICAgIHRoZW1lLFxuICAgICAgYmFubmVyVXJsLFxuICAgICAgcGVyc29uVHlwZTogcGVyc29uVHlwZSA/PyBQZXJzb25UeXBlcy5OT05FLFxuICAgICAgcGVyc29uSXNTdWJzY3JpYmVyOiBwZXJzb25Jc1N1YnNjcmliZXIgPz8gZmFsc2UsXG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5jcmVhdGVXaXNobGlzdExvZyhXaXNobGlzdExvZ1R5cGUuVVBEQVRFLCBkYXRhIGFzIFdpc2hsaXN0KVxuXG4gICAgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LnVwZGF0ZShkYXRhKVxuICB9XG5cbiAgYXN5bmMgZGVsZXRlKHdpc2hsaXN0SWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHdpc2hsaXN0ID0gYXdhaXQgdGhpcy5maW5kQnlJZCh3aXNobGlzdElkKVxuICAgIGF3YWl0IHRoaXMuY3JlYXRlV2lzaGxpc3RMb2coV2lzaGxpc3RMb2dUeXBlLkRFTEVURSwgd2lzaGxpc3QpXG5cbiAgICByZXR1cm4gdGhpcy53aXNobGlzdFJlcG9zaXRvcnkuZGVsZXRlKHsgaWQ6IHdpc2hsaXN0SWQgfSlcbiAgfVxuXG4gIGdldFdpc2hsaXN0QnlTbHVnKHNsdWc6IHN0cmluZyk6IFByb21pc2U8V2lzaGxpc3Q+IHtcbiAgICBjb25zdCBbaWRdID0gc2x1Zy5zcGxpdCgnLScpXG5cbiAgICBpZiAoK2lkKSByZXR1cm4gdGhpcy53aXNobGlzdFJlcG9zaXRvcnkuZ2V0KHsgaWQgfSlcblxuICAgIHJldHVybiB0aGlzLndpc2hsaXN0UmVwb3NpdG9yeS5nZXRXaXNobGlzdEJ5U2x1ZyhzbHVnKVxuICB9XG5cbiAgZ2V0V2lzaGxpc3RzQnlQZXJzb24ocGVyc29uSWQ6IHN0cmluZyk6IFByb21pc2U8V2lzaGxpc3RbXT4ge1xuICAgIHJldHVybiB0aGlzLndpc2hsaXN0UmVwb3NpdG9yeS5nZXRXaXNobGlzdEJ5UGVyc29uKHBlcnNvbklkKVxuICB9XG5cbiAgYXN5bmMgYWRkUHJvZHVjdCh3aXNobGlzdElkOiBzdHJpbmcsIHByb2R1Y3RJZDogc3RyaW5nKTogUHJvbWlzZTxXaXNobGlzdD4ge1xuICAgIGNvbnN0IHdpc2hsaXN0ID0gYXdhaXQgdGhpcy53aXNobGlzdFJlcG9zaXRvcnkuZ2V0KHsgaWQ6IHdpc2hsaXN0SWQgfSlcbiAgICBjb25zdCBoYXNQcm9kdWN0ID0gd2lzaGxpc3QucHJvZHVjdHMuc29tZSgocCkgPT4gcCA9PSBwcm9kdWN0SWQpXG5cbiAgICBjb25zdCB3aXNobGlzdERhdGEgPSBhd2FpdCB0aGlzLmZpbmRCeUlkKHdpc2hsaXN0SWQpXG4gICAgY29uc3QgcHJvZHVjdERhdGEgPSBhd2FpdCB0aGlzLmZpbmRQcm9kdWN0QnlJZChwcm9kdWN0SWQpXG4gICAgYXdhaXQgdGhpcy5jcmVhdGVXaXNobGlzdExvZyhXaXNobGlzdExvZ1R5cGUuQUREX1BST0RVQ1QsIHdpc2hsaXN0RGF0YSwgcHJvZHVjdERhdGEpXG5cbiAgICBpZiAoIWhhc1Byb2R1Y3QpIHtcbiAgICAgIHdpc2hsaXN0LnByb2R1Y3RzID0gWy4uLndpc2hsaXN0LnByb2R1Y3RzLCBwcm9kdWN0SWRdXG4gICAgICBhd2FpdCB0aGlzLndpc2hsaXN0UmVwb3NpdG9yeS5hZGRQcm9kdWN0KHdpc2hsaXN0SWQsIHByb2R1Y3RJZClcbiAgICB9XG5cbiAgICByZXR1cm4gd2lzaGxpc3RcbiAgfVxuXG4gIGFzeW5jIHJlbW92ZVByb2R1Y3Qod2lzaGxpc3RJZDogc3RyaW5nLCBwcm9kdWN0SWQ6IHN0cmluZyk6IFByb21pc2U8V2lzaGxpc3Q+IHtcbiAgICBjb25zdCB3aXNobGlzdCA9IGF3YWl0IHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LmdldCh7IGlkOiB3aXNobGlzdElkIH0pXG4gICAgY29uc3QgcHJvZHVjdEluZGV4ID0gd2lzaGxpc3QucHJvZHVjdHMuZmluZEluZGV4KChwKSA9PiBwID09IHByb2R1Y3RJZClcblxuICAgIGlmIChwcm9kdWN0SW5kZXggIT0gLTEpIHtcbiAgICAgIHdpc2hsaXN0LnByb2R1Y3RzLnNwbGljZShwcm9kdWN0SW5kZXgsIDEpXG4gICAgICBjb25zdCB3aXNobGlzdERhdGEgPSBhd2FpdCB0aGlzLmZpbmRCeUlkKHdpc2hsaXN0SWQpXG4gICAgICBjb25zdCBwcm9kdWN0RGF0YSA9IGF3YWl0IHRoaXMuZmluZFByb2R1Y3RCeUlkKHByb2R1Y3RJZClcbiAgICAgIGF3YWl0IHRoaXMuY3JlYXRlV2lzaGxpc3RMb2coV2lzaGxpc3RMb2dUeXBlLlJFTU9WRV9QUk9EVUNULCB3aXNobGlzdERhdGEsIHByb2R1Y3REYXRhKVxuICAgICAgYXdhaXQgdGhpcy53aXNobGlzdFJlcG9zaXRvcnkucmVtb3ZlUHJvZHVjdCh3aXNobGlzdElkLCBwcm9kdWN0SWQpXG4gICAgfVxuXG4gICAgcmV0dXJuIHdpc2hsaXN0XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGZpbmRCeUlkKGlkOiBzdHJpbmcpOiBQcm9taXNlPFdpc2hsaXN0PiB7XG4gICAgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5XG4gICAgICAuZmluZCh7XG4gICAgICAgIGZpZWxkczogWydpZCcsICduYW1lJywgJ2Rlc2NyaXB0aW9uJywgJ3BlcnNvbklkJywgJ3BlcnNvbklzU3Vic2NyaWJlcicsICdwZXJzb25UeXBlJywgJ3BlcnNvbk5hbWUnXSxcbiAgICAgICAgZmlsdGVyczoge1xuICAgICAgICAgIGlkLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC50aGVuKChyZXMpID0+IHJlcy5kYXRhLmF0KDApKVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmaW5kUHJvZHVjdEJ5SWQoaWQ6IHN0cmluZyk6IFByb21pc2U8UHJvZHVjdD4ge1xuICAgIHJldHVybiB0aGlzLnByb2R1Y3RSZXBvc2l0b3J5XG4gICAgICAuZmluZCh7XG4gICAgICAgIGZpZWxkczogWydpZCcsICdza3UnLCAnRUFOJywgJ25hbWUnLCAnYnJhbmQnXSxcbiAgICAgICAgZmlsdGVyczoge1xuICAgICAgICAgIGlkLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC50aGVuKChyZXMpID0+IHJlcy5kYXRhLmF0KDApKVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVXaXNobGlzdExvZyh0eXBlOiBXaXNobGlzdExvZ1R5cGUsIHdpc2hsaXN0OiBXaXNobGlzdCwgcHJvZHVjdD86IFByb2R1Y3QpIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgV2lzaGxpc3RMb2dUeXBlLkNSRUFURTpcbiAgICAgIGNhc2UgV2lzaGxpc3RMb2dUeXBlLlVQREFURTpcbiAgICAgIGNhc2UgV2lzaGxpc3RMb2dUeXBlLkRFTEVURTpcbiAgICAgICAgYXdhaXQgdGhpcy5sb2dSZXBvc2l0b3J5LmNyZWF0ZSh7XG4gICAgICAgICAgY29sbGVjdGlvbjogJ3dpc2hsaXN0JyxcbiAgICAgICAgICBkYXRlOiBuZXcgRGF0ZSgpLFxuICAgICAgICAgIG9wZXJhdGlvbjogV2lzaGxpc3RMb2dUeXBlLkNSRUFURSA/ICdDUkVBVEUnIDogV2lzaGxpc3RMb2dUeXBlLlVQREFURSA/ICdVUERBVEUnIDogJ0RFTEVURScsXG4gICAgICAgICAgZG9jdW1lbnRJZDogd2lzaGxpc3QuaWQsXG4gICAgICAgICAgZG9jdW1lbnQ6IHtcbiAgICAgICAgICAgIGlkOiB3aXNobGlzdC5pZCxcbiAgICAgICAgICAgIHNob3A6IHRoaXMuc2hvcCxcbiAgICAgICAgICAgIG5hbWU6IHdpc2hsaXN0Lm5hbWUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogd2lzaGxpc3QuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICBwdWJsaXNoZWQ6IHdpc2hsaXN0LnB1Ymxpc2hlZCxcbiAgICAgICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgICAgICBwZXJzb25UeXBlOiB3aXNobGlzdC5wZXJzb25UeXBlLFxuICAgICAgICAgICAgcGVyc29uSWQ6IHdpc2hsaXN0LnBlcnNvbklkLFxuICAgICAgICAgICAgcGVyc29uTmFtZTogd2lzaGxpc3QucGVyc29uTmFtZSxcbiAgICAgICAgICAgIHBlcnNvbklzU3Vic2NyaWJlcjogd2lzaGxpc3QucGVyc29uSXNTdWJzY3JpYmVyLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgV2lzaGxpc3RMb2dUeXBlLkFERF9QUk9EVUNUOlxuICAgICAgY2FzZSBXaXNobGlzdExvZ1R5cGUuUkVNT1ZFX1BST0RVQ1Q6XG4gICAgICAgIGF3YWl0IHRoaXMubG9nUmVwb3NpdG9yeS5jcmVhdGUoe1xuICAgICAgICAgIGNvbGxlY3Rpb246ICd3aXNobGlzdCcsXG4gICAgICAgICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICAgICAgICBvcGVyYXRpb246ICdVUERBVEUnLFxuICAgICAgICAgIGRvY3VtZW50SWQ6IHdpc2hsaXN0LmlkLFxuICAgICAgICAgIGRvY3VtZW50OiB7XG4gICAgICAgICAgICBpZDogd2lzaGxpc3QuaWQsXG4gICAgICAgICAgICBzaG9wOiB0aGlzLnNob3AsXG4gICAgICAgICAgICBuYW1lOiB3aXNobGlzdC5uYW1lLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHdpc2hsaXN0LmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgcHVibGlzaGVkOiB3aXNobGlzdC5wdWJsaXNoZWQsXG4gICAgICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICAgICAgcGVyc29uVHlwZTogd2lzaGxpc3QucGVyc29uVHlwZSxcbiAgICAgICAgICAgIHBlcnNvbklkOiB3aXNobGlzdC5wZXJzb25JZCxcbiAgICAgICAgICAgIHBlcnNvbk5hbWU6IHdpc2hsaXN0LnBlcnNvbk5hbWUsXG4gICAgICAgICAgICBwZXJzb25Jc1N1YnNjcmliZXI6IHdpc2hsaXN0LnBlcnNvbklzU3Vic2NyaWJlcixcbiAgICAgICAgICAgIHByb2R1Y3RJZDogcHJvZHVjdC5pZCxcbiAgICAgICAgICAgIHByb2R1Y3RFQU46IHByb2R1Y3QuRUFOLFxuICAgICAgICAgICAgcHJvZHVjdFNLVTogcHJvZHVjdC5za3UsXG4gICAgICAgICAgICBwcm9kdWN0TmFtZTogcHJvZHVjdC5uYW1lLFxuICAgICAgICAgICAgcHJvZHVjdEJyYW5kOiBwcm9kdWN0LmJyYW5kLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrXG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,50 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { CheckoutSubscription, CheckoutTypes, isNil, pick, } from '@infrab4a/connect';
3
- import { concatMap } from 'rxjs/operators';
4
- import { PERSISTENCE_PROVIDER } from '../consts';
5
- import { CouponService } from './coupon.service';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "./coupon.service";
8
- export class CheckoutSubscriptionService {
9
- constructor(checkoutSubscriptionRepository, dataPersistence, couponService) {
10
- this.checkoutSubscriptionRepository = checkoutSubscriptionRepository;
11
- this.dataPersistence = dataPersistence;
12
- this.couponService = couponService;
13
- }
14
- getCheckoutSubscription(checkoutData) {
15
- return this.dataPersistence
16
- .get('checkoutSubscriptionId')
17
- .pipe(concatMap((id) => !isNil(id) ? this.checkoutSubscriptionRepository.get({ id }) : this.createCheckoutSubscription(checkoutData)));
18
- }
19
- clearCheckoutSubscriptionFromSession() {
20
- return this.dataPersistence.remove('checkoutSubscriptionId');
21
- }
22
- checkCoupon(nickname, userEmail) {
23
- return this.getCheckoutSubscription().pipe(concatMap((checkout) => this.couponService
24
- .checkCoupon(nickname, CheckoutTypes.SUBSCRIPTION, checkout, checkout.subscriptionPlan.name)
25
- .pipe()));
26
- }
27
- calcDiscountSubscription(coupon) {
28
- return this.getCheckoutSubscription().pipe(concatMap((checkout) => this.couponService.calcDiscountSubscription(coupon, checkout).pipe()));
29
- }
30
- async createCheckoutSubscription(checkoutData) {
31
- const checkout = await this.checkoutSubscriptionRepository.create({
32
- createdAt: new Date(),
33
- ...CheckoutSubscription.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),
34
- });
35
- await this.dataPersistence.set('checkoutSubscriptionId', checkout.id).toPromise();
36
- return checkout;
37
- }
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CheckoutSubscriptionService, deps: [{ token: 'CheckoutSubscriptionRepository' }, { token: PERSISTENCE_PROVIDER }, { token: i1.CouponService }], target: i0.ɵɵFactoryTarget.Injectable }); }
39
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CheckoutSubscriptionService }); }
40
- }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CheckoutSubscriptionService, decorators: [{
42
- type: Injectable
43
- }], ctorParameters: () => [{ type: undefined, decorators: [{
44
- type: Inject,
45
- args: ['CheckoutSubscriptionRepository']
46
- }] }, { type: undefined, decorators: [{
47
- type: Inject,
48
- args: [PERSISTENCE_PROVIDER]
49
- }] }, { type: i1.CouponService }] });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQtc3Vic2NyaXB0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NoZWNrb3V0LXN1YnNjcmlwdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFDTCxvQkFBb0IsRUFFcEIsYUFBYSxFQUViLEtBQUssRUFDTCxJQUFJLEdBQ0wsTUFBTSxtQkFBbUIsQ0FBQTtBQUUxQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHMUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFBO0FBRWhELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTs7O0FBR2hELE1BQU0sT0FBTywyQkFBMkI7SUFDdEMsWUFFbUIsOEJBQThELEVBQ2hDLGVBQWdDLEVBQzlELGFBQTRCO1FBRjVCLG1DQUE4QixHQUE5Qiw4QkFBOEIsQ0FBZ0M7UUFDaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQzlELGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQzVDLENBQUM7SUFFSix1QkFBdUIsQ0FBQyxZQUErQztRQUNyRSxPQUFPLElBQUksQ0FBQyxlQUFlO2FBQ3hCLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQzthQUM3QixJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FDZixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxZQUFZLENBQUMsQ0FDN0csQ0FDRixDQUFBO0lBQ0wsQ0FBQztJQUVELG9DQUFvQztRQUNsQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUE7SUFDOUQsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFnQixFQUFFLFNBQWlCO1FBQzdDLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsSUFBSSxDQUN4QyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUNyQixJQUFJLENBQUMsYUFBYTthQUNmLFdBQVcsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQzthQUMzRixJQUFJLEVBQUUsQ0FDVixDQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsTUFBYztRQUNyQyxPQUFPLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLElBQUksQ0FDeEMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUM5RixDQUFBO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQywwQkFBMEIsQ0FDdEMsWUFBK0M7UUFFL0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsOEJBQThCLENBQUMsTUFBTSxDQUFDO1lBQ2hFLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRTtZQUNyQixHQUFHLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUU7U0FDbkYsQ0FBQyxDQUFBO1FBRUYsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUE7UUFFakYsT0FBTyxRQUFRLENBQUE7SUFDakIsQ0FBQzs4R0FqRFUsMkJBQTJCLGtCQUU1QixnQ0FBZ0MsYUFFaEMsb0JBQW9CO2tIQUpuQiwyQkFBMkI7OzJGQUEzQiwyQkFBMkI7a0JBRHZDLFVBQVU7OzBCQUdOLE1BQU07MkJBQUMsZ0NBQWdDOzswQkFFdkMsTUFBTTsyQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQ2hlY2tvdXRTdWJzY3JpcHRpb24sXG4gIENoZWNrb3V0U3Vic2NyaXB0aW9uUmVwb3NpdG9yeSxcbiAgQ2hlY2tvdXRUeXBlcyxcbiAgQ291cG9uLFxuICBpc05pbCxcbiAgcGljayxcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGNvbmNhdE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgUmVxdWlyZWRDaGVja291dFN1YnNjcmlwdGlvbkRhdGEgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBQRVJTSVNURU5DRV9QUk9WSURFUiB9IGZyb20gJy4uL2NvbnN0cydcbmltcG9ydCB7IERhdGFQZXJzaXN0ZW5jZSB9IGZyb20gJy4uL3BlcnNpc3RlbmNlJ1xuaW1wb3J0IHsgQ291cG9uU2VydmljZSB9IGZyb20gJy4vY291cG9uLnNlcnZpY2UnXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDaGVja291dFN1YnNjcmlwdGlvblNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KCdDaGVja291dFN1YnNjcmlwdGlvblJlcG9zaXRvcnknKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5OiBDaGVja291dFN1YnNjcmlwdGlvblJlcG9zaXRvcnksXG4gICAgQEluamVjdChQRVJTSVNURU5DRV9QUk9WSURFUikgcHJpdmF0ZSByZWFkb25seSBkYXRhUGVyc2lzdGVuY2U6IERhdGFQZXJzaXN0ZW5jZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvdXBvblNlcnZpY2U6IENvdXBvblNlcnZpY2UsXG4gICkge31cblxuICBnZXRDaGVja291dFN1YnNjcmlwdGlvbihjaGVja291dERhdGE/OiBSZXF1aXJlZENoZWNrb3V0U3Vic2NyaXB0aW9uRGF0YSk6IE9ic2VydmFibGU8Q2hlY2tvdXRTdWJzY3JpcHRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhUGVyc2lzdGVuY2VcbiAgICAgIC5nZXQoJ2NoZWNrb3V0U3Vic2NyaXB0aW9uSWQnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNvbmNhdE1hcCgoaWQpID0+XG4gICAgICAgICAgIWlzTmlsKGlkKSA/IHRoaXMuY2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5LmdldCh7IGlkIH0pIDogdGhpcy5jcmVhdGVDaGVja291dFN1YnNjcmlwdGlvbihjaGVja291dERhdGEpLFxuICAgICAgICApLFxuICAgICAgKVxuICB9XG5cbiAgY2xlYXJDaGVja291dFN1YnNjcmlwdGlvbkZyb21TZXNzaW9uKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFQZXJzaXN0ZW5jZS5yZW1vdmUoJ2NoZWNrb3V0U3Vic2NyaXB0aW9uSWQnKVxuICB9XG5cbiAgY2hlY2tDb3Vwb24obmlja25hbWU6IHN0cmluZywgdXNlckVtYWlsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPENvdXBvbj4ge1xuICAgIHJldHVybiB0aGlzLmdldENoZWNrb3V0U3Vic2NyaXB0aW9uKCkucGlwZShcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+XG4gICAgICAgIHRoaXMuY291cG9uU2VydmljZVxuICAgICAgICAgIC5jaGVja0NvdXBvbihuaWNrbmFtZSwgQ2hlY2tvdXRUeXBlcy5TVUJTQ1JJUFRJT04sIGNoZWNrb3V0LCBjaGVja291dC5zdWJzY3JpcHRpb25QbGFuLm5hbWUpXG4gICAgICAgICAgLnBpcGUoKSxcbiAgICAgICksXG4gICAgKVxuICB9XG5cbiAgY2FsY0Rpc2NvdW50U3Vic2NyaXB0aW9uKGNvdXBvbjogQ291cG9uKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXRTdWJzY3JpcHRpb24oKS5waXBlKFxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT4gdGhpcy5jb3Vwb25TZXJ2aWNlLmNhbGNEaXNjb3VudFN1YnNjcmlwdGlvbihjb3Vwb24sIGNoZWNrb3V0KS5waXBlKCkpLFxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlQ2hlY2tvdXRTdWJzY3JpcHRpb24oXG4gICAgY2hlY2tvdXREYXRhPzogUmVxdWlyZWRDaGVja291dFN1YnNjcmlwdGlvbkRhdGEsXG4gICk6IFByb21pc2U8Q2hlY2tvdXRTdWJzY3JpcHRpb24+IHtcbiAgICBjb25zdCBjaGVja291dCA9IGF3YWl0IHRoaXMuY2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5LmNyZWF0ZSh7XG4gICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAuLi5DaGVja291dFN1YnNjcmlwdGlvbi50b0luc3RhbmNlKHBpY2soY2hlY2tvdXREYXRhLCBbJ3VzZXInLCAnc2hvcCddKSkudG9QbGFpbigpLFxuICAgIH0pXG5cbiAgICBhd2FpdCB0aGlzLmRhdGFQZXJzaXN0ZW5jZS5zZXQoJ2NoZWNrb3V0U3Vic2NyaXB0aW9uSWQnLCBjaGVja291dC5pZCkudG9Qcm9taXNlKClcblxuICAgIHJldHVybiBjaGVja291dFxuICB9XG59XG4iXX0=
@@ -1,122 +0,0 @@
1
- import { HttpClient } from '@angular/common/http';
2
- import { Inject, Injectable } from '@angular/core';
3
- import { Checkout, isNil, NotFoundError, pick, Shops, } from '@infrab4a/connect';
4
- import { from, of, throwError } from 'rxjs';
5
- import { concatMap, map } from 'rxjs/operators';
6
- import { DEFAULT_SHOP, FIREBASE_OPTIONS, PERSISTENCE_PROVIDER } from '../consts';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/common/http";
9
- import * as i2 from "@infrab4a/connect";
10
- export class CheckoutService {
11
- constructor(checkoutRepository, userRepository, defaultShop, dataPersistence, firebaseOptions, http) {
12
- this.checkoutRepository = checkoutRepository;
13
- this.userRepository = userRepository;
14
- this.defaultShop = defaultShop;
15
- this.dataPersistence = dataPersistence;
16
- this.firebaseOptions = firebaseOptions;
17
- this.http = http;
18
- this.checkoutUrl = null;
19
- this.checkoutUrl = `https://southamerica-east1-${this.firebaseOptions.projectId}.cloudfunctions.net`;
20
- }
21
- getCheckout(checkoutData) {
22
- return this.dataPersistence
23
- .get('checkoutId')
24
- .pipe(concatMap((id) => (!isNil(id) ? this.checkoutRepository.get({ id }) : this.createCheckout(checkoutData))));
25
- }
26
- getUserByCheckout(checkoutId) {
27
- return from(this.checkoutRepository.get({ id: checkoutId })).pipe(concatMap((checkout) => checkout?.user?.id ? of(checkout.user) : from(this.userRepository.get({ id: checkout.user.id }))), concatMap((user) => of(user) || throwError(() => new NotFoundError('User is not found'))));
28
- }
29
- updateCheckoutLineItems(checkout) {
30
- return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })));
31
- }
32
- updateCheckoutUser(checkout) {
33
- return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })));
34
- }
35
- clearCheckoutFromSession() {
36
- return this.dataPersistence.remove('checkoutId');
37
- }
38
- resetCheckoutValues() {
39
- return this.getCheckout().pipe(concatMap((checkout) => this.http.post(`${this.checkoutUrl}/checkoutResetValues`, {
40
- checkoutId: checkout.id,
41
- })), concatMap(() => this.getCheckout()));
42
- }
43
- applyCouponDiscount(nickname, checkoutType) {
44
- return this.getCheckout().pipe(concatMap((checkout) => this.http.post(`${this.checkoutUrl}/checkoutApplyDiscount`, {
45
- checkoutId: checkout.id,
46
- coupon: nickname,
47
- checkoutType,
48
- })), concatMap(() => this.getCheckout()), map((checkout) => checkout.coupon));
49
- }
50
- removeCouponDiscount() {
51
- return this.getCheckout().pipe(concatMap((checkout) => this.http.post(`${this.checkoutUrl}/checkoutRemoveDiscount`, {
52
- checkoutId: checkout.id,
53
- })), concatMap(() => this.getCheckout()));
54
- }
55
- validateStockProducts() {
56
- return this.getCheckout().pipe(concatMap((checkout) => this.http.post(`${this.checkoutUrl}/checkoutValidateProductStock`, {
57
- checkoutId: checkout.id,
58
- })));
59
- }
60
- selectShippingAddress(address) {
61
- return this.getCheckout().pipe(concatMap((checkout) => {
62
- return this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, shippingAddress: address, billingAddress: address }));
63
- }));
64
- }
65
- getAvailableShippingForProduct(productShipping) {
66
- return this.http.post(`${this.checkoutUrl}/checkoutGetAvailableShipping`, {
67
- checkoutId: null,
68
- productShipping,
69
- });
70
- }
71
- getAvailableShippingForCheckout() {
72
- return this.getCheckout().pipe(concatMap((checkout) => this.http.post(`${this.checkoutUrl}/checkoutGetAvailableShipping`, {
73
- checkoutId: checkout.id,
74
- productShipping: null,
75
- })));
76
- }
77
- selectShipping(option) {
78
- return this.getCheckout().pipe(concatMap((checkout) => this.http.post(`${this.checkoutUrl}/checkoutSelectShipping`, {
79
- checkoutId: checkout.id,
80
- shippingOption: option,
81
- })), concatMap(() => this.getCheckout()));
82
- }
83
- createOrder(checkoutPayload, paymentProvider, applicationVersion) {
84
- return this.http.post(`${this.checkoutUrl}/checkout`, {
85
- data: {
86
- ...checkoutPayload,
87
- applicationVersion,
88
- paymentProvider,
89
- },
90
- });
91
- }
92
- async createCheckout(checkoutData) {
93
- const checkout = await this.checkoutRepository.create({
94
- createdAt: new Date(),
95
- ...Checkout.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),
96
- shop: checkoutData?.shop || this.defaultShop,
97
- });
98
- await this.dataPersistence.set('checkoutId', checkout.id).toPromise();
99
- return checkout;
100
- }
101
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CheckoutService, deps: [{ token: 'CheckoutRepository' }, { token: 'UserRepository' }, { token: DEFAULT_SHOP }, { token: PERSISTENCE_PROVIDER }, { token: FIREBASE_OPTIONS }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
102
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CheckoutService }); }
103
- }
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CheckoutService, decorators: [{
105
- type: Injectable
106
- }], ctorParameters: () => [{ type: undefined, decorators: [{
107
- type: Inject,
108
- args: ['CheckoutRepository']
109
- }] }, { type: undefined, decorators: [{
110
- type: Inject,
111
- args: ['UserRepository']
112
- }] }, { type: i2.Shops, decorators: [{
113
- type: Inject,
114
- args: [DEFAULT_SHOP]
115
- }] }, { type: undefined, decorators: [{
116
- type: Inject,
117
- args: [PERSISTENCE_PROVIDER]
118
- }] }, { type: undefined, decorators: [{
119
- type: Inject,
120
- args: [FIREBASE_OPTIONS]
121
- }] }, { type: i1.HttpClient }] });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2hlY2tvdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFbEQsT0FBTyxFQUNMLFFBQVEsRUFPUixLQUFLLEVBQ0wsYUFBYSxFQUNiLElBQUksRUFHSixLQUFLLEdBSU4sTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFBOzs7O0FBTWhGLE1BQU0sT0FBTyxlQUFlO0lBRzFCLFlBQ2lELGtCQUFzQyxFQUMxQyxjQUE4QixFQUNsQyxXQUFrQixFQUNWLGVBQWdDLEVBQ3BDLGVBQWdDLEVBQ25FLElBQWdCO1FBTHVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDMUMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQ2xDLGdCQUFXLEdBQVgsV0FBVyxDQUFPO1FBQ1Ysb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ3BDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNuRSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBUmxCLGdCQUFXLEdBQVcsSUFBSSxDQUFBO1FBVWhDLElBQUksQ0FBQyxXQUFXLEdBQUcsOEJBQThCLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxxQkFBcUIsQ0FBQTtJQUN0RyxDQUFDO0lB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Q2xCLGVBQWU7YUFDaEI7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBRU8sS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFtQztRQUM5RCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUM7WUFDcEQsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFO1lBQ3JCLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUU7WUFDdEUsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVc7U0FDN0MsQ0FBQyxDQUFBO1FBRUYsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBRXJFLE9BQU8sUUFBUSxDQUFBO0lBQ2pCLENBQUM7OEdBM0pVLGVBQWUsa0JBSWhCLG9CQUFvQixhQUNwQixnQkFBZ0IsYUFDaEIsWUFBWSxhQUNaLG9CQUFvQixhQUNwQixnQkFBZ0I7a0hBUmYsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7MEJBS04sTUFBTTsyQkFBQyxvQkFBb0I7OzBCQUMzQixNQUFNOzJCQUFDLGdCQUFnQjs7MEJBQ3ZCLE1BQU07MkJBQUMsWUFBWTs7MEJBQ25CLE1BQU07MkJBQUMsb0JBQW9COzswQkFDM0IsTUFBTTsyQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRmlyZWJhc2VPcHRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hcHAnXG5pbXBvcnQge1xuICBDaGVja291dCxcbiAgQ2hlY2tvdXRQYXlsb2FkUmVxdWVzdCxcbiAgQ2hlY2tvdXRSZXBvc2l0b3J5LFxuICBDaGVja291dFJlc3BvbnNlLFxuICBDaGVja291dFN0b2NrVmFsaWRhdGlvbixcbiAgQ2hlY2tvdXRUeXBlcyxcbiAgQ291cG9uLFxuICBpc05pbCxcbiAgTm90Rm91bmRFcnJvcixcbiAgcGljayxcbiAgU2hpcHBpbmdNZXRob2RSZXNwb25zZSxcbiAgU2hpcHBpbmdQcm9kdWN0UmVxdWVzdCxcbiAgU2hvcHMsXG4gIFVzZXIsXG4gIFVzZXJBZGRyZXNzLFxuICBVc2VyUmVwb3NpdG9yeSxcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBjb25jYXRNYXAsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBERUZBVUxUX1NIT1AsIEZJUkVCQVNFX09QVElPTlMsIFBFUlNJU1RFTkNFX1BST1ZJREVSIH0gZnJvbSAnLi4vY29uc3RzJ1xuXG5pbXBvcnQgeyBEYXRhUGVyc2lzdGVuY2UgfSBmcm9tICcuLi9wZXJzaXN0ZW5jZSdcbmltcG9ydCB7IFJlcXVpcmVkQ2hlY2tvdXREYXRhIH0gZnJvbSAnLi90eXBlcydcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENoZWNrb3V0U2VydmljZSB7XG4gIHByaXZhdGUgY2hlY2tvdXRVcmw6IHN0cmluZyA9IG51bGxcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KCdDaGVja291dFJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IGNoZWNrb3V0UmVwb3NpdG9yeTogQ2hlY2tvdXRSZXBvc2l0b3J5LFxuICAgIEBJbmplY3QoJ1VzZXJSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSB1c2VyUmVwb3NpdG9yeTogVXNlclJlcG9zaXRvcnksXG4gICAgQEluamVjdChERUZBVUxUX1NIT1ApIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFNob3A6IFNob3BzLFxuICAgIEBJbmplY3QoUEVSU0lTVEVOQ0VfUFJPVklERVIpIHByaXZhdGUgcmVhZG9ubHkgZGF0YVBlcnNpc3RlbmNlOiBEYXRhUGVyc2lzdGVuY2UsXG4gICAgQEluamVjdChGSVJFQkFTRV9PUFRJT05TKSBwcml2YXRlIHJlYWRvbmx5IGZpcmViYXNlT3B0aW9uczogRmlyZWJhc2VPcHRpb25zLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgKSB7XG4gICAgdGhpcy5jaGVja291dFVybCA9IGBodHRwczovL3NvdXRoYW1lcmljYS1lYXN0MS0ke3RoaXMuZmlyZWJhc2VPcHRpb25zLnByb2plY3RJZH0uY2xvdWRmdW5jdGlvbnMubmV0YFxuICB9XG5cbiAgZ2V0Q2hlY2tvdXQoY2hlY2tvdXREYXRhPzogUmVxdWlyZWRDaGVja291dERhdGEpOiBPYnNlcnZhYmxlPENoZWNrb3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVBlcnNpc3RlbmNlXG4gICAgICAuZ2V0KCdjaGVja291dElkJylcbiAgICAgIC5waXBlKGNvbmNhdE1hcCgoaWQpID0+ICghaXNOaWwoaWQpID8gdGhpcy5jaGVja291dFJlcG9zaXRvcnkuZ2V0KHsgaWQgfSkgOiB0aGlzLmNyZWF0ZUNoZWNrb3V0KGNoZWNrb3V0RGF0YSkpKSlcbiAgfVxuXG4gIGdldFVzZXJCeUNoZWNrb3V0KGNoZWNrb3V0SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlcj4ge1xuICAgIHJldHVybiBmcm9tKHRoaXMuY2hlY2tvdXRSZXBvc2l0b3J5LmdldCh7IGlkOiBjaGVja291dElkIH0pKS5waXBlKFxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT5cbiAgICAgICAgY2hlY2tvdXQ/LnVzZXI/LmlkID8gb2YoY2hlY2tvdXQudXNlcikgOiBmcm9tKHRoaXMudXNlclJlcG9zaXRvcnkuZ2V0KHsgaWQ6IGNoZWNrb3V0LnVzZXIuaWQgfSkpLFxuICAgICAgKSxcbiAgICAgIGNvbmNhdE1hcCgodXNlcikgPT4gb2YodXNlcikgfHwgdGhyb3dFcnJvcigoKSA9PiBuZXcgTm90Rm91bmRFcnJvcignVXNlciBpcyBub3QgZm91bmQnKSkpLFxuICAgIClcbiAgfVxuXG4gIHVwZGF0ZUNoZWNrb3V0TGluZUl0ZW1zKGNoZWNrb3V0OiBQYXJ0aWFsPENoZWNrb3V0Pik6IE9ic2VydmFibGU8Q2hlY2tvdXQ+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLmNoZWNrb3V0UmVwb3NpdG9yeS51cGRhdGUoQ2hlY2tvdXQudG9JbnN0YW5jZSh7IGlkOiBjaGVja291dC5pZCwgbGluZUl0ZW1zOiBjaGVja291dC5saW5lSXRlbXMgfSkpKVxuICB9XG5cbiAgdXBkYXRlQ2hlY2tvdXRVc2VyKGNoZWNrb3V0OiBQYXJ0aWFsPENoZWNrb3V0Pik6IE9ic2VydmFibGU8Q2hlY2tvdXQ+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLmNoZWNrb3V0UmVwb3NpdG9yeS51cGRhdGUoQ2hlY2tvdXQudG9JbnN0YW5jZSh7IGlkOiBjaGVja291dC5pZCwgdXNlcjogY2hlY2tvdXQudXNlciB9KSkpXG4gIH1cblxuICBjbGVhckNoZWNrb3V0RnJvbVNlc3Npb24oKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVBlcnNpc3RlbmNlLnJlbW92ZSgnY2hlY2tvdXRJZCcpXG4gIH1cblxuICByZXNldENoZWNrb3V0VmFsdWVzKCk6IE9ic2VydmFibGU8Q2hlY2tvdXQ+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRDaGVja291dCgpLnBpcGUoXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0KSA9PlxuICAgICAgICB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmNoZWNrb3V0VXJsfS9jaGVja291dFJlc2V0VmFsdWVzYCwge1xuICAgICAgICAgIGNoZWNrb3V0SWQ6IGNoZWNrb3V0LmlkLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICBjb25jYXRNYXAoKCkgPT4gdGhpcy5nZXRDaGVja291dCgpKSxcbiAgICApXG4gIH1cblxuICBhcHBseUNvdXBvbkRpc2NvdW50KG5pY2tuYW1lOiBzdHJpbmcsIGNoZWNrb3V0VHlwZTogQ2hlY2tvdXRUeXBlcyk6IE9ic2VydmFibGU8Q291cG9uPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXQoKS5waXBlKFxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT5cbiAgICAgICAgdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5jaGVja291dFVybH0vY2hlY2tvdXRBcHBseURpc2NvdW50YCwge1xuICAgICAgICAgIGNoZWNrb3V0SWQ6IGNoZWNrb3V0LmlkLFxuICAgICAgICAgIGNvdXBvbjogbmlja25hbWUsXG4gICAgICAgICAgY2hlY2tvdXRUeXBlLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICBjb25jYXRNYXAoKCkgPT4gdGhpcy5nZXRDaGVja291dCgpKSxcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IGNoZWNrb3V0LmNvdXBvbiksXG4gICAgKVxuICB9XG5cbiAgcmVtb3ZlQ291cG9uRGlzY291bnQoKTogT2JzZXJ2YWJsZTxDaGVja291dD4ge1xuICAgIHJldHVybiB0aGlzLmdldENoZWNrb3V0KCkucGlwZShcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+XG4gICAgICAgIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuY2hlY2tvdXRVcmx9L2NoZWNrb3V0UmVtb3ZlRGlzY291bnRgLCB7XG4gICAgICAgICAgY2hlY2tvdXRJZDogY2hlY2tvdXQuaWQsXG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICAgIGNvbmNhdE1hcCgoKSA9PiB0aGlzLmdldENoZWNrb3V0KCkpLFxuICAgIClcbiAgfVxuXG4gIHZhbGlkYXRlU3RvY2tQcm9kdWN0cygpOiBPYnNlcnZhYmxlPENoZWNrb3V0U3RvY2tWYWxpZGF0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXQoKS5waXBlKFxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT5cbiAgICAgICAgdGhpcy5odHRwLnBvc3Q8e1xuICAgICAgICAgIHZhbGlkOiBib29sZWFuXG4gICAgICAgICAgb3V0T2ZTdG9jazogc3RyaW5nW11cbiAgICAgICAgICBsaW1pdGVkU3RvY2s6IHN0cmluZ1tdXG4gICAgICAgIH0+KGAke3RoaXMuY2hlY2tvdXRVcmx9L2NoZWNrb3V0VmFsaWRhdGVQcm9kdWN0U3RvY2tgLCB7XG4gICAgICAgICAgY2hlY2tvdXRJZDogY2hlY2tvdXQuaWQsXG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICApXG4gIH1cblxuICBzZWxlY3RTaGlwcGluZ0FkZHJlc3MoYWRkcmVzczogVXNlckFkZHJlc3MpOiBPYnNlcnZhYmxlPENoZWNrb3V0PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXQoKS5waXBlKFxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGVja291dFJlcG9zaXRvcnkudXBkYXRlKFxuICAgICAgICAgIENoZWNrb3V0LnRvSW5zdGFuY2UoeyBpZDogY2hlY2tvdXQuaWQsIHNoaXBwaW5nQWRkcmVzczogYWRkcmVzcywgYmlsbGluZ0FkZHJlc3M6IGFkZHJlc3MgfSksXG4gICAgICAgIClcbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGdldEF2YWlsYWJsZVNoaXBwaW5nRm9yUHJvZHVjdChwcm9kdWN0U2hpcHBpbmc6IFNoaXBwaW5nUHJvZHVjdFJlcXVlc3QpOiBPYnNlcnZhYmxlPFNoaXBwaW5nTWV0aG9kUmVzcG9uc2VbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxTaGlwcGluZ01ldGhvZFJlc3BvbnNlW10+KGAke3RoaXMuY2hlY2tvdXRVcmx9L2NoZWNrb3V0R2V0QXZhaWxhYmxlU2hpcHBpbmdgLCB7XG4gICAgICBjaGVja291dElkOiBudWxsLFxuICAgICAgcHJvZHVjdFNoaXBwaW5nLFxuICAgIH0pXG4gIH1cblxuICBnZXRBdmFpbGFibGVTaGlwcGluZ0ZvckNoZWNrb3V0KCk6IE9ic2VydmFibGU8U2hpcHBpbmdNZXRob2RSZXNwb25zZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXQoKS5waXBlKFxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT5cbiAgICAgICAgdGhpcy5odHRwLnBvc3Q8U2hpcHBpbmdNZXRob2RSZXNwb25zZVtdPihgJHt0aGlzLmNoZWNrb3V0VXJsfS9jaGVja291dEdldEF2YWlsYWJsZVNoaXBwaW5nYCwge1xuICAgICAgICAgIGNoZWNrb3V0SWQ6IGNoZWNrb3V0LmlkLFxuICAgICAgICAgIHByb2R1Y3RTaGlwcGluZzogbnVsbCxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgIClcbiAgfVxuXG4gIHNlbGVjdFNoaXBwaW5nKG9wdGlvbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxDaGVja291dD4ge1xuICAgIHJldHVybiB0aGlzLmdldENoZWNrb3V0KCkucGlwZShcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+XG4gICAgICAgIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuY2hlY2tvdXRVcmx9L2NoZWNrb3V0U2VsZWN0U2hpcHBpbmdgLCB7XG4gICAgICAgICAgY2hlY2tvdXRJZDogY2hlY2tvdXQuaWQsXG4gICAgICAgICAgc2hpcHBpbmdPcHRpb246IG9wdGlvbixcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICAgY29uY2F0TWFwKCgpID0+IHRoaXMuZ2V0Q2hlY2tvdXQoKSksXG4gICAgKVxuICB9XG5cbiAgY3JlYXRlT3JkZXIoXG4gICAgY2hlY2tvdXRQYXlsb2FkOiBDaGVja291dFBheWxvYWRSZXF1ZXN0LFxuICAgIHBheW1lbnRQcm92aWRlcjogc3RyaW5nLFxuICAgIGFwcGxpY2F0aW9uVmVyc2lvbjogc3RyaW5nLFxuICApOiBPYnNlcnZhYmxlPENoZWNrb3V0UmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Q2hlY2tvdXRSZXNwb25zZT4oYCR7dGhpcy5jaGVja291dFVybH0vY2hlY2tvdXRgLCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIC4uLmNoZWNrb3V0UGF5bG9hZCxcbiAgICAgICAgYXBwbGljYXRpb25WZXJzaW9uLFxuICAgICAgICBwYXltZW50UHJvdmlkZXIsXG4gICAgICB9LFxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNyZWF0ZUNoZWNrb3V0KGNoZWNrb3V0RGF0YT86IFJlcXVpcmVkQ2hlY2tvdXREYXRhKTogUHJvbWlzZTxDaGVja291dD4ge1xuICAgIGNvbnN0IGNoZWNrb3V0ID0gYXdhaXQgdGhpcy5jaGVja291dFJlcG9zaXRvcnkuY3JlYXRlKHtcbiAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgIC4uLkNoZWNrb3V0LnRvSW5zdGFuY2UocGljayhjaGVja291dERhdGEsIFsndXNlcicsICdzaG9wJ10pKS50b1BsYWluKCksXG4gICAgICBzaG9wOiBjaGVja291dERhdGE/LnNob3AgfHwgdGhpcy5kZWZhdWx0U2hvcCxcbiAgICB9KVxuXG4gICAgYXdhaXQgdGhpcy5kYXRhUGVyc2lzdGVuY2Uuc2V0KCdjaGVja291dElkJywgY2hlY2tvdXQuaWQpLnRvUHJvbWlzZSgpXG5cbiAgICByZXR1cm4gY2hlY2tvdXRcbiAgfVxufVxuIl19