@infrab4a/connect-angular 4.9.3 → 4.10.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.
@@ -1,11 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
- import { NgModule, InjectionToken, PLATFORM_ID, Injectable, Inject } from '@angular/core';
2
+ import { InjectionToken, NgModule, PLATFORM_ID, Injectable, Inject } from '@angular/core';
3
3
  import * as i1$4 from '@angular/fire/app';
4
4
  import { FirebaseApp, provideFirebaseApp, getApp, initializeApp } from '@angular/fire/app';
5
5
  import * as i2 from '@angular/fire/storage';
6
6
  import { Storage, provideStorage, getStorage } from '@angular/fire/storage';
7
7
  import * as i1$2 from '@infrab4a/connect';
8
- import { ProductsIndex, AxiosAdapter, Authentication, AuthenticationFirebaseAuthService, Register, RegisterFirebaseAuthService, SignOut, RecoveryPassword, ConnectFirestoreService, UserBeautyProfileFirestoreRepository, Buy2WinFirestoreRepository, CategoryFirestoreRepository, CheckoutFirestoreRepository, CheckoutSubscriptionFirestoreRepository, CouponFirestoreRepository, CampaignHashtagFirestoreRepository, CampaignDashboardFirestoreRepository, SubscriptionEditionFirestoreRepository, HomeFirestoreRepository, LeadFirestoreRepository, LegacyOrderFirestoreRepository, ShopMenuFirestoreRepository, OrderFirestoreRepository, PaymentFirestoreRepository, ProductFirestoreRepository, ShopSettingsFirestoreRepository, SubscriptionPaymentFirestoreRepository, SubscriptionPlanFirestoreRepository, SubscriptionProductFirestoreRepository, SubscriptionFirestoreRepository, UserFirestoreRepository, UserAddressFirestoreRepository, UserPaymentMethodFirestoreRepository, SubscriptionMaterializationFirestoreRepository, SubscriptionSummaryFirestoreRepository, ProductVariantFirestoreRepository, OrderBlockedFirestoreRepository, CategoryHasuraGraphQLRepository, ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository, ProductReviewsHasuraGraphQLRepository, VariantHasuraGraphQLRepository, ProductStockNotificationHasuraGraphQLRepository, FilterOptionHasuraGraphQLRepository, FilterHasuraGraphQLRepository, CategoryCollectionChildrenHasuraGraphQLRepository, WishlistHasuraGraphQLRepository, Where, Shops, CheckoutTypes, CouponTypes, Exclusivities, OrderStatus, isNil, NotFoundError, Checkout, pick, LineItem, RoundProductPricesHelper, set, InvalidArgumentError, Category, PersonTypes, Wishlist, CheckoutSubscription, Product, RequiredArgumentError, add, Order, UpdateUserImage, FirebaseFileUploaderService } from '@infrab4a/connect';
8
+ import { Authentication, AuthenticationFirebaseAuthService, Register, RegisterFirebaseAuthService, SignOut, RecoveryPassword, ProductsIndex, AxiosAdapter, ConnectFirestoreService, UserBeautyProfileFirestoreRepository, Buy2WinFirestoreRepository, CategoryFirestoreRepository, CheckoutFirestoreRepository, CheckoutSubscriptionFirestoreRepository, CouponFirestoreRepository, CampaignHashtagFirestoreRepository, CampaignDashboardFirestoreRepository, SubscriptionEditionFirestoreRepository, HomeFirestoreRepository, LeadFirestoreRepository, LegacyOrderFirestoreRepository, ShopMenuFirestoreRepository, OrderFirestoreRepository, PaymentFirestoreRepository, ProductFirestoreRepository, ShopSettingsFirestoreRepository, SubscriptionPaymentFirestoreRepository, SubscriptionPlanFirestoreRepository, SubscriptionProductFirestoreRepository, SubscriptionFirestoreRepository, UserFirestoreRepository, UserAddressFirestoreRepository, UserPaymentMethodFirestoreRepository, SubscriptionMaterializationFirestoreRepository, SubscriptionSummaryFirestoreRepository, ProductVariantFirestoreRepository, OrderBlockedFirestoreRepository, CategoryHasuraGraphQLRepository, ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository, ProductReviewsHasuraGraphQLRepository, VariantHasuraGraphQLRepository, ProductStockNotificationHasuraGraphQLRepository, FilterOptionHasuraGraphQLRepository, FilterHasuraGraphQLRepository, CategoryCollectionChildrenHasuraGraphQLRepository, WishlistHasuraGraphQLRepository, ProductsVertexSearch, DiscoveryEngineSearch, Where, Shops, CheckoutTypes, CouponTypes, Exclusivities, isNil, NotFoundError, Checkout, pick, LineItem, RoundProductPricesHelper, set, InvalidArgumentError, Category, PersonTypes, Wishlist, CheckoutSubscription, Product, RequiredArgumentError, add, Order, UpdateUserImage, FirebaseFileUploaderService } from '@infrab4a/connect';
9
9
  import * as i1 from '@angular/fire/auth';
