@infrab4a/connect-angular 5.8.1 → 5.8.3
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.
- package/angular-connect.module.d.ts +36 -36
- package/angular-elastic-search.module.d.ts +9 -9
- package/angular-firebase-auth.module.d.ts +11 -11
- package/angular-firestore.module.d.ts +17 -17
- package/angular-hasura-graphql.module.d.ts +14 -14
- package/angular-vertex-search.module.d.ts +9 -9
- package/consts/backend-url.const.d.ts +1 -1
- package/consts/category-structure.d.ts +1 -1
- package/consts/default-shop.const.d.ts +1 -1
- package/consts/es-config.const.d.ts +1 -1
- package/consts/firebase-const.d.ts +4 -4
- package/consts/hasura-options.const.d.ts +1 -1
- package/consts/index.d.ts +8 -8
- package/consts/persistence.const.d.ts +1 -1
- package/consts/storage-base-url.const.d.ts +1 -1
- package/consts/vertex-config.const.d.ts +1 -1
- package/esm2020/angular-connect.module.mjs +293 -0
- package/esm2020/angular-elastic-search.module.mjs +34 -0
- package/esm2020/angular-firebase-auth.module.mjs +141 -0
- package/esm2020/angular-firestore.module.mjs +597 -0
- package/esm2020/angular-hasura-graphql.module.mjs +421 -0
- package/esm2020/angular-vertex-search.module.mjs +34 -0
- package/{esm2022 → esm2020}/consts/backend-url.const.mjs +1 -1
- package/{esm2022 → esm2020}/consts/category-structure.mjs +1 -1
- package/{esm2022 → esm2020}/consts/default-shop.const.mjs +1 -1
- package/{esm2022 → esm2020}/consts/es-config.const.mjs +1 -1
- package/{esm2022 → esm2020}/consts/firebase-const.mjs +4 -4
- package/{esm2022 → esm2020}/consts/hasura-options.const.mjs +1 -1
- package/{esm2022 → esm2020}/consts/index.mjs +8 -8
- package/{esm2022 → esm2020}/consts/persistence.const.mjs +1 -1
- package/{esm2022 → esm2020}/consts/storage-base-url.const.mjs +1 -1
- package/{esm2022 → esm2020}/consts/vertex-config.const.mjs +1 -1
- package/{esm2022 → esm2020}/helpers/index.mjs +1 -1
- package/{esm2022 → esm2020}/helpers/mobile-operation-system-checker.helper.mjs +6 -6
- package/{esm2022 → esm2020}/index.mjs +6 -6
- package/{esm2022 → esm2020}/infrab4a-connect-angular.mjs +4 -4
- package/{esm2022 → esm2020}/interfaces/catalog-strategies.interface.mjs +1 -1
- package/{esm2022 → esm2020}/interfaces/category-facades.interface.mjs +1 -1
- package/{esm2022 → esm2020}/interfaces/index.mjs +2 -2
- package/{esm2022 → esm2020}/persistence/cookie-data-persistence.mjs +22 -22
- package/{esm2022 → esm2020}/persistence/data-persistence.mjs +1 -1
- package/{esm2022 → esm2020}/persistence/index.mjs +2 -2
- package/{esm2022 → esm2020}/services/auth.service.mjs +37 -37
- package/{esm2022 → esm2020}/services/cart/cart-services.facade.mjs +21 -21
- package/{esm2022 → esm2020}/services/cart/index.mjs +1 -1
- package/{esm2022 → esm2020}/services/cart.service.mjs +73 -73
- package/{esm2022 → esm2020}/services/catalog/adapters/category-structure.adapter.mjs +1 -1
- package/{esm2022 → esm2020}/services/catalog/adapters/index.mjs +3 -3
- package/{esm2022 → esm2020}/services/catalog/adapters/new-category-structure.adapter.mjs +43 -43
- package/{esm2022 → esm2020}/services/catalog/adapters/old-category-structure.adapter.mjs +23 -23
- package/{esm2022 → esm2020}/services/catalog/catalog.service.mjs +111 -111
- package/{esm2022 → esm2020}/services/catalog/category.service.mjs +42 -42
- package/{esm2022 → esm2020}/services/catalog/context/catalog-search.context.mjs +39 -39
- package/{esm2022 → esm2020}/services/catalog/enums/index.mjs +1 -1
- package/{esm2022 → esm2020}/services/catalog/enums/product-sorts.enum.mjs +10 -10
- package/{esm2022 → esm2020}/services/catalog/facades/catalog-service.facade.mjs +32 -32
- package/{esm2022 → esm2020}/services/catalog/facades/catalog-strategies.facade.mjs +17 -17
- package/{esm2022 → esm2020}/services/catalog/facades/category-repository.facade.mjs +20 -20
- package/{esm2022 → esm2020}/services/catalog/facades/category-service.facade.mjs +30 -30
- package/{esm2022 → esm2020}/services/catalog/facades/index.mjs +5 -5
- package/{esm2022 → esm2020}/services/catalog/facades/product-catalog.facade.mjs +21 -21
- package/{esm2022 → esm2020}/services/catalog/helpers/brand-manager.helper.mjs +62 -62
- package/{esm2022 → esm2020}/services/catalog/helpers/catalog-filter.helper.mjs +44 -44
- package/{esm2022 → esm2020}/services/catalog/helpers/catalog-sort.helper.mjs +52 -52
- package/{esm2022 → esm2020}/services/catalog/helpers/index.mjs +4 -4
- package/{esm2022 → esm2020}/services/catalog/helpers/product-fields.helper.mjs +43 -43
- package/{esm2022 → esm2020}/services/catalog/index.mjs +7 -7
- package/{esm2022 → esm2020}/services/catalog/models/category-with-tree.model.mjs +10 -10
- package/{esm2022 → esm2020}/services/catalog/models/index.mjs +1 -1
- package/{esm2022 → esm2020}/services/catalog/services/catalog-helpers.service.mjs +33 -33
- package/{esm2022 → esm2020}/services/catalog/services/catalog-operations.facade.mjs +26 -26
- package/{esm2022 → esm2020}/services/catalog/services/catalog-repository.service.mjs +25 -25
- package/{esm2022 → esm2020}/services/catalog/services/index.mjs +4 -4
- package/{esm2022 → esm2020}/services/catalog/services/product-management.facade.mjs +25 -25
- package/{esm2022 → esm2020}/services/catalog/strategies/category-search.strategy.mjs +133 -133
- package/{esm2022 → esm2020}/services/catalog/strategies/index.mjs +3 -3
- package/{esm2022 → esm2020}/services/catalog/strategies/profile-search.strategy.mjs +42 -42
- package/{esm2022 → esm2020}/services/catalog/strategies/term-search.strategy.mjs +126 -126
- package/{esm2022 → esm2020}/services/catalog/strategies/types/strategy-params.type.mjs +1 -1
- package/{esm2022 → esm2020}/services/catalog/types/fetch-products-options.type.mjs +1 -1
- package/{esm2022 → esm2020}/services/catalog/types/fetch-products-params.type.mjs +1 -1
- package/{esm2022 → esm2020}/services/catalog/types/fetch-products-response.type.mjs +1 -1
- package/{esm2022 → esm2020}/services/catalog/types/index.mjs +5 -5
- package/{esm2022 → esm2020}/services/catalog/types/method-params.type.mjs +1 -1
- package/{esm2022 → esm2020}/services/catalog/types/product-sort.type.mjs +1 -1
- package/{esm2022 → esm2020}/services/catalog/wishlist.service.mjs +258 -258
- package/{esm2022 → esm2020}/services/checkout/checkout-dependencies.facade.mjs +20 -20
- package/{esm2022 → esm2020}/services/checkout/checkout-repositories.facade.mjs +20 -20
- package/{esm2022 → esm2020}/services/checkout/index.mjs +2 -2
- package/{esm2022 → esm2020}/services/checkout-subscription.service.mjs +55 -55
- package/esm2020/services/checkout.service.mjs +120 -0
- package/{esm2022 → esm2020}/services/coupon/coupon-repositories.facade.mjs +24 -24
- package/{esm2022 → esm2020}/services/coupon/index.mjs +1 -1
- package/{esm2022 → esm2020}/services/coupon/types/coupon-params.type.mjs +1 -1
- package/{esm2022 → esm2020}/services/coupon.service.mjs +248 -248
- package/{esm2022 → esm2020}/services/helpers/index.mjs +1 -1
- package/{esm2022 → esm2020}/services/helpers/util.helper.mjs +17 -17
- package/{esm2022 → esm2020}/services/home-shop/home-shop-repositories.facade.mjs +24 -24
- package/{esm2022 → esm2020}/services/home-shop/index.mjs +1 -1
- package/{esm2022 → esm2020}/services/home-shop.service.mjs +119 -119
- package/{esm2022 → esm2020}/services/index.mjs +11 -11
- package/{esm2022 → esm2020}/services/order-product-review.service.mjs +126 -126
- package/{esm2022 → esm2020}/services/order-recurrence.service.mjs +83 -83
- package/{esm2022 → esm2020}/services/order.service.mjs +30 -30
- package/{esm2022 → esm2020}/services/shared/configuration.facade.mjs +29 -29
- package/{esm2022 → esm2020}/services/shared/index.mjs +1 -1
- package/{esm2022 → esm2020}/services/types/index.mjs +4 -4
- package/{esm2022 → esm2020}/services/types/pending-product-review.type.mjs +1 -1
- package/{esm2022 → esm2020}/services/types/product-review-create.type.mjs +1 -1
- package/{esm2022 → esm2020}/services/types/required-checkout-data.type.mjs +1 -1
- package/{esm2022 → esm2020}/services/types/required-checkout-subscription-data.type.mjs +1 -1
- package/{esm2022 → esm2020}/types/firebase-app-config.type.mjs +1 -1
- package/{esm2022 → esm2020}/types/index.mjs +1 -1
- package/fesm2015/infrab4a-connect-angular.mjs +3746 -0
- package/fesm2015/infrab4a-connect-angular.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/infrab4a-connect-angular.mjs +3541 -3527
- package/fesm2020/infrab4a-connect-angular.mjs.map +1 -0
- package/helpers/index.d.ts +1 -1
- package/helpers/mobile-operation-system-checker.helper.d.ts +3 -3
- package/index.d.ts +6 -6
- package/interfaces/catalog-strategies.interface.d.ts +31 -31
- package/interfaces/category-facades.interface.d.ts +6 -6
- package/interfaces/index.d.ts +2 -2
- package/package.json +12 -6
- package/persistence/cookie-data-persistence.d.ts +10 -10
- package/persistence/data-persistence.d.ts +6 -6
- package/persistence/index.d.ts +2 -2
- package/services/auth.service.d.ts +18 -18
- package/services/cart/cart-services.facade.d.ts +12 -12
- package/services/cart/index.d.ts +1 -1
- package/services/cart.service.d.ts +26 -26
- package/services/catalog/adapters/category-structure.adapter.d.ts +4 -4
- package/services/catalog/adapters/index.d.ts +3 -3
- package/services/catalog/adapters/new-category-structure.adapter.d.ts +12 -12
- package/services/catalog/adapters/old-category-structure.adapter.d.ts +10 -10
- package/services/catalog/catalog.service.d.ts +24 -24
- package/services/catalog/category.service.d.ts +23 -23
- package/services/catalog/context/catalog-search.context.d.ts +14 -14
- package/services/catalog/enums/index.d.ts +1 -1
- package/services/catalog/enums/product-sorts.enum.d.ts +9 -9
- package/services/catalog/facades/catalog-service.facade.d.ts +15 -15
- package/services/catalog/facades/catalog-strategies.facade.d.ts +10 -10
- package/services/catalog/facades/category-repository.facade.d.ts +9 -9
- package/services/catalog/facades/category-service.facade.d.ts +15 -15
- package/services/catalog/facades/index.d.ts +5 -5
- package/services/catalog/facades/product-catalog.facade.d.ts +10 -10
- package/services/catalog/helpers/brand-manager.helper.d.ts +14 -14
- package/services/catalog/helpers/catalog-filter.helper.d.ts +8 -8
- package/services/catalog/helpers/catalog-sort.helper.d.ts +7 -7
- package/services/catalog/helpers/index.d.ts +4 -4
- package/services/catalog/helpers/product-fields.helper.d.ts +7 -7
- package/services/catalog/index.d.ts +7 -7
- package/services/catalog/models/category-with-tree.model.d.ts +4 -4
- package/services/catalog/models/index.d.ts +1 -1
- package/services/catalog/services/catalog-helpers.service.d.ts +17 -17
- package/services/catalog/services/catalog-operations.facade.d.ts +13 -13
- package/services/catalog/services/catalog-repository.service.d.ts +12 -12
- package/services/catalog/services/index.d.ts +4 -4
- package/services/catalog/services/product-management.facade.d.ts +12 -12
- package/services/catalog/strategies/category-search.strategy.d.ts +19 -19
- package/services/catalog/strategies/index.d.ts +3 -3
- package/services/catalog/strategies/profile-search.strategy.d.ts +14 -14
- package/services/catalog/strategies/term-search.strategy.d.ts +20 -20
- package/services/catalog/strategies/types/strategy-params.type.d.ts +59 -59
- package/services/catalog/types/fetch-products-options.type.d.ts +8 -8
- package/services/catalog/types/fetch-products-params.type.d.ts +25 -25
- package/services/catalog/types/fetch-products-response.type.d.ts +19 -19
- package/services/catalog/types/index.d.ts +5 -5
- package/services/catalog/types/method-params.type.d.ts +17 -17
- package/services/catalog/types/product-sort.type.d.ts +2 -2
- package/services/catalog/wishlist.service.d.ts +60 -60
- package/services/checkout/checkout-dependencies.facade.d.ts +10 -10
- package/services/checkout/checkout-repositories.facade.d.ts +9 -9
- package/services/checkout/index.d.ts +2 -2
- package/services/checkout-subscription.service.d.ts +19 -19
- package/services/checkout.service.d.ts +31 -30
- package/services/coupon/coupon-repositories.facade.d.ts +10 -10
- package/services/coupon/index.d.ts +1 -1
- package/services/coupon/types/coupon-params.type.d.ts +13 -13
- package/services/coupon.service.d.ts +36 -36
- package/services/helpers/index.d.ts +1 -1
- package/services/helpers/util.helper.d.ts +3 -3
- package/services/home-shop/home-shop-repositories.facade.d.ts +10 -10
- package/services/home-shop/index.d.ts +1 -1
- package/services/home-shop.service.d.ts +26 -26
- package/services/index.d.ts +11 -11
- package/services/order-product-review.service.d.ts +18 -18
- package/services/order-recurrence.service.d.ts +37 -37
- package/services/order.service.d.ts +13 -13
- package/services/shared/configuration.facade.d.ts +12 -12
- package/services/shared/index.d.ts +1 -1
- package/services/types/index.d.ts +4 -4
- package/services/types/pending-product-review.type.d.ts +12 -12
- package/services/types/product-review-create.type.d.ts +14 -14
- package/services/types/required-checkout-data.type.d.ts +2 -2
- package/services/types/required-checkout-subscription-data.type.d.ts +2 -2
- package/types/firebase-app-config.type.d.ts +1 -1
- package/types/index.d.ts +1 -1
- package/esm2022/angular-connect.module.mjs +0 -293
- package/esm2022/angular-elastic-search.module.mjs +0 -34
- package/esm2022/angular-firebase-auth.module.mjs +0 -141
- package/esm2022/angular-firestore.module.mjs +0 -597
- package/esm2022/angular-hasura-graphql.module.mjs +0 -421
- package/esm2022/angular-vertex-search.module.mjs +0 -34
- package/esm2022/services/checkout.service.mjs +0 -106
- package/fesm2022/infrab4a-connect-angular.mjs.map +0 -1
|
@@ -1,421 +0,0 @@
|
|
|
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
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularHasuraGraphQLModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: AngularHasuraGraphQLModule }); }
|
|
15
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularHasuraGraphQLModule, providers: [
|
|
16
|
-
{
|
|
17
|
-
provide: 'HasuraConfig',
|
|
18
|
-
useFactory: (options, platformId) => ({
|
|
19
|
-
endpoint: options.endpoint,
|
|
20
|
-
authOptions: options.credentials,
|
|
21
|
-
cache: options.cache,
|
|
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
|
-
provide: ProductCatalogHasuraGraphQLRepository,
|
|
172
|
-
useFactory: (options) => {
|
|
173
|
-
return new ProductCatalogHasuraGraphQLRepository(options);
|
|
174
|
-
},
|
|
175
|
-
deps: ['HasuraConfig'],
|
|
176
|
-
},
|
|
177
|
-
{
|
|
178
|
-
provide: 'ProductCatalogRepository',
|
|
179
|
-
useExisting: ProductCatalogHasuraGraphQLRepository,
|
|
180
|
-
},
|
|
181
|
-
{
|
|
182
|
-
provide: ProductStockEntryHasuraGraphQLRepository,
|
|
183
|
-
useFactory: (options) => {
|
|
184
|
-
return new ProductStockEntryHasuraGraphQLRepository(options);
|
|
185
|
-
},
|
|
186
|
-
deps: ['HasuraConfig'],
|
|
187
|
-
},
|
|
188
|
-
{
|
|
189
|
-
provide: 'ProductStockEntryRepository',
|
|
190
|
-
useExisting: ProductStockEntryHasuraGraphQLRepository,
|
|
191
|
-
},
|
|
192
|
-
{
|
|
193
|
-
provide: ProductGroupHasuraGraphQLRepository,
|
|
194
|
-
useFactory: (options) => {
|
|
195
|
-
return new ProductGroupHasuraGraphQLRepository(options);
|
|
196
|
-
},
|
|
197
|
-
deps: ['HasuraConfig'],
|
|
198
|
-
},
|
|
199
|
-
{
|
|
200
|
-
provide: 'ProductGroupRepository',
|
|
201
|
-
useExisting: ProductGroupHasuraGraphQLRepository,
|
|
202
|
-
},
|
|
203
|
-
{
|
|
204
|
-
provide: ProductPriceLogHasuraGraphQLRepository,
|
|
205
|
-
useFactory: (options) => {
|
|
206
|
-
return new ProductPriceLogHasuraGraphQLRepository(options);
|
|
207
|
-
},
|
|
208
|
-
deps: ['HasuraConfig'],
|
|
209
|
-
},
|
|
210
|
-
{
|
|
211
|
-
provide: 'ProductPriceLogRepository',
|
|
212
|
-
useExisting: ProductPriceLogHasuraGraphQLRepository,
|
|
213
|
-
},
|
|
214
|
-
] }); }
|
|
215
|
-
}
|
|
216
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1oYXN1cmEtZ3JhcGhxbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL2FuZ3VsYXItaGFzdXJhLWdyYXBocWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ25ELE9BQU8sRUFBdUIsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxRSxPQUFPLEVBRUwsaURBQWlELEVBQ2pELHFDQUFxQyxFQUVyQywrQkFBK0IsRUFDL0Isc0NBQXNDLEVBRXRDLDZCQUE2QixFQUM3QixtQ0FBbUMsRUFNbkMscUNBQXFDLEVBRXJDLG9DQUFvQyxFQUVwQyxtQ0FBbUMsRUFDbkMsOEJBQThCLEVBQzlCLHNDQUFzQyxFQUV0QyxvQ0FBb0MsRUFFcEMsd0NBQXdDLEVBRXhDLCtDQUErQyxFQUUvQyw4QkFBOEIsRUFFOUIsK0JBQStCLEdBQ2hDLE1BQU0sbUJBQW1CLENBQUE7QUFFMUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQTs7QUFnT3pDLE1BQU0sT0FBTywwQkFBMEI7SUFDckMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUE2QjtRQUNoRCxPQUFPO1lBQ0wsUUFBUSxFQUFFLDBCQUEwQjtZQUNwQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDO1NBQzVELENBQUE7SUFDSCxDQUFDOzhHQU5VLDBCQUEwQjsrR0FBMUIsMEJBQTBCOytHQUExQiwwQkFBMEIsYUEzTjFCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGNBQWM7Z0JBQ3ZCLFVBQVUsRUFBRSxDQUFDLE9BQTZCLEVBQUUsVUFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDbEUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxR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QStCLEVBQUU7Z0NBQ3hELE9BQU8sSUFBSSx3Q0FBd0MsQ0FBQyxPQUFPLENBQUMsQ0FBQTs0QkFDOUQsQ0FBQzs0QkFDRCxJQUFJLEVBQUUsQ0FBQyxjQUFjLENBQUM7eUJBQ3ZCO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSw2QkFBNkI7NEJBQ3RDLFdBQVcsRUFBRSx3Q0FBd0M7eUJBQ3REO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxtQ0FBbUM7NEJBQzVDLFVBQVUsRUFBRSxDQUFDLE9BQVksRUFBdUMsRUFBRTtnQ0FDaEUsT0FBTyxJQUFJLG1DQUFtQyxDQUFDLE9BQU8sQ0FBQyxDQUFBOzRCQUN6RCxDQUFDOzRCQUNELElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQzt5QkFDdkI7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHdCQUF3Qjs0QkFDakMsV0FBVyxFQUFFLG1DQUFtQzt5QkFDakQ7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHNDQUFzQzs0QkFDL0MsVUFBVSxFQUFFLENBQUMsT0FBWSxFQUEwQyxFQUFFO2dDQUNuRSxPQUFPLElBQUksc0NBQXNDLENBQUMsT0FBTyxDQUFDLENBQUE7NEJBQzVELENBQUM7NEJBQ0QsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDO3lCQUN2Qjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsMkJBQTJCOzRCQUNwQyxXQUFXLEVBQUUsc0NBQXNDO3lCQUNwRDtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xyXG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQge1xyXG4gIENhY2hlQ29uZmlnLFxyXG4gIENhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnksXHJcbiAgQ2F0ZWdvcnlIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBDYXRlZ29yeVByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBDYXRlZ29yeVJlcG9zaXRvcnksXHJcbiAgRmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgRmlsdGVyT3B0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgRmlsdGVyT3B0aW9uUmVwb3NpdG9yeSxcclxuICBGaWx0ZXJSZXBvc2l0b3J5LFxyXG4gIEdyYXBoUUxQYXJhbXMsXHJcbiAgSGFzdXJhQ29uc3RydWN0b3JQYXJhbXMsXHJcbiAgSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zLFxyXG4gIFByb2R1Y3RDYXRhbG9nSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgUHJvZHVjdEVycm9ycyxcclxuICBQcm9kdWN0RXJyb3JzSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgUHJvZHVjdEVycm9yc1JlcG9zaXRvcnksXHJcbiAgUHJvZHVjdEdyb3VwSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gIFByb2R1Y3RQcmljZUxvZ0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gIFByb2R1Y3RSZXBvc2l0b3J5LFxyXG4gIFByb2R1Y3RSZXZpZXdIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBQcm9kdWN0UmV2aWV3UmVwb3NpdG9yeSxcclxuICBQcm9kdWN0U3RvY2tFbnRyeUhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gIFByb2R1Y3RTdG9ja0VudHJ5UmVwb3NpdG9yeSxcclxuICBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25SZXBvc2l0b3J5LFxyXG4gIFZhcmlhbnRIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICBWYXJpYW50UmVwb3NpdG9yeSxcclxuICBXaXNobGlzdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5cclxuaW1wb3J0IHsgSEFTVVJBX09QVElPTlMgfSBmcm9tICcuL2NvbnN0cydcclxuXHJcbmV4cG9ydCB0eXBlIEhhc3VyYUdyYXBoUUxPcHRpb25zID0geyBlbmRwb2ludDogc3RyaW5nOyBjcmVkZW50aWFscz86IEhhc3VyYUdyYXBoUUxBdXRoT3B0aW9uczsgY2FjaGU/OiBDYWNoZUNvbmZpZyB9XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnSGFzdXJhQ29uZmlnJyxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IEhhc3VyYUdyYXBoUUxPcHRpb25zLCBwbGF0Zm9ybUlkOiBzdHJpbmcpID0+ICh7XHJcbiAgICAgICAgZW5kcG9pbnQ6IG9wdGlvbnMuZW5kcG9pbnQsXHJcbiAgICAgICAgYXV0aE9wdGlvbnM6IG9wdGlvbnMuY3JlZGVudGlhbHMsXHJcbiAgICAgICAgY2FjaGU6IG9wdGlvbnMuY2FjaGUsXHJcbiAgICAgICAgaW50ZXJjZXB0b3JzOiB7XHJcbiAgICAgICAgICByZXF1ZXN0OiAocmVxdWVzdDogR3JhcGhRTFBhcmFtczxhbnk+ICYgeyBpbnRlcnZhbDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIocGxhdGZvcm1JZCkpIHJldHVybiByZXF1ZXN0XHJcblxyXG4gICAgICAgICAgICBjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHt9LCAxMDApXHJcblxyXG4gICAgICAgICAgICByZXF1ZXN0LmludGVydmFsID0gaW50ZXJ2YWxcclxuXHJcbiAgICAgICAgICAgIHJldHVybiByZXF1ZXN0XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgcmVzcG9uc2U6IChyZXNwb25zZTogYW55LCByZXF1ZXN0OiBHcmFwaFFMUGFyYW1zPGFueT4gJiB7IGludGVydmFsOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB9KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKSkgcmV0dXJuIHJlc3BvbnNlXHJcblxyXG4gICAgICAgICAgICBjbGVhckludGVydmFsKHJlcXVlc3QuaW50ZXJ2YWwpXHJcblxyXG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2VcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgfSksXHJcbiAgICAgIGRlcHM6IFtIQVNVUkFfT1BUSU9OUywgUExBVEZPUk1fSURdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ0NhdGVnb3J5UmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBDYXRlZ29yeUhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogQ2F0ZWdvcnlIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKFxyXG4gICAgICAgIG9wdGlvbnM6IGFueSxcclxuICAgICAgICBwcm9kdWN0UmVwb3NpdG9yeTogUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICAgIGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeTogQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgKTogQ2F0ZWdvcnlSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IENhdGVnb3J5SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucywgcHJvZHVjdFJlcG9zaXRvcnksIGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeSlcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnLCBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksIENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnldLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1Byb2R1Y3RSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKGhhc3VyYUNvbmZpZzogYW55KTogUHJvZHVjdFJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KGhhc3VyYUNvbmZpZylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdQcm9kdWN0UmV2aWV3UmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBQcm9kdWN0UmV2aWV3SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBQcm9kdWN0UmV2aWV3SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChoYXN1cmFDb25maWc6IGFueSk6IFByb2R1Y3RSZXZpZXdSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb2R1Y3RSZXZpZXdIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShoYXN1cmFDb25maWcpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnVmFyaWFudFJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VFeGlzdGluZzogVmFyaWFudEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogVmFyaWFudEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAoaGFzdXJhQ29uZmlnOiBhbnkpOiBWYXJpYW50UmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBWYXJpYW50SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkoaGFzdXJhQ29uZmlnKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1Byb2R1Y3RTdG9ja05vdGlmaWNhdGlvblJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VFeGlzdGluZzogUHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKGhhc3VyYUNvbmZpZzogYW55KTogUHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uUmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShoYXN1cmFDb25maWcpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogYW55KTogQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdGaWx0ZXJPcHRpb25SZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IEZpbHRlck9wdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogRmlsdGVyT3B0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChvcHRpb25zOiBhbnkpOiBGaWx0ZXJPcHRpb25SZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IEZpbHRlck9wdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnRmlsdGVyUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAoXHJcbiAgICAgICAgb3B0aW9uczogYW55LFxyXG4gICAgICAgIGZpbHRlck9wdGlvblJlcG9zaXRvcnk6IEZpbHRlck9wdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICAgIGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeTogQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgKTogRmlsdGVyUmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zLCBmaWx0ZXJPcHRpb25SZXBvc2l0b3J5LCBjYXRlZ29yeUZpbHRlclJlcG9zaXRvcnkpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJywgRmlsdGVyT3B0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksIENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnldLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogQ2F0ZWdvcnlDb2xsZWN0aW9uQ2hpbGRyZW5IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IGFueSk6IENhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkgPT5cclxuICAgICAgICBuZXcgQ2F0ZWdvcnlDb2xsZWN0aW9uQ2hpbGRyZW5IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zKSxcclxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdDYXRlZ29yeUNvbGxlY3Rpb25DaGlsZHJlblJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VFeGlzdGluZzogQ2F0ZWdvcnlDb2xsZWN0aW9uQ2hpbGRyZW5IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IENhdGVnb3J5UHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogYW55KTogQ2F0ZWdvcnlQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgQ2F0ZWdvcnlQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdDYXRlZ29yeVByb2R1Y3RSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IENhdGVnb3J5UHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogV2lzaGxpc3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKFxyXG4gICAgICAgIG9wdGlvbnM6IGFueSxcclxuICAgICAgICBjYXRlZ29yeVByb2R1Y3RSZXBvc2l0b3J5OiBDYXRlZ29yeVByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgKTogV2lzaGxpc3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBXaXNobGlzdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMsIGNhdGVnb3J5UHJvZHVjdFJlcG9zaXRvcnkpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJywgQ2F0ZWdvcnlQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnldLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1dpc2hsaXN0UmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBXaXNobGlzdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogUHJvZHVjdEVycm9yc0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAoXHJcbiAgICAgICAgb3B0aW9uczogSGFzdXJhQ29uc3RydWN0b3JQYXJhbXM8UHJvZHVjdEVycm9ycz4sXHJcbiAgICAgICAgcHJvZHVjdFJlcG9zaXRvcnk6IFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgKTogUHJvZHVjdEVycm9yc1JlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvZHVjdEVycm9yc0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMsIHByb2R1Y3RSZXBvc2l0b3J5KVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZycsIFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeV0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnUHJvZHVjdEVycm9yc1JlcG9zaXRvcnknLFxyXG4gICAgICB1c2VFeGlzdGluZzogUHJvZHVjdEVycm9yc0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogUHJvZHVjdENhdGFsb2dIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IGFueSk6IFByb2R1Y3RDYXRhbG9nSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvZHVjdENhdGFsb2dIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1Byb2R1Y3RDYXRhbG9nUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBQcm9kdWN0Q2F0YWxvZ0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogUHJvZHVjdFN0b2NrRW50cnlIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IGFueSk6IFByb2R1Y3RTdG9ja0VudHJ5UmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9kdWN0U3RvY2tFbnRyeUhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnUHJvZHVjdFN0b2NrRW50cnlSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IFByb2R1Y3RTdG9ja0VudHJ5SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBQcm9kdWN0R3JvdXBIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IGFueSk6IFByb2R1Y3RHcm91cEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb2R1Y3RHcm91cEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnUHJvZHVjdEdyb3VwUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBQcm9kdWN0R3JvdXBIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFByb2R1Y3RQcmljZUxvZ0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogYW55KTogUHJvZHVjdFByaWNlTG9nSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvZHVjdFByaWNlTG9nSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdQcm9kdWN0UHJpY2VMb2dSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IFByb2R1Y3RQcmljZUxvZ0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5ndWxhckhhc3VyYUdyYXBoUUxNb2R1bGUge1xyXG4gIHN0YXRpYyBpbml0aWFsaXplQXBwKG9wdGlvbnM6IEhhc3VyYUdyYXBoUUxPcHRpb25zKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBbmd1bGFySGFzdXJhR3JhcGhRTE1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IEFuZ3VsYXJIYXN1cmFHcmFwaFFMTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEhBU1VSQV9PUFRJT05TLCB1c2VWYWx1ZTogb3B0aW9ucyB9XSxcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { ProductsVertexSearch, VertexAxiosAdapter } from '@infrab4a/connect';
|
|
3
|
-
import { VERTEX_CONFIG } from './consts';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class AngularVertexSeachModule {
|
|
6
|
-
static initializeApp(options) {
|
|
7
|
-
return {
|
|
8
|
-
ngModule: AngularVertexSeachModule,
|
|
9
|
-
providers: [{ provide: VERTEX_CONFIG, useValue: options }],
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularVertexSeachModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: AngularVertexSeachModule }); }
|
|
14
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularVertexSeachModule, providers: [
|
|
15
|
-
{
|
|
16
|
-
provide: ProductsVertexSearch,
|
|
17
|
-
useFactory: (configuration) => new ProductsVertexSearch(new VertexAxiosAdapter(configuration)),
|
|
18
|
-
deps: [VERTEX_CONFIG],
|
|
19
|
-
},
|
|
20
|
-
] }); }
|
|
21
|
-
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AngularVertexSeachModule, decorators: [{
|
|
23
|
-
type: NgModule,
|
|
24
|
-
args: [{
|
|
25
|
-
providers: [
|
|
26
|
-
{
|
|
27
|
-
provide: ProductsVertexSearch,
|
|
28
|
-
useFactory: (configuration) => new ProductsVertexSearch(new VertexAxiosAdapter(configuration)),
|
|
29
|
-
deps: [VERTEX_CONFIG],
|
|
30
|
-
},
|
|
31
|
-
],
|
|
32
|
-
}]
|
|
33
|
-
}] });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci12ZXJ0ZXgtc2VhcmNoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvYW5ndWxhci12ZXJ0ZXgtc2VhcmNoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQXNCLE1BQU0sbUJBQW1CLENBQUE7QUFFaEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQTs7QUFZeEMsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQTJCO1FBQzlDLE9BQU87WUFDTCxRQUFRLEVBQUUsd0JBQXdCO1lBQ2xDLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7U0FDM0QsQ0FBQTtJQUNILENBQUM7OEdBTlUsd0JBQXdCOytHQUF4Qix3QkFBd0I7K0dBQXhCLHdCQUF3QixhQVR4QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxvQkFBb0I7Z0JBQzdCLFVBQVUsRUFBRSxDQUFDLGFBQWlDLEVBQXdCLEVBQUUsQ0FDdEUsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUNqRSxJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUM7YUFDdEI7U0FDRjs7MkZBRVUsd0JBQXdCO2tCQVZwQyxRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsb0JBQW9COzRCQUM3QixVQUFVLEVBQUUsQ0FBQyxhQUFpQyxFQUF3QixFQUFFLENBQ3RFLElBQUksb0JBQW9CLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQzs0QkFDakUsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDO3lCQUN0QjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgUHJvZHVjdHNWZXJ0ZXhTZWFyY2gsIFZlcnRleEF4aW9zQWRhcHRlciwgVmVydGV4U2VhcmNoQ29uZmlnIH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXHJcblxyXG5pbXBvcnQgeyBWRVJURVhfQ09ORklHIH0gZnJvbSAnLi9jb25zdHMnXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBQcm9kdWN0c1ZlcnRleFNlYXJjaCxcclxuICAgICAgdXNlRmFjdG9yeTogKGNvbmZpZ3VyYXRpb246IFZlcnRleFNlYXJjaENvbmZpZyk6IFByb2R1Y3RzVmVydGV4U2VhcmNoID0+XHJcbiAgICAgICAgbmV3IFByb2R1Y3RzVmVydGV4U2VhcmNoKG5ldyBWZXJ0ZXhBeGlvc0FkYXB0ZXIoY29uZmlndXJhdGlvbikpLFxyXG4gICAgICBkZXBzOiBbVkVSVEVYX0NPTkZJR10sXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbmd1bGFyVmVydGV4U2VhY2hNb2R1bGUge1xyXG4gIHN0YXRpYyBpbml0aWFsaXplQXBwKG9wdGlvbnM6IFZlcnRleFNlYXJjaENvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QW5ndWxhclZlcnRleFNlYWNoTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogQW5ndWxhclZlcnRleFNlYWNoTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFZFUlRFWF9DT05GSUcsIHVzZVZhbHVlOiBvcHRpb25zIH1dLFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Checkout, isNil, NotFoundError, pick, } from '@infrab4a/connect';
|
|
3
|
-
import { from, of, throwError } from 'rxjs';
|
|
4
|
-
import { concatMap, map } from 'rxjs/operators';
|
|
5
|
-
import { CheckoutDependenciesFacade, CheckoutRepositoriesFacade } from './checkout';
|
|
6
|
-
import { ConfigurationFacade } from './shared';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "./checkout";
|
|
9
|
-
import * as i2 from "./shared";
|
|
10
|
-
export class CheckoutService {
|
|
11
|
-
constructor(repositoriesFacade, dependenciesFacade, configurationFacade) {
|
|
12
|
-
this.repositoriesFacade = repositoriesFacade;
|
|
13
|
-
this.dependenciesFacade = dependenciesFacade;
|
|
14
|
-
this.configurationFacade = configurationFacade;
|
|
15
|
-
this.checkoutUrl = null;
|
|
16
|
-
this.checkoutUrl = this.configurationFacade.getCheckoutUrl();
|
|
17
|
-
}
|
|
18
|
-
getCheckout(checkoutData) {
|
|
19
|
-
return this.dependenciesFacade.dataPersistence
|
|
20
|
-
.get('checkoutId')
|
|
21
|
-
.pipe(concatMap((id) => !isNil(id) ? this.repositoriesFacade.checkoutRepository.get({ id }) : this.createCheckout(checkoutData)));
|
|
22
|
-
}
|
|
23
|
-
getUserByCheckout(checkoutId) {
|
|
24
|
-
return from(this.repositoriesFacade.checkoutRepository.get({ id: checkoutId })).pipe(concatMap((checkout) => checkout?.user?.id
|
|
25
|
-
? of(checkout.user)
|
|
26
|
-
: from(this.repositoriesFacade.userRepository.get({ id: checkout.user.id }))), concatMap((user) => of(user) || throwError(() => new NotFoundError('User is not found'))));
|
|
27
|
-
}
|
|
28
|
-
updateCheckoutLineItems(checkout) {
|
|
29
|
-
return from(this.repositoriesFacade.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })));
|
|
30
|
-
}
|
|
31
|
-
updateCheckoutUser(checkout) {
|
|
32
|
-
return from(this.repositoriesFacade.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })));
|
|
33
|
-
}
|
|
34
|
-
clearCheckoutFromSession() {
|
|
35
|
-
return this.dependenciesFacade.dataPersistence.remove('checkoutId');
|
|
36
|
-
}
|
|
37
|
-
resetCheckoutValues() {
|
|
38
|
-
return this.getCheckout().pipe(concatMap((checkout) => this.dependenciesFacade.httpClient.post(`${this.checkoutUrl}/checkoutResetValues`, {
|
|
39
|
-
checkoutId: checkout.id,
|
|
40
|
-
})), concatMap(() => this.getCheckout()));
|
|
41
|
-
}
|
|
42
|
-
applyCouponDiscount(nickname, checkoutType) {
|
|
43
|
-
return this.getCheckout().pipe(concatMap((checkout) => this.dependenciesFacade.httpClient.post(`${this.checkoutUrl}/checkoutApplyDiscount`, {
|
|
44
|
-
checkoutId: checkout.id,
|
|
45
|
-
coupon: nickname,
|
|
46
|
-
checkoutType,
|
|
47
|
-
})), concatMap(() => this.getCheckout()), map((checkout) => checkout.coupon));
|
|
48
|
-
}
|
|
49
|
-
removeCouponDiscount() {
|
|
50
|
-
return this.getCheckout().pipe(concatMap((checkout) => this.dependenciesFacade.httpClient.post(`${this.checkoutUrl}/checkoutRemoveDiscount`, {
|
|
51
|
-
checkoutId: checkout.id,
|
|
52
|
-
})), concatMap(() => this.getCheckout()));
|
|
53
|
-
}
|
|
54
|
-
validateStockProducts() {
|
|
55
|
-
return this.getCheckout().pipe(concatMap((checkout) => this.dependenciesFacade.httpClient.post(`${this.checkoutUrl}/checkoutValidateProductStock`, {
|
|
56
|
-
checkoutId: checkout.id,
|
|
57
|
-
})));
|
|
58
|
-
}
|
|
59
|
-
selectShippingAddress(address) {
|
|
60
|
-
return this.getCheckout().pipe(concatMap((checkout) => {
|
|
61
|
-
return this.repositoriesFacade.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, shippingAddress: address, billingAddress: address }));
|
|
62
|
-
}));
|
|
63
|
-
}
|
|
64
|
-
getAvailableShippingForProduct(productShipping) {
|
|
65
|
-
return this.dependenciesFacade.httpClient.post(`${this.checkoutUrl}/checkoutGetAvailableShipping`, {
|
|
66
|
-
checkoutId: null,
|
|
67
|
-
productShipping,
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
getAvailableShippingForCheckout() {
|
|
71
|
-
return this.getCheckout().pipe(concatMap((checkout) => this.dependenciesFacade.httpClient.post(`${this.checkoutUrl}/checkoutGetAvailableShipping`, {
|
|
72
|
-
checkoutId: checkout.id,
|
|
73
|
-
productShipping: null,
|
|
74
|
-
})));
|
|
75
|
-
}
|
|
76
|
-
selectShipping(option) {
|
|
77
|
-
return this.getCheckout().pipe(concatMap((checkout) => this.dependenciesFacade.httpClient.post(`${this.checkoutUrl}/checkoutSelectShipping`, {
|
|
78
|
-
checkoutId: checkout.id,
|
|
79
|
-
shippingOption: option,
|
|
80
|
-
})), concatMap(() => this.getCheckout()));
|
|
81
|
-
}
|
|
82
|
-
createOrder(checkoutPayload, paymentProvider, applicationVersion) {
|
|
83
|
-
return this.dependenciesFacade.httpClient.post(`${this.checkoutUrl}/checkout`, {
|
|
84
|
-
data: {
|
|
85
|
-
...checkoutPayload,
|
|
86
|
-
applicationVersion,
|
|
87
|
-
paymentProvider,
|
|
88
|
-
},
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
async createCheckout(checkoutData) {
|
|
92
|
-
const checkout = await this.repositoriesFacade.checkoutRepository.create({
|
|
93
|
-
createdAt: new Date(),
|
|
94
|
-
...Checkout.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),
|
|
95
|
-
shop: checkoutData?.shop || this.configurationFacade.defaultShop,
|
|
96
|
-
});
|
|
97
|
-
await this.dependenciesFacade.dataPersistence.set('checkoutId', checkout.id).toPromise();
|
|
98
|
-
return checkout;
|
|
99
|
-
}
|
|
100
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CheckoutService, deps: [{ token: i1.CheckoutRepositoriesFacade }, { token: i1.CheckoutDependenciesFacade }, { token: i2.ConfigurationFacade }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
101
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CheckoutService }); }
|
|
102
|
-
}
|
|
103
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CheckoutService, decorators: [{
|
|
104
|
-
type: Injectable
|
|
105
|
-
}], ctorParameters: () => [{ type: i1.CheckoutRepositoriesFacade }, { type: i1.CheckoutDependenciesFacade }, { type: i2.ConfigurationFacade }] });
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2hlY2tvdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFDTCxRQUFRLEVBT1IsS0FBSyxFQUNMLGFBQWEsRUFDYixJQUFJLEdBTUwsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUvQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDbkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFBOzs7O0FBSTlDLE1BQU0sT0FBTyxlQUFlO0lBRzFCLFlBQ21CLGtCQUE4QyxFQUM5QyxrQkFBOEMsRUFDOUMsbUJBQXdDO1FBRnhDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBNEI7UUFDOUMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUE0QjtRQUM5Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBTG5ELGdCQUFXLEdBQVcsSUFBSSxDQUFBO1FBT2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsRUFBRSxDQUFBO0lBQzlELENBQUM7SUFFRCxXQUFXLENBQUMsWUFBbUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZTthQUMzQyxHQUFHLENBQUMsWUFBWSxDQUFDO2FBQ2pCLElBQUksQ0FDSCxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUNmLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FDeEcsQ0FDRixDQUFBO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLFVBQWtCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDbEYsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDckIsUUFBUSxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ2hCLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNuQixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUMvRSxFQUNELFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FDMUYsQ0FBQTtJQUNILENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxRQUEyQjtRQUNqRCxPQUFPLElBQUksQ0FDVCxJQUFJLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUMvQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUN4RSxDQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsUUFBMkI7UUFDNUMsT0FBTyxJQUFJLENBQ1QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQ2pILENBQUE7SUFDSCxDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDckUsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQzVCLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQ3JCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsc0JBQXNCLEVBQUU7WUFDakYsVUFBVSxFQUFFLFFBQVEsQ0FBQyxFQUFFO1NBQ3hCLENBQUMsQ0FDSCxFQUNELFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FDcEMsQ0FBQTtJQUNILENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxRQUFnQixFQUFFLFlBQTJCO1FBQy9ELE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FDNUIsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDckIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyx3QkFBd0IsRUFBRTtZQUNuRixVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQUU7WUFDdkIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsWUFBWTtTQUNiLENBQUMsQ0FDSCxFQUNELFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsRUFDbkMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQ25DLENBQUE7SUFDSCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FDNUIsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDckIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyx5QkFBeUIsRUFBRTtZQUNwRixVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQUU7U0FDeEIsQ0FBQyxDQUNILEVBQ0QsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUNwQyxDQUFBO0lBQ0gsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQzVCLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQ3JCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUlwQyxHQUFHLElBQUksQ0FBQyxXQUFXLCtCQUErQixFQUFFO1lBQ3JELFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRTtTQUN4QixDQUFDLENBQ0gsQ0FDRixDQUFBO0lBQ0gsQ0FBQztJQUVELHFCQUFxQixDQUFDLE9BQW9CO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FDNUIsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDckIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUN0RCxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FDNUYsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUNILENBQUE7SUFDSCxDQUFDO0lBRUQsOEJBQThCLENBQUMsZUFBdUM7UUFDcEUsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDNUMsR0FBRyxJQUFJLENBQUMsV0FBVywrQkFBK0IsRUFDbEQ7WUFDRSxVQUFVLEVBQUUsSUFBSTtZQUNoQixlQUFlO1NBQ2hCLENBQ0YsQ0FBQTtJQUNILENBQUM7SUFFRCwrQkFBK0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUM1QixTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDckMsR0FBRyxJQUFJLENBQUMsV0FBVywrQkFBK0IsRUFDbEQ7WUFDRSxVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQUU7WUFDdkIsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FDRixDQUNGLENBQ0YsQ0FBQTtJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsTUFBYztRQUMzQixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQzVCLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQ3JCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcseUJBQXlCLEVBQUU7WUFDcEYsVUFBVSxFQUFFLFFBQVEsQ0FBQyxFQUFFO1lBQ3ZCLGNBQWMsRUFBRSxNQUFNO1NBQ3ZCLENBQUMsQ0FDSCxFQUNELFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FDcEMsQ0FBQTtJQUNILENBQUM7SUFFRCxXQUFXLENBQ1QsZUFBdUMsRUFDdkMsZUFBdUIsRUFDdkIsa0JBQTBCO1FBRTFCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQW1CLEdBQUcsSUFBSSxDQUFDLFdBQVcsV0FBVyxFQUFFO1lBQy9GLElBQUksRUFBRTtnQkFDSixHQUFHLGVBQWU7Z0JBQ2xCLGtCQUFrQjtnQkFDbEIsZUFBZTthQUNoQjtTQUNGLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTyxLQUFLLENBQUMsY0FBYyxDQUFDLFlBQW1DO1FBQzlELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztZQUN2RSxTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDckIsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRTtZQUN0RSxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVztTQUNqRSxDQUFDLENBQUE7UUFFRixNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUE7UUFFeEYsT0FBTyxRQUFRLENBQUE7SUFDakIsQ0FBQzs4R0ExS1UsZUFBZTtrSEFBZixlQUFlOzsyRkFBZixlQUFlO2tCQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7XHJcbiAgQ2hlY2tvdXQsXHJcbiAgQ2hlY2tvdXRQYXlsb2FkUmVxdWVzdCxcclxuICBDaGVja291dFJlc3BvbnNlLFxyXG4gIENoZWNrb3V0U3RvY2tWYWxpZGF0aW9uLFxyXG4gIENoZWNrb3V0VHlwZXMsXHJcbiAgQ291cG9uLFxyXG4gIENyZWF0ZVNob3BwaW5nUmVjdXJyZW5jeVBheWxvYWQsXHJcbiAgaXNOaWwsXHJcbiAgTm90Rm91bmRFcnJvcixcclxuICBwaWNrLFxyXG4gIFNoaXBwaW5nTWV0aG9kUmVzcG9uc2UsXHJcbiAgU2hpcHBpbmdQcm9kdWN0UmVxdWVzdCxcclxuICBTaG9wcGluZ1JlY3VycmVuY2UsXHJcbiAgVXNlcixcclxuICBVc2VyQWRkcmVzcyxcclxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcclxuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBjb25jYXRNYXAsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xyXG5cclxuaW1wb3J0IHsgQ2hlY2tvdXREZXBlbmRlbmNpZXNGYWNhZGUsIENoZWNrb3V0UmVwb3NpdG9yaWVzRmFjYWRlIH0gZnJvbSAnLi9jaGVja291dCdcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkZhY2FkZSB9IGZyb20gJy4vc2hhcmVkJ1xyXG5pbXBvcnQgeyBSZXF1aXJlZENoZWNrb3V0RGF0YSB9IGZyb20gJy4vdHlwZXMnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDaGVja291dFNlcnZpY2Uge1xyXG4gIHByaXZhdGUgY2hlY2tvdXRVcmw6IHN0cmluZyA9IG51bGxcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlcG9zaXRvcmllc0ZhY2FkZTogQ2hlY2tvdXRSZXBvc2l0b3JpZXNGYWNhZGUsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlcGVuZGVuY2llc0ZhY2FkZTogQ2hlY2tvdXREZXBlbmRlbmNpZXNGYWNhZGUsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb25GYWNhZGU6IENvbmZpZ3VyYXRpb25GYWNhZGUsXHJcbiAgKSB7XHJcbiAgICB0aGlzLmNoZWNrb3V0VXJsID0gdGhpcy5jb25maWd1cmF0aW9uRmFjYWRlLmdldENoZWNrb3V0VXJsKClcclxuICB9XHJcblxyXG4gIGdldENoZWNrb3V0KGNoZWNrb3V0RGF0YT86IFJlcXVpcmVkQ2hlY2tvdXREYXRhKTogT2JzZXJ2YWJsZTxDaGVja291dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGVwZW5kZW5jaWVzRmFjYWRlLmRhdGFQZXJzaXN0ZW5jZVxyXG4gICAgICAuZ2V0KCdjaGVja291dElkJylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgY29uY2F0TWFwKChpZCkgPT5cclxuICAgICAgICAgICFpc05pbChpZCkgPyB0aGlzLnJlcG9zaXRvcmllc0ZhY2FkZS5jaGVja291dFJlcG9zaXRvcnkuZ2V0KHsgaWQgfSkgOiB0aGlzLmNyZWF0ZUNoZWNrb3V0KGNoZWNrb3V0RGF0YSksXHJcbiAgICAgICAgKSxcclxuICAgICAgKVxyXG4gIH1cclxuXHJcbiAgZ2V0VXNlckJ5Q2hlY2tvdXQoY2hlY2tvdXRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxVc2VyPiB7XHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLnJlcG9zaXRvcmllc0ZhY2FkZS5jaGVja291dFJlcG9zaXRvcnkuZ2V0KHsgaWQ6IGNoZWNrb3V0SWQgfSkpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+XHJcbiAgICAgICAgY2hlY2tvdXQ/LnVzZXI/LmlkXHJcbiAgICAgICAgICA/IG9mKGNoZWNrb3V0LnVzZXIpXHJcbiAgICAgICAgICA6IGZyb20odGhpcy5yZXBvc2l0b3JpZXNGYWNhZGUudXNlclJlcG9zaXRvcnkuZ2V0KHsgaWQ6IGNoZWNrb3V0LnVzZXIuaWQgfSkpLFxyXG4gICAgICApLFxyXG4gICAgICBjb25jYXRNYXAoKHVzZXIpID0+IG9mKHVzZXIpIHx8IHRocm93RXJyb3IoKCkgPT4gbmV3IE5vdEZvdW5kRXJyb3IoJ1VzZXIgaXMgbm90IGZvdW5kJykpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIHVwZGF0ZUNoZWNrb3V0TGluZUl0ZW1zKGNoZWNrb3V0OiBQYXJ0aWFsPENoZWNrb3V0Pik6IE9ic2VydmFibGU8Q2hlY2tvdXQ+IHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLnJlcG9zaXRvcmllc0ZhY2FkZS5jaGVja291dFJlcG9zaXRvcnkudXBkYXRlKFxyXG4gICAgICAgIENoZWNrb3V0LnRvSW5zdGFuY2UoeyBpZDogY2hlY2tvdXQuaWQsIGxpbmVJdGVtczogY2hlY2tvdXQubGluZUl0ZW1zIH0pLFxyXG4gICAgICApLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ2hlY2tvdXRVc2VyKGNoZWNrb3V0OiBQYXJ0aWFsPENoZWNrb3V0Pik6IE9ic2VydmFibGU8Q2hlY2tvdXQ+IHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLnJlcG9zaXRvcmllc0ZhY2FkZS5jaGVja291dFJlcG9zaXRvcnkudXBkYXRlKENoZWNrb3V0LnRvSW5zdGFuY2UoeyBpZDogY2hlY2tvdXQuaWQsIHVzZXI6IGNoZWNrb3V0LnVzZXIgfSkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgY2xlYXJDaGVja291dEZyb21TZXNzaW9uKCk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGVwZW5kZW5jaWVzRmFjYWRlLmRhdGFQZXJzaXN0ZW5jZS5yZW1vdmUoJ2NoZWNrb3V0SWQnKVxyXG4gIH1cclxuXHJcbiAgcmVzZXRDaGVja291dFZhbHVlcygpOiBPYnNlcnZhYmxlPENoZWNrb3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDaGVja291dCgpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+XHJcbiAgICAgICAgdGhpcy5kZXBlbmRlbmNpZXNGYWNhZGUuaHR0cENsaWVudC5wb3N0KGAke3RoaXMuY2hlY2tvdXRVcmx9L2NoZWNrb3V0UmVzZXRWYWx1ZXNgLCB7XHJcbiAgICAgICAgICBjaGVja291dElkOiBjaGVja291dC5pZCxcclxuICAgICAgICB9KSxcclxuICAgICAgKSxcclxuICAgICAgY29uY2F0TWFwKCgpID0+IHRoaXMuZ2V0Q2hlY2tvdXQoKSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBhcHBseUNvdXBvbkRpc2NvdW50KG5pY2tuYW1lOiBzdHJpbmcsIGNoZWNrb3V0VHlwZTogQ2hlY2tvdXRUeXBlcyk6IE9ic2VydmFibGU8Q291cG9uPiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDaGVja291dCgpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+XHJcbiAgICAgICAgdGhpcy5kZXBlbmRlbmNpZXNGYWNhZGUuaHR0cENsaWVudC5wb3N0KGAke3RoaXMuY2hlY2tvdXRVcmx9L2NoZWNrb3V0QXBwbHlEaXNjb3VudGAsIHtcclxuICAgICAgICAgIGNoZWNrb3V0SWQ6IGNoZWNrb3V0LmlkLFxyXG4gICAgICAgICAgY291cG9uOiBuaWNrbmFtZSxcclxuICAgICAgICAgIGNoZWNrb3V0VHlwZSxcclxuICAgICAgICB9KSxcclxuICAgICAgKSxcclxuICAgICAgY29uY2F0TWFwKCgpID0+IHRoaXMuZ2V0Q2hlY2tvdXQoKSksXHJcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IGNoZWNrb3V0LmNvdXBvbiksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICByZW1vdmVDb3Vwb25EaXNjb3VudCgpOiBPYnNlcnZhYmxlPENoZWNrb3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDaGVja291dCgpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+XHJcbiAgICAgICAgdGhpcy5kZXBlbmRlbmNpZXNGYWNhZGUuaHR0cENsaWVudC5wb3N0KGAke3RoaXMuY2hlY2tvdXRVcmx9L2NoZWNrb3V0UmVtb3ZlRGlzY291bnRgLCB7XHJcbiAgICAgICAgICBjaGVja291dElkOiBjaGVja291dC5pZCxcclxuICAgICAgICB9KSxcclxuICAgICAgKSxcclxuICAgICAgY29uY2F0TWFwKCgpID0+IHRoaXMuZ2V0Q2hlY2tvdXQoKSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZVN0b2NrUHJvZHVjdHMoKTogT2JzZXJ2YWJsZTxDaGVja291dFN0b2NrVmFsaWRhdGlvbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXQoKS5waXBlKFxyXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0KSA9PlxyXG4gICAgICAgIHRoaXMuZGVwZW5kZW5jaWVzRmFjYWRlLmh0dHBDbGllbnQucG9zdDx7XHJcbiAgICAgICAgICB2YWxpZDogYm9vbGVhblxyXG4gICAgICAgICAgb3V0T2ZTdG9jazogc3RyaW5nW11cclxuICAgICAgICAgIGxpbWl0ZWRTdG9jazogc3RyaW5nW11cclxuICAgICAgICB9PihgJHt0aGlzLmNoZWNrb3V0VXJsfS9jaGVja291dFZhbGlkYXRlUHJvZHVjdFN0b2NrYCwge1xyXG4gICAgICAgICAgY2hlY2tvdXRJZDogY2hlY2tvdXQuaWQsXHJcbiAgICAgICAgfSksXHJcbiAgICAgICksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBzZWxlY3RTaGlwcGluZ0FkZHJlc3MoYWRkcmVzczogVXNlckFkZHJlc3MpOiBPYnNlcnZhYmxlPENoZWNrb3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDaGVja291dCgpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5yZXBvc2l0b3JpZXNGYWNhZGUuY2hlY2tvdXRSZXBvc2l0b3J5LnVwZGF0ZShcclxuICAgICAgICAgIENoZWNrb3V0LnRvSW5zdGFuY2UoeyBpZDogY2hlY2tvdXQuaWQsIHNoaXBwaW5nQWRkcmVzczogYWRkcmVzcywgYmlsbGluZ0FkZHJlc3M6IGFkZHJlc3MgfSksXHJcbiAgICAgICAgKVxyXG4gICAgICB9KSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIGdldEF2YWlsYWJsZVNoaXBwaW5nRm9yUHJvZHVjdChwcm9kdWN0U2hpcHBpbmc6IFNoaXBwaW5nUHJvZHVjdFJlcXVlc3QpOiBPYnNlcnZhYmxlPFNoaXBwaW5nTWV0aG9kUmVzcG9uc2VbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGVwZW5kZW5jaWVzRmFjYWRlLmh0dHBDbGllbnQucG9zdDxTaGlwcGluZ01ldGhvZFJlc3BvbnNlW10+KFxyXG4gICAgICBgJHt0aGlzLmNoZWNrb3V0VXJsfS9jaGVja291dEdldEF2YWlsYWJsZVNoaXBwaW5nYCxcclxuICAgICAge1xyXG4gICAgICAgIGNoZWNrb3V0SWQ6IG51bGwsXHJcbiAgICAgICAgcHJvZHVjdFNoaXBwaW5nLFxyXG4gICAgICB9LFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZ2V0QXZhaWxhYmxlU2hpcHBpbmdGb3JDaGVja291dCgpOiBPYnNlcnZhYmxlPFNoaXBwaW5nTWV0aG9kUmVzcG9uc2VbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXQoKS5waXBlKFxyXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0KSA9PlxyXG4gICAgICAgIHRoaXMuZGVwZW5kZW5jaWVzRmFjYWRlLmh0dHBDbGllbnQucG9zdDxTaGlwcGluZ01ldGhvZFJlc3BvbnNlW10+KFxyXG4gICAgICAgICAgYCR7dGhpcy5jaGVja291dFVybH0vY2hlY2tvdXRHZXRBdmFpbGFibGVTaGlwcGluZ2AsXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGNoZWNrb3V0SWQ6IGNoZWNrb3V0LmlkLFxyXG4gICAgICAgICAgICBwcm9kdWN0U2hpcHBpbmc6IG51bGwsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICksXHJcbiAgICAgICksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBzZWxlY3RTaGlwcGluZyhvcHRpb246IHN0cmluZyk6IE9ic2VydmFibGU8Q2hlY2tvdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmdldENoZWNrb3V0KCkucGlwZShcclxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT5cclxuICAgICAgICB0aGlzLmRlcGVuZGVuY2llc0ZhY2FkZS5odHRwQ2xpZW50LnBvc3QoYCR7dGhpcy5jaGVja291dFVybH0vY2hlY2tvdXRTZWxlY3RTaGlwcGluZ2AsIHtcclxuICAgICAgICAgIGNoZWNrb3V0SWQ6IGNoZWNrb3V0LmlkLFxyXG4gICAgICAgICAgc2hpcHBpbmdPcHRpb246IG9wdGlvbixcclxuICAgICAgICB9KSxcclxuICAgICAgKSxcclxuICAgICAgY29uY2F0TWFwKCgpID0+IHRoaXMuZ2V0Q2hlY2tvdXQoKSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBjcmVhdGVPcmRlcihcclxuICAgIGNoZWNrb3V0UGF5bG9hZDogQ2hlY2tvdXRQYXlsb2FkUmVxdWVzdCxcclxuICAgIHBheW1lbnRQcm92aWRlcjogc3RyaW5nLFxyXG4gICAgYXBwbGljYXRpb25WZXJzaW9uOiBzdHJpbmcsXHJcbiAgKTogT2JzZXJ2YWJsZTxDaGVja291dFJlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kZXBlbmRlbmNpZXNGYWNhZGUuaHR0cENsaWVudC5wb3N0PENoZWNrb3V0UmVzcG9uc2U+KGAke3RoaXMuY2hlY2tvdXRVcmx9L2NoZWNrb3V0YCwge1xyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgLi4uY2hlY2tvdXRQYXlsb2FkLFxyXG4gICAgICAgIGFwcGxpY2F0aW9uVmVyc2lvbixcclxuICAgICAgICBwYXltZW50UHJvdmlkZXIsXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVDaGVja291dChjaGVja291dERhdGE/OiBSZXF1aXJlZENoZWNrb3V0RGF0YSk6IFByb21pc2U8Q2hlY2tvdXQ+IHtcclxuICAgIGNvbnN0IGNoZWNrb3V0ID0gYXdhaXQgdGhpcy5yZXBvc2l0b3JpZXNGYWNhZGUuY2hlY2tvdXRSZXBvc2l0b3J5LmNyZWF0ZSh7XHJcbiAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKSxcclxuICAgICAgLi4uQ2hlY2tvdXQudG9JbnN0YW5jZShwaWNrKGNoZWNrb3V0RGF0YSwgWyd1c2VyJywgJ3Nob3AnXSkpLnRvUGxhaW4oKSxcclxuICAgICAgc2hvcDogY2hlY2tvdXREYXRhPy5zaG9wIHx8IHRoaXMuY29uZmlndXJhdGlvbkZhY2FkZS5kZWZhdWx0U2hvcCxcclxuICAgIH0pXHJcblxyXG4gICAgYXdhaXQgdGhpcy5kZXBlbmRlbmNpZXNGYWNhZGUuZGF0YVBlcnNpc3RlbmNlLnNldCgnY2hlY2tvdXRJZCcsIGNoZWNrb3V0LmlkKS50b1Byb21pc2UoKVxyXG5cclxuICAgIHJldHVybiBjaGVja291dFxyXG4gIH1cclxufVxyXG4iXX0=
|