@infrab4a/connect-angular 4.18.3-beta.0 → 4.18.4-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/angular-connect.module.d.ts +32 -32
  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 +16 -16
  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 +187 -187
  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 +527 -527
  21. package/esm2020/angular-hasura-graphql.module.mjs +331 -331
  22. package/esm2020/angular-vertex-search.module.mjs +34 -34
  23. package/esm2020/consts/backend-url.const.mjs +1 -1
  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/persistence/cookie-data-persistence.mjs +22 -22
  38. package/esm2020/persistence/data-persistence.mjs +2 -2
  39. package/esm2020/persistence/index.mjs +3 -3
  40. package/esm2020/services/auth.service.mjs +37 -37
  41. package/esm2020/services/cart.service.mjs +86 -86
  42. package/esm2020/services/catalog/adapters/category-structure.adapter.mjs +2 -2
  43. package/esm2020/services/catalog/adapters/index.mjs +4 -4
  44. package/esm2020/services/catalog/adapters/new-category-structure.adapter.mjs +43 -43
  45. package/esm2020/services/catalog/adapters/old-category-structure.adapter.mjs +23 -23
  46. package/esm2020/services/catalog/catalog.service.mjs +295 -295
  47. package/esm2020/services/catalog/category.service.mjs +51 -51
  48. package/esm2020/services/catalog/enums/index.mjs +2 -2
  49. package/esm2020/services/catalog/enums/product-sorts.enum.mjs +11 -11
  50. package/esm2020/services/catalog/index.mjs +8 -8
  51. package/esm2020/services/catalog/models/category-with-tree.model.mjs +10 -10
  52. package/esm2020/services/catalog/models/index.mjs +2 -2
  53. package/esm2020/services/catalog/types/index.mjs +2 -2
  54. package/esm2020/services/catalog/types/product-sort.type.mjs +2 -2
  55. package/esm2020/services/catalog/wishlist.service.mjs +235 -235
  56. package/esm2020/services/checkout-subscription.service.mjs +50 -50
  57. package/esm2020/services/checkout.service.mjs +122 -122
  58. package/esm2020/services/coupon.service.mjs +228 -228
  59. package/esm2020/services/helpers/index.mjs +2 -2
  60. package/esm2020/services/helpers/util.helper.mjs +18 -18
  61. package/esm2020/services/home-shop.service.mjs +125 -125
  62. package/esm2020/services/index.mjs +10 -10
  63. package/esm2020/services/order.service.mjs +30 -30
  64. package/esm2020/services/types/index.mjs +3 -3
  65. package/esm2020/services/types/required-checkout-data.type.mjs +2 -2
  66. package/esm2020/services/types/required-checkout-subscription-data.type.mjs +2 -2
  67. package/esm2020/types/firebase-app-config.type.mjs +2 -2
  68. package/esm2020/types/index.mjs +2 -2
  69. package/fesm2015/infrab4a-connect-angular.mjs +2517 -2517
  70. package/fesm2015/infrab4a-connect-angular.mjs.map +1 -1
  71. package/fesm2020/infrab4a-connect-angular.mjs +2468 -2468
  72. package/fesm2020/infrab4a-connect-angular.mjs.map +1 -1
  73. package/helpers/index.d.ts +1 -1
  74. package/helpers/mobile-operation-system-checker.helper.d.ts +3 -3
  75. package/index.d.ts +6 -6
  76. package/package.json +2 -2
  77. package/persistence/cookie-data-persistence.d.ts +10 -10
  78. package/persistence/data-persistence.d.ts +6 -6
  79. package/persistence/index.d.ts +2 -2
  80. package/services/auth.service.d.ts +18 -18
  81. package/services/cart.service.d.ts +31 -31
  82. package/services/catalog/adapters/category-structure.adapter.d.ts +4 -4
  83. package/services/catalog/adapters/index.d.ts +3 -3
  84. package/services/catalog/adapters/new-category-structure.adapter.d.ts +12 -12
  85. package/services/catalog/adapters/old-category-structure.adapter.d.ts +10 -10
  86. package/services/catalog/catalog.service.d.ts +93 -93
  87. package/services/catalog/category.service.d.ts +20 -20
  88. package/services/catalog/enums/index.d.ts +1 -1
  89. package/services/catalog/enums/product-sorts.enum.d.ts +9 -9
  90. package/services/catalog/index.d.ts +7 -7
  91. package/services/catalog/models/category-with-tree.model.d.ts +4 -4
  92. package/services/catalog/models/index.d.ts +1 -1
  93. package/services/catalog/types/index.d.ts +1 -1
  94. package/services/catalog/types/product-sort.type.d.ts +2 -2
  95. package/services/catalog/wishlist.service.d.ts +50 -50
  96. package/services/checkout-subscription.service.d.ts +19 -19
  97. package/services/checkout.service.d.ts +34 -34
  98. package/services/coupon.service.d.ts +27 -27
  99. package/services/helpers/index.d.ts +1 -1
  100. package/services/helpers/util.helper.d.ts +3 -3
  101. package/services/home-shop.service.d.ts +26 -26
  102. package/services/index.d.ts +9 -9
  103. package/services/order.service.d.ts +13 -13
  104. package/services/types/index.d.ts +2 -2
  105. package/services/types/required-checkout-data.type.d.ts +2 -2
  106. package/services/types/required-checkout-subscription-data.type.d.ts +2 -2
  107. package/types/firebase-app-config.type.d.ts +1 -1
  108. package/types/index.d.ts +1 -1