10
10
  import { Auth, provideAuth, getAuth, getIdToken, authState } from '@angular/fire/auth';
11
11
  import { isPlatformBrowser, isPlatformServer } from '@angular/common';
@@ -18,44 +18,14 @@ import { __decorate, __metadata } from 'tslib';
18
18
  import { Type } from 'class-transformer';
19
19
  import * as i1$3 from '@angular/common/http';
20
20
 
21
- const ES_CONFIG = 'ES_CONFIG';
22
-
23
- class AngularElasticSeachModule {
24
- static initializeApp(options) {
25
- return {
26
- ngModule: AngularElasticSeachModule,
27
- providers: [{ provide: ES_CONFIG, useValue: options }],
28
- };
29
- }
30
- }
31
- AngularElasticSeachModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularElasticSeachModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
32
- AngularElasticSeachModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.0", ngImport: i0, type: AngularElasticSeachModule });
33
- AngularElasticSeachModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularElasticSeachModule, providers: [
34
- {
35
- provide: ProductsIndex,
36
- useFactory: (configuration) => new ProductsIndex(new AxiosAdapter(configuration)),
37
- deps: [ES_CONFIG],
38
- },
39
- ] });
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularElasticSeachModule, decorators: [{
41
- type: NgModule,
42
- args: [{
43
- providers: [
44
- {
45
- provide: ProductsIndex,
46
- useFactory: (configuration) => new ProductsIndex(new AxiosAdapter(configuration)),
47
- deps: [ES_CONFIG],
48
- },
49
- ],
50
- }]
51
- }] });
52
-
53
21
  const BACKEND_URL = 'BACKEND_URL';
54
22
 
55
23
  const CATEGORY_STRUCTURE = 'CATEGORY_STRUCTURE';
56
24
 
57
25
  const DEFAULT_SHOP = 'DEFAULT_SHOP';
58
26
 
27
+ const ES_CONFIG = 'ES_CONFIG';
28
+
59
29
  const FIREBASE_APP_NAME = new InjectionToken('firebaseAppName');
60
30
  const FIREBASE_OPTIONS = new InjectionToken('firebaseOptions');
61
31
 
@@ -63,6 +33,8 @@ const HASURA_OPTIONS = 'HASURA_OPTIONS';
63
33
 
64
34
  const PERSISTENCE_PROVIDER = 'PERSISTENCE_PROVIDER';
65
35
 
36
+ const VERTEX_CONFIG = 'VERTEX_CONFIG';
37
+
66
38
  class AngularFirebaseAuthModule {
67
39
  static initializeApp(options, nameOrConfig) {
68
40
  return {
@@ -171,6 +143,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
171
143
  }]
172
144
  }] });
173
145
 
