@infrab4a/connect-angular 5.7.1 → 5.7.2

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 (196) hide show
  1. package/angular-connect.module.d.ts +36 -36
  2. package/angular-elastic-search.module.d.ts +9 -9
  3. package/angular-firebase-auth.module.d.ts +11 -11
  4. package/angular-firestore.module.d.ts +17 -17
  5. package/angular-hasura-graphql.module.d.ts +14 -14
  6. package/angular-vertex-search.module.d.ts +9 -9
  7. package/consts/backend-url.const.d.ts +1 -1
  8. package/consts/category-structure.d.ts +1 -1
  9. package/consts/default-shop.const.d.ts +1 -1
  10. package/consts/es-config.const.d.ts +1 -1
  11. package/consts/firebase-const.d.ts +4 -4
  12. package/consts/hasura-options.const.d.ts +1 -1
  13. package/consts/index.d.ts +8 -8
  14. package/consts/persistence.const.d.ts +1 -1
  15. package/consts/storage-base-url.const.d.ts +1 -1
  16. package/consts/vertex-config.const.d.ts +1 -1
  17. package/esm2020/angular-connect.module.mjs +291 -291
  18. package/esm2020/angular-elastic-search.module.mjs +34 -34
  19. package/esm2020/angular-firebase-auth.module.mjs +141 -141
  20. package/esm2020/angular-firestore.module.mjs +569 -569
  21. package/esm2020/angular-hasura-graphql.module.mjs +421 -421
  22. package/esm2020/angular-vertex-search.module.mjs +34 -34
  23. package/esm2020/consts/backend-url.const.mjs +2 -2
  24. package/esm2020/consts/category-structure.mjs +2 -2
  25. package/esm2020/consts/default-shop.const.mjs +2 -2
  26. package/esm2020/consts/es-config.const.mjs +2 -2
  27. package/esm2020/consts/firebase-const.mjs +5 -5
  28. package/esm2020/consts/hasura-options.const.mjs +2 -2
  29. package/esm2020/consts/index.mjs +9 -9
  30. package/esm2020/consts/persistence.const.mjs +2 -2
  31. package/esm2020/consts/storage-base-url.const.mjs +2 -2
  32. package/esm2020/consts/vertex-config.const.mjs +2 -2
  33. package/esm2020/helpers/index.mjs +2 -2
  34. package/esm2020/helpers/mobile-operation-system-checker.helper.mjs +7 -7
  35. package/esm2020/index.mjs +7 -7
  36. package/esm2020/infrab4a-connect-angular.mjs +4 -4
  37. package/esm2020/interfaces/catalog-strategies.interface.mjs +2 -2
  38. package/esm2020/interfaces/category-facades.interface.mjs +2 -2
  39. package/esm2020/interfaces/index.mjs +3 -3
  40. package/esm2020/persistence/cookie-data-persistence.mjs +22 -22
  41. package/esm2020/persistence/data-persistence.mjs +2 -2
  42. package/esm2020/persistence/index.mjs +3 -3
  43. package/esm2020/services/auth.service.mjs +37 -37
  44. package/esm2020/services/cart/cart-services.facade.mjs +21 -21
  45. package/esm2020/services/cart/index.mjs +2 -2
  46. package/esm2020/services/cart.service.mjs +73 -73
  47. package/esm2020/services/catalog/adapters/category-structure.adapter.mjs +2 -2
  48. package/esm2020/services/catalog/adapters/index.mjs +4 -4
  49. package/esm2020/services/catalog/adapters/new-category-structure.adapter.mjs +43 -43
  50. package/esm2020/services/catalog/adapters/old-category-structure.adapter.mjs +23 -23
  51. package/esm2020/services/catalog/catalog.service.mjs +111 -111
  52. package/esm2020/services/catalog/category.service.mjs +42 -42
  53. package/esm2020/services/catalog/context/catalog-search.context.mjs +40 -40
  54. package/esm2020/services/catalog/enums/index.mjs +2 -2
  55. package/esm2020/services/catalog/enums/product-sorts.enum.mjs +11 -11
  56. package/esm2020/services/catalog/facades/catalog-service.facade.mjs +32 -32
  57. package/esm2020/services/catalog/facades/catalog-strategies.facade.mjs +17 -17
  58. package/esm2020/services/catalog/facades/category-repository.facade.mjs +20 -20
  59. package/esm2020/services/catalog/facades/category-service.facade.mjs +30 -30
  60. package/esm2020/services/catalog/facades/index.mjs +6 -6
  61. package/esm2020/services/catalog/facades/product-catalog.facade.mjs +21 -21
  62. package/esm2020/services/catalog/helpers/brand-manager.helper.mjs +62 -62
  63. package/esm2020/services/catalog/helpers/catalog-filter.helper.mjs +44 -44
  64. package/esm2020/services/catalog/helpers/catalog-sort.helper.mjs +52 -52
  65. package/esm2020/services/catalog/helpers/index.mjs +5 -5
  66. package/esm2020/services/catalog/helpers/product-fields.helper.mjs +43 -43
  67. package/esm2020/services/catalog/index.mjs +8 -8
  68. package/esm2020/services/catalog/models/category-with-tree.model.mjs +10 -10
  69. package/esm2020/services/catalog/models/index.mjs +2 -2
  70. package/esm2020/services/catalog/services/catalog-helpers.service.mjs +33 -33
  71. package/esm2020/services/catalog/services/catalog-operations.facade.mjs +26 -26
  72. package/esm2020/services/catalog/services/catalog-repository.service.mjs +25 -25
  73. package/esm2020/services/catalog/services/index.mjs +5 -5
  74. package/esm2020/services/catalog/services/product-management.facade.mjs +25 -25
  75. package/esm2020/services/catalog/strategies/category-search.strategy.mjs +133 -133
  76. package/esm2020/services/catalog/strategies/index.mjs +4 -4
  77. package/esm2020/services/catalog/strategies/profile-search.strategy.mjs +42 -42
  78. package/esm2020/services/catalog/strategies/term-search.strategy.mjs +126 -126
  79. package/esm2020/services/catalog/strategies/types/strategy-params.type.mjs +2 -2
  80. package/esm2020/services/catalog/types/fetch-products-options.type.mjs +2 -2
  81. package/esm2020/services/catalog/types/fetch-products-params.type.mjs +2 -2
  82. package/esm2020/services/catalog/types/fetch-products-response.type.mjs +2 -2
  83. package/esm2020/services/catalog/types/index.mjs +6 -6
  84. package/esm2020/services/catalog/types/method-params.type.mjs +2 -2
  85. package/esm2020/services/catalog/types/product-sort.type.mjs +2 -2
  86. package/esm2020/services/catalog/wishlist.service.mjs +258 -258
  87. package/esm2020/services/checkout/checkout-dependencies.facade.mjs +20 -20
  88. package/esm2020/services/checkout/checkout-repositories.facade.mjs +20 -20
  89. package/esm2020/services/checkout/index.mjs +3 -3
  90. package/esm2020/services/checkout-subscription.service.mjs +55 -55
  91. package/esm2020/services/checkout.service.mjs +106 -106
  92. package/esm2020/services/coupon/coupon-repositories.facade.mjs +24 -24
  93. package/esm2020/services/coupon/index.mjs +2 -2
  94. package/esm2020/services/coupon/types/coupon-params.type.mjs +2 -2
  95. package/esm2020/services/coupon.service.mjs +248 -248
  96. package/esm2020/services/helpers/index.mjs +2 -2
  97. package/esm2020/services/helpers/util.helper.mjs +18 -18
  98. package/esm2020/services/home-shop/home-shop-repositories.facade.mjs +24 -24
  99. package/esm2020/services/home-shop/index.mjs +2 -2
  100. package/esm2020/services/home-shop.service.mjs +119 -119
  101. package/esm2020/services/index.mjs +11 -11
  102. package/esm2020/services/order-product-review.service.mjs +126 -126
  103. package/esm2020/services/order.service.mjs +30 -30
  104. package/esm2020/services/shared/configuration.facade.mjs +29 -29
  105. package/esm2020/services/shared/index.mjs +2 -2
  106. package/esm2020/services/types/index.mjs +5 -5
  107. package/esm2020/services/types/pending-product-review.type.mjs +2 -2
  108. package/esm2020/services/types/product-review-create.type.mjs +2 -2
  109. package/esm2020/services/types/required-checkout-data.type.mjs +2 -2
  110. package/esm2020/services/types/required-checkout-subscription-data.type.mjs +2 -2
  111. package/esm2020/types/firebase-app-config.type.mjs +2 -2
  112. package/esm2020/types/index.mjs +2 -2
  113. package/fesm2015/infrab4a-connect-angular.mjs +3492 -3492
  114. package/fesm2015/infrab4a-connect-angular.mjs.map +1 -1
  115. package/fesm2020/infrab4a-connect-angular.mjs +3393 -3393
  116. package/fesm2020/infrab4a-connect-angular.mjs.map +1 -1
  117. package/helpers/index.d.ts +1 -1
  118. package/helpers/mobile-operation-system-checker.helper.d.ts +3 -3
  119. package/index.d.ts +6 -6
  120. package/interfaces/catalog-strategies.interface.d.ts +31 -31
  121. package/interfaces/category-facades.interface.d.ts +6 -6
  122. package/interfaces/index.d.ts +2 -2
  123. package/package.json +2 -2
  124. package/persistence/cookie-data-persistence.d.ts +10 -10
  125. package/persistence/data-persistence.d.ts +6 -6
  126. package/persistence/index.d.ts +2 -2
  127. package/services/auth.service.d.ts +18 -18
  128. package/services/cart/cart-services.facade.d.ts +12 -12
  129. package/services/cart/index.d.ts +1 -1
  130. package/services/cart.service.d.ts +26 -26
  131. package/services/catalog/adapters/category-structure.adapter.d.ts +4 -4
  132. package/services/catalog/adapters/index.d.ts +3 -3
  133. package/services/catalog/adapters/new-category-structure.adapter.d.ts +12 -12
  134. package/services/catalog/adapters/old-category-structure.adapter.d.ts +10 -10
  135. package/services/catalog/catalog.service.d.ts +24 -24
  136. package/services/catalog/category.service.d.ts +23 -23
  137. package/services/catalog/context/catalog-search.context.d.ts +14 -14
  138. package/services/catalog/enums/index.d.ts +1 -1
  139. package/services/catalog/enums/product-sorts.enum.d.ts +9 -9
  140. package/services/catalog/facades/catalog-service.facade.d.ts +15 -15
  141. package/services/catalog/facades/catalog-strategies.facade.d.ts +10 -10
  142. package/services/catalog/facades/category-repository.facade.d.ts +9 -9
  143. package/services/catalog/facades/category-service.facade.d.ts +15 -15
  144. package/services/catalog/facades/index.d.ts +5 -5
  145. package/services/catalog/facades/product-catalog.facade.d.ts +10 -10
  146. package/services/catalog/helpers/brand-manager.helper.d.ts +14 -14
  147. package/services/catalog/helpers/catalog-filter.helper.d.ts +8 -8
  148. package/services/catalog/helpers/catalog-sort.helper.d.ts +7 -7
  149. package/services/catalog/helpers/index.d.ts +4 -4
  150. package/services/catalog/helpers/product-fields.helper.d.ts +7 -7
  151. package/services/catalog/index.d.ts +7 -7
  152. package/services/catalog/models/category-with-tree.model.d.ts +4 -4
  153. package/services/catalog/models/index.d.ts +1 -1
  154. package/services/catalog/services/catalog-helpers.service.d.ts +17 -17
  155. package/services/catalog/services/catalog-operations.facade.d.ts +13 -13
  156. package/services/catalog/services/catalog-repository.service.d.ts +12 -12
  157. package/services/catalog/services/index.d.ts +4 -4
  158. package/services/catalog/services/product-management.facade.d.ts +12 -12
  159. package/services/catalog/strategies/category-search.strategy.d.ts +19 -19
  160. package/services/catalog/strategies/index.d.ts +3 -3
  161. package/services/catalog/strategies/profile-search.strategy.d.ts +14 -14
  162. package/services/catalog/strategies/term-search.strategy.d.ts +20 -20
  163. package/services/catalog/strategies/types/strategy-params.type.d.ts +59 -59
  164. package/services/catalog/types/fetch-products-options.type.d.ts +8 -8
  165. package/services/catalog/types/fetch-products-params.type.d.ts +25 -25
  166. package/services/catalog/types/fetch-products-response.type.d.ts +19 -19
  167. package/services/catalog/types/index.d.ts +5 -5
  168. package/services/catalog/types/method-params.type.d.ts +17 -17
  169. package/services/catalog/types/product-sort.type.d.ts +2 -2
  170. package/services/catalog/wishlist.service.d.ts +60 -60
  171. package/services/checkout/checkout-dependencies.facade.d.ts +10 -10
  172. package/services/checkout/checkout-repositories.facade.d.ts +9 -9
  173. package/services/checkout/index.d.ts +2 -2
  174. package/services/checkout-subscription.service.d.ts +19 -19
  175. package/services/checkout.service.d.ts +30 -30
  176. package/services/coupon/coupon-repositories.facade.d.ts +10 -10
  177. package/services/coupon/index.d.ts +1 -1
  178. package/services/coupon/types/coupon-params.type.d.ts +13 -13
  179. package/services/coupon.service.d.ts +36 -36
  180. package/services/helpers/index.d.ts +1 -1
  181. package/services/helpers/util.helper.d.ts +3 -3
  182. package/services/home-shop/home-shop-repositories.facade.d.ts +10 -10
  183. package/services/home-shop/index.d.ts +1 -1
  184. package/services/home-shop.service.d.ts +26 -26
  185. package/services/index.d.ts +10 -10
  186. package/services/order-product-review.service.d.ts +18 -18
  187. package/services/order.service.d.ts +13 -13
  188. package/services/shared/configuration.facade.d.ts +12 -12
  189. package/services/shared/index.d.ts +1 -1
  190. package/services/types/index.d.ts +4 -4
  191. package/services/types/pending-product-review.type.d.ts +12 -12
  192. package/services/types/product-review-create.type.d.ts +14 -14
  193. package/services/types/required-checkout-data.type.d.ts +2 -2
  194. package/services/types/required-checkout-subscription-data.type.d.ts +2 -2
  195. package/types/firebase-app-config.type.d.ts +1 -1
  196. package/types/index.d.ts +1 -1
