@infrab4a/connect-angular 5.8.4 → 5.8.5

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 (301) hide show
  1. package/angular-connect.module.d.ts +36 -0
  2. package/angular-elastic-search.module.d.ts +9 -0
  3. package/angular-firebase-auth.module.d.ts +11 -0
  4. package/angular-firestore.module.d.ts +17 -0
  5. package/angular-hasura-graphql.module.d.ts +14 -0
  6. package/angular-vertex-search.module.d.ts +9 -0
  7. package/consts/backend-url.const.d.ts +1 -0
  8. package/consts/category-structure.d.ts +1 -0
  9. package/consts/default-shop.const.d.ts +1 -0
  10. package/consts/es-config.const.d.ts +1 -0
  11. package/consts/firebase-const.d.ts +4 -0
  12. package/consts/hasura-options.const.d.ts +1 -0
  13. package/consts/index.d.ts +8 -0
  14. package/consts/persistence.const.d.ts +1 -0
  15. package/consts/storage-base-url.const.d.ts +1 -0
  16. package/consts/vertex-config.const.d.ts +1 -0
  17. package/esm2020/angular-connect.module.mjs +293 -0
  18. package/esm2020/angular-elastic-search.module.mjs +34 -0
  19. package/esm2020/angular-firebase-auth.module.mjs +141 -0
  20. package/esm2020/angular-firestore.module.mjs +597 -0
  21. package/esm2020/angular-hasura-graphql.module.mjs +421 -0
  22. package/esm2020/angular-vertex-search.module.mjs +34 -0
  23. package/esm2020/consts/backend-url.const.mjs +2 -0
  24. package/esm2020/consts/category-structure.mjs +2 -0
  25. package/esm2020/consts/default-shop.const.mjs +2 -0
  26. package/esm2020/consts/es-config.const.mjs +2 -0
  27. package/esm2020/consts/firebase-const.mjs +5 -0
  28. package/esm2020/consts/hasura-options.const.mjs +2 -0
  29. package/esm2020/consts/index.mjs +9 -0
  30. package/esm2020/consts/persistence.const.mjs +2 -0
  31. package/esm2020/consts/storage-base-url.const.mjs +2 -0
  32. package/esm2020/consts/vertex-config.const.mjs +2 -0
  33. package/esm2020/helpers/index.mjs +2 -0
  34. package/esm2020/helpers/mobile-operation-system-checker.helper.mjs +7 -0
  35. package/esm2020/index.mjs +7 -0
  36. package/esm2020/infrab4a-connect-angular.mjs +5 -0
  37. package/esm2020/interfaces/catalog-strategies.interface.mjs +2 -0
  38. package/esm2020/interfaces/category-facades.interface.mjs +2 -0
  39. package/esm2020/interfaces/index.mjs +3 -0
  40. package/esm2020/persistence/cookie-data-persistence.mjs +22 -0
  41. package/esm2020/persistence/data-persistence.mjs +2 -0
  42. package/esm2020/persistence/index.mjs +3 -0
  43. package/esm2020/services/auth.service.mjs +37 -0
  44. package/esm2020/services/cart/cart-services.facade.mjs +21 -0
  45. package/esm2020/services/cart/index.mjs +2 -0
  46. package/esm2020/services/cart.service.mjs +73 -0
  47. package/esm2020/services/catalog/adapters/category-structure.adapter.mjs +2 -0
  48. package/esm2020/services/catalog/adapters/index.mjs +4 -0
  49. package/esm2020/services/catalog/adapters/new-category-structure.adapter.mjs +43 -0
  50. package/esm2020/services/catalog/adapters/old-category-structure.adapter.mjs +23 -0
  51. package/esm2020/services/catalog/catalog.service.mjs +111 -0
  52. package/esm2020/services/catalog/category.service.mjs +42 -0
  53. package/esm2020/services/catalog/context/catalog-search.context.mjs +40 -0
  54. package/esm2020/services/catalog/enums/index.mjs +2 -0
  55. package/esm2020/services/catalog/enums/product-sorts.enum.mjs +11 -0
  56. package/esm2020/services/catalog/facades/catalog-service.facade.mjs +32 -0
  57. package/esm2020/services/catalog/facades/catalog-strategies.facade.mjs +17 -0
  58. package/esm2020/services/catalog/facades/category-repository.facade.mjs +20 -0
  59. package/esm2020/services/catalog/facades/category-service.facade.mjs +30 -0
  60. package/esm2020/services/catalog/facades/index.mjs +6 -0
  61. package/esm2020/services/catalog/facades/product-catalog.facade.mjs +21 -0
  62. package/esm2020/services/catalog/helpers/brand-manager.helper.mjs +62 -0
  63. package/esm2020/services/catalog/helpers/catalog-filter.helper.mjs +44 -0
  64. package/esm2020/services/catalog/helpers/catalog-sort.helper.mjs +52 -0
  65. package/esm2020/services/catalog/helpers/index.mjs +5 -0
  66. package/esm2020/services/catalog/helpers/product-fields.helper.mjs +43 -0
  67. package/esm2020/services/catalog/index.mjs +8 -0
  68. package/esm2020/services/catalog/models/category-with-tree.model.mjs +10 -0
  69. package/esm2020/services/catalog/models/index.mjs +2 -0
  70. package/esm2020/services/catalog/services/catalog-helpers.service.mjs +33 -0
  71. package/esm2020/services/catalog/services/catalog-operations.facade.mjs +26 -0
  72. package/esm2020/services/catalog/services/catalog-repository.service.mjs +25 -0
  73. package/esm2020/services/catalog/services/index.mjs +5 -0
  74. package/esm2020/services/catalog/services/product-management.facade.mjs +25 -0
  75. package/esm2020/services/catalog/strategies/category-search.strategy.mjs +133 -0
  76. package/esm2020/services/catalog/strategies/index.mjs +4 -0
  77. package/esm2020/services/catalog/strategies/profile-search.strategy.mjs +42 -0
  78. package/esm2020/services/catalog/strategies/term-search.strategy.mjs +126 -0
  79. package/esm2020/services/catalog/strategies/types/strategy-params.type.mjs +2 -0
  80. package/esm2020/services/catalog/types/fetch-products-options.type.mjs +2 -0
  81. package/esm2020/services/catalog/types/fetch-products-params.type.mjs +2 -0
  82. package/esm2020/services/catalog/types/fetch-products-response.type.mjs +2 -0
  83. package/esm2020/services/catalog/types/index.mjs +6 -0
  84. package/esm2020/services/catalog/types/method-params.type.mjs +2 -0
  85. package/esm2020/services/catalog/types/product-sort.type.mjs +2 -0
  86. package/esm2020/services/catalog/wishlist.service.mjs +258 -0
  87. package/esm2020/services/checkout/checkout-dependencies.facade.mjs +20 -0
  88. package/esm2020/services/checkout/checkout-repositories.facade.mjs +20 -0
  89. package/esm2020/services/checkout/index.mjs +3 -0
  90. package/esm2020/services/checkout-subscription.service.mjs +55 -0
  91. package/esm2020/services/checkout.service.mjs +120 -0
  92. package/esm2020/services/coupon/coupon-repositories.facade.mjs +24 -0
  93. package/esm2020/services/coupon/index.mjs +2 -0
  94. package/esm2020/services/coupon/types/coupon-params.type.mjs +2 -0
  95. package/esm2020/services/coupon.service.mjs +248 -0
  96. package/esm2020/services/helpers/index.mjs +2 -0
  97. package/esm2020/services/helpers/util.helper.mjs +18 -0
  98. package/esm2020/services/home-shop/home-shop-repositories.facade.mjs +24 -0
  99. package/esm2020/services/home-shop/index.mjs +2 -0
  100. package/esm2020/services/home-shop.service.mjs +130 -0
  101. package/esm2020/services/index.mjs +12 -0
  102. package/esm2020/services/order-product-review.service.mjs +126 -0
  103. package/esm2020/services/order-recurrence.service.mjs +83 -0
  104. package/esm2020/services/order.service.mjs +30 -0
  105. package/esm2020/services/shared/configuration.facade.mjs +29 -0
  106. package/esm2020/services/shared/index.mjs +2 -0
  107. package/esm2020/services/types/index.mjs +5 -0
  108. package/esm2020/services/types/pending-product-review.type.mjs +2 -0
  109. package/esm2020/services/types/product-review-create.type.mjs +2 -0
  110. package/esm2020/services/types/required-checkout-data.type.mjs +2 -0
  111. package/esm2020/services/types/required-checkout-subscription-data.type.mjs +2 -0
  112. package/esm2020/types/firebase-app-config.type.mjs +2 -0
  113. package/esm2020/types/index.mjs +2 -0
  114. package/fesm2015/infrab4a-connect-angular.mjs +3757 -0
  115. package/fesm2015/infrab4a-connect-angular.mjs.map +1 -0
  116. package/fesm2020/infrab4a-connect-angular.mjs +3659 -0
  117. package/fesm2020/infrab4a-connect-angular.mjs.map +1 -0
  118. package/helpers/index.d.ts +1 -0
  119. package/helpers/mobile-operation-system-checker.helper.d.ts +3 -0
  120. package/index.d.ts +6 -0
  121. package/interfaces/catalog-strategies.interface.d.ts +31 -0
  122. package/interfaces/category-facades.interface.d.ts +6 -0
  123. package/interfaces/index.d.ts +2 -0
  124. package/package.json +24 -4
  125. package/persistence/cookie-data-persistence.d.ts +10 -0
  126. package/persistence/data-persistence.d.ts +6 -0
  127. package/persistence/index.d.ts +2 -0
  128. package/services/auth.service.d.ts +18 -0
  129. package/services/cart/cart-services.facade.d.ts +12 -0
  130. package/services/cart/index.d.ts +1 -0
  131. package/services/cart.service.d.ts +26 -0
  132. package/services/catalog/adapters/category-structure.adapter.d.ts +4 -0
  133. package/services/catalog/adapters/index.d.ts +3 -0
  134. package/services/catalog/adapters/new-category-structure.adapter.d.ts +12 -0
  135. package/services/catalog/adapters/old-category-structure.adapter.d.ts +10 -0
  136. package/services/catalog/catalog.service.d.ts +24 -0
  137. package/services/catalog/category.service.d.ts +23 -0
  138. package/services/catalog/context/catalog-search.context.d.ts +14 -0
  139. package/services/catalog/enums/index.d.ts +1 -0
  140. package/services/catalog/enums/product-sorts.enum.d.ts +9 -0
  141. package/services/catalog/facades/catalog-service.facade.d.ts +15 -0
  142. package/services/catalog/facades/catalog-strategies.facade.d.ts +10 -0
  143. package/services/catalog/facades/category-repository.facade.d.ts +9 -0
  144. package/services/catalog/facades/category-service.facade.d.ts +15 -0
  145. package/{src/services/catalog/facades/index.ts → services/catalog/facades/index.d.ts} +5 -5
  146. package/services/catalog/facades/product-catalog.facade.d.ts +10 -0
  147. package/services/catalog/helpers/brand-manager.helper.d.ts +14 -0
  148. package/services/catalog/helpers/catalog-filter.helper.d.ts +8 -0
  149. package/services/catalog/helpers/catalog-sort.helper.d.ts +7 -0
  150. package/services/catalog/helpers/index.d.ts +4 -0
  151. package/services/catalog/helpers/product-fields.helper.d.ts +7 -0
  152. package/services/catalog/index.d.ts +7 -0
  153. package/services/catalog/models/category-with-tree.model.d.ts +4 -0
  154. package/services/catalog/models/index.d.ts +1 -0
  155. package/services/catalog/services/catalog-helpers.service.d.ts +17 -0
  156. package/services/catalog/services/catalog-operations.facade.d.ts +13 -0
  157. package/services/catalog/services/catalog-repository.service.d.ts +12 -0
  158. package/{src/services/catalog/services/index.ts → services/catalog/services/index.d.ts} +4 -4
  159. package/services/catalog/services/product-management.facade.d.ts +12 -0
  160. package/services/catalog/strategies/category-search.strategy.d.ts +19 -0
  161. package/services/catalog/strategies/index.d.ts +3 -0
  162. package/services/catalog/strategies/profile-search.strategy.d.ts +14 -0
  163. package/services/catalog/strategies/term-search.strategy.d.ts +20 -0
  164. package/services/catalog/strategies/types/strategy-params.type.d.ts +59 -0
  165. package/services/catalog/types/fetch-products-options.type.d.ts +8 -0
  166. package/services/catalog/types/fetch-products-params.type.d.ts +25 -0
  167. package/services/catalog/types/fetch-products-response.type.d.ts +19 -0
  168. package/services/catalog/types/index.d.ts +5 -0
  169. package/services/catalog/types/method-params.type.d.ts +17 -0
  170. package/services/catalog/types/product-sort.type.d.ts +2 -0
  171. package/services/catalog/wishlist.service.d.ts +60 -0
  172. package/services/checkout/checkout-dependencies.facade.d.ts +10 -0
  173. package/services/checkout/checkout-repositories.facade.d.ts +9 -0
  174. package/{src/services/checkout/index.ts → services/checkout/index.d.ts} +2 -2
  175. package/services/checkout-subscription.service.d.ts +19 -0
  176. package/services/checkout.service.d.ts +31 -0
  177. package/services/coupon/coupon-repositories.facade.d.ts +10 -0
  178. package/{src/services/coupon/index.ts → services/coupon/index.d.ts} +1 -1
  179. package/services/coupon/types/coupon-params.type.d.ts +13 -0
  180. package/services/coupon.service.d.ts +36 -0
  181. package/services/helpers/index.d.ts +1 -0
  182. package/services/helpers/util.helper.d.ts +3 -0
  183. package/services/home-shop/home-shop-repositories.facade.d.ts +10 -0
  184. package/{src/services/home-shop/index.ts → services/home-shop/index.d.ts} +1 -1
  185. package/services/home-shop.service.d.ts +34 -0
  186. package/services/index.d.ts +11 -0
  187. package/services/order-product-review.service.d.ts +18 -0
  188. package/services/order-recurrence.service.d.ts +37 -0
  189. package/services/order.service.d.ts +13 -0
  190. package/services/shared/configuration.facade.d.ts +12 -0
  191. package/services/shared/index.d.ts +1 -0
  192. package/services/types/index.d.ts +4 -0
  193. package/services/types/pending-product-review.type.d.ts +12 -0
  194. package/services/types/product-review-create.type.d.ts +14 -0
  195. package/services/types/required-checkout-data.type.d.ts +2 -0
  196. package/services/types/required-checkout-subscription-data.type.d.ts +2 -0
  197. package/types/firebase-app-config.type.d.ts +1 -0
  198. package/types/index.d.ts +1 -0
  199. package/eslint.config.js +0 -18
  200. package/index.ts +0 -1
  201. package/karma.conf.js +0 -32
  202. package/ng-package.json +0 -8
  203. package/project.json +0 -37
  204. package/src/angular-connect.module.ts +0 -270
  205. package/src/angular-elastic-search.module.ts +0 -23
  206. package/src/angular-firebase-auth.module.ts +0 -101
  207. package/src/angular-firestore.module.ts +0 -407
  208. package/src/angular-hasura-graphql.module.ts +0 -268
  209. package/src/angular-vertex-search.module.ts +0 -23
  210. package/src/consts/backend-url.const.ts +0 -1
  211. package/src/consts/category-structure.ts +0 -1
  212. package/src/consts/default-shop.const.ts +0 -1
  213. package/src/consts/es-config.const.ts +0 -1
  214. package/src/consts/firebase-const.ts +0 -5
  215. package/src/consts/hasura-options.const.ts +0 -1
  216. package/src/consts/index.ts +0 -8
  217. package/src/consts/persistence.const.ts +0 -1
  218. package/src/consts/storage-base-url.const.ts +0 -1
  219. package/src/consts/vertex-config.const.ts +0 -1
  220. package/src/helpers/index.ts +0 -1
  221. package/src/helpers/mobile-operation-system-checker.helper.ts +0 -10
  222. package/src/index.ts +0 -6
  223. package/src/interfaces/catalog-strategies.interface.ts +0 -36
  224. package/src/interfaces/category-facades.interface.ts +0 -7
  225. package/src/interfaces/index.ts +0 -2
  226. package/src/persistence/cookie-data-persistence.ts +0 -21
  227. package/src/persistence/data-persistence.ts +0 -7
  228. package/src/persistence/index.ts +0 -2
  229. package/src/services/auth.service.ts +0 -39
  230. package/src/services/cart/cart-services.facade.ts +0 -14
  231. package/src/services/cart/index.ts +0 -1
  232. package/src/services/cart.service.ts +0 -124
  233. package/src/services/catalog/adapters/category-structure.adapter.ts +0 -5
  234. package/src/services/catalog/adapters/index.ts +0 -3
  235. package/src/services/catalog/adapters/new-category-structure.adapter.ts +0 -42
  236. package/src/services/catalog/adapters/old-category-structure.adapter.ts +0 -17
  237. package/src/services/catalog/catalog.service.ts +0 -153
  238. package/src/services/catalog/category.service.ts +0 -56
  239. package/src/services/catalog/context/catalog-search.context.ts +0 -59
  240. package/src/services/catalog/enums/index.ts +0 -1
  241. package/src/services/catalog/enums/product-sorts.enum.ts +0 -9
  242. package/src/services/catalog/facades/catalog-service.facade.ts +0 -32
  243. package/src/services/catalog/facades/catalog-strategies.facade.ts +0 -12
  244. package/src/services/catalog/facades/category-repository.facade.ts +0 -10
  245. package/src/services/catalog/facades/category-service.facade.ts +0 -25
  246. package/src/services/catalog/facades/product-catalog.facade.ts +0 -13
  247. package/src/services/catalog/helpers/brand-manager.helper.ts +0 -69
  248. package/src/services/catalog/helpers/catalog-filter.helper.ts +0 -50
  249. package/src/services/catalog/helpers/catalog-sort.helper.ts +0 -54
  250. package/src/services/catalog/helpers/index.ts +0 -4
  251. package/src/services/catalog/helpers/product-fields.helper.ts +0 -39
  252. package/src/services/catalog/index.ts +0 -7
  253. package/src/services/catalog/models/category-with-tree.model.ts +0 -7
  254. package/src/services/catalog/models/index.ts +0 -1
  255. package/src/services/catalog/services/catalog-helpers.service.ts +0 -35
  256. package/src/services/catalog/services/catalog-operations.facade.ts +0 -24
  257. package/src/services/catalog/services/catalog-repository.service.ts +0 -20
  258. package/src/services/catalog/services/product-management.facade.ts +0 -20
  259. package/src/services/catalog/strategies/category-search.strategy.ts +0 -168
  260. package/src/services/catalog/strategies/index.ts +0 -3
  261. package/src/services/catalog/strategies/profile-search.strategy.ts +0 -51
  262. package/src/services/catalog/strategies/term-search.strategy.ts +0 -163
  263. package/src/services/catalog/strategies/types/strategy-params.type.ts +0 -59
  264. package/src/services/catalog/types/fetch-products-options.type.ts +0 -10
  265. package/src/services/catalog/types/fetch-products-params.type.ts +0 -27
  266. package/src/services/catalog/types/fetch-products-response.type.ts +0 -11
  267. package/src/services/catalog/types/index.ts +0 -5
  268. package/src/services/catalog/types/method-params.type.ts +0 -21
  269. package/src/services/catalog/types/product-sort.type.ts +0 -3
  270. package/src/services/catalog/wishlist.service.ts +0 -364
  271. package/src/services/checkout/checkout-dependencies.facade.ts +0 -13
  272. package/src/services/checkout/checkout-repositories.facade.ts +0 -10
  273. package/src/services/checkout-subscription.service.ts +0 -76
  274. package/src/services/checkout.service.ts +0 -213
  275. package/src/services/coupon/coupon-repositories.facade.ts +0 -11
  276. package/src/services/coupon/types/coupon-params.type.ts +0 -15
  277. package/src/services/coupon.service.ts +0 -347
  278. package/src/services/errors/group-invalid-coupon.error.ts +0 -9
  279. package/src/services/errors/index.ts +0 -2
  280. package/src/services/errors/invalid-coupon.error.ts +0 -7
  281. package/src/services/helpers/index.ts +0 -1
  282. package/src/services/helpers/util.helper.ts +0 -17
  283. package/src/services/home-shop/home-shop-repositories.facade.ts +0 -11
  284. package/src/services/home-shop.service.ts +0 -210
  285. package/src/services/index.ts +0 -12
  286. package/src/services/order-product-review.service.ts +0 -135
  287. package/src/services/order-recurrence.service.ts +0 -115
  288. package/src/services/order.service.ts +0 -23
  289. package/src/services/shared/configuration.facade.ts +0 -21
  290. package/src/services/shared/index.ts +0 -1
  291. package/src/services/types/index.ts +0 -4
  292. package/src/services/types/pending-product-review.type.ts +0 -12
  293. package/src/services/types/product-review-create.type.ts +0 -15
  294. package/src/services/types/required-checkout-data.type.ts +0 -3
  295. package/src/services/types/required-checkout-subscription-data.type.ts +0 -3
  296. package/src/types/firebase-app-config.type.ts +0 -1
  297. package/src/types/index.ts +0 -1
  298. package/tsconfig.json +0 -17
  299. package/tsconfig.lib.json +0 -13
  300. package/tsconfig.lib.prod.json +0 -13
  301. package/tsconfig.spec.json +0 -17