146
+ class AngularElasticSeachModule {
147
+ static initializeApp(options) {
148
+ return {
149
+ ngModule: AngularElasticSeachModule,
150
+ providers: [{ provide: ES_CONFIG, useValue: options }],
151
+ };
152
+ }
153
+ }
154
+ AngularElasticSeachModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularElasticSeachModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
155
+ AngularElasticSeachModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.0", ngImport: i0, type: AngularElasticSeachModule });
156
+ AngularElasticSeachModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularElasticSeachModule, providers: [
157
+ {
158
+ provide: ProductsIndex,
159
+ useFactory: (configuration) => new ProductsIndex(new AxiosAdapter(configuration)),
160
+ deps: [ES_CONFIG],
161
+ },
162
+ ] });
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularElasticSeachModule, decorators: [{
164
+ type: NgModule,
165
+ args: [{
166
+ providers: [
167
+ {
168
+ provide: ProductsIndex,
169
+ useFactory: (configuration) => new ProductsIndex(new AxiosAdapter(configuration)),
170
+ deps: [ES_CONFIG],
171
+ },
172
+ ],
173
+ }]
174
+ }] });
175
+
174
176
  class MobileOperationSystemCheckerHelper {
175
177
  static isAppleDevice() {
176
178
  return (['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator?.platform) ||
@@ -949,6 +951,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
949
951
  }]
950
952
  }] });
951
953
 
954
+ class AngularVertexSeachModule {
955
+ static initializeApp(options) {
956
+ return {
957
+ ngModule: AngularVertexSeachModule,
958
+ providers: [{ provide: VERTEX_CONFIG, useValue: options }],
959
+ };
960
+ }
961
+ }
962
+ AngularVertexSeachModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularVertexSeachModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
963
+ AngularVertexSeachModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.0", ngImport: i0, type: AngularVertexSeachModule });
964
+ AngularVertexSeachModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularVertexSeachModule, providers: [
965
+ {
966
+ provide: ProductsVertexSearch,
967
+ useFactory: (configuration) => new ProductsVertexSearch(new DiscoveryEngineSearch(configuration)),
968
+ deps: [VERTEX_CONFIG],
969
+ },
970
+ ] });
971
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularVertexSeachModule, decorators: [{
972
+ type: NgModule,
973
+ args: [{
974
+ providers: [
975
+ {
976
+ provide: ProductsVertexSearch,
977
+ useFactory: (configuration) => new ProductsVertexSearch(new DiscoveryEngineSearch(configuration)),
978
+ deps: [VERTEX_CONFIG],
979
+ },
980
+ ],
981
+ }]
982
+ }] });
983
+
952
984
  const STORAGE_BASE_URL = 'STORAGE_BASE_URL';
953
985
 
