@infrab4a/connect-angular 5.8.3 → 5.8.4

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/eslint.config.js +18 -0
  2. package/index.ts +1 -0
  3. package/karma.conf.js +32 -0
  4. package/ng-package.json +8 -0
  5. package/package.json +4 -24
  6. package/project.json +37 -0
  7. package/src/angular-connect.module.ts +270 -0
  8. package/src/angular-elastic-search.module.ts +23 -0
  9. package/src/angular-firebase-auth.module.ts +101 -0
  10. package/src/angular-firestore.module.ts +407 -0
  11. package/src/angular-hasura-graphql.module.ts +268 -0
  12. package/src/angular-vertex-search.module.ts +23 -0
  13. package/src/consts/backend-url.const.ts +1 -0
  14. package/src/consts/category-structure.ts +1 -0
  15. package/src/consts/default-shop.const.ts +1 -0
  16. package/src/consts/es-config.const.ts +1 -0
  17. package/src/consts/firebase-const.ts +5 -0
  18. package/src/consts/hasura-options.const.ts +1 -0
  19. package/src/consts/index.ts +8 -0
  20. package/src/consts/persistence.const.ts +1 -0
  21. package/src/consts/storage-base-url.const.ts +1 -0
  22. package/src/consts/vertex-config.const.ts +1 -0
  23. package/src/helpers/index.ts +1 -0
  24. package/src/helpers/mobile-operation-system-checker.helper.ts +10 -0
  25. package/src/index.ts +6 -0
  26. package/src/interfaces/catalog-strategies.interface.ts +36 -0
  27. package/src/interfaces/category-facades.interface.ts +7 -0
  28. package/src/interfaces/index.ts +2 -0
  29. package/src/persistence/cookie-data-persistence.ts +21 -0
  30. package/src/persistence/data-persistence.ts +7 -0
  31. package/src/persistence/index.ts +2 -0
  32. package/src/services/auth.service.ts +39 -0
  33. package/src/services/cart/cart-services.facade.ts +14 -0
  34. package/src/services/cart/index.ts +1 -0
  35. package/src/services/cart.service.ts +124 -0
  36. package/src/services/catalog/adapters/category-structure.adapter.ts +5 -0
  37. package/src/services/catalog/adapters/index.ts +3 -0
  38. package/src/services/catalog/adapters/new-category-structure.adapter.ts +42 -0
  39. package/src/services/catalog/adapters/old-category-structure.adapter.ts +17 -0
  40. package/src/services/catalog/catalog.service.ts +153 -0
  41. package/src/services/catalog/category.service.ts +56 -0
  42. package/src/services/catalog/context/catalog-search.context.ts +59 -0
  43. package/src/services/catalog/enums/index.ts +1 -0
  44. package/src/services/catalog/enums/product-sorts.enum.ts +9 -0
  45. package/src/services/catalog/facades/catalog-service.facade.ts +32 -0
  46. package/src/services/catalog/facades/catalog-strategies.facade.ts +12 -0
  47. package/src/services/catalog/facades/category-repository.facade.ts +10 -0
  48. package/src/services/catalog/facades/category-service.facade.ts +25 -0
  49. package/{services/catalog/facades/index.d.ts → src/services/catalog/facades/index.ts} +5 -5
  50. package/src/services/catalog/facades/product-catalog.facade.ts +13 -0
  51. package/src/services/catalog/helpers/brand-manager.helper.ts +69 -0
  52. package/src/services/catalog/helpers/catalog-filter.helper.ts +50 -0
  53. package/src/services/catalog/helpers/catalog-sort.helper.ts +54 -0
  54. package/src/services/catalog/helpers/index.ts +4 -0
  55. package/src/services/catalog/helpers/product-fields.helper.ts +39 -0
  56. package/src/services/catalog/index.ts +7 -0
  57. package/src/services/catalog/models/category-with-tree.model.ts +7 -0
  58. package/src/services/catalog/models/index.ts +1 -0
  59. package/src/services/catalog/services/catalog-helpers.service.ts +35 -0
  60. package/src/services/catalog/services/catalog-operations.facade.ts +24 -0
  61. package/src/services/catalog/services/catalog-repository.service.ts +20 -0
  62. package/{services/catalog/services/index.d.ts → src/services/catalog/services/index.ts} +4 -4
  63. package/src/services/catalog/services/product-management.facade.ts +20 -0
  64. package/src/services/catalog/strategies/category-search.strategy.ts +168 -0
  65. package/src/services/catalog/strategies/index.ts +3 -0
  66. package/src/services/catalog/strategies/profile-search.strategy.ts +51 -0
  67. package/src/services/catalog/strategies/term-search.strategy.ts +163 -0
  68. package/src/services/catalog/strategies/types/strategy-params.type.ts +59 -0
  69. package/src/services/catalog/types/fetch-products-options.type.ts +10 -0
  70. package/src/services/catalog/types/fetch-products-params.type.ts +27 -0
  71. package/src/services/catalog/types/fetch-products-response.type.ts +11 -0
  72. package/src/services/catalog/types/index.ts +5 -0
  73. package/src/services/catalog/types/method-params.type.ts +21 -0
  74. package/src/services/catalog/types/product-sort.type.ts +3 -0
  75. package/src/services/catalog/wishlist.service.ts +364 -0
  76. package/src/services/checkout/checkout-dependencies.facade.ts +13 -0
  77. package/src/services/checkout/checkout-repositories.facade.ts +10 -0
  78. package/{services/checkout/index.d.ts → src/services/checkout/index.ts} +2 -2
  79. package/src/services/checkout-subscription.service.ts +76 -0
  80. package/src/services/checkout.service.ts +213 -0
  81. package/src/services/coupon/coupon-repositories.facade.ts +11 -0
  82. package/{services/coupon/index.d.ts → src/services/coupon/index.ts} +1 -1
  83. package/src/services/coupon/types/coupon-params.type.ts +15 -0
  84. package/src/services/coupon.service.ts +347 -0
  85. package/src/services/errors/group-invalid-coupon.error.ts +9 -0
  86. package/src/services/errors/index.ts +2 -0
  87. package/src/services/errors/invalid-coupon.error.ts +7 -0
  88. package/src/services/helpers/index.ts +1 -0
  89. package/src/services/helpers/util.helper.ts +17 -0
  90. package/src/services/home-shop/home-shop-repositories.facade.ts +11 -0
  91. package/{services/home-shop/index.d.ts → src/services/home-shop/index.ts} +1 -1
  92. package/src/services/home-shop.service.ts +210 -0
  93. package/src/services/index.ts +12 -0
  94. package/src/services/order-product-review.service.ts +135 -0
  95. package/src/services/order-recurrence.service.ts +115 -0
  96. package/src/services/order.service.ts +23 -0
  97. package/src/services/shared/configuration.facade.ts +21 -0
  98. package/src/services/shared/index.ts +1 -0
  99. package/src/services/types/index.ts +4 -0
  100. package/src/services/types/pending-product-review.type.ts +12 -0
  101. package/src/services/types/product-review-create.type.ts +15 -0
  102. package/src/services/types/required-checkout-data.type.ts +3 -0
  103. package/src/services/types/required-checkout-subscription-data.type.ts +3 -0
  104. package/src/types/firebase-app-config.type.ts +1 -0
  105. package/src/types/index.ts +1 -0
  106. package/tsconfig.json +17 -0
  107. package/tsconfig.lib.json +13 -0
  108. package/tsconfig.lib.prod.json +13 -0
  109. package/tsconfig.spec.json +17 -0
  110. package/angular-connect.module.d.ts +0 -36
  111. package/angular-elastic-search.module.d.ts +0 -9
  112. package/angular-firebase-auth.module.d.ts +0 -11
  113. package/angular-firestore.module.d.ts +0 -17
  114. package/angular-hasura-graphql.module.d.ts +0 -14
  115. package/angular-vertex-search.module.d.ts +0 -9
  116. package/consts/backend-url.const.d.ts +0 -1
  117. package/consts/category-structure.d.ts +0 -1
  118. package/consts/default-shop.const.d.ts +0 -1
  119. package/consts/es-config.const.d.ts +0 -1
  120. package/consts/firebase-const.d.ts +0 -4
  121. package/consts/hasura-options.const.d.ts +0 -1
  122. package/consts/index.d.ts +0 -8
  123. package/consts/persistence.const.d.ts +0 -1
  124. package/consts/storage-base-url.const.d.ts +0 -1
  125. package/consts/vertex-config.const.d.ts +0 -1
  126. package/esm2020/angular-connect.module.mjs +0 -293
  127. package/esm2020/angular-elastic-search.module.mjs +0 -34
  128. package/esm2020/angular-firebase-auth.module.mjs +0 -141
  129. package/esm2020/angular-firestore.module.mjs +0 -597
  130. package/esm2020/angular-hasura-graphql.module.mjs +0 -421
  131. package/esm2020/angular-vertex-search.module.mjs +0 -34
  132. package/esm2020/consts/backend-url.const.mjs +0 -2
  133. package/esm2020/consts/category-structure.mjs +0 -2
  134. package/esm2020/consts/default-shop.const.mjs +0 -2
  135. package/esm2020/consts/es-config.const.mjs +0 -2
  136. package/esm2020/consts/firebase-const.mjs +0 -5
  137. package/esm2020/consts/hasura-options.const.mjs +0 -2
  138. package/esm2020/consts/index.mjs +0 -9
  139. package/esm2020/consts/persistence.const.mjs +0 -2
  140. package/esm2020/consts/storage-base-url.const.mjs +0 -2
  141. package/esm2020/consts/vertex-config.const.mjs +0 -2
  142. package/esm2020/helpers/index.mjs +0 -2
  143. package/esm2020/helpers/mobile-operation-system-checker.helper.mjs +0 -7
  144. package/esm2020/index.mjs +0 -7
  145. package/esm2020/infrab4a-connect-angular.mjs +0 -5
  146. package/esm2020/interfaces/catalog-strategies.interface.mjs +0 -2
  147. package/esm2020/interfaces/category-facades.interface.mjs +0 -2
  148. package/esm2020/interfaces/index.mjs +0 -3
  149. package/esm2020/persistence/cookie-data-persistence.mjs +0 -22
  150. package/esm2020/persistence/data-persistence.mjs +0 -2
  151. package/esm2020/persistence/index.mjs +0 -3
  152. package/esm2020/services/auth.service.mjs +0 -37
  153. package/esm2020/services/cart/cart-services.facade.mjs +0 -21
  154. package/esm2020/services/cart/index.mjs +0 -2
  155. package/esm2020/services/cart.service.mjs +0 -73
  156. package/esm2020/services/catalog/adapters/category-structure.adapter.mjs +0 -2
  157. package/esm2020/services/catalog/adapters/index.mjs +0 -4
  158. package/esm2020/services/catalog/adapters/new-category-structure.adapter.mjs +0 -43
  159. package/esm2020/services/catalog/adapters/old-category-structure.adapter.mjs +0 -23
  160. package/esm2020/services/catalog/catalog.service.mjs +0 -111
  161. package/esm2020/services/catalog/category.service.mjs +0 -42
  162. package/esm2020/services/catalog/context/catalog-search.context.mjs +0 -40
  163. package/esm2020/services/catalog/enums/index.mjs +0 -2
  164. package/esm2020/services/catalog/enums/product-sorts.enum.mjs +0 -11
  165. package/esm2020/services/catalog/facades/catalog-service.facade.mjs +0 -32
  166. package/esm2020/services/catalog/facades/catalog-strategies.facade.mjs +0 -17
  167. package/esm2020/services/catalog/facades/category-repository.facade.mjs +0 -20
  168. package/esm2020/services/catalog/facades/category-service.facade.mjs +0 -30
  169. package/esm2020/services/catalog/facades/index.mjs +0 -6
  170. package/esm2020/services/catalog/facades/product-catalog.facade.mjs +0 -21
  171. package/esm2020/services/catalog/helpers/brand-manager.helper.mjs +0 -62
  172. package/esm2020/services/catalog/helpers/catalog-filter.helper.mjs +0 -44
  173. package/esm2020/services/catalog/helpers/catalog-sort.helper.mjs +0 -52
  174. package/esm2020/services/catalog/helpers/index.mjs +0 -5
  175. package/esm2020/services/catalog/helpers/product-fields.helper.mjs +0 -43
  176. package/esm2020/services/catalog/index.mjs +0 -8
  177. package/esm2020/services/catalog/models/category-with-tree.model.mjs +0 -10
  178. package/esm2020/services/catalog/models/index.mjs +0 -2
  179. package/esm2020/services/catalog/services/catalog-helpers.service.mjs +0 -33
  180. package/esm2020/services/catalog/services/catalog-operations.facade.mjs +0 -26
  181. package/esm2020/services/catalog/services/catalog-repository.service.mjs +0 -25
  182. package/esm2020/services/catalog/services/index.mjs +0 -5
  183. package/esm2020/services/catalog/services/product-management.facade.mjs +0 -25
  184. package/esm2020/services/catalog/strategies/category-search.strategy.mjs +0 -133
  185. package/esm2020/services/catalog/strategies/index.mjs +0 -4
  186. package/esm2020/services/catalog/strategies/profile-search.strategy.mjs +0 -42
  187. package/esm2020/services/catalog/strategies/term-search.strategy.mjs +0 -126
  188. package/esm2020/services/catalog/strategies/types/strategy-params.type.mjs +0 -2
  189. package/esm2020/services/catalog/types/fetch-products-options.type.mjs +0 -2
  190. package/esm2020/services/catalog/types/fetch-products-params.type.mjs +0 -2
  191. package/esm2020/services/catalog/types/fetch-products-response.type.mjs +0 -2
  192. package/esm2020/services/catalog/types/index.mjs +0 -6
  193. package/esm2020/services/catalog/types/method-params.type.mjs +0 -2
  194. package/esm2020/services/catalog/types/product-sort.type.mjs +0 -2
  195. package/esm2020/services/catalog/wishlist.service.mjs +0 -258
  196. package/esm2020/services/checkout/checkout-dependencies.facade.mjs +0 -20
  197. package/esm2020/services/checkout/checkout-repositories.facade.mjs +0 -20
  198. package/esm2020/services/checkout/index.mjs +0 -3
  199. package/esm2020/services/checkout-subscription.service.mjs +0 -55
  200. package/esm2020/services/checkout.service.mjs +0 -120
  201. package/esm2020/services/coupon/coupon-repositories.facade.mjs +0 -24
  202. package/esm2020/services/coupon/index.mjs +0 -2
  203. package/esm2020/services/coupon/types/coupon-params.type.mjs +0 -2
  204. package/esm2020/services/coupon.service.mjs +0 -248
  205. package/esm2020/services/helpers/index.mjs +0 -2
  206. package/esm2020/services/helpers/util.helper.mjs +0 -18
  207. package/esm2020/services/home-shop/home-shop-repositories.facade.mjs +0 -24
  208. package/esm2020/services/home-shop/index.mjs +0 -2
  209. package/esm2020/services/home-shop.service.mjs +0 -119
  210. package/esm2020/services/index.mjs +0 -12
  211. package/esm2020/services/order-product-review.service.mjs +0 -126
  212. package/esm2020/services/order-recurrence.service.mjs +0 -83
  213. package/esm2020/services/order.service.mjs +0 -30
  214. package/esm2020/services/shared/configuration.facade.mjs +0 -29
  215. package/esm2020/services/shared/index.mjs +0 -2
  216. package/esm2020/services/types/index.mjs +0 -5
  217. package/esm2020/services/types/pending-product-review.type.mjs +0 -2
  218. package/esm2020/services/types/product-review-create.type.mjs +0 -2
  219. package/esm2020/services/types/required-checkout-data.type.mjs +0 -2
  220. package/esm2020/services/types/required-checkout-subscription-data.type.mjs +0 -2
  221. package/esm2020/types/firebase-app-config.type.mjs +0 -2
  222. package/esm2020/types/index.mjs +0 -2
  223. package/fesm2015/infrab4a-connect-angular.mjs +0 -3746
  224. package/fesm2015/infrab4a-connect-angular.mjs.map +0 -1
  225. package/fesm2020/infrab4a-connect-angular.mjs +0 -3648
  226. package/fesm2020/infrab4a-connect-angular.mjs.map +0 -1
  227. package/helpers/index.d.ts +0 -1
  228. package/helpers/mobile-operation-system-checker.helper.d.ts +0 -3
  229. package/index.d.ts +0 -6
  230. package/interfaces/catalog-strategies.interface.d.ts +0 -31
  231. package/interfaces/category-facades.interface.d.ts +0 -6
  232. package/interfaces/index.d.ts +0 -2
  233. package/persistence/cookie-data-persistence.d.ts +0 -10
  234. package/persistence/data-persistence.d.ts +0 -6
  235. package/persistence/index.d.ts +0 -2
  236. package/services/auth.service.d.ts +0 -18
  237. package/services/cart/cart-services.facade.d.ts +0 -12
  238. package/services/cart/index.d.ts +0 -1
  239. package/services/cart.service.d.ts +0 -26
  240. package/services/catalog/adapters/category-structure.adapter.d.ts +0 -4
  241. package/services/catalog/adapters/index.d.ts +0 -3
  242. package/services/catalog/adapters/new-category-structure.adapter.d.ts +0 -12
  243. package/services/catalog/adapters/old-category-structure.adapter.d.ts +0 -10
  244. package/services/catalog/catalog.service.d.ts +0 -24
  245. package/services/catalog/category.service.d.ts +0 -23
  246. package/services/catalog/context/catalog-search.context.d.ts +0 -14
  247. package/services/catalog/enums/index.d.ts +0 -1
  248. package/services/catalog/enums/product-sorts.enum.d.ts +0 -9
  249. package/services/catalog/facades/catalog-service.facade.d.ts +0 -15
  250. package/services/catalog/facades/catalog-strategies.facade.d.ts +0 -10
  251. package/services/catalog/facades/category-repository.facade.d.ts +0 -9
  252. package/services/catalog/facades/category-service.facade.d.ts +0 -15
  253. package/services/catalog/facades/product-catalog.facade.d.ts +0 -10
  254. package/services/catalog/helpers/brand-manager.helper.d.ts +0 -14
  255. package/services/catalog/helpers/catalog-filter.helper.d.ts +0 -8
  256. package/services/catalog/helpers/catalog-sort.helper.d.ts +0 -7
  257. package/services/catalog/helpers/index.d.ts +0 -4
  258. package/services/catalog/helpers/product-fields.helper.d.ts +0 -7
  259. package/services/catalog/index.d.ts +0 -7
  260. package/services/catalog/models/category-with-tree.model.d.ts +0 -4
  261. package/services/catalog/models/index.d.ts +0 -1
  262. package/services/catalog/services/catalog-helpers.service.d.ts +0 -17
  263. package/services/catalog/services/catalog-operations.facade.d.ts +0 -13
  264. package/services/catalog/services/catalog-repository.service.d.ts +0 -12
  265. package/services/catalog/services/product-management.facade.d.ts +0 -12
  266. package/services/catalog/strategies/category-search.strategy.d.ts +0 -19
  267. package/services/catalog/strategies/index.d.ts +0 -3
  268. package/services/catalog/strategies/profile-search.strategy.d.ts +0 -14
  269. package/services/catalog/strategies/term-search.strategy.d.ts +0 -20
  270. package/services/catalog/strategies/types/strategy-params.type.d.ts +0 -59
  271. package/services/catalog/types/fetch-products-options.type.d.ts +0 -8
  272. package/services/catalog/types/fetch-products-params.type.d.ts +0 -25
  273. package/services/catalog/types/fetch-products-response.type.d.ts +0 -19
  274. package/services/catalog/types/index.d.ts +0 -5
  275. package/services/catalog/types/method-params.type.d.ts +0 -17
  276. package/services/catalog/types/product-sort.type.d.ts +0 -2
  277. package/services/catalog/wishlist.service.d.ts +0 -60
  278. package/services/checkout/checkout-dependencies.facade.d.ts +0 -10
  279. package/services/checkout/checkout-repositories.facade.d.ts +0 -9
  280. package/services/checkout-subscription.service.d.ts +0 -19
  281. package/services/checkout.service.d.ts +0 -31
  282. package/services/coupon/coupon-repositories.facade.d.ts +0 -10
  283. package/services/coupon/types/coupon-params.type.d.ts +0 -13
  284. package/services/coupon.service.d.ts +0 -36
  285. package/services/helpers/index.d.ts +0 -1
  286. package/services/helpers/util.helper.d.ts +0 -3
  287. package/services/home-shop/home-shop-repositories.facade.d.ts +0 -10
  288. package/services/home-shop.service.d.ts +0 -26
  289. package/services/index.d.ts +0 -11
  290. package/services/order-product-review.service.d.ts +0 -18
  291. package/services/order-recurrence.service.d.ts +0 -37
  292. package/services/order.service.d.ts +0 -13
  293. package/services/shared/configuration.facade.d.ts +0 -12
  294. package/services/shared/index.d.ts +0 -1
  295. package/services/types/index.d.ts +0 -4
  296. package/services/types/pending-product-review.type.d.ts +0 -12
  297. package/services/types/product-review-create.type.d.ts +0 -14
  298. package/services/types/required-checkout-data.type.d.ts +0 -2
  299. package/services/types/required-checkout-subscription-data.type.d.ts +0 -2
  300. package/types/firebase-app-config.type.d.ts +0 -1
  301. package/types/index.d.ts +0 -1
