@infrab4a/connect-angular 5.8.13 → 5.8.14

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