954
986
  class CookieDataPersistence {
@@ -1048,11 +1080,11 @@ class CouponService {
1048
1080
  throw 'Limite de uso atingido';
1049
1081
  }
1050
1082
  if (!couponUseLimits.unlimited || couponUseLimits.limitedPerUser) {
1051
- const ordersCoupon = await this.getOrdersWithCoupon(coupon);
1052
- if (!couponUseLimits.unlimited && couponUseLimits.total && ordersCoupon.length >= couponUseLimits.total)
1083
+ const orders = await this.getOrdersWithCoupon(coupon);
1084
+ if (!couponUseLimits.unlimited && couponUseLimits.total && orders.length >= couponUseLimits.total)
1053
1085
  throw 'Limite de uso atingido.';
1054
1086
  if (couponUseLimits.limitedPerUser) {
1055
- const ordersWithUser = this.countOrdersWithUser(ordersCoupon, checkout.user.email);
1087
+ const ordersWithUser = this.countOrdersWithUser(orders, checkout.user.email);
1056
1088
  if (ordersWithUser > 0)
1057
1089
  throw 'Limite de uso por usuário atingido.';
1058
1090
  }
@@ -1178,7 +1210,7 @@ class CouponService {
1178
1210
  .find({
1179
1211
  filters: {
1180
1212
  coupon: { id: coupon.id },
1181
- status: { operator: Where.NOTEQUALS, value: OrderStatus.CANCELADO },
1213
+ payment: { status: 'paid' },
1182
1214
  },
1183
1215
  })
1184
1216
  .then((result) => result.data);
@@ -1188,7 +1220,7 @@ class CouponService {
1188
1220
  .find({
1189
1221
  filters: {
1190
1222
  user: { email: { operator: Where.EQUALS, value: email } },
1191
- status: { operator: Where.NOTEQUALS, value: OrderStatus.CANCELADO },
1223
+ payment: { status: 'paid' },
1192
1224
  },
1193
1225
  })
1194
1226
  .then((result) => result.data);
@@ -1199,12 +1231,7 @@ class CouponService {
1199
1231
  getCouponUseLimits(coupon, checkoutType, user) {
1200
1232
  let couponUseLimits;
1201
1233
  if (checkoutType == CheckoutTypes.ECOMMERCE || checkoutType == CheckoutTypes.ALL) {
1202
- if (coupon.exclusivityType.length === 1 &&
1203
- (coupon.exclusivityType.at(0) === Exclusivities.SPECIFIC_USER ||
1204
- coupon.exclusivityType.at(0) === Exclusivities.COLLABORATORS))
1205
- couponUseLimits = coupon.useLimits.non_subscriber;
1206
- else
1207
- couponUseLimits = user && user.isSubscriber ? coupon.useLimits.subscriber : coupon.useLimits.non_subscriber;
1234
+ couponUseLimits = user && user.isSubscriber ? coupon.useLimits.subscriber : coupon.useLimits.non_subscriber;
1208
1235
  }
1209
1236
  else {
1210
1237
  couponUseLimits = coupon.useLimits.subscription;
@@ -1332,7 +1359,6 @@ class CartService {
1332
1359
  if (index > -1) {
1333
1360
  checkoutLoaded.lineItems[index].quantity += quantity;
1334
1361
  checkoutLoaded.lineItems[index].pricePaid = lineItem.pricePaid;
1335
- checkoutLoaded.lineItems[index].price = lineItem.price;
1336
1362
  }
1337
1363
  else
1338
1364
  checkoutLoaded.lineItems = items.concat(checkoutLoaded.lineItems ? checkoutLoaded.lineItems.concat([lineItem]) : [lineItem]);
@@ -1353,15 +1379,14 @@ class CartService {
1353
1379
  if (this.checkMaxStock(product.stock.quantity, item.quantity || 0, quantity || 0))
1354
1380
  throw new Error('Desculpe! Temos apenas ' + product.stock?.quantity + ' em estoque.');
1355
1381
  const image = item.image || item.images?.shift();
1356
- const { id, name, EAN, slug, weight, sku, type } = item;
1382
+ const { id, name, EAN, slug, stock, price, weight, sku, type } = item;
1357
1383
  const isGift = item.isGift || null;
1358
1384
  const pricePaid = this.getProductPrice({
1359
- product: LineItem.toInstance(product),
1385
+ product: item,
1360
1386
  shop: checkout.shop || this.defaultShop,
1361
1387
  isSubscriber: checkout.user?.isSubscriber,
1362
1388
  });
1363
1389
  RoundProductPricesHelper.roundProductPrices(item);
1364
- RoundProductPricesHelper.roundProductPrices(product);
1365
1390
  return {
1366
1391
  checkout,
1367
1392
  lineItem: LineItem.toInstance({
@@ -1371,8 +1396,8 @@ class CartService {
1371
1396
  brand: product.brand,
1372
1397
  slug: slug ?? product.slug,
1373
1398
  sku: sku ?? product.sku,
1374
- stock: product.stock,
1375
- price: this.roundPrice(product.price),
1399
+ stock,
1400
+ price: this.roundPrice(price),
1376
1401
  image,
1377
1402
  weight: weight ?? product.weight,
1378
1403
  quantity: (item.quantity || 0) + (quantity || 0),
@@ -1650,13 +1675,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
1650
1675
  }] }]; } });
1651
1676
 
1652
1677
  class CatalogService {
1653
- constructor(productRepository, productStockNotificationRepository, categoryRepository, categoryStructureAdapter, shop, productIndex) {
1678
+ constructor(productRepository, productStockNotificationRepository, categoryRepository, categoryStructureAdapter, shop,
1679
+ // private readonly productIndex: ProductsIndex,
1680
+ productVertexSearch) {
1654
1681
  this.productRepository = productRepository;
1655
1682
  this.productStockNotificationRepository = productStockNotificationRepository;
1656
1683
  this.categoryRepository = categoryRepository;
1657
1684
  this.categoryStructureAdapter = categoryStructureAdapter;
1658
1685
  this.shop = shop;
1659
- this.productIndex = productIndex;
1686
+ this.productVertexSearch = productVertexSearch;
1660
1687
  this.productsByTerm = {};
1661
1688
  this.buildFilterQuery = ({ clubDiscount, brands, prices, gender, tags, rate, customOptions, }) => {
1662
1689
  const filters = {};
@@ -1737,7 +1764,7 @@ class CatalogService {
1737
1764
  }
1738
1765
  async findCatalog(options, limits) {
1739
1766
  if (this.hasTerm(options) && options.sort === 'most-relevant') {
1740
- const productsIds = await this.findCatalogIdsByElasticSearch(options.term);
1767
+ const productsIds = await this.findCatalogIdsByVertexAiSearch(options.term);
1741
1768
  return this.findCatalogAndSortByMostRevelantByTerm(productsIds, options, limits);
1742
1769
  }
1743
1770
  if (this.hasCategory(options) && options.sort === 'most-relevant') {
@@ -1776,9 +1803,9 @@ class CatalogService {
1776
1803
  if (profile)
1777
1804
  return { tags: { operator: Where.LIKE, value: profile } };
1778
1805
  if (term)
1779
- return this.productIndex
1806
+ return this.productVertexSearch
1780
1807
  .search(term, 999, this.shop)
1781
- .then((data) => ({ id: { operator: Where.IN, value: data.hits.map(({ _source }) => _source.id) } }));
1808
+ .then((data) => ({ id: { operator: Where.IN, value: data.map((_source) => _source.id) } }));
1782
1809
  }
1783
1810
  async findCatalogAndSortByMostRevelant(mostRelevants, productIds, options, limits) {
1784
1811
  const mostRelevantProductsIds = [...new Set(mostRelevants.concat(productIds))];
@@ -1845,20 +1872,29 @@ class CatalogService {
1845
1872
  distinct: totalResult.distinct,
1846
1873
  };
1847
1874
  }
1848
- async findCatalogIdsByElasticSearch(term) {
1875
+ // private async findCatalogIdsByElasticSearch(term: string): Promise<string[]> {
1876
+ // if (this.productsByTerm[term]) return this.productsByTerm[term]
1877
+ // return (this.productsByTerm[term] = await this.productIndex
1878
+ // .search(term, 999, this.shop)
1879
+ // .then(({ hits: products }) => {
1880
+ // const withStock = products.filter(({ _source }) => _source.stock.quantity > 0)
1881
+ // const withOutStock = products.filter(({ _source }) => _source.stock.quantity <= 0)
1882
+ // const sorted = [...withStock, ...withOutStock]
1883
+ // return [...new Set(sorted.map(({ _source }) => _source.id))]
1884
+ // }))
1885
+ // }
1886
+ async findCatalogIdsByVertexAiSearch(term) {
1849
1887
  if (this.productsByTerm[term])
1850
1888
  return this.productsByTerm[term];
1851
- return (this.productsByTerm[term] = await this.productIndex
1852
- .search(term, 999, this.shop)
1853
- .then(({ hits: products }) => {
1854
- const withStock = products.filter(({ _source }) => _source.stock.quantity > 0);
1855
- const withOutStock = products.filter(({ _source }) => _source.stock.quantity <= 0);
1889
+ return (this.productsByTerm[term] = await this.productVertexSearch.search(term, 999, this.shop).then((products) => {
1890
+ const withStock = products.filter((_source) => _source.stock > 0);
1891
+ const withOutStock = products.filter((_source) => _source.stock <= 0);
1856
1892
  const sorted = [...withStock, ...withOutStock];
1857
- return [...new Set(sorted.map(({ _source }) => _source.id))];
1893
+ return [...new Set(sorted.map((products) => products.id))];
1858
1894
  }));
1859
1895
  }
1860
1896
  }
1861
- CatalogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService, deps: [{ token: 'ProductRepository' }, { token: 'ProductStockNotificationRepository' }, { token: 'CategoryRepository' }, { token: CATEGORY_STRUCTURE }, { token: DEFAULT_SHOP }, { token: i1$2.ProductsIndex }], target: i0.ɵɵFactoryTarget.Injectable });
1897
+ CatalogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService, deps: [{ token: 'ProductRepository' }, { token: 'ProductStockNotificationRepository' }, { token: 'CategoryRepository' }, { token: CATEGORY_STRUCTURE }, { token: DEFAULT_SHOP }, { token: i1$2.ProductsVertexSearch }], target: i0.ɵɵFactoryTarget.Injectable });
1862
1898
  CatalogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService });
1863
1899
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService, decorators: [{
1864
1900
  type: Injectable
@@ -1877,7 +1913,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
1877
1913
  }] }, { type: i1$2.Shops, decorators: [{
1878
1914
  type: Inject,
1879
1915
  args: [DEFAULT_SHOP]
1880
- }] }, { type: i1$2.ProductsIndex }]; } });
1916
+ }] }, { type: i1$2.ProductsVertexSearch }]; } });
1881
1917
 