@@ -0,0 +1,407 @@
1
+ import { isPlatformBrowser, isPlatformServer } from '@angular/common'
2
+ import { Injector, ModuleWithProviders, NgModule, PLATFORM_ID } from '@angular/core'
3
+ import { FirebaseApp, FirebaseOptions } from '@angular/fire/app'
4
+ import { Firestore, initializeFirestore, memoryLocalCache, provideFirestore } from '@angular/fire/firestore'
5
+ import {
6
+ AxiosElasticSearchConfig,
7
+ BeautyProfileRepository,
8
+ BrandCategoryFirestoreRepository,
9
+ BrandCategoryRepository,
10
+ Buy2WinFirestoreRepository,
11
+ Buy2WinRepository,
12
+ CampaignDashboardFirestoreRepository,
13
+ CampaignDashboardRepository,
14
+ CampaignHashtagFirestoreRepository,
15
+ CampaignHashtagRepository,
16
+ CategoryFirestoreRepository,
17
+ CategoryRepository,
18
+ CheckoutFirestoreRepository,
19
+ CheckoutRepository,
20
+ CheckoutSubscriptionFirestoreRepository,
21
+ CheckoutSubscriptionRepository,
22
+ ConnectFirestoreService,
23
+ CouponFirestoreRepository,
24
+ CouponRepository,
25
+ EditionRepository,
26
+ FirestoreConstructorParams,
27
+ FirestoreIntertceptorRequestParams,
28
+ GroupFirestoreRepository,
29
+ GroupRepository,
30
+ HomeFirestoreRepository,
31
+ HomeRepository,
32
+ LeadFirestoreRepository,
33
+ LeadRepository,
34
+ LegacyOrderFirestoreRepository,
35
+ LegacyOrderRepository,
36
+ LogFirestoreRepository,
37
+ LogRepository,
38
+ OrderBlockedFirestoreRepository,
39
+ OrderBlockedRepository,
40
+ OrderFirestoreRepository,
41
+ OrderRepository,
42
+ PaymentFirestoreRepository,
43
+ PaymentRepository,
44
+ ProductFirestoreRepository,
45
+ ProductRepository,
46
+ ProductVariantFirestoreRepository,
47
+ SequenceFirestoreRepository,
48
+ ShopConfigsFirestoreRepository,
49
+ ShopConfigsRepository,
50
+ ShopMenuFirestoreRepository,
51
+ ShopMenuRepository,
52
+ ShoppingRecurrenceEditionFirestoreRepository,
53
+ ShoppingRecurrenceEditionRepository,
54
+ ShoppingRecurrenceFirestoreRepository,
55
+ ShoppingRecurrenceRepository,
56
+ ShopSettingsFirestoreRepository,
57
+ ShopSettingsRepository,
58
+ SubscriptionEditionFirestoreRepository,
59
+ SubscriptionFirestoreRepository,
60
+ SubscriptionMaterializationFirestoreRepository,
61
+ SubscriptionMaterializationRepository,
62
+ SubscriptionPaymentFirestoreRepository,
63
+ SubscriptionPaymentRepository,
64
+ SubscriptionPlanFirestoreRepository,
65
+ SubscriptionPlanRepository,
66
+ SubscriptionProductFirestoreRepository,
67
+ SubscriptionProductRepository,
68
+ SubscriptionRepository,
69
+ SubscriptionSummaryFirestoreRepository,
70
+ SubscriptionSummaryRepository,
71
+ UserAddressFirestoreRepository,
72
+ UserAddressRepository,
73
+ UserBeautyProfileFirestoreRepository,
74
+ UserFirestoreRepository,
75
+ UserPaymentMethodFirestoreRepository,
76
+ UserPaymentMethodRepository,
77
+ UserRepository,
78
+ VariantRepository,
79
+ } from '@infrab4a/connect'
80
+
81
+ import { AngularElasticSeachModule } from './angular-elastic-search.module'
82
+ import { ES_CONFIG, FIREBASE_APP_NAME, FIREBASE_OPTIONS } from './consts'
83
+ import { MobileOperationSystemCheckerHelper } from './helpers'
84
+ import { FirebaseAppConfig } from './types'
85
+
86
+ export type FirestoreOptions = Pick<FirestoreConstructorParams<any>, 'firestore' | 'interceptors'>
87
+
88
+ @NgModule({
89
+ imports: [
90
+ AngularElasticSeachModule,
91
+ provideFirestore((injector: Injector) => {
92
+ const platformId = injector.get(PLATFORM_ID)
93
+
94
+ if (isPlatformServer(platformId) || !MobileOperationSystemCheckerHelper.isAppleDevice())
95
+ return initializeFirestore(injector.get(FirebaseApp), {
96
+ ignoreUndefinedProperties: true,
97
+ })
98
+
99
+ const firestore = initializeFirestore(injector.get(FirebaseApp), {
100
+ experimentalForceLongPolling: true,
101
+ ignoreUndefinedProperties: true,
102
+ localCache: memoryLocalCache(),
103
+ })
104
+
105
+ return firestore
106
+ }),
107
+ ],
108
+ providers: [
109
+ {
110
+ provide: 'FirestoreOptions',
111
+ useFactory: (firestore: Firestore, platformId: string): FirestoreOptions => ({
112
+ firestore: new ConnectFirestoreService(firestore),
113
+ interceptors: {
114
+ request: (request: FirestoreIntertceptorRequestParams<any> & { interval: ReturnType<typeof setTimeout> }) => {
115
+ if (isPlatformBrowser(platformId)) return request
116
+
117
+ const interval = setInterval(() => {}, 100)
118
+
119
+ request.interval = interval
120
+
121
+ return request
122
+ },
123
+ response: (
124
+ response: any,
125
+ request: FirestoreIntertceptorRequestParams<any> & { interval: ReturnType<typeof setTimeout> },
126
+ ) => {
127
+ if (isPlatformBrowser(platformId)) return response
128
+
129
+ clearInterval(request.interval)
130
+
131
+ return response
132
+ },
133
+ },
134
+ }),
135
+ deps: [Firestore, PLATFORM_ID],
136
+ },
137
+ {
138
+ provide: 'BeautyProfileRepository',
139
+ useFactory: (config: FirestoreOptions, userRepository: UserFirestoreRepository): BeautyProfileRepository => {
140
+ return new UserBeautyProfileFirestoreRepository(config, userRepository)
141
+ },
142
+ deps: ['FirestoreOptions', 'UserRepository'],
143
+ },
144
+ {
145
+ provide: 'Buy2WinRepository',
146
+ useFactory: (options: FirestoreOptions): Buy2WinRepository => {
147
+ return new Buy2WinFirestoreRepository(options)
148
+ },
149
+ deps: ['FirestoreOptions'],
150
+ },
151
+ {
152
+ provide: CategoryFirestoreRepository,
153
+ useFactory: (options: FirestoreOptions): CategoryRepository => {
154
+ return new CategoryFirestoreRepository(options)
155
+ },
156
+ deps: ['FirestoreOptions'],
157
+ },
158
+ {
159
+ provide: 'CheckoutRepository',
160
+ useFactory: (options: FirestoreOptions): CheckoutRepository => {
161
+ return new CheckoutFirestoreRepository(options)
162
+ },
163
+ deps: ['FirestoreOptions'],
164
+ },
165
+ {
166
+ provide: 'CheckoutSubscriptionRepository',
167
+ useFactory: (options: FirestoreOptions): CheckoutSubscriptionRepository => {
168
+ return new CheckoutSubscriptionFirestoreRepository(options)
169
+ },
170
+ deps: ['FirestoreOptions'],
171
+ },
172
+ {
173
+ provide: 'CouponRepository',
174
+ useFactory: (options: FirestoreOptions): CouponRepository => {
175
+ return new CouponFirestoreRepository(options)
176
+ },
177
+ deps: ['FirestoreOptions'],
178
+ },
179
+ {
180
+ provide: 'CampaignHashtagRepository',
181
+ useFactory: (options: FirestoreOptions): CampaignHashtagRepository => {
182
+ return new CampaignHashtagFirestoreRepository(options)
183
+ },
184
+ deps: ['FirestoreOptions'],
185
+ },
186
+ {
187
+ provide: 'CampaignDashboardRepository',
188
+ useFactory: (options: FirestoreOptions): CampaignDashboardRepository => {
189
+ return new CampaignDashboardFirestoreRepository(options)
190
+ },
191
+ deps: ['FirestoreOptions'],
192
+ },
193
+ {
194
+ provide: 'EditionRepository',
195
+ useFactory: (
196
+ options: FirestoreOptions,
197
+ subscriptionRepository: SubscriptionFirestoreRepository,
198
+ ): EditionRepository => {
199
+ return new SubscriptionEditionFirestoreRepository(options, subscriptionRepository)
200
+ },
201
+ deps: ['FirestoreOptions', 'SubscriptionRepository'],
202
+ },
203
+ {
204
+ provide: 'GroupRepository',
205
+ useFactory: (options: FirestoreOptions): GroupRepository => {
206
+ return new GroupFirestoreRepository(options)
207
+ },
208
+ deps: ['FirestoreOptions'],
209
+ },
210
+ {
211
+ provide: 'HomeRepository',
212
+ useFactory: (options: FirestoreOptions): HomeRepository => {
213
+ return new HomeFirestoreRepository(options)
214
+ },
215
+ deps: ['FirestoreOptions'],
216
+ },
217
+ {
218
+ provide: 'LeadRepository',
219
+ useFactory: (options: FirestoreOptions): LeadRepository => {
220
+ return new LeadFirestoreRepository(options)
221
+ },
222
+ deps: ['FirestoreOptions'],
223
+ },
224
+ {
225
+ provide: 'LegacyOrderRepository',
226
+ useFactory: (options: FirestoreOptions): LegacyOrderRepository => {
227
+ return new LegacyOrderFirestoreRepository(options)
228
+ },
229
+ deps: ['FirestoreOptions'],
230
+ },
231
+ {
232
+ provide: 'ShopMenuRepository',
233
+ useFactory: (options: FirestoreOptions): ShopMenuRepository => {
234
+ return new ShopMenuFirestoreRepository(options)
235
+ },
236
+ deps: ['FirestoreOptions'],
237
+ },
238
+ {
239
+ provide: 'OrderRepository',
240
+ useFactory: (options: FirestoreOptions): OrderRepository => {
241
+ return new OrderFirestoreRepository(options)
242
+ },
243
+ deps: ['FirestoreOptions'],
244
+ },
245
+ {
246
+ provide: 'PaymentRepository',
247
+ useFactory: (options: FirestoreOptions): PaymentRepository => {
248
+ return new PaymentFirestoreRepository(options)
249
+ },
250
+ deps: ['FirestoreOptions'],
251
+ },
252
+ {
253
+ provide: 'ShoppingRecurrenceRepository',
254
+ useFactory: (options: FirestoreOptions): ShoppingRecurrenceRepository => {
255
+ return new ShoppingRecurrenceFirestoreRepository(options)
256
+ },
257
+ deps: ['FirestoreOptions'],
258
+ },
259
+ {
260
+ provide: 'ShoppingRecurrenceEditionRepository',
261
+ useFactory: (options: FirestoreOptions): ShoppingRecurrenceEditionRepository => {
262
+ return new ShoppingRecurrenceEditionFirestoreRepository(options)
263
+ },
264
+ deps: ['FirestoreOptions'],
265
+ },
266
+ {
267
+ provide: ProductFirestoreRepository,
268
+ useFactory: (options: FirestoreOptions): ProductRepository => {
269
+ return new ProductFirestoreRepository(options)
270
+ },
271
+ deps: ['FirestoreOptions'],
272
+ },
273
+ {
274
+ provide: 'ShopSettingsRepository',
275
+ useFactory: (options: FirestoreOptions): ShopSettingsRepository => {
276
+ return new ShopSettingsFirestoreRepository(options)
277
+ },
278
+ deps: ['FirestoreOptions'],
279
+ },
280
+ {
281
+ provide: 'SubscriptionPaymentRepository',
282
+ useFactory: (
283
+ options: FirestoreOptions,
284
+ subscriptionRepository: SubscriptionFirestoreRepository,
285
+ ): SubscriptionPaymentRepository => {
286
+ return new SubscriptionPaymentFirestoreRepository(options, subscriptionRepository)
287
+ },
288
+ deps: ['FirestoreOptions', 'SubscriptionRepository'],
289
+ },
290
+ {
291
+ provide: 'SubscriptionPlanRepository',
292
+ useFactory: (options: FirestoreOptions): SubscriptionPlanRepository => {
293
+ return new SubscriptionPlanFirestoreRepository(options)
294
+ },
295
+ deps: ['FirestoreOptions'],
296
+ },
297
+ {
298
+ provide: 'SubscriptionProductRepository',
299
+ useFactory: (options: FirestoreOptions): SubscriptionProductRepository => {
300
+ return new SubscriptionProductFirestoreRepository(options)
301
+ },
302
+ deps: ['FirestoreOptions'],
303
+ },
304
+ {
305
+ provide: 'SubscriptionRepository',
306
+ useFactory: (options: FirestoreOptions): SubscriptionRepository => {
307
+ return new SubscriptionFirestoreRepository(options)
308
+ },
309
+ deps: ['FirestoreOptions'],
310
+ },
311
+ {
312
+ provide: 'UserRepository',
313
+ useFactory: (options: FirestoreOptions): UserRepository => {
314
+ return new UserFirestoreRepository(options)
315
+ },
316
+ deps: ['FirestoreOptions'],
317
+ },
318
+ {
319
+ provide: 'UserAddressRepository',
320
+ useFactory: (options: FirestoreOptions, userRepository: UserFirestoreRepository): UserAddressRepository => {
321
+ return new UserAddressFirestoreRepository(options, userRepository)
322
+ },
323
+ deps: ['FirestoreOptions', 'UserRepository'],
324
+ },
325
+ {
326
+ provide: 'UserPaymentMethodRepository',
327
+ useFactory: (options: FirestoreOptions, userRepository: UserFirestoreRepository): UserPaymentMethodRepository => {
328
+ return new UserPaymentMethodFirestoreRepository(options, userRepository)
329
+ },
330
+ deps: ['FirestoreOptions', 'UserRepository'],
331
+ },
332
+ {
333
+ provide: 'SubscriptionMaterializationRepository',
334
+ useFactory: (options: FirestoreOptions): SubscriptionMaterializationRepository => {
335
+ return new SubscriptionMaterializationFirestoreRepository(options)
336
+ },
337
+ deps: ['FirestoreOptions'],
338
+ },
339
+ {
340
+ provide: 'SubscriptionSummaryRepository',
341
+ useFactory: (options: FirestoreOptions): SubscriptionSummaryRepository => {
342
+ return new SubscriptionSummaryFirestoreRepository(options)
343
+ },
344
+ deps: ['FirestoreOptions'],
345
+ },
346
+ {
347
+ provide: ProductVariantFirestoreRepository,
348
+ useFactory: (options: FirestoreOptions, productRepository: ProductFirestoreRepository): VariantRepository => {
349
+ return new ProductVariantFirestoreRepository(options, productRepository)
350
+ },
351
+ deps: ['FirestoreOptions', ProductFirestoreRepository],
352
+ },
353
+ {
354
+ provide: 'OrderBlockedRepository',
355
+ useFactory: (options: FirestoreOptions): OrderBlockedRepository => {
356
+ return new OrderBlockedFirestoreRepository(options)
357
+ },
358
+ deps: ['FirestoreOptions'],
359
+ },
360
+ {
361
+ provide: 'LogRepository',
362
+ useFactory: (options: FirestoreOptions): LogRepository => {
363
+ return new LogFirestoreRepository(options)
364
+ },
365
+ deps: ['FirestoreOptions'],
366
+ },
367
+ {
368
+ provide: 'SequenceRepository',
369
+ useFactory: (options: FirestoreOptions): SequenceFirestoreRepository => {
370
+ return new SequenceFirestoreRepository(options)
371
+ },
372
+ deps: ['FirestoreOptions'],
373
+ },
374
+ {
375
+ provide: 'BrandCategoryRepository',
376
+ useFactory: (options: FirestoreOptions): BrandCategoryRepository => {
377
+ return new BrandCategoryFirestoreRepository(options)
378
+ },
379
+ deps: ['FirestoreOptions'],
380
+ },
381
+ {
382
+ provide: 'ShopConfigsRepository',
383
+ useFactory: (options: FirestoreOptions): ShopConfigsRepository => {
384
+ return new ShopConfigsFirestoreRepository(options)
385
+ },
386
+ deps: ['FirestoreOptions'],
387
+ },
388
+ ],
389
+ })
390
+ export class AngularFirestoreModule {
391
+ static initializeApp(
392
+ options: {
393
+ firebase: FirebaseOptions
394
+ elasticSearch: AxiosElasticSearchConfig
395
+ },
396
+ nameOrConfig?: string | FirebaseAppConfig,
397
+ ): ModuleWithProviders<AngularFirestoreModule> {
398
+ return {
399
+ ngModule: AngularFirestoreModule,
400
+ providers: [
401
+ { provide: FIREBASE_OPTIONS, useValue: options.firebase },
402
+ { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },
403
+ { provide: ES_CONFIG, useValue: options.elasticSearch },
404
+ ],
405
+ }
406
+ }
407
+ }
@@ -0,0 +1,268 @@
1
+ import { isPlatformBrowser } from '@angular/common'
2
+ import { ModuleWithProviders, NgModule, PLATFORM_ID } from '@angular/core'
3
+ import {
4
+ CacheConfig,
5
+ CategoryCollectionChildrenHasuraGraphQLRepository,
6
+ CategoryFilterHasuraGraphQLRepository,
7
+ CategoryFilterRepository,
8
+ CategoryHasuraGraphQLRepository,
9
+ CategoryProductHasuraGraphQLRepository,
10
+ CategoryRepository,
11
+ FilterHasuraGraphQLRepository,
12
+ FilterOptionHasuraGraphQLRepository,
13
+ FilterOptionRepository,
14
+ FilterRepository,
15
+ GraphQLParams,
16
+ HasuraConstructorParams,
17
+ HasuraGraphQLAuthOptions,
18
+ ProductCatalogHasuraGraphQLRepository,
19
+ ProductErrors,
20
+ ProductErrorsHasuraGraphQLRepository,
21
+ ProductErrorsRepository,
22
+ ProductGroupHasuraGraphQLRepository,
23
+ ProductHasuraGraphQLRepository,
24
+ ProductPriceLogHasuraGraphQLRepository,
25
+ ProductRepository,
26
+ ProductReviewHasuraGraphQLRepository,
27
+ ProductReviewRepository,
28
+ ProductStockEntryHasuraGraphQLRepository,
29
+ ProductStockEntryRepository,
30
+ ProductStockNotificationHasuraGraphQLRepository,
31
+ ProductStockNotificationRepository,
32
+ VariantHasuraGraphQLRepository,
33
+ VariantRepository,
34
+ WishlistHasuraGraphQLRepository,
35
+ } from '@infrab4a/connect'
36
+
37
+ import { HASURA_OPTIONS } from './consts'
38
+
39
+ export type HasuraGraphQLOptions = { endpoint: string; credentials?: HasuraGraphQLAuthOptions; cache?: CacheConfig }
40
+
41
+ @NgModule({
42
+ providers: [
43
+ {
44
+ provide: 'HasuraConfig',
45
+ useFactory: (options: HasuraGraphQLOptions, platformId: string) => ({
46
+ endpoint: options.endpoint,
47
+ authOptions: options.credentials,
48
+ cache: options.cache,
49
+ interceptors: {
50
+ request: (request: GraphQLParams<any> & { interval: ReturnType<typeof setTimeout> }) => {
51
+ if (isPlatformBrowser(platformId)) return request
52
+
53
+ const interval = setInterval(() => {}, 100)
54
+
55
+ request.interval = interval
56
+
57
+ return request
58
+ },
59
+ response: (response: any, request: GraphQLParams<any> & { interval: ReturnType<typeof setTimeout> }) => {
60
+ if (isPlatformBrowser(platformId)) return response
61
+
62
+ clearInterval(request.interval)
63
+
64
+ return response
65
+ },
66
+ },
67
+ }),
68
+ deps: [HASURA_OPTIONS, PLATFORM_ID],
69
+ },
70
+ {
71
+ provide: 'CategoryRepository',
72
+ useExisting: CategoryHasuraGraphQLRepository,
73
+ },
74
+ {
75
+ provide: CategoryHasuraGraphQLRepository,
76
+ useFactory: (
77
+ options: any,
78
+ productRepository: ProductHasuraGraphQLRepository,
79
+ categoryFilterRepository: CategoryFilterHasuraGraphQLRepository,
80
+ ): CategoryRepository => {
81
+ return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository)
82
+ },
83
+ deps: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
84
+ },
85
+ {
86
+ provide: 'ProductRepository',
87
+ useExisting: ProductHasuraGraphQLRepository,
88
+ },
89
+ {
90
+ provide: ProductHasuraGraphQLRepository,
91
+ useFactory: (hasuraConfig: any): ProductRepository => {
92
+ return new ProductHasuraGraphQLRepository(hasuraConfig)
93
+ },
94
+ deps: ['HasuraConfig'],
95
+ },
96
+ {
97
+ provide: 'ProductReviewRepository',
98
+ useExisting: ProductReviewHasuraGraphQLRepository,
99
+ },
100
+ {
101
+ provide: ProductReviewHasuraGraphQLRepository,
102
+ useFactory: (hasuraConfig: any): ProductReviewRepository => {
103
+ return new ProductReviewHasuraGraphQLRepository(hasuraConfig)
104
+ },
105
+ deps: ['HasuraConfig'],
106
+ },
107
+ {
108
+ provide: 'VariantRepository',
109
+ useExisting: VariantHasuraGraphQLRepository,
110
+ },
111
+ {
112
+ provide: VariantHasuraGraphQLRepository,
113
+ useFactory: (hasuraConfig: any): VariantRepository => {
114
+ return new VariantHasuraGraphQLRepository(hasuraConfig)
115
+ },
116
+ deps: ['HasuraConfig'],
117
+ },
118
+ {
119
+ provide: 'ProductStockNotificationRepository',
120
+ useExisting: ProductStockNotificationHasuraGraphQLRepository,
121
+ },
122
+ {
123
+ provide: ProductStockNotificationHasuraGraphQLRepository,
124
+ useFactory: (hasuraConfig: any): ProductStockNotificationRepository => {
125
+ return new ProductStockNotificationHasuraGraphQLRepository(hasuraConfig)
126
+ },
127
+ deps: ['HasuraConfig'],
128
+ },
129
+ {
130
+ provide: 'CategoryFilterRepository',
131
+ useExisting: CategoryFilterHasuraGraphQLRepository,
132
+ },
133
+ {
134
+ provide: CategoryFilterHasuraGraphQLRepository,
135
+ useFactory: (options: any): CategoryFilterRepository => {
136
+ return new CategoryFilterHasuraGraphQLRepository(options)
137
+ },
138
+ deps: ['HasuraConfig'],
139
+ },
140
+ {
141
+ provide: 'FilterOptionRepository',
142
+ useExisting: FilterOptionHasuraGraphQLRepository,
143
+ },
144
+ {
145
+ provide: FilterOptionHasuraGraphQLRepository,
146
+ useFactory: (options: any): FilterOptionRepository => {
147
+ return new FilterOptionHasuraGraphQLRepository(options)
148
+ },
149
+ deps: ['HasuraConfig'],
150
+ },
151
+ {
152
+ provide: 'FilterRepository',
153
+ useExisting: FilterHasuraGraphQLRepository,
154
+ },
155
+ {
156
+ provide: FilterHasuraGraphQLRepository,
157
+ useFactory: (
158
+ options: any,
159
+ filterOptionRepository: FilterOptionHasuraGraphQLRepository,
160
+ categoryFilterRepository: CategoryFilterHasuraGraphQLRepository,
161
+ ): FilterRepository => {
162
+ return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository)
163
+ },
164
+ deps: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],
165
+ },
166
+ {
167
+ provide: CategoryCollectionChildrenHasuraGraphQLRepository,
168
+ useFactory: (options: any): CategoryCollectionChildrenHasuraGraphQLRepository =>
169
+ new CategoryCollectionChildrenHasuraGraphQLRepository(options),
170
+ deps: ['HasuraConfig'],
171
+ },
172
+ {
173
+ provide: 'CategoryCollectionChildrenRepository',
174
+ useExisting: CategoryCollectionChildrenHasuraGraphQLRepository,
175
+ },
176
+ {
177
+ provide: CategoryProductHasuraGraphQLRepository,
178
+ useFactory: (options: any): CategoryProductHasuraGraphQLRepository => {
179
+ return new CategoryProductHasuraGraphQLRepository(options)
180
+ },
181
+ deps: ['HasuraConfig'],
182
+ },
183
+ {
184
+ provide: 'CategoryProductRepository',
185
+ useExisting: CategoryProductHasuraGraphQLRepository,
186
+ },
187
+ {
188
+ provide: WishlistHasuraGraphQLRepository,
189
+ useFactory: (
190
+ options: any,
191
+ categoryProductRepository: CategoryProductHasuraGraphQLRepository,
192
+ ): WishlistHasuraGraphQLRepository => {
193
+ return new WishlistHasuraGraphQLRepository(options, categoryProductRepository)
194
+ },
195
+ deps: ['HasuraConfig', CategoryProductHasuraGraphQLRepository],
196
+ },
197
+ {
198
+ provide: 'WishlistRepository',
199
+ useExisting: WishlistHasuraGraphQLRepository,
200
+ },
201
+ {
202
+ provide: ProductErrorsHasuraGraphQLRepository,
203
+ useFactory: (
204
+ options: HasuraConstructorParams<ProductErrors>,
205
+ productRepository: ProductHasuraGraphQLRepository,
206
+ ): ProductErrorsRepository => {
207
+ return new ProductErrorsHasuraGraphQLRepository(options, productRepository)
208
+ },
209
+ deps: ['HasuraConfig', ProductHasuraGraphQLRepository],
210
+ },
211
+ {
212
+ provide: 'ProductErrorsRepository',
213
+ useExisting: ProductErrorsHasuraGraphQLRepository,
214
+ },
215
+ {
216
+ provide: ProductCatalogHasuraGraphQLRepository,
217
+ useFactory: (options: any): ProductCatalogHasuraGraphQLRepository => {
218
+ return new ProductCatalogHasuraGraphQLRepository(options)
219
+ },
220
+ deps: ['HasuraConfig'],
221
+ },
222
+ {
223
+ provide: 'ProductCatalogRepository',
224
+ useExisting: ProductCatalogHasuraGraphQLRepository,
225
+ },
226
+ {
227
+ provide: ProductStockEntryHasuraGraphQLRepository,
228
+ useFactory: (options: any): ProductStockEntryRepository => {
229
+ return new ProductStockEntryHasuraGraphQLRepository(options)
230
+ },
231
+ deps: ['HasuraConfig'],
232
+ },
233
+ {
234
+ provide: 'ProductStockEntryRepository',
235
+ useExisting: ProductStockEntryHasuraGraphQLRepository,
236
+ },
237
+ {
238
+ provide: ProductGroupHasuraGraphQLRepository,
239
+ useFactory: (options: any): ProductGroupHasuraGraphQLRepository => {
240
+ return new ProductGroupHasuraGraphQLRepository(options)
241
+ },
242
+ deps: ['HasuraConfig'],
243
+ },
244
+ {
245
+ provide: 'ProductGroupRepository',
246
+ useExisting: ProductGroupHasuraGraphQLRepository,
247
+ },
248
+ {
249
+ provide: ProductPriceLogHasuraGraphQLRepository,
250
+ useFactory: (options: any): ProductPriceLogHasuraGraphQLRepository => {
251
+ return new ProductPriceLogHasuraGraphQLRepository(options)
252
+ },
253
+ deps: ['HasuraConfig'],
254
+ },
255
+ {
256
+ provide: 'ProductPriceLogRepository',
257
+ useExisting: ProductPriceLogHasuraGraphQLRepository,
258
+ },
259
+ ],
260
+ })
261
+ export class AngularHasuraGraphQLModule {
262
+ static initializeApp(options: HasuraGraphQLOptions): ModuleWithProviders<AngularHasuraGraphQLModule> {
263
+ return {
264
+ ngModule: AngularHasuraGraphQLModule,
265
+ providers: [{ provide: HASURA_OPTIONS, useValue: options }],
266
+ }
267
+ }
268
+ }
@@ -0,0 +1,23 @@
1
+ import { ModuleWithProviders, NgModule } from '@angular/core'
2
+ import { ProductsVertexSearch, VertexAxiosAdapter, VertexSearchConfig } from '@infrab4a/connect'
3
+
4
+ import { VERTEX_CONFIG } from './consts'
5
+
6
+ @NgModule({
7
+ providers: [
8
+ {
9
+ provide: ProductsVertexSearch,
10
+ useFactory: (configuration: VertexSearchConfig): ProductsVertexSearch =>
11
+ new ProductsVertexSearch(new VertexAxiosAdapter(configuration)),
12
+ deps: [VERTEX_CONFIG],
13
+ },
14
+ ],
15
+ })
16
+ export class AngularVertexSeachModule {
17
+ static initializeApp(options: VertexSearchConfig): ModuleWithProviders<AngularVertexSeachModule> {
18
+ return {
19
+ ngModule: AngularVertexSeachModule,
20
+ providers: [{ provide: VERTEX_CONFIG, useValue: options }],
21
+ }
22
+ }
23
+ }
@@ -0,0 +1 @@
1
+ export const BACKEND_URL = 'BACKEND_URL'
@@ -0,0 +1 @@
1
+ export const CATEGORY_STRUCTURE = 'CATEGORY_STRUCTURE'
@@ -0,0 +1 @@
1
+ export const DEFAULT_SHOP = 'DEFAULT_SHOP'