@@ -1,421 +1,421 @@
1
- import { isPlatformBrowser } from '@angular/common';
2
- import { NgModule, PLATFORM_ID } from '@angular/core';
3
- import { CategoryCollectionChildrenHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository, CategoryHasuraGraphQLRepository, CategoryProductHasuraGraphQLRepository, FilterHasuraGraphQLRepository, FilterOptionHasuraGraphQLRepository, ProductCatalogHasuraGraphQLRepository, ProductErrorsHasuraGraphQLRepository, ProductGroupHasuraGraphQLRepository, ProductHasuraGraphQLRepository, ProductPriceLogHasuraGraphQLRepository, ProductReviewHasuraGraphQLRepository, ProductStockEntryHasuraGraphQLRepository, ProductStockNotificationHasuraGraphQLRepository, VariantHasuraGraphQLRepository, WishlistHasuraGraphQLRepository, } from '@infrab4a/connect';
4
- import { HASURA_OPTIONS } from './consts';
5
- import * as i0 from "@angular/core";
6
- export class AngularHasuraGraphQLModule {
7
- static initializeApp(options) {
8
- return {
9
- ngModule: AngularHasuraGraphQLModule,
10
- providers: [{ provide: HASURA_OPTIONS, useValue: options }],
11
- };
12
- }
13
- }
14
- AngularHasuraGraphQLModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularHasuraGraphQLModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
- AngularHasuraGraphQLModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.0", ngImport: i0, type: AngularHasuraGraphQLModule });
16
- AngularHasuraGraphQLModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularHasuraGraphQLModule, providers: [
17
- {
18
- provide: 'HasuraConfig',
19
- useFactory: (options, platformId) => ({
20
- endpoint: options.endpoint,
21
- authOptions: options.credentials,
22
- cache: options.cache,
23
- interceptors: {
24
- request: (request) => {
25
- if (isPlatformBrowser(platformId))
26
- return request;
27
- const interval = setInterval(() => { }, 100);
28
- request.interval = interval;
29
- return request;
30
- },
31
- response: (response, request) => {
32
- if (isPlatformBrowser(platformId))
33
- return response;
34
- clearInterval(request.interval);
35
- return response;
36
- },
37
- },
38
- }),
39
- deps: [HASURA_OPTIONS, PLATFORM_ID],
40
- },
41
- {
42
- provide: 'CategoryRepository',
43
- useExisting: CategoryHasuraGraphQLRepository,
44
- },
45
- {
46
- provide: CategoryHasuraGraphQLRepository,
47
- useFactory: (options, productRepository, categoryFilterRepository) => {
48
- return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository);
49
- },
50
- deps: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
51
- },
52
- {
53
- provide: 'ProductRepository',
54
- useExisting: ProductHasuraGraphQLRepository,
55
- },
56
- {
57
- provide: ProductHasuraGraphQLRepository,
58
- useFactory: (hasuraConfig) => {
59
- return new ProductHasuraGraphQLRepository(hasuraConfig);
60
- },
61
- deps: ['HasuraConfig'],
62
- },
63
- {
64
- provide: 'ProductReviewRepository',
65
- useExisting: ProductReviewHasuraGraphQLRepository,
66
- },
67
- {
68
- provide: ProductReviewHasuraGraphQLRepository,
69
- useFactory: (hasuraConfig) => {
70
- return new ProductReviewHasuraGraphQLRepository(hasuraConfig);
71
- },
72
- deps: ['HasuraConfig'],
73
- },
74
- {
75
- provide: 'VariantRepository',
76
- useExisting: VariantHasuraGraphQLRepository,
77
- },
78
- {
79
- provide: VariantHasuraGraphQLRepository,
80
- useFactory: (hasuraConfig) => {
81
- return new VariantHasuraGraphQLRepository(hasuraConfig);
82
- },
83
- deps: ['HasuraConfig'],
84
- },
85
- {
86
- provide: 'ProductStockNotificationRepository',
87
- useExisting: ProductStockNotificationHasuraGraphQLRepository,
88
- },
89
- {
90
- provide: ProductStockNotificationHasuraGraphQLRepository,
91
- useFactory: (hasuraConfig) => {
92
- return new ProductStockNotificationHasuraGraphQLRepository(hasuraConfig);
93
- },
94
- deps: ['HasuraConfig'],
95
- },
96
- {
97
- provide: 'CategoryFilterRepository',
98
- useExisting: CategoryFilterHasuraGraphQLRepository,
99
- },
100
- {
101
- provide: CategoryFilterHasuraGraphQLRepository,
102
- useFactory: (options) => {
103
- return new CategoryFilterHasuraGraphQLRepository(options);
104
- },
105
- deps: ['HasuraConfig'],
106
- },
107
- {
108
- provide: 'FilterOptionRepository',
109
- useExisting: FilterOptionHasuraGraphQLRepository,
110
- },
111
- {
112
- provide: FilterOptionHasuraGraphQLRepository,
113
- useFactory: (options) => {
114
- return new FilterOptionHasuraGraphQLRepository(options);
115
- },
116
- deps: ['HasuraConfig'],
117
- },
118
- {
119
- provide: 'FilterRepository',
120
- useExisting: FilterHasuraGraphQLRepository,
121
- },
122
- {
123
- provide: FilterHasuraGraphQLRepository,
124
- useFactory: (options, filterOptionRepository, categoryFilterRepository) => {
125
- return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository);
126
- },
127
- deps: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
128
- },
129
- {
130
- provide: CategoryCollectionChildrenHasuraGraphQLRepository,
131
- useFactory: (options) => new CategoryCollectionChildrenHasuraGraphQLRepository(options),
132
- deps: ['HasuraConfig'],
133
- },
134
- {
135
- provide: 'CategoryCollectionChildrenRepository',
136
- useExisting: CategoryCollectionChildrenHasuraGraphQLRepository,
137
- },
138
- {
139
- provide: CategoryProductHasuraGraphQLRepository,
140
- useFactory: (options) => {
141
- return new CategoryProductHasuraGraphQLRepository(options);
142
- },
143
- deps: ['HasuraConfig'],
144
- },
145
- {
146
- provide: 'CategoryProductRepository',
147
- useExisting: CategoryProductHasuraGraphQLRepository,
148
- },
149
- {
150
- provide: WishlistHasuraGraphQLRepository,
151
- useFactory: (options, categoryProductRepository) => {
152
- return new WishlistHasuraGraphQLRepository(options, categoryProductRepository);
153
- },
154
- deps: ['HasuraConfig', CategoryProductHasuraGraphQLRepository],
155
- },
156
- {
157
- provide: 'WishlistRepository',
158
- useExisting: WishlistHasuraGraphQLRepository,
159
- },
160
- {
161
- provide: ProductErrorsHasuraGraphQLRepository,
162
- useFactory: (options, productRepository) => {
163
- return new ProductErrorsHasuraGraphQLRepository(options, productRepository);
164
- },
165
- deps: ['HasuraConfig', ProductHasuraGraphQLRepository],
166
- },
167
- {
168
- provide: 'ProductErrorsRepository',
169
- useExisting: ProductErrorsHasuraGraphQLRepository,
170
- },
171
- {
172
- provide: ProductCatalogHasuraGraphQLRepository,
173
- useFactory: (options) => {
174
- return new ProductCatalogHasuraGraphQLRepository(options);
175
- },
176
- deps: ['HasuraConfig'],
177
- },
178
- {
179
- provide: 'ProductCatalogRepository',
180
- useExisting: ProductCatalogHasuraGraphQLRepository,
181
- },
182
- {
183
- provide: ProductStockEntryHasuraGraphQLRepository,
184
- useFactory: (options) => {
185
- return new ProductStockEntryHasuraGraphQLRepository(options);
186
- },
187
- deps: ['HasuraConfig'],
188
- },
189
- {
190
- provide: 'ProductStockEntryRepository',
191
- useExisting: ProductStockEntryHasuraGraphQLRepository,
192
- },
193
- {
194
- provide: ProductGroupHasuraGraphQLRepository,
195
- useFactory: (options) => {
196
- return new ProductGroupHasuraGraphQLRepository(options);
197
- },
198
- deps: ['HasuraConfig'],
199
- },
200
- {
201
- provide: 'ProductGroupRepository',
202
- useExisting: ProductGroupHasuraGraphQLRepository,
203
- },
204
- {
205
- provide: ProductPriceLogHasuraGraphQLRepository,
206
- useFactory: (options) => {
207
- return new ProductPriceLogHasuraGraphQLRepository(options);
208
- },
209
- deps: ['HasuraConfig'],
210
- },
211
- {
212
- provide: 'ProductPriceLogRepository',
213
- useExisting: ProductPriceLogHasuraGraphQLRepository,
214
- },
215
- ] });
216
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularHasuraGraphQLModule, decorators: [{
217
- type: NgModule,
218
- args: [{
219
- providers: [
220
- {
221
- provide: 'HasuraConfig',
222
- useFactory: (options, platformId) => ({
223
- endpoint: options.endpoint,
224
- authOptions: options.credentials,
225
- cache: options.cache,
226
- interceptors: {
227
- request: (request) => {
228
- if (isPlatformBrowser(platformId))
229
- return request;
230
- const interval = setInterval(() => { }, 100);
231
- request.interval = interval;
232
- return request;
233
- },
234
- response: (response, request) => {
235
- if (isPlatformBrowser(platformId))
236
- return response;
237
- clearInterval(request.interval);
238
- return response;
239
- },
240
- },
241
- }),
242
- deps: [HASURA_OPTIONS, PLATFORM_ID],
243
- },
244
- {
245
- provide: 'CategoryRepository',
246
- useExisting: CategoryHasuraGraphQLRepository,
247
- },
248
- {
249
- provide: CategoryHasuraGraphQLRepository,
250
- useFactory: (options, productRepository, categoryFilterRepository) => {
251
- return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository);
252
- },
253
- deps: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
254
- },
255
- {
256
- provide: 'ProductRepository',
257
- useExisting: ProductHasuraGraphQLRepository,
258
- },
259
- {
260
- provide: ProductHasuraGraphQLRepository,
261
- useFactory: (hasuraConfig) => {
262
- return new ProductHasuraGraphQLRepository(hasuraConfig);
263
- },
264
- deps: ['HasuraConfig'],
265
- },
266
- {
267
- provide: 'ProductReviewRepository',
268
- useExisting: ProductReviewHasuraGraphQLRepository,
269
- },
270
- {
271
- provide: ProductReviewHasuraGraphQLRepository,
272
- useFactory: (hasuraConfig) => {
273
- return new ProductReviewHasuraGraphQLRepository(hasuraConfig);
274
- },
275
- deps: ['HasuraConfig'],
276
- },
277
- {
278
- provide: 'VariantRepository',
279
- useExisting: VariantHasuraGraphQLRepository,
280
- },
281
- {
282
- provide: VariantHasuraGraphQLRepository,
283
- useFactory: (hasuraConfig) => {
284
- return new VariantHasuraGraphQLRepository(hasuraConfig);
285
- },
286
- deps: ['HasuraConfig'],
287
- },
288
- {
289
- provide: 'ProductStockNotificationRepository',
290
- useExisting: ProductStockNotificationHasuraGraphQLRepository,
291
- },
292
- {
293
- provide: ProductStockNotificationHasuraGraphQLRepository,
294
- useFactory: (hasuraConfig) => {
295
- return new ProductStockNotificationHasuraGraphQLRepository(hasuraConfig);
296
- },
297
- deps: ['HasuraConfig'],
298
- },
299
- {
300
- provide: 'CategoryFilterRepository',
301
- useExisting: CategoryFilterHasuraGraphQLRepository,
302
- },
303
- {
304
- provide: CategoryFilterHasuraGraphQLRepository,
305
- useFactory: (options) => {
306
- return new CategoryFilterHasuraGraphQLRepository(options);
307
- },
308
- deps: ['HasuraConfig'],
309
- },
310
- {
311
- provide: 'FilterOptionRepository',
312
- useExisting: FilterOptionHasuraGraphQLRepository,
313
- },
314
- {
315
- provide: FilterOptionHasuraGraphQLRepository,
316
- useFactory: (options) => {
317
- return new FilterOptionHasuraGraphQLRepository(options);
318
- },
319
- deps: ['HasuraConfig'],
320
- },
321
- {
322
- provide: 'FilterRepository',
323
- useExisting: FilterHasuraGraphQLRepository,
324
- },
325
- {
326
- provide: FilterHasuraGraphQLRepository,
327
- useFactory: (options, filterOptionRepository, categoryFilterRepository) => {
328
- return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository);
329
- },
330
- deps: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
331
- },
332
- {
333
- provide: CategoryCollectionChildrenHasuraGraphQLRepository,
334
- useFactory: (options) => new CategoryCollectionChildrenHasuraGraphQLRepository(options),
335
- deps: ['HasuraConfig'],
336
- },
337
- {
338
- provide: 'CategoryCollectionChildrenRepository',
339
- useExisting: CategoryCollectionChildrenHasuraGraphQLRepository,
340
- },
341
- {
342
- provide: CategoryProductHasuraGraphQLRepository,
343
- useFactory: (options) => {
344
- return new CategoryProductHasuraGraphQLRepository(options);
345
- },
346
- deps: ['HasuraConfig'],
347
- },
348
- {
349
- provide: 'CategoryProductRepository',
350
- useExisting: CategoryProductHasuraGraphQLRepository,
351
- },
352
- {
353
- provide: WishlistHasuraGraphQLRepository,
354
- useFactory: (options, categoryProductRepository) => {
355
- return new WishlistHasuraGraphQLRepository(options, categoryProductRepository);
356
- },
357
- deps: ['HasuraConfig', CategoryProductHasuraGraphQLRepository],
358
- },
359
- {
360
- provide: 'WishlistRepository',
361
- useExisting: WishlistHasuraGraphQLRepository,
362
- },
363
- {
364
- provide: ProductErrorsHasuraGraphQLRepository,
365
- useFactory: (options, productRepository) => {
366
- return new ProductErrorsHasuraGraphQLRepository(options, productRepository);
367
- },
368
- deps: ['HasuraConfig', ProductHasuraGraphQLRepository],
369
- },
370
- {
371
- provide: 'ProductErrorsRepository',
372
- useExisting: ProductErrorsHasuraGraphQLRepository,
373
- },
374
- {
375
- provide: ProductCatalogHasuraGraphQLRepository,
376
- useFactory: (options) => {
377
- return new ProductCatalogHasuraGraphQLRepository(options);
378
- },
379
- deps: ['HasuraConfig'],
380
- },
381
- {
382
- provide: 'ProductCatalogRepository',
383
- useExisting: ProductCatalogHasuraGraphQLRepository,
384
- },
385
- {
386
- provide: ProductStockEntryHasuraGraphQLRepository,
387
- useFactory: (options) => {
388
- return new ProductStockEntryHasuraGraphQLRepository(options);
389
- },
390
- deps: ['HasuraConfig'],
391
- },
392
- {
393
- provide: 'ProductStockEntryRepository',
394
- useExisting: ProductStockEntryHasuraGraphQLRepository,
395
- },
396
- {
397
- provide: ProductGroupHasuraGraphQLRepository,
398
- useFactory: (options) => {
399
- return new ProductGroupHasuraGraphQLRepository(options);
400
- },
401
- deps: ['HasuraConfig'],
402
- },
403
- {
404
- provide: 'ProductGroupRepository',
405
- useExisting: ProductGroupHasuraGraphQLRepository,
406
- },
407
- {
408
- provide: ProductPriceLogHasuraGraphQLRepository,
409
- useFactory: (options) => {
410
- return new ProductPriceLogHasuraGraphQLRepository(options);
411
- },
412
- deps: ['HasuraConfig'],
413
- },
414
- {
415
- provide: 'ProductPriceLogRepository',
416
- useExisting: ProductPriceLogHasuraGraphQLRepository,
417
- },
418
- ],
419
- }]
420
- }] });
421
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1oYXN1cmEtZ3JhcGhxbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL2FuZ3VsYXItaGFzdXJhLWdyYXBocWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ25ELE9BQU8sRUFBdUIsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxRSxPQUFPLEVBRUwsaURBQWlELEVBQ2pELHFDQUFxQyxFQUVyQywrQkFBK0IsRUFDL0Isc0NBQXNDLEVBRXRDLDZCQUE2QixFQUM3QixtQ0FBbUMsRUFNbkMscUNBQXFDLEVBRXJDLG9DQUFvQyxFQUVwQyxtQ0FBbUMsRUFDbkMsOEJBQThCLEVBQzlCLHNDQUFzQyxFQUV0QyxvQ0FBb0MsRUFFcEMsd0NBQXdDLEVBRXhDLCtDQUErQyxFQUUvQyw4QkFBOEIsRUFFOUIsK0JBQStCLEdBQ2hDLE1BQU0sbUJBQW1CLENBQUE7QUFFMUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQTs7QUFnT3pDLE1BQU0sT0FBTywwQkFBMEI7SUFDckMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUE2QjtRQUNoRCxPQUFPO1lBQ0wsUUFBUSxFQUFFLDBCQUEwQjtZQUNwQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDO1NBQzVELENBQUE7SUFDSCxDQUFDOzt1SEFOVSwwQkFBMEI7d0hBQTFCLDBCQUEwQjt3SEFBMUIsMEJBQTBCLGFBM04xQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGNBQWM7WUFDdkIsVUFBVSxFQUFFLENBQUMsT0FBNkIsRUFBRSxVQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNsRSxRQUFRLEVBQUUsT0FBTyxDQUFDLFFB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Q3ZCO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSw2QkFBNkI7NEJBQ3RDLFdBQVcsRUFBRSx3Q0FBd0M7eUJBQ3REO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxtQ0FBbUM7NEJBQzVDLFVBQVUsRUFBRSxDQUFDLE9BQVksRUFBdUMsRUFBRTtnQ0FDaEUsT0FBTyxJQUFJLG1DQUFtQyxDQUFDLE9BQU8sQ0FBQyxDQUFBOzRCQUN6RCxDQUFDOzRCQUNELElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQzt5QkFDdkI7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHdCQUF3Qjs0QkFDakMsV0FBVyxFQUFFLG1DQUFtQzt5QkFDakQ7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHNDQUFzQzs0QkFDL0MsVUFBVSxFQUFFLENBQUMsT0FBWSxFQUEwQyxFQUFFO2dDQUNuRSxPQUFPLElBQUksc0NBQXNDLENBQUMsT0FBTyxDQUFDLENBQUE7NEJBQzVELENBQUM7NEJBQ0QsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDO3lCQUN2Qjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsMkJBQTJCOzRCQUNwQyxXQUFXLEVBQUUsc0NBQXNDO3lCQUNwRDtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xyXG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQge1xyXG4gIENhY2hlQ29uZmlnLFxyXG4gIENhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnksXHJcbiAgQ2F0ZWdvcnlIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBDYXRlZ29yeVByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBDYXRlZ29yeVJlcG9zaXRvcnksXHJcbiAgRmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgRmlsdGVyT3B0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgRmlsdGVyT3B0aW9uUmVwb3NpdG9yeSxcclxuICBGaWx0ZXJSZXBvc2l0b3J5LFxyXG4gIEdyYXBoUUxQYXJhbXMsXHJcbiAgSGFzdXJhQ29uc3RydWN0b3JQYXJhbXMsXHJcbiAgSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zLFxyXG4gIFByb2R1Y3RDYXRhbG9nSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgUHJvZHVjdEVycm9ycyxcclxuICBQcm9kdWN0RXJyb3JzSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgUHJvZHVjdEVycm9yc1JlcG9zaXRvcnksXHJcbiAgUHJvZHVjdEdyb3VwSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gIFByb2R1Y3RQcmljZUxvZ0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gIFByb2R1Y3RSZXBvc2l0b3J5LFxyXG4gIFByb2R1Y3RSZXZpZXdIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBQcm9kdWN0UmV2aWV3UmVwb3NpdG9yeSxcclxuICBQcm9kdWN0U3RvY2tFbnRyeUhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gIFByb2R1Y3RTdG9ja0VudHJ5UmVwb3NpdG9yeSxcclxuICBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25SZXBvc2l0b3J5LFxyXG4gIFZhcmlhbnRIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBWYXJpYW50UmVwb3NpdG9yeSxcclxuICBXaXNobGlzdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5cclxuaW1wb3J0IHsgSEFTVVJBX09QVElPTlMgfSBmcm9tICcuL2NvbnN0cydcclxuXHJcbmV4cG9ydCB0eXBlIEhhc3VyYUdyYXBoUUxPcHRpb25zID0geyBlbmRwb2ludDogc3RyaW5nOyBjcmVkZW50aWFscz86IEhhc3VyYUdyYXBoUUxBdXRoT3B0aW9uczsgY2FjaGU/OiBDYWNoZUNvbmZpZyB9XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnSGFzdXJhQ29uZmlnJyxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IEhhc3VyYUdyYXBoUUxPcHRpb25zLCBwbGF0Zm9ybUlkOiBzdHJpbmcpID0+ICh7XHJcbiAgICAgICAgZW5kcG9pbnQ6IG9wdGlvbnMuZW5kcG9pbnQsXHJcbiAgICAgICAgYXV0aE9wdGlvbnM6IG9wdGlvbnMuY3JlZGVudGlhbHMsXHJcbiAgICAgICAgY2FjaGU6IG9wdGlvbnMuY2FjaGUsXHJcbiAgICAgICAgaW50ZXJjZXB0b3JzOiB7XHJcbiAgICAgICAgICByZXF1ZXN0OiAocmVxdWVzdDogR3JhcGhRTFBhcmFtczxhbnk+ICYgeyBpbnRlcnZhbDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIocGxhdGZvcm1JZCkpIHJldHVybiByZXF1ZXN0XHJcblxyXG4gICAgICAgICAgICBjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHt9LCAxMDApXHJcblxyXG4gICAgICAgICAgICByZXF1ZXN0LmludGVydmFsID0gaW50ZXJ2YWxcclxuXHJcbiAgICAgICAgICAgIHJldHVybiByZXF1ZXN0XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgcmVzcG9uc2U6IChyZXNwb25zZTogYW55LCByZXF1ZXN0OiBHcmFwaFFMUGFyYW1zPGFueT4gJiB7IGludGVydmFsOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB9KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKSkgcmV0dXJuIHJlc3BvbnNlXHJcblxyXG4gICAgICAgICAgICBjbGVhckludGVydmFsKHJlcXVlc3QuaW50ZXJ2YWwpXHJcblxyXG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2VcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgfSksXHJcbiAgICAgIGRlcHM6IFtIQVNVUkFfT1BUSU9OUywgUExBVEZPUk1fSURdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ0NhdGVnb3J5UmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBDYXRlZ29yeUhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogQ2F0ZWdvcnlIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKFxyXG4gICAgICAgIG9wdGlvbnM6IGFueSxcclxuICAgICAgICBwcm9kdWN0UmVwb3NpdG9yeTogUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICAgIGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeTogQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgKTogQ2F0ZWdvcnlSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IENhdGVnb3J5SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucywgcHJvZHVjdFJlcG9zaXRvcnksIGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeSlcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnLCBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksIENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnldLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1Byb2R1Y3RSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKGhhc3VyYUNvbmZpZzogYW55KTogUHJvZHVjdFJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KGhhc3VyYUNvbmZpZylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdQcm9kdWN0UmV2aWV3UmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBQcm9kdWN0UmV2aWV3SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBQcm9kdWN0UmV2aWV3SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChoYXN1cmFDb25maWc6IGFueSk6IFByb2R1Y3RSZXZpZXdSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb2R1Y3RSZXZpZXdIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShoYXN1cmFDb25maWcpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnVmFyaWFudFJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VFeGlzdGluZzogVmFyaWFudEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogVmFyaWFudEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAoaGFzdXJhQ29uZmlnOiBhbnkpOiBWYXJpYW50UmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBWYXJpYW50SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkoaGFzdXJhQ29uZmlnKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1Byb2R1Y3RTdG9ja05vdGlmaWNhdGlvblJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VFeGlzdGluZzogUHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKGhhc3VyYUNvbmZpZzogYW55KTogUHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uUmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShoYXN1cmFDb25maWcpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogYW55KTogQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdGaWx0ZXJPcHRpb25SZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IEZpbHRlck9wdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogRmlsdGVyT3B0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChvcHRpb25zOiBhbnkpOiBGaWx0ZXJPcHRpb25SZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IEZpbHRlck9wdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnRmlsdGVyUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAoXHJcbiAgICAgICAgb3B0aW9uczogYW55LFxyXG4gICAgICAgIGZpbHRlck9wdGlvblJlcG9zaXRvcnk6IEZpbHRlck9wdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICAgIGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeTogQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgKTogRmlsdGVyUmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zLCBmaWx0ZXJPcHRpb25SZXBvc2l0b3J5LCBjYXRlZ29yeUZpbHRlclJlcG9zaXRvcnkpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJywgRmlsdGVyT3B0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksIENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnldLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogQ2F0ZWdvcnlDb2xsZWN0aW9uQ2hpbGRyZW5IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IGFueSk6IENhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkgPT5cclxuICAgICAgICBuZXcgQ2F0ZWdvcnlDb2xsZWN0aW9uQ2hpbGRyZW5IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zKSxcclxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdDYXRlZ29yeUNvbGxlY3Rpb25DaGlsZHJlblJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VFeGlzdGluZzogQ2F0ZWdvcnlDb2xsZWN0aW9uQ2hpbGRyZW5IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IENhdGVnb3J5UHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogYW55KTogQ2F0ZWdvcnlQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgQ2F0ZWdvcnlQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdDYXRlZ29yeVByb2R1Y3RSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IENhdGVnb3J5UHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogV2lzaGxpc3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKFxyXG4gICAgICAgIG9wdGlvbnM6IGFueSxcclxuICAgICAgICBjYXRlZ29yeVByb2R1Y3RSZXBvc2l0b3J5OiBDYXRlZ29yeVByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgKTogV2lzaGxpc3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBXaXNobGlzdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMsIGNhdGVnb3J5UHJvZHVjdFJlcG9zaXRvcnkpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJywgQ2F0ZWdvcnlQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnldLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1dpc2hsaXN0UmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBXaXNobGlzdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogUHJvZHVjdEVycm9yc0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAoXHJcbiAgICAgICAgb3B0aW9uczogSGFzdXJhQ29uc3RydWN0b3JQYXJhbXM8UHJvZHVjdEVycm9ycz4sXHJcbiAgICAgICAgcHJvZHVjdFJlcG9zaXRvcnk6IFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgKTogUHJvZHVjdEVycm9yc1JlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvZHVjdEVycm9yc0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMsIHByb2R1Y3RSZXBvc2l0b3J5KVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZycsIFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeV0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnUHJvZHVjdEVycm9yc1JlcG9zaXRvcnknLFxyXG4gICAgICB1c2VFeGlzdGluZzogUHJvZHVjdEVycm9yc0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogUHJvZHVjdENhdGFsb2dIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IGFueSk6IFByb2R1Y3RDYXRhbG9nSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvZHVjdENhdGFsb2dIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1Byb2R1Y3RDYXRhbG9nUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBQcm9kdWN0Q2F0YWxvZ0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogUHJvZHVjdFN0b2NrRW50cnlIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IGFueSk6IFByb2R1Y3RTdG9ja0VudHJ5UmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9kdWN0U3RvY2tFbnRyeUhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnUHJvZHVjdFN0b2NrRW50cnlSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IFByb2R1Y3RTdG9ja0VudHJ5SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBQcm9kdWN0R3JvdXBIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IGFueSk6IFByb2R1Y3RHcm91cEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb2R1Y3RHcm91cEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnUHJvZHVjdEdyb3VwUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBQcm9kdWN0R3JvdXBIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFByb2R1Y3RQcmljZUxvZ0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogYW55KTogUHJvZHVjdFByaWNlTG9nSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvZHVjdFByaWNlTG9nSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdQcm9kdWN0UHJpY2VMb2dSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IFByb2R1Y3RQcmljZUxvZ0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5ndWxhckhhc3VyYUdyYXBoUUxNb2R1bGUge1xyXG4gIHN0YXRpYyBpbml0aWFsaXplQXBwKG9wdGlvbnM6IEhhc3VyYUdyYXBoUUxPcHRpb25zKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBbmd1bGFySGFzdXJhR3JhcGhRTE1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IEFuZ3VsYXJIYXN1cmFHcmFwaFFMTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEhBU1VSQV9PUFRJT05TLCB1c2VWYWx1ZTogb3B0aW9ucyB9XSxcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
1
+ import { isPlatformBrowser } from '@angular/common';
2
+ import { NgModule, PLATFORM_ID } from '@angular/core';
3
+ import { CategoryCollectionChildrenHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository, CategoryHasuraGraphQLRepository, CategoryProductHasuraGraphQLRepository, FilterHasuraGraphQLRepository, FilterOptionHasuraGraphQLRepository, ProductCatalogHasuraGraphQLRepository, ProductErrorsHasuraGraphQLRepository, ProductGroupHasuraGraphQLRepository, ProductHasuraGraphQLRepository, ProductPriceLogHasuraGraphQLRepository, ProductReviewHasuraGraphQLRepository, ProductStockEntryHasuraGraphQLRepository, ProductStockNotificationHasuraGraphQLRepository, VariantHasuraGraphQLRepository, WishlistHasuraGraphQLRepository, } from '@infrab4a/connect';
4
+ import { HASURA_OPTIONS } from './consts';
5
+ import * as i0 from "@angular/core";
6
+ export class AngularHasuraGraphQLModule {
7
+ static initializeApp(options) {
8
+ return {
9
+ ngModule: AngularHasuraGraphQLModule,
10
+ providers: [{ provide: HASURA_OPTIONS, useValue: options }],
11
+ };
12
+ }
13
+ }
14
+ AngularHasuraGraphQLModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularHasuraGraphQLModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
+ AngularHasuraGraphQLModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.0", ngImport: i0, type: AngularHasuraGraphQLModule });
16
+ AngularHasuraGraphQLModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularHasuraGraphQLModule, providers: [
17
+ {
18
+ provide: 'HasuraConfig',
19
+ useFactory: (options, platformId) => ({
20
+ endpoint: options.endpoint,
21
+ authOptions: options.credentials,
22
+ cache: options.cache,
23
+ interceptors: {
24
+ request: (request) => {
25
+ if (isPlatformBrowser(platformId))
26
+ return request;
27
+ const interval = setInterval(() => { }, 100);
28
+ request.interval = interval;
29
+ return request;
30
+ },
31
+ response: (response, request) => {
32
+ if (isPlatformBrowser(platformId))
33
+ return response;
34
+ clearInterval(request.interval);
35
+ return response;
36
+ },
37
+ },
38
+ }),
39
+ deps: [HASURA_OPTIONS, PLATFORM_ID],
40
+ },
41
+ {
42
+ provide: 'CategoryRepository',
43
+ useExisting: CategoryHasuraGraphQLRepository,
44
+ },
45
+ {
46
+ provide: CategoryHasuraGraphQLRepository,
47
+ useFactory: (options, productRepository, categoryFilterRepository) => {
48
+ return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository);
49
+ },
50
+ deps: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
51
+ },
52
+ {
53
+ provide: 'ProductRepository',
54
+ useExisting: ProductHasuraGraphQLRepository,
55
+ },
56
+ {
57
+ provide: ProductHasuraGraphQLRepository,
58
+ useFactory: (hasuraConfig) => {
59
+ return new ProductHasuraGraphQLRepository(hasuraConfig);
60
+ },
61
+ deps: ['HasuraConfig'],
62
+ },
63
+ {
64
+ provide: 'ProductReviewRepository',
65
+ useExisting: ProductReviewHasuraGraphQLRepository,
66
+ },
67
+ {
68
+ provide: ProductReviewHasuraGraphQLRepository,
69
+ useFactory: (hasuraConfig) => {
70
+ return new ProductReviewHasuraGraphQLRepository(hasuraConfig);
71
+ },
72
+ deps: ['HasuraConfig'],
73
+ },
74
+ {
75
+ provide: 'VariantRepository',
76
+ useExisting: VariantHasuraGraphQLRepository,
77
+ },
78
+ {
79
+ provide: VariantHasuraGraphQLRepository,
80
+ useFactory: (hasuraConfig) => {
81
+ return new VariantHasuraGraphQLRepository(hasuraConfig);
82
+ },
83
+ deps: ['HasuraConfig'],
84
+ },
85
+ {
86
+ provide: 'ProductStockNotificationRepository',
87
+ useExisting: ProductStockNotificationHasuraGraphQLRepository,
88
+ },
89
+ {
90
+ provide: ProductStockNotificationHasuraGraphQLRepository,
91
+ useFactory: (hasuraConfig) => {
92
+ return new ProductStockNotificationHasuraGraphQLRepository(hasuraConfig);
93
+ },
94
+ deps: ['HasuraConfig'],
95
+ },
96
+ {
97
+ provide: 'CategoryFilterRepository',
98
+ useExisting: CategoryFilterHasuraGraphQLRepository,
99
+ },
100
+ {
101
+ provide: CategoryFilterHasuraGraphQLRepository,
102
+ useFactory: (options) => {
103
+ return new CategoryFilterHasuraGraphQLRepository(options);
104
+ },
105
+ deps: ['HasuraConfig'],
106
+ },
107
+ {
108
+ provide: 'FilterOptionRepository',
109
+ useExisting: FilterOptionHasuraGraphQLRepository,
110
+ },
111
+ {
112
+ provide: FilterOptionHasuraGraphQLRepository,
113
+ useFactory: (options) => {
114
+ return new FilterOptionHasuraGraphQLRepository(options);
115
+ },
116
+ deps: ['HasuraConfig'],
117
+ },
118
+ {
119
+ provide: 'FilterRepository',
120
+ useExisting: FilterHasuraGraphQLRepository,
121
+ },
122
+ {
123
+ provide: FilterHasuraGraphQLRepository,
124
+ useFactory: (options, filterOptionRepository, categoryFilterRepository) => {
125
+ return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository);
126
+ },
127
+ deps: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
128
+ },
129
+ {
130
+ provide: CategoryCollectionChildrenHasuraGraphQLRepository,
131
+ useFactory: (options) => new CategoryCollectionChildrenHasuraGraphQLRepository(options),
132
+ deps: ['HasuraConfig'],
133
+ },
134
+ {
135
+ provide: 'CategoryCollectionChildrenRepository',
136
+ useExisting: CategoryCollectionChildrenHasuraGraphQLRepository,
137
+ },
138
+ {
139
+ provide: CategoryProductHasuraGraphQLRepository,
140
+ useFactory: (options) => {
141
+ return new CategoryProductHasuraGraphQLRepository(options);
142
+ },
143
+ deps: ['HasuraConfig'],
144
+ },
145
+ {
146
+ provide: 'CategoryProductRepository',
147
+ useExisting: CategoryProductHasuraGraphQLRepository,
148
+ },
149
+ {
150
+ provide: WishlistHasuraGraphQLRepository,
151
+ useFactory: (options, categoryProductRepository) => {
152
+ return new WishlistHasuraGraphQLRepository(options, categoryProductRepository);
153
+ },
154
+ deps: ['HasuraConfig', CategoryProductHasuraGraphQLRepository],
155
+ },
156
+ {
157
+ provide: 'WishlistRepository',
158
+ useExisting: WishlistHasuraGraphQLRepository,
159
+ },
160
+ {
161
+ provide: ProductErrorsHasuraGraphQLRepository,
162
+ useFactory: (options, productRepository) => {
163
+ return new ProductErrorsHasuraGraphQLRepository(options, productRepository);
164
+ },
165
+ deps: ['HasuraConfig', ProductHasuraGraphQLRepository],
166
+ },
167
+ {
168
+ provide: 'ProductErrorsRepository',
169
+ useExisting: ProductErrorsHasuraGraphQLRepository,
170
+ },
171
+ {
172
+ provide: ProductCatalogHasuraGraphQLRepository,
173
+ useFactory: (options) => {
174
+ return new ProductCatalogHasuraGraphQLRepository(options);
175
+ },
176
+ deps: ['HasuraConfig'],
177
+ },
178
+ {
179
+ provide: 'ProductCatalogRepository',
180
+ useExisting: ProductCatalogHasuraGraphQLRepository,
181
+ },
182
+ {
183
+ provide: ProductStockEntryHasuraGraphQLRepository,
184
+ useFactory: (options) => {
185
+ return new ProductStockEntryHasuraGraphQLRepository(options);
186
+ },
187
+ deps: ['HasuraConfig'],
188
+ },
189
+ {
190
+ provide: 'ProductStockEntryRepository',
191
+ useExisting: ProductStockEntryHasuraGraphQLRepository,
192
+ },
193
+ {
194
+ provide: ProductGroupHasuraGraphQLRepository,
195
+ useFactory: (options) => {
196
+ return new ProductGroupHasuraGraphQLRepository(options);
197
+ },
198
+ deps: ['HasuraConfig'],
199
+ },
200
+ {
201
+ provide: 'ProductGroupRepository',
202
+ useExisting: ProductGroupHasuraGraphQLRepository,
203
+ },
204
+ {
205
+ provide: ProductPriceLogHasuraGraphQLRepository,
206
+ useFactory: (options) => {
207
+ return new ProductPriceLogHasuraGraphQLRepository(options);
208
+ },
209
+ deps: ['HasuraConfig'],
210
+ },
211
+ {
212
+ provide: 'ProductPriceLogRepository',
213
+ useExisting: ProductPriceLogHasuraGraphQLRepository,
214
+ },
215
+ ] });
216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularHasuraGraphQLModule, decorators: [{
217
+ type: NgModule,
218
+ args: [{
219
+ providers: [
220
+ {
221
+ provide: 'HasuraConfig',
222
+ useFactory: (options, platformId) => ({
223
+ endpoint: options.endpoint,
224
+ authOptions: options.credentials,
225
+ cache: options.cache,
226
+ interceptors: {
227
+ request: (request) => {
228
+ if (isPlatformBrowser(platformId))
229
+ return request;
230
+ const interval = setInterval(() => { }, 100);
231
+ request.interval = interval;
232
+ return request;
233
+ },
234
+ response: (response, request) => {
235
+ if (isPlatformBrowser(platformId))
236
+ return response;
237
+ clearInterval(request.interval);
238
+ return response;
239
+ },
240
+ },
241
+ }),
242
+ deps: [HASURA_OPTIONS, PLATFORM_ID],
243
+ },
244
+ {
245
+ provide: 'CategoryRepository',
246
+ useExisting: CategoryHasuraGraphQLRepository,
247
+ },
248
+ {
249
+ provide: CategoryHasuraGraphQLRepository,
250
+ useFactory: (options, productRepository, categoryFilterRepository) => {
251
+ return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository);
252
+ },
253
+ deps: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
254
+ },
255
+ {
256
+ provide: 'ProductRepository',
257
+ useExisting: ProductHasuraGraphQLRepository,
258
+ },
259
+ {
260
+ provide: ProductHasuraGraphQLRepository,
261
+ useFactory: (hasuraConfig) => {
262
+ return new ProductHasuraGraphQLRepository(hasuraConfig);
263
+ },
264
+ deps: ['HasuraConfig'],
265
+ },
266
+ {
267
+ provide: 'ProductReviewRepository',
268
+ useExisting: ProductReviewHasuraGraphQLRepository,
269
+ },
270
+ {
271
+ provide: ProductReviewHasuraGraphQLRepository,
272
+ useFactory: (hasuraConfig) => {
273
+ return new ProductReviewHasuraGraphQLRepository(hasuraConfig);
274
+ },
275
+ deps: ['HasuraConfig'],
276
+ },
277
+ {
278
+ provide: 'VariantRepository',
279
+ useExisting: VariantHasuraGraphQLRepository,
280
+ },
281
+ {
282
+ provide: VariantHasuraGraphQLRepository,
283
+ useFactory: (hasuraConfig) => {
284
+ return new VariantHasuraGraphQLRepository(hasuraConfig);
285
+ },
286
+ deps: ['HasuraConfig'],
287
+ },
288
+ {
289
+ provide: 'ProductStockNotificationRepository',
290
+ useExisting: ProductStockNotificationHasuraGraphQLRepository,
291
+ },
292
+ {
293
+ provide: ProductStockNotificationHasuraGraphQLRepository,
294
+ useFactory: (hasuraConfig) => {
295
+ return new ProductStockNotificationHasuraGraphQLRepository(hasuraConfig);
296
+ },
297
+ deps: ['HasuraConfig'],
298
+ },
299
+ {
300
+ provide: 'CategoryFilterRepository',
301
+ useExisting: CategoryFilterHasuraGraphQLRepository,
302
+ },
303
+ {
304
+ provide: CategoryFilterHasuraGraphQLRepository,
305
+ useFactory: (options) => {
306
+ return new CategoryFilterHasuraGraphQLRepository(options);
307
+ },
308
+ deps: ['HasuraConfig'],
309
+ },
310
+ {
311
+ provide: 'FilterOptionRepository',
312
+ useExisting: FilterOptionHasuraGraphQLRepository,
313
+ },
314
+ {
315
+ provide: FilterOptionHasuraGraphQLRepository,
316
+ useFactory: (options) => {
317
+ return new FilterOptionHasuraGraphQLRepository(options);
318
+ },
319
+ deps: ['HasuraConfig'],
320
+ },
321
+ {
322
+ provide: 'FilterRepository',
323
+ useExisting: FilterHasuraGraphQLRepository,
324
+ },
325
+ {
326
+ provide: FilterHasuraGraphQLRepository,
327
+ useFactory: (options, filterOptionRepository, categoryFilterRepository) => {
328
+ return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository);
329
+ },
330
+ deps: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
331
+ },
332
+ {
333
+ provide: CategoryCollectionChildrenHasuraGraphQLRepository,
334
+ useFactory: (options) => new CategoryCollectionChildrenHasuraGraphQLRepository(options),
335
+ deps: ['HasuraConfig'],
336
+ },
337
+ {
338
+ provide: 'CategoryCollectionChildrenRepository',
339
+ useExisting: CategoryCollectionChildrenHasuraGraphQLRepository,
340
+ },
341
+ {
342
+ provide: CategoryProductHasuraGraphQLRepository,
343
+ useFactory: (options) => {
344
+ return new CategoryProductHasuraGraphQLRepository(options);
345
+ },
346
+ deps: ['HasuraConfig'],
347
+ },
348
+ {
349
+ provide: 'CategoryProductRepository',
350
+ useExisting: CategoryProductHasuraGraphQLRepository,
351
+ },
352
+ {
353
+ provide: WishlistHasuraGraphQLRepository,
354
+ useFactory: (options, categoryProductRepository) => {
355
+ return new WishlistHasuraGraphQLRepository(options, categoryProductRepository);
356
+ },
357
+ deps: ['HasuraConfig', CategoryProductHasuraGraphQLRepository],
358
+ },
359
+ {
360
+ provide: 'WishlistRepository',
361
+ useExisting: WishlistHasuraGraphQLRepository,
362
+ },
363
+ {
364
+ provide: ProductErrorsHasuraGraphQLRepository,
365
+ useFactory: (options, productRepository) => {
366
+ return new ProductErrorsHasuraGraphQLRepository(options, productRepository);
367
+ },
368
+ deps: ['HasuraConfig', ProductHasuraGraphQLRepository],
369
+ },
370
+ {
371
+ provide: 'ProductErrorsRepository',
372
+ useExisting: ProductErrorsHasuraGraphQLRepository,
373
+ },
374
+ {
375
+ provide: ProductCatalogHasuraGraphQLRepository,
376
+ useFactory: (options) => {
377
+ return new ProductCatalogHasuraGraphQLRepository(options);
378
+ },
379
+ deps: ['HasuraConfig'],
380
+ },
381
+ {
382
+ provide: 'ProductCatalogRepository',
383
+ useExisting: ProductCatalogHasuraGraphQLRepository,
384
+ },
385
+ {
386
+ provide: ProductStockEntryHasuraGraphQLRepository,
387
+ useFactory: (options) => {
388
+ return new ProductStockEntryHasuraGraphQLRepository(options);
389
+ },
390
+ deps: ['HasuraConfig'],
391
+ },
392
+ {
393
+ provide: 'ProductStockEntryRepository',
394
+ useExisting: ProductStockEntryHasuraGraphQLRepository,
395
+ },
396
+ {
397
+ provide: ProductGroupHasuraGraphQLRepository,
398
+ useFactory: (options) => {
399
+ return new ProductGroupHasuraGraphQLRepository(options);
400
+ },
401
+ deps: ['HasuraConfig'],
402
+ },
403
+ {
404
+ provide: 'ProductGroupRepository',
405
+ useExisting: ProductGroupHasuraGraphQLRepository,
406
+ },
407
+ {
408
+ provide: ProductPriceLogHasuraGraphQLRepository,
409
+ useFactory: (options) => {
410
+ return new ProductPriceLogHasuraGraphQLRepository(options);
411
+ },
412
+ deps: ['HasuraConfig'],
413
+ },
414
+ {
415
+ provide: 'ProductPriceLogRepository',
416
+ useExisting: ProductPriceLogHasuraGraphQLRepository,
417
+ },
418
+ ],
419
+ }]
420
+ }] });
421
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1oYXN1cmEtZ3JhcGhxbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL2FuZ3VsYXItaGFzdXJhLWdyYXBocWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ25ELE9BQU8sRUFBdUIsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxRSxPQUFPLEVBRUwsaURBQWlELEVBQ2pELHFDQUFxQyxFQUVyQywrQkFBK0IsRUFDL0Isc0NBQXNDLEVBRXRDLDZCQUE2QixFQUM3QixtQ0FBbUMsRUFNbkMscUNBQXFDLEVBRXJDLG9DQUFvQyxFQUVwQyxtQ0FBbUMsRUFDbkMsOEJBQThCLEVBQzlCLHNDQUFzQyxFQUV0QyxvQ0FBb0MsRUFFcEMsd0NBQXdDLEVBRXhDLCtDQUErQyxFQUUvQyw4QkFBOEIsRUFFOUIsK0JBQStCLEdBQ2hDLE1BQU0sbUJBQW1CLENBQUE7QUFFMUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQTs7QUFnT3pDLE1BQU0sT0FBTywwQkFBMEI7SUFDckMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUE2QjtRQUNoRCxPQUFPO1lBQ0wsUUFBUSxFQUFFLDBCQUEwQjtZQUNwQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDO1NBQzVELENBQUE7SUFDSCxDQUFDOzt1SEFOVSwwQkFBMEI7d0hBQTFCLDBCQUEwQjt3SEFBMUIsMEJBQTBCLGFBM04xQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGNBQWM7WUFDdkIsVUFBVSxFQUFFLENBQUMsT0FBNkIsRUFBRSxVQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNsRSxRQUFRLEVBQUUsT0FBTyxDQUFDLFFB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Q3ZCO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSw2QkFBNkI7NEJBQ3RDLFdBQVcsRUFBRSx3Q0FBd0M7eUJBQ3REO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxtQ0FBbUM7NEJBQzVDLFVBQVUsRUFBRSxDQUFDLE9BQVksRUFBdUMsRUFBRTtnQ0FDaEUsT0FBTyxJQUFJLG1DQUFtQyxDQUFDLE9BQU8sQ0FBQyxDQUFBOzRCQUN6RCxDQUFDOzRCQUNELElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQzt5QkFDdkI7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHdCQUF3Qjs0QkFDakMsV0FBVyxFQUFFLG1DQUFtQzt5QkFDakQ7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHNDQUFzQzs0QkFDL0MsVUFBVSxFQUFFLENBQUMsT0FBWSxFQUEwQyxFQUFFO2dDQUNuRSxPQUFPLElBQUksc0NBQXNDLENBQUMsT0FBTyxDQUFDLENBQUE7NEJBQzVELENBQUM7NEJBQ0QsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDO3lCQUN2Qjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsMkJBQTJCOzRCQUNwQyxXQUFXLEVBQUUsc0NBQXNDO3lCQUNwRDtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIENhY2hlQ29uZmlnLFxuICBDYXRlZ29yeUNvbGxlY3Rpb25DaGlsZHJlbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICBDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnksXG4gIENhdGVnb3J5SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gIENhdGVnb3J5UHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICBDYXRlZ29yeVJlcG9zaXRvcnksXG4gIEZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICBGaWx0ZXJPcHRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgRmlsdGVyT3B0aW9uUmVwb3NpdG9yeSxcbiAgRmlsdGVyUmVwb3NpdG9yeSxcbiAgR3JhcGhRTFBhcmFtcyxcbiAgSGFzdXJhQ29uc3RydWN0b3JQYXJhbXMsXG4gIEhhc3VyYUdyYXBoUUxBdXRoT3B0aW9ucyxcbiAgUHJvZHVjdENhdGFsb2dIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgUHJvZHVjdEVycm9ycyxcbiAgUHJvZHVjdEVycm9yc0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICBQcm9kdWN0RXJyb3JzUmVwb3NpdG9yeSxcbiAgUHJvZHVjdEdyb3VwSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gIFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgUHJvZHVjdFByaWNlTG9nSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gIFByb2R1Y3RSZXBvc2l0b3J5LFxuICBQcm9kdWN0UmV2aWV3SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gIFByb2R1Y3RSZXZpZXdSZXBvc2l0b3J5LFxuICBQcm9kdWN0U3RvY2tFbnRyeUhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICBQcm9kdWN0U3RvY2tFbnRyeVJlcG9zaXRvcnksXG4gIFByb2R1Y3RTdG9ja05vdGlmaWNhdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25SZXBvc2l0b3J5LFxuICBWYXJpYW50SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gIFZhcmlhbnRSZXBvc2l0b3J5LFxuICBXaXNobGlzdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcblxuaW1wb3J0IHsgSEFTVVJBX09QVElPTlMgfSBmcm9tICcuL2NvbnN0cydcblxuZXhwb3J0IHR5cGUgSGFzdXJhR3JhcGhRTE9wdGlvbnMgPSB7IGVuZHBvaW50OiBzdHJpbmc7IGNyZWRlbnRpYWxzPzogSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zOyBjYWNoZT86IENhY2hlQ29uZmlnIH1cblxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogJ0hhc3VyYUNvbmZpZycsXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogSGFzdXJhR3JhcGhRTE9wdGlvbnMsIHBsYXRmb3JtSWQ6IHN0cmluZykgPT4gKHtcbiAgICAgICAgZW5kcG9pbnQ6IG9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgIGF1dGhPcHRpb25zOiBvcHRpb25zLmNyZWRlbnRpYWxzLFxuICAgICAgICBjYWNoZTogb3B0aW9ucy5jYWNoZSxcbiAgICAgICAgaW50ZXJjZXB0b3JzOiB7XG4gICAgICAgICAgcmVxdWVzdDogKHJlcXVlc3Q6IEdyYXBoUUxQYXJhbXM8YW55PiAmIHsgaW50ZXJ2YWw6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IH0pID0+IHtcbiAgICAgICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKSkgcmV0dXJuIHJlcXVlc3RcblxuICAgICAgICAgICAgY29uc3QgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7fSwgMTAwKVxuXG4gICAgICAgICAgICByZXF1ZXN0LmludGVydmFsID0gaW50ZXJ2YWxcblxuICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc3BvbnNlOiAocmVzcG9uc2U6IGFueSwgcmVxdWVzdDogR3JhcGhRTFBhcmFtczxhbnk+ICYgeyBpbnRlcnZhbDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfSkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpKSByZXR1cm4gcmVzcG9uc2VcblxuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChyZXF1ZXN0LmludGVydmFsKVxuXG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2VcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBkZXBzOiBbSEFTVVJBX09QVElPTlMsIFBMQVRGT1JNX0lEXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdDYXRlZ29yeVJlcG9zaXRvcnknLFxuICAgICAgdXNlRXhpc3Rpbmc6IENhdGVnb3J5SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBDYXRlZ29yeUhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgdXNlRmFjdG9yeTogKFxuICAgICAgICBvcHRpb25zOiBhbnksXG4gICAgICAgIHByb2R1Y3RSZXBvc2l0b3J5OiBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgICAgIGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeTogQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICAgICk6IENhdGVnb3J5UmVwb3NpdG9yeSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgQ2F0ZWdvcnlIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zLCBwcm9kdWN0UmVwb3NpdG9yeSwgY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5KVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJywgUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LCBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5XSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdQcm9kdWN0UmVwb3NpdG9yeScsXG4gICAgICB1c2VFeGlzdGluZzogUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgdXNlRmFjdG9yeTogKGhhc3VyYUNvbmZpZzogYW55KTogUHJvZHVjdFJlcG9zaXRvcnkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShoYXN1cmFDb25maWcpXG4gICAgICB9LFxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdQcm9kdWN0UmV2aWV3UmVwb3NpdG9yeScsXG4gICAgICB1c2VFeGlzdGluZzogUHJvZHVjdFJldmlld0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogUHJvZHVjdFJldmlld0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgdXNlRmFjdG9yeTogKGhhc3VyYUNvbmZpZzogYW55KTogUHJvZHVjdFJldmlld1JlcG9zaXRvcnkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb2R1Y3RSZXZpZXdIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShoYXN1cmFDb25maWcpXG4gICAgICB9LFxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdWYXJpYW50UmVwb3NpdG9yeScsXG4gICAgICB1c2VFeGlzdGluZzogVmFyaWFudEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogVmFyaWFudEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgdXNlRmFjdG9yeTogKGhhc3VyYUNvbmZpZzogYW55KTogVmFyaWFudFJlcG9zaXRvcnkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFZhcmlhbnRIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShoYXN1cmFDb25maWcpXG4gICAgICB9LFxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25SZXBvc2l0b3J5JyxcbiAgICAgIHVzZUV4aXN0aW5nOiBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFByb2R1Y3RTdG9ja05vdGlmaWNhdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgdXNlRmFjdG9yeTogKGhhc3VyYUNvbmZpZzogYW55KTogUHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uUmVwb3NpdG9yeSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkoaGFzdXJhQ29uZmlnKVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiAnQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5JyxcbiAgICAgIHVzZUV4aXN0aW5nOiBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICAgIHVzZUZhY3Rvcnk6IChvcHRpb25zOiBhbnkpOiBDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucylcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ0ZpbHRlck9wdGlvblJlcG9zaXRvcnknLFxuICAgICAgdXNlRXhpc3Rpbmc6IEZpbHRlck9wdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogRmlsdGVyT3B0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogYW55KTogRmlsdGVyT3B0aW9uUmVwb3NpdG9yeSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgRmlsdGVyT3B0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucylcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ0ZpbHRlclJlcG9zaXRvcnknLFxuICAgICAgdXNlRXhpc3Rpbmc6IEZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogRmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgICB1c2VGYWN0b3J5OiAoXG4gICAgICAgIG9wdGlvbnM6IGFueSxcbiAgICAgICAgZmlsdGVyT3B0aW9uUmVwb3NpdG9yeTogRmlsdGVyT3B0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgICAgIGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeTogQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICAgICk6IEZpbHRlclJlcG9zaXRvcnkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IEZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMsIGZpbHRlck9wdGlvblJlcG9zaXRvcnksIGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeSlcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZycsIEZpbHRlck9wdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LCBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5XSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IENhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogYW55KTogQ2F0ZWdvcnlDb2xsZWN0aW9uQ2hpbGRyZW5IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSA9PlxuICAgICAgICBuZXcgQ2F0ZWdvcnlDb2xsZWN0aW9uQ2hpbGRyZW5IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zKSxcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiAnQ2F0ZWdvcnlDb2xsZWN0aW9uQ2hpbGRyZW5SZXBvc2l0b3J5JyxcbiAgICAgIHVzZUV4aXN0aW5nOiBDYXRlZ29yeUNvbGxlY3Rpb25DaGlsZHJlbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQ2F0ZWdvcnlQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogYW55KTogQ2F0ZWdvcnlQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IENhdGVnb3J5UHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMpXG4gICAgICB9LFxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdDYXRlZ29yeVByb2R1Y3RSZXBvc2l0b3J5JyxcbiAgICAgIHVzZUV4aXN0aW5nOiBDYXRlZ29yeVByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFdpc2hsaXN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgICB1c2VGYWN0b3J5OiAoXG4gICAgICAgIG9wdGlvbnM6IGFueSxcbiAgICAgICAgY2F0ZWdvcnlQcm9kdWN0UmVwb3NpdG9yeTogQ2F0ZWdvcnlQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgICApOiBXaXNobGlzdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBXaXNobGlzdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMsIGNhdGVnb3J5UHJvZHVjdFJlcG9zaXRvcnkpXG4gICAgICB9LFxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnLCBDYXRlZ29yeVByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeV0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiAnV2lzaGxpc3RSZXBvc2l0b3J5JyxcbiAgICAgIHVzZUV4aXN0aW5nOiBXaXNobGlzdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogUHJvZHVjdEVycm9yc0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgdXNlRmFjdG9yeTogKFxuICAgICAgICBvcHRpb25zOiBIYXN1cmFDb25zdHJ1Y3RvclBhcmFtczxQcm9kdWN0RXJyb3JzPixcbiAgICAgICAgcHJvZHVjdFJlcG9zaXRvcnk6IFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICAgICk6IFByb2R1Y3RFcnJvcnNSZXBvc2l0b3J5ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9kdWN0RXJyb3JzSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucywgcHJvZHVjdFJlcG9zaXRvcnkpXG4gICAgICB9LFxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnLCBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnldLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ1Byb2R1Y3RFcnJvcnNSZXBvc2l0b3J5JyxcbiAgICAgIHVzZUV4aXN0aW5nOiBQcm9kdWN0RXJyb3JzSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBQcm9kdWN0Q2F0YWxvZ0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IGFueSk6IFByb2R1Y3RDYXRhbG9nSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb2R1Y3RDYXRhbG9nSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucylcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ1Byb2R1Y3RDYXRhbG9nUmVwb3NpdG9yeScsXG4gICAgICB1c2VFeGlzdGluZzogUHJvZHVjdENhdGFsb2dIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFByb2R1Y3RTdG9ja0VudHJ5SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogYW55KTogUHJvZHVjdFN0b2NrRW50cnlSZXBvc2l0b3J5ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9kdWN0U3RvY2tFbnRyeUhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMpXG4gICAgICB9LFxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdQcm9kdWN0U3RvY2tFbnRyeVJlcG9zaXRvcnknLFxuICAgICAgdXNlRXhpc3Rpbmc6IFByb2R1Y3RTdG9ja0VudHJ5SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBQcm9kdWN0R3JvdXBIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICAgIHVzZUZhY3Rvcnk6IChvcHRpb25zOiBhbnkpOiBQcm9kdWN0R3JvdXBIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvZHVjdEdyb3VwSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucylcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ1Byb2R1Y3RHcm91cFJlcG9zaXRvcnknLFxuICAgICAgdXNlRXhpc3Rpbmc6IFByb2R1Y3RHcm91cEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogUHJvZHVjdFByaWNlTG9nSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogYW55KTogUHJvZHVjdFByaWNlTG9nSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb2R1Y3RQcmljZUxvZ0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMpXG4gICAgICB9LFxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdQcm9kdWN0UHJpY2VMb2dSZXBvc2l0b3J5JyxcbiAgICAgIHVzZUV4aXN0aW5nOiBQcm9kdWN0UHJpY2VMb2dIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBbmd1bGFySGFzdXJhR3JhcGhRTE1vZHVsZSB7XG4gIHN0YXRpYyBpbml0aWFsaXplQXBwKG9wdGlvbnM6IEhhc3VyYUdyYXBoUUxPcHRpb25zKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBbmd1bGFySGFzdXJhR3JhcGhRTE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQW5ndWxhckhhc3VyYUdyYXBoUUxNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEhBU1VSQV9PUFRJT05TLCB1c2VWYWx1ZTogb3B0aW9ucyB9XSxcbiAgICB9XG4gIH1cbn1cbiJdfQ==