@infrab4a/connect-angular 5.0.0-alpha.14 → 5.0.0-alpha.15

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 (104) hide show
  1. package/esm2022/angular-connect.module.mjs +289 -0
  2. package/esm2022/angular-elastic-search.module.mjs +34 -0
  3. package/esm2022/angular-firebase-auth.module.mjs +141 -0
  4. package/esm2022/angular-firestore.module.mjs +541 -0
  5. package/esm2022/angular-hasura-graphql.module.mjs +333 -0
  6. package/esm2022/angular-vertex-search.module.mjs +34 -0
  7. package/{esm2020 → esm2022}/persistence/cookie-data-persistence.mjs +4 -4
  8. package/{esm2020 → esm2022}/services/auth.service.mjs +6 -6
  9. package/{esm2020 → esm2022}/services/cart/cart-services.facade.mjs +5 -5
  10. package/{esm2020 → esm2022}/services/cart.service.mjs +5 -5
  11. package/{esm2020 → esm2022}/services/catalog/adapters/new-category-structure.adapter.mjs +6 -6
  12. package/{esm2020 → esm2022}/services/catalog/adapters/old-category-structure.adapter.mjs +6 -6
  13. package/{esm2020 → esm2022}/services/catalog/catalog.service.mjs +6 -6
  14. package/{esm2020 → esm2022}/services/catalog/category.service.mjs +6 -6
  15. package/{esm2020 → esm2022}/services/catalog/facades/catalog-service.facade.mjs +6 -6
  16. package/{esm2020 → esm2022}/services/catalog/facades/catalog-strategies.facade.mjs +5 -5
  17. package/{esm2020 → esm2022}/services/catalog/facades/category-repository.facade.mjs +6 -6
  18. package/{esm2020 → esm2022}/services/catalog/facades/category-service.facade.mjs +6 -6
  19. package/{esm2020 → esm2022}/services/catalog/facades/product-catalog.facade.mjs +6 -6
  20. package/{esm2020 → esm2022}/services/catalog/helpers/brand-manager.helper.mjs +5 -5
  21. package/{esm2020 → esm2022}/services/catalog/helpers/catalog-filter.helper.mjs +4 -4
  22. package/{esm2020 → esm2022}/services/catalog/helpers/catalog-sort.helper.mjs +4 -4
  23. package/{esm2020 → esm2022}/services/catalog/helpers/product-fields.helper.mjs +4 -4
  24. package/{esm2020 → esm2022}/services/catalog/models/category-with-tree.model.mjs +1 -1
  25. package/{esm2020 → esm2022}/services/catalog/services/catalog-helpers.service.mjs +5 -5
  26. package/{esm2020 → esm2022}/services/catalog/services/catalog-operations.facade.mjs +5 -5
  27. package/{esm2020 → esm2022}/services/catalog/services/catalog-repository.service.mjs +6 -6
  28. package/{esm2020 → esm2022}/services/catalog/services/product-management.facade.mjs +6 -6
  29. package/{esm2020 → esm2022}/services/catalog/strategies/category-search.strategy.mjs +5 -5
  30. package/{esm2020 → esm2022}/services/catalog/strategies/profile-search.strategy.mjs +5 -5
  31. package/{esm2020 → esm2022}/services/catalog/strategies/term-search.strategy.mjs +5 -5
  32. package/{esm2020 → esm2022}/services/catalog/wishlist.service.mjs +6 -6
  33. package/{esm2020 → esm2022}/services/checkout/checkout-dependencies.facade.mjs +6 -6
  34. package/{esm2020 → esm2022}/services/checkout/checkout-repositories.facade.mjs +6 -6
  35. package/{esm2020 → esm2022}/services/checkout-subscription.service.mjs +6 -6
  36. package/{esm2020 → esm2022}/services/checkout.service.mjs +5 -5
  37. package/{esm2020 → esm2022}/services/coupon/coupon-repositories.facade.mjs +6 -6
  38. package/{esm2020 → esm2022}/services/coupon.service.mjs +5 -5
  39. package/{esm2020 → esm2022}/services/home-shop/home-shop-repositories.facade.mjs +6 -6
  40. package/{esm2020 → esm2022}/services/home-shop.service.mjs +5 -5
  41. package/{esm2020 → esm2022}/services/order.service.mjs +6 -6
  42. package/{esm2020 → esm2022}/services/shared/configuration.facade.mjs +6 -6
  43. package/{fesm2020 → fesm2022}/infrab4a-connect-angular.mjs +751 -751
  44. package/{fesm2020 → fesm2022}/infrab4a-connect-angular.mjs.map +1 -1
  45. package/package.json +10 -17
  46. package/esm2020/angular-connect.module.mjs +0 -289
  47. package/esm2020/angular-elastic-search.module.mjs +0 -34
  48. package/esm2020/angular-firebase-auth.module.mjs +0 -141
  49. package/esm2020/angular-firestore.module.mjs +0 -541
  50. package/esm2020/angular-hasura-graphql.module.mjs +0 -333
  51. package/esm2020/angular-vertex-search.module.mjs +0 -34
  52. package/fesm2015/infrab4a-connect-angular.mjs +0 -3372
  53. package/fesm2015/infrab4a-connect-angular.mjs.map +0 -1
  54. /package/{esm2020 → esm2022}/consts/backend-url.const.mjs +0 -0
  55. /package/{esm2020 → esm2022}/consts/category-structure.mjs +0 -0
  56. /package/{esm2020 → esm2022}/consts/default-shop.const.mjs +0 -0
  57. /package/{esm2020 → esm2022}/consts/es-config.const.mjs +0 -0
  58. /package/{esm2020 → esm2022}/consts/firebase-const.mjs +0 -0
  59. /package/{esm2020 → esm2022}/consts/hasura-options.const.mjs +0 -0
  60. /package/{esm2020 → esm2022}/consts/index.mjs +0 -0
  61. /package/{esm2020 → esm2022}/consts/persistence.const.mjs +0 -0
  62. /package/{esm2020 → esm2022}/consts/storage-base-url.const.mjs +0 -0
  63. /package/{esm2020 → esm2022}/consts/vertex-config.const.mjs +0 -0
  64. /package/{esm2020 → esm2022}/helpers/index.mjs +0 -0
  65. /package/{esm2020 → esm2022}/helpers/mobile-operation-system-checker.helper.mjs +0 -0
  66. /package/{esm2020 → esm2022}/index.mjs +0 -0
  67. /package/{esm2020 → esm2022}/infrab4a-connect-angular.mjs +0 -0
  68. /package/{esm2020 → esm2022}/interfaces/catalog-strategies.interface.mjs +0 -0
  69. /package/{esm2020 → esm2022}/interfaces/category-facades.interface.mjs +0 -0
  70. /package/{esm2020 → esm2022}/interfaces/index.mjs +0 -0
  71. /package/{esm2020 → esm2022}/persistence/data-persistence.mjs +0 -0
  72. /package/{esm2020 → esm2022}/persistence/index.mjs +0 -0
  73. /package/{esm2020 → esm2022}/services/cart/index.mjs +0 -0
  74. /package/{esm2020 → esm2022}/services/catalog/adapters/category-structure.adapter.mjs +0 -0
  75. /package/{esm2020 → esm2022}/services/catalog/adapters/index.mjs +0 -0
  76. /package/{esm2020 → esm2022}/services/catalog/context/catalog-search.context.mjs +0 -0
  77. /package/{esm2020 → esm2022}/services/catalog/enums/index.mjs +0 -0
  78. /package/{esm2020 → esm2022}/services/catalog/enums/product-sorts.enum.mjs +0 -0
  79. /package/{esm2020 → esm2022}/services/catalog/facades/index.mjs +0 -0
  80. /package/{esm2020 → esm2022}/services/catalog/helpers/index.mjs +0 -0
  81. /package/{esm2020 → esm2022}/services/catalog/index.mjs +0 -0
  82. /package/{esm2020 → esm2022}/services/catalog/models/index.mjs +0 -0
  83. /package/{esm2020 → esm2022}/services/catalog/services/index.mjs +0 -0
  84. /package/{esm2020 → esm2022}/services/catalog/strategies/index.mjs +0 -0
  85. /package/{esm2020 → esm2022}/services/catalog/strategies/types/strategy-params.type.mjs +0 -0
  86. /package/{esm2020 → esm2022}/services/catalog/types/fetch-products-options.type.mjs +0 -0
  87. /package/{esm2020 → esm2022}/services/catalog/types/fetch-products-params.type.mjs +0 -0
  88. /package/{esm2020 → esm2022}/services/catalog/types/fetch-products-response.type.mjs +0 -0
  89. /package/{esm2020 → esm2022}/services/catalog/types/index.mjs +0 -0
  90. /package/{esm2020 → esm2022}/services/catalog/types/method-params.type.mjs +0 -0
  91. /package/{esm2020 → esm2022}/services/catalog/types/product-sort.type.mjs +0 -0
  92. /package/{esm2020 → esm2022}/services/checkout/index.mjs +0 -0
  93. /package/{esm2020 → esm2022}/services/coupon/index.mjs +0 -0
  94. /package/{esm2020 → esm2022}/services/coupon/types/coupon-params.type.mjs +0 -0
  95. /package/{esm2020 → esm2022}/services/helpers/index.mjs +0 -0
  96. /package/{esm2020 → esm2022}/services/helpers/util.helper.mjs +0 -0
  97. /package/{esm2020 → esm2022}/services/home-shop/index.mjs +0 -0
  98. /package/{esm2020 → esm2022}/services/index.mjs +0 -0
  99. /package/{esm2020 → esm2022}/services/shared/index.mjs +0 -0
  100. /package/{esm2020 → esm2022}/services/types/index.mjs +0 -0
  101. /package/{esm2020 → esm2022}/services/types/required-checkout-data.type.mjs +0 -0
  102. /package/{esm2020 → esm2022}/services/types/required-checkout-subscription-data.type.mjs +0 -0
  103. /package/{esm2020 → esm2022}/types/firebase-app-config.type.mjs +0 -0
  104. /package/{esm2020 → esm2022}/types/index.mjs +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infrab4a/connect-angular",