1882
1918
  class CategoryService {
1883
1919
  constructor(productRepository, categoryRepository, categoryFilterRepository, categoryStructureAdapter, shop) {
@@ -1944,11 +1980,11 @@ __decorate([
1944
1980
  ], CategoryWithTree.prototype, "children", void 0);
1945
1981
 
1946
1982
  class WishlistService {
1947
- constructor(wishlistRepository, shop, productRepository, categoryFilterRepository, categoryRepository, productStockNotificationRepository, productIndex) {
1983
+ constructor(wishlistRepository, shop, productRepository, categoryFilterRepository, categoryRepository, productStockNotificationRepository, productVertexSearch) {
1948
1984
  this.wishlistRepository = wishlistRepository;
1949
1985
  this.shop = shop;
1950
1986
  const categoryStructureAdapter = new NewCategoryStructureAdapter(wishlistRepository);
1951
- this.catalogService = new CatalogService(productRepository, productStockNotificationRepository, categoryRepository, categoryStructureAdapter, shop, productIndex);
1987
+ this.catalogService = new CatalogService(productRepository, productStockNotificationRepository, categoryRepository, categoryStructureAdapter, shop, productVertexSearch);
1952
1988
  this.categoryService = new CategoryService(productRepository, categoryRepository, categoryFilterRepository, categoryStructureAdapter, shop);
1953
1989
  }
1954
1990
  getCatalogService() {
@@ -2040,7 +2076,7 @@ class WishlistService {
2040
2076
  return wishlist;
2041
2077
  }
2042
2078
  }
2043
- WishlistService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: WishlistService, deps: [{ token: 'WishlistRepository' }, { token: DEFAULT_SHOP }, { token: 'ProductRepository' }, { token: 'CategoryFilterRepository' }, { token: 'CategoryRepository' }, { token: 'ProductStockNotificationRepository' }, { token: i1$2.ProductsIndex }], target: i0.ɵɵFactoryTarget.Injectable });
2079
+ WishlistService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: WishlistService, deps: [{ token: 'WishlistRepository' }, { token: DEFAULT_SHOP }, { token: 'ProductRepository' }, { token: 'CategoryFilterRepository' }, { token: 'CategoryRepository' }, { token: 'ProductStockNotificationRepository' }, { token: i1$2.ProductsVertexSearch }], target: i0.ɵɵFactoryTarget.Injectable });
2044
2080
  WishlistService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: WishlistService });