@@ -0,0 +1,36 @@
1
+ import { ModuleWithProviders, Type } from '@angular/core';
2
+ import { FirebaseOptions } from '@angular/fire/app';
3
+ import { AppCheckOptions } from '@angular/fire/app-check';
4
+ import { AxiosElasticSearchConfig, Shops, VertexSearchConfig } from '@infrab4a/connect';
5
+ import { HasuraGraphQLOptions } from './angular-hasura-graphql.module';
6
+ import { DataPersistence } from './persistence';
7
+ import { FirebaseAppConfig } from './types';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/fire/app";
10
+ import * as i2 from "@angular/fire/app-check";
11
+ import * as i3 from "@angular/fire/storage";
12
+ import * as i4 from "./angular-elastic-search.module";
13
+ import * as i5 from "./angular-vertex-search.module";
14
+ import * as i6 from "./angular-firebase-auth.module";
15
+ import * as i7 from "./angular-firestore.module";
16
+ import * as i8 from "./angular-hasura-graphql.module";
17
+ export declare class AngularConnectModule {
18
+ static initializeApp(defaultShop: Shops, options: {
19
+ firebase?: FirebaseOptions;
20
+ elasticSearch?: AxiosElasticSearchConfig;
21
+ vertexConfig?: VertexSearchConfig;
22
+ hasura: HasuraGraphQLOptions;
23
+ backendUrl: string;
24
+ oldCategoryStructure?: boolean;
25
+ storageBaseUrl?: string;
26
+ persistenceProvider?: Type<DataPersistence>;
27
+ appCheckProvider?: AppCheckOptions['provider'];
28
+ }, nameOrConfig?: string | FirebaseAppConfig): ModuleWithProviders<AngularConnectModule>;
29
+ private static buildCoreProviders;
30
+ private static buildConditionalProviders;
31
+ private static selectCategoryStructureAdapter;
32
+ private static createProviderIfExists;
33
+ static ɵfac: i0.ɵɵFactoryDeclaration<AngularConnectModule, never>;
34
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AngularConnectModule, never, [typeof i1.FirebaseAppModule, typeof i2.AppCheckModule, typeof i3.StorageModule, typeof i4.AngularElasticSeachModule, typeof i5.AngularVertexSeachModule, typeof i6.AngularFirebaseAuthModule, typeof i7.AngularFirestoreModule, typeof i8.AngularHasuraGraphQLModule], never>;
35
+ static ɵinj: i0.ɵɵInjectorDeclaration<AngularConnectModule>;
36
+ }
@@ -0,0 +1,9 @@
1
+ import { ModuleWithProviders } from '@angular/core';
2
+ import { AxiosElasticSearchConfig } from '@infrab4a/connect';
3
+ import * as i0 from "@angular/core";
4
+ export declare class AngularElasticSeachModule {
5
+ static initializeApp(options: AxiosElasticSearchConfig): ModuleWithProviders<AngularElasticSeachModule>;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<AngularElasticSeachModule, never>;
7
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AngularElasticSeachModule, never, never, never>;
8
+ static ɵinj: i0.ɵɵInjectorDeclaration<AngularElasticSeachModule>;
9
+ }
@@ -0,0 +1,11 @@
1
+ import { ModuleWithProviders } from '@angular/core';
2
+ import { FirebaseOptions } from '@angular/fire/app';
3
+ import { FirebaseAppConfig } from './types';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/fire/auth";
6
+ export declare class AngularFirebaseAuthModule {
7
+ static initializeApp(options: FirebaseOptions, nameOrConfig?: string | FirebaseAppConfig): ModuleWithProviders<AngularFirebaseAuthModule>;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<AngularFirebaseAuthModule, never>;
9
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AngularFirebaseAuthModule, never, [typeof i1.AuthModule], never>;
10
+ static ɵinj: i0.ɵɵInjectorDeclaration<AngularFirebaseAuthModule>;
11
+ }
@@ -0,0 +1,17 @@
1
+ import { ModuleWithProviders } from '@angular/core';
2
+ import { FirebaseOptions } from '@angular/fire/app';
3
+ import { AxiosElasticSearchConfig, FirestoreConstructorParams } from '@infrab4a/connect';
4
+ import { FirebaseAppConfig } from './types';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./angular-elastic-search.module";
7
+ import * as i2 from "@angular/fire/firestore";
8
+ export type FirestoreOptions = Pick<FirestoreConstructorParams<any>, 'firestore' | 'interceptors'>;
9
+ export declare class AngularFirestoreModule {
10
+ static initializeApp(options: {
11
+ firebase: FirebaseOptions;
12
+ elasticSearch: AxiosElasticSearchConfig;
13
+ }, nameOrConfig?: string | FirebaseAppConfig): ModuleWithProviders<AngularFirestoreModule>;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<AngularFirestoreModule, never>;
15
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AngularFirestoreModule, never, [typeof i1.AngularElasticSeachModule, typeof i2.FirestoreModule], never>;
16
+ static ɵinj: i0.ɵɵInjectorDeclaration<AngularFirestoreModule>;
17
+ }
@@ -0,0 +1,14 @@
1
+ import { ModuleWithProviders } from '@angular/core';
2
+ import { CacheConfig, HasuraGraphQLAuthOptions } from '@infrab4a/connect';
3
+ import * as i0 from "@angular/core";
4
+ export type HasuraGraphQLOptions = {
5
+ endpoint: string;
6
+ credentials?: HasuraGraphQLAuthOptions;
7
+ cache?: CacheConfig;
8
+ };
9
+ export declare class AngularHasuraGraphQLModule {
10
+ static initializeApp(options: HasuraGraphQLOptions): ModuleWithProviders<AngularHasuraGraphQLModule>;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<AngularHasuraGraphQLModule, never>;
12
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AngularHasuraGraphQLModule, never, never, never>;
13
+ static ɵinj: i0.ɵɵInjectorDeclaration<AngularHasuraGraphQLModule>;
14
+ }
@@ -0,0 +1,9 @@
1
+ import { ModuleWithProviders } from '@angular/core';
2
+ import { VertexSearchConfig } from '@infrab4a/connect';
3
+ import * as i0 from "@angular/core";
4
+ export declare class AngularVertexSeachModule {
5
+ static initializeApp(options: VertexSearchConfig): ModuleWithProviders<AngularVertexSeachModule>;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<AngularVertexSeachModule, never>;
7
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AngularVertexSeachModule, never, never, never>;
8
+ static ɵinj: i0.ɵɵInjectorDeclaration<AngularVertexSeachModule>;
9
+ }
@@ -0,0 +1 @@
1
+ export declare const BACKEND_URL = "BACKEND_URL";
@@ -0,0 +1 @@
1
+ export declare const CATEGORY_STRUCTURE = "CATEGORY_STRUCTURE";
@@ -0,0 +1 @@
1
+ export declare const DEFAULT_SHOP = "DEFAULT_SHOP";
@@ -0,0 +1 @@
1
+ export declare const ES_CONFIG = "ES_CONFIG";
@@ -0,0 +1,4 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export declare const FIREBASE_APP_NAME: InjectionToken<unknown>;
3
+ export declare const FIREBASE_OPTIONS: InjectionToken<unknown>;
4
+ export declare const APP_CHECK_PROVIDER: InjectionToken<unknown>;
@@ -0,0 +1 @@
1
+ export declare const HASURA_OPTIONS = "HASURA_OPTIONS";
@@ -0,0 +1,8 @@
1
+ export * from './backend-url.const';
2
+ export * from './category-structure';
3
+ export * from './default-shop.const';
4
+ export * from './es-config.const';
5
+ export * from './firebase-const';
6
+ export * from './hasura-options.const';
7
+ export * from './persistence.const';
8
+ export * from './vertex-config.const';
@@ -0,0 +1 @@
1
+ export declare const PERSISTENCE_PROVIDER = "PERSISTENCE_PROVIDER";
@@ -0,0 +1 @@
1
+ export declare const STORAGE_BASE_URL = "STORAGE_BASE_URL";
@@ -0,0 +1 @@
1
+ export declare const VERTEX_CONFIG = "VERTEX_CONFIG";
@@ -0,0 +1,293 @@
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, OrderProductReviewService, OrderRecurrenceService, 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
+ OrderProductReviewService,
145
+ OrderRecurrenceService
146
+ ], imports: [provideFirebaseApp((injector) => {
147
+ const appName = injector.get(FIREBASE_APP_NAME);
148
+ try {
149
+ const app = appName ? getApp(appName) : getApp();
150
+ return app;
151
+ }
152
+ catch (error) {
153
+ console.warn('Firebase app not found, initializing new app');
154
+ if (error instanceof Error)
155
+ console.error(error.message);
156
+ return initializeApp(injector.get(FIREBASE_OPTIONS), appName);
157
+ }
158
+ }),
159
+ provideAppCheck((injector) => {
160
+ const app = injector.get(FirebaseApp);
161
+ try {
162
+ const provider = injector.get(APP_CHECK_PROVIDER);
163
+ if (provider)
164
+ return initializeAppCheck(app, {
165
+ provider,
166
+ isTokenAutoRefreshEnabled: true,
167
+ });
168
+ }
169
+ catch (error) {
170
+ if (error instanceof Error)
171
+ console.error(error.message);
172
+ return;
173
+ }
174
+ }),
175
+ provideStorage((injector) => getStorage(injector.get(FirebaseApp))),
176
+ AngularElasticSeachModule,
177
+ AngularVertexSeachModule,
178
+ AngularFirebaseAuthModule,
179
+ AngularFirestoreModule,
180
+ AngularHasuraGraphQLModule] });
181
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularConnectModule, decorators: [{
182
+ type: NgModule,
183
+ args: [{
184
+ imports: [
185
+ provideFirebaseApp((injector) => {
186
+ const appName = injector.get(FIREBASE_APP_NAME);
187
+ try {
188
+ const app = appName ? getApp(appName) : getApp();
189
+ return app;
190
+ }
191
+ catch (error) {
192
+ console.warn('Firebase app not found, initializing new app');
193
+ if (error instanceof Error)
194
+ console.error(error.message);
195
+ return initializeApp(injector.get(FIREBASE_OPTIONS), appName);
196
+ }
197
+ }),
198
+ provideAppCheck((injector) => {
199
+ const app = injector.get(FirebaseApp);
200
+ try {
201
+ const provider = injector.get(APP_CHECK_PROVIDER);
202
+ if (provider)
203
+ return initializeAppCheck(app, {
204
+ provider,
205
+ isTokenAutoRefreshEnabled: true,
206
+ });
207
+ }
208
+ catch (error) {
209
+ if (error instanceof Error)
210
+ console.error(error.message);
211
+ return;
212
+ }
213
+ }),
214
+ provideStorage((injector) => getStorage(injector.get(FirebaseApp))),
215
+ AngularElasticSeachModule,
216
+ AngularVertexSeachModule,
217
+ AngularFirebaseAuthModule,
218
+ AngularFirestoreModule,
219
+ AngularHasuraGraphQLModule,
220
+ ],
221
+ providers: [
222
+ AuthService,
223
+ CartService,
224
+ CatalogService,
225
+ CategoryService,
226
+ CheckoutService,
227
+ CheckoutSubscriptionService,
228
+ CouponService,
229
+ HomeShopService,
230
+ OrderService,
231
+ WishlistService,
232
+ ConfigurationFacade,
233
+ CartServicesFacade,
234
+ CheckoutRepositoriesFacade,
235
+ CheckoutDependenciesFacade,
236
+ CategoryRepositoryFacade,
237
+ ProductCatalogFacade,
238
+ CatalogServiceFacade,
239
+ CategoryServiceFacade,
240
+ CatalogStrategiesFacade,
241
+ CatalogOperationsFacade,
242
+ ProductManagementFacade,
243
+ {
244
+ provide: 'ProductServicesFacade',
245
+ useFactory: (productStockNotificationRepository, categoryRepository, productSearch) => ({
246
+ productStockNotificationRepository,
247
+ categoryRepository,
248
+ productSearch,
249
+ }),
250
+ deps: ['ProductStockNotificationRepository', 'CategoryRepository', 'ProductSearch'],
251
+ },
252
+ CatalogFilterHelper,
253
+ CatalogSortHelper,
254
+ ProductFieldsHelper,
255
+ BrandManagerHelper,
256
+ CatalogRepositoryService,
257
+ CatalogHelpersService,
258
+ CategorySearchStrategy,
259
+ TermSearchStrategy,
260
+ ProfileSearchStrategy,
261
+ {
262
+ provide: CatalogSearchContext,
263
+ useFactory: (categoryStrategy, termStrategy, profileStrategy) => {
264
+ return new CatalogSearchContext(categoryStrategy, termStrategy, profileStrategy);
265
+ },
266
+ deps: [CategorySearchStrategy, TermSearchStrategy, ProfileSearchStrategy],
267
+ },
268
+ {
269
+ provide: UpdateUserImage,
270
+ useFactory: (userRepository, fileUploader) => {
271
+ return new UpdateUserImage(userRepository, fileUploader);
272
+ },
273
+ deps: ['UserRepository', 'FileUploaderService'],
274
+ },
275
+ {
276
+ provide: 'FileUploaderService',
277
+ useFactory: (storage, baseUrl) => {
278
+ return new FirebaseFileUploaderService(storage, baseUrl);
279
+ },
280
+ deps: [Storage, STORAGE_BASE_URL],
281
+ },
282
+ {
283
+ provide: 'ProductSearch',
284
+ useExisting: ProductsVertexSearch,
285
+ },
286
+ CouponRepositoriesFacade,
287
+ HomeShopRepositoriesFacade,
288
+ OrderProductReviewService,
289
+ OrderRecurrenceService
290
+ ],
291
+ }]
292
+ }] });
293
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1jb25uZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvYW5ndWxhci1jb25uZWN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlDLFFBQVEsRUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUM3RSxPQUFPLEVBQUUsV0FBVyxFQUFtQixNQUFNLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDM0csT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUM5RixPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUMzRSxPQUFPLEVBR0wsMkJBQTJCLEVBQzNCLEtBQUssRUFDTCxvQkFBb0IsRUFFcEIsZUFBZSxHQUdoQixNQUFNLG1CQUFtQixDQUFBO0FBRTFCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQzNFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBQzFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ25FLE9BQU8sRUFBRSwwQkFBMEIsRUFBd0IsTUFBTSxpQ0FBaUMsQ0FBQTtBQUNsRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUN6RSxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCxrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsYUFBYSxHQUNkLE1BQU0sVUFBVSxDQUFBO0FBQ2pCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FB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c0I7cUJBQ3ZCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgRmlyZWJhc2VBcHAsIEZpcmViYXNlT3B0aW9ucywgZ2V0QXBwLCBpbml0aWFsaXplQXBwLCBwcm92aWRlRmlyZWJhc2VBcHAgfSBmcm9tICdAYW5ndWxhci9maXJlL2FwcCdcclxuaW1wb3J0IHsgQXBwQ2hlY2tPcHRpb25zLCBpbml0aWFsaXplQXBwQ2hlY2ssIHByb3ZpZGVBcHBDaGVjayB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXBwLWNoZWNrJ1xyXG5pbXBvcnQgeyBnZXRTdG9yYWdlLCBwcm92aWRlU3RvcmFnZSwgU3RvcmFnZSB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvc3RvcmFnZSdcclxuaW1wb3J0IHtcclxuICBBeGlvc0VsYXN0aWNTZWFyY2hDb25maWcsXHJcbiAgRmlsZVVwbG9hZGVyU2VydmljZSxcclxuICBGaXJlYmFzZUZpbGVVcGxvYWRlclNlcnZpY2UsXHJcbiAgaXNOaWwsXHJcbiAgUHJvZHVjdHNWZXJ0ZXhTZWFyY2gsXHJcbiAgU2hvcHMsXHJcbiAgVXBkYXRlVXNlckltYWdlLFxyXG4gIFVzZXJSZXBvc2l0b3J5LFxyXG4gIFZlcnRleFNlYXJjaENvbmZpZyxcclxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcclxuXHJcbmltcG9ydCB7IEFuZ3VsYXJFbGFzdGljU2VhY2hNb2R1bGUgfSBmcm9tICcuL2FuZ3VsYXItZWxhc3RpYy1zZWFyY2gubW9kdWxlJ1xyXG5pbXBvcnQgeyBBbmd1bGFyRmlyZWJhc2VBdXRoTW9kdWxlIH0gZnJvbSAnLi9hbmd1bGFyLWZpcmViYXNlLWF1dGgubW9kdWxlJ1xyXG5pbXBvcnQgeyBBbmd1bGFyRmlyZXN0b3JlTW9kdWxlIH0gZnJvbSAnLi9hbmd1bGFyLWZpcmVzdG9yZS5tb2R1bGUnXHJcbmltcG9ydCB7IEFuZ3VsYXJIYXN1cmFHcmFwaFFMTW9kdWxlLCBIYXN1cmFHcmFwaFFMT3B0aW9ucyB9IGZyb20gJy4vYW5ndWxhci1oYXN1cmEtZ3JhcGhxbC5tb2R1bGUnXHJcbmltcG9ydCB7IEFuZ3VsYXJWZXJ0ZXhTZWFjaE1vZHVsZSB9IGZyb20gJy4vYW5ndWxhci12ZXJ0ZXgtc2VhcmNoLm1vZHVsZSdcclxuaW1wb3J0IHtcclxuICBBUFBfQ0hFQ0tfUFJPVklERVIsXHJcbiAgQkFDS0VORF9VUkwsXHJcbiAgQ0FURUdPUllfU1RSVUNUVVJFLFxyXG4gIERFRkFVTFRfU0hPUCxcclxuICBFU19DT05GSUcsXHJcbiAgRklSRUJBU0VfQVBQX05BTUUsXHJcbiAgRklSRUJBU0VfT1BUSU9OUyxcclxuICBIQVNVUkFfT1BUSU9OUyxcclxuICBQRVJTSVNURU5DRV9QUk9WSURFUixcclxuICBWRVJURVhfQ09ORklHLFxyXG59IGZyb20gJy4vY29uc3RzJ1xyXG5pbXBvcnQgeyBTVE9SQUdFX0JBU0VfVVJMIH0gZnJvbSAnLi9jb25zdHMvc3RvcmFnZS1iYXNlLXVybC5jb25zdCdcclxuaW1wb3J0IHsgQ29va2llRGF0YVBlcnNpc3RlbmNlLCBEYXRhUGVyc2lzdGVuY2UgfSBmcm9tICcuL3BlcnNpc3RlbmNlJ1xyXG5pbXBvcnQge1xyXG4gIEF1dGhTZXJ2aWNlLFxyXG4gIENhcnRTZXJ2aWNlLFxyXG4gIENhdGFsb2dTZXJ2aWNlLFxyXG4gIENhdGVnb3J5U2VydmljZSxcclxuICBDaGVja291dFNlcnZpY2UsXHJcbiAgQ2hlY2tvdXRTdWJzY3JpcHRpb25TZXJ2aWNlLFxyXG4gIENvdXBvblNlcnZpY2UsXHJcbiAgSG9tZVNob3BTZXJ2aWNlLFxyXG4gIE9yZGVyUHJvZHVjdFJldmlld1NlcnZpY2UsXHJcbiAgT3JkZXJSZWN1cnJlbmNlU2VydmljZSxcclxuICBPcmRlclNlcnZpY2UsXHJcbiAgV2lzaGxpc3RTZXJ2aWNlLFxyXG59IGZyb20gJy4vc2VydmljZXMnXHJcbmltcG9ydCB7IENhcnRTZXJ2aWNlc0ZhY2FkZSB9IGZyb20gJy4vc2VydmljZXMvY2FydCdcclxuaW1wb3J0IHsgTmV3Q2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyLCBPbGRDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIgfSBmcm9tICcuL3NlcnZpY2VzL2NhdGFsb2cvYWRhcHRlcnMnXHJcbmltcG9ydCB7IENhdGFsb2dTZWFyY2hDb250ZXh0IH0gZnJvbSAnLi9zZXJ2aWNlcy9jYXRhbG9nL2NvbnRleHQvY2F0YWxvZy1zZWFyY2guY29udGV4dCdcclxuaW1wb3J0IHtcclxuICBDYXRhbG9nU2VydmljZUZhY2FkZSxcclxuICBDYXRhbG9nU3RyYXRlZ2llc0ZhY2FkZSxcclxuICBDYXRlZ29yeVJlcG9zaXRvcnlGYWNhZGUsXHJcbiAgQ2F0ZWdvcnlTZXJ2aWNlRmFjYWRlLFxyXG4gIFByb2R1Y3RDYXRhbG9nRmFjYWRlLFxyXG59IGZyb20gJy4vc2VydmljZXMvY2F0YWxvZy9mYWNhZGVzJ1xyXG5pbXBvcnQge1xyXG4gIEJyYW5kTWFuYWdlckhlbHBlcixcclxuICBDYXRhbG9nRmlsdGVySGVscGVyLFxyXG4gIENhdGFsb2dTb3J0SGVscGVyLFxyXG4gIFByb2R1Y3RGaWVsZHNIZWxwZXIsXHJcbn0gZnJvbSAnLi9zZXJ2aWNlcy9jYXRhbG9nL2hlbHBlcnMnXHJcbmltcG9ydCB7XHJcbiAgQ2F0YWxvZ0hlbHBlcnNTZXJ2aWNlLFxyXG4gIENhdGFsb2dPcGVyYXRpb25zRmFjYWRlLFxyXG4gIENhdGFsb2dSZXBvc2l0b3J5U2VydmljZSxcclxuICBQcm9kdWN0TWFuYWdlbWVudEZhY2FkZSxcclxufSBmcm9tICcuL3NlcnZpY2VzL2NhdGFsb2cvc2VydmljZXMnXHJcbmltcG9ydCB7IENhdGVnb3J5U2VhcmNoU3RyYXRlZ3ksIFByb2ZpbGVTZWFyY2hTdHJhdGVneSwgVGVybVNlYXJjaFN0cmF0ZWd5IH0gZnJvbSAnLi9zZXJ2aWNlcy9jYXRhbG9nL3N0cmF0ZWdpZXMnXHJcbmltcG9ydCB7IENoZWNrb3V0RGVwZW5kZW5jaWVzRmFjYWRlLCBDaGVja291dFJlcG9zaXRvcmllc0ZhY2FkZSB9IGZyb20gJy4vc2VydmljZXMvY2hlY2tvdXQnXHJcbmltcG9ydCB7IENvdXBvblJlcG9zaXRvcmllc0ZhY2FkZSB9IGZyb20gJy4vc2VydmljZXMvY291cG9uJ1xyXG5pbXBvcnQgeyBIb21lU2hvcFJlcG9zaXRvcmllc0ZhY2FkZSB9IGZyb20gJy4vc2VydmljZXMvaG9tZS1zaG9wJ1xyXG5pbXBvcnQgeyBDb25maWd1cmF0aW9uRmFjYWRlIH0gZnJvbSAnLi9zZXJ2aWNlcy9zaGFyZWQnXHJcbmltcG9ydCB7IEZpcmViYXNlQXBwQ29uZmlnIH0gZnJvbSAnLi90eXBlcydcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgcHJvdmlkZUZpcmViYXNlQXBwKChpbmplY3RvcjogSW5qZWN0b3IpID0+IHtcclxuICAgICAgY29uc3QgYXBwTmFtZSA9IGluamVjdG9yLmdldDxzdHJpbmc+KEZJUkVCQVNFX0FQUF9OQU1FKVxyXG5cclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCBhcHAgPSBhcHBOYW1lID8gZ2V0QXBwKGFwcE5hbWUpIDogZ2V0QXBwKClcclxuXHJcbiAgICAgICAgcmV0dXJuIGFwcFxyXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIGNvbnNvbGUud2FybignRmlyZWJhc2UgYXBwIG5vdCBmb3VuZCwgaW5pdGlhbGl6aW5nIG5ldyBhcHAnKVxyXG5cclxuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikgY29uc29sZS5lcnJvcihlcnJvci5tZXNzYWdlKVxyXG5cclxuICAgICAgICByZXR1cm4gaW5pdGlhbGl6ZUFwcChpbmplY3Rvci5nZXQoRklSRUJBU0VfT1BUSU9OUyksIGFwcE5hbWUpXHJcbiAgICAgIH1cclxuICAgIH0pLFxyXG4gICAgcHJvdmlkZUFwcENoZWNrKChpbmplY3RvcjogSW5qZWN0b3IpID0+IHtcclxuICAgICAgY29uc3QgYXBwID0gaW5qZWN0b3IuZ2V0KEZpcmViYXNlQXBwKVxyXG5cclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCBwcm92aWRlciA9IGluamVjdG9yLmdldDxBcHBDaGVja09wdGlvbnNbJ3Byb3ZpZGVyJ10+KEFQUF9DSEVDS19QUk9WSURFUilcclxuXHJcbiAgICAgICAgaWYgKHByb3ZpZGVyKVxyXG4gICAgICAgICAgcmV0dXJuIGluaXRpYWxpemVBcHBDaGVjayhhcHAsIHtcclxuICAgICAgICAgICAgcHJvdmlkZXIsXHJcbiAgICAgICAgICAgIGlzVG9rZW5BdXRvUmVmcmVzaEVuYWJsZWQ6IHRydWUsXHJcbiAgICAgICAgICB9KVxyXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSBjb25zb2xlLmVycm9yKGVycm9yLm1lc3NhZ2UpXHJcblxyXG4gICAgICAgIHJldHVyblxyXG4gICAgICB9XHJcbiAgICB9KSxcclxuICAgIHByb3ZpZGVTdG9yYWdlKChpbmplY3RvcjogSW5qZWN0b3IpID0+IGdldFN0b3JhZ2UoaW5qZWN0b3IuZ2V0KEZpcmViYXNlQXBwKSkpLFxyXG4gICAgQW5ndWxhckVsYXN0aWNTZWFjaE1vZHVsZSxcclxuICAgIEFuZ3VsYXJWZXJ0ZXhTZWFjaE1vZHVsZSxcclxuICAgIEFuZ3VsYXJGaXJlYmFzZUF1dGhNb2R1bGUsXHJcbiAgICBBbmd1bGFyRmlyZXN0b3JlTW9kdWxlLFxyXG4gICAgQW5ndWxhckhhc3VyYUdyYXBoUUxNb2R1bGUsXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIEF1dGhTZXJ2aWNlLFxyXG4gICAgQ2FydFNlcnZpY2UsXHJcbiAgICBDYXRhbG9nU2VydmljZSxcclxuICAgIENhdGVnb3J5U2VydmljZSxcclxuICAgIENoZWNrb3V0U2VydmljZSxcclxuICAgIENoZWNrb3V0U3Vic2NyaXB0aW9uU2VydmljZSxcclxuICAgIENvdXBvblNlcnZpY2UsXHJcbiAgICBIb21lU2hvcFNlcnZpY2UsXHJcbiAgICBPcmRlclNlcnZpY2UsXHJcbiAgICBXaXNobGlzdFNlcnZpY2UsXHJcbiAgICBDb25maWd1cmF0aW9uRmFjYWRlLFxyXG4gICAgQ2FydFNlcnZpY2VzRmFjYWRlLFxyXG4gICAgQ2hlY2tvdXRSZXBvc2l0b3JpZXNGYWNhZGUsXHJcbiAgICBDaGVja291dERlcGVuZGVuY2llc0ZhY2FkZSxcclxuICAgIENhdGVnb3J5UmVwb3NpdG9yeUZhY2FkZSxcclxuICAgIFByb2R1Y3RDYXRhbG9nRmFjYWRlLFxyXG4gICAgQ2F0YWxvZ1NlcnZpY2VGYWNhZGUsXHJcbiAgICBDYXRlZ29yeVNlcnZpY2VGYWNhZGUsXHJcbiAgICBDYXRhbG9nU3RyYXRlZ2llc0ZhY2FkZSxcclxuICAgIENhdGFsb2dPcGVyYXRpb25zRmFjYWRlLFxyXG4gICAgUHJvZHVjdE1hbmFnZW1lbnRGYWNhZGUsXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdQcm9kdWN0U2VydmljZXNGYWNhZGUnLFxyXG4gICAgICB1c2VGYWN0b3J5OiAocHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uUmVwb3NpdG9yeTogYW55LCBjYXRlZ29yeVJlcG9zaXRvcnk6IGFueSwgcHJvZHVjdFNlYXJjaDogYW55KSA9PiAoe1xyXG4gICAgICAgIHByb2R1Y3RTdG9ja05vdGlmaWNhdGlvblJlcG9zaXRvcnksXHJcbiAgICAgICAgY2F0ZWdvcnlSZXBvc2l0b3J5LFxyXG4gICAgICAgIHByb2R1Y3RTZWFyY2gsXHJcbiAgICAgIH0pLFxyXG4gICAgICBkZXBzOiBbJ1Byb2R1Y3RTdG9ja05vdGlmaWNhdGlvblJlcG9zaXRvcnknLCAnQ2F0ZWdvcnlSZXBvc2l0b3J5JywgJ1Byb2R1Y3RTZWFyY2gnXSxcclxuICAgIH0sXHJcbiAgICBDYXRhbG9nRmlsdGVySGVscGVyLFxyXG4gICAgQ2F0YWxvZ1NvcnRIZWxwZXIsXHJcbiAgICBQcm9kdWN0RmllbGRzSGVscGVyLFxyXG4gICAgQnJhbmRNYW5hZ2VySGVscGVyLFxyXG4gICAgQ2F0YWxvZ1JlcG9zaXRvcnlTZXJ2aWNlLFxyXG4gICAgQ2F0YWxvZ0hlbHBlcnNTZXJ2aWNlLFxyXG4gICAgQ2F0ZWdvcnlTZWFyY2hTdHJhdGVneSxcclxuICAgIFRlcm1TZWFyY2hTdHJhdGVneSxcclxuICAgIFByb2ZpbGVTZWFyY2hTdHJhdGVneSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogQ2F0YWxvZ1NlYXJjaENvbnRleHQsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChcclxuICAgICAgICBjYXRlZ29yeVN0cmF0ZWd5OiBDYXRlZ29yeVNlYXJjaFN0cmF0ZWd5LFxyXG4gICAgICAgIHRlcm1TdHJhdGVneTogVGVybVNlYXJjaFN0cmF0ZWd5LFxyXG4gICAgICAgIHByb2ZpbGVTdHJhdGVneTogUHJvZmlsZVNlYXJjaFN0cmF0ZWd5LFxyXG4gICAgICApID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IENhdGFsb2dTZWFyY2hDb250ZXh0KGNhdGVnb3J5U3RyYXRlZ3ksIHRlcm1TdHJhdGVneSwgcHJvZmlsZVN0cmF0ZWd5KVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbQ2F0ZWdvcnlTZWFyY2hTdHJhdGVneSwgVGVybVNlYXJjaFN0cmF0ZWd5LCBQcm9maWxlU2VhcmNoU3RyYXRlZ3ldLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogVXBkYXRlVXNlckltYWdlLFxyXG4gICAgICB1c2VGYWN0b3J5OiAodXNlclJlcG9zaXRvcnk6IFVzZXJSZXBvc2l0b3J5LCBmaWxlVXBsb2FkZXI6IEZpbGVVcGxvYWRlclNlcnZpY2UpID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFVwZGF0ZVVzZXJJbWFnZSh1c2VyUmVwb3NpdG9yeSwgZmlsZVVwbG9hZGVyKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ1VzZXJSZXBvc2l0b3J5JywgJ0ZpbGVVcGxvYWRlclNlcnZpY2UnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdGaWxlVXBsb2FkZXJTZXJ2aWNlJyxcclxuICAgICAgdXNlRmFjdG9yeTogKHN0b3JhZ2U6IFN0b3JhZ2UsIGJhc2VVcmw6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgRmlyZWJhc2VGaWxlVXBsb2FkZXJTZXJ2aWNlKHN0b3JhZ2UsIGJhc2VVcmwpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFtTdG9yYWdlLCBTVE9SQUdFX0JBU0VfVVJMXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdQcm9kdWN0U2VhcmNoJyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IFByb2R1Y3RzVmVydGV4U2VhcmNoLFxyXG4gICAgfSxcclxuICAgIENvdXBvblJlcG9zaXRvcmllc0ZhY2FkZSxcclxuICAgIEhvbWVTaG9wUmVwb3NpdG9yaWVzRmFjYWRlLFxyXG4gICAgT3JkZXJQcm9kdWN0UmV2aWV3U2VydmljZSxcclxuICAgIE9yZGVyUmVjdXJyZW5jZVNlcnZpY2VcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5ndWxhckNvbm5lY3RNb2R1bGUge1xyXG4gIHN0YXRpYyBpbml0aWFsaXplQXBwKFxyXG4gICAgZGVmYXVsdFNob3A6IFNob3BzLFxyXG4gICAgb3B0aW9uczoge1xyXG4gICAgICBmaXJlYmFzZT86IEZpcmViYXNlT3B0aW9uc1xyXG4gICAgICBlbGFzdGljU2VhcmNoPzogQXhpb3NFbGFzdGljU2VhcmNoQ29uZmlnXHJcbiAgICAgIHZlcnRleENvbmZpZz86IFZlcnRleFNlYXJjaENvbmZpZ1xyXG4gICAgICBoYXN1cmE6IEhhc3VyYUdyYXBoUUxPcHRpb25zXHJcbiAgICAgIGJhY2tlbmRVcmw6IHN0cmluZ1xyXG4gICAgICBvbGRDYXRlZ29yeVN0cnVjdHVyZT86IGJvb2xlYW5cclxuICAgICAgc3RvcmFnZUJhc2VVcmw/OiBzdHJpbmdcclxuICAgICAgcGVyc2lzdGVuY2VQcm92aWRlcj86IFR5cGU8RGF0YVBlcnNpc3RlbmNlPlxyXG4gICAgICBhcHBDaGVja1Byb3ZpZGVyPzogQXBwQ2hlY2tPcHRpb25zWydwcm92aWRlciddXHJcbiAgICB9LFxyXG4gICAgbmFtZU9yQ29uZmlnPzogc3RyaW5nIHwgRmlyZWJhc2VBcHBDb25maWcsXHJcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBbmd1bGFyQ29ubmVjdE1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IEFuZ3VsYXJDb25uZWN0TW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICAuLi50aGlzLmJ1aWxkQ29yZVByb3ZpZGVycyhuYW1lT3JDb25maWcsIG9wdGlvbnMpLFxyXG4gICAgICAgIC4uLnRoaXMuYnVpbGRDb25kaXRpb25hbFByb3ZpZGVycyhkZWZhdWx0U2hvcCwgb3B0aW9ucyksXHJcbiAgICAgIF0sXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBidWlsZENvcmVQcm92aWRlcnMoXHJcbiAgICBuYW1lT3JDb25maWc6IHN0cmluZyB8IEZpcmViYXNlQXBwQ29uZmlnLFxyXG4gICAgb3B0aW9uczoge1xyXG4gICAgICBhcHBDaGVja1Byb3ZpZGVyPzogQXBwQ2hlY2tPcHRpb25zWydwcm92aWRlciddXHJcbiAgICAgIG9sZENhdGVnb3J5U3RydWN0dXJlPzogYm9vbGVhblxyXG4gICAgICBwZXJzaXN0ZW5jZVByb3ZpZGVyPzogVHlwZTxEYXRhUGVyc2lzdGVuY2U+XHJcbiAgICB9LFxyXG4gICkge1xyXG4gICAgcmV0dXJuIFtcclxuICAgICAgeyBwcm92aWRlOiBGSVJFQkFTRV9BUFBfTkFNRSwgdXNlVmFsdWU6IG5hbWVPckNvbmZpZyB9LFxyXG4gICAgICB7IHByb3ZpZGU6IEFQUF9DSEVDS19QUk9WSURFUiwgdXNlVmFsdWU6IG9wdGlvbnMuYXBwQ2hlY2tQcm92aWRlciB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcHJvdmlkZTogQ0FURUdPUllfU1RSVUNUVVJFLFxyXG4gICAgICAgIHVzZUNsYXNzOiB0aGlzLnNlbGVjdENhdGVnb3J5U3RydWN0dXJlQWRhcHRlcihvcHRpb25zLm9sZENhdGVnb3J5U3RydWN0dXJlKSxcclxuICAgICAgfSxcclxuICAgICAgeyBwcm92aWRlOiBQRVJTSVNURU5DRV9QUk9WSURFUiwgdXNlQ2xhc3M6IG9wdGlvbnM/LnBlcnNpc3RlbmNlUHJvdmlkZXIgfHwgQ29va2llRGF0YVBlcnNpc3RlbmNlIH0sXHJcbiAgICBdXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBidWlsZENvbmRpdGlvbmFsUHJvdmlkZXJzKFxyXG4gICAgZGVmYXVsdFNob3A6IFNob3BzLFxyXG4gICAgb3B0aW9uczoge1xyXG4gICAgICBmaXJlYmFzZT86IEZpcmViYXNlT3B0aW9uc1xyXG4gICAgICBlbGFzdGljU2VhcmNoPzogQXhpb3NFbGFzdGljU2VhcmNoQ29uZmlnXHJcbiAgICAgIHZlcnRleENvbmZpZz86IFZlcnRleFNlYXJjaENvbmZpZ1xyXG4gICAgICBoYXN1cmE6IEhhc3VyYUdyYXBoUUxPcHRpb25zXHJcbiAgICAgIGJhY2tlbmRVcmw6IHN0cmluZ1xyXG4gICAgICBzdG9yYWdlQmFzZVVybD86IHN0cmluZ1xyXG4gICAgfSxcclxuICApIHtcclxuICAgIHJldHVybiBbXHJcbiAgICAgIC4uLnRoaXMuY3JlYXRlUHJvdmlkZXJJZkV4aXN0cyhERUZBVUxUX1NIT1AsIGRlZmF1bHRTaG9wKSxcclxuICAgICAgLi4udGhpcy5jcmVhdGVQcm92aWRlcklmRXhpc3RzKEZJUkVCQVNFX09QVElPTlMsIG9wdGlvbnMuZmlyZWJhc2UpLFxyXG4gICAgICAuLi50aGlzLmNyZWF0ZVByb3ZpZGVySWZFeGlzdHMoRVNfQ09ORklHLCBvcHRpb25zLmVsYXN0aWNTZWFyY2gpLFxyXG4gICAgICAuLi50aGlzLmNyZWF0ZVByb3ZpZGVySWZFeGlzdHMoVkVSVEVYX0NPTkZJRywgb3B0aW9ucy52ZXJ0ZXhDb25maWcpLFxyXG4gICAgICAuLi50aGlzLmNyZWF0ZVByb3ZpZGVySWZFeGlzdHMoSEFTVVJBX09QVElPTlMsIG9wdGlvbnMuaGFzdXJhKSxcclxuICAgICAgLi4udGhpcy5jcmVhdGVQcm92aWRlcklmRXhpc3RzKEJBQ0tFTkRfVVJMLCBvcHRpb25zLmJhY2tlbmRVcmwpLFxyXG4gICAgICAuLi50aGlzLmNyZWF0ZVByb3ZpZGVySWZFeGlzdHMoU1RPUkFHRV9CQVNFX1VSTCwgb3B0aW9ucy5zdG9yYWdlQmFzZVVybCksXHJcbiAgICBdXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBzZWxlY3RDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIob2xkQ2F0ZWdvcnlTdHJ1Y3R1cmU/OiBib29sZWFuKSB7XHJcbiAgICByZXR1cm4gaXNOaWwob2xkQ2F0ZWdvcnlTdHJ1Y3R1cmUpIHx8IG9sZENhdGVnb3J5U3RydWN0dXJlXHJcbiAgICAgID8gT2xkQ2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyXHJcbiAgICAgIDogTmV3Q2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVQcm92aWRlcklmRXhpc3RzKHRva2VuOiBhbnksIHZhbHVlOiBhbnkpIHtcclxuICAgIHJldHVybiBpc05pbCh2YWx1ZSkgPyBbXSA6IFt7IHByb3ZpZGU6IHRva2VuLCB1c2VWYWx1ZTogdmFsdWUgfV1cclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,34 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1lbGFzdGljLXNlYXJjaC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL2FuZ3VsYXItZWxhc3RpYy1zZWFyY2gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQTRCLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRXpGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTs7QUFZcEQsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQWlDO1FBQ3BELE9BQU87WUFDTCxRQUFRLEVBQUUseUJBQXlCO1lBQ25DLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7U0FDdkQsQ0FBQTtJQUNILENBQUM7O3NIQU5VLHlCQUF5Qjt1SEFBekIseUJBQXlCO3VIQUF6Qix5QkFBeUIsYUFUekI7UUFDVDtZQUNFLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLFVBQVUsRUFBRSxDQUFDLGFBQXVDLEVBQWlCLEVBQUUsQ0FDckUsSUFBSSxhQUFhLENBQUMsSUFBSSxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDcEQsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDO1NBQ2xCO0tBQ0Y7MkZBRVUseUJBQXlCO2tCQVZyQyxRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsVUFBVSxFQUFFLENBQUMsYUFBdUMsRUFBaUIsRUFBRSxDQUNyRSxJQUFJLGFBQWEsQ0FBQyxJQUFJLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQzs0QkFDcEQsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDO3lCQUNsQjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQXhpb3NBZGFwdGVyLCBBeGlvc0VsYXN0aWNTZWFyY2hDb25maWcsIFByb2R1Y3RzSW5kZXggfSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcclxuXHJcbmltcG9ydCB7IEVTX0NPTkZJRyB9IGZyb20gJy4vY29uc3RzL2VzLWNvbmZpZy5jb25zdCdcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFByb2R1Y3RzSW5kZXgsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChjb25maWd1cmF0aW9uOiBBeGlvc0VsYXN0aWNTZWFyY2hDb25maWcpOiBQcm9kdWN0c0luZGV4ID0+XHJcbiAgICAgICAgbmV3IFByb2R1Y3RzSW5kZXgobmV3IEF4aW9zQWRhcHRlcihjb25maWd1cmF0aW9uKSksXHJcbiAgICAgIGRlcHM6IFtFU19DT05GSUddLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5ndWxhckVsYXN0aWNTZWFjaE1vZHVsZSB7XHJcbiAgc3RhdGljIGluaXRpYWxpemVBcHAob3B0aW9uczogQXhpb3NFbGFzdGljU2VhcmNoQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBbmd1bGFyRWxhc3RpY1NlYWNoTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogQW5ndWxhckVsYXN0aWNTZWFjaE1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBFU19DT05GSUcsIHVzZVZhbHVlOiBvcHRpb25zIH1dLFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=