@@ -1,331 +1,331 @@
1
- import { isPlatformBrowser } from '@angular/common';
2
- import { NgModule, PLATFORM_ID } from '@angular/core';
3
- import { CategoryCollectionChildrenHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository, CategoryHasuraGraphQLRepository, CategoryProductHasuraGraphQLRepository, FilterHasuraGraphQLRepository, FilterOptionHasuraGraphQLRepository, ProductErrorsHasuraGraphQLRepository, ProductHasuraGraphQLRepository, ProductReviewsHasuraGraphQLRepository, 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
- interceptors: {
23
- request: (request) => {
24
- if (isPlatformBrowser(platformId))
25
- return request;
26
- const interval = setInterval(() => { }, 100);
27
- request.interval = interval;
28
- return request;
29
- },
30
- response: (response, request) => {
31
- if (isPlatformBrowser(platformId))
32
- return response;
33
- clearInterval(request.interval);
34
- return response;
35
- },
36
- },
37
- }),
38
- deps: [HASURA_OPTIONS, PLATFORM_ID],
39
- },
40
- {
41
- provide: 'CategoryRepository',
42
- useExisting: CategoryHasuraGraphQLRepository,
43
- },
44
- {
45
- provide: CategoryHasuraGraphQLRepository,
46
- useFactory: (options, productRepository, categoryFilterRepository) => {
47
- return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository);
48
- },
49
- deps: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
50
- },
51
- {
52
- provide: 'ProductRepository',
53
- useExisting: ProductHasuraGraphQLRepository,
54
- },
55
- {
56
- provide: ProductHasuraGraphQLRepository,
57
- useFactory: (hasuraConfig) => {
58
- return new ProductHasuraGraphQLRepository(hasuraConfig);
59
- },
60
- deps: ['HasuraConfig'],
61
- },
62
- {
63
- provide: 'ProductReviewsRepository',
64
- useExisting: ProductReviewsHasuraGraphQLRepository,
65
- },
66
- {
67
- provide: ProductReviewsHasuraGraphQLRepository,
68
- useFactory: (hasuraConfig) => {
69
- return new ProductReviewsHasuraGraphQLRepository(hasuraConfig);
70
- },
71
- deps: ['HasuraConfig'],
72
- },
73
- {
74
- provide: 'VariantRepository',
75
- useExisting: VariantHasuraGraphQLRepository,
76
- },
77
- {
78
- provide: VariantHasuraGraphQLRepository,
79
- useFactory: (hasuraConfig) => {
80
- return new VariantHasuraGraphQLRepository(hasuraConfig);
81
- },
82
- deps: ['HasuraConfig'],
83
- },
84
- {
85
- provide: 'ProductStockNotificationRepository',
86
- useExisting: ProductStockNotificationHasuraGraphQLRepository,
87
- },
88
- {
89
- provide: ProductStockNotificationHasuraGraphQLRepository,
90
- useFactory: (hasuraConfig) => {
91
- return new ProductStockNotificationHasuraGraphQLRepository(hasuraConfig);
92
- },
93
- deps: ['HasuraConfig'],
94
- },
95
- {
96
- provide: 'CategoryFilterRepository',
97
- useExisting: CategoryFilterHasuraGraphQLRepository,
98
- },
99
- {
100
- provide: CategoryFilterHasuraGraphQLRepository,
101
- useFactory: (options) => {
102
- return new CategoryFilterHasuraGraphQLRepository(options);
103
- },
104
- deps: ['HasuraConfig'],
105
- },
106
- {
107
- provide: 'FilterOptionRepository',
108
- useExisting: FilterOptionHasuraGraphQLRepository,
109
- },
110
- {
111
- provide: FilterOptionHasuraGraphQLRepository,
112
- useFactory: (options) => {
113
- return new FilterOptionHasuraGraphQLRepository(options);
114
- },
115
- deps: ['HasuraConfig'],
116
- },
117
- {
118
- provide: 'FilterRepository',
119
- useExisting: FilterHasuraGraphQLRepository,
120
- },
121
- {
122
- provide: FilterHasuraGraphQLRepository,
123
- useFactory: (options, filterOptionRepository, categoryFilterRepository) => {
124
- return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository);
125
- },
126
- deps: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
127
- },
128
- {
129
- provide: CategoryCollectionChildrenHasuraGraphQLRepository,
130
- useFactory: (options) => new CategoryCollectionChildrenHasuraGraphQLRepository(options),
131
- deps: ['HasuraConfig'],
132
- },
133
- {
134
- provide: 'CategoryCollectionChildrenRepository',
135
- useExisting: CategoryCollectionChildrenHasuraGraphQLRepository,
136
- },
137
- {
138
- provide: CategoryProductHasuraGraphQLRepository,
139
- useFactory: (options) => {
140
- return new CategoryProductHasuraGraphQLRepository(options);
141
- },
142
- deps: ['HasuraConfig'],
143
- },
144
- {
145
- provide: 'CategoryProductRepository',
146
- useExisting: CategoryProductHasuraGraphQLRepository,
147
- },
148
- {
149
- provide: WishlistHasuraGraphQLRepository,
150
- useFactory: (options, categoryProductRepository) => {
151
- return new WishlistHasuraGraphQLRepository(options, categoryProductRepository);
152
- },
153
- deps: ['HasuraConfig', CategoryProductHasuraGraphQLRepository],
154
- },
155
- {
156
- provide: 'WishlistRepository',
157
- useExisting: WishlistHasuraGraphQLRepository,
158
- },
159
- {
160
- provide: ProductErrorsHasuraGraphQLRepository,
161
- useFactory: (options, productRepository) => {
162
- return new ProductErrorsHasuraGraphQLRepository(options, productRepository);
163
- },
164
- deps: ['HasuraConfig', ProductHasuraGraphQLRepository],
165
- },
166
- {
167
- provide: 'ProductErrorsRepository',
168
- useExisting: ProductErrorsHasuraGraphQLRepository,
169
- },
170
- ] });
171
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularHasuraGraphQLModule, decorators: [{
172
- type: NgModule,
173
- args: [{
174
- providers: [
175
- {
176
- provide: 'HasuraConfig',
177
- useFactory: (options, platformId) => ({
178
- endpoint: options.endpoint,
179
- authOptions: options.credentials,
180
- interceptors: {
181
- request: (request) => {
182
- if (isPlatformBrowser(platformId))
183
- return request;
184
- const interval = setInterval(() => { }, 100);
185
- request.interval = interval;
186
- return request;
187
- },
188
- response: (response, request) => {
189
- if (isPlatformBrowser(platformId))
190
- return response;
191
- clearInterval(request.interval);
192
- return response;
193
- },
194
- },
195
- }),
196
- deps: [HASURA_OPTIONS, PLATFORM_ID],
197
- },
198
- {
199
- provide: 'CategoryRepository',
200
- useExisting: CategoryHasuraGraphQLRepository,
201
- },
202
- {
203
- provide: CategoryHasuraGraphQLRepository,
204
- useFactory: (options, productRepository, categoryFilterRepository) => {
205
- return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository);
206
- },
207
- deps: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
208
- },
209
- {
210
- provide: 'ProductRepository',
211
- useExisting: ProductHasuraGraphQLRepository,
212
- },
213
- {
214
- provide: ProductHasuraGraphQLRepository,
215
- useFactory: (hasuraConfig) => {
216
- return new ProductHasuraGraphQLRepository(hasuraConfig);
217
- },
218
- deps: ['HasuraConfig'],
219
- },
220
- {
221
- provide: 'ProductReviewsRepository',
222
- useExisting: ProductReviewsHasuraGraphQLRepository,
223
- },
224
- {
225
- provide: ProductReviewsHasuraGraphQLRepository,
226
- useFactory: (hasuraConfig) => {
227
- return new ProductReviewsHasuraGraphQLRepository(hasuraConfig);
228
- },
229
- deps: ['HasuraConfig'],
230
- },
231
- {
232
- provide: 'VariantRepository',
233
- useExisting: VariantHasuraGraphQLRepository,
234
- },
235
- {
236
- provide: VariantHasuraGraphQLRepository,
237
- useFactory: (hasuraConfig) => {
238
- return new VariantHasuraGraphQLRepository(hasuraConfig);
239
- },
240
- deps: ['HasuraConfig'],
241
- },
242
- {
243
- provide: 'ProductStockNotificationRepository',
244
- useExisting: ProductStockNotificationHasuraGraphQLRepository,
245
- },
246
- {
247
- provide: ProductStockNotificationHasuraGraphQLRepository,
248
- useFactory: (hasuraConfig) => {
249
- return new ProductStockNotificationHasuraGraphQLRepository(hasuraConfig);
250
- },
251
- deps: ['HasuraConfig'],
252
- },
253
- {
254
- provide: 'CategoryFilterRepository',
255
- useExisting: CategoryFilterHasuraGraphQLRepository,
256
- },
257
- {
258
- provide: CategoryFilterHasuraGraphQLRepository,
259
- useFactory: (options) => {
260
- return new CategoryFilterHasuraGraphQLRepository(options);
261
- },
262
- deps: ['HasuraConfig'],
263
- },
264
- {
265
- provide: 'FilterOptionRepository',
266
- useExisting: FilterOptionHasuraGraphQLRepository,
267
- },
268
- {
269
- provide: FilterOptionHasuraGraphQLRepository,
270
- useFactory: (options) => {
271
- return new FilterOptionHasuraGraphQLRepository(options);
272
- },
273
- deps: ['HasuraConfig'],
274
- },
275
- {
276
- provide: 'FilterRepository',
277
- useExisting: FilterHasuraGraphQLRepository,
278
- },
279
- {
280
- provide: FilterHasuraGraphQLRepository,
281
- useFactory: (options, filterOptionRepository, categoryFilterRepository) => {
282
- return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository);
283
- },
284
- deps: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
285
- },
286
- {
287
- provide: CategoryCollectionChildrenHasuraGraphQLRepository,
288
- useFactory: (options) => new CategoryCollectionChildrenHasuraGraphQLRepository(options),
289
- deps: ['HasuraConfig'],
290
- },
291
- {
292
- provide: 'CategoryCollectionChildrenRepository',
293
- useExisting: CategoryCollectionChildrenHasuraGraphQLRepository,
294
- },
295
- {
296
- provide: CategoryProductHasuraGraphQLRepository,
297
- useFactory: (options) => {
298
- return new CategoryProductHasuraGraphQLRepository(options);
299
- },
300
- deps: ['HasuraConfig'],
301
- },
302
- {
303
- provide: 'CategoryProductRepository',
304
- useExisting: CategoryProductHasuraGraphQLRepository,
305
- },
306
- {
307
- provide: WishlistHasuraGraphQLRepository,
308
- useFactory: (options, categoryProductRepository) => {
309
- return new WishlistHasuraGraphQLRepository(options, categoryProductRepository);
310
- },
311
- deps: ['HasuraConfig', CategoryProductHasuraGraphQLRepository],
312
- },
313
- {
314
- provide: 'WishlistRepository',
315
- useExisting: WishlistHasuraGraphQLRepository,
316
- },
317
- {
318
- provide: ProductErrorsHasuraGraphQLRepository,
319
- useFactory: (options, productRepository) => {
320
- return new ProductErrorsHasuraGraphQLRepository(options, productRepository);
321
- },
322
- deps: ['HasuraConfig', ProductHasuraGraphQLRepository],
323
- },
324
- {
325
- provide: 'ProductErrorsRepository',
326
- useExisting: ProductErrorsHasuraGraphQLRepository,
327
- },
328
- ],
329
- }]
330
- }] });
331
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1oYXN1cmEtZ3JhcGhxbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL2FuZ3VsYXItaGFzdXJhLWdyYXBocWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ25ELE9BQU8sRUFBdUIsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxRSxPQUFPLEVBQ0wsaURBQWlELEVBQ2pELHFDQUFxQyxFQUVyQywrQkFBK0IsRUFDL0Isc0NBQXNDLEVBRXRDLDZCQUE2QixFQUM3QixtQ0FBbUMsRUFPbkMsb0NBQW9DLEVBRXBDLDhCQUE4QixFQUU5QixxQ0FBcUMsRUFFckMsK0NBQStDLEVBRS9DLDhCQUE4QixFQUU5QiwrQkFBK0IsR0FDaEMsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFBOztBQW1MekMsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxNQUFNLENBQUMsYUFBYSxDQUFDLE9BR3BCO1FBQ0MsT0FBTztZQUNMLFFBQVEsRUFBRSwwQkFBMEI7WUFDcEMsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQztTQUM1RCxDQUFBO0lBQ0gsQ0FBQzs7dUhBVFUsMEJBQTBCO3dIQUExQiwwQkFBMEI7d0hBQTFCLDBCQUEwQixhQTlLMUI7UUFDVDtZQUNFLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLFVBQVUsRUFBRSxDQUFDLE9BQTZCLEVBQUUsVUFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDbEUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO2dCQUMxQixXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7Z0JBQ2hDLFlBQVksRUFBRTtv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LEVBQ1oseUJBQWlFLEVBQ2hDLEVBQUU7Z0NBQ25DLE9BQU8sSUFBSSwrQkFBK0IsQ0FBQyxPQUFPLEVBQUUseUJBQXlCLENBQUMsQ0FBQTs0QkFDaEYsQ0FBQzs0QkFDRCxJQUFJLEVBQUUsQ0FBQyxjQUFjLEVBQUUsc0NBQXNDLENBQUM7eUJBQy9EO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxvQkFBb0I7NEJBQzdCLFdBQVcsRUFBRSwrQkFBK0I7eUJBQzdDO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxvQ0FBb0M7NEJBQzdDLFVBQVUsRUFBRSxDQUNWLE9BQStDLEVBQy9DLGlCQUFpRCxFQUN4QixFQUFFO2dDQUMzQixPQUFPLElBQUksb0NBQW9DLENBQUMsT0FBTyxFQUFFLGlCQUFpQixDQUFDLENBQUE7NEJBQzdFLENBQUM7NEJBQ0QsSUFBSSxFQUFFLENBQUMsY0FBYyxFQUFFLDhCQUE4QixDQUFDO3lCQUN2RDt3QkFDRDs0QkFDRSxPQUFPLEVBQUUseUJBQXlCOzRCQUNsQyxXQUFXLEVBQUUsb0NBQW9DO3lCQUNsRDtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xyXG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQge1xyXG4gIENhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnksXHJcbiAgQ2F0ZWdvcnlIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBDYXRlZ29yeVByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBDYXRlZ29yeVJlcG9zaXRvcnksXHJcbiAgRmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgRmlsdGVyT3B0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgRmlsdGVyT3B0aW9uUmVwb3NpdG9yeSxcclxuICBGaWx0ZXJSZXBvc2l0b3J5LFxyXG4gIEdyYXBoUUxQYXJhbXMsXHJcbiAgSGFzdXJhQ29uc3RydWN0b3JQYXJhbXMsXHJcbiAgSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zLFxyXG4gIFByb2R1Y3RFcnJvcnMsXHJcbiAgUHJvZHVjdEVycm9yc0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gIFByb2R1Y3RFcnJvcnNSZXBvc2l0b3J5LFxyXG4gIFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBQcm9kdWN0UmVwb3NpdG9yeSxcclxuICBQcm9kdWN0UmV2aWV3c0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gIFByb2R1Y3RSZXZpZXdzUmVwb3NpdG9yeSxcclxuICBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25SZXBvc2l0b3J5LFxyXG4gIFZhcmlhbnRIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBWYXJpYW50UmVwb3NpdG9yeSxcclxuICBXaXNobGlzdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5pbXBvcnQgeyBIQVNVUkFfT1BUSU9OUyB9IGZyb20gJy4vY29uc3RzJ1xyXG5cclxuZXhwb3J0IHR5cGUgSGFzdXJhR3JhcGhRTE9wdGlvbnMgPSB7IGVuZHBvaW50OiBzdHJpbmc7IGNyZWRlbnRpYWxzPzogSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zIH1cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdIYXN1cmFDb25maWcnLFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogSGFzdXJhR3JhcGhRTE9wdGlvbnMsIHBsYXRmb3JtSWQ6IHN0cmluZykgPT4gKHtcclxuICAgICAgICBlbmRwb2ludDogb3B0aW9ucy5lbmRwb2ludCxcclxuICAgICAgICBhdXRoT3B0aW9uczogb3B0aW9ucy5jcmVkZW50aWFscyxcclxuICAgICAgICBpbnRlcmNlcHRvcnM6IHtcclxuICAgICAgICAgIHJlcXVlc3Q6IChyZXF1ZXN0OiBHcmFwaFFMUGFyYW1zPGFueT4gJiB7IGludGVydmFsOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB9KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKSkgcmV0dXJuIHJlcXVlc3RcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge30sIDEwMClcclxuXHJcbiAgICAgICAgICAgIHJlcXVlc3QuaW50ZXJ2YWwgPSBpbnRlcnZhbFxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICByZXNwb25zZTogKHJlc3BvbnNlOiBhbnksIHJlcXVlc3Q6IEdyYXBoUUxQYXJhbXM8YW55PiAmIHsgaW50ZXJ2YWw6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IH0pID0+IHtcclxuICAgICAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpKSByZXR1cm4gcmVzcG9uc2VcclxuXHJcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwocmVxdWVzdC5pbnRlcnZhbClcclxuXHJcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICB9KSxcclxuICAgICAgZGVwczogW0hBU1VSQV9PUFRJT05TLCBQTEFURk9STV9JRF0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnQ2F0ZWdvcnlSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IENhdGVnb3J5SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBDYXRlZ29yeUhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAoXHJcbiAgICAgICAgb3B0aW9uczogYW55LFxyXG4gICAgICAgIHByb2R1Y3RSZXBvc2l0b3J5OiBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICAgICAgY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5OiBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICApOiBDYXRlZ29yeVJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgQ2F0ZWdvcnlIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zLCBwcm9kdWN0UmVwb3NpdG9yeSwgY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5KVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZycsIFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSwgQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeV0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnUHJvZHVjdFJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VFeGlzdGluZzogUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAoaGFzdXJhQ29uZmlnOiBhbnkpOiBQcm9kdWN0UmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkoaGFzdXJhQ29uZmlnKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1Byb2R1Y3RSZXZpZXdzUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBQcm9kdWN0UmV2aWV3c0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogUHJvZHVjdFJldmlld3NIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKGhhc3VyYUNvbmZpZzogYW55KTogUHJvZHVjdFJldmlld3NSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb2R1Y3RSZXZpZXdzSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkoaGFzdXJhQ29uZmlnKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1ZhcmlhbnRSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IFZhcmlhbnRIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFZhcmlhbnRIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKGhhc3VyYUNvbmZpZzogYW55KTogVmFyaWFudFJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgVmFyaWFudEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KGhhc3VyYUNvbmZpZylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25SZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IFByb2R1Y3RTdG9ja05vdGlmaWNhdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogUHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChoYXN1cmFDb25maWc6IGFueSk6IFByb2R1Y3RTdG9ja05vdGlmaWNhdGlvblJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkoaGFzdXJhQ29uZmlnKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ0NhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IGFueSk6IENhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnRmlsdGVyT3B0aW9uUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBGaWx0ZXJPcHRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEZpbHRlck9wdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogYW55KTogRmlsdGVyT3B0aW9uUmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBGaWx0ZXJPcHRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ0ZpbHRlclJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VFeGlzdGluZzogRmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKFxyXG4gICAgICAgIG9wdGlvbnM6IGFueSxcclxuICAgICAgICBmaWx0ZXJPcHRpb25SZXBvc2l0b3J5OiBGaWx0ZXJPcHRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgICBjYXRlZ29yeUZpbHRlclJlcG9zaXRvcnk6IENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICAgICk6IEZpbHRlclJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgRmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucywgZmlsdGVyT3B0aW9uUmVwb3NpdG9yeSwgY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5KVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZycsIEZpbHRlck9wdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LCBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5XSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IENhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChvcHRpb25zOiBhbnkpOiBDYXRlZ29yeUNvbGxlY3Rpb25DaGlsZHJlbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5ID0+XHJcbiAgICAgICAgbmV3IENhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucyksXHJcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnQ2F0ZWdvcnlDb2xsZWN0aW9uQ2hpbGRyZW5SZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IENhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBDYXRlZ29yeVByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IGFueSk6IENhdGVnb3J5UHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IENhdGVnb3J5UHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnQ2F0ZWdvcnlQcm9kdWN0UmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBDYXRlZ29yeVByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFdpc2hsaXN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChcclxuICAgICAgICBvcHRpb25zOiBhbnksXHJcbiAgICAgICAgY2F0ZWdvcnlQcm9kdWN0UmVwb3NpdG9yeTogQ2F0ZWdvcnlQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICAgICk6IFdpc2hsaXN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgV2lzaGxpc3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zLCBjYXRlZ29yeVByb2R1Y3RSZXBvc2l0b3J5KVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZycsIENhdGVnb3J5UHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5XSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdXaXNobGlzdFJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VFeGlzdGluZzogV2lzaGxpc3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFByb2R1Y3RFcnJvcnNIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKFxyXG4gICAgICAgIG9wdGlvbnM6IEhhc3VyYUNvbnN0cnVjdG9yUGFyYW1zPFByb2R1Y3RFcnJvcnM+LFxyXG4gICAgICAgIHByb2R1Y3RSZXBvc2l0b3J5OiBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICAgICk6IFByb2R1Y3RFcnJvcnNSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb2R1Y3RFcnJvcnNIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zLCBwcm9kdWN0UmVwb3NpdG9yeSlcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnLCBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnldLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1Byb2R1Y3RFcnJvcnNSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IFByb2R1Y3RFcnJvcnNIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJIYXN1cmFHcmFwaFFMTW9kdWxlIHtcclxuICBzdGF0aWMgaW5pdGlhbGl6ZUFwcChvcHRpb25zOiB7XHJcbiAgICBlbmRwb2ludDogc3RyaW5nXHJcbiAgICBjcmVkZW50aWFsczogSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zXHJcbiAgfSk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QW5ndWxhckhhc3VyYUdyYXBoUUxNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBBbmd1bGFySGFzdXJhR3JhcGhRTE1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBIQVNVUkFfT1BUSU9OUywgdXNlVmFsdWU6IG9wdGlvbnMgfV0sXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
1
+ import { isPlatformBrowser } from '@angular/common';
2
+ import { NgModule, PLATFORM_ID } from '@angular/core';
3
+ import { CategoryCollectionChildrenHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository, CategoryHasuraGraphQLRepository, CategoryProductHasuraGraphQLRepository, FilterHasuraGraphQLRepository, FilterOptionHasuraGraphQLRepository, ProductErrorsHasuraGraphQLRepository, ProductHasuraGraphQLRepository, ProductReviewHasuraGraphQLRepository, 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
+ interceptors: {
23
+ request: (request) => {
24
+ if (isPlatformBrowser(platformId))
25
+ return request;
26
+ const interval = setInterval(() => { }, 100);
27
+ request.interval = interval;
28
+ return request;
29
+ },
30
+ response: (response, request) => {
31
+ if (isPlatformBrowser(platformId))
32
+ return response;
33
+ clearInterval(request.interval);
34
+ return response;
35
+ },
36
+ },
37
+ }),
38
+ deps: [HASURA_OPTIONS, PLATFORM_ID],
39
+ },
40
+ {
41
+ provide: 'CategoryRepository',
42
+ useExisting: CategoryHasuraGraphQLRepository,
43
+ },
44
+ {
45
+ provide: CategoryHasuraGraphQLRepository,
46
+ useFactory: (options, productRepository, categoryFilterRepository) => {
47
+ return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository);
48
+ },
49
+ deps: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
50
+ },
51
+ {
52
+ provide: 'ProductRepository',
53
+ useExisting: ProductHasuraGraphQLRepository,
54
+ },
55
+ {
56
+ provide: ProductHasuraGraphQLRepository,
57
+ useFactory: (hasuraConfig) => {
58
+ return new ProductHasuraGraphQLRepository(hasuraConfig);
59
+ },
60
+ deps: ['HasuraConfig'],
61
+ },
62
+ {
63
+ provide: 'ProductReviewRepository',
64
+ useExisting: ProductReviewHasuraGraphQLRepository,
65
+ },
66
+ {
67
+ provide: ProductReviewHasuraGraphQLRepository,
68
+ useFactory: (hasuraConfig) => {
69
+ return new ProductReviewHasuraGraphQLRepository(hasuraConfig);
70
+ },
71
+ deps: ['HasuraConfig'],
72
+ },
73
+ {
74
+ provide: 'VariantRepository',
75
+ useExisting: VariantHasuraGraphQLRepository,
76
+ },
77
+ {
78
+ provide: VariantHasuraGraphQLRepository,
79
+ useFactory: (hasuraConfig) => {
80
+ return new VariantHasuraGraphQLRepository(hasuraConfig);
81
+ },
82
+ deps: ['HasuraConfig'],
83
+ },
84
+ {
85
+ provide: 'ProductStockNotificationRepository',
86
+ useExisting: ProductStockNotificationHasuraGraphQLRepository,
87
+ },
88
+ {
89
+ provide: ProductStockNotificationHasuraGraphQLRepository,
90
+ useFactory: (hasuraConfig) => {
91
+ return new ProductStockNotificationHasuraGraphQLRepository(hasuraConfig);
92
+ },
93
+ deps: ['HasuraConfig'],
94
+ },
95
+ {
96
+ provide: 'CategoryFilterRepository',
97
+ useExisting: CategoryFilterHasuraGraphQLRepository,
98
+ },
99
+ {
100
+ provide: CategoryFilterHasuraGraphQLRepository,
101
+ useFactory: (options) => {
102
+ return new CategoryFilterHasuraGraphQLRepository(options);
103
+ },
104
+ deps: ['HasuraConfig'],
105
+ },
106
+ {
107
+ provide: 'FilterOptionRepository',
108
+ useExisting: FilterOptionHasuraGraphQLRepository,
109
+ },
110
+ {
111
+ provide: FilterOptionHasuraGraphQLRepository,
112
+ useFactory: (options) => {
113
+ return new FilterOptionHasuraGraphQLRepository(options);
114
+ },
115
+ deps: ['HasuraConfig'],
116
+ },
117
+ {
118
+ provide: 'FilterRepository',
119
+ useExisting: FilterHasuraGraphQLRepository,
120
+ },
121
+ {
122
+ provide: FilterHasuraGraphQLRepository,
123
+ useFactory: (options, filterOptionRepository, categoryFilterRepository) => {
124
+ return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository);
125
+ },
126
+ deps: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
127
+ },
128
+ {
129
+ provide: CategoryCollectionChildrenHasuraGraphQLRepository,
130
+ useFactory: (options) => new CategoryCollectionChildrenHasuraGraphQLRepository(options),
131
+ deps: ['HasuraConfig'],
132
+ },
133
+ {
134
+ provide: 'CategoryCollectionChildrenRepository',
135
+ useExisting: CategoryCollectionChildrenHasuraGraphQLRepository,
136
+ },
137
+ {
138
+ provide: CategoryProductHasuraGraphQLRepository,
139
+ useFactory: (options) => {
140
+ return new CategoryProductHasuraGraphQLRepository(options);
141
+ },
142
+ deps: ['HasuraConfig'],
143
+ },
144
+ {
145
+ provide: 'CategoryProductRepository',
146
+ useExisting: CategoryProductHasuraGraphQLRepository,
147
+ },
148
+ {
149
+ provide: WishlistHasuraGraphQLRepository,
150
+ useFactory: (options, categoryProductRepository) => {
151
+ return new WishlistHasuraGraphQLRepository(options, categoryProductRepository);
152
+ },
153
+ deps: ['HasuraConfig', CategoryProductHasuraGraphQLRepository],
154
+ },
155
+ {
156
+ provide: 'WishlistRepository',
157
+ useExisting: WishlistHasuraGraphQLRepository,
158
+ },
159
+ {
160
+ provide: ProductErrorsHasuraGraphQLRepository,
161
+ useFactory: (options, productRepository) => {
162
+ return new ProductErrorsHasuraGraphQLRepository(options, productRepository);
163
+ },
164
+ deps: ['HasuraConfig', ProductHasuraGraphQLRepository],
165
+ },
166
+ {
167
+ provide: 'ProductErrorsRepository',
168
+ useExisting: ProductErrorsHasuraGraphQLRepository,
169
+ },
170
+ ] });
171
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularHasuraGraphQLModule, decorators: [{
172
+ type: NgModule,
173
+ args: [{
174
+ providers: [
175
+ {
176
+ provide: 'HasuraConfig',
177
+ useFactory: (options, platformId) => ({
178
+ endpoint: options.endpoint,
179
+ authOptions: options.credentials,
180
+ interceptors: {
181
+ request: (request) => {
182
+ if (isPlatformBrowser(platformId))
183
+ return request;
184
+ const interval = setInterval(() => { }, 100);
185
+ request.interval = interval;
186
+ return request;
187
+ },
188
+ response: (response, request) => {
189
+ if (isPlatformBrowser(platformId))
190
+ return response;
191
+ clearInterval(request.interval);
192
+ return response;
193
+ },
194
+ },
195
+ }),
196
+ deps: [HASURA_OPTIONS, PLATFORM_ID],
197
+ },
198
+ {
199
+ provide: 'CategoryRepository',
200
+ useExisting: CategoryHasuraGraphQLRepository,
201
+ },
202
+ {
203
+ provide: CategoryHasuraGraphQLRepository,
204
+ useFactory: (options, productRepository, categoryFilterRepository) => {
205
+ return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository);
206
+ },
207
+ deps: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
208
+ },
209
+ {
210
+ provide: 'ProductRepository',
211
+ useExisting: ProductHasuraGraphQLRepository,
212
+ },
213
+ {
214
+ provide: ProductHasuraGraphQLRepository,
215
+ useFactory: (hasuraConfig) => {
216
+ return new ProductHasuraGraphQLRepository(hasuraConfig);
217
+ },
218
+ deps: ['HasuraConfig'],
219
+ },
220
+ {
221
+ provide: 'ProductReviewRepository',
222
+ useExisting: ProductReviewHasuraGraphQLRepository,
223
+ },
224
+ {
225
+ provide: ProductReviewHasuraGraphQLRepository,
226
+ useFactory: (hasuraConfig) => {
227
+ return new ProductReviewHasuraGraphQLRepository(hasuraConfig);
228
+ },
229
+ deps: ['HasuraConfig'],
230
+ },
231
+ {
232
+ provide: 'VariantRepository',
233
+ useExisting: VariantHasuraGraphQLRepository,
234
+ },
235
+ {
236
+ provide: VariantHasuraGraphQLRepository,
237
+ useFactory: (hasuraConfig) => {
238
+ return new VariantHasuraGraphQLRepository(hasuraConfig);
239
+ },
240
+ deps: ['HasuraConfig'],
241
+ },
242
+ {
243
+ provide: 'ProductStockNotificationRepository',
244
+ useExisting: ProductStockNotificationHasuraGraphQLRepository,
245
+ },
246
+ {
247
+ provide: ProductStockNotificationHasuraGraphQLRepository,
248
+ useFactory: (hasuraConfig) => {
249
+ return new ProductStockNotificationHasuraGraphQLRepository(hasuraConfig);
250
+ },
251
+ deps: ['HasuraConfig'],
252
+ },
253
+ {
254
+ provide: 'CategoryFilterRepository',
255
+ useExisting: CategoryFilterHasuraGraphQLRepository,
256
+ },
257
+ {
258
+ provide: CategoryFilterHasuraGraphQLRepository,
259
+ useFactory: (options) => {
260
+ return new CategoryFilterHasuraGraphQLRepository(options);
261
+ },
262
+ deps: ['HasuraConfig'],
263
+ },
264
+ {
265
+ provide: 'FilterOptionRepository',
266
+ useExisting: FilterOptionHasuraGraphQLRepository,
267
+ },
268
+ {
269
+ provide: FilterOptionHasuraGraphQLRepository,
270
+ useFactory: (options) => {
271
+ return new FilterOptionHasuraGraphQLRepository(options);
272
+ },
273
+ deps: ['HasuraConfig'],
274
+ },
275
+ {
276
+ provide: 'FilterRepository',
277
+ useExisting: FilterHasuraGraphQLRepository,
278
+ },
279
+ {
280
+ provide: FilterHasuraGraphQLRepository,
281
+ useFactory: (options, filterOptionRepository, categoryFilterRepository) => {
282
+ return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository);
283
+ },
284
+ deps: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
285
+ },
286
+ {
287
+ provide: CategoryCollectionChildrenHasuraGraphQLRepository,
288
+ useFactory: (options) => new CategoryCollectionChildrenHasuraGraphQLRepository(options),
289
+ deps: ['HasuraConfig'],
290
+ },
291
+ {
292
+ provide: 'CategoryCollectionChildrenRepository',
293
+ useExisting: CategoryCollectionChildrenHasuraGraphQLRepository,
294
+ },
295
+ {
296
+ provide: CategoryProductHasuraGraphQLRepository,
297
+ useFactory: (options) => {
298
+ return new CategoryProductHasuraGraphQLRepository(options);
299
+ },
300
+ deps: ['HasuraConfig'],
301
+ },
302
+ {
303
+ provide: 'CategoryProductRepository',
304
+ useExisting: CategoryProductHasuraGraphQLRepository,
305
+ },
306
+ {
307
+ provide: WishlistHasuraGraphQLRepository,
308
+ useFactory: (options, categoryProductRepository) => {
309
+ return new WishlistHasuraGraphQLRepository(options, categoryProductRepository);
310
+ },
311
+ deps: ['HasuraConfig', CategoryProductHasuraGraphQLRepository],
312
+ },
313
+ {
314
+ provide: 'WishlistRepository',
315
+ useExisting: WishlistHasuraGraphQLRepository,
316
+ },
317
+ {
318
+ provide: ProductErrorsHasuraGraphQLRepository,
319
+ useFactory: (options, productRepository) => {
320
+ return new ProductErrorsHasuraGraphQLRepository(options, productRepository);
321
+ },
322
+ deps: ['HasuraConfig', ProductHasuraGraphQLRepository],
323
+ },
324
+ {
325
+ provide: 'ProductErrorsRepository',
326
+ useExisting: ProductErrorsHasuraGraphQLRepository,
327
+ },
328
+ ],
329
+ }]
330
+ }] });
331
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1oYXN1cmEtZ3JhcGhxbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL2FuZ3VsYXItaGFzdXJhLWdyYXBocWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ25ELE9BQU8sRUFBdUIsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxRSxPQUFPLEVBQ0wsaURBQWlELEVBQ2pELHFDQUFxQyxFQUVyQywrQkFBK0IsRUFDL0Isc0NBQXNDLEVBRXRDLDZCQUE2QixFQUM3QixtQ0FBbUMsRUFPbkMsb0NBQW9DLEVBRXBDLDhCQUE4QixFQUU5QixvQ0FBb0MsRUFFcEMsK0NBQStDLEVBRS9DLDhCQUE4QixFQUU5QiwrQkFBK0IsR0FDaEMsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFBOztBQW1MekMsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxNQUFNLENBQUMsYUFBYSxDQUFDLE9BR3BCO1FBQ0MsT0FBTztZQUNMLFFBQVEsRUFBRSwwQkFBMEI7WUFDcEMsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQztTQUM1RCxDQUFBO0lBQ0gsQ0FBQzs7dUhBVFUsMEJBQTBCO3dIQUExQiwwQkFBMEI7d0hBQTFCLDBCQUEwQixhQTlLMUI7UUFDVDtZQUNFLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLFVBQVUsRUFBRSxDQUFDLE9BQTZCLEVBQUUsVUFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDbEUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO2dCQUMxQixXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7Z0JBQ2hDLFlBQVksRUFBRTtv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LEVBQ1oseUJBQWlFLEVBQ2hDLEVBQUU7Z0NBQ25DLE9BQU8sSUFBSSwrQkFBK0IsQ0FBQyxPQUFPLEVBQUUseUJBQXlCLENBQUMsQ0FBQTs0QkFDaEYsQ0FBQzs0QkFDRCxJQUFJLEVBQUUsQ0FBQyxjQUFjLEVBQUUsc0NBQXNDLENBQUM7eUJBQy9EO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxvQkFBb0I7NEJBQzdCLFdBQVcsRUFBRSwrQkFBK0I7eUJBQzdDO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxvQ0FBb0M7NEJBQzdDLFVBQVUsRUFBRSxDQUNWLE9BQStDLEVBQy9DLGlCQUFpRCxFQUN4QixFQUFFO2dDQUMzQixPQUFPLElBQUksb0NBQW9DLENBQUMsT0FBTyxFQUFFLGlCQUFpQixDQUFDLENBQUE7NEJBQzdFLENBQUM7NEJBQ0QsSUFBSSxFQUFFLENBQUMsY0FBYyxFQUFFLDhCQUE4QixDQUFDO3lCQUN2RDt3QkFDRDs0QkFDRSxPQUFPLEVBQUUseUJBQXlCOzRCQUNsQyxXQUFXLEVBQUUsb0NBQW9DO3lCQUNsRDtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIENhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gIENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gIENhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeSxcbiAgQ2F0ZWdvcnlIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgQ2F0ZWdvcnlQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gIENhdGVnb3J5UmVwb3NpdG9yeSxcbiAgRmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gIEZpbHRlck9wdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICBGaWx0ZXJPcHRpb25SZXBvc2l0b3J5LFxuICBGaWx0ZXJSZXBvc2l0b3J5LFxuICBHcmFwaFFMUGFyYW1zLFxuICBIYXN1cmFDb25zdHJ1Y3RvclBhcmFtcyxcbiAgSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zLFxuICBQcm9kdWN0RXJyb3JzLFxuICBQcm9kdWN0RXJyb3JzSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gIFByb2R1Y3RFcnJvcnNSZXBvc2l0b3J5LFxuICBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gIFByb2R1Y3RSZXBvc2l0b3J5LFxuICBQcm9kdWN0UmV2aWV3SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gIFByb2R1Y3RSZXZpZXdSZXBvc2l0b3J5LFxuICBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgUHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uUmVwb3NpdG9yeSxcbiAgVmFyaWFudEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICBWYXJpYW50UmVwb3NpdG9yeSxcbiAgV2lzaGxpc3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5pbXBvcnQgeyBIQVNVUkFfT1BUSU9OUyB9IGZyb20gJy4vY29uc3RzJ1xuXG5leHBvcnQgdHlwZSBIYXN1cmFHcmFwaFFMT3B0aW9ucyA9IHsgZW5kcG9pbnQ6IHN0cmluZzsgY3JlZGVudGlhbHM/OiBIYXN1cmFHcmFwaFFMQXV0aE9wdGlvbnMgfVxuXG5ATmdNb2R1bGUoe1xuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiAnSGFzdXJhQ29uZmlnJyxcbiAgICAgIHVzZUZhY3Rvcnk6IChvcHRpb25zOiBIYXN1cmFHcmFwaFFMT3B0aW9ucywgcGxhdGZvcm1JZDogc3RyaW5nKSA9PiAoe1xuICAgICAgICBlbmRwb2ludDogb3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgYXV0aE9wdGlvbnM6IG9wdGlvbnMuY3JlZGVudGlhbHMsXG4gICAgICAgIGludGVyY2VwdG9yczoge1xuICAgICAgICAgIHJlcXVlc3Q6IChyZXF1ZXN0OiBHcmFwaFFMUGFyYW1zPGFueT4gJiB7IGludGVydmFsOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIocGxhdGZvcm1JZCkpIHJldHVybiByZXF1ZXN0XG5cbiAgICAgICAgICAgIGNvbnN0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge30sIDEwMClcblxuICAgICAgICAgICAgcmVxdWVzdC5pbnRlcnZhbCA9IGludGVydmFsXG5cbiAgICAgICAgICAgIHJldHVybiByZXF1ZXN0XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXNwb25zZTogKHJlc3BvbnNlOiBhbnksIHJlcXVlc3Q6IEdyYXBoUUxQYXJhbXM8YW55PiAmIHsgaW50ZXJ2YWw6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IH0pID0+IHtcbiAgICAgICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKSkgcmV0dXJuIHJlc3BvbnNlXG5cbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwocmVxdWVzdC5pbnRlcnZhbClcblxuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgZGVwczogW0hBU1VSQV9PUFRJT05TLCBQTEFURk9STV9JRF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiAnQ2F0ZWdvcnlSZXBvc2l0b3J5JyxcbiAgICAgIHVzZUV4aXN0aW5nOiBDYXRlZ29yeUhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQ2F0ZWdvcnlIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICAgIHVzZUZhY3Rvcnk6IChcbiAgICAgICAgb3B0aW9uczogYW55LFxuICAgICAgICBwcm9kdWN0UmVwb3NpdG9yeTogUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgICBjYXRlZ29yeUZpbHRlclJlcG9zaXRvcnk6IENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgICApOiBDYXRlZ29yeVJlcG9zaXRvcnkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IENhdGVnb3J5SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucywgcHJvZHVjdFJlcG9zaXRvcnksIGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeSlcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZycsIFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSwgQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeV0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiAnUHJvZHVjdFJlcG9zaXRvcnknLFxuICAgICAgdXNlRXhpc3Rpbmc6IFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICAgIHVzZUZhY3Rvcnk6IChoYXN1cmFDb25maWc6IGFueSk6IFByb2R1Y3RSZXBvc2l0b3J5ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkoaGFzdXJhQ29uZmlnKVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiAnUHJvZHVjdFJldmlld1JlcG9zaXRvcnknLFxuICAgICAgdXNlRXhpc3Rpbmc6IFByb2R1Y3RSZXZpZXdIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFByb2R1Y3RSZXZpZXdIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICAgIHVzZUZhY3Rvcnk6IChoYXN1cmFDb25maWc6IGFueSk6IFByb2R1Y3RSZXZpZXdSZXBvc2l0b3J5ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9kdWN0UmV2aWV3SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkoaGFzdXJhQ29uZmlnKVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiAnVmFyaWFudFJlcG9zaXRvcnknLFxuICAgICAgdXNlRXhpc3Rpbmc6IFZhcmlhbnRIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFZhcmlhbnRIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICAgIHVzZUZhY3Rvcnk6IChoYXN1cmFDb25maWc6IGFueSk6IFZhcmlhbnRSZXBvc2l0b3J5ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBWYXJpYW50SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkoaGFzdXJhQ29uZmlnKVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiAnUHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uUmVwb3NpdG9yeScsXG4gICAgICB1c2VFeGlzdGluZzogUHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICAgIHVzZUZhY3Rvcnk6IChoYXN1cmFDb25maWc6IGFueSk6IFByb2R1Y3RTdG9ja05vdGlmaWNhdGlvblJlcG9zaXRvcnkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb2R1Y3RTdG9ja05vdGlmaWNhdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KGhhc3VyYUNvbmZpZylcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ0NhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeScsXG4gICAgICB1c2VFeGlzdGluZzogQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogYW55KTogQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMpXG4gICAgICB9LFxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdGaWx0ZXJPcHRpb25SZXBvc2l0b3J5JyxcbiAgICAgIHVzZUV4aXN0aW5nOiBGaWx0ZXJPcHRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEZpbHRlck9wdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IGFueSk6IEZpbHRlck9wdGlvblJlcG9zaXRvcnkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IEZpbHRlck9wdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMpXG4gICAgICB9LFxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdGaWx0ZXJSZXBvc2l0b3J5JyxcbiAgICAgIHVzZUV4aXN0aW5nOiBGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgdXNlRmFjdG9yeTogKFxuICAgICAgICBvcHRpb25zOiBhbnksXG4gICAgICAgIGZpbHRlck9wdGlvblJlcG9zaXRvcnk6IEZpbHRlck9wdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgICBjYXRlZ29yeUZpbHRlclJlcG9zaXRvcnk6IENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgICApOiBGaWx0ZXJSZXBvc2l0b3J5ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zLCBmaWx0ZXJPcHRpb25SZXBvc2l0b3J5LCBjYXRlZ29yeUZpbHRlclJlcG9zaXRvcnkpXG4gICAgICB9LFxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnLCBGaWx0ZXJPcHRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSwgQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeV0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBDYXRlZ29yeUNvbGxlY3Rpb25DaGlsZHJlbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IGFueSk6IENhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkgPT5cbiAgICAgICAgbmV3IENhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucyksXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ0NhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuUmVwb3NpdG9yeScsXG4gICAgICB1c2VFeGlzdGluZzogQ2F0ZWdvcnlDb2xsZWN0aW9uQ2hpbGRyZW5IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IENhdGVnb3J5UHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IGFueSk6IENhdGVnb3J5UHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBDYXRlZ29yeVByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zKVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiAnQ2F0ZWdvcnlQcm9kdWN0UmVwb3NpdG9yeScsXG4gICAgICB1c2VFeGlzdGluZzogQ2F0ZWdvcnlQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBXaXNobGlzdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgdXNlRmFjdG9yeTogKFxuICAgICAgICBvcHRpb25zOiBhbnksXG4gICAgICAgIGNhdGVnb3J5UHJvZHVjdFJlcG9zaXRvcnk6IENhdGVnb3J5UHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgKTogV2lzaGxpc3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgV2lzaGxpc3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zLCBjYXRlZ29yeVByb2R1Y3RSZXBvc2l0b3J5KVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJywgQ2F0ZWdvcnlQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnldLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ1dpc2hsaXN0UmVwb3NpdG9yeScsXG4gICAgICB1c2VFeGlzdGluZzogV2lzaGxpc3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFByb2R1Y3RFcnJvcnNIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICAgIHVzZUZhY3Rvcnk6IChcbiAgICAgICAgb3B0aW9uczogSGFzdXJhQ29uc3RydWN0b3JQYXJhbXM8UHJvZHVjdEVycm9ycz4sXG4gICAgICAgIHByb2R1Y3RSZXBvc2l0b3J5OiBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgICApOiBQcm9kdWN0RXJyb3JzUmVwb3NpdG9yeSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvZHVjdEVycm9yc0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMsIHByb2R1Y3RSZXBvc2l0b3J5KVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJywgUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5XSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdQcm9kdWN0RXJyb3JzUmVwb3NpdG9yeScsXG4gICAgICB1c2VFeGlzdGluZzogUHJvZHVjdEVycm9yc0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJIYXN1cmFHcmFwaFFMTW9kdWxlIHtcbiAgc3RhdGljIGluaXRpYWxpemVBcHAob3B0aW9uczoge1xuICAgIGVuZHBvaW50OiBzdHJpbmdcbiAgICBjcmVkZW50aWFsczogSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zXG4gIH0pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFuZ3VsYXJIYXN1cmFHcmFwaFFMTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBBbmd1bGFySGFzdXJhR3JhcGhRTE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogSEFTVVJBX09QVElPTlMsIHVzZVZhbHVlOiBvcHRpb25zIH1dLFxuICAgIH1cbiAgfVxufVxuIl19