2045
2081
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: WishlistService, decorators: [{
2046
2082
  type: Injectable
@@ -2062,7 +2098,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
2062
2098
  }] }, { type: undefined, decorators: [{
2063
2099
  type: Inject,
2064
2100
  args: ['ProductStockNotificationRepository']
2065
- }] }, { type: i1$2.ProductsIndex }]; } });
2101
+ }] }, { type: i1$2.ProductsVertexSearch }]; } });
2066
2102
 
2067
2103
  class CheckoutSubscriptionService {
2068
2104
  constructor(checkoutSubscriptionRepository, dataPersistence, couponService) {
@@ -2367,6 +2403,7 @@ class AngularConnectModule {
2367
2403
  ...(isNil(options?.firebase) ? [] : [{ provide: FIREBASE_OPTIONS, useValue: options?.firebase }]),
2368
2404
  ...(isNil(options?.firebase) ? [] : [{ provide: FIREBASE_APP_NAME, useValue: nameOrConfig }]),
2369
2405
  ...(isNil(options?.elasticSearch) ? [] : [{ provide: ES_CONFIG, useValue: options.elasticSearch }]),
2406
+ ...(isNil(options?.vertexAiConfig) ? [] : [{ provide: VERTEX_CONFIG, useValue: options.vertexAiConfig }]),
2370
2407
  ...(isNil(options?.hasura) ? [] : [{ provide: HASURA_OPTIONS, useValue: options.hasura }]),
2371
2408
  ...(isNil(options?.backendUrl) ? [] : [{ provide: BACKEND_URL, useValue: options.backendUrl }]),
2372
2409
  ...(isNil(options?.storageBaseUrl) ? [] : [{ provide: STORAGE_BASE_URL, useValue: options.storageBaseUrl }]),
@@ -2375,7 +2412,9 @@ class AngularConnectModule {
2375
2412
  }
2376
2413
  }
2377
2414
  AngularConnectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularConnectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2378
- AngularConnectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.0", ngImport: i0, type: AngularConnectModule, imports: [i1$4.FirebaseAppModule, i2.StorageModule, AngularElasticSeachModule,
2415
+ AngularConnectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.0", ngImport: i0, type: AngularConnectModule, imports: [i1$4.FirebaseAppModule, i2.StorageModule,
2416
+ // AngularElasticSeachModule,
2417
+ AngularVertexSeachModule,
2379
2418
  AngularFirebaseAuthModule,
2380
2419
  AngularFirestoreModule,
2381
2420
  AngularHasuraGraphQLModule] });
@@ -2415,7 +2454,8 @@ AngularConnectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ve
2415
2454
  }
2416
2455
  }),
2417
2456
  provideStorage((injector) => getStorage(injector.get(FirebaseApp))),
2418
- AngularElasticSeachModule,
2457
+ // AngularElasticSeachModule,
2458
+ AngularVertexSeachModule,
2419
2459
  AngularFirebaseAuthModule,
2420
2460
  AngularFirestoreModule,
2421
2461
  AngularHasuraGraphQLModule] });
@@ -2433,7 +2473,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
2433
2473
  }
2434
2474
  }),
2435
2475
  provideStorage((injector) => getStorage(injector.get(FirebaseApp))),
2436
- AngularElasticSeachModule,
2476
+ // AngularElasticSeachModule,
2477
+ AngularVertexSeachModule,
2437
2478
  AngularFirebaseAuthModule,
2438
2479
  AngularFirestoreModule,
2439
2480
  AngularHasuraGraphQLModule,