@infrab4a/connect-angular 5.1.0 → 5.2.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 (194) hide show
  1. package/angular-connect.module.d.ts +36 -26
  2. package/angular-elastic-search.module.d.ts +9 -9
  3. package/angular-firebase-auth.module.d.ts +11 -11
  4. package/angular-firestore.module.d.ts +17 -18
  5. package/angular-hasura-graphql.module.d.ts +14 -16
  6. package/angular-vertex-search.module.d.ts +9 -0
  7. package/consts/backend-url.const.d.ts +1 -1
  8. package/consts/category-structure.d.ts +1 -1
  9. package/consts/default-shop.const.d.ts +1 -1
  10. package/consts/es-config.const.d.ts +1 -1
  11. package/consts/firebase-const.d.ts +4 -3
  12. package/consts/hasura-options.const.d.ts +1 -1
  13. package/consts/index.d.ts +8 -7
  14. package/consts/persistence.const.d.ts +1 -1
  15. package/consts/storage-base-url.const.d.ts +1 -1
  16. package/consts/vertex-config.const.d.ts +1 -0
  17. package/esm2020/angular-connect.module.mjs +289 -115
  18. package/esm2020/angular-elastic-search.module.mjs +34 -34
  19. package/esm2020/angular-firebase-auth.module.mjs +141 -115
  20. package/esm2020/angular-firestore.module.mjs +541 -504
  21. package/esm2020/angular-hasura-graphql.module.mjs +333 -265
  22. package/esm2020/angular-vertex-search.module.mjs +34 -0
  23. package/esm2020/consts/backend-url.const.mjs +2 -2
  24. package/esm2020/consts/category-structure.mjs +2 -2
  25. package/esm2020/consts/default-shop.const.mjs +2 -2
  26. package/esm2020/consts/es-config.const.mjs +2 -2
  27. package/esm2020/consts/firebase-const.mjs +5 -4
  28. package/esm2020/consts/hasura-options.const.mjs +2 -2
  29. package/esm2020/consts/index.mjs +9 -8
  30. package/esm2020/consts/persistence.const.mjs +2 -2
  31. package/esm2020/consts/storage-base-url.const.mjs +2 -2
  32. package/esm2020/consts/vertex-config.const.mjs +2 -0
  33. package/esm2020/helpers/index.mjs +2 -2
  34. package/esm2020/helpers/mobile-operation-system-checker.helper.mjs +7 -7
  35. package/esm2020/index.mjs +7 -7
  36. package/esm2020/infrab4a-connect-angular.mjs +4 -4
  37. package/esm2020/interfaces/catalog-strategies.interface.mjs +2 -0
  38. package/esm2020/interfaces/category-facades.interface.mjs +2 -0
  39. package/esm2020/interfaces/index.mjs +3 -0
  40. package/esm2020/persistence/cookie-data-persistence.mjs +22 -22
  41. package/esm2020/persistence/data-persistence.mjs +2 -2
  42. package/esm2020/persistence/index.mjs +3 -3
  43. package/esm2020/services/auth.service.mjs +37 -37
  44. package/esm2020/services/cart/cart-services.facade.mjs +21 -0
  45. package/esm2020/services/cart/index.mjs +2 -0
  46. package/esm2020/services/cart.service.mjs +73 -281
  47. package/esm2020/services/catalog/adapters/category-structure.adapter.mjs +2 -2
  48. package/esm2020/services/catalog/adapters/index.mjs +4 -4
  49. package/esm2020/services/catalog/adapters/new-category-structure.adapter.mjs +43 -43
  50. package/esm2020/services/catalog/adapters/old-category-structure.adapter.mjs +23 -23
  51. package/esm2020/services/catalog/catalog.service.mjs +111 -194
  52. package/esm2020/services/catalog/category.service.mjs +39 -51
  53. package/esm2020/services/catalog/context/catalog-search.context.mjs +40 -0
  54. package/esm2020/services/catalog/enums/index.mjs +2 -2
  55. package/esm2020/services/catalog/enums/product-sorts.enum.mjs +11 -11
  56. package/esm2020/services/catalog/facades/catalog-service.facade.mjs +32 -0
  57. package/esm2020/services/catalog/facades/catalog-strategies.facade.mjs +17 -0
  58. package/esm2020/services/catalog/facades/category-repository.facade.mjs +20 -0
  59. package/esm2020/services/catalog/facades/category-service.facade.mjs +30 -0
  60. package/esm2020/services/catalog/facades/index.mjs +6 -0
  61. package/esm2020/services/catalog/facades/product-catalog.facade.mjs +21 -0
  62. package/esm2020/services/catalog/helpers/brand-manager.helper.mjs +57 -0
  63. package/esm2020/services/catalog/helpers/catalog-filter.helper.mjs +44 -0
  64. package/esm2020/services/catalog/helpers/catalog-sort.helper.mjs +52 -0
  65. package/esm2020/services/catalog/helpers/index.mjs +5 -0
  66. package/esm2020/services/catalog/helpers/product-fields.helper.mjs +39 -0
  67. package/esm2020/services/catalog/index.mjs +8 -8
  68. package/esm2020/services/catalog/models/category-with-tree.model.mjs +10 -10
  69. package/esm2020/services/catalog/models/index.mjs +2 -2
  70. package/esm2020/services/catalog/services/catalog-helpers.service.mjs +33 -0
  71. package/esm2020/services/catalog/services/catalog-operations.facade.mjs +26 -0
  72. package/esm2020/services/catalog/services/catalog-repository.service.mjs +25 -0
  73. package/esm2020/services/catalog/services/index.mjs +5 -0
  74. package/esm2020/services/catalog/services/product-management.facade.mjs +25 -0
  75. package/esm2020/services/catalog/strategies/category-search.strategy.mjs +133 -0
  76. package/esm2020/services/catalog/strategies/index.mjs +4 -0
  77. package/esm2020/services/catalog/strategies/profile-search.strategy.mjs +42 -0
  78. package/esm2020/services/catalog/strategies/term-search.strategy.mjs +126 -0
  79. package/esm2020/services/catalog/strategies/types/strategy-params.type.mjs +2 -0
  80. package/esm2020/services/catalog/types/fetch-products-options.type.mjs +2 -0
  81. package/esm2020/services/catalog/types/fetch-products-params.type.mjs +2 -0
  82. package/esm2020/services/catalog/types/fetch-products-response.type.mjs +2 -0
  83. package/esm2020/services/catalog/types/index.mjs +6 -2
  84. package/esm2020/services/catalog/types/method-params.type.mjs +2 -0
  85. package/esm2020/services/catalog/types/product-sort.type.mjs +2 -2
  86. package/esm2020/services/catalog/wishlist.service.mjs +255 -115
  87. package/esm2020/services/checkout/checkout-dependencies.facade.mjs +20 -0
  88. package/esm2020/services/checkout/checkout-repositories.facade.mjs +20 -0
  89. package/esm2020/services/checkout/index.mjs +3 -0
  90. package/esm2020/services/checkout-subscription.service.mjs +55 -50
  91. package/esm2020/services/checkout.service.mjs +106 -68
  92. package/esm2020/services/coupon/coupon-repositories.facade.mjs +24 -0
  93. package/esm2020/services/coupon/index.mjs +2 -0
  94. package/esm2020/services/coupon/types/coupon-params.type.mjs +2 -0
  95. package/esm2020/services/coupon.service.mjs +248 -235
  96. package/esm2020/services/helpers/index.mjs +2 -2
  97. package/esm2020/services/helpers/util.helper.mjs +18 -18
  98. package/esm2020/services/home-shop/home-shop-repositories.facade.mjs +24 -0
  99. package/esm2020/services/home-shop/index.mjs +2 -0
  100. package/esm2020/services/home-shop.service.mjs +119 -125
  101. package/esm2020/services/index.mjs +10 -11
  102. package/esm2020/services/order.service.mjs +30 -30
  103. package/esm2020/services/shared/configuration.facade.mjs +29 -0
  104. package/esm2020/services/shared/index.mjs +2 -0
  105. package/esm2020/services/types/index.mjs +3 -3
  106. package/esm2020/services/types/required-checkout-data.type.mjs +2 -2
  107. package/esm2020/services/types/required-checkout-subscription-data.type.mjs +2 -2
  108. package/esm2020/types/firebase-app-config.type.mjs +2 -2
  109. package/esm2020/types/index.mjs +2 -2
  110. package/fesm2015/infrab4a-connect-angular.mjs +3297 -2342
  111. package/fesm2015/infrab4a-connect-angular.mjs.map +1 -1
  112. package/fesm2020/infrab4a-connect-angular.mjs +3206 -2281
  113. package/fesm2020/infrab4a-connect-angular.mjs.map +1 -1
  114. package/helpers/index.d.ts +1 -1
  115. package/helpers/mobile-operation-system-checker.helper.d.ts +3 -3
  116. package/index.d.ts +6 -6
  117. package/interfaces/catalog-strategies.interface.d.ts +31 -0
  118. package/interfaces/category-facades.interface.d.ts +6 -0
  119. package/interfaces/index.d.ts +2 -0
  120. package/package.json +8 -6
  121. package/persistence/cookie-data-persistence.d.ts +10 -10
  122. package/persistence/data-persistence.d.ts +6 -6
  123. package/persistence/index.d.ts +2 -2
  124. package/services/auth.service.d.ts +18 -18
  125. package/services/cart/cart-services.facade.d.ts +12 -0
  126. package/services/cart/index.d.ts +1 -0
  127. package/services/cart.service.d.ts +26 -42
  128. package/services/catalog/adapters/category-structure.adapter.d.ts +4 -4
  129. package/services/catalog/adapters/index.d.ts +3 -3
  130. package/services/catalog/adapters/new-category-structure.adapter.d.ts +12 -12
  131. package/services/catalog/adapters/old-category-structure.adapter.d.ts +10 -10
  132. package/services/catalog/catalog.service.d.ts +24 -86
  133. package/services/catalog/category.service.d.ts +22 -20
  134. package/services/catalog/context/catalog-search.context.d.ts +14 -0
  135. package/services/catalog/enums/index.d.ts +1 -1
  136. package/services/catalog/enums/product-sorts.enum.d.ts +9 -9
  137. package/services/catalog/facades/catalog-service.facade.d.ts +15 -0
  138. package/services/catalog/facades/catalog-strategies.facade.d.ts +10 -0
  139. package/services/catalog/facades/category-repository.facade.d.ts +9 -0
  140. package/services/catalog/facades/category-service.facade.d.ts +15 -0
  141. package/services/catalog/facades/index.d.ts +5 -0
  142. package/services/catalog/facades/product-catalog.facade.d.ts +10 -0
  143. package/services/catalog/helpers/brand-manager.helper.d.ts +14 -0
  144. package/services/catalog/helpers/catalog-filter.helper.d.ts +8 -0
  145. package/services/catalog/helpers/catalog-sort.helper.d.ts +7 -0
  146. package/services/catalog/helpers/index.d.ts +4 -0
  147. package/services/catalog/helpers/product-fields.helper.d.ts +7 -0
  148. package/services/catalog/index.d.ts +7 -7
  149. package/services/catalog/models/category-with-tree.model.d.ts +4 -4
  150. package/services/catalog/models/index.d.ts +1 -1
  151. package/services/catalog/services/catalog-helpers.service.d.ts +17 -0
  152. package/services/catalog/services/catalog-operations.facade.d.ts +13 -0
  153. package/services/catalog/services/catalog-repository.service.d.ts +12 -0
  154. package/services/catalog/services/index.d.ts +4 -0
  155. package/services/catalog/services/product-management.facade.d.ts +12 -0
  156. package/services/catalog/strategies/category-search.strategy.d.ts +19 -0
  157. package/services/catalog/strategies/index.d.ts +3 -0
  158. package/services/catalog/strategies/profile-search.strategy.d.ts +14 -0
  159. package/services/catalog/strategies/term-search.strategy.d.ts +20 -0
  160. package/services/catalog/strategies/types/strategy-params.type.d.ts +58 -0
  161. package/services/catalog/types/fetch-products-options.type.d.ts +8 -0
  162. package/services/catalog/types/fetch-products-params.type.d.ts +25 -0
  163. package/services/catalog/types/fetch-products-response.type.d.ts +19 -0
  164. package/services/catalog/types/index.d.ts +5 -1
  165. package/services/catalog/types/method-params.type.d.ts +17 -0
  166. package/services/catalog/types/product-sort.type.d.ts +2 -2
  167. package/services/catalog/wishlist.service.d.ts +58 -38
  168. package/services/checkout/checkout-dependencies.facade.d.ts +10 -0
  169. package/services/checkout/checkout-repositories.facade.d.ts +9 -0
  170. package/services/checkout/index.d.ts +2 -0
  171. package/services/checkout-subscription.service.d.ts +19 -19
  172. package/services/checkout.service.d.ts +30 -24
  173. package/services/coupon/coupon-repositories.facade.d.ts +10 -0
  174. package/services/coupon/index.d.ts +1 -0
  175. package/services/coupon/types/coupon-params.type.d.ts +13 -0
  176. package/services/coupon.service.d.ts +36 -29
  177. package/services/helpers/index.d.ts +1 -1
  178. package/services/helpers/util.helper.d.ts +3 -3
  179. package/services/home-shop/home-shop-repositories.facade.d.ts +10 -0
  180. package/services/home-shop/index.d.ts +1 -0
  181. package/services/home-shop.service.d.ts +26 -26
  182. package/services/index.d.ts +9 -10
  183. package/services/order.service.d.ts +13 -13
  184. package/services/shared/configuration.facade.d.ts +12 -0
  185. package/services/shared/index.d.ts +1 -0
  186. package/services/types/index.d.ts +2 -2
  187. package/services/types/required-checkout-data.type.d.ts +2 -2
  188. package/services/types/required-checkout-subscription-data.type.d.ts +2 -2
  189. package/types/firebase-app-config.type.d.ts +1 -1
  190. package/types/index.d.ts +1 -1
  191. package/esm2020/services/shipping.service.mjs +0 -96
  192. package/esm2020/services/types/shipping-methods.type.mjs +0 -2
  193. package/services/shipping.service.d.ts +0 -19
  194. package/services/types/shipping-methods.type.d.ts +0 -12