3
- "version": "5.0.0-alpha.14",
3
+ "version": "5.0.0-alpha.15",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org"
6
6
  },
@@ -9,24 +9,19 @@
9
9
  "url": "https://github.com/B4AGroup/b4a-firebase-libs"
10
10
  },
11
11
  "peerDependencies": {
12
- "@angular/common": "^15.1.4",
13
- "@angular/core": "^15.1.4",
14
- "@angular/fire": "7.5.0",
15
- "@infrab4a/connect": "5.0.0-alpha.13",
16
- "class-transformer": "^0.5.1",
12
+ "@angular/common": "17.2.3",
13
+ "@angular/core": "17.2.3",
14
+ "@angular/fire": "17.0.1",
15
+ "@infrab4a/connect": "5.0.0-alpha.14",
17
16
  "js-cookie": "^3.0.1",
18
- "rxjs": "^6.6.7",
17
+ "rxjs": "^7.8.1",
19
18
  "ts-custom-error": "^3.3.1"
20
19
  },
21
20
  "dependencies": {
22
21
  "js-cookie": "^3.0.1",
23
22
  "tslib": "^2.4.0"
24
23
  },
25
- "module": "fesm2015/infrab4a-connect-angular.mjs",
26
- "es2020": "fesm2020/infrab4a-connect-angular.mjs",
27
- "esm2020": "esm2020/infrab4a-connect-angular.mjs",
28
- "fesm2020": "fesm2020/infrab4a-connect-angular.mjs",
29
- "fesm2015": "fesm2015/infrab4a-connect-angular.mjs",
24
+ "module": "fesm2022/infrab4a-connect-angular.mjs",
30
25
  "typings": "index.d.ts",
31
26
  "exports": {
32
27
  "./package.json": {
@@ -34,11 +29,9 @@
34
29
  },
35
30
  ".": {
36
31
  "types": "./index.d.ts",
37
- "esm2020": "./esm2020/infrab4a-connect-angular.mjs",
38
- "es2020": "./fesm2020/infrab4a-connect-angular.mjs",
39
- "es2015": "./fesm2015/infrab4a-connect-angular.mjs",
40
- "node": "./fesm2015/infrab4a-connect-angular.mjs",
41
- "default": "./fesm2020/infrab4a-connect-angular.mjs"
32
+ "esm2022": "./esm2022/infrab4a-connect-angular.mjs",
33
+ "esm": "./esm2022/infrab4a-connect-angular.mjs",
34
+ "default": "./fesm2022/infrab4a-connect-angular.mjs"
42
35
  }
43
36
  },
44
37
  "sideEffects": false
