@infrab4a/connect-angular 6.0.0-alpha.1 → 6.0.0-beta.0

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 (128) hide show
  1. package/esm2022/angular-connect.module.mjs +291 -0
  2. package/esm2022/angular-elastic-search.module.mjs +34 -0
  3. package/esm2022/angular-firebase-auth.module.mjs +141 -0
  4. package/esm2022/angular-firestore.module.mjs +541 -0
  5. package/esm2022/angular-hasura-graphql.module.mjs +333 -0
  6. package/esm2022/angular-vertex-search.module.mjs +34 -0
  7. package/{esm2020 → esm2022}/consts/backend-url.const.mjs +1 -1
  8. package/{esm2020 → esm2022}/consts/category-structure.mjs +1 -1
  9. package/{esm2020 → esm2022}/consts/default-shop.const.mjs +1 -1
  10. package/{esm2020 → esm2022}/consts/es-config.const.mjs +1 -1
  11. package/{esm2020 → esm2022}/consts/firebase-const.mjs +1 -1
  12. package/{esm2020 → esm2022}/consts/hasura-options.const.mjs +1 -1
  13. package/{esm2020 → esm2022}/consts/index.mjs +1 -1
  14. package/{esm2020 → esm2022}/consts/persistence.const.mjs +1 -1
  15. package/{esm2020 → esm2022}/consts/storage-base-url.const.mjs +1 -1
  16. package/{esm2020 → esm2022}/consts/vertex-config.const.mjs +1 -1
  17. package/{esm2020 → esm2022}/helpers/index.mjs +1 -1
  18. package/{esm2020 → esm2022}/helpers/mobile-operation-system-checker.helper.mjs +1 -1
  19. package/{esm2020 → esm2022}/index.mjs +1 -1
  20. package/esm2022/interfaces/catalog-strategies.interface.mjs +2 -0
  21. package/{esm2020 → esm2022}/interfaces/category-facades.interface.mjs +1 -1
  22. package/{esm2020 → esm2022}/interfaces/index.mjs +1 -1
  23. package/{esm2020 → esm2022}/persistence/cookie-data-persistence.mjs +4 -4
  24. package/{esm2020 → esm2022}/persistence/data-persistence.mjs +1 -1
  25. package/{esm2020 → esm2022}/persistence/index.mjs +1 -1
  26. package/{esm2020 → esm2022}/services/auth.service.mjs +6 -6
  27. package/{esm2020 → esm2022}/services/cart/cart-services.facade.mjs +5 -5
  28. package/{esm2020 → esm2022}/services/cart/index.mjs +1 -1
  29. package/{esm2020 → esm2022}/services/cart.service.mjs +5 -5
  30. package/{esm2020 → esm2022}/services/catalog/adapters/category-structure.adapter.mjs +1 -1
  31. package/{esm2020 → esm2022}/services/catalog/adapters/index.mjs +1 -1
  32. package/{esm2020 → esm2022}/services/catalog/adapters/new-category-structure.adapter.mjs +6 -6
  33. package/{esm2020 → esm2022}/services/catalog/adapters/old-category-structure.adapter.mjs +6 -6
  34. package/{esm2020 → esm2022}/services/catalog/catalog.service.mjs +6 -6
  35. package/esm2022/services/catalog/category.service.mjs +39 -0
  36. package/{esm2020 → esm2022}/services/catalog/context/catalog-search.context.mjs +1 -1
  37. package/{esm2020 → esm2022}/services/catalog/enums/index.mjs +1 -1
  38. package/{esm2020 → esm2022}/services/catalog/enums/product-sorts.enum.mjs +1 -1
  39. package/{esm2020 → esm2022}/services/catalog/facades/catalog-service.facade.mjs +6 -6
  40. package/esm2022/services/catalog/facades/catalog-strategies.facade.mjs +17 -0
  41. package/{esm2020 → esm2022}/services/catalog/facades/category-repository.facade.mjs +6 -6
  42. package/{esm2020 → esm2022}/services/catalog/facades/category-service.facade.mjs +6 -6
  43. package/{esm2020 → esm2022}/services/catalog/facades/index.mjs +1 -1
  44. package/{esm2020 → esm2022}/services/catalog/facades/product-catalog.facade.mjs +6 -6
  45. package/{esm2020 → esm2022}/services/catalog/helpers/brand-manager.helper.mjs +5 -5
  46. package/{esm2020 → esm2022}/services/catalog/helpers/catalog-filter.helper.mjs +4 -4
  47. package/{esm2020 → esm2022}/services/catalog/helpers/catalog-sort.helper.mjs +4 -4
  48. package/{esm2020 → esm2022}/services/catalog/helpers/index.mjs +1 -1
  49. package/{esm2020 → esm2022}/services/catalog/helpers/product-fields.helper.mjs +4 -4
  50. package/{esm2020 → esm2022}/services/catalog/index.mjs +1 -1
  51. package/{esm2020 → esm2022}/services/catalog/models/category-with-tree.model.mjs +1 -1
  52. package/{esm2020 → esm2022}/services/catalog/models/index.mjs +1 -1
  53. package/esm2022/services/catalog/services/catalog-helpers.service.mjs +33 -0
  54. package/esm2022/services/catalog/services/catalog-operations.facade.mjs +26 -0
  55. package/{esm2020 → esm2022}/services/catalog/services/catalog-repository.service.mjs +6 -6
  56. package/{esm2020 → esm2022}/services/catalog/services/index.mjs +1 -1
  57. package/{esm2020 → esm2022}/services/catalog/services/product-management.facade.mjs +6 -6
  58. package/esm2022/services/catalog/strategies/category-search.strategy.mjs +133 -0
  59. package/{esm2020 → esm2022}/services/catalog/strategies/index.mjs +1 -1
  60. package/{esm2020 → esm2022}/services/catalog/strategies/profile-search.strategy.mjs +5 -5
  61. package/esm2022/services/catalog/strategies/term-search.strategy.mjs +123 -0
  62. package/esm2022/services/catalog/strategies/types/strategy-params.type.mjs +2 -0
  63. package/{esm2020 → esm2022}/services/catalog/types/fetch-products-options.type.mjs +1 -1
  64. package/esm2022/services/catalog/types/fetch-products-params.type.mjs +2 -0
  65. package/{esm2020 → esm2022}/services/catalog/types/fetch-products-response.type.mjs +1 -1
  66. package/{esm2020 → esm2022}/services/catalog/types/index.mjs +1 -1
  67. package/esm2022/services/catalog/types/method-params.type.mjs +2 -0
  68. package/{esm2020 → esm2022}/services/catalog/types/product-sort.type.mjs +1 -1
  69. package/esm2022/services/catalog/wishlist.service.mjs +254 -0
  70. package/{esm2020 → esm2022}/services/checkout/checkout-dependencies.facade.mjs +6 -6
  71. package/{esm2020 → esm2022}/services/checkout/checkout-repositories.facade.mjs +6 -6
  72. package/{esm2020 → esm2022}/services/checkout/index.mjs +1 -1
  73. package/{esm2020 → esm2022}/services/checkout-subscription.service.mjs +6 -6
  74. package/{esm2020 → esm2022}/services/checkout.service.mjs +5 -5
  75. package/{esm2020 → esm2022}/services/coupon/coupon-repositories.facade.mjs +6 -6
  76. package/{esm2020 → esm2022}/services/coupon/index.mjs +1 -1
  77. package/esm2022/services/coupon/types/coupon-params.type.mjs +2 -0
  78. package/{esm2020 → esm2022}/services/coupon.service.mjs +5 -5
  79. package/{esm2020 → esm2022}/services/helpers/index.mjs +1 -1
  80. package/{esm2020 → esm2022}/services/helpers/util.helper.mjs +1 -1
  81. package/{esm2020 → esm2022}/services/home-shop/home-shop-repositories.facade.mjs +6 -6
  82. package/{esm2020 → esm2022}/services/home-shop/index.mjs +1 -1
  83. package/{esm2020 → esm2022}/services/home-shop.service.mjs +5 -5
  84. package/{esm2020 → esm2022}/services/index.mjs +2 -1
  85. package/esm2022/services/order-product-review.service.mjs +81 -0
  86. package/{esm2020 → esm2022}/services/order.service.mjs +6 -6
  87. package/{esm2020 → esm2022}/services/shared/configuration.facade.mjs +6 -6
  88. package/{esm2020 → esm2022}/services/shared/index.mjs +1 -1
  89. package/esm2022/services/types/index.mjs +5 -0
  90. package/esm2022/services/types/pending-product-review.type.mjs +2 -0
  91. package/esm2022/services/types/product-review-create.type.mjs +2 -0
  92. package/{esm2020 → esm2022}/services/types/required-checkout-data.type.mjs +1 -1
  93. package/{esm2020 → esm2022}/services/types/required-checkout-subscription-data.type.mjs +1 -1
  94. package/{esm2020 → esm2022}/types/firebase-app-config.type.mjs +1 -1
  95. package/{esm2020 → esm2022}/types/index.mjs +1 -1
  96. package/{fesm2020 → fesm2022}/infrab4a-connect-angular.mjs +849 -774
  97. package/fesm2022/infrab4a-connect-angular.mjs.map +1 -0
  98. package/package.json +11 -17
  99. package/services/cart.service.d.ts +1 -1
  100. package/services/catalog/wishlist.service.d.ts +4 -3
  101. package/services/index.d.ts +1 -0
  102. package/services/order-product-review.service.d.ts +13 -0
  103. package/services/types/index.d.ts +2 -0
  104. package/services/types/pending-product-review.type.d.ts +10 -0
  105. package/services/types/product-review-create.type.d.ts +14 -0
  106. package/esm2020/angular-connect.module.mjs +0 -289
  107. package/esm2020/angular-elastic-search.module.mjs +0 -34
  108. package/esm2020/angular-firebase-auth.module.mjs +0 -141
  109. package/esm2020/angular-firestore.module.mjs +0 -541
  110. package/esm2020/angular-hasura-graphql.module.mjs +0 -333
  111. package/esm2020/angular-vertex-search.module.mjs +0 -34
  112. package/esm2020/interfaces/catalog-strategies.interface.mjs +0 -2
  113. package/esm2020/services/catalog/category.service.mjs +0 -39
  114. package/esm2020/services/catalog/facades/catalog-strategies.facade.mjs +0 -17
  115. package/esm2020/services/catalog/services/catalog-helpers.service.mjs +0 -33
  116. package/esm2020/services/catalog/services/catalog-operations.facade.mjs +0 -26
  117. package/esm2020/services/catalog/strategies/category-search.strategy.mjs +0 -133
  118. package/esm2020/services/catalog/strategies/term-search.strategy.mjs +0 -126
  119. package/esm2020/services/catalog/strategies/types/strategy-params.type.mjs +0 -2
  120. package/esm2020/services/catalog/types/fetch-products-params.type.mjs +0 -2
  121. package/esm2020/services/catalog/types/method-params.type.mjs +0 -2
  122. package/esm2020/services/catalog/wishlist.service.mjs +0 -255
  123. package/esm2020/services/coupon/types/coupon-params.type.mjs +0 -2
  124. package/esm2020/services/types/index.mjs +0 -3
  125. package/fesm2015/infrab4a-connect-angular.mjs +0 -3372
  126. package/fesm2015/infrab4a-connect-angular.mjs.map +0 -1
  127. package/fesm2020/infrab4a-connect-angular.mjs.map +0 -1
  128. /package/{esm2020 → esm2022}/infrab4a-connect-angular.mjs +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"infrab4a-connect-angular.mjs","sources":["../../../projects/connect-angular/src/consts/es-config.const.ts","../../../projects/connect-angular/src/angular-elastic-search.module.ts","../../../projects/connect-angular/src/consts/backend-url.const.ts","../../../projects/connect-angular/src/consts/category-structure.ts","../../../projects/connect-angular/src/consts/default-shop.const.ts","../../../projects/connect-angular/src/consts/firebase-const.ts","../../../projects/connect-angular/src/consts/hasura-options.const.ts","../../../projects/connect-angular/src/consts/persistence.const.ts","../../../projects/connect-angular/src/consts/vertex-config.const.ts","../../../projects/connect-angular/src/angular-firebase-auth.module.ts","../../../projects/connect-angular/src/helpers/mobile-operation-system-checker.helper.ts","../../../projects/connect-angular/src/angular-firestore.module.ts","../../../projects/connect-angular/src/angular-hasura-graphql.module.ts","../../../projects/connect-angular/src/angular-vertex-search.module.ts","../../../projects/connect-angular/src/consts/storage-base-url.const.ts","../../../projects/connect-angular/src/persistence/cookie-data-persistence.ts","../../../projects/connect-angular/src/services/auth.service.ts","../../../projects/connect-angular/src/services/checkout/checkout-repositories.facade.ts","../../../projects/connect-angular/src/services/checkout/checkout-dependencies.facade.ts","../../../projects/connect-angular/src/services/shared/configuration.facade.ts","../../../projects/connect-angular/src/services/checkout.service.ts","../../../projects/connect-angular/src/services/cart/cart-services.facade.ts","../../../projects/connect-angular/src/services/cart.service.ts","../../../projects/connect-angular/src/services/catalog/adapters/new-category-structure.adapter.ts","../../../projects/connect-angular/src/services/catalog/adapters/old-category-structure.adapter.ts","../../../projects/connect-angular/src/services/catalog/context/catalog-search.context.ts","../../../projects/connect-angular/src/services/catalog/strategies/category-search.strategy.ts","../../../projects/connect-angular/src/services/catalog/strategies/profile-search.strategy.ts","../../../projects/connect-angular/src/services/catalog/strategies/term-search.strategy.ts","../../../projects/connect-angular/src/services/catalog/facades/catalog-strategies.facade.ts","../../../projects/connect-angular/src/services/catalog/facades/catalog-service.facade.ts","../../../projects/connect-angular/src/services/catalog/facades/category-repository.facade.ts","../../../projects/connect-angular/src/services/catalog/category.service.ts","../../../projects/connect-angular/src/services/catalog/facades/product-catalog.facade.ts","../../../projects/connect-angular/src/services/catalog/facades/category-service.facade.ts","../../../projects/connect-angular/src/services/catalog/helpers/brand-manager.helper.ts","../../../projects/connect-angular/src/services/catalog/helpers/catalog-filter.helper.ts","../../../projects/connect-angular/src/services/catalog/helpers/catalog-sort.helper.ts","../../../projects/connect-angular/src/services/catalog/helpers/product-fields.helper.ts","../../../projects/connect-angular/src/services/catalog/services/catalog-operations.facade.ts","../../../projects/connect-angular/src/services/catalog/services/product-management.facade.ts","../../../projects/connect-angular/src/services/catalog/services/catalog-helpers.service.ts","../../../projects/connect-angular/src/services/catalog/services/catalog-repository.service.ts","../../../projects/connect-angular/src/services/catalog/catalog.service.ts","../../../projects/connect-angular/src/services/catalog/enums/product-sorts.enum.ts","../../../projects/connect-angular/src/services/catalog/models/category-with-tree.model.ts","../../../projects/connect-angular/src/services/catalog/wishlist.service.ts","../../../projects/connect-angular/src/services/coupon/coupon-repositories.facade.ts","../../../projects/connect-angular/src/services/coupon.service.ts","../../../projects/connect-angular/src/services/checkout-subscription.service.ts","../../../projects/connect-angular/src/services/helpers/util.helper.ts","../../../projects/connect-angular/src/services/home-shop/home-shop-repositories.facade.ts","../../../projects/connect-angular/src/services/home-shop.service.ts","../../../projects/connect-angular/src/services/order.service.ts","../../../projects/connect-angular/src/angular-connect.module.ts","../../../projects/connect-angular/src/infrab4a-connect-angular.ts"],"sourcesContent":["export const ES_CONFIG = 'ES_CONFIG'\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport { AxiosAdapter, AxiosElasticSearchConfig, ProductsIndex } from '@infrab4a/connect'\n\nimport { ES_CONFIG } from './consts/es-config.const'\n\n@NgModule({\n providers: [\n {\n provide: ProductsIndex,\n useFactory: (configuration: AxiosElasticSearchConfig): ProductsIndex =>\n new ProductsIndex(new AxiosAdapter(configuration)),\n deps: [ES_CONFIG],\n },\n ],\n})\nexport class AngularElasticSeachModule {\n static initializeApp(options: AxiosElasticSearchConfig): ModuleWithProviders<AngularElasticSeachModule> {\n return {\n ngModule: AngularElasticSeachModule,\n providers: [{ provide: ES_CONFIG, useValue: options }],\n }\n }\n}\n","export const BACKEND_URL = 'BACKEND_URL'\n","export const CATEGORY_STRUCTURE = 'CATEGORY_STRUCTURE'\n","export const DEFAULT_SHOP = 'DEFAULT_SHOP'\n","import { InjectionToken } from '@angular/core'\n\nexport const FIREBASE_APP_NAME = new InjectionToken('firebaseAppName')\nexport const FIREBASE_OPTIONS = new InjectionToken('firebaseOptions')\nexport const APP_CHECK_PROVIDER = new InjectionToken('appCheckProvider')\n","export const HASURA_OPTIONS = 'HASURA_OPTIONS'\n","export const PERSISTENCE_PROVIDER = 'PERSISTENCE_PROVIDER'\n","export const VERTEX_CONFIG = 'VERTEX_CONFIG'\n","import { Injector, ModuleWithProviders, NgModule } from '@angular/core'\nimport { FirebaseApp, FirebaseOptions } from '@angular/fire/app'\nimport {\n Auth,\n browserLocalPersistence,\n browserSessionPersistence,\n getAuth,\n indexedDBLocalPersistence,\n initializeAuth,\n provideAuth,\n} from '@angular/fire/auth'\nimport {\n Authentication,\n AuthenticationFirebaseAuthService,\n AuthenticationService,\n RecoveryPassword,\n Register,\n RegisterFirebaseAuthService,\n RegisterService,\n SignOut,\n UserRepository,\n} from '@infrab4a/connect'\n\nimport { FIREBASE_APP_NAME, FIREBASE_OPTIONS } from './consts'\nimport { FirebaseAppConfig } from './types'\n\n@NgModule({\n imports: [\n provideAuth((injector: Injector) => {\n const app = injector.get(FirebaseApp)\n\n try {\n return initializeAuth(app, {\n persistence: [indexedDBLocalPersistence, browserLocalPersistence, browserSessionPersistence],\n })\n } catch (error) {\n if (error instanceof Error) console.error('Error initializing auth', error.message)\n\n return getAuth(app)\n }\n }),\n ],\n providers: [\n {\n provide: 'Authentication',\n useFactory: (authenticationService: AuthenticationService, userRepository: UserRepository): Authentication => {\n return new Authentication(authenticationService, userRepository)\n },\n deps: ['AuthenticationService', 'UserRepository'],\n },\n {\n provide: 'AuthenticationService',\n useFactory: (angularFireAuth: Auth): AuthenticationService => {\n return new AuthenticationFirebaseAuthService(angularFireAuth)\n },\n deps: [Auth],\n },\n {\n provide: 'Register',\n useFactory: (registerService: RegisterService, userRepository: UserRepository): Register => {\n return new Register(registerService, userRepository)\n },\n deps: ['RegisterService', 'UserRepository'],\n },\n {\n provide: 'RegisterService',\n useFactory: (angularFireAuth: Auth): RegisterService => {\n return new RegisterFirebaseAuthService(angularFireAuth)\n },\n deps: [Auth],\n },\n {\n provide: 'SignOut',\n useFactory: (authenticationService: AuthenticationService): SignOut => {\n return new SignOut(authenticationService)\n },\n deps: ['AuthenticationService'],\n },\n {\n provide: 'RecoveryPassword',\n useFactory: (authenticationService: AuthenticationService): RecoveryPassword => {\n return new RecoveryPassword(authenticationService)\n },\n deps: ['AuthenticationService'],\n },\n ],\n})\nexport class AngularFirebaseAuthModule {\n static initializeApp(\n options: FirebaseOptions,\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFirebaseAuthModule> {\n return {\n ngModule: AngularFirebaseAuthModule,\n providers: [\n { provide: FIREBASE_OPTIONS, useValue: options },\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\n ],\n }\n }\n}\n","export class MobileOperationSystemCheckerHelper {\n static isAppleDevice() {\n return (\n ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(\n navigator?.platform,\n ) ||\n (navigator?.userAgent?.includes?.('Mac') && 'ontouchend' in (document || {}))\n )\n }\n}\n","import { isPlatformBrowser, isPlatformServer } from '@angular/common'\nimport { Injector, ModuleWithProviders, NgModule, PLATFORM_ID } from '@angular/core'\nimport { FirebaseApp, FirebaseOptions } from '@angular/fire/app'\nimport { Firestore, initializeFirestore, memoryLocalCache, provideFirestore } from '@angular/fire/firestore'\nimport {\n AxiosElasticSearchConfig,\n BeautyProfileRepository,\n Buy2WinFirestoreRepository,\n Buy2WinRepository,\n CampaignDashboardFirestoreRepository,\n CampaignDashboardRepository,\n CampaignHashtagFirestoreRepository,\n CampaignHashtagRepository,\n CategoryFirestoreRepository,\n CategoryRepository,\n CheckoutFirestoreRepository,\n CheckoutRepository,\n CheckoutSubscriptionFirestoreRepository,\n CheckoutSubscriptionRepository,\n ConnectFirestoreService,\n CouponFirestoreRepository,\n CouponRepository,\n EditionRepository,\n FirestoreConstructorParams,\n FirestoreIntertceptorRequestParams,\n GroupFirestoreRepository,\n GroupRepository,\n HomeFirestoreRepository,\n HomeRepository,\n LeadFirestoreRepository,\n LeadRepository,\n LegacyOrderFirestoreRepository,\n LegacyOrderRepository,\n LogFirestoreRepository,\n LogRepository,\n OrderBlockedFirestoreRepository,\n OrderBlockedRepository,\n OrderFirestoreRepository,\n OrderRepository,\n PaymentFirestoreRepository,\n PaymentRepository,\n ProductFirestoreRepository,\n ProductRepository,\n ProductVariantFirestoreRepository,\n SequenceFirestoreRepository,\n ShopMenuFirestoreRepository,\n ShopMenuRepository,\n ShopSettingsFirestoreRepository,\n ShopSettingsRepository,\n SubscriptionEditionFirestoreRepository,\n SubscriptionFirestoreRepository,\n SubscriptionMaterializationFirestoreRepository,\n SubscriptionMaterializationRepository,\n SubscriptionPaymentFirestoreRepository,\n SubscriptionPaymentRepository,\n SubscriptionPlanFirestoreRepository,\n SubscriptionPlanRepository,\n SubscriptionProductFirestoreRepository,\n SubscriptionProductRepository,\n SubscriptionRepository,\n SubscriptionSummaryFirestoreRepository,\n SubscriptionSummaryRepository,\n UserAddressFirestoreRepository,\n UserAddressRepository,\n UserBeautyProfileFirestoreRepository,\n UserFirestoreRepository,\n UserPaymentMethodFirestoreRepository,\n UserPaymentMethodRepository,\n UserRepository,\n VariantRepository,\n} from '@infrab4a/connect'\n\nimport { AngularElasticSeachModule } from './angular-elastic-search.module'\nimport { ES_CONFIG, FIREBASE_APP_NAME, FIREBASE_OPTIONS } from './consts'\nimport { MobileOperationSystemCheckerHelper } from './helpers'\nimport { FirebaseAppConfig } from './types'\n\nexport type FirestoreOptions = Pick<FirestoreConstructorParams<any>, 'firestore' | 'interceptors'>\n\n@NgModule({\n imports: [\n AngularElasticSeachModule,\n provideFirestore((injector: Injector) => {\n const platformId = injector.get(PLATFORM_ID)\n\n if (isPlatformServer(platformId) || !MobileOperationSystemCheckerHelper.isAppleDevice())\n return initializeFirestore(injector.get(FirebaseApp), {\n ignoreUndefinedProperties: true,\n })\n\n const firestore = initializeFirestore(injector.get(FirebaseApp), {\n experimentalForceLongPolling: true,\n ignoreUndefinedProperties: true,\n localCache: memoryLocalCache(),\n })\n\n return firestore\n }),\n ],\n providers: [\n {\n provide: 'FirestoreOptions',\n useFactory: (firestore: Firestore, platformId: string): FirestoreOptions => ({\n firestore: new ConnectFirestoreService(firestore),\n interceptors: {\n request: (request: FirestoreIntertceptorRequestParams<any> & { interval: ReturnType<typeof setTimeout> }) => {\n if (isPlatformBrowser(platformId)) return request\n\n const interval = setInterval(() => {}, 100)\n\n request.interval = interval\n\n return request\n },\n response: (\n response: any,\n request: FirestoreIntertceptorRequestParams<any> & { interval: ReturnType<typeof setTimeout> },\n ) => {\n if (isPlatformBrowser(platformId)) return response\n\n clearInterval(request.interval)\n\n return response\n },\n },\n }),\n deps: [Firestore, PLATFORM_ID],\n },\n {\n provide: 'BeautyProfileRepository',\n useFactory: (config: FirestoreOptions, userRepository: UserFirestoreRepository): BeautyProfileRepository => {\n return new UserBeautyProfileFirestoreRepository(config, userRepository)\n },\n deps: ['FirestoreOptions', 'UserRepository'],\n },\n {\n provide: 'Buy2WinRepository',\n useFactory: (options: FirestoreOptions): Buy2WinRepository => {\n return new Buy2WinFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: CategoryFirestoreRepository,\n useFactory: (options: FirestoreOptions): CategoryRepository => {\n return new CategoryFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CheckoutRepository',\n useFactory: (options: FirestoreOptions): CheckoutRepository => {\n return new CheckoutFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CheckoutSubscriptionRepository',\n useFactory: (options: FirestoreOptions): CheckoutSubscriptionRepository => {\n return new CheckoutSubscriptionFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CouponRepository',\n useFactory: (options: FirestoreOptions): CouponRepository => {\n return new CouponFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CampaignHashtagRepository',\n useFactory: (options: FirestoreOptions): CampaignHashtagRepository => {\n return new CampaignHashtagFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CampaignDashboardRepository',\n useFactory: (options: FirestoreOptions): CampaignDashboardRepository => {\n return new CampaignDashboardFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'EditionRepository',\n useFactory: (\n options: FirestoreOptions,\n subscriptionRepository: SubscriptionFirestoreRepository,\n ): EditionRepository => {\n return new SubscriptionEditionFirestoreRepository(options, subscriptionRepository)\n },\n deps: ['FirestoreOptions', 'SubscriptionRepository'],\n },\n {\n provide: 'GroupRepository',\n useFactory: (options: FirestoreOptions): GroupRepository => {\n return new GroupFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'HomeRepository',\n useFactory: (options: FirestoreOptions): HomeRepository => {\n return new HomeFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'LeadRepository',\n useFactory: (options: FirestoreOptions): LeadRepository => {\n return new LeadFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'LegacyOrderRepository',\n useFactory: (options: FirestoreOptions): LegacyOrderRepository => {\n return new LegacyOrderFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'ShopMenuRepository',\n useFactory: (options: FirestoreOptions): ShopMenuRepository => {\n return new ShopMenuFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'OrderRepository',\n useFactory: (options: FirestoreOptions): OrderRepository => {\n return new OrderFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'PaymentRepository',\n useFactory: (options: FirestoreOptions): PaymentRepository => {\n return new PaymentFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: ProductFirestoreRepository,\n useFactory: (options: FirestoreOptions): ProductRepository => {\n return new ProductFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'ShopSettingsRepository',\n useFactory: (options: FirestoreOptions): ShopSettingsRepository => {\n return new ShopSettingsFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SubscriptionPaymentRepository',\n useFactory: (\n options: FirestoreOptions,\n subscriptionRepository: SubscriptionFirestoreRepository,\n ): SubscriptionPaymentRepository => {\n return new SubscriptionPaymentFirestoreRepository(options, subscriptionRepository)\n },\n deps: ['FirestoreOptions', 'SubscriptionRepository'],\n },\n {\n provide: 'SubscriptionPlanRepository',\n useFactory: (options: FirestoreOptions): SubscriptionPlanRepository => {\n return new SubscriptionPlanFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SubscriptionProductRepository',\n useFactory: (options: FirestoreOptions): SubscriptionProductRepository => {\n return new SubscriptionProductFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SubscriptionRepository',\n useFactory: (options: FirestoreOptions): SubscriptionRepository => {\n return new SubscriptionFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'UserRepository',\n useFactory: (options: FirestoreOptions): UserRepository => {\n return new UserFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'UserAddressRepository',\n useFactory: (options: FirestoreOptions, userRepository: UserFirestoreRepository): UserAddressRepository => {\n return new UserAddressFirestoreRepository(options, userRepository)\n },\n deps: ['FirestoreOptions', 'UserRepository'],\n },\n {\n provide: 'UserPaymentMethodRepository',\n useFactory: (options: FirestoreOptions, userRepository: UserFirestoreRepository): UserPaymentMethodRepository => {\n return new UserPaymentMethodFirestoreRepository(options, userRepository)\n },\n deps: ['FirestoreOptions', 'UserRepository'],\n },\n {\n provide: 'SubscriptionMaterializationRepository',\n useFactory: (options: FirestoreOptions): SubscriptionMaterializationRepository => {\n return new SubscriptionMaterializationFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SubscriptionSummaryRepository',\n useFactory: (options: FirestoreOptions): SubscriptionSummaryRepository => {\n return new SubscriptionSummaryFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: ProductVariantFirestoreRepository,\n useFactory: (options: FirestoreOptions, productRepository: ProductFirestoreRepository): VariantRepository => {\n return new ProductVariantFirestoreRepository(options, productRepository)\n },\n deps: ['FirestoreOptions', ProductFirestoreRepository],\n },\n {\n provide: 'OrderBlockedRepository',\n useFactory: (options: FirestoreOptions): OrderBlockedRepository => {\n return new OrderBlockedFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'LogRepository',\n useFactory: (options: FirestoreOptions): LogRepository => {\n return new LogFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SequenceRepository',\n useFactory: (options: FirestoreOptions): SequenceFirestoreRepository => {\n return new SequenceFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n ],\n})\nexport class AngularFirestoreModule {\n static initializeApp(\n options: {\n firebase: FirebaseOptions\n elasticSearch: AxiosElasticSearchConfig\n },\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFirestoreModule> {\n return {\n ngModule: AngularFirestoreModule,\n providers: [\n { provide: FIREBASE_OPTIONS, useValue: options.firebase },\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\n { provide: ES_CONFIG, useValue: options.elasticSearch },\n ],\n }\n }\n}\n","import { isPlatformBrowser } from '@angular/common'\nimport { ModuleWithProviders, NgModule, PLATFORM_ID } from '@angular/core'\nimport {\n CacheConfig,\n CategoryCollectionChildrenHasuraGraphQLRepository,\n CategoryFilterHasuraGraphQLRepository,\n CategoryFilterRepository,\n CategoryHasuraGraphQLRepository,\n CategoryProductHasuraGraphQLRepository,\n CategoryRepository,\n FilterHasuraGraphQLRepository,\n FilterOptionHasuraGraphQLRepository,\n FilterOptionRepository,\n FilterRepository,\n GraphQLParams,\n HasuraConstructorParams,\n HasuraGraphQLAuthOptions,\n ProductErrors,\n ProductErrorsHasuraGraphQLRepository,\n ProductErrorsRepository,\n ProductHasuraGraphQLRepository,\n ProductRepository,\n ProductReviewHasuraGraphQLRepository,\n ProductReviewRepository,\n ProductStockNotificationHasuraGraphQLRepository,\n ProductStockNotificationRepository,\n VariantHasuraGraphQLRepository,\n VariantRepository,\n WishlistHasuraGraphQLRepository,\n} from '@infrab4a/connect'\n\nimport { HASURA_OPTIONS } from './consts'\n\nexport type HasuraGraphQLOptions = { endpoint: string; credentials?: HasuraGraphQLAuthOptions; cache?: CacheConfig }\n\n@NgModule({\n providers: [\n {\n provide: 'HasuraConfig',\n useFactory: (options: HasuraGraphQLOptions, platformId: string) => ({\n endpoint: options.endpoint,\n authOptions: options.credentials,\n cache: options.cache,\n interceptors: {\n request: (request: GraphQLParams<any> & { interval: ReturnType<typeof setTimeout> }) => {\n if (isPlatformBrowser(platformId)) return request\n\n const interval = setInterval(() => {}, 100)\n\n request.interval = interval\n\n return request\n },\n response: (response: any, request: GraphQLParams<any> & { interval: ReturnType<typeof setTimeout> }) => {\n if (isPlatformBrowser(platformId)) return response\n\n clearInterval(request.interval)\n\n return response\n },\n },\n }),\n deps: [HASURA_OPTIONS, PLATFORM_ID],\n },\n {\n provide: 'CategoryRepository',\n useExisting: CategoryHasuraGraphQLRepository,\n },\n {\n provide: CategoryHasuraGraphQLRepository,\n useFactory: (\n options: any,\n productRepository: ProductHasuraGraphQLRepository,\n categoryFilterRepository: CategoryFilterHasuraGraphQLRepository,\n ): CategoryRepository => {\n return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository)\n },\n deps: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],\n },\n {\n provide: 'ProductRepository',\n useExisting: ProductHasuraGraphQLRepository,\n },\n {\n provide: ProductHasuraGraphQLRepository,\n useFactory: (hasuraConfig: any): ProductRepository => {\n return new ProductHasuraGraphQLRepository(hasuraConfig)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'ProductReviewRepository',\n useExisting: ProductReviewHasuraGraphQLRepository,\n },\n {\n provide: ProductReviewHasuraGraphQLRepository,\n useFactory: (hasuraConfig: any): ProductReviewRepository => {\n return new ProductReviewHasuraGraphQLRepository(hasuraConfig)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'VariantRepository',\n useExisting: VariantHasuraGraphQLRepository,\n },\n {\n provide: VariantHasuraGraphQLRepository,\n useFactory: (hasuraConfig: any): VariantRepository => {\n return new VariantHasuraGraphQLRepository(hasuraConfig)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'ProductStockNotificationRepository',\n useExisting: ProductStockNotificationHasuraGraphQLRepository,\n },\n {\n provide: ProductStockNotificationHasuraGraphQLRepository,\n useFactory: (hasuraConfig: any): ProductStockNotificationRepository => {\n return new ProductStockNotificationHasuraGraphQLRepository(hasuraConfig)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'CategoryFilterRepository',\n useExisting: CategoryFilterHasuraGraphQLRepository,\n },\n {\n provide: CategoryFilterHasuraGraphQLRepository,\n useFactory: (options: any): CategoryFilterRepository => {\n return new CategoryFilterHasuraGraphQLRepository(options)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'FilterOptionRepository',\n useExisting: FilterOptionHasuraGraphQLRepository,\n },\n {\n provide: FilterOptionHasuraGraphQLRepository,\n useFactory: (options: any): FilterOptionRepository => {\n return new FilterOptionHasuraGraphQLRepository(options)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'FilterRepository',\n useExisting: FilterHasuraGraphQLRepository,\n },\n {\n provide: FilterHasuraGraphQLRepository,\n useFactory: (\n options: any,\n filterOptionRepository: FilterOptionHasuraGraphQLRepository,\n categoryFilterRepository: CategoryFilterHasuraGraphQLRepository,\n ): FilterRepository => {\n return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository)\n },\n deps: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],\n },\n {\n provide: CategoryCollectionChildrenHasuraGraphQLRepository,\n useFactory: (options: any): CategoryCollectionChildrenHasuraGraphQLRepository =>\n new CategoryCollectionChildrenHasuraGraphQLRepository(options),\n deps: ['HasuraConfig'],\n },\n {\n provide: 'CategoryCollectionChildrenRepository',\n useExisting: CategoryCollectionChildrenHasuraGraphQLRepository,\n },\n {\n provide: CategoryProductHasuraGraphQLRepository,\n useFactory: (options: any): CategoryProductHasuraGraphQLRepository => {\n return new CategoryProductHasuraGraphQLRepository(options)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'CategoryProductRepository',\n useExisting: CategoryProductHasuraGraphQLRepository,\n },\n {\n provide: WishlistHasuraGraphQLRepository,\n useFactory: (\n options: any,\n categoryProductRepository: CategoryProductHasuraGraphQLRepository,\n ): WishlistHasuraGraphQLRepository => {\n return new WishlistHasuraGraphQLRepository(options, categoryProductRepository)\n },\n deps: ['HasuraConfig', CategoryProductHasuraGraphQLRepository],\n },\n {\n provide: 'WishlistRepository',\n useExisting: WishlistHasuraGraphQLRepository,\n },\n {\n provide: ProductErrorsHasuraGraphQLRepository,\n useFactory: (\n options: HasuraConstructorParams<ProductErrors>,\n productRepository: ProductHasuraGraphQLRepository,\n ): ProductErrorsRepository => {\n return new ProductErrorsHasuraGraphQLRepository(options, productRepository)\n },\n deps: ['HasuraConfig', ProductHasuraGraphQLRepository],\n },\n {\n provide: 'ProductErrorsRepository',\n useExisting: ProductErrorsHasuraGraphQLRepository,\n },\n ],\n})\nexport class AngularHasuraGraphQLModule {\n static initializeApp(options: HasuraGraphQLOptions): ModuleWithProviders<AngularHasuraGraphQLModule> {\n return {\n ngModule: AngularHasuraGraphQLModule,\n providers: [{ provide: HASURA_OPTIONS, useValue: options }],\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport { ProductsVertexSearch, VertexAxiosAdapter, VertexSearchConfig } from '@infrab4a/connect'\n\nimport { VERTEX_CONFIG } from './consts'\n\n@NgModule({\n providers: [\n {\n provide: ProductsVertexSearch,\n useFactory: (configuration: VertexSearchConfig): ProductsVertexSearch =>\n new ProductsVertexSearch(new VertexAxiosAdapter(configuration)),\n deps: [VERTEX_CONFIG],\n },\n ],\n})\nexport class AngularVertexSeachModule {\n static initializeApp(options: VertexSearchConfig): ModuleWithProviders<AngularVertexSeachModule> {\n return {\n ngModule: AngularVertexSeachModule,\n providers: [{ provide: VERTEX_CONFIG, useValue: options }],\n }\n }\n}\n","export const STORAGE_BASE_URL = 'STORAGE_BASE_URL'\n","import { Injectable } from '@angular/core'\nimport cookie from 'js-cookie'\nimport { Observable, from, of } from 'rxjs'\nimport { map } from 'rxjs/operators'\n\nimport { DataPersistence } from './data-persistence'\n\n@Injectable()\nexport class CookieDataPersistence implements DataPersistence {\n get(key: string): Observable<string> {\n return of(cookie.get(key))\n }\n\n remove(key: string): Observable<void> {\n return of(cookie.remove(key))\n }\n\n set(key: string, value: string): Observable<void> {\n return from(cookie.set(key, value)).pipe(map(() => {}))\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Auth, User as FirebaseUser, authState, getIdToken } from '@angular/fire/auth'\nimport { User, UserRepository } from '@infrab4a/connect'\nimport { Observable, combineLatest, from, of } from 'rxjs'\nimport { catchError, map, mergeMap } from 'rxjs/operators'\n\n@Injectable()\nexport class AuthService {\n constructor(\n private readonly angularFireAuth: Auth,\n @Inject('UserRepository') private readonly userRepository: UserRepository,\n ) {}\n\n getAuthstate(): Observable<{ user: User; isAnonymous: boolean }> {\n const observables: [Observable<FirebaseUser>, Observable<User>] = [this.getFireUser(), this.getUser()]\n\n return combineLatest(observables).pipe(\n map(([fireUser, user]) => ({\n user,\n isAnonymous: fireUser?.isAnonymous,\n })),\n )\n }\n\n getUser(): Observable<User> {\n return this.getFireUser().pipe(\n map((user) => user?.uid),\n mergeMap((id) => (id ? from(this.userRepository.get({ id })).pipe(catchError(() => of(null))) : of(null))),\n )\n }\n\n getTokenId(): Observable<string> {\n return from(getIdToken(this.angularFireAuth.currentUser))\n }\n\n getFireUser(): Observable<FirebaseUser> {\n return authState(this.angularFireAuth).pipe(catchError(() => of(null)))\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { CheckoutRepository, UserRepository } from '@infrab4a/connect'\n\n@Injectable()\nexport class CheckoutRepositoriesFacade {\n constructor(\n @Inject('CheckoutRepository') public readonly checkoutRepository: CheckoutRepository,\n @Inject('UserRepository') public readonly userRepository: UserRepository,\n ) {}\n}\n","import { HttpClient } from '@angular/common/http'\nimport { Inject, Injectable } from '@angular/core'\n\nimport { PERSISTENCE_PROVIDER } from '../../consts'\nimport { DataPersistence } from '../../persistence'\n\n@Injectable()\nexport class CheckoutDependenciesFacade {\n constructor(\n @Inject(PERSISTENCE_PROVIDER) public readonly dataPersistence: DataPersistence,\n public readonly httpClient: HttpClient,\n ) {}\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { FirebaseOptions } from '@angular/fire/app'\nimport { Shops } from '@infrab4a/connect'\n\nimport { DEFAULT_SHOP, FIREBASE_OPTIONS } from '../../consts'\n\n@Injectable()\nexport class ConfigurationFacade {\n constructor(\n @Inject(DEFAULT_SHOP) public readonly defaultShop: Shops,\n @Inject(FIREBASE_OPTIONS) public readonly firebaseOptions: FirebaseOptions,\n ) {}\n\n getCheckoutUrl(): string {\n return `https://southamerica-east1-${this.firebaseOptions.projectId}.cloudfunctions.net`\n }\n\n getProjectId(): string {\n return this.firebaseOptions.projectId\n }\n}\n","import {\n Checkout,\n CheckoutPayloadRequest,\n CheckoutResponse,\n CheckoutStockValidation,\n CheckoutTypes,\n Coupon,\n isNil,\n NotFoundError,\n pick,\n ShippingMethodResponse,\n ShippingProductRequest,\n User,\n UserAddress,\n} from '@infrab4a/connect'\nimport { from, Observable, of, throwError } from 'rxjs'\nimport { concatMap, map } from 'rxjs/operators'\nimport { Injectable } from '@angular/core'\n\nimport { RequiredCheckoutData } from './types'\nimport { CheckoutDependenciesFacade, CheckoutRepositoriesFacade } from './checkout'\nimport { ConfigurationFacade } from './shared'\n\n@Injectable()\nexport class CheckoutService {\n private checkoutUrl: string = null\n\n constructor(\n private readonly repositoriesFacade: CheckoutRepositoriesFacade,\n private readonly dependenciesFacade: CheckoutDependenciesFacade,\n private readonly configurationFacade: ConfigurationFacade,\n ) {\n this.checkoutUrl = this.configurationFacade.getCheckoutUrl()\n }\n\n getCheckout(checkoutData?: RequiredCheckoutData): Observable<Checkout> {\n return this.dependenciesFacade.dataPersistence\n .get('checkoutId')\n .pipe(\n concatMap((id) =>\n !isNil(id) ? this.repositoriesFacade.checkoutRepository.get({ id }) : this.createCheckout(checkoutData),\n ),\n )\n }\n\n getUserByCheckout(checkoutId: string): Observable<User> {\n return from(this.repositoriesFacade.checkoutRepository.get({ id: checkoutId })).pipe(\n concatMap((checkout) =>\n checkout?.user?.id\n ? of(checkout.user)\n : from(this.repositoriesFacade.userRepository.get({ id: checkout.user.id })),\n ),\n concatMap((user) => of(user) || throwError(() => new NotFoundError('User is not found'))),\n )\n }\n\n updateCheckoutLineItems(checkout: Partial<Checkout>): Observable<Checkout> {\n return from(\n this.repositoriesFacade.checkoutRepository.update(\n Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems }),\n ),\n )\n }\n\n updateCheckoutUser(checkout: Partial<Checkout>): Observable<Checkout> {\n return from(\n this.repositoriesFacade.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })),\n )\n }\n\n clearCheckoutFromSession(): Observable<void> {\n return this.dependenciesFacade.dataPersistence.remove('checkoutId')\n }\n\n resetCheckoutValues(): Observable<Checkout> {\n return this.getCheckout().pipe(\n concatMap((checkout) =>\n this.dependenciesFacade.httpClient.post(`${this.checkoutUrl}/checkoutResetValues`, {\n checkoutId: checkout.id,\n }),\n ),\n concatMap(() => this.getCheckout()),\n )\n }\n\n applyCouponDiscount(nickname: string, checkoutType: CheckoutTypes): Observable<Coupon> {\n return this.getCheckout().pipe(\n concatMap((checkout) =>\n this.dependenciesFacade.httpClient.post(`${this.checkoutUrl}/checkoutApplyDiscount`, {\n checkoutId: checkout.id,\n coupon: nickname,\n checkoutType,\n }),\n ),\n concatMap(() => this.getCheckout()),\n map((checkout) => checkout.coupon),\n )\n }\n\n removeCouponDiscount(): Observable<Checkout> {\n return this.getCheckout().pipe(\n concatMap((checkout) =>\n this.dependenciesFacade.httpClient.post(`${this.checkoutUrl}/checkoutRemoveDiscount`, {\n checkoutId: checkout.id,\n }),\n ),\n concatMap(() => this.getCheckout()),\n )\n }\n\n validateStockProducts(): Observable<CheckoutStockValidation> {\n return this.getCheckout().pipe(\n concatMap((checkout) =>\n this.dependenciesFacade.httpClient.post<{\n valid: boolean\n outOfStock: string[]\n limitedStock: string[]\n }>(`${this.checkoutUrl}/checkoutValidateProductStock`, {\n checkoutId: checkout.id,\n }),\n ),\n )\n }\n\n selectShippingAddress(address: UserAddress): Observable<Checkout> {\n return this.getCheckout().pipe(\n concatMap((checkout) => {\n return this.repositoriesFacade.checkoutRepository.update(\n Checkout.toInstance({ id: checkout.id, shippingAddress: address, billingAddress: address }),\n )\n }),\n )\n }\n\n getAvailableShippingForProduct(productShipping: ShippingProductRequest): Observable<ShippingMethodResponse[]> {\n return this.dependenciesFacade.httpClient.post<ShippingMethodResponse[]>(\n `${this.checkoutUrl}/checkoutGetAvailableShipping`,\n {\n checkoutId: null,\n productShipping,\n },\n )\n }\n\n getAvailableShippingForCheckout(): Observable<ShippingMethodResponse[]> {\n return this.getCheckout().pipe(\n concatMap((checkout) =>\n this.dependenciesFacade.httpClient.post<ShippingMethodResponse[]>(\n `${this.checkoutUrl}/checkoutGetAvailableShipping`,\n {\n checkoutId: checkout.id,\n productShipping: null,\n },\n ),\n ),\n )\n }\n\n selectShipping(option: string): Observable<Checkout> {\n return this.getCheckout().pipe(\n concatMap((checkout) =>\n this.dependenciesFacade.httpClient.post(`${this.checkoutUrl}/checkoutSelectShipping`, {\n checkoutId: checkout.id,\n shippingOption: option,\n }),\n ),\n concatMap(() => this.getCheckout()),\n )\n }\n\n createOrder(\n checkoutPayload: CheckoutPayloadRequest,\n paymentProvider: string,\n applicationVersion: string,\n ): Observable<CheckoutResponse> {\n return this.dependenciesFacade.httpClient.post<CheckoutResponse>(`${this.checkoutUrl}/checkout`, {\n data: {\n ...checkoutPayload,\n applicationVersion,\n paymentProvider,\n },\n })\n }\n\n private async createCheckout(checkoutData?: RequiredCheckoutData): Promise<Checkout> {\n const checkout = await this.repositoriesFacade.checkoutRepository.create({\n createdAt: new Date(),\n ...Checkout.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),\n shop: checkoutData?.shop || this.configurationFacade.defaultShop,\n })\n\n await this.dependenciesFacade.dataPersistence.set('checkoutId', checkout.id).toPromise()\n\n return checkout\n }\n}\n","import { HttpClient } from '@angular/common/http'\nimport { Injectable } from '@angular/core'\n\nimport { AuthService } from '../auth.service'\nimport { CheckoutService } from '../checkout.service'\n\n@Injectable()\nexport class CartServicesFacade {\n constructor(\n public readonly authService: AuthService,\n public readonly checkoutService: CheckoutService,\n public readonly httpClient: HttpClient,\n ) {}\n}\n","import { Injectable } from '@angular/core'\nimport { Checkout, LineItem, User } from '@infrab4a/connect'\nimport { Observable, of, Subject } from 'rxjs'\nimport { concatMap, map, tap } from 'rxjs/operators'\n\nimport { RequiredCheckoutData } from './types'\nimport { CartServicesFacade } from './cart'\nimport { ConfigurationFacade } from './shared'\n\nexport type Cart = {\n [id: string]: LineItem\n}\n\n@Injectable()\nexport class CartService {\n private cartSubject: Subject<Cart> = new Subject()\n private checkoutUrl: string = null\n\n constructor(\n private readonly servicesFacade: CartServicesFacade,\n private readonly configurationFacade: ConfigurationFacade,\n ) {\n this.checkoutUrl = this.configurationFacade.getCheckoutUrl()\n }\n\n addItem(item: LineItem, quantity: number = 1): Observable<Cart> {\n return this.servicesFacade.checkoutService.getCheckout().pipe(\n concatMap((checkout) =>\n this.servicesFacade.httpClient.post(`${this.checkoutUrl}/checkoutAddItemToCart`, {\n checkoutId: checkout.id,\n productId: item.id,\n quantity,\n }),\n ),\n concatMap(() => this.servicesFacade.checkoutService.getCheckout()),\n map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n decreaseItem(item: LineItem): Observable<Cart> {\n return this.servicesFacade.checkoutService.getCheckout().pipe(\n concatMap((checkout) =>\n this.servicesFacade.httpClient.post(`${this.checkoutUrl}/checkoutDecreaseProductFromCart`, {\n checkoutId: checkout.id,\n productId: item.id,\n quantity: 1,\n }),\n ),\n concatMap(() => this.servicesFacade.checkoutService.getCheckout()),\n map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n removeItem(item: LineItem): Observable<Cart> {\n return this.servicesFacade.checkoutService.getCheckout().pipe(\n concatMap((checkout) =>\n this.servicesFacade.httpClient.post(`${this.checkoutUrl}/checkoutRemoveProductFromCart`, {\n checkoutId: checkout.id,\n productId: item.id,\n }),\n ),\n concatMap(() => this.servicesFacade.checkoutService.getCheckout()),\n map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n updateUserCart(user: User): Observable<Cart> {\n return this.servicesFacade.checkoutService.getCheckout().pipe(\n concatMap((checkout) =>\n this.servicesFacade.checkoutService.updateCheckoutUser(Checkout.toInstance({ ...checkout.toPlain(), user })),\n ),\n concatMap((checkout) => {\n return this.servicesFacade.httpClient.post(`${this.checkoutUrl}/checkoutUpdateUserCart`, {\n checkoutId: checkout.id,\n })\n }),\n concatMap(() => this.servicesFacade.checkoutService.getCheckout()),\n map((updatedCheckout) => {\n return this.generateCartObject(updatedCheckout.lineItems)\n }),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n getCart(checkout?: RequiredCheckoutData): Observable<Cart> {\n this.buildCartFromCheckout(checkout).subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n clearCart(): Observable<Cart> {\n return this.servicesFacade.checkoutService.getCheckout().pipe(\n map((checkout) => {\n this.servicesFacade.checkoutService.clearCheckoutFromSession()\n\n return checkout\n }),\n concatMap((oldCheckout) => this.buildCartFromCheckout(oldCheckout)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n private buildCartFromCheckout(checkoutData?: RequiredCheckoutData): Observable<Cart> {\n return this.servicesFacade.checkoutService.getCheckout(checkoutData).pipe(\n map((checkout) => checkout.lineItems),\n concatMap((lineItems) => of(this.generateCartObject(lineItems))),\n )\n }\n\n private generateCartObject = (items: LineItem[]): Cart =>\n items?.reduce(\n (cart, item) => ({\n ...cart,\n [item.id]: LineItem.toInstance({\n ...(cart[item.id] || item),\n quantity: (cart[item.id]?.quantity || 0) + (item.quantity ? item.quantity : 1),\n }),\n }),\n {} as Record<string, LineItem>,\n ) || {}\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Category, CategoryRepository, isNil, Product, RepositoryFindFielters, Where } from '@infrab4a/connect'\n\nimport { CategoryStructureAdapter } from './category-structure.adapter'\n\n@Injectable()\nexport class NewCategoryStructureAdapter implements CategoryStructureAdapter {\n constructor(@Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository) {}\n\n async buildProductFilterByCategory(category: Category): Promise<RepositoryFindFielters<Product>> {\n const loadedCategory = await this.getCategory(category)\n\n if (loadedCategory.isCollection) return { id: { operator: Where.IN, value: loadedCategory.products } }\n\n const categoryIds = [...(await this.getAllCategoriesIdFromCategory(category)), category.id.toString()]\n\n return {\n category: {\n id: {\n operator: Where.IN,\n value: categoryIds,\n },\n },\n }\n }\n\n private async getAllCategoriesIdFromCategory(category: Category): Promise<string[]> {\n return this.categoryRepository\n .getChildren(+category.id)\n .then((categories) => categories.map((category) => category.id.toString()))\n }\n\n private async getCategory(category: Category): Promise<Category> {\n const collectionCategory =\n category.isCollection ||\n (isNil(category.isCollection) && !category.products?.length) ||\n category.isWishlist ||\n category.brandCategory\n\n return collectionCategory ? this.categoryRepository.get({ id: category.id }) : category\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Category, CategoryRepository, Product, RepositoryFindFielters, Where } from '@infrab4a/connect'\n\nimport { CategoryStructureAdapter } from './category-structure.adapter'\n\n@Injectable()\nexport class OldCategoryStructureAdapter implements CategoryStructureAdapter {\n constructor(@Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository) {}\n\n async buildProductFilterByCategory(category: Category): Promise<RepositoryFindFielters<Product>> {\n const productsIds = category.products?.length\n ? category.products\n : await this.categoryRepository.get({ id: category.id }).then((categoryFound) => categoryFound.products)\n\n return { id: { operator: Where.IN, value: productsIds } }\n }\n}\n","import { Product, RepositoryCacheOptions, RepositoryFindResult, Shops } from '@infrab4a/connect'\n\nimport { CatalogSearchParams, CatalogSearchStrategy } from '../../../interfaces'\n\nexport class CatalogSearchContext {\n private strategies = new Map<string, CatalogSearchStrategy>()\n\n constructor(\n private readonly categoryStrategy: CatalogSearchStrategy,\n private readonly termStrategy: CatalogSearchStrategy,\n private readonly profileStrategy: CatalogSearchStrategy,\n ) {\n this.initializeStrategies()\n }\n\n async executeSearch(\n params: CatalogSearchParams,\n shop: Shops,\n optionsCache?: { cache?: RepositoryCacheOptions },\n ): Promise<RepositoryFindResult<Product>> {\n const strategy = this.selectStrategy(params)\n\n return strategy.search(params, shop, optionsCache)\n }\n\n private initializeStrategies(): void {\n this.strategies.set('category', this.categoryStrategy)\n this.strategies.set('term', this.termStrategy)\n this.strategies.set('profile', this.profileStrategy)\n }\n\n private selectStrategy(params: CatalogSearchParams): CatalogSearchStrategy {\n if (params.category) {\n const strategy = this.strategies.get('category')\n\n if (!strategy) throw new Error('Category strategy not found')\n\n return strategy\n }\n\n if (params.term) {\n const strategy = this.strategies.get('term')\n\n if (!strategy) throw new Error('Term strategy not found')\n\n return strategy\n }\n\n if (params.profile?.length) {\n const strategy = this.strategies.get('profile')\n\n if (!strategy) throw new Error('Profile strategy not found')\n\n return strategy\n }\n\n throw new Error('No valid search strategy found for the given parameters')\n }\n}\n","import { Injectable } from '@angular/core'\nimport { Product, RepositoryCacheOptions, RepositoryFindResult, Shops, Where, isEmpty } from '@infrab4a/connect'\n\nimport { CatalogSearchParams, CatalogSearchStrategy } from '../../../interfaces'\nimport { CatalogHelpersService, CatalogRepositoryService } from '../services'\n\nimport {\n FindAndSortByMostRelevantParams,\n SearchDefaultParams,\n SearchWithMostRelevantParams,\n} from './types/strategy-params.type'\n\n@Injectable()\nexport class CategorySearchStrategy implements CatalogSearchStrategy {\n constructor(\n private readonly repositoryService: CatalogRepositoryService,\n private readonly helpersService: CatalogHelpersService,\n ) {}\n\n async search(\n params: CatalogSearchParams,\n shop: Shops,\n optionsCache?: { cache?: RepositoryCacheOptions },\n ): Promise<RepositoryFindResult<Product>> {\n const { category, filters, limits, sort, mainGender } = params\n\n if (!category) {\n throw new Error('Category is required for CategorySearchStrategy')\n }\n\n const fields = this.helpersService.getFieldsHelper().getStandardFields()\n\n if (sort === 'most-relevant') {\n return this.searchWithMostRelevant({\n category,\n filters,\n limits,\n shop,\n mainGender,\n optionsCache,\n fields,\n })\n }\n\n return this.searchDefault({\n category,\n filters,\n limits,\n shop,\n mainGender,\n sort,\n optionsCache,\n fields,\n })\n }\n\n private async searchWithMostRelevant(params: SearchWithMostRelevantParams) {\n const { category, filters, shop, optionsCache } = params\n const mostRelevant = category.isWishlist ? [] : category.getMostRelevantByShop(shop)\n const productsIds = await this.getProductIds(category, filters, optionsCache)\n\n return this.findAndSortByMostRelevant({\n mostRelevants: mostRelevant,\n productIds: productsIds,\n filters: params.filters,\n limits: params.limits,\n shop: params.shop,\n mainGender: params.mainGender,\n optionsCache: params.optionsCache,\n fields: params.fields,\n })\n }\n\n private async searchDefault(params: SearchDefaultParams) {\n const { category, filters, limits, shop, mainGender, sort, optionsCache, fields } = params\n const productCatalog = this.repositoryService.getProductCatalog()\n const filterHelper = this.helpersService.getFilterHelper()\n const sortHelper = this.helpersService.getSortHelper()\n\n const repoParams = {\n fields,\n filters: {\n ...(await productCatalog.categoryStructureAdapter.buildProductFilterByCategory(category)),\n ...filterHelper.buildFilterQuery(filters || {}),\n },\n ...(sort ? { orderBy: sortHelper.buildSortQuery(sort) } : {}),\n limits,\n options: {\n minimal: ['price'],\n maximum: ['price'],\n distinct: ['brand'],\n },\n }\n\n return productCatalog.productRepository.findCatalog(\n repoParams,\n mainGender || (shop === Shops.MENSMARKET ? 'male' : 'female'),\n optionsCache,\n )\n }\n\n private async getProductIds(category: any, filters: any, optionsCache: any): Promise<string[]> {\n const productCatalog = this.repositoryService.getProductCatalog()\n const filterHelper = this.helpersService.getFilterHelper()\n\n return productCatalog.productRepository\n .findCatalog(\n {\n fields: ['id'],\n filters: {\n ...(await productCatalog.categoryStructureAdapter.buildProductFilterByCategory(category)),\n ...filterHelper.buildFilterQuery(filters || {}),\n },\n },\n undefined,\n optionsCache,\n )\n .then((products) => products.data.map((product) => product.id))\n }\n\n private async findAndSortByMostRelevant(\n params: FindAndSortByMostRelevantParams,\n ): Promise<RepositoryFindResult<Product>> {\n const { mostRelevants, productIds, filters, shop, mainGender, optionsCache, fields, limits } = params\n const productCatalog = this.repositoryService.getProductCatalog()\n const filterHelper = this.helpersService.getFilterHelper()\n const sortHelper = this.helpersService.getSortHelper()\n\n const mostRelevantProductsIds = [...new Set(mostRelevants.concat(productIds))]\n const totalResult = await productCatalog.productRepository.findCatalog(\n {\n fields,\n filters: {\n id: { operator: Where.IN, value: mostRelevantProductsIds },\n ...filterHelper.buildFilterQuery(filters || {}),\n },\n orderBy: sortHelper.buildSortQuery('best-sellers'),\n options: {\n minimal: ['price'],\n maximum: ['price'],\n ...(isEmpty(filters?.brands) ? { distinct: ['brand'] } : {}),\n },\n },\n mainGender || (shop === Shops.MENSMARKET ? 'male' : 'female'),\n optionsCache,\n )\n\n return this.sortProductsByRelevance(totalResult, mostRelevants, limits)\n }\n\n private sortProductsByRelevance(totalResult: any, mostRelevants: string[], limits: any) {\n const mostRelevantWithoutStock = totalResult.data.filter(\n (product: any) => mostRelevants.includes(product.id) && product.stock.quantity <= 0,\n )\n const firstProducts = totalResult.data\n .filter((product: any) => mostRelevants.includes(product.id) && product.stock.quantity > 0)\n .sort((a: any, b: any) => mostRelevants.indexOf(a.id) - mostRelevants.indexOf(b.id))\n const lastProducts = totalResult.data\n .filter((product: any) => !mostRelevants.includes(product.id))\n .concat(mostRelevantWithoutStock)\n const categoryMostRelevants = firstProducts.concat(lastProducts)\n const resultFinal = categoryMostRelevants.slice(limits.offset, limits.offset + limits.limit)\n\n return {\n data: resultFinal,\n count: totalResult.count,\n maximum: totalResult.maximum,\n minimal: totalResult.minimal,\n distinct: totalResult.distinct,\n }\n }\n}\n","import { Injectable } from '@angular/core'\nimport { Product, RepositoryCacheOptions, RepositoryFindResult, Shops, Where } from '@infrab4a/connect'\n\nimport { CatalogSearchParams, CatalogSearchStrategy } from '../../../interfaces'\nimport { CatalogHelpersService, CatalogRepositoryService } from '../services'\n\n@Injectable()\nexport class ProfileSearchStrategy implements CatalogSearchStrategy {\n constructor(\n private readonly repositoryService: CatalogRepositoryService,\n private readonly helpersService: CatalogHelpersService,\n ) {}\n\n async search(\n params: CatalogSearchParams,\n shop: Shops,\n optionsCache?: { cache?: RepositoryCacheOptions },\n ): Promise<RepositoryFindResult<Product>> {\n const { profile, filters, limits, sort, mainGender } = params\n\n if (!profile) {\n throw new Error('Profile is required for ProfileSearchStrategy')\n }\n\n const productCatalog = this.repositoryService.getProductCatalog()\n const filterHelper = this.helpersService.getFilterHelper()\n const sortHelper = this.helpersService.getSortHelper()\n const fieldsHelper = this.helpersService.getFieldsHelper()\n\n const repoParams = {\n fields: fieldsHelper.getStandardFields(),\n filters: {\n tags: { operator: Where.LIKE, value: profile },\n ...filterHelper.buildFilterQuery(filters || {}),\n },\n ...(sort ? { orderBy: sortHelper.buildSortQuery(sort) } : {}),\n limits,\n options: {\n minimal: ['price'],\n maximum: ['price'],\n distinct: ['brand'],\n },\n }\n\n return productCatalog.productRepository.findCatalog(\n repoParams,\n mainGender || (shop === Shops.MENSMARKET ? 'male' : 'female'),\n optionsCache,\n )\n }\n}\n","import { Injectable } from '@angular/core'\nimport {\n Product,\n ProductSearch,\n RepositoryCacheOptions,\n RepositoryFindResult,\n Shops,\n Where,\n isEmpty,\n} from '@infrab4a/connect'\n\nimport { CatalogSearchParams, CatalogSearchStrategy } from '../../../interfaces'\nimport { CatalogHelpersService, CatalogRepositoryService } from '../services'\n\nimport {\n SortByTermRelevanceParams,\n TermSearchDefaultParams,\n TermSearchMostRelevantParams,\n} from './types/strategy-params.type'\n\n@Injectable()\nexport class TermSearchStrategy implements CatalogSearchStrategy {\n private productsByTerm: Record<string, string[]> = {}\n\n constructor(\n private readonly repositoryService: CatalogRepositoryService,\n private readonly helpersService: CatalogHelpersService,\n ) {}\n\n async search(\n params: CatalogSearchParams,\n shop: Shops,\n _optionsCache?: { cache?: RepositoryCacheOptions },\n ): Promise<RepositoryFindResult<Product>> {\n const { term, filters, limits, sort, mainGender } = params\n\n if (!term) {\n throw new Error('Term is required for TermSearchStrategy')\n }\n\n const productIds = await this.findCatalogIdsBySearch(term, shop)\n\n if (sort === 'most-relevant') {\n return this.searchWithMostRelevant({\n productIds,\n filters,\n limits,\n shop,\n mainGender,\n })\n }\n\n return this.searchDefault({\n productIds,\n filters,\n limits,\n shop,\n mainGender,\n fields: this.helpersService.getFieldsHelper().getStandardFields(),\n })\n }\n\n private async searchWithMostRelevant(params: TermSearchMostRelevantParams): Promise<RepositoryFindResult<Product>> {\n const { productIds, filters, shop, mainGender } = params\n const productCatalog = this.repositoryService.getProductCatalog()\n const filterHelper = this.helpersService.getFilterHelper()\n\n const totalResult = await productCatalog.productRepository.findCatalog(\n {\n fields: ['id', 'stock', 'gender'],\n filters: {\n id: { operator: Where.IN, value: productIds },\n published: { operator: Where.EQUALS, value: true },\n ...filterHelper.buildFilterQuery(filters || {}),\n },\n options: {\n minimal: ['price'],\n maximum: ['price'],\n ...(isEmpty(filters?.brands) ? { distinct: ['brand'] } : {}),\n },\n },\n mainGender || (shop === Shops.MENSMARKET ? 'male' : 'female'),\n )\n\n return this.sortByTermRelevance({\n productIds,\n totalResult,\n limits: params.limits,\n filters,\n fieldsHelper: this.helpersService.getFieldsHelper(),\n })\n }\n\n private async searchDefault(params: TermSearchDefaultParams): Promise<RepositoryFindResult<Product>> {\n const { productIds, filters, limits, shop, mainGender, fields } = params\n const productCatalog = this.repositoryService.getProductCatalog()\n const filterHelper = this.helpersService.getFilterHelper()\n\n return productCatalog.productRepository.findCatalog(\n {\n fields,\n filters: {\n id: { operator: Where.IN, value: productIds },\n published: { operator: Where.EQUALS, value: true },\n ...filterHelper.buildFilterQuery(filters || {}),\n },\n limits,\n options: {\n minimal: ['price'],\n maximum: ['price'],\n distinct: ['brand'],\n },\n },\n mainGender || (shop === Shops.MENSMARKET ? 'male' : 'female'),\n )\n }\n\n private sortByTermRelevance(params: SortByTermRelevanceParams) {\n const { productIds, totalResult, limits, filters, fieldsHelper } = params\n const defaultGender = filters?.gender?.at(0) || 'male'\n const stockData = totalResult.data.filter((product: any) => product.stock.quantity > 0)\n const stockOut = totalResult.data.filter((product: any) => product.stock.quantity <= 0)\n\n const productIdsStockGender = productIds.filter((product) =>\n stockData.some(\n (result: any) =>\n result.id === product && (result.gender?.includes(defaultGender) || result.gender?.includes('unisex')),\n ),\n )\n\n const productIdsStockNotGender = productIds.filter((product) =>\n stockData.some(\n (result: any) =>\n result.id === product && !result.gender?.includes(defaultGender) && !result.gender?.includes('unisex'),\n ),\n )\n\n const productIdsStock = productIdsStockGender.concat(productIdsStockNotGender)\n const productIdsStockOut = productIds.filter((product) => stockOut.some((result: any) => result.id === product))\n\n const limitedProductId = productIdsStock\n .concat(productIdsStockOut)\n .slice(limits.offset, limits.offset + limits.limit)\n\n const orderedId = productIds.filter((product) => limitedProductId.includes(product))\n\n return this.getDetailedProducts(orderedId, totalResult, fieldsHelper)\n }\n\n private async getDetailedProducts(orderedId: string[], totalResult: any, fieldsHelper: any) {\n const productCatalog = this.repositoryService.getProductCatalog()\n const fields = fieldsHelper.getStandardFields()\n const productResult = await productCatalog.productRepository.findCatalog({\n filters: {\n id: { operator: Where.IN, value: orderedId },\n },\n fields,\n })\n\n return {\n data: orderedId.map((id) => productResult.data.find((product) => product.id === id)).filter(Boolean),\n count: totalResult.count,\n maximum: totalResult.maximum,\n minimal: totalResult.minimal,\n distinct: totalResult.distinct,\n }\n }\n\n private async findCatalogIdsBySearch(term: string, shop: Shops): Promise<string[]> {\n if (this.productsByTerm[term]) return this.productsByTerm[term]\n\n const productServices = this.repositoryService.getProductServices()\n\n return (this.productsByTerm[term] = await productServices.productSearch\n .search<ProductSearch>(term, 999, shop === Shops.GLAMSHOP ? 'female' : 'male')\n .then((products) => [...new Set(products.map((product) => product.id))]))\n }\n}\n","import { Injectable } from '@angular/core'\n\nimport { CategorySearchStrategy, ProfileSearchStrategy, TermSearchStrategy } from '../strategies'\n\n@Injectable()\nexport class CatalogStrategiesFacade {\n constructor(\n public readonly categoryStrategy: CategorySearchStrategy,\n public readonly termStrategy: TermSearchStrategy,\n public readonly profileStrategy: ProfileSearchStrategy,\n ) {}\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Shops } from '@infrab4a/connect'\n\nimport { DEFAULT_SHOP } from '../../../consts'\nimport { CatalogService } from '../catalog.service'\nimport { CatalogSearchContext } from '../context/catalog-search.context'\nimport { CatalogHelpersService } from '../services'\n\nimport { CatalogStrategiesFacade } from './catalog-strategies.facade'\n\n@Injectable()\nexport class CatalogServiceFacade {\n private catalogService: CatalogService\n\n constructor(\n private readonly helpersService: CatalogHelpersService,\n private readonly strategiesFacade: CatalogStrategiesFacade,\n @Inject(DEFAULT_SHOP) private readonly shop: Shops,\n ) {\n const searchContext = new CatalogSearchContext(\n this.strategiesFacade.categoryStrategy,\n this.strategiesFacade.termStrategy,\n this.strategiesFacade.profileStrategy,\n )\n\n this.catalogService = new CatalogService(searchContext, this.helpersService, this.shop)\n }\n\n getCatalogService(): CatalogService {\n return this.catalogService\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { CategoryFilterRepository, CategoryRepository } from '@infrab4a/connect'\n\n@Injectable()\nexport class CategoryRepositoryFacade {\n constructor(\n @Inject('CategoryRepository') public readonly categoryRepository: CategoryRepository,\n @Inject('CategoryFilterRepository') public readonly categoryFilterRepository: CategoryFilterRepository,\n ) {}\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Category, Filter, ProductGender, RepositoryCacheOptions, Shops } from '@infrab4a/connect'\n\nimport { DEFAULT_SHOP } from '../../consts'\n\nimport { CategoryRepositoryFacade, ProductCatalogFacade } from './facades'\n\ntype FetchBrandsOptions = {\n mainGender?: ProductGender\n shop?: Shops\n}\n\n@Injectable()\nexport class CategoryService {\n constructor(\n private readonly categoryFacade: CategoryRepositoryFacade,\n private readonly productCatalog: ProductCatalogFacade,\n @Inject(DEFAULT_SHOP) private readonly shop: Shops,\n ) {}\n\n async fetchBrands(\n category: Category,\n options?: FetchBrandsOptions,\n optionsCache?: { cache?: RepositoryCacheOptions },\n ): Promise<Category[]> {\n const brands = await this.productCatalog.productRepository\n .findCatalog(\n {\n filters: await this.productCatalog.categoryStructureAdapter.buildProductFilterByCategory(category),\n fields: ['brand'],\n },\n options?.mainGender ? options?.mainGender : this.shop === Shops.MENSMARKET ? 'male' : 'female',\n optionsCache,\n )\n .then(({ data }) =>\n Object.keys(data.map((product) => product.brand).reduce((brands, brand) => ({ ...brands, [brand]: true }), {})),\n )\n\n return this.categoryFacade.categoryRepository\n .find(\n { filters: { brandCategory: true, shop: options?.shop || this.shop }, orderBy: { name: 'asc' } },\n optionsCache,\n )\n .then(({ data }) => data.filter((category) => brands.includes(category.conditions.brand)))\n }\n\n async fetchFilterOptions(category: Category, optionsCache?: { cache?: RepositoryCacheOptions }): Promise<Filter[]> {\n return await this.categoryFacade.categoryFilterRepository\n .find({ filters: { categoryId: +category.id } }, optionsCache)\n .then(({ data }) => data.map((categoryFilter) => categoryFilter.filter))\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { ProductRepository } from '@infrab4a/connect'\n\nimport { CATEGORY_STRUCTURE } from '../../../consts'\nimport { CategoryStructureAdapter } from '../adapters'\n\n@Injectable()\nexport class ProductCatalogFacade {\n constructor(\n @Inject('ProductRepository') public readonly productRepository: ProductRepository,\n @Inject(CATEGORY_STRUCTURE) public readonly categoryStructureAdapter: CategoryStructureAdapter,\n ) {}\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Shops } from '@infrab4a/connect'\n\nimport { DEFAULT_SHOP } from '../../../consts'\nimport { CategoryService } from '../category.service'\n\nimport { CategoryRepositoryFacade } from './category-repository.facade'\nimport { ProductCatalogFacade } from './product-catalog.facade'\n\n@Injectable()\nexport class CategoryServiceFacade {\n private categoryService: CategoryService\n\n constructor(\n private readonly categoryRepositoryFacade: CategoryRepositoryFacade,\n private readonly productCatalogFacade: ProductCatalogFacade,\n @Inject(DEFAULT_SHOP) private readonly shop: Shops,\n ) {\n this.categoryService = new CategoryService(this.categoryRepositoryFacade, this.productCatalogFacade, this.shop)\n }\n\n getCategoryService(): CategoryService {\n return this.categoryService\n }\n}\n","import { Injectable } from '@angular/core'\nimport { Where, isEmpty } from '@infrab4a/connect'\n\nimport { CatalogSearchParams } from '../../../interfaces'\nimport { ProductCatalogFacade } from '../facades'\n\n@Injectable()\nexport class BrandManagerHelper {\n private brandsList: Record<string, string[]> = {}\n\n constructor(private readonly productCatalog: ProductCatalogFacade) {}\n\n async setBrandsList(options: CatalogSearchParams, brands: string[]): Promise<void> {\n const filterBrands = options.filters?.brands\n const indexKey = this.buildIndexBrands(options)\n\n if (isEmpty(brands) && options.filters) {\n delete options.filters.brands\n }\n\n this.brandsList[indexKey] = this.brandsList[indexKey] || brands || (await this.fetchBrandsOnly(options))\n\n this.brandsList[indexKey] = this.brandsList[indexKey].filter(Boolean)\n\n if (options.filters) {\n options.filters = {\n ...options.filters,\n brands: filterBrands,\n }\n }\n }\n\n getBrandsList(indexKey: string): string[] {\n return this.brandsList[indexKey]\n }\n\n buildIndexBrands(options: CatalogSearchParams): string {\n if (options.category) return `category-${options.category.id}`\n\n if (options.term) return `term-${options.term}`\n\n if (options.profile) return `profile-${options.profile.join(',')}`\n\n return ''\n }\n\n private async fetchBrandsOnly(options: CatalogSearchParams): Promise<string[]> {\n return this.productCatalog.productRepository\n .findCatalog(\n {\n fields: ['id'],\n filters: {\n published: { operator: Where.EQUALS, value: true },\n },\n options: {\n distinct: ['brand'],\n },\n },\n options.mainGender,\n )\n .then((result) => result.distinct.brand)\n }\n}\n","import { Injectable } from '@angular/core'\nimport { Product, RepositoryFindFielters, Where, set } from '@infrab4a/connect'\n\nimport { CatalogFilters } from '../../../interfaces'\n\n@Injectable()\nexport class CatalogFilterHelper {\n buildFilterQuery(filters: CatalogFilters): RepositoryFindFielters<Product> {\n const filterQuery = {} as RepositoryFindFielters<Product>\n\n if (filters.clubDiscount?.length) {\n set(filterQuery, 'price.subscriberDiscountPercentage', {\n operator: Where.IN,\n value: filters.clubDiscount,\n })\n }\n\n if (filters.brands?.length) {\n filterQuery.brand = { operator: Where.IN, value: filters.brands }\n }\n\n if (filters.gender?.length) {\n filterQuery.gender = { operator: Where.IN, value: filters.gender }\n }\n\n if (filters.prices?.min || filters.prices?.max) {\n const priceField = filters.prices.subscriberPrice ? 'price.subscriberPrice' : 'price.price'\n const priceFilters = [\n ...(filters.prices.min ? [{ operator: Where.GTE, value: Math.floor(filters.prices.min) }] : []),\n ...(filters.prices.max ? [{ operator: Where.LTE, value: Math.ceil(filters.prices.max) }] : []),\n ]\n\n set(filterQuery, priceField, priceFilters)\n }\n\n if (filters.rate) {\n filterQuery.rate = { operator: Where.GTE, value: filters.rate }\n }\n\n if (filters.tags?.length) {\n filterQuery.tags = { operator: Where.LIKE, value: filters.tags }\n }\n\n if (filters.customOptions?.length) {\n filterQuery.filters = { operator: Where.LIKE, value: filters.customOptions }\n }\n\n return filterQuery\n }\n}\n","import { Injectable } from '@angular/core'\nimport { Product, RepositoryOrderBy } from '@infrab4a/connect'\n\n@Injectable()\nexport class CatalogSortHelper {\n buildSortQuery(sort: string): RepositoryOrderBy<Product> {\n if (!sort || sort === 'most-relevant') return {}\n\n switch (sort) {\n case 'best-sellers':\n return {\n shoppingCount: 'desc',\n rate: 'desc',\n stock: 'desc',\n name: 'asc',\n }\n\n case 'biggest-price':\n return {\n subscriberPrice: 'desc',\n rate: 'desc',\n shoppingCount: 'desc',\n } as any\n\n case 'lowest-price':\n return {\n subscriberPrice: 'asc',\n rate: 'desc',\n shoppingCount: 'desc',\n } as any\n\n case 'best-rating':\n return {\n rate: 'desc',\n shoppingCount: 'desc',\n stock: 'desc',\n name: 'asc',\n }\n\n case 'news':\n return { createdAt: 'desc' }\n\n case 'biggest-discount':\n return {\n subscriberDiscountPercentage: 'desc',\n rate: 'desc',\n shoppingCount: 'desc',\n } as any\n\n default:\n return {}\n }\n }\n}\n","import { Injectable } from '@angular/core'\nimport { NonFunctionPropertyNames, Product } from '@infrab4a/connect'\n\n@Injectable()\nexport class ProductFieldsHelper {\n getStandardFields(): NonFunctionPropertyNames<Product>[] {\n return [\n 'id',\n 'name',\n 'slug',\n 'images',\n 'miniatures',\n 'price',\n 'stock',\n 'published',\n 'CEST',\n 'EAN',\n 'NCM',\n 'brand',\n 'costPrice',\n 'hasVariants',\n 'isKit',\n 'sku',\n 'rate',\n 'tags',\n 'type',\n 'shoppingCount',\n 'gender',\n 'createdAt',\n 'label',\n 'outlet',\n 'group',\n ]\n }\n}\n","import { Injectable } from '@angular/core'\n\nimport { CatalogFilterHelper, CatalogSortHelper, ProductFieldsHelper } from '../helpers'\n\n@Injectable()\nexport class CatalogOperationsFacade {\n constructor(\n private readonly filterHelper: CatalogFilterHelper,\n private readonly sortHelper: CatalogSortHelper,\n private readonly fieldsHelper: ProductFieldsHelper,\n ) {}\n\n getFilterHelper(): CatalogFilterHelper {\n return this.filterHelper\n }\n\n getSortHelper(): CatalogSortHelper {\n return this.sortHelper\n }\n\n getFieldsHelper(): ProductFieldsHelper {\n return this.fieldsHelper\n }\n}\n","import { Inject, Injectable } from '@angular/core'\n\nimport { ProductServicesFacade } from '../../../interfaces'\nimport { BrandManagerHelper } from '../helpers'\n\n@Injectable()\nexport class ProductManagementFacade {\n constructor(\n private readonly brandManager: BrandManagerHelper,\n @Inject('ProductServicesFacade') private readonly productServices: ProductServicesFacade,\n ) {}\n\n getBrandManager(): BrandManagerHelper {\n return this.brandManager\n }\n\n getProductServices(): ProductServicesFacade {\n return this.productServices\n }\n}\n","import { Injectable } from '@angular/core'\n\nimport { ProductServicesFacade } from '../../../interfaces'\nimport { BrandManagerHelper, CatalogFilterHelper, CatalogSortHelper, ProductFieldsHelper } from '../helpers'\n\nimport { CatalogOperationsFacade } from './catalog-operations.facade'\nimport { ProductManagementFacade } from './product-management.facade'\n\n@Injectable()\nexport class CatalogHelpersService {\n constructor(\n private readonly catalogOperations: CatalogOperationsFacade,\n private readonly productManagement: ProductManagementFacade,\n ) {}\n\n getFilterHelper(): CatalogFilterHelper {\n return this.catalogOperations.getFilterHelper()\n }\n\n getSortHelper(): CatalogSortHelper {\n return this.catalogOperations.getSortHelper()\n }\n\n getFieldsHelper(): ProductFieldsHelper {\n return this.catalogOperations.getFieldsHelper()\n }\n\n getBrandManager(): BrandManagerHelper {\n return this.productManagement.getBrandManager()\n }\n\n getProductServices(): ProductServicesFacade {\n return this.productManagement.getProductServices()\n }\n}\n","import { Inject, Injectable } from '@angular/core'\n\nimport { ProductServicesFacade } from '../../../interfaces'\nimport { ProductCatalogFacade } from '../facades'\n\n@Injectable()\nexport class CatalogRepositoryService {\n constructor(\n private readonly productCatalog: ProductCatalogFacade,\n @Inject('ProductServicesFacade') private readonly productServices: ProductServicesFacade,\n ) {}\n\n getProductCatalog(): ProductCatalogFacade {\n return this.productCatalog\n }\n\n getProductServices(): ProductServicesFacade {\n return this.productServices\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n Category,\n InvalidArgumentError,\n RepositoryCacheOptions,\n RoundProductPricesHelper,\n Shops,\n} from '@infrab4a/connect'\n\nimport { DEFAULT_SHOP } from '../../consts'\nimport { CatalogFilters, CatalogSearchParams } from '../../interfaces'\n\nimport { CatalogSearchContext } from './context/catalog-search.context'\nimport { CatalogHelpersService } from './services'\nimport {\n BuildResponseParams,\n FetchProductsMainParams,\n FetchProductsOptions,\n FetchProductsParams,\n FetchProductsResponse,\n StockNotificationParams,\n} from './types'\n\n@Injectable()\nexport class CatalogService<T extends Category = Category> {\n constructor(\n private readonly searchContext: CatalogSearchContext,\n private readonly helpersService: CatalogHelpersService,\n @Inject(DEFAULT_SHOP) private readonly shop: Shops,\n ) {}\n\n async fetchProducts(\n options: FetchProductsParams<T>,\n optionsCache?: { cache?: RepositoryCacheOptions },\n ): Promise<FetchProductsResponse> {\n this.validateRequest(options)\n\n const searchParams = this.buildSearchParams(options)\n const {\n data,\n count: total,\n maximum,\n minimal,\n distinct,\n } = await this.searchContext.executeSearch(searchParams, this.shop, optionsCache)\n\n await this.helpersService.getBrandManager().setBrandsList(searchParams, distinct?.brand)\n\n return this.buildResponse({\n data,\n total,\n maximum,\n minimal,\n searchParams,\n options,\n })\n }\n\n async addCustomerToStockNotification(params: StockNotificationParams): Promise<void> {\n const { shop, productId, name, email } = params\n const productServices = this.helpersService.getProductServices()\n\n return productServices.productStockNotificationRepository.addCustomerEmail({\n shop,\n productId,\n name,\n email,\n })\n }\n\n private validateRequest(options: FetchProductsParams<T>): void {\n if (this.hasProfile(options) && options.filters?.customOptions) {\n throw new InvalidArgumentError(`It couldn't filled customOptions when profile is given`)\n }\n\n if (this.hasProfile(options) && options.filters?.tags) {\n throw new InvalidArgumentError(`It couldn't filled tags when profile is given`)\n }\n\n if (this.hasTerm(options) && options.filters?.customOptions) {\n throw new InvalidArgumentError(`It couldn't filled customOptions when term is given`)\n }\n }\n\n private buildSearchParams(options: FetchProductsParams<T>): CatalogSearchParams {\n const limits = this.buildLimitQuery(options)\n\n return {\n category: this.hasCategory(options) ? options.category : undefined,\n profile: this.hasProfile(options) ? options.profile : undefined,\n term: this.hasTerm(options) ? options.term : undefined,\n filters: options.filters,\n mainGender: options.mainGender,\n sort: options.sort,\n limits,\n }\n }\n\n private buildResponse(params: BuildResponseParams<T>): FetchProductsResponse {\n const { data, total, maximum, minimal, searchParams } = params\n const limits = searchParams.limits\n const indexKey = this.helpersService.getBrandManager().buildIndexBrands(searchParams)\n\n return {\n products: {\n data: data.map((product) => RoundProductPricesHelper.roundProductPrices(product)),\n total,\n },\n pages: Math.ceil(total / limits.limit),\n prices: {\n price: {\n min: +(minimal?.price?.price?.toFixed(2) || 0),\n max: +(maximum?.price?.price?.toFixed(2) || 0),\n },\n subscriberPrice: {\n min: +(minimal?.price?.subscriberPrice?.toFixed(2) || 0),\n max: +(maximum?.price?.subscriberPrice?.toFixed(2) || 0),\n },\n },\n brands: this.helpersService.getBrandManager().getBrandsList(indexKey),\n }\n }\n\n private buildLimitQuery(options: { page?: number; perPage?: number }): { limit: number; offset: number } {\n const limit = options?.perPage || 20\n\n return {\n limit,\n offset: ((options?.page || 1) - 1) * limit,\n }\n }\n\n private hasProfile(options: Partial<FetchProductsParams<T>>): options is FetchProductsOptions & {\n profile: FetchProductsMainParams<T>['profile']\n filters?: CatalogFilters & { customOptions?: never; tags?: never }\n } {\n return 'profile' in options\n }\n\n private hasTerm(options: Partial<FetchProductsParams<T>>): options is FetchProductsOptions & {\n term: FetchProductsMainParams<T>['term']\n filters?: CatalogFilters & { customOptions?: never }\n } {\n return 'term' in options\n }\n\n private hasCategory(options: Partial<FetchProductsParams<T>>): options is FetchProductsOptions & {\n category: FetchProductsMainParams<T>['category']\n filters?: CatalogFilters & { customOptions?: never }\n } {\n return 'category' in options\n }\n}\n","export enum ProductSorts {\n MOST_RELEVANT = 'most-relevant',\n BEST_SELLER = 'best-sellers',\n BIGGEST_PRICE = 'biggest-price',\n LOWEST_PRICE = 'lowest-price',\n BIGGEST_DISCOUNT = 'biggest-discount',\n BEST_RATING = 'best-rating',\n NEWS = 'news',\n}\n","import { Type } from 'class-transformer'\nimport { Category } from '@infrab4a/connect'\n\nexport class CategoryWithTree extends Category {\n @Type(() => CategoryWithTree)\n children?: CategoryWithTree[]\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n LogRepository,\n PersonType,\n PersonTypes,\n Product,\n Shops,\n Wishlist,\n WishlistLogType,\n WishlistRepository,\n} from '@infrab4a/connect'\n\nimport { DEFAULT_SHOP } from '../../consts'\n\nimport { CatalogService } from './catalog.service'\nimport { CategoryService } from './category.service'\nimport { CatalogServiceFacade, CategoryServiceFacade } from './facades'\n\n@Injectable()\nexport class WishlistService {\n private catalogService: CatalogService\n private categoryService: CategoryService\n\n constructor(\n @Inject('WishlistRepository') private readonly wishlistRepository: WishlistRepository,\n @Inject(DEFAULT_SHOP) private readonly shop: Shops,\n @Inject('LogRepository') private readonly logRepository: LogRepository,\n ) {}\n\n initializeServices(catalogServiceFacade: CatalogServiceFacade, categoryServiceFacade: CategoryServiceFacade): void {\n this.catalogService = catalogServiceFacade.getCatalogService()\n this.categoryService = categoryServiceFacade.getCategoryService()\n }\n\n getCatalogService() {\n return this.catalogService\n }\n\n getCategoryService() {\n return this.categoryService\n }\n\n async create({\n personId,\n title,\n description,\n published,\n userFullName,\n userPhoto,\n theme,\n bannerUrl,\n personType,\n personIsSubscriber,\n }: {\n personId: string\n title: string\n description: string\n published: boolean\n userFullName: string\n userPhoto?: string\n theme?: string\n bannerUrl?: string\n personType?: PersonType\n personIsSubscriber?: boolean\n }): Promise<Wishlist> {\n const wishlistData = this.buildWishlistData({\n title,\n description,\n published,\n userFullName,\n userPhoto,\n theme,\n bannerUrl,\n personType,\n personIsSubscriber,\n personId,\n })\n\n const existingWishlist = await this.findExistingWishlistByPersonId(personId)\n\n await this.createWishlistLog(WishlistLogType.CREATE, wishlistData as Wishlist)\n\n if (existingWishlist) return existingWishlist\n\n return this.createNewWishlist(wishlistData)\n }\n\n private buildWishlistData({\n title,\n description,\n published,\n userFullName,\n userPhoto,\n theme,\n bannerUrl,\n personType,\n personIsSubscriber,\n personId,\n }: {\n title: string\n description: string\n published: boolean\n userFullName: string\n userPhoto?: string\n theme?: string\n bannerUrl?: string\n personType?: PersonType\n personIsSubscriber?: boolean\n personId: string\n }) {\n return {\n slug: '',\n name: title,\n description,\n metadatas: [\n {\n shop: this.shop,\n title: `${userFullName} - ${title}`,\n description: `${userFullName} - ${description}`,\n },\n ],\n shop: this.shop,\n shops: [this.shop],\n personId,\n personName: userFullName,\n personPhoto: userPhoto,\n brandCategory: false,\n published,\n theme,\n bannerUrl,\n personType: personType ?? PersonTypes.NONE,\n personIsSubscriber: personIsSubscriber ?? false,\n }\n }\n\n private async findExistingWishlistByPersonId(personId: string): Promise<Wishlist | null> {\n const hasWishlist = await this.wishlistRepository\n .find({\n filters: {\n personId,\n },\n options: {\n enableCount: false,\n },\n orderBy: {\n id: 'asc',\n },\n })\n .then((res) => res.data)\n\n return hasWishlist.length ? hasWishlist.at(0) : null\n }\n\n private async createNewWishlist(data: any): Promise<Wishlist> {\n const newWishlist = await this.wishlistRepository.create(data)\n\n await this.wishlistRepository.update({ id: newWishlist.id, slug: newWishlist.id })\n\n return Wishlist.toInstance({ ...newWishlist.toPlain(), slug: newWishlist.id })\n }\n\n async update({\n id,\n title,\n description,\n published,\n userFullName,\n userPhoto,\n theme,\n bannerUrl,\n personType,\n personIsSubscriber,\n }: {\n id: string\n title: string\n description: string\n published: boolean\n userFullName: string\n userPhoto?: string\n theme?: string\n bannerUrl?: string\n personType?: PersonType\n personIsSubscriber?: boolean\n }): Promise<Wishlist> {\n const data = {\n id,\n name: title,\n description,\n published,\n metadatas: [\n {\n shop: this.shop,\n title: `${userFullName} - ${title}`,\n description: `${userFullName} - ${description}`,\n },\n ],\n personName: userFullName,\n personPhoto: userPhoto,\n theme,\n bannerUrl,\n personType: personType ?? PersonTypes.NONE,\n personIsSubscriber: personIsSubscriber ?? false,\n }\n\n await this.createWishlistLog(WishlistLogType.UPDATE, data as Wishlist)\n\n return this.wishlistRepository.update(data)\n }\n\n async delete(wishlistId: string): Promise<void> {\n const wishlist = await this.findById(wishlistId)\n\n await this.createWishlistLog(WishlistLogType.DELETE, wishlist)\n\n return this.wishlistRepository.delete({ id: wishlistId })\n }\n\n getWishlistBySlug(slug: string): Promise<Wishlist> {\n const [id] = slug.split('-')\n\n if (+id) return this.wishlistRepository.get({ id })\n\n return this.wishlistRepository.getWishlistBySlug(slug)\n }\n\n getWishlistsByPerson(personId: string): Promise<Wishlist[]> {\n return this.wishlistRepository.getWishlistByPerson(personId)\n }\n\n async addProduct(wishlistId: string, productId: string): Promise<Wishlist> {\n const wishlist = await this.wishlistRepository.get({ id: wishlistId })\n const hasProduct = wishlist.products.some((p) => p == productId)\n\n const wishlistData = await this.findById(wishlistId)\n const productData = await this.findProductById(productId)\n\n await this.createWishlistLog(WishlistLogType.ADD_PRODUCT, wishlistData, productData)\n\n if (!hasProduct) {\n wishlist.products = [...wishlist.products, productId]\n await this.wishlistRepository.addProduct(wishlistId, productId)\n }\n\n return wishlist\n }\n\n async removeProduct(wishlistId: string, productId: string): Promise<Wishlist> {\n const wishlist = await this.wishlistRepository.get({ id: wishlistId })\n const productIndex = wishlist.products.findIndex((p) => p == productId)\n\n if (productIndex != -1) {\n wishlist.products.splice(productIndex, 1)\n const wishlistData = await this.findById(wishlistId)\n const productData = await this.findProductById(productId)\n\n await this.createWishlistLog(WishlistLogType.REMOVE_PRODUCT, wishlistData, productData)\n await this.wishlistRepository.removeProduct(wishlistId, productId)\n }\n\n return wishlist\n }\n\n private async findById(id: string): Promise<Wishlist> {\n return this.wishlistRepository\n .find({\n fields: ['id', 'name', 'description', 'personId', 'personIsSubscriber', 'personType', 'personName'],\n filters: {\n id,\n },\n })\n .then((res) => res.data.at(0))\n }\n\n private async findProductById(id: string): Promise<Product> {\n if (!this.catalogService) {\n throw new Error('CatalogService not initialized. Call initializeServices first.')\n }\n\n const helpersService = this.catalogService['helpersService'] as any\n const productServices = helpersService.getProductServices()\n\n return productServices.productRepository\n .find({\n fields: ['id', 'sku', 'EAN', 'name', 'brand'],\n filters: {\n id,\n },\n })\n .then((res) => res.data.at(0))\n }\n\n private async createWishlistLog(type: WishlistLogType, wishlist: Wishlist, product?: Product) {\n switch (type) {\n case WishlistLogType.CREATE:\n case WishlistLogType.UPDATE:\n case WishlistLogType.DELETE:\n await this.createWishlistOperationLog(type, wishlist)\n break\n\n case WishlistLogType.ADD_PRODUCT:\n case WishlistLogType.REMOVE_PRODUCT:\n await this.createWishlistProductLog(type, wishlist, product)\n break\n\n default:\n break\n }\n }\n\n private async createWishlistOperationLog(type: WishlistLogType, wishlist: Wishlist): Promise<void> {\n const operation = this.getOperationTypeFromWishlistLogType(type)\n\n await this.logRepository.create({\n collection: 'wishlist',\n date: new Date(),\n operation,\n documentId: wishlist.id,\n document: this.buildWishlistLogDocument(wishlist, type),\n })\n }\n\n private async createWishlistProductLog(type: WishlistLogType, wishlist: Wishlist, product: Product): Promise<void> {\n await this.logRepository.create({\n collection: 'wishlist',\n date: new Date(),\n operation: 'UPDATE',\n documentId: wishlist.id,\n document: {\n ...this.buildWishlistLogDocument(wishlist, type),\n ...this.buildProductLogData(product),\n },\n })\n }\n\n private getOperationTypeFromWishlistLogType(type: WishlistLogType): 'CREATE' | 'UPDATE' | 'DELETE' {\n if (type === WishlistLogType.CREATE) return 'CREATE'\n\n if (type === WishlistLogType.UPDATE) return 'UPDATE'\n\n return 'DELETE'\n }\n\n private buildWishlistLogDocument(wishlist: Wishlist, type: WishlistLogType) {\n return {\n id: wishlist.id,\n shop: this.shop,\n name: wishlist.name,\n description: wishlist.description,\n published: wishlist.published,\n type: type,\n personType: wishlist.personType,\n personId: wishlist.personId,\n personName: wishlist.personName,\n personIsSubscriber: wishlist.personIsSubscriber,\n }\n }\n\n private buildProductLogData(product: Product) {\n return {\n productId: product.id,\n productEAN: product.EAN,\n productSKU: product.sku,\n productName: product.name,\n productBrand: product.brand,\n }\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { CategoryRepository, CouponRepository, OrderRepository } from '@infrab4a/connect'\n\n@Injectable()\nexport class CouponRepositoriesFacade {\n constructor(\n @Inject('CouponRepository') public readonly couponRepository: CouponRepository,\n @Inject('OrderRepository') public readonly orderRepository: OrderRepository,\n @Inject('CategoryRepository') public readonly categoryRepository: CategoryRepository,\n ) {}\n}\n","import { Injectable } from '@angular/core'\nimport {\n Category,\n Checkout,\n CheckoutSubscription,\n CheckoutTypes,\n Coupon,\n CouponTypes,\n Exclusivities,\n LineItem,\n Order,\n OrderStatus,\n Shops,\n User,\n Where,\n} from '@infrab4a/connect'\nimport { from, Observable, of } from 'rxjs'\nimport { concatMap, map } from 'rxjs/operators'\n\nimport { CouponRepositoriesFacade } from './coupon'\nimport { CheckCouponParams, CouponRulesValidationParams } from './coupon/types/coupon-params.type'\nimport { ConfigurationFacade } from './shared'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CouponService {\n constructor(\n private readonly repositoriesFacade: CouponRepositoriesFacade,\n private readonly configurationFacade: ConfigurationFacade,\n ) {}\n\n checkCoupon(params: CheckCouponParams): Observable<Coupon> {\n const { nickname, checkoutType, checkout, plan } = params\n\n return from(\n this.repositoriesFacade.couponRepository\n .find({\n filters: {\n nickname: { operator: Where.EQUALS, value: nickname },\n active: { operator: Where.EQUALS, value: true },\n },\n })\n .then((result) => result.data[0]),\n ).pipe(\n concatMap((coupon) => this.couponValidation(coupon, checkoutType)),\n concatMap((couponValid: Coupon) =>\n this.couponRulesValidation({ coupon: couponValid, checkoutType, checkout, plan }),\n ),\n map((couponValidated: Coupon) => couponValidated as Coupon),\n )\n }\n\n private async couponValidation(coupon: Coupon, checkoutType: CheckoutTypes) {\n if (!coupon) throw 'Cupom inválido.'\n\n if (coupon?.beginAt && coupon?.beginAt.getTime() > new Date().getTime()) throw 'Cupom inválido.'\n\n if (coupon?.expiresIn && (coupon?.expiresIn as Date).getTime() < new Date().getTime()) throw 'Cupom expirado.'\n\n const isInShop =\n coupon.shopAvailability === Shops.ALL || coupon.shopAvailability === this.configurationFacade.defaultShop\n\n if (!isInShop) throw 'Cupom inválido para loja.'\n\n const isCheckoutType = coupon.checkoutType === CheckoutTypes.ALL || coupon.checkoutType === checkoutType\n\n if (!isCheckoutType) throw 'Cupom inválido. Erro de checkout.'\n\n return coupon\n }\n\n private async couponRulesValidation(params: CouponRulesValidationParams) {\n const { coupon, checkoutType, checkout, plan } = params\n\n if (checkoutType == CheckoutTypes.SUBSCRIPTION) {\n return this.validateSubscriptionCoupon(coupon, plan)\n }\n\n return this.validateEcommerceCoupon(coupon, checkoutType, checkout)\n }\n\n private validateSubscriptionCoupon(coupon: Coupon, plan: string): Coupon {\n if (coupon.plan && coupon.plan.toUpperCase() !== plan.toUpperCase()) {\n throw 'Cupom inválido para sua assinatura.'\n }\n\n return coupon\n }\n\n private async validateEcommerceCoupon(\n coupon: Coupon,\n checkoutType: CheckoutTypes,\n checkout: Partial<Checkout>,\n ): Promise<Coupon> {\n this.validateUserEligibility(coupon, checkout?.user)\n await this.validateUsageLimits(coupon, checkoutType, checkout)\n await this.validateProductEligibility(coupon, checkout)\n\n return coupon\n }\n\n private validateUserEligibility(coupon: Coupon, user: User): void {\n const validUser = this.coupomUserValidation(coupon, user)\n\n if (!validUser) throw 'Usuário não elegível.'\n }\n\n private async validateUsageLimits(\n coupon: Coupon,\n checkoutType: CheckoutTypes,\n checkout: Partial<Checkout>,\n ): Promise<void> {\n const couponUseLimits = this.getCouponUseLimits(coupon, checkoutType, checkout.user)\n\n if (couponUseLimits.firstOrder) {\n await this.validateFirstOrderLimit(checkout.user.email)\n }\n\n if (!couponUseLimits.unlimited || couponUseLimits.limitedPerUser) {\n await this.validateCouponUsageLimits(coupon, couponUseLimits, checkout.user.email)\n }\n }\n\n private async validateFirstOrderLimit(userEmail: string): Promise<void> {\n const ordersUser = await this.getOrdersFromUser(userEmail.toLocaleLowerCase())\n\n if (ordersUser.length >= 1) throw 'Limite de uso atingido'\n }\n\n private async validateCouponUsageLimits(coupon: Coupon, couponUseLimits: any, userEmail: string): Promise<void> {\n const ordersCoupon = await this.getOrdersWithCoupon(coupon)\n\n if (!couponUseLimits.unlimited && couponUseLimits.total && ordersCoupon.length >= couponUseLimits.total) {\n throw 'Limite de uso atingido.'\n }\n\n if (couponUseLimits.limitedPerUser) {\n const ordersWithUser = this.countOrdersWithUser(ordersCoupon, userEmail)\n\n if (ordersWithUser > 0) throw 'Limite de uso por usuário atingido.'\n }\n }\n\n private async validateProductEligibility(coupon: Coupon, checkout: Partial<Checkout>): Promise<void> {\n const hasProductCategories = await this.hasProductCategories(coupon, checkout)\n\n if (!hasProductCategories) throw 'Seu carrinho não possui produtos elegíveis para desconto.'\n\n const hasMinSubTotal = await this.hasMinSubTotal(coupon, checkout)\n\n if (!hasMinSubTotal) {\n this.throwMinSubTotalError(coupon)\n }\n }\n\n private throwMinSubTotalError(coupon: Coupon): void {\n const formattedValue = Intl.NumberFormat('pt-BR', {\n style: 'currency',\n currency: 'BRL',\n }).format(coupon.minSubTotalValue)\n\n if (coupon.productsCategories?.length) {\n throw `Valor mínimo de ${formattedValue} não atingido na(s) categoria(s) elegíveis para o desconto.`\n }\n\n throw `Valor mínimo de ${formattedValue} não atingido.`\n }\n\n public calcDiscountSubscription(coupon: Coupon, checkout: Partial<CheckoutSubscription>): Observable<number> {\n let discount = 0\n\n if (coupon.discount.subscription.type == CouponTypes.ABSOLUTE) discount = coupon.discount.subscription.value\n else discount = checkout.subscriptionPlan.recurrencePrice * (coupon.discount.subscription.value / 100)\n\n return of(discount)\n }\n\n private async hasMinSubTotal(coupon: Coupon, checkout: Partial<Checkout>): Promise<boolean> {\n if (!coupon.minSubTotalValue) return true\n\n const lineItensDiscount = await this.getLineItensEligebleForDiscount(coupon.productsCategories, checkout)\n const subTotal = this.calcCheckoutSubtotal(lineItensDiscount, checkout.user)\n\n if (coupon.minSubTotalValue <= subTotal) return true\n\n return false\n }\n\n private async hasProductCategories(coupon: Coupon, checkout: Partial<Checkout>): Promise<boolean> {\n if (!coupon.productsCategories?.length) {\n return true\n }\n\n const couponCategories = await this.getCouponCategoriesId(coupon.productsCategories)\n const hasCategories = checkout.lineItems?.filter((item) => {\n if (item.isGift) return false\n\n if (!item.categories?.length) return true\n\n return item.categories.some((c) => couponCategories.some((cat) => cat == c))\n })\n\n return hasCategories?.length ? true : false\n }\n\n private coupomUserValidation(coupon: Coupon, user: User) {\n if (!user || coupon.exclusivityType.includes(Exclusivities.ALL_USERS)) return true\n\n const userTypes: Exclusivities[] = []\n\n if (\n coupon.exclusivityType.includes(Exclusivities.COLLABORATORS) &&\n this.emailIsFromCollaborator(user.email.toLocaleLowerCase())\n )\n userTypes.push(Exclusivities.COLLABORATORS)\n\n if (\n coupon.exclusivityType.includes(Exclusivities.SPECIFIC_USER) &&\n coupon.userExclusiveEmail.includes(user.email.toLocaleLowerCase())\n )\n userTypes.push(Exclusivities.SPECIFIC_USER)\n\n if (\n coupon.exclusivityType.includes(Exclusivities.ACTIVE_SUBSCRIBER) &&\n user.isSubscriber &&\n user.subscriptionPlan != ''\n )\n userTypes.push(Exclusivities.ACTIVE_SUBSCRIBER)\n\n if (\n user.isSubscriber &&\n user.subscriptionPlan == '' &&\n coupon.exclusivityType.includes(Exclusivities.INACTIVE_SUBSCRIBER)\n )\n userTypes.push(Exclusivities.INACTIVE_SUBSCRIBER)\n\n if (coupon.exclusivityType.includes(Exclusivities.NON_SUBSCRIBER) && !user.isSubscriber)\n userTypes.push(Exclusivities.NON_SUBSCRIBER)\n\n return coupon.exclusivityType.some((r) => userTypes.includes(r))\n }\n\n private async getCouponCategoriesId(productsCategories: string[]): Promise<Array<String>> {\n const couponCategories: Array<String> = []\n\n for (let index = 0; index < productsCategories.length; index++) {\n const category: Category & { firestoreId?: string } = await this.repositoriesFacade.categoryRepository.get({\n id: productsCategories[index],\n })\n\n if (category) {\n const children = await this.repositoriesFacade.categoryRepository.getChildren(\n parseInt(productsCategories[index]),\n )\n\n couponCategories.push(category.id, ...children.map((c) => c.id.toString()))\n }\n }\n\n return [...new Set(couponCategories)]\n }\n\n private emailIsFromCollaborator = (userEmail: string): boolean => !!userEmail?.match(/@b4a.com.br/g)\n\n private async getLineItensEligebleForDiscount(\n productsCategories: string[],\n checkout: Partial<Checkout>,\n ): Promise<LineItem[]> {\n let lineItensDiscount = []\n const couponCategories = await this.getCouponCategoriesId(productsCategories)\n\n if (productsCategories?.length) {\n lineItensDiscount = checkout.lineItems?.filter((item) => {\n if (item.isGift) return false\n\n if (item.categories?.length) {\n return item.categories.some((c) => couponCategories.some((cat) => cat == c))\n }\n\n return true\n })\n } else {\n lineItensDiscount = checkout.lineItems.filter((item) => !item.isGift)\n }\n\n return lineItensDiscount\n }\n\n private calcCheckoutSubtotal(lineItens: LineItem[], user: User): number {\n return (\n lineItens\n ?.filter((item) => !item.isGift)\n .reduce(\n (acc, curr) =>\n user?.isSubscriber && curr.price?.subscriberPrice\n ? acc + curr.price?.subscriberPrice * curr.quantity\n : acc + curr.pricePaid * curr.quantity,\n 0,\n ) || 0\n )\n }\n\n private async getOrdersWithCoupon(coupon: Coupon): Promise<Order[]> {\n return await this.repositoriesFacade.orderRepository\n .find({\n filters: {\n coupon: { id: coupon.id },\n status: { operator: Where.NOTEQUALS, value: OrderStatus.CANCELADO },\n },\n })\n .then((result) => result.data)\n }\n\n private async getOrdersFromUser(email: string) {\n return await this.repositoriesFacade.orderRepository\n .find({\n filters: {\n user: { email: { operator: Where.EQUALS, value: email } },\n status: { operator: Where.NOTEQUALS, value: OrderStatus.CANCELADO },\n },\n })\n .then((result) => result.data)\n }\n\n private countOrdersWithUser(orders: Order[], email: string): number {\n return orders.filter((o) => o.user.email == email).length\n }\n\n private getCouponUseLimits(coupon: Coupon, checkoutType: CheckoutTypes, user: User) {\n let couponUseLimits: { unlimited?: boolean; total?: number; limitedPerUser?: boolean; firstOrder?: boolean }\n\n if (checkoutType == CheckoutTypes.ECOMMERCE || checkoutType == CheckoutTypes.ALL) {\n if (\n coupon.exclusivityType.length === 1 &&\n (coupon.exclusivityType.at(0) === Exclusivities.SPECIFIC_USER ||\n coupon.exclusivityType.at(0) === Exclusivities.COLLABORATORS)\n )\n couponUseLimits = coupon.useLimits.non_subscriber\n else couponUseLimits = user?.isSubscriber ? coupon.useLimits.subscriber : coupon.useLimits.non_subscriber\n } else {\n couponUseLimits = coupon.useLimits.subscription\n }\n\n return couponUseLimits\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n CheckoutSubscription,\n CheckoutSubscriptionRepository,\n CheckoutTypes,\n Coupon,\n isNil,\n pick,\n} from '@infrab4a/connect'\nimport { Observable } from 'rxjs'\nimport { concatMap } from 'rxjs/operators'\n\n\nimport { PERSISTENCE_PROVIDER } from '../consts'\nimport { DataPersistence } from '../persistence'\n\nimport { RequiredCheckoutSubscriptionData } from './types'\nimport { CouponService } from './coupon.service'\n\n@Injectable()\nexport class CheckoutSubscriptionService {\n constructor(\n @Inject('CheckoutSubscriptionRepository')\n private readonly checkoutSubscriptionRepository: CheckoutSubscriptionRepository,\n @Inject(PERSISTENCE_PROVIDER) private readonly dataPersistence: DataPersistence,\n private readonly couponService: CouponService,\n ) {}\n\n getCheckoutSubscription(checkoutData?: RequiredCheckoutSubscriptionData): Observable<CheckoutSubscription> {\n return this.dataPersistence\n .get('checkoutSubscriptionId')\n .pipe(\n concatMap((id) =>\n !isNil(id) ? this.checkoutSubscriptionRepository.get({ id }) : this.createCheckoutSubscription(checkoutData),\n ),\n )\n }\n\n clearCheckoutSubscriptionFromSession(): Observable<void> {\n return this.dataPersistence.remove('checkoutSubscriptionId')\n }\n\n checkCoupon(nickname: string, _userEmail: string): Observable<Coupon> {\n return this.getCheckoutSubscription().pipe(\n concatMap((checkout) =>\n this.couponService\n .checkCoupon({\n nickname,\n checkoutType: CheckoutTypes.SUBSCRIPTION,\n checkout,\n plan: checkout.subscriptionPlan.name,\n })\n .pipe(),\n ),\n )\n }\n\n calcDiscountSubscription(coupon: Coupon) {\n return this.getCheckoutSubscription().pipe(\n concatMap((checkout) => this.couponService.calcDiscountSubscription(coupon, checkout).pipe()),\n )\n }\n\n private async createCheckoutSubscription(\n checkoutData?: RequiredCheckoutSubscriptionData,\n ): Promise<CheckoutSubscription> {\n const checkout = await this.checkoutSubscriptionRepository.create({\n createdAt: new Date(),\n ...CheckoutSubscription.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),\n })\n\n await this.dataPersistence.set('checkoutSubscriptionId', checkout.id).toPromise()\n\n return checkout\n }\n}\n","export class UtilHelper {\n static createSlug(name: string): string {\n return name\n .toLowerCase()\n .replace(/\\s+/g, '-')\n .replace(/[ãàáäâ]/g, 'a')\n .replace(/[ẽèéëê]/g, 'e')\n .replace(/[ìíïî]/g, 'i')\n .replace(/[õòóöô]/g, 'o')\n .replace(/[ùúüû]/g, 'u')\n .replace(/[ñ]/g, 'n')\n .replace(/[ç]/g, 'c')\n .replace(/[&]/g, 'and')\n .replace(/[^\\w-]+/g, '')\n .replace(/--+/g, '-')\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { CategoryRepository, HomeRepository, ProductRepository } from '@infrab4a/connect'\n\n@Injectable()\nexport class HomeShopRepositoriesFacade {\n constructor(\n @Inject('CategoryRepository') public readonly categoryRepository: CategoryRepository,\n @Inject('HomeRepository') public readonly homeRepository: HomeRepository,\n @Inject('ProductRepository') public readonly productRepository: ProductRepository,\n ) {}\n}\n","import { Injectable } from '@angular/core'\nimport {\n add,\n Banner,\n Category,\n Home,\n HomeCategoryGroup,\n HomeData,\n pick,\n Product,\n RequiredArgumentError,\n Shops,\n Where,\n} from '@infrab4a/connect'\nimport { forkJoin, from, Observable, of, throwError } from 'rxjs'\nimport { concatMap, map, tap } from 'rxjs/operators'\n\nimport { HomeShopRepositoriesFacade } from './home-shop'\nimport { ConfigurationFacade } from './shared'\n\ntype HomeConfigurationId = 'glamshop' | 'mens_market'\ntype BannerType = 'brand' | 'buyToWin' | 'block' | 'blog'\n\n@Injectable()\nexport class HomeShopService {\n private homeConfiguration: Home\n\n private get homeId(): HomeConfigurationId {\n if (this.configurationFacade.defaultShop === Shops.GLAMSHOP) return 'glamshop'\n\n if (this.configurationFacade.defaultShop === Shops.MENSMARKET) return 'mens_market'\n\n return null\n }\n\n constructor(\n private readonly repositoriesFacade: HomeShopRepositoriesFacade,\n private readonly configurationFacade: ConfigurationFacade,\n ) {}\n\n getHomeData(): Observable<Home> {\n return this.getHomeConfiguration().pipe(\n map((home) => (home?.data?.expiresAt > new Date() ? home : null)),\n concatMap((home) =>\n home\n ? of(home)\n : forkJoin([\n this.getDiscoverProducts(this.gender),\n this.getFeaturedProducts(this.gender),\n this.getVerticalProducts(this.gender),\n ]).pipe(\n map(([discoverProducts, featuredProducts, verticalProducts]) => ({\n discoverProducts,\n featuredProducts,\n verticalProducts,\n })),\n concatMap((data) => this.saveHomeData(data)),\n ),\n ),\n )\n }\n\n getBanners(type: BannerType): Observable<Banner[]> {\n return this.getHomeConfiguration().pipe(\n map((home) => {\n if (type === 'brand') return home.brandsCarousel\n\n if (type === 'buyToWin') return [home.buyToWinBanner]\n\n if (type === 'block') return home.blockBanners\n\n if (type === 'blog') return [home.blogBanner]\n\n return []\n }),\n )\n }\n\n getMinValueForFreeShipping(): Observable<number> {\n return this.getHomeConfiguration().pipe(map((home) => home.minValueForFreeShipping))\n }\n\n private getDiscoverProducts(_gender?: string): Observable<{ category: Category; products: Product[] }[]> {\n return this.getHomeConfiguration().pipe(\n concatMap((home) =>\n from(\n this.repositoriesFacade.categoryRepository.getCategoriesForHome({\n categoryIds: home.discoverCategories,\n shop: this.configurationFacade.defaultShop,\n }),\n ).pipe(map((groups) => groups.map(this.buildCategoryGroupWithRequiredData))),\n ),\n )\n }\n\n private getFeaturedProducts(_gender?: string): Observable<{ category: Category; products: Product[] }[]> {\n return this.getHomeConfiguration().pipe(\n concatMap((home) =>\n from(\n this.repositoriesFacade.categoryRepository.getCategoriesForHome({\n categoryIds: home.featuredCategories,\n shop: this.configurationFacade.defaultShop,\n }),\n ).pipe(map((groups) => groups.map(this.buildCategoryGroupWithRequiredData))),\n ),\n )\n }\n\n private getVerticalProducts(gender?: string): Observable<{ category: Category; products: Product[] }[]> {\n return this.getHomeConfiguration().pipe(\n concatMap((home) =>\n forkJoin(\n home.verticalCarousels.filter(Boolean).map((id) =>\n from(this.repositoriesFacade.categoryRepository.get({ id })).pipe(\n concatMap((category) =>\n from(\n this.repositoriesFacade.productRepository.find({\n filters: {\n categories: { operator: Where.IN, value: [category.id] },\n ...(gender ? { tags: { operator: Where.IN, value: [gender] } } : {}),\n },\n limits: { limit: 12 },\n }),\n ).pipe(map((products) => ({ category, products }))),\n ),\n map(({ category, products }) => ({ category, products: products.data })),\n map(this.buildCategoryGroupWithRequiredData),\n ),\n ),\n ),\n ),\n )\n }\n\n private getHomeConfiguration(): Observable<Home> {\n return of(this.homeConfiguration).pipe(\n concatMap((home) =>\n home\n ? of(home)\n : !this.homeId\n ? throwError(() => new RequiredArgumentError(['homeId']))\n : from(this.repositoriesFacade.homeRepository.get({ id: this.homeId })).pipe(\n tap((homeLoaded) => (this.homeConfiguration = homeLoaded)),\n ),\n ),\n )\n }\n\n private saveHomeData(homeData: HomeData): Observable<Home> {\n const data = {\n createdAt: new Date(),\n expiresAt: add(new Date(), { hours: 1 }),\n data: homeData,\n }\n\n return from(\n this.repositoriesFacade.homeRepository.update({\n id: this.homeId,\n data,\n }),\n ).pipe(\n tap(() => (this.homeConfiguration.data = data)),\n map(() => this.homeConfiguration),\n )\n }\n\n private buildCategoryGroupWithRequiredData = (group: HomeCategoryGroup): HomeCategoryGroup => ({\n category: Category.toInstance(pick(group?.category?.toPlain() || {}, ['id', 'name', 'slug', 'conditions'])),\n products:\n group?.products?.map((product) =>\n Product.toInstance(\n pick(product?.toPlain() || {}, [\n 'id',\n 'price',\n 'reviews',\n 'hasVariants',\n 'slug',\n 'sku',\n 'stock',\n 'costPrice',\n 'images',\n 'miniatures',\n 'name',\n 'weight',\n 'rate',\n 'type',\n 'brand',\n ]),\n ),\n ) || [],\n })\n\n private get gender() {\n return this.homeId === 'mens_market' ? 'masculino' : undefined\n }\n}\n","import { Injectable, Inject } from '@angular/core'\nimport { doc, Firestore, docSnapshots } from '@angular/fire/firestore'\nimport { Order, OrderFirestoreRepository } from '@infrab4a/connect'\nimport { Subject } from 'rxjs'\nimport { map } from 'rxjs/operators'\n\n@Injectable()\nexport class OrderService {\n orderSubject = new Subject<Order>()\n\n constructor(\n private readonly angularFirestore: Firestore,\n @Inject('OrderRepository') private readonly orderRepository: OrderFirestoreRepository,\n ) {}\n\n getOrder(id: string): Subject<Order> {\n docSnapshots(doc(this.angularFirestore, `${this.orderRepository.collectionName}/${id}`))\n .pipe(map((doc) => Order.toInstance(doc.data())))\n .subscribe((doc) => this.orderSubject.next(doc))\n\n return this.orderSubject\n }\n}\n","import { Injector, ModuleWithProviders, NgModule, Type } from '@angular/core'\nimport { FirebaseApp, FirebaseOptions, getApp, initializeApp, provideFirebaseApp } from '@angular/fire/app'\nimport { AppCheckOptions, initializeAppCheck, provideAppCheck } from '@angular/fire/app-check'\nimport { getStorage, provideStorage, Storage } from '@angular/fire/storage'\nimport {\n AxiosElasticSearchConfig,\n FileUploaderService,\n FirebaseFileUploaderService,\n isNil,\n ProductsVertexSearch,\n Shops,\n UpdateUserImage,\n UserRepository,\n VertexSearchConfig,\n} from '@infrab4a/connect'\n\nimport { AngularElasticSeachModule } from './angular-elastic-search.module'\nimport { AngularFirebaseAuthModule } from './angular-firebase-auth.module'\nimport { AngularFirestoreModule } from './angular-firestore.module'\nimport { AngularHasuraGraphQLModule, HasuraGraphQLOptions } from './angular-hasura-graphql.module'\nimport { AngularVertexSeachModule } from './angular-vertex-search.module'\nimport {\n APP_CHECK_PROVIDER,\n BACKEND_URL,\n CATEGORY_STRUCTURE,\n DEFAULT_SHOP,\n ES_CONFIG,\n FIREBASE_APP_NAME,\n FIREBASE_OPTIONS,\n HASURA_OPTIONS,\n PERSISTENCE_PROVIDER,\n VERTEX_CONFIG,\n} from './consts'\nimport { STORAGE_BASE_URL } from './consts/storage-base-url.const'\nimport { CookieDataPersistence, DataPersistence } from './persistence'\nimport {\n AuthService,\n CartService,\n CatalogService,\n CategoryService,\n CheckoutService,\n CheckoutSubscriptionService,\n CouponService,\n HomeShopService,\n OrderService,\n WishlistService,\n} from './services'\nimport { CartServicesFacade } from './services/cart'\nimport { NewCategoryStructureAdapter, OldCategoryStructureAdapter } from './services/catalog/adapters'\nimport { CatalogSearchContext } from './services/catalog/context/catalog-search.context'\nimport {\n CatalogServiceFacade,\n CatalogStrategiesFacade,\n CategoryRepositoryFacade,\n CategoryServiceFacade,\n ProductCatalogFacade,\n} from './services/catalog/facades'\nimport {\n BrandManagerHelper,\n CatalogFilterHelper,\n CatalogSortHelper,\n ProductFieldsHelper,\n} from './services/catalog/helpers'\nimport {\n CatalogHelpersService,\n CatalogOperationsFacade,\n CatalogRepositoryService,\n ProductManagementFacade,\n} from './services/catalog/services'\nimport { CategorySearchStrategy, ProfileSearchStrategy, TermSearchStrategy } from './services/catalog/strategies'\nimport { CheckoutDependenciesFacade, CheckoutRepositoriesFacade } from './services/checkout'\nimport { CouponRepositoriesFacade } from './services/coupon'\nimport { HomeShopRepositoriesFacade } from './services/home-shop'\nimport { ConfigurationFacade } from './services/shared'\nimport { FirebaseAppConfig } from './types'\n\n@NgModule({\n imports: [\n provideFirebaseApp((injector: Injector) => {\n const appName = injector.get<string>(FIREBASE_APP_NAME)\n\n try {\n const app = appName ? getApp(appName) : getApp()\n\n return app\n } catch (error) {\n console.warn('Firebase app not found, initializing new app')\n\n if (error instanceof Error) console.error(error.message)\n\n return initializeApp(injector.get(FIREBASE_OPTIONS), appName)\n }\n }),\n provideAppCheck((injector: Injector) => {\n const app = injector.get(FirebaseApp)\n\n try {\n const provider = injector.get<AppCheckOptions['provider']>(APP_CHECK_PROVIDER)\n\n if (provider)\n return initializeAppCheck(app, {\n provider,\n isTokenAutoRefreshEnabled: true,\n })\n } catch (error) {\n if (error instanceof Error) console.error(error.message)\n\n return\n }\n }),\n provideStorage((injector: Injector) => getStorage(injector.get(FirebaseApp))),\n AngularElasticSeachModule,\n AngularVertexSeachModule,\n AngularFirebaseAuthModule,\n AngularFirestoreModule,\n AngularHasuraGraphQLModule,\n ],\n providers: [\n AuthService,\n CartService,\n CatalogService,\n CategoryService,\n CheckoutService,\n CheckoutSubscriptionService,\n CouponService,\n HomeShopService,\n OrderService,\n WishlistService,\n ConfigurationFacade,\n CartServicesFacade,\n CheckoutRepositoriesFacade,\n CheckoutDependenciesFacade,\n CategoryRepositoryFacade,\n ProductCatalogFacade,\n CatalogServiceFacade,\n CategoryServiceFacade,\n CatalogStrategiesFacade,\n CatalogOperationsFacade,\n ProductManagementFacade,\n {\n provide: 'ProductServicesFacade',\n useFactory: (productStockNotificationRepository: any, categoryRepository: any, productSearch: any) => ({\n productStockNotificationRepository,\n categoryRepository,\n productSearch,\n }),\n deps: ['ProductStockNotificationRepository', 'CategoryRepository', 'ProductSearch'],\n },\n CatalogFilterHelper,\n CatalogSortHelper,\n ProductFieldsHelper,\n BrandManagerHelper,\n CatalogRepositoryService,\n CatalogHelpersService,\n CategorySearchStrategy,\n TermSearchStrategy,\n ProfileSearchStrategy,\n {\n provide: CatalogSearchContext,\n useFactory: (\n categoryStrategy: CategorySearchStrategy,\n termStrategy: TermSearchStrategy,\n profileStrategy: ProfileSearchStrategy,\n ) => {\n return new CatalogSearchContext(categoryStrategy, termStrategy, profileStrategy)\n },\n deps: [CategorySearchStrategy, TermSearchStrategy, ProfileSearchStrategy],\n },\n {\n provide: UpdateUserImage,\n useFactory: (userRepository: UserRepository, fileUploader: FileUploaderService) => {\n return new UpdateUserImage(userRepository, fileUploader)\n },\n deps: ['UserRepository', 'FileUploaderService'],\n },\n {\n provide: 'FileUploaderService',\n useFactory: (storage: Storage, baseUrl: string) => {\n return new FirebaseFileUploaderService(storage, baseUrl)\n },\n deps: [Storage, STORAGE_BASE_URL],\n },\n {\n provide: 'ProductSearch',\n useExisting: ProductsVertexSearch,\n },\n CouponRepositoriesFacade,\n HomeShopRepositoriesFacade,\n ],\n})\nexport class AngularConnectModule {\n static initializeApp(\n defaultShop: Shops,\n options: {\n firebase?: FirebaseOptions\n elasticSearch?: AxiosElasticSearchConfig\n vertexConfig?: VertexSearchConfig\n hasura: HasuraGraphQLOptions\n backendUrl: string\n oldCategoryStructure?: boolean\n storageBaseUrl?: string\n persistenceProvider?: Type<DataPersistence>\n appCheckProvider?: AppCheckOptions['provider']\n },\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularConnectModule> {\n return {\n ngModule: AngularConnectModule,\n providers: [\n ...this.buildCoreProviders(nameOrConfig, options),\n ...this.buildConditionalProviders(defaultShop, options),\n ],\n }\n }\n\n private static buildCoreProviders(\n nameOrConfig: string | FirebaseAppConfig,\n options: {\n appCheckProvider?: AppCheckOptions['provider']\n oldCategoryStructure?: boolean\n persistenceProvider?: Type<DataPersistence>\n },\n ) {\n return [\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\n { provide: APP_CHECK_PROVIDER, useValue: options.appCheckProvider },\n {\n provide: CATEGORY_STRUCTURE,\n useClass: this.selectCategoryStructureAdapter(options.oldCategoryStructure),\n },\n { provide: PERSISTENCE_PROVIDER, useClass: options?.persistenceProvider || CookieDataPersistence },\n ]\n }\n\n private static buildConditionalProviders(\n defaultShop: Shops,\n options: {\n firebase?: FirebaseOptions\n elasticSearch?: AxiosElasticSearchConfig\n vertexConfig?: VertexSearchConfig\n hasura: HasuraGraphQLOptions\n backendUrl: string\n storageBaseUrl?: string\n },\n ) {\n return [\n ...this.createProviderIfExists(DEFAULT_SHOP, defaultShop),\n ...this.createProviderIfExists(FIREBASE_OPTIONS, options.firebase),\n ...this.createProviderIfExists(ES_CONFIG, options.elasticSearch),\n ...this.createProviderIfExists(VERTEX_CONFIG, options.vertexConfig),\n ...this.createProviderIfExists(HASURA_OPTIONS, options.hasura),\n ...this.createProviderIfExists(BACKEND_URL, options.backendUrl),\n ...this.createProviderIfExists(STORAGE_BASE_URL, options.storageBaseUrl),\n ]\n }\n\n private static selectCategoryStructureAdapter(oldCategoryStructure?: boolean) {\n return isNil(oldCategoryStructure) || oldCategoryStructure\n ? OldCategoryStructureAdapter\n : NewCategoryStructureAdapter\n }\n\n private static createProviderIfExists(token: any, value: any) {\n return isNil(value) ? [] : [{ provide: token, useValue: value }]\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.CheckoutRepositoriesFacade","i1.CheckoutDependenciesFacade","i2.ConfigurationFacade","i1.AuthService","i2.CheckoutService","i3","i1.CartServicesFacade","i1.CatalogRepositoryService","i1.CatalogHelpersService","i1.CategorySearchStrategy","i1.TermSearchStrategy","i1.ProfileSearchStrategy","i1.ProductCatalogFacade","i1.CatalogFilterHelper","i1.CatalogSortHelper","i1.ProductFieldsHelper","i1.CatalogOperationsFacade","i2.ProductManagementFacade","i1.CouponRepositoriesFacade","i1.CouponService","i1.HomeShopRepositoriesFacade"],"mappings":"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"}