@@ -0,0 +1,7 @@
1
+ import { Product, RepositoryOrderBy } from '@infrab4a/connect';
2
+ import * as i0 from "@angular/core";
3
+ export declare class CatalogSortHelper {
4
+ buildSortQuery(sort: string): RepositoryOrderBy<Product>;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<CatalogSortHelper, never>;
6
+ static ɵprov: i0.ɵɵInjectableDeclaration<CatalogSortHelper>;
7
+ }
@@ -0,0 +1,4 @@
1
+ export * from './brand-manager.helper';
2
+ export * from './catalog-filter.helper';
3
+ export * from './catalog-sort.helper';
4
+ export * from './product-fields.helper';
@@ -0,0 +1,7 @@
1
+ import { NonFunctionPropertyNames, Product } from '@infrab4a/connect';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ProductFieldsHelper {
4
+ getStandardFields(): NonFunctionPropertyNames<Product>[];
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProductFieldsHelper, never>;
6
+ static ɵprov: i0.ɵɵInjectableDeclaration<ProductFieldsHelper>;
7
+ }
@@ -1,7 +1,7 @@
1
- export * from './adapters';
2
- export * from './catalog.service';
3
- export * from './category.service';
4
- export * from './enums';
5
- export * from './models';
6
- export * from './types';
7
- export * from './wishlist.service';
1
+ export * from './adapters';
2
+ export * from './catalog.service';
3
+ export * from './category.service';
4
+ export * from './enums';
5
+ export * from './models';
6
+ export * from './types';
7
+ export * from './wishlist.service';
@@ -1,4 +1,4 @@
1
- import { Category } from '@infrab4a/connect';
2
- export declare class CategoryWithTree extends Category {
3
- children?: CategoryWithTree[];
4
- }
1
+ import { Category } from '@infrab4a/connect';
2
+ export declare class CategoryWithTree extends Category {
3
+ children?: CategoryWithTree[];
4
+ }
@@ -1 +1 @@
1
- export * from './category-with-tree.model';
1
+ export * from './category-with-tree.model';
@@ -0,0 +1,17 @@
1
+ import { ProductServicesFacade } from '../../../interfaces';
2
+ import { BrandManagerHelper, CatalogFilterHelper, CatalogSortHelper, ProductFieldsHelper } from '../helpers';
3
+ import { CatalogOperationsFacade } from './catalog-operations.facade';
4
+ import { ProductManagementFacade } from './product-management.facade';
5
+ import * as i0 from "@angular/core";
6
+ export declare class CatalogHelpersService {
7
+ private readonly catalogOperations;
8
+ private readonly productManagement;
9
+ constructor(catalogOperations: CatalogOperationsFacade, productManagement: ProductManagementFacade);
10
+ getFilterHelper(): CatalogFilterHelper;
11
+ getSortHelper(): CatalogSortHelper;
12
+ getFieldsHelper(): ProductFieldsHelper;
13
+ getBrandManager(): BrandManagerHelper;
14
+ getProductServices(): ProductServicesFacade;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<CatalogHelpersService, never>;
16
+ static ɵprov: i0.ɵɵInjectableDeclaration<CatalogHelpersService>;
17
+ }
@@ -0,0 +1,13 @@
1
+ import { CatalogFilterHelper, CatalogSortHelper, ProductFieldsHelper } from '../helpers';
2
+ import * as i0 from "@angular/core";
3
+ export declare class CatalogOperationsFacade {
4
+ private readonly filterHelper;
5
+ private readonly sortHelper;
6
+ private readonly fieldsHelper;
7
+ constructor(filterHelper: CatalogFilterHelper, sortHelper: CatalogSortHelper, fieldsHelper: ProductFieldsHelper);
8
+ getFilterHelper(): CatalogFilterHelper;
9
+ getSortHelper(): CatalogSortHelper;
10
+ getFieldsHelper(): ProductFieldsHelper;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<CatalogOperationsFacade, never>;
12
+ static ɵprov: i0.ɵɵInjectableDeclaration<CatalogOperationsFacade>;
13
+ }
@@ -0,0 +1,12 @@
1
+ import { ProductServicesFacade } from '../../../interfaces';
2
+ import { ProductCatalogFacade } from '../facades';
3
+ import * as i0 from "@angular/core";
4
+ export declare class CatalogRepositoryService {
5
+ private readonly productCatalog;
6
+ private readonly productServices;
7
+ constructor(productCatalog: ProductCatalogFacade, productServices: ProductServicesFacade);
8
+ getProductCatalog(): ProductCatalogFacade;
9
+ getProductServices(): ProductServicesFacade;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<CatalogRepositoryService, never>;
11
+ static ɵprov: i0.ɵɵInjectableDeclaration<CatalogRepositoryService>;
12
+ }
@@ -0,0 +1,4 @@
1
+ export { CatalogHelpersService } from './catalog-helpers.service';
2
+ export { CatalogOperationsFacade } from './catalog-operations.facade';
3
+ export * from './catalog-repository.service';
4
+ export { ProductManagementFacade } from './product-management.facade';
@@ -0,0 +1,12 @@
1
+ import { ProductServicesFacade } from '../../../interfaces';
2
+ import { BrandManagerHelper } from '../helpers';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ProductManagementFacade {
5
+ private readonly brandManager;
6
+ private readonly productServices;
7
+ constructor(brandManager: BrandManagerHelper, productServices: ProductServicesFacade);
8
+ getBrandManager(): BrandManagerHelper;
9
+ getProductServices(): ProductServicesFacade;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProductManagementFacade, never>;
11
+ static ɵprov: i0.ɵɵInjectableDeclaration<ProductManagementFacade>;
12
+ }
@@ -0,0 +1,19 @@
1
+ import { Product, RepositoryCacheOptions, RepositoryFindResult, Shops } from '@infrab4a/connect';
2
+ import { CatalogSearchParams, CatalogSearchStrategy } from '../../../interfaces';
3
+ import { CatalogHelpersService, CatalogRepositoryService } from '../services';
4
+ import * as i0 from "@angular/core";
5
+ export declare class CategorySearchStrategy implements CatalogSearchStrategy {
6
+ private readonly repositoryService;
7
+ private readonly helpersService;
8
+ constructor(repositoryService: CatalogRepositoryService, helpersService: CatalogHelpersService);
9
+ search(params: CatalogSearchParams, shop: Shops, optionsCache?: {
10
+ cache?: RepositoryCacheOptions;
11
+ }): Promise<RepositoryFindResult<Product>>;
12
+ private searchWithMostRelevant;
13
+ private searchDefault;
14
+ private getProductIds;
15
+ private findAndSortByMostRelevant;
16
+ private sortProductsByRelevance;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<CategorySearchStrategy, never>;
18
+ static ɵprov: i0.ɵɵInjectableDeclaration<CategorySearchStrategy>;
19
+ }
@@ -0,0 +1,3 @@
1
+ export * from './category-search.strategy';
2
+ export * from './profile-search.strategy';
3
+ export * from './term-search.strategy';
@@ -0,0 +1,14 @@
1
+ import { Product, RepositoryCacheOptions, RepositoryFindResult, Shops } from '@infrab4a/connect';
2
+ import { CatalogSearchParams, CatalogSearchStrategy } from '../../../interfaces';
3
+ import { CatalogHelpersService, CatalogRepositoryService } from '../services';
4
+ import * as i0 from "@angular/core";
5
+ export declare class ProfileSearchStrategy implements CatalogSearchStrategy {
6
+ private readonly repositoryService;
7
+ private readonly helpersService;
8
+ constructor(repositoryService: CatalogRepositoryService, helpersService: CatalogHelpersService);
9
+ search(params: CatalogSearchParams, shop: Shops, optionsCache?: {
10
+ cache?: RepositoryCacheOptions;
11
+ }): Promise<RepositoryFindResult<Product>>;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProfileSearchStrategy, never>;
13
+ static ɵprov: i0.ɵɵInjectableDeclaration<ProfileSearchStrategy>;
14
+ }
@@ -0,0 +1,20 @@
1
+ import { Product, RepositoryCacheOptions, RepositoryFindResult, Shops } from '@infrab4a/connect';
2
+ import { CatalogSearchParams, CatalogSearchStrategy } from '../../../interfaces';
3
+ import { CatalogHelpersService, CatalogRepositoryService } from '../services';
4
+ import * as i0 from "@angular/core";
5
+ export declare class TermSearchStrategy implements CatalogSearchStrategy {
6
+ private readonly repositoryService;
7
+ private readonly helpersService;
8
+ private productsByTerm;
9
+ constructor(repositoryService: CatalogRepositoryService, helpersService: CatalogHelpersService);
10
+ search(params: CatalogSearchParams, shop: Shops, _optionsCache?: {
11
+ cache?: RepositoryCacheOptions;
12
+ }): Promise<RepositoryFindResult<Product>>;
13
+ private searchWithMostRelevant;
14
+ private searchDefault;
15
+ private sortByTermRelevance;
16
+ private getDetailedProducts;
17
+ private findCatalogIdsBySearch;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<TermSearchStrategy, never>;
19
+ static ɵprov: i0.ɵɵInjectableDeclaration<TermSearchStrategy>;
20
+ }
@@ -0,0 +1,58 @@
1
+ import { RepositoryCacheOptions, Shops } from '@infrab4a/connect';
2
+ export type SearchWithMostRelevantParams = {
3
+ category: any;
4
+ filters: any;
5
+ limits: any;
6
+ shop: Shops;
7
+ mainGender: any;
8
+ optionsCache: {
9
+ cache?: RepositoryCacheOptions;
10
+ } | undefined;
11
+ fields: any;
12
+ };
13
+ export type SearchDefaultParams = {
14
+ category: any;
15
+ filters: any;
16
+ limits: any;
17
+ shop: Shops;
18
+ mainGender: any;
19
+ sort: any;
20
+ optionsCache: {
21
+ cache?: RepositoryCacheOptions;
22
+ } | undefined;
23
+ fields: any;
24
+ };
25
+ export type FindAndSortByMostRelevantParams = {
26
+ mostRelevants: string[];
27
+ productIds: string[];
28
+ filters: any;
29
+ limits: any;
30
+ shop: Shops;
31
+ mainGender: any;
32
+ optionsCache: {
33
+ cache?: RepositoryCacheOptions;
34
+ } | undefined;
35
+ fields: any;
36
+ };
37
+ export type TermSearchMostRelevantParams = {
38
+ productIds: string[];
39
+ filters: any;
40
+ limits: any;
41
+ mainGender: any;
42
+ shop: Shops;
43
+ };
44
+ export type TermSearchDefaultParams = {
45
+ productIds: string[];
46
+ filters: any;
47
+ limits: any;
48
+ mainGender: any;
49
+ shop: Shops;
50
+ fields: any;
51
+ };
52
+ export type SortByTermRelevanceParams = {
53
+ productIds: string[];
54
+ totalResult: any;
55
+ limits: any;
56
+ filters: any;
57
+ fieldsHelper: any;
58
+ };
@@ -0,0 +1,8 @@
1
+ import { ProductGender } from '@infrab4a/connect';
2
+ import { ProductSort } from './product-sort.type';
3
+ export type FetchProductsOptions = {
4
+ page?: number;
5
+ perPage?: number;
6
+ sort?: ProductSort;
7
+ mainGender?: ProductGender;
8
+ };
@@ -0,0 +1,25 @@
1
+ import { Category } from '@infrab4a/connect';
2
+ import { CatalogFilters } from '../../../interfaces';
3
+ import { FetchProductsOptions } from './fetch-products-options.type';
4
+ export type FetchProductsMainParams<T extends Category> = {
5
+ category?: T;
6
+ profile?: string[];
7
+ term?: string;
8
+ };
9
+ export type FetchProductsParams<T extends Category> = FetchProductsOptions & ({
10
+ category: FetchProductsMainParams<T>['category'];
11
+ filters?: CatalogFilters & {
12
+ customOptions?: never;
13
+ };
14
+ } | {
15
+ profile: FetchProductsMainParams<T>['profile'];
16
+ filters?: CatalogFilters & {
17
+ customOptions?: never;
18
+ tags?: never;
19
+ };
20
+ } | {
21
+ term: FetchProductsMainParams<T>['term'];
22
+ filters?: CatalogFilters & {
23
+ customOptions?: never;
24
+ };
25
+ });
@@ -0,0 +1,19 @@
1
+ import { Product } from '@infrab4a/connect';
2
+ export type FetchProductsResponse = {
3
+ products: {
4
+ data: Product[];
5
+ total: number;
6
+ };
7
+ pages: number;
8
+ prices: {
9
+ price: {
10
+ min: number;
11
+ max: number;
12
+ };
13
+ subscriberPrice: {
14
+ min: number;
15
+ max: number;
16
+ };
17
+ };
18
+ brands?: string[];
19
+ };
@@ -1 +1,5 @@
1
- export * from './product-sort.type';
1
+ export * from './fetch-products-options.type';
2
+ export * from './fetch-products-params.type';
3
+ export * from './fetch-products-response.type';
4
+ export * from './method-params.type';
5
+ export * from './product-sort.type';
@@ -0,0 +1,17 @@
1
+ import { Category, Product, Shops } from '@infrab4a/connect';
2
+ import { CatalogSearchParams } from '../../../interfaces';
3
+ import { FetchProductsParams } from './fetch-products-params.type';
4
+ export type StockNotificationParams = {
5
+ shop: Shops;
6
+ productId: string;
7
+ name: string;
8
+ email: string;
9
+ };
10
+ export type BuildResponseParams<T extends Category = Category> = {
11
+ data: Product[];
12
+ total: number;
13
+ maximum: any;
14
+ minimal: any;
15
+ searchParams: CatalogSearchParams;
16
+ options: FetchProductsParams<T>;
17
+ };
@@ -1,2 +1,2 @@
1
- import { ProductSorts } from '../enums';
2
- export type ProductSort = `${ProductSorts}`;
1
+ import { ProductSorts } from '../enums';
2
+ export type ProductSort = `${ProductSorts}`;
@@ -1,38 +1,58 @@
1
- import { CategoryFilterRepository, CategoryRepository, ProductRepository, ProductsIndex, Shops, Wishlist, WishlistRepository } from '@infrab4a/connect';
2
- import { CatalogService } from './catalog.service';
3
- import { CategoryService } from './category.service';
4
- import * as i0 from "@angular/core";
5
- export declare class WishlistService {
6
- private readonly wishlistRepository;
7
- private readonly shop;
8
- private catalogService;
9
- private categoryService;
10
- constructor(wishlistRepository: WishlistRepository, shop: Shops, productRepository: ProductRepository, categoryFilterRepository: CategoryFilterRepository, categoryRepository: CategoryRepository, productIndex: ProductsIndex);
11
- getCatalogService(): CatalogService<import("@infrab4a/connect").Category>;
12
- getCategoryService(): CategoryService;
13
- create({ personId, title, description, userFullName, userPhoto, theme, bannerUrl, }: {
14
- personId: string;
15
- title: string;
16
- description: string;
17
- userFullName: string;
18
- userPhoto?: string;
19
- theme?: string;
20
- bannerUrl?: string;
21
- }): Promise<Wishlist>;
22
- update({ id, title, description, userFullName, userPhoto, theme, bannerUrl, }: {
23
- id: string;
24
- title: string;
25
- description: string;
26
- userFullName: string;
27
- userPhoto?: string;
28
- theme?: string;
29
- bannerUrl?: string;
30
- }): Promise<Wishlist>;
31
- delete(wishlistId: string): Promise<void>;
32
- getWishlistBySlug(slug: string): Promise<Wishlist>;
33
- getWishlistsByPerson(personId: string): Promise<Wishlist[]>;
34
- addProduct(wishlistId: string, productId: string): Promise<Wishlist>;
35
- removeProduct(wishlistId: string, productId: string): Promise<Wishlist>;
36
- static ɵfac: i0.ɵɵFactoryDeclaration<WishlistService, never>;
37
- static ɵprov: i0.ɵɵInjectableDeclaration<WishlistService>;
38
- }
1
+ import { LogRepository, PersonType, Shops, Wishlist, WishlistRepository } from '@infrab4a/connect';
2
+ import { CatalogService } from './catalog.service';
3
+ import { CategoryService } from './category.service';
4
+ import { CatalogServiceFacade, CategoryServiceFacade } from './facades';
5
+ import * as i0 from "@angular/core";
6
+ export declare class WishlistService {
7
+ private readonly wishlistRepository;
8
+ private readonly shop;
9
+ private readonly logRepository;
10
+ private catalogService;
11
+ private categoryService;
12
+ constructor(wishlistRepository: WishlistRepository, shop: Shops, logRepository: LogRepository);
13
+ initializeServices(catalogServiceFacade: CatalogServiceFacade, categoryServiceFacade: CategoryServiceFacade): void;
14
+ getCatalogService(): CatalogService<import("@infrab4a/connect").Category>;
15
+ getCategoryService(): CategoryService;
16
+ create({ personId, title, description, published, userFullName, userPhoto, theme, bannerUrl, personType, personIsSubscriber, }: {
17
+ personId: string;
18
+ title: string;
19
+ description: string;
20
+ published: boolean;
21
+ userFullName: string;
22
+ userPhoto?: string;
23
+ theme?: string;
24
+ bannerUrl?: string;
25
+ personType?: PersonType;
26
+ personIsSubscriber?: boolean;
27
+ }): Promise<Wishlist>;
28
+ private buildWishlistData;
29
+ private findExistingWishlistByPersonId;
30
+ private createNewWishlist;
31
+ update({ id, title, description, published, userFullName, userPhoto, theme, bannerUrl, personType, personIsSubscriber, }: {
32
+ id: string;
33
+ title: string;
34
+ description: string;
35
+ published: boolean;
36
+ userFullName: string;
37
+ userPhoto?: string;
38
+ theme?: string;
39
+ bannerUrl?: string;
40
+ personType?: PersonType;
41
+ personIsSubscriber?: boolean;
42
+ }): Promise<Wishlist>;
43
+ delete(wishlistId: string): Promise<void>;
44
+ getWishlistBySlug(slug: string): Promise<Wishlist>;
45
+ getWishlistsByPerson(personId: string): Promise<Wishlist[]>;
46
+ addProduct(wishlistId: string, productId: string): Promise<Wishlist>;
47
+ removeProduct(wishlistId: string, productId: string): Promise<Wishlist>;
48
+ private findById;
49
+ private findProductById;
50
+ private createWishlistLog;
51
+ private createWishlistOperationLog;
52
+ private createWishlistProductLog;
53
+ private getOperationTypeFromWishlistLogType;
54
+ private buildWishlistLogDocument;
55
+ private buildProductLogData;
56
+ static ɵfac: i0.ɵɵFactoryDeclaration<WishlistService, never>;
57
+ static ɵprov: i0.ɵɵInjectableDeclaration<WishlistService>;
58
+ }
@@ -0,0 +1,10 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { DataPersistence } from '../../persistence';
3
+ import * as i0 from "@angular/core";
4
+ export declare class CheckoutDependenciesFacade {
5
+ readonly dataPersistence: DataPersistence;
6
+ readonly httpClient: HttpClient;
7
+ constructor(dataPersistence: DataPersistence, httpClient: HttpClient);
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<CheckoutDependenciesFacade, never>;
9
+ static ɵprov: i0.ɵɵInjectableDeclaration<CheckoutDependenciesFacade>;
10
+ }
@@ -0,0 +1,9 @@
1
+ import { CheckoutRepository, UserRepository } from '@infrab4a/connect';
2
+ import * as i0 from "@angular/core";
3
+ export declare class CheckoutRepositoriesFacade {
4
+ readonly checkoutRepository: CheckoutRepository;
5
+ readonly userRepository: UserRepository;
6
+ constructor(checkoutRepository: CheckoutRepository, userRepository: UserRepository);
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<CheckoutRepositoriesFacade, never>;
8
+ static ɵprov: i0.ɵɵInjectableDeclaration<CheckoutRepositoriesFacade>;
9
+ }
@@ -0,0 +1,2 @@
1
+ export { CheckoutRepositoriesFacade } from './checkout-repositories.facade';
2
+ export { CheckoutDependenciesFacade } from './checkout-dependencies.facade';
@@ -1,19 +1,19 @@
1
- import { CheckoutSubscription, CheckoutSubscriptionRepository, Coupon } from '@infrab4a/connect';
2
- import { Observable } from 'rxjs';
3
- import { RequiredCheckoutSubscriptionData } from './types';
4
- import { DataPersistence } from '../persistence';
5
- import { CouponService } from './coupon.service';
6
- import * as i0 from "@angular/core";
7
- export declare class CheckoutSubscriptionService {
8
- private readonly checkoutSubscriptionRepository;
9
- private readonly dataPersistence;
10
- private readonly couponService;
11
- constructor(checkoutSubscriptionRepository: CheckoutSubscriptionRepository, dataPersistence: DataPersistence, couponService: CouponService);
12
- getCheckoutSubscription(checkoutData?: RequiredCheckoutSubscriptionData): Observable<CheckoutSubscription>;
13
- clearCheckoutSubscriptionFromSession(): Observable<void>;
14
- checkCoupon(nickname: string, userEmail: string): Observable<Coupon>;
15
- calcDiscountSubscription(coupon: Coupon): Observable<number>;
16
- private createCheckoutSubscription;
17
- static ɵfac: i0.ɵɵFactoryDeclaration<CheckoutSubscriptionService, never>;
18
- static ɵprov: i0.ɵɵInjectableDeclaration<CheckoutSubscriptionService>;
19
- }
1
+ import { CheckoutSubscription, CheckoutSubscriptionRepository, Coupon } from '@infrab4a/connect';
2
+ import { Observable } from 'rxjs';
3
+ import { DataPersistence } from '../persistence';
4
+ import { RequiredCheckoutSubscriptionData } from './types';
5
+ import { CouponService } from './coupon.service';
6
+ import * as i0 from "@angular/core";
7
+ export declare class CheckoutSubscriptionService {
8
+ private readonly checkoutSubscriptionRepository;
9
+ private readonly dataPersistence;
10
+ private readonly couponService;
11
+ constructor(checkoutSubscriptionRepository: CheckoutSubscriptionRepository, dataPersistence: DataPersistence, couponService: CouponService);
12
+ getCheckoutSubscription(checkoutData?: RequiredCheckoutSubscriptionData): Observable<CheckoutSubscription>;
13
+ clearCheckoutSubscriptionFromSession(): Observable<void>;
14
+ checkCoupon(nickname: string, _userEmail: string): Observable<Coupon>;
15
+ calcDiscountSubscription(coupon: Coupon): Observable<number>;
16
+ private createCheckoutSubscription;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<CheckoutSubscriptionService, never>;
18
+ static ɵprov: i0.ɵɵInjectableDeclaration<CheckoutSubscriptionService>;
19
+ }
@@ -1,24 +1,30 @@
1
- import { Checkout, CheckoutRepository, CheckoutTypes, Coupon, Shops, User, UserRepository } from '@infrab4a/connect';
2
- import { Observable } from 'rxjs';
3
- import { DataPersistence } from '../persistence';
4
- import { CouponService } from './coupon.service';
5
- import { RequiredCheckoutData } from './types';
6
- import * as i0 from "@angular/core";
7
- export declare class CheckoutService {
8
- private readonly couponService;
9
- private readonly checkoutRepository;
10
- private readonly userRepository;
11
- private readonly defaultShop;
12
- private readonly dataPersistence;
13
- constructor(couponService: CouponService, checkoutRepository: CheckoutRepository, userRepository: UserRepository, defaultShop: Shops, dataPersistence: DataPersistence);
14
- getCheckout(checkoutData?: RequiredCheckoutData): Observable<Checkout>;
15
- getUserByCheckout(checkoutId: string): Observable<User>;
16
- updateCheckoutLineItems(checkout: Partial<Checkout>): Observable<Checkout>;
17
- updateCheckoutUser(checkout: Partial<Checkout>): Observable<Checkout>;
18
- clearCheckoutFromSession(): Observable<void>;
19
- calcDiscount(coupon: Coupon): Observable<number>;
20
- checkCoupon(nickname: string, checkoutType: CheckoutTypes): Observable<Coupon>;
21
- private createCheckout;
22
- static ɵfac: i0.ɵɵFactoryDeclaration<CheckoutService, never>;
23
- static ɵprov: i0.ɵɵInjectableDeclaration<CheckoutService>;
24
- }
1
+ import { Checkout, CheckoutPayloadRequest, CheckoutResponse, CheckoutStockValidation, CheckoutTypes, Coupon, ShippingMethodResponse, ShippingProductRequest, User, UserAddress } from '@infrab4a/connect';
2
+ import { Observable } from 'rxjs';
3
+ import { RequiredCheckoutData } from './types';
4
+ import { CheckoutDependenciesFacade, CheckoutRepositoriesFacade } from './checkout';
5
+ import { ConfigurationFacade } from './shared';
6
+ import * as i0 from "@angular/core";
7
+ export declare class CheckoutService {
8
+ private readonly repositoriesFacade;
9
+ private readonly dependenciesFacade;
10
+ private readonly configurationFacade;
11
+ private checkoutUrl;
12
+ constructor(repositoriesFacade: CheckoutRepositoriesFacade, dependenciesFacade: CheckoutDependenciesFacade, configurationFacade: ConfigurationFacade);
13
+ getCheckout(checkoutData?: RequiredCheckoutData): Observable<Checkout>;
14
+ getUserByCheckout(checkoutId: string): Observable<User>;
15
+ updateCheckoutLineItems(checkout: Partial<Checkout>): Observable<Checkout>;
16
+ updateCheckoutUser(checkout: Partial<Checkout>): Observable<Checkout>;
17
+ clearCheckoutFromSession(): Observable<void>;
18
+ resetCheckoutValues(): Observable<Checkout>;
19
+ applyCouponDiscount(nickname: string, checkoutType: CheckoutTypes): Observable<Coupon>;
20
+ removeCouponDiscount(): Observable<Checkout>;
21
+ validateStockProducts(): Observable<CheckoutStockValidation>;
22
+ selectShippingAddress(address: UserAddress): Observable<Checkout>;
23
+ getAvailableShippingForProduct(productShipping: ShippingProductRequest): Observable<ShippingMethodResponse[]>;
24
+ getAvailableShippingForCheckout(): Observable<ShippingMethodResponse[]>;
25
+ selectShipping(option: string): Observable<Checkout>;
26
+ createOrder(checkoutPayload: CheckoutPayloadRequest, paymentProvider: string, applicationVersion: string): Observable<CheckoutResponse>;
27
+ private createCheckout;
28
+ static ɵfac: i0.ɵɵFactoryDeclaration<CheckoutService, never>;
29
+ static ɵprov: i0.ɵɵInjectableDeclaration<CheckoutService>;
30
+ }
@@ -0,0 +1,10 @@
1
+ import { CategoryRepository, CouponRepository, OrderRepository } from '@infrab4a/connect';
2
+ import * as i0 from "@angular/core";
3
+ export declare class CouponRepositoriesFacade {
4
+ readonly couponRepository: CouponRepository;
5
+ readonly orderRepository: OrderRepository;
6
+ readonly categoryRepository: CategoryRepository;
7
+ constructor(couponRepository: CouponRepository, orderRepository: OrderRepository, categoryRepository: CategoryRepository);
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<CouponRepositoriesFacade, never>;
9
+ static ɵprov: i0.ɵɵInjectableDeclaration<CouponRepositoriesFacade>;
10
+ }
@@ -0,0 +1 @@
1
+ export { CouponRepositoriesFacade } from './coupon-repositories.facade';
@@ -0,0 +1,13 @@
1
+ import { Checkout, CheckoutTypes, Coupon } from '@infrab4a/connect';
2
+ export type CheckCouponParams = {
3
+ nickname: string;
4
+ checkoutType: CheckoutTypes;
5
+ checkout: Partial<Checkout>;
6
+ plan: string;
7
+ };
8
+ export type CouponRulesValidationParams = {
9
+ coupon: Coupon;
10
+ checkoutType: CheckoutTypes;
11
+ checkout: Partial<Checkout>;
12
+ plan: string;
13
+ };