@@ -1,289 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { FirebaseApp, getApp, initializeApp, provideFirebaseApp } from '@angular/fire/app';
3
- import { initializeAppCheck, provideAppCheck } from '@angular/fire/app-check';
4
- import { getStorage, provideStorage, Storage } from '@angular/fire/storage';
5
- import { FirebaseFileUploaderService, isNil, ProductsVertexSearch, UpdateUserImage, } from '@infrab4a/connect';
6
- import { AngularElasticSeachModule } from './angular-elastic-search.module';
7
- import { AngularFirebaseAuthModule } from './angular-firebase-auth.module';
8
- import { AngularFirestoreModule } from './angular-firestore.module';
9
- import { AngularHasuraGraphQLModule } from './angular-hasura-graphql.module';
10
- import { AngularVertexSeachModule } from './angular-vertex-search.module';
11
- import { APP_CHECK_PROVIDER, BACKEND_URL, CATEGORY_STRUCTURE, DEFAULT_SHOP, ES_CONFIG, FIREBASE_APP_NAME, FIREBASE_OPTIONS, HASURA_OPTIONS, PERSISTENCE_PROVIDER, VERTEX_CONFIG, } from './consts';
12
- import { STORAGE_BASE_URL } from './consts/storage-base-url.const';
13
- import { CookieDataPersistence } from './persistence';
14
- import { AuthService, CartService, CatalogService, CategoryService, CheckoutService, CheckoutSubscriptionService, CouponService, HomeShopService, OrderService, WishlistService, } from './services';
15
- import { CartServicesFacade } from './services/cart';
16
- import { NewCategoryStructureAdapter, OldCategoryStructureAdapter } from './services/catalog/adapters';
17
- import { CatalogSearchContext } from './services/catalog/context/catalog-search.context';
18
- import { CatalogServiceFacade, CatalogStrategiesFacade, CategoryRepositoryFacade, CategoryServiceFacade, ProductCatalogFacade, } from './services/catalog/facades';
19
- import { BrandManagerHelper, CatalogFilterHelper, CatalogSortHelper, ProductFieldsHelper, } from './services/catalog/helpers';
20
- import { CatalogHelpersService, CatalogOperationsFacade, CatalogRepositoryService, ProductManagementFacade, } from './services/catalog/services';
21
- import { CategorySearchStrategy, ProfileSearchStrategy, TermSearchStrategy } from './services/catalog/strategies';
22
- import { CheckoutDependenciesFacade, CheckoutRepositoriesFacade } from './services/checkout';
23
- import { CouponRepositoriesFacade } from './services/coupon';
24
- import { HomeShopRepositoriesFacade } from './services/home-shop';
25
- import { ConfigurationFacade } from './services/shared';
26
- import * as i0 from "@angular/core";
27
- import * as i1 from "@angular/fire/app";
28
- import * as i2 from "@angular/fire/app-check";
29
- import * as i3 from "@angular/fire/storage";
30
- export class AngularConnectModule {
31
- static initializeApp(defaultShop, options, nameOrConfig) {
32
- return {
33
- ngModule: AngularConnectModule,
34
- providers: [
35
- ...this.buildCoreProviders(nameOrConfig, options),
36
- ...this.buildConditionalProviders(defaultShop, options),
37
- ],
38
- };
39
- }
40
- static buildCoreProviders(nameOrConfig, options) {
41
- return [
42
- { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },
43
- { provide: APP_CHECK_PROVIDER, useValue: options.appCheckProvider },
44
- {
45
- provide: CATEGORY_STRUCTURE,
46
- useClass: this.selectCategoryStructureAdapter(options.oldCategoryStructure),
47
- },
48
- { provide: PERSISTENCE_PROVIDER, useClass: options?.persistenceProvider || CookieDataPersistence },
49
- ];
50
- }
51
- static buildConditionalProviders(defaultShop, options) {
52
- return [
53
- ...this.createProviderIfExists(DEFAULT_SHOP, defaultShop),
54
- ...this.createProviderIfExists(FIREBASE_OPTIONS, options.firebase),
55
- ...this.createProviderIfExists(ES_CONFIG, options.elasticSearch),
56
- ...this.createProviderIfExists(VERTEX_CONFIG, options.vertexConfig),
57
- ...this.createProviderIfExists(HASURA_OPTIONS, options.hasura),
58
- ...this.createProviderIfExists(BACKEND_URL, options.backendUrl),
59
- ...this.createProviderIfExists(STORAGE_BASE_URL, options.storageBaseUrl),
60
- ];
61
- }
62
- static selectCategoryStructureAdapter(oldCategoryStructure) {
63
- return isNil(oldCategoryStructure) || oldCategoryStructure
64
- ? OldCategoryStructureAdapter
65
- : NewCategoryStructureAdapter;
66
- }
67
- static createProviderIfExists(token, value) {
68
- return isNil(value) ? [] : [{ provide: token, useValue: value }];
69
- }
70
- }
71
- AngularConnectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularConnectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
72
- AngularConnectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.0", ngImport: i0, type: AngularConnectModule, imports: [i1.FirebaseAppModule, i2.AppCheckModule, i3.StorageModule, AngularElasticSeachModule,
73
- AngularVertexSeachModule,
74
- AngularFirebaseAuthModule,
75
- AngularFirestoreModule,
76
- AngularHasuraGraphQLModule] });
77
- AngularConnectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularConnectModule, providers: [
78
- AuthService,
79
- CartService,
80
- CatalogService,
81
- CategoryService,
82
- CheckoutService,
83
- CheckoutSubscriptionService,
84
- CouponService,
85
- HomeShopService,
86
- OrderService,
87
- WishlistService,
88
- ConfigurationFacade,
89
- CartServicesFacade,
90
- CheckoutRepositoriesFacade,
91
- CheckoutDependenciesFacade,
92
- CategoryRepositoryFacade,
93
- ProductCatalogFacade,
94
- CatalogServiceFacade,
95
- CategoryServiceFacade,
96
- CatalogStrategiesFacade,
97
- CatalogOperationsFacade,
98
- ProductManagementFacade,
99
- {
100
- provide: 'ProductServicesFacade',
101
- useFactory: (productStockNotificationRepository, categoryRepository, productSearch) => ({
102
- productStockNotificationRepository,
103
- categoryRepository,
104
- productSearch,
105
- }),
106
- deps: ['ProductStockNotificationRepository', 'CategoryRepository', 'ProductSearch'],
107
- },
108
- CatalogFilterHelper,
109
- CatalogSortHelper,
110
- ProductFieldsHelper,
111
- BrandManagerHelper,
112
- CatalogRepositoryService,
113
- CatalogHelpersService,
114
- CategorySearchStrategy,
115
- TermSearchStrategy,
116
- ProfileSearchStrategy,
117
- {
118
- provide: CatalogSearchContext,
119
- useFactory: (categoryStrategy, termStrategy, profileStrategy) => {
120
- return new CatalogSearchContext(categoryStrategy, termStrategy, profileStrategy);
121
- },
122
- deps: [CategorySearchStrategy, TermSearchStrategy, ProfileSearchStrategy],
123
- },
124
- {
125
- provide: UpdateUserImage,
126
- useFactory: (userRepository, fileUploader) => {
127
- return new UpdateUserImage(userRepository, fileUploader);
128
- },
129
- deps: ['UserRepository', 'FileUploaderService'],
130
- },
131
- {
132
- provide: 'FileUploaderService',
133
- useFactory: (storage, baseUrl) => {
134
- return new FirebaseFileUploaderService(storage, baseUrl);
135
- },
136
- deps: [Storage, STORAGE_BASE_URL],
137
- },
138
- {
139
- provide: 'ProductSearch',
140
- useExisting: ProductsVertexSearch,
141
- },
142
- CouponRepositoriesFacade,
143
- HomeShopRepositoriesFacade,
144
- ], imports: [provideFirebaseApp((injector) => {
145
- const appName = injector.get(FIREBASE_APP_NAME);
146
- try {
147
- const app = appName ? getApp(appName) : getApp();
148
- return app;
149
- }
150
- catch (error) {
151
- console.warn('Firebase app not found, initializing new app');
152
- if (error instanceof Error)
153
- console.error(error.message);
154
- return initializeApp(injector.get(FIREBASE_OPTIONS), appName);
155
- }
156
- }),
157
- provideAppCheck((injector) => {
158
- const app = injector.get(FirebaseApp);
159
- try {
160
- const provider = injector.get(APP_CHECK_PROVIDER);
161
- if (provider)
162
- return initializeAppCheck(app, {
163
- provider,
164
- isTokenAutoRefreshEnabled: true,
165
- });
166
- }
167
- catch (error) {
168
- if (error instanceof Error)
169
- console.error(error.message);
170
- return;
171
- }
172
- }),
173
- provideStorage((injector) => getStorage(injector.get(FirebaseApp))),
174
- AngularElasticSeachModule,
175
- AngularVertexSeachModule,
176
- AngularFirebaseAuthModule,
177
- AngularFirestoreModule,
178
- AngularHasuraGraphQLModule] });
179
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularConnectModule, decorators: [{
180
- type: NgModule,
181
- args: [{
182
- imports: [
183
- provideFirebaseApp((injector) => {
184
- const appName = injector.get(FIREBASE_APP_NAME);
185
- try {
186
- const app = appName ? getApp(appName) : getApp();
187
- return app;
188
- }
189
- catch (error) {
190
- console.warn('Firebase app not found, initializing new app');
191
- if (error instanceof Error)
192
- console.error(error.message);
193
- return initializeApp(injector.get(FIREBASE_OPTIONS), appName);
194
- }
195
- }),
196
- provideAppCheck((injector) => {
197
- const app = injector.get(FirebaseApp);
198
- try {
199
- const provider = injector.get(APP_CHECK_PROVIDER);
200
- if (provider)
201
- return initializeAppCheck(app, {
202
- provider,
203
- isTokenAutoRefreshEnabled: true,
204
- });
205
- }
206
- catch (error) {
207
- if (error instanceof Error)
208
- console.error(error.message);
209
- return;
210
- }
211
- }),
212
- provideStorage((injector) => getStorage(injector.get(FirebaseApp))),
213
- AngularElasticSeachModule,
214
- AngularVertexSeachModule,
215
- AngularFirebaseAuthModule,
216
- AngularFirestoreModule,
217
- AngularHasuraGraphQLModule,
218
- ],
219
- providers: [
220
- AuthService,
221
- CartService,
222
- CatalogService,
223
- CategoryService,
224
- CheckoutService,
225
- CheckoutSubscriptionService,
226
- CouponService,
227
- HomeShopService,
228
- OrderService,
229
- WishlistService,
230
- ConfigurationFacade,
231
- CartServicesFacade,
232
- CheckoutRepositoriesFacade,
233
- CheckoutDependenciesFacade,
234
- CategoryRepositoryFacade,
235
- ProductCatalogFacade,
236
- CatalogServiceFacade,
237
- CategoryServiceFacade,
238
- CatalogStrategiesFacade,
239
- CatalogOperationsFacade,
240
- ProductManagementFacade,
241
- {
242
- provide: 'ProductServicesFacade',
243
- useFactory: (productStockNotificationRepository, categoryRepository, productSearch) => ({
244
- productStockNotificationRepository,
245
- categoryRepository,
246
- productSearch,
247
- }),
248
- deps: ['ProductStockNotificationRepository', 'CategoryRepository', 'ProductSearch'],
249
- },
250
- CatalogFilterHelper,
251
- CatalogSortHelper,
252
- ProductFieldsHelper,
253
- BrandManagerHelper,
254
- CatalogRepositoryService,
255
- CatalogHelpersService,
256
- CategorySearchStrategy,
257
- TermSearchStrategy,
258
- ProfileSearchStrategy,
259
- {
260
- provide: CatalogSearchContext,
261
- useFactory: (categoryStrategy, termStrategy, profileStrategy) => {
262
- return new CatalogSearchContext(categoryStrategy, termStrategy, profileStrategy);
263
- },
264
- deps: [CategorySearchStrategy, TermSearchStrategy, ProfileSearchStrategy],
265
- },
266
- {
267
- provide: UpdateUserImage,
268
- useFactory: (userRepository, fileUploader) => {
269
- return new UpdateUserImage(userRepository, fileUploader);
270
- },
271
- deps: ['UserRepository', 'FileUploaderService'],
272
- },
273
- {
274
- provide: 'FileUploaderService',
275
- useFactory: (storage, baseUrl) => {
276
- return new FirebaseFileUploaderService(storage, baseUrl);
277
- },
278
- deps: [Storage, STORAGE_BASE_URL],
279
- },
280
- {
281
- provide: 'ProductSearch',
282
- useExisting: ProductsVertexSearch,
283
- },
284
- CouponRepositoriesFacade,
285
- HomeShopRepositoriesFacade,
286
- ],
287
- }]
288
- }] });
289
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1jb25uZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvYW5ndWxhci1jb25uZWN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlDLFFBQVEsRUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUM3RSxPQUFPLEVBQUUsV0FBVyxFQUFtQixNQUFNLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDM0csT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUM5RixPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUMzRSxPQUFPLEVBR0wsMkJBQTJCLEVBQzNCLEtBQUssRUFDTCxvQkFBb0IsRUFFcEIsZUFBZSxHQUdoQixNQUFNLG1CQUFtQixDQUFBO0FBRTFCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQzNFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBQzFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ25FLE9BQU8sRUFBRSwwQkFBMEIsRUFBd0IsTUFBTSxpQ0FBaUMsQ0FBQTtBQUNsRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUN6RSxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCxrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsYUFBYSxHQUNkLE1BQU0sVUFBVSxDQUFBO0FBQ2pCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FB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ZHVsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGaXJlYmFzZUFwcCwgRmlyZWJhc2VPcHRpb25zLCBnZXRBcHAsIGluaXRpYWxpemVBcHAsIHByb3ZpZGVGaXJlYmFzZUFwcCB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXBwJ1xuaW1wb3J0IHsgQXBwQ2hlY2tPcHRpb25zLCBpbml0aWFsaXplQXBwQ2hlY2ssIHByb3ZpZGVBcHBDaGVjayB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXBwLWNoZWNrJ1xuaW1wb3J0IHsgZ2V0U3RvcmFnZSwgcHJvdmlkZVN0b3JhZ2UsIFN0b3JhZ2UgfSBmcm9tICdAYW5ndWxhci9maXJlL3N0b3JhZ2UnXG5pbXBvcnQge1xuICBBeGlvc0VsYXN0aWNTZWFyY2hDb25maWcsXG4gIEZpbGVVcGxvYWRlclNlcnZpY2UsXG4gIEZpcmViYXNlRmlsZVVwbG9hZGVyU2VydmljZSxcbiAgaXNOaWwsXG4gIFByb2R1Y3RzVmVydGV4U2VhcmNoLFxuICBTaG9wcyxcbiAgVXBkYXRlVXNlckltYWdlLFxuICBVc2VyUmVwb3NpdG9yeSxcbiAgVmVydGV4U2VhcmNoQ29uZmlnLFxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcblxuaW1wb3J0IHsgQW5ndWxhckVsYXN0aWNTZWFjaE1vZHVsZSB9IGZyb20gJy4vYW5ndWxhci1lbGFzdGljLXNlYXJjaC5tb2R1bGUnXG5pbXBvcnQgeyBBbmd1bGFyRmlyZWJhc2VBdXRoTW9kdWxlIH0gZnJvbSAnLi9hbmd1bGFyLWZpcmViYXNlLWF1dGgubW9kdWxlJ1xuaW1wb3J0IHsgQW5ndWxhckZpcmVzdG9yZU1vZHVsZSB9IGZyb20gJy4vYW5ndWxhci1maXJlc3RvcmUubW9kdWxlJ1xuaW1wb3J0IHsgQW5ndWxhckhhc3VyYUdyYXBoUUxNb2R1bGUsIEhhc3VyYUdyYXBoUUxPcHRpb25zIH0gZnJvbSAnLi9hbmd1bGFyLWhhc3VyYS1ncmFwaHFsLm1vZHVsZSdcbmltcG9ydCB7IEFuZ3VsYXJWZXJ0ZXhTZWFjaE1vZHVsZSB9IGZyb20gJy4vYW5ndWxhci12ZXJ0ZXgtc2VhcmNoLm1vZHVsZSdcbmltcG9ydCB7XG4gIEFQUF9DSEVDS19QUk9WSURFUixcbiAgQkFDS0VORF9VUkwsXG4gIENBVEVHT1JZX1NUUlVDVFVSRSxcbiAgREVGQVVMVF9TSE9QLFxuICBFU19DT05GSUcsXG4gIEZJUkVCQVNFX0FQUF9OQU1FLFxuICBGSVJFQkFTRV9PUFRJT05TLFxuICBIQVNVUkFfT1BUSU9OUyxcbiAgUEVSU0lTVEVOQ0VfUFJPVklERVIsXG4gIFZFUlRFWF9DT05GSUcsXG59IGZyb20gJy4vY29uc3RzJ1xuaW1wb3J0IHsgU1RPUkFHRV9CQVNFX1VSTCB9IGZyb20gJy4vY29uc3RzL3N0b3JhZ2UtYmFzZS11cmwuY29uc3QnXG5pbXBvcnQgeyBDb29raWVEYXRhUGVyc2lzdGVuY2UsIERhdGFQZXJzaXN0ZW5jZSB9IGZyb20gJy4vcGVyc2lzdGVuY2UnXG5pbXBvcnQge1xuICBBdXRoU2VydmljZSxcbiAgQ2FydFNlcnZpY2UsXG4gIENhdGFsb2dTZXJ2aWNlLFxuICBDYXRlZ29yeVNlcnZpY2UsXG4gIENoZWNrb3V0U2VydmljZSxcbiAgQ2hlY2tvdXRTdWJzY3JpcHRpb25TZXJ2aWNlLFxuICBDb3Vwb25TZXJ2aWNlLFxuICBIb21lU2hvcFNlcnZpY2UsXG4gIE9yZGVyU2VydmljZSxcbiAgV2lzaGxpc3RTZXJ2aWNlLFxufSBmcm9tICcuL3NlcnZpY2VzJ1xuaW1wb3J0IHsgQ2FydFNlcnZpY2VzRmFjYWRlIH0gZnJvbSAnLi9zZXJ2aWNlcy9jYXJ0J1xuaW1wb3J0IHsgTmV3Q2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyLCBPbGRDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIgfSBmcm9tICcuL3NlcnZpY2VzL2NhdGFsb2cvYWRhcHRlcnMnXG5pbXBvcnQgeyBDYXRhbG9nU2VhcmNoQ29udGV4dCB9IGZyb20gJy4vc2VydmljZXMvY2F0YWxvZy9jb250ZXh0L2NhdGFsb2ctc2VhcmNoLmNvbnRleHQnXG5pbXBvcnQge1xuICBDYXRhbG9nU2VydmljZUZhY2FkZSxcbiAgQ2F0YWxvZ1N0cmF0ZWdpZXNGYWNhZGUsXG4gIENhdGVnb3J5UmVwb3NpdG9yeUZhY2FkZSxcbiAgQ2F0ZWdvcnlTZXJ2aWNlRmFjYWRlLFxuICBQcm9kdWN0Q2F0YWxvZ0ZhY2FkZSxcbn0gZnJvbSAnLi9zZXJ2aWNlcy9jYXRhbG9nL2ZhY2FkZXMnXG5pbXBvcnQge1xuICBCcmFuZE1hbmFnZXJIZWxwZXIsXG4gIENhdGFsb2dGaWx0ZXJIZWxwZXIsXG4gIENhdGFsb2dTb3J0SGVscGVyLFxuICBQcm9kdWN0RmllbGRzSGVscGVyLFxufSBmcm9tICcuL3NlcnZpY2VzL2NhdGFsb2cvaGVscGVycydcbmltcG9ydCB7XG4gIENhdGFsb2dIZWxwZXJzU2VydmljZSxcbiAgQ2F0YWxvZ09wZXJhdGlvbnNGYWNhZGUsXG4gIENhdGFsb2dSZXBvc2l0b3J5U2VydmljZSxcbiAgUHJvZHVjdE1hbmFnZW1lbnRGYWNhZGUsXG59IGZyb20gJy4vc2VydmljZXMvY2F0YWxvZy9zZXJ2aWNlcydcbmltcG9ydCB7IENhdGVnb3J5U2VhcmNoU3RyYXRlZ3ksIFByb2ZpbGVTZWFyY2hTdHJhdGVneSwgVGVybVNlYXJjaFN0cmF0ZWd5IH0gZnJvbSAnLi9zZXJ2aWNlcy9jYXRhbG9nL3N0cmF0ZWdpZXMnXG5pbXBvcnQgeyBDaGVja291dERlcGVuZGVuY2llc0ZhY2FkZSwgQ2hlY2tvdXRSZXBvc2l0b3JpZXNGYWNhZGUgfSBmcm9tICcuL3NlcnZpY2VzL2NoZWNrb3V0J1xuaW1wb3J0IHsgQ291cG9uUmVwb3NpdG9yaWVzRmFjYWRlIH0gZnJvbSAnLi9zZXJ2aWNlcy9jb3Vwb24nXG5pbXBvcnQgeyBIb21lU2hvcFJlcG9zaXRvcmllc0ZhY2FkZSB9IGZyb20gJy4vc2VydmljZXMvaG9tZS1zaG9wJ1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkZhY2FkZSB9IGZyb20gJy4vc2VydmljZXMvc2hhcmVkJ1xuaW1wb3J0IHsgRmlyZWJhc2VBcHBDb25maWcgfSBmcm9tICcuL3R5cGVzJ1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgcHJvdmlkZUZpcmViYXNlQXBwKChpbmplY3RvcjogSW5qZWN0b3IpID0+IHtcbiAgICAgIGNvbnN0IGFwcE5hbWUgPSBpbmplY3Rvci5nZXQ8c3RyaW5nPihGSVJFQkFTRV9BUFBfTkFNRSlcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgYXBwID0gYXBwTmFtZSA/IGdldEFwcChhcHBOYW1lKSA6IGdldEFwcCgpXG5cbiAgICAgICAgcmV0dXJuIGFwcFxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdGaXJlYmFzZSBhcHAgbm90IGZvdW5kLCBpbml0aWFsaXppbmcgbmV3IGFwcCcpXG5cbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIGNvbnNvbGUuZXJyb3IoZXJyb3IubWVzc2FnZSlcblxuICAgICAgICByZXR1cm4gaW5pdGlhbGl6ZUFwcChpbmplY3Rvci5nZXQoRklSRUJBU0VfT1BUSU9OUyksIGFwcE5hbWUpXG4gICAgICB9XG4gICAgfSksXG4gICAgcHJvdmlkZUFwcENoZWNrKChpbmplY3RvcjogSW5qZWN0b3IpID0+IHtcbiAgICAgIGNvbnN0IGFwcCA9IGluamVjdG9yLmdldChGaXJlYmFzZUFwcClcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcHJvdmlkZXIgPSBpbmplY3Rvci5nZXQ8QXBwQ2hlY2tPcHRpb25zWydwcm92aWRlciddPihBUFBfQ0hFQ0tfUFJPVklERVIpXG5cbiAgICAgICAgaWYgKHByb3ZpZGVyKVxuICAgICAgICAgIHJldHVybiBpbml0aWFsaXplQXBwQ2hlY2soYXBwLCB7XG4gICAgICAgICAgICBwcm92aWRlcixcbiAgICAgICAgICAgIGlzVG9rZW5BdXRvUmVmcmVzaEVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSBjb25zb2xlLmVycm9yKGVycm9yLm1lc3NhZ2UpXG5cbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfSksXG4gICAgcHJvdmlkZVN0b3JhZ2UoKGluamVjdG9yOiBJbmplY3RvcikgPT4gZ2V0U3RvcmFnZShpbmplY3Rvci5nZXQoRmlyZWJhc2VBcHApKSksXG4gICAgQW5ndWxhckVsYXN0aWNTZWFjaE1vZHVsZSxcbiAgICBBbmd1bGFyVmVydGV4U2VhY2hNb2R1bGUsXG4gICAgQW5ndWxhckZpcmViYXNlQXV0aE1vZHVsZSxcbiAgICBBbmd1bGFyRmlyZXN0b3JlTW9kdWxlLFxuICAgIEFuZ3VsYXJIYXN1cmFHcmFwaFFMTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBBdXRoU2VydmljZSxcbiAgICBDYXJ0U2VydmljZSxcbiAgICBDYXRhbG9nU2VydmljZSxcbiAgICBDYXRlZ29yeVNlcnZpY2UsXG4gICAgQ2hlY2tvdXRTZXJ2aWNlLFxuICAgIENoZWNrb3V0U3Vic2NyaXB0aW9uU2VydmljZSxcbiAgICBDb3Vwb25TZXJ2aWNlLFxuICAgIEhvbWVTaG9wU2VydmljZSxcbiAgICBPcmRlclNlcnZpY2UsXG4gICAgV2lzaGxpc3RTZXJ2aWNlLFxuICAgIENvbmZpZ3VyYXRpb25GYWNhZGUsXG4gICAgQ2FydFNlcnZpY2VzRmFjYWRlLFxuICAgIENoZWNrb3V0UmVwb3NpdG9yaWVzRmFjYWRlLFxuICAgIENoZWNrb3V0RGVwZW5kZW5jaWVzRmFjYWRlLFxuICAgIENhdGVnb3J5UmVwb3NpdG9yeUZhY2FkZSxcbiAgICBQcm9kdWN0Q2F0YWxvZ0ZhY2FkZSxcbiAgICBDYXRhbG9nU2VydmljZUZhY2FkZSxcbiAgICBDYXRlZ29yeVNlcnZpY2VGYWNhZGUsXG4gICAgQ2F0YWxvZ1N0cmF0ZWdpZXNGYWNhZGUsXG4gICAgQ2F0YWxvZ09wZXJhdGlvbnNGYWNhZGUsXG4gICAgUHJvZHVjdE1hbmFnZW1lbnRGYWNhZGUsXG4gICAge1xuICAgICAgcHJvdmlkZTogJ1Byb2R1Y3RTZXJ2aWNlc0ZhY2FkZScsXG4gICAgICB1c2VGYWN0b3J5OiAocHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uUmVwb3NpdG9yeTogYW55LCBjYXRlZ29yeVJlcG9zaXRvcnk6IGFueSwgcHJvZHVjdFNlYXJjaDogYW55KSA9PiAoe1xuICAgICAgICBwcm9kdWN0U3RvY2tOb3RpZmljYXRpb25SZXBvc2l0b3J5LFxuICAgICAgICBjYXRlZ29yeVJlcG9zaXRvcnksXG4gICAgICAgIHByb2R1Y3RTZWFyY2gsXG4gICAgICB9KSxcbiAgICAgIGRlcHM6IFsnUHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uUmVwb3NpdG9yeScsICdDYXRlZ29yeVJlcG9zaXRvcnknLCAnUHJvZHVjdFNlYXJjaCddLFxuICAgIH0sXG4gICAgQ2F0YWxvZ0ZpbHRlckhlbHBlcixcbiAgICBDYXRhbG9nU29ydEhlbHBlcixcbiAgICBQcm9kdWN0RmllbGRzSGVscGVyLFxuICAgIEJyYW5kTWFuYWdlckhlbHBlcixcbiAgICBDYXRhbG9nUmVwb3NpdG9yeVNlcnZpY2UsXG4gICAgQ2F0YWxvZ0hlbHBlcnNTZXJ2aWNlLFxuICAgIENhdGVnb3J5U2VhcmNoU3RyYXRlZ3ksXG4gICAgVGVybVNlYXJjaFN0cmF0ZWd5LFxuICAgIFByb2ZpbGVTZWFyY2hTdHJhdGVneSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBDYXRhbG9nU2VhcmNoQ29udGV4dCxcbiAgICAgIHVzZUZhY3Rvcnk6IChcbiAgICAgICAgY2F0ZWdvcnlTdHJhdGVneTogQ2F0ZWdvcnlTZWFyY2hTdHJhdGVneSxcbiAgICAgICAgdGVybVN0cmF0ZWd5OiBUZXJtU2VhcmNoU3RyYXRlZ3ksXG4gICAgICAgIHByb2ZpbGVTdHJhdGVneTogUHJvZmlsZVNlYXJjaFN0cmF0ZWd5LFxuICAgICAgKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgQ2F0YWxvZ1NlYXJjaENvbnRleHQoY2F0ZWdvcnlTdHJhdGVneSwgdGVybVN0cmF0ZWd5LCBwcm9maWxlU3RyYXRlZ3kpXG4gICAgICB9LFxuICAgICAgZGVwczogW0NhdGVnb3J5U2VhcmNoU3RyYXRlZ3ksIFRlcm1TZWFyY2hTdHJhdGVneSwgUHJvZmlsZVNlYXJjaFN0cmF0ZWd5XSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFVwZGF0ZVVzZXJJbWFnZSxcbiAgICAgIHVzZUZhY3Rvcnk6ICh1c2VyUmVwb3NpdG9yeTogVXNlclJlcG9zaXRvcnksIGZpbGVVcGxvYWRlcjogRmlsZVVwbG9hZGVyU2VydmljZSkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFVwZGF0ZVVzZXJJbWFnZSh1c2VyUmVwb3NpdG9yeSwgZmlsZVVwbG9hZGVyKVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFsnVXNlclJlcG9zaXRvcnknLCAnRmlsZVVwbG9hZGVyU2VydmljZSddLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ0ZpbGVVcGxvYWRlclNlcnZpY2UnLFxuICAgICAgdXNlRmFjdG9yeTogKHN0b3JhZ2U6IFN0b3JhZ2UsIGJhc2VVcmw6IHN0cmluZykgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IEZpcmViYXNlRmlsZVVwbG9hZGVyU2VydmljZShzdG9yYWdlLCBiYXNlVXJsKVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFtTdG9yYWdlLCBTVE9SQUdFX0JBU0VfVVJMXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdQcm9kdWN0U2VhcmNoJyxcbiAgICAgIHVzZUV4aXN0aW5nOiBQcm9kdWN0c1ZlcnRleFNlYXJjaCxcbiAgICB9LFxuICAgIENvdXBvblJlcG9zaXRvcmllc0ZhY2FkZSxcbiAgICBIb21lU2hvcFJlcG9zaXRvcmllc0ZhY2FkZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQW5ndWxhckNvbm5lY3RNb2R1bGUge1xuICBzdGF0aWMgaW5pdGlhbGl6ZUFwcChcbiAgICBkZWZhdWx0U2hvcDogU2hvcHMsXG4gICAgb3B0aW9uczoge1xuICAgICAgZmlyZWJhc2U/OiBGaXJlYmFzZU9wdGlvbnNcbiAgICAgIGVsYXN0aWNTZWFyY2g/OiBBeGlvc0VsYXN0aWNTZWFyY2hDb25maWdcbiAgICAgIHZlcnRleENvbmZpZz86IFZlcnRleFNlYXJjaENvbmZpZ1xuICAgICAgaGFzdXJhOiBIYXN1cmFHcmFwaFFMT3B0aW9uc1xuICAgICAgYmFja2VuZFVybDogc3RyaW5nXG4gICAgICBvbGRDYXRlZ29yeVN0cnVjdHVyZT86IGJvb2xlYW5cbiAgICAgIHN0b3JhZ2VCYXNlVXJsPzogc3RyaW5nXG4gICAgICBwZXJzaXN0ZW5jZVByb3ZpZGVyPzogVHlwZTxEYXRhUGVyc2lzdGVuY2U+XG4gICAgICBhcHBDaGVja1Byb3ZpZGVyPzogQXBwQ2hlY2tPcHRpb25zWydwcm92aWRlciddXG4gICAgfSxcbiAgICBuYW1lT3JDb25maWc/OiBzdHJpbmcgfCBGaXJlYmFzZUFwcENvbmZpZyxcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBbmd1bGFyQ29ubmVjdE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQW5ndWxhckNvbm5lY3RNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgLi4udGhpcy5idWlsZENvcmVQcm92aWRlcnMobmFtZU9yQ29uZmlnLCBvcHRpb25zKSxcbiAgICAgICAgLi4udGhpcy5idWlsZENvbmRpdGlvbmFsUHJvdmlkZXJzKGRlZmF1bHRTaG9wLCBvcHRpb25zKSxcbiAgICAgIF0sXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRDb3JlUHJvdmlkZXJzKFxuICAgIG5hbWVPckNvbmZpZzogc3RyaW5nIHwgRmlyZWJhc2VBcHBDb25maWcsXG4gICAgb3B0aW9uczoge1xuICAgICAgYXBwQ2hlY2tQcm92aWRlcj86IEFwcENoZWNrT3B0aW9uc1sncHJvdmlkZXInXVxuICAgICAgb2xkQ2F0ZWdvcnlTdHJ1Y3R1cmU/OiBib29sZWFuXG4gICAgICBwZXJzaXN0ZW5jZVByb3ZpZGVyPzogVHlwZTxEYXRhUGVyc2lzdGVuY2U+XG4gICAgfSxcbiAgKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHsgcHJvdmlkZTogRklSRUJBU0VfQVBQX05BTUUsIHVzZVZhbHVlOiBuYW1lT3JDb25maWcgfSxcbiAgICAgIHsgcHJvdmlkZTogQVBQX0NIRUNLX1BST1ZJREVSLCB1c2VWYWx1ZTogb3B0aW9ucy5hcHBDaGVja1Byb3ZpZGVyIH0sXG4gICAgICB7XG4gICAgICAgIHByb3ZpZGU6IENBVEVHT1JZX1NUUlVDVFVSRSxcbiAgICAgICAgdXNlQ2xhc3M6IHRoaXMuc2VsZWN0Q2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyKG9wdGlvbnMub2xkQ2F0ZWdvcnlTdHJ1Y3R1cmUpLFxuICAgICAgfSxcbiAgICAgIHsgcHJvdmlkZTogUEVSU0lTVEVOQ0VfUFJPVklERVIsIHVzZUNsYXNzOiBvcHRpb25zPy5wZXJzaXN0ZW5jZVByb3ZpZGVyIHx8IENvb2tpZURhdGFQZXJzaXN0ZW5jZSB9LFxuICAgIF1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGJ1aWxkQ29uZGl0aW9uYWxQcm92aWRlcnMoXG4gICAgZGVmYXVsdFNob3A6IFNob3BzLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIGZpcmViYXNlPzogRmlyZWJhc2VPcHRpb25zXG4gICAgICBlbGFzdGljU2VhcmNoPzogQXhpb3NFbGFzdGljU2VhcmNoQ29uZmlnXG4gICAgICB2ZXJ0ZXhDb25maWc/OiBWZXJ0ZXhTZWFyY2hDb25maWdcbiAgICAgIGhhc3VyYTogSGFzdXJhR3JhcGhRTE9wdGlvbnNcbiAgICAgIGJhY2tlbmRVcmw6IHN0cmluZ1xuICAgICAgc3RvcmFnZUJhc2VVcmw/OiBzdHJpbmdcbiAgICB9LFxuICApIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4udGhpcy5jcmVhdGVQcm92aWRlcklmRXhpc3RzKERFRkFVTFRfU0hPUCwgZGVmYXVsdFNob3ApLFxuICAgICAgLi4udGhpcy5jcmVhdGVQcm92aWRlcklmRXhpc3RzKEZJUkVCQVNFX09QVElPTlMsIG9wdGlvbnMuZmlyZWJhc2UpLFxuICAgICAgLi4udGhpcy5jcmVhdGVQcm92aWRlcklmRXhpc3RzKEVTX0NPTkZJRywgb3B0aW9ucy5lbGFzdGljU2VhcmNoKSxcbiAgICAgIC4uLnRoaXMuY3JlYXRlUHJvdmlkZXJJZkV4aXN0cyhWRVJURVhfQ09ORklHLCBvcHRpb25zLnZlcnRleENvbmZpZyksXG4gICAgICAuLi50aGlzLmNyZWF0ZVByb3ZpZGVySWZFeGlzdHMoSEFTVVJBX09QVElPTlMsIG9wdGlvbnMuaGFzdXJhKSxcbiAgICAgIC4uLnRoaXMuY3JlYXRlUHJvdmlkZXJJZkV4aXN0cyhCQUNLRU5EX1VSTCwgb3B0aW9ucy5iYWNrZW5kVXJsKSxcbiAgICAgIC4uLnRoaXMuY3JlYXRlUHJvdmlkZXJJZkV4aXN0cyhTVE9SQUdFX0JBU0VfVVJMLCBvcHRpb25zLnN0b3JhZ2VCYXNlVXJsKSxcbiAgICBdXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBzZWxlY3RDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIob2xkQ2F0ZWdvcnlTdHJ1Y3R1cmU/OiBib29sZWFuKSB7XG4gICAgcmV0dXJuIGlzTmlsKG9sZENhdGVnb3J5U3RydWN0dXJlKSB8fCBvbGRDYXRlZ29yeVN0cnVjdHVyZVxuICAgICAgPyBPbGRDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXJcbiAgICAgIDogTmV3Q2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVQcm92aWRlcklmRXhpc3RzKHRva2VuOiBhbnksIHZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4gaXNOaWwodmFsdWUpID8gW10gOiBbeyBwcm92aWRlOiB0b2tlbiwgdXNlVmFsdWU6IHZhbHVlIH1dXG4gIH1cbn1cbiJdfQ==
@@ -1,34 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { AxiosAdapter, ProductsIndex } from '@infrab4a/connect';
3
- import { ES_CONFIG } from './consts/es-config.const';
4
- import * as i0 from "@angular/core";
5
- export class AngularElasticSeachModule {
6
- static initializeApp(options) {
7
- return {
8
- ngModule: AngularElasticSeachModule,
9
- providers: [{ provide: ES_CONFIG, useValue: options }],
10
- };
11
- }
12
- }
13
- AngularElasticSeachModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularElasticSeachModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
- AngularElasticSeachModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.0", ngImport: i0, type: AngularElasticSeachModule });
15
- AngularElasticSeachModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularElasticSeachModule, providers: [
16
- {
17
- provide: ProductsIndex,
18
- useFactory: (configuration) => new ProductsIndex(new AxiosAdapter(configuration)),
19
- deps: [ES_CONFIG],
20
- },
21
- ] });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularElasticSeachModule, decorators: [{
23
- type: NgModule,
24
- args: [{
25
- providers: [
26
- {
27
- provide: ProductsIndex,
28
- useFactory: (configuration) => new ProductsIndex(new AxiosAdapter(configuration)),
29
- deps: [ES_CONFIG],
30
- },
31
- ],
32
- }]
33
- }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1lbGFzdGljLXNlYXJjaC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL2FuZ3VsYXItZWxhc3RpYy1zZWFyY2gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQTRCLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRXpGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTs7QUFZcEQsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQWlDO1FBQ3BELE9BQU87WUFDTCxRQUFRLEVBQUUseUJBQXlCO1lBQ25DLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7U0FDdkQsQ0FBQTtJQUNILENBQUM7O3NIQU5VLHlCQUF5Qjt1SEFBekIseUJBQXlCO3VIQUF6Qix5QkFBeUIsYUFUekI7UUFDVDtZQUNFLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLFVBQVUsRUFBRSxDQUFDLGFBQXVDLEVBQWlCLEVBQUUsQ0FDckUsSUFBSSxhQUFhLENBQUMsSUFBSSxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDcEQsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDO1NBQ2xCO0tBQ0Y7MkZBRVUseUJBQXlCO2tCQVZyQyxRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsVUFBVSxFQUFFLENBQUMsYUFBdUMsRUFBaUIsRUFBRSxDQUNyRSxJQUFJLGFBQWEsQ0FBQyxJQUFJLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQzs0QkFDcEQsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDO3lCQUNsQjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEF4aW9zQWRhcHRlciwgQXhpb3NFbGFzdGljU2VhcmNoQ29uZmlnLCBQcm9kdWN0c0luZGV4IH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5cbmltcG9ydCB7IEVTX0NPTkZJRyB9IGZyb20gJy4vY29uc3RzL2VzLWNvbmZpZy5jb25zdCdcblxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogUHJvZHVjdHNJbmRleCxcbiAgICAgIHVzZUZhY3Rvcnk6IChjb25maWd1cmF0aW9uOiBBeGlvc0VsYXN0aWNTZWFyY2hDb25maWcpOiBQcm9kdWN0c0luZGV4ID0+XG4gICAgICAgIG5ldyBQcm9kdWN0c0luZGV4KG5ldyBBeGlvc0FkYXB0ZXIoY29uZmlndXJhdGlvbikpLFxuICAgICAgZGVwczogW0VTX0NPTkZJR10sXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQW5ndWxhckVsYXN0aWNTZWFjaE1vZHVsZSB7XG4gIHN0YXRpYyBpbml0aWFsaXplQXBwKG9wdGlvbnM6IEF4aW9zRWxhc3RpY1NlYXJjaENvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QW5ndWxhckVsYXN0aWNTZWFjaE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQW5ndWxhckVsYXN0aWNTZWFjaE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogRVNfQ09ORklHLCB1c2VWYWx1ZTogb3B0aW9ucyB9XSxcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,141 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { FirebaseApp } from '@angular/fire/app';
3
- import { Auth, browserLocalPersistence, browserSessionPersistence, getAuth, indexedDBLocalPersistence, initializeAuth, provideAuth, } from '@angular/fire/auth';
4
- import { Authentication, AuthenticationFirebaseAuthService, RecoveryPassword, Register, RegisterFirebaseAuthService, SignOut, } from '@infrab4a/connect';
5
- import { FIREBASE_APP_NAME, FIREBASE_OPTIONS } from './consts';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/fire/auth";
8
- export class AngularFirebaseAuthModule {
9
- static initializeApp(options, nameOrConfig) {
10
- return {
11
- ngModule: AngularFirebaseAuthModule,
12
- providers: [
13
- { provide: FIREBASE_OPTIONS, useValue: options },
14
- { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },
15
- ],
16
- };
17
- }
18
- }
19
- AngularFirebaseAuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularFirebaseAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20
- AngularFirebaseAuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.0", ngImport: i0, type: AngularFirebaseAuthModule, imports: [i1.AuthModule] });
21
- AngularFirebaseAuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularFirebaseAuthModule, providers: [
22
- {
23
- provide: 'Authentication',
24
- useFactory: (authenticationService, userRepository) => {
25
- return new Authentication(authenticationService, userRepository);
26
- },
27
- deps: ['AuthenticationService', 'UserRepository'],
28
- },
29
- {
30
- provide: 'AuthenticationService',
31
- useFactory: (angularFireAuth) => {
32
- return new AuthenticationFirebaseAuthService(angularFireAuth);
33
- },
34
- deps: [Auth],
35
- },
36
- {
37
- provide: 'Register',
38
- useFactory: (registerService, userRepository) => {
39
- return new Register(registerService, userRepository);
40
- },
41
- deps: ['RegisterService', 'UserRepository'],
42
- },
43
- {
44
- provide: 'RegisterService',
45
- useFactory: (angularFireAuth) => {
46
- return new RegisterFirebaseAuthService(angularFireAuth);
47
- },
48
- deps: [Auth],
49
- },
50
- {
51
- provide: 'SignOut',
52
- useFactory: (authenticationService) => {
53
- return new SignOut(authenticationService);
54
- },
55
- deps: ['AuthenticationService'],
56
- },
57
- {
58
- provide: 'RecoveryPassword',
59
- useFactory: (authenticationService) => {
60
- return new RecoveryPassword(authenticationService);
61
- },
62
- deps: ['AuthenticationService'],
63
- },
64
- ], imports: [provideAuth((injector) => {
65
- const app = injector.get(FirebaseApp);
66
- try {
67
- return initializeAuth(app, {
68
- persistence: [indexedDBLocalPersistence, browserLocalPersistence, browserSessionPersistence],
69
- });
70
- }
71
- catch (error) {
72
- if (error instanceof Error)
73
- console.error('Error initializing auth', error.message);
74
- return getAuth(app);
75
- }
76
- })] });
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularFirebaseAuthModule, decorators: [{
78
- type: NgModule,
79
- args: [{
80
- imports: [
81
- provideAuth((injector) => {
82
- const app = injector.get(FirebaseApp);
83
- try {
84
- return initializeAuth(app, {
85
- persistence: [indexedDBLocalPersistence, browserLocalPersistence, browserSessionPersistence],
86
- });
87
- }
88
- catch (error) {
89
- if (error instanceof Error)
90
- console.error('Error initializing auth', error.message);
91
- return getAuth(app);
92
- }
93
- }),
94
- ],
95
- providers: [
96
- {
97
- provide: 'Authentication',
98
- useFactory: (authenticationService, userRepository) => {
99
- return new Authentication(authenticationService, userRepository);
100
- },
101
- deps: ['AuthenticationService', 'UserRepository'],
102
- },
103
- {
104
- provide: 'AuthenticationService',
105
- useFactory: (angularFireAuth) => {
106
- return new AuthenticationFirebaseAuthService(angularFireAuth);
107
- },
108
- deps: [Auth],
109
- },
110
- {
111
- provide: 'Register',
112
- useFactory: (registerService, userRepository) => {
113
- return new Register(registerService, userRepository);
114
- },
115
- deps: ['RegisterService', 'UserRepository'],
116
- },
117
- {
118
- provide: 'RegisterService',
119
- useFactory: (angularFireAuth) => {
120
- return new RegisterFirebaseAuthService(angularFireAuth);
121
- },
122
- deps: [Auth],
123
- },
124
- {
125
- provide: 'SignOut',
126
- useFactory: (authenticationService) => {
127
- return new SignOut(authenticationService);
128
- },
129
- deps: ['AuthenticationService'],
130
- },
131
- {
132
- provide: 'RecoveryPassword',
133
- useFactory: (authenticationService) => {
134
- return new RecoveryPassword(authenticationService);
135
- },
136
- deps: ['AuthenticationService'],
137
- },
138
- ],
139
- }]
140
- }] });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1maXJlYmFzZS1hdXRoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvYW5ndWxhci1maXJlYmFzZS1hdXRoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlDLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFtQixNQUFNLG1CQUFtQixDQUFBO0FBQ2hFLE9BQU8sRUFDTCxJQUFJLEVBQ0osdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6QixPQUFPLEVBQ1AseUJBQXlCLEVBQ3pCLGNBQWMsRUFDZCxXQUFXLEdBQ1osTUFBTSxvQkFBb0IsQ0FBQTtBQUMzQixPQUFPLEVBQ0wsY0FBYyxFQUNkLGlDQUFpQyxFQUVqQyxnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLDJCQUEyQixFQUUzQixPQUFPLEdBRVIsTUFBTSxtQkFBbUIsQ0FBQTtBQUUxQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUE7OztBQWdFOUQsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxNQUFNLENBQUMsYUFBYSxDQUNsQixPQUF3QixFQUN4QixZQUF5QztRQUV6QyxPQUFPO1lBQ0wsUUFBUSxFQUFFLHlCQUF5QjtZQUNuQyxTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtnQkFDaEQsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRTthQUN2RDtTQUNGLENBQUE7SUFDSCxDQUFDOztzSEFaVSx5QkFBeUI7dUhBQXpCLHlCQUF5Qjt1SEFBekIseUJBQXlCLGFBN0N6QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixVQUFVLEVBQUUsQ0FBQyxxQkFBNEMsRUFBRSxjQUE4QixF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QUFFLENBQUMscUJBQTRDLEVBQW9CLEVBQUU7Z0NBQzdFLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBOzRCQUNwRCxDQUFDOzRCQUNELElBQUksRUFBRSxDQUFDLHVCQUF1QixDQUFDO3lCQUNoQztxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGaXJlYmFzZUFwcCwgRmlyZWJhc2VPcHRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hcHAnXG5pbXBvcnQge1xuICBBdXRoLFxuICBicm93c2VyTG9jYWxQZXJzaXN0ZW5jZSxcbiAgYnJvd3NlclNlc3Npb25QZXJzaXN0ZW5jZSxcbiAgZ2V0QXV0aCxcbiAgaW5kZXhlZERCTG9jYWxQZXJzaXN0ZW5jZSxcbiAgaW5pdGlhbGl6ZUF1dGgsXG4gIHByb3ZpZGVBdXRoLFxufSBmcm9tICdAYW5ndWxhci9maXJlL2F1dGgnXG5pbXBvcnQge1xuICBBdXRoZW50aWNhdGlvbixcbiAgQXV0aGVudGljYXRpb25GaXJlYmFzZUF1dGhTZXJ2aWNlLFxuICBBdXRoZW50aWNhdGlvblNlcnZpY2UsXG4gIFJlY292ZXJ5UGFzc3dvcmQsXG4gIFJlZ2lzdGVyLFxuICBSZWdpc3RlckZpcmViYXNlQXV0aFNlcnZpY2UsXG4gIFJlZ2lzdGVyU2VydmljZSxcbiAgU2lnbk91dCxcbiAgVXNlclJlcG9zaXRvcnksXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xuXG5pbXBvcnQgeyBGSVJFQkFTRV9BUFBfTkFNRSwgRklSRUJBU0VfT1BUSU9OUyB9IGZyb20gJy4vY29uc3RzJ1xuaW1wb3J0IHsgRmlyZWJhc2VBcHBDb25maWcgfSBmcm9tICcuL3R5cGVzJ1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgcHJvdmlkZUF1dGgoKGluamVjdG9yOiBJbmplY3RvcikgPT4ge1xuICAgICAgY29uc3QgYXBwID0gaW5qZWN0b3IuZ2V0KEZpcmViYXNlQXBwKVxuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gaW5pdGlhbGl6ZUF1dGgoYXBwLCB7XG4gICAgICAgICAgcGVyc2lzdGVuY2U6IFtpbmRleGVkREJMb2NhbFBlcnNpc3RlbmNlLCBicm93c2VyTG9jYWxQZXJzaXN0ZW5jZSwgYnJvd3NlclNlc3Npb25QZXJzaXN0ZW5jZV0sXG4gICAgICAgIH0pXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikgY29uc29sZS5lcnJvcignRXJyb3IgaW5pdGlhbGl6aW5nIGF1dGgnLCBlcnJvci5tZXNzYWdlKVxuXG4gICAgICAgIHJldHVybiBnZXRBdXRoKGFwcClcbiAgICAgIH1cbiAgICB9KSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogJ0F1dGhlbnRpY2F0aW9uJyxcbiAgICAgIHVzZUZhY3Rvcnk6IChhdXRoZW50aWNhdGlvblNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSwgdXNlclJlcG9zaXRvcnk6IFVzZXJSZXBvc2l0b3J5KTogQXV0aGVudGljYXRpb24gPT4ge1xuICAgICAgICByZXR1cm4gbmV3IEF1dGhlbnRpY2F0aW9uKGF1dGhlbnRpY2F0aW9uU2VydmljZSwgdXNlclJlcG9zaXRvcnkpXG4gICAgICB9LFxuICAgICAgZGVwczogWydBdXRoZW50aWNhdGlvblNlcnZpY2UnLCAnVXNlclJlcG9zaXRvcnknXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdBdXRoZW50aWNhdGlvblNlcnZpY2UnLFxuICAgICAgdXNlRmFjdG9yeTogKGFuZ3VsYXJGaXJlQXV0aDogQXV0aCk6IEF1dGhlbnRpY2F0aW9uU2VydmljZSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgQXV0aGVudGljYXRpb25GaXJlYmFzZUF1dGhTZXJ2aWNlKGFuZ3VsYXJGaXJlQXV0aClcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbQXV0aF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiAnUmVnaXN0ZXInLFxuICAgICAgdXNlRmFjdG9yeTogKHJlZ2lzdGVyU2VydmljZTogUmVnaXN0ZXJTZXJ2aWNlLCB1c2VyUmVwb3NpdG9yeTogVXNlclJlcG9zaXRvcnkpOiBSZWdpc3RlciA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgUmVnaXN0ZXIocmVnaXN0ZXJTZXJ2aWNlLCB1c2VyUmVwb3NpdG9yeSlcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbJ1JlZ2lzdGVyU2VydmljZScsICdVc2VyUmVwb3NpdG9yeSddLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ1JlZ2lzdGVyU2VydmljZScsXG4gICAgICB1c2VGYWN0b3J5OiAoYW5ndWxhckZpcmVBdXRoOiBBdXRoKTogUmVnaXN0ZXJTZXJ2aWNlID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBSZWdpc3RlckZpcmViYXNlQXV0aFNlcnZpY2UoYW5ndWxhckZpcmVBdXRoKVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFtBdXRoXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdTaWduT3V0JyxcbiAgICAgIHVzZUZhY3Rvcnk6IChhdXRoZW50aWNhdGlvblNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSk6IFNpZ25PdXQgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFNpZ25PdXQoYXV0aGVudGljYXRpb25TZXJ2aWNlKVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFsnQXV0aGVudGljYXRpb25TZXJ2aWNlJ10sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiAnUmVjb3ZlcnlQYXNzd29yZCcsXG4gICAgICB1c2VGYWN0b3J5OiAoYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UpOiBSZWNvdmVyeVBhc3N3b3JkID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBSZWNvdmVyeVBhc3N3b3JkKGF1dGhlbnRpY2F0aW9uU2VydmljZSlcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbJ0F1dGhlbnRpY2F0aW9uU2VydmljZSddLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJGaXJlYmFzZUF1dGhNb2R1bGUge1xuICBzdGF0aWMgaW5pdGlhbGl6ZUFwcChcbiAgICBvcHRpb25zOiBGaXJlYmFzZU9wdGlvbnMsXG4gICAgbmFtZU9yQ29uZmlnPzogc3RyaW5nIHwgRmlyZWJhc2VBcHBDb25maWcsXG4gICk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QW5ndWxhckZpcmViYXNlQXV0aE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQW5ndWxhckZpcmViYXNlQXV0aE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IEZJUkVCQVNFX09QVElPTlMsIHVzZVZhbHVlOiBvcHRpb25zIH0sXG4gICAgICAgIHsgcHJvdmlkZTogRklSRUJBU0VfQVBQX05BTUUsIHVzZVZhbHVlOiBuYW1lT3JDb25maWcgfSxcbiAgICAgIF0sXG4gICAgfVxuICB9XG59XG4iXX0=