@neowhale/storefront 0.2.13 → 0.2.20

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 (35) hide show
  1. package/dist/{chunk-M2MR6C55.js → chunk-3Q7CPJBA.js} +68 -18
  2. package/dist/chunk-3Q7CPJBA.js.map +1 -0
  3. package/dist/chunk-7KXJLHGA.cjs +160 -0
  4. package/dist/chunk-7KXJLHGA.cjs.map +1 -0
  5. package/dist/chunk-PXS2DPVL.js +158 -0
  6. package/dist/chunk-PXS2DPVL.js.map +1 -0
  7. package/dist/{chunk-3VKRKDPL.cjs → chunk-VAA2KKCH.cjs} +68 -18
  8. package/dist/chunk-VAA2KKCH.cjs.map +1 -0
  9. package/dist/{client-Ca8Otk-R.d.cts → client-BSO263Uv.d.cts} +91 -6
  10. package/dist/{client-Ca8Otk-R.d.ts → client-BSO263Uv.d.ts} +91 -6
  11. package/dist/index.cjs +5 -5
  12. package/dist/index.d.cts +2 -2
  13. package/dist/index.d.ts +2 -2
  14. package/dist/index.js +2 -2
  15. package/dist/next/index.cjs +7 -6
  16. package/dist/next/index.cjs.map +1 -1
  17. package/dist/next/index.d.cts +1 -1
  18. package/dist/next/index.d.ts +1 -1
  19. package/dist/next/index.js +5 -4
  20. package/dist/next/index.js.map +1 -1
  21. package/dist/{pixel-manager-CIZKghfx.d.ts → pixel-manager-BcL95odX.d.ts} +1 -1
  22. package/dist/{pixel-manager-CIR16DXY.d.cts → pixel-manager-DJ9m2FaQ.d.cts} +1 -1
  23. package/dist/react/index.cjs +1503 -56
  24. package/dist/react/index.cjs.map +1 -1
  25. package/dist/react/index.d.cts +71 -9
  26. package/dist/react/index.d.ts +71 -9
  27. package/dist/react/index.js +1497 -55
  28. package/dist/react/index.js.map +1 -1
  29. package/package.json +1 -1
  30. package/dist/chunk-3VKRKDPL.cjs.map +0 -1
  31. package/dist/chunk-BTGOSNMP.cjs +0 -95
  32. package/dist/chunk-BTGOSNMP.cjs.map +0 -1
  33. package/dist/chunk-M2MR6C55.js.map +0 -1
  34. package/dist/chunk-NLH3W6JA.js +0 -93
  35. package/dist/chunk-NLH3W6JA.js.map +0 -1
@@ -1,11 +1,11 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as react from 'react';
3
3
  import { ReactNode } from 'react';
4
- import { D as WhaleStorefrontConfig, r as Product, P as PaymentData, O as Order, a as CartItem, T as TaxBreakdown, W as WhaleClient, f as Customer, E as EventType, g as CustomerAnalytics, d as CheckoutSession, A as Address, b as Category, c as CategoryTreeNode, l as LoyaltyAccount, m as LoyaltyReward, n as LoyaltyTransaction, v as Review, w as ReviewSummary, F as WishlistItem, R as Recommendation, k as Location, x as ShippingMethod, y as ShippingRate, e as CouponValidation, C as Cart, i as LandingSection, Q as QRLandingData, h as LandingPageRenderData } from '../client-Ca8Otk-R.cjs';
4
+ import { F as WhaleStorefrontConfig, r as Product, P as PaymentData, O as Order, a as CartItem, T as TaxBreakdown, W as WhaleClient, f as Customer, E as EventType, g as CustomerAnalytics, d as CheckoutSession, A as Address, b as Category, c as CategoryTreeNode, l as LoyaltyAccount, m as LoyaltyReward, n as LoyaltyTransaction, v as Review, w as ReviewSummary, G as WishlistItem, R as Recommendation, k as Location, x as ShippingMethod, y as ShippingRate, D as DealValidation, C as Cart, H as ReferralStatus, I as ReferralEnrollment, i as LandingSection, Q as QRLandingData, h as LandingPageRenderData } from '../client-BSO263Uv.cjs';
5
5
  import { ThemeTokens } from '@neowhale/ui';
6
6
  import * as zustand_middleware from 'zustand/middleware';
7
7
  import * as zustand from 'zustand';
8
- import { P as PixelManager } from '../pixel-manager-CIR16DXY.cjs';
8
+ import { P as PixelManager } from '../pixel-manager-DJ9m2FaQ.cjs';
9
9
 
10
10
  interface WhaleProviderProps extends WhaleStorefrontConfig {
11
11
  children: ReactNode;
@@ -42,7 +42,7 @@ interface CartActions {
42
42
  checkout: (customerEmail?: string, payment?: PaymentData) => Promise<Order>;
43
43
  }
44
44
  type CartStore = ReturnType<typeof createCartStore>;
45
- declare function createCartStore(client: WhaleClient, storagePrefix: string, onAddToCart?: (productId: string, productName: string, quantity: number, price: number, tier?: string) => void, onRemoveFromCart?: (productId: string, productName: string) => void): Omit<zustand.StoreApi<CartState & CartActions>, "setState" | "persist"> & {
45
+ declare function createCartStore(client: WhaleClient, storagePrefix: string, onAddToCart?: (productId: string, productName: string, quantity: number, price: number, tier?: string) => void, onRemoveFromCart?: (productId: string, productName: string) => void, onCartChange?: (cartId: string, total: number, itemCount: number) => void): Omit<zustand.StoreApi<CartState & CartActions>, "setState" | "persist"> & {
46
46
  setState(partial: (CartState & CartActions) | Partial<CartState & CartActions> | ((state: CartState & CartActions) => (CartState & CartActions) | Partial<CartState & CartActions>), replace?: false | undefined): unknown;
47
47
  setState(state: (CartState & CartActions) | ((state: CartState & CartActions) => CartState & CartActions), replace: true): unknown;
48
48
  persist: {
@@ -71,6 +71,12 @@ interface AuthState {
71
71
  interface AuthActions {
72
72
  sendOTP: (email: string) => Promise<boolean>;
73
73
  verifyOTP: (email: string, code: string) => Promise<boolean>;
74
+ updateProfile: (data: {
75
+ first_name: string;
76
+ last_name: string;
77
+ phone?: string;
78
+ date_of_birth?: string;
79
+ }) => Promise<void>;
74
80
  restoreSession: () => Promise<void>;
75
81
  isSessionValid: () => boolean;
76
82
  logout: () => void;
@@ -177,6 +183,12 @@ declare function useAuth(): {
177
183
  isAuthenticated: boolean;
178
184
  sendCode: (email: string) => Promise<boolean>;
179
185
  verifyCode: (email: string, code: string) => Promise<boolean>;
186
+ updateProfile: (data: {
187
+ first_name: string;
188
+ last_name: string;
189
+ phone?: string;
190
+ date_of_birth?: string;
191
+ }) => Promise<void>;
180
192
  restoreSession: () => Promise<void>;
181
193
  logout: () => void;
182
194
  fetchCustomer: (id: string) => Promise<void>;
@@ -213,6 +225,8 @@ declare function useAnalytics(): {
213
225
  trackAddToCart: (productId: string, productName: string, quantity: number, price: number, tier?: string) => void;
214
226
  trackRemoveFromCart: (productId: string, productName: string) => void;
215
227
  linkCustomer: (customerId: string) => Promise<void>;
228
+ updateSessionCart: (cartId: string, cartTotal: number, cartItemCount: number) => Promise<void>;
229
+ updateSessionOrder: (orderId: string) => Promise<void>;
216
230
  getOrCreateSession: () => Promise<string>;
217
231
  /** Whether tracking is globally enabled for this storefront */
218
232
  trackingEnabled: boolean;
@@ -243,6 +257,8 @@ declare function useCheckout(): {
243
257
  billing_address?: Address;
244
258
  shipping_method_id?: string;
245
259
  coupon_code?: string;
260
+ loyalty_reward_id?: string;
261
+ selected_product_id?: string;
246
262
  }) => Promise<CheckoutSession>;
247
263
  updateSession: (params: {
248
264
  customer_email?: string;
@@ -251,7 +267,10 @@ declare function useCheckout(): {
251
267
  shipping_method_id?: string;
252
268
  coupon_code?: string;
253
269
  }) => Promise<CheckoutSession>;
254
- complete: (payment?: PaymentData) => Promise<Order>;
270
+ complete: (payment?: PaymentData, opts?: {
271
+ loyalty_reward_id?: string;
272
+ selected_product_id?: string;
273
+ }) => Promise<Order>;
255
274
  reset: () => void;
256
275
  };
257
276
 
@@ -294,6 +313,7 @@ declare function useLoyalty(): {
294
313
  success: boolean;
295
314
  points_remaining: number;
296
315
  }>;
316
+ fetchProductsByCategory: (category: string, locationId: string, tier?: string) => Promise<Product[]>;
297
317
  };
298
318
 
299
319
  declare function useReviews(productId: string | null | undefined): {
@@ -355,15 +375,39 @@ declare function useShipping(): {
355
375
  }) => Promise<ShippingRate[]>;
356
376
  };
357
377
 
358
- declare function useCoupons(): {
359
- validation: CouponValidation | null;
378
+ declare function useDeals(): {
379
+ validation: DealValidation | null;
360
380
  loading: boolean;
361
381
  error: Error | null;
362
- validate: (code: string, cartId?: string) => Promise<CouponValidation>;
382
+ validate: (code: string, cartId?: string) => Promise<DealValidation>;
363
383
  apply: (cartId: string, code: string) => Promise<Cart>;
364
384
  remove: (cartId: string) => Promise<Cart>;
365
385
  clear: () => void;
366
386
  };
387
+ /** @deprecated Use useDeals instead */
388
+ declare const useCoupons: typeof useDeals;
389
+
390
+ declare function useReferral(): {
391
+ status: ReferralStatus | null;
392
+ loading: boolean;
393
+ error: Error | null;
394
+ enroll: () => Promise<ReferralEnrollment>;
395
+ refresh: () => Promise<void>;
396
+ share: () => Promise<void>;
397
+ attributeReferral: (code: string) => Promise<{
398
+ success: boolean;
399
+ affiliate_id?: string;
400
+ error?: string;
401
+ }>;
402
+ referralCode: string | null;
403
+ shareUrl: string | null;
404
+ isEnrolled: boolean;
405
+ referredBy: {
406
+ affiliate_id: string;
407
+ referral_code: string;
408
+ referrer_name: string;
409
+ } | null;
410
+ };
367
411
 
368
412
  interface QRLandingPageProps {
369
413
  code: string;
@@ -393,8 +437,13 @@ interface SectionTheme {
393
437
  fontDisplay?: string;
394
438
  fontBody?: string;
395
439
  }
440
+ interface ClickTrackingContext {
441
+ gatewayUrl?: string;
442
+ code?: string;
443
+ }
396
444
  interface SectionData {
397
445
  store?: {
446
+ id?: string;
398
447
  name?: string | null;
399
448
  logo_url?: string | null;
400
449
  tagline?: string | null;
@@ -406,11 +455,16 @@ interface SectionData {
406
455
  viewer_url?: string | null;
407
456
  document_name: string;
408
457
  } | null;
458
+ gatewayUrl?: string;
459
+ landing_page?: {
460
+ slug?: string;
461
+ } | null;
409
462
  }
410
- declare function SectionRenderer({ section, data, theme, }: {
463
+ declare function SectionRenderer({ section, data, theme, tracking, }: {
411
464
  section: LandingSection;
412
465
  data: SectionData;
413
466
  theme: SectionTheme;
467
+ tracking?: ClickTrackingContext;
414
468
  }): react_jsx_runtime.JSX.Element;
415
469
 
416
470
  /**
@@ -449,4 +503,12 @@ interface PixelInitializerProps {
449
503
  */
450
504
  declare function PixelInitializer({ onReady, onTheme }: PixelInitializerProps): null;
451
505
 
452
- export { AnalyticsTracker, type AuthActions, AuthInitializer, type AuthState, type AuthStore, type CartActions, CartInitializer, type CartState, type CartStore, LandingPage, type LandingPageProps, PixelInitializer, QRLandingPage, type QRLandingPageProps, type SearchParams, SectionRenderer, type SectionTheme, WhaleContext, type WhaleContextValue, WhaleProvider, type WhaleProviderProps, useAnalytics, useAuth, useCart, useCartItemCount, useCartTotal, useCategories, useCheckout, useCoupons, useCustomerAnalytics, useCustomerOrders, useLocations, useLoyalty, useProduct, useProducts, useRecommendations, useReviews, useSearch, useShipping, useWhaleClient, useWishlist };
506
+ declare function BehavioralTrackerComponent({ pathname }: {
507
+ pathname: string | null;
508
+ }): null;
509
+
510
+ declare function FingerprintCollector(): null;
511
+
512
+ declare function SessionRecorderComponent(): null;
513
+
514
+ export { AnalyticsTracker, type AuthActions, AuthInitializer, type AuthState, type AuthStore, BehavioralTrackerComponent, type CartActions, CartInitializer, type CartState, type CartStore, type ClickTrackingContext, FingerprintCollector, LandingPage, type LandingPageProps, PixelInitializer, QRLandingPage, type QRLandingPageProps, type SearchParams, SectionRenderer, type SectionTheme, SessionRecorderComponent, WhaleContext, type WhaleContextValue, WhaleProvider, type WhaleProviderProps, useAnalytics, useAuth, useCart, useCartItemCount, useCartTotal, useCategories, useCheckout, useCoupons, useCustomerAnalytics, useCustomerOrders, useDeals, useLocations, useLoyalty, useProduct, useProducts, useRecommendations, useReferral, useReviews, useSearch, useShipping, useWhaleClient, useWishlist };
@@ -1,11 +1,11 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as react from 'react';
3
3
  import { ReactNode } from 'react';
4
- import { D as WhaleStorefrontConfig, r as Product, P as PaymentData, O as Order, a as CartItem, T as TaxBreakdown, W as WhaleClient, f as Customer, E as EventType, g as CustomerAnalytics, d as CheckoutSession, A as Address, b as Category, c as CategoryTreeNode, l as LoyaltyAccount, m as LoyaltyReward, n as LoyaltyTransaction, v as Review, w as ReviewSummary, F as WishlistItem, R as Recommendation, k as Location, x as ShippingMethod, y as ShippingRate, e as CouponValidation, C as Cart, i as LandingSection, Q as QRLandingData, h as LandingPageRenderData } from '../client-Ca8Otk-R.js';
4
+ import { F as WhaleStorefrontConfig, r as Product, P as PaymentData, O as Order, a as CartItem, T as TaxBreakdown, W as WhaleClient, f as Customer, E as EventType, g as CustomerAnalytics, d as CheckoutSession, A as Address, b as Category, c as CategoryTreeNode, l as LoyaltyAccount, m as LoyaltyReward, n as LoyaltyTransaction, v as Review, w as ReviewSummary, G as WishlistItem, R as Recommendation, k as Location, x as ShippingMethod, y as ShippingRate, D as DealValidation, C as Cart, H as ReferralStatus, I as ReferralEnrollment, i as LandingSection, Q as QRLandingData, h as LandingPageRenderData } from '../client-BSO263Uv.js';
5
5
  import { ThemeTokens } from '@neowhale/ui';
6
6
  import * as zustand_middleware from 'zustand/middleware';
7
7
  import * as zustand from 'zustand';
8
- import { P as PixelManager } from '../pixel-manager-CIZKghfx.js';
8
+ import { P as PixelManager } from '../pixel-manager-BcL95odX.js';
9
9
 
10
10
  interface WhaleProviderProps extends WhaleStorefrontConfig {
11
11
  children: ReactNode;
@@ -42,7 +42,7 @@ interface CartActions {
42
42
  checkout: (customerEmail?: string, payment?: PaymentData) => Promise<Order>;
43
43
  }
44
44
  type CartStore = ReturnType<typeof createCartStore>;
45
- declare function createCartStore(client: WhaleClient, storagePrefix: string, onAddToCart?: (productId: string, productName: string, quantity: number, price: number, tier?: string) => void, onRemoveFromCart?: (productId: string, productName: string) => void): Omit<zustand.StoreApi<CartState & CartActions>, "setState" | "persist"> & {
45
+ declare function createCartStore(client: WhaleClient, storagePrefix: string, onAddToCart?: (productId: string, productName: string, quantity: number, price: number, tier?: string) => void, onRemoveFromCart?: (productId: string, productName: string) => void, onCartChange?: (cartId: string, total: number, itemCount: number) => void): Omit<zustand.StoreApi<CartState & CartActions>, "setState" | "persist"> & {
46
46
  setState(partial: (CartState & CartActions) | Partial<CartState & CartActions> | ((state: CartState & CartActions) => (CartState & CartActions) | Partial<CartState & CartActions>), replace?: false | undefined): unknown;
47
47
  setState(state: (CartState & CartActions) | ((state: CartState & CartActions) => CartState & CartActions), replace: true): unknown;
48
48
  persist: {
@@ -71,6 +71,12 @@ interface AuthState {
71
71
  interface AuthActions {
72
72
  sendOTP: (email: string) => Promise<boolean>;
73
73
  verifyOTP: (email: string, code: string) => Promise<boolean>;
74
+ updateProfile: (data: {
75
+ first_name: string;
76
+ last_name: string;
77
+ phone?: string;
78
+ date_of_birth?: string;
79
+ }) => Promise<void>;
74
80
  restoreSession: () => Promise<void>;
75
81
  isSessionValid: () => boolean;
76
82
  logout: () => void;
@@ -177,6 +183,12 @@ declare function useAuth(): {
177
183
  isAuthenticated: boolean;
178
184
  sendCode: (email: string) => Promise<boolean>;
179
185
  verifyCode: (email: string, code: string) => Promise<boolean>;
186
+ updateProfile: (data: {
187
+ first_name: string;
188
+ last_name: string;
189
+ phone?: string;
190
+ date_of_birth?: string;
191
+ }) => Promise<void>;
180
192
  restoreSession: () => Promise<void>;
181
193
  logout: () => void;
182
194
  fetchCustomer: (id: string) => Promise<void>;
@@ -213,6 +225,8 @@ declare function useAnalytics(): {
213
225
  trackAddToCart: (productId: string, productName: string, quantity: number, price: number, tier?: string) => void;
214
226
  trackRemoveFromCart: (productId: string, productName: string) => void;
215
227
  linkCustomer: (customerId: string) => Promise<void>;
228
+ updateSessionCart: (cartId: string, cartTotal: number, cartItemCount: number) => Promise<void>;
229
+ updateSessionOrder: (orderId: string) => Promise<void>;
216
230
  getOrCreateSession: () => Promise<string>;
217
231
  /** Whether tracking is globally enabled for this storefront */
218
232
  trackingEnabled: boolean;
@@ -243,6 +257,8 @@ declare function useCheckout(): {
243
257
  billing_address?: Address;
244
258
  shipping_method_id?: string;
245
259
  coupon_code?: string;
260
+ loyalty_reward_id?: string;
261
+ selected_product_id?: string;
246
262
  }) => Promise<CheckoutSession>;
247
263
  updateSession: (params: {
248
264
  customer_email?: string;
@@ -251,7 +267,10 @@ declare function useCheckout(): {
251
267
  shipping_method_id?: string;
252
268
  coupon_code?: string;
253
269
  }) => Promise<CheckoutSession>;
254
- complete: (payment?: PaymentData) => Promise<Order>;
270
+ complete: (payment?: PaymentData, opts?: {
271
+ loyalty_reward_id?: string;
272
+ selected_product_id?: string;
273
+ }) => Promise<Order>;
255
274
  reset: () => void;
256
275
  };
257
276
 
@@ -294,6 +313,7 @@ declare function useLoyalty(): {
294
313
  success: boolean;
295
314
  points_remaining: number;
296
315
  }>;
316
+ fetchProductsByCategory: (category: string, locationId: string, tier?: string) => Promise<Product[]>;
297
317
  };
298
318
 
299
319
  declare function useReviews(productId: string | null | undefined): {
@@ -355,15 +375,39 @@ declare function useShipping(): {
355
375
  }) => Promise<ShippingRate[]>;
356
376
  };
357
377
 
358
- declare function useCoupons(): {
359
- validation: CouponValidation | null;
378
+ declare function useDeals(): {
379
+ validation: DealValidation | null;
360
380
  loading: boolean;
361
381
  error: Error | null;
362
- validate: (code: string, cartId?: string) => Promise<CouponValidation>;
382
+ validate: (code: string, cartId?: string) => Promise<DealValidation>;
363
383
  apply: (cartId: string, code: string) => Promise<Cart>;
364
384
  remove: (cartId: string) => Promise<Cart>;
365
385
  clear: () => void;
366
386
  };
387
+ /** @deprecated Use useDeals instead */
388
+ declare const useCoupons: typeof useDeals;
389
+
390
+ declare function useReferral(): {
391
+ status: ReferralStatus | null;
392
+ loading: boolean;
393
+ error: Error | null;
394
+ enroll: () => Promise<ReferralEnrollment>;
395
+ refresh: () => Promise<void>;
396
+ share: () => Promise<void>;
397
+ attributeReferral: (code: string) => Promise<{
398
+ success: boolean;
399
+ affiliate_id?: string;
400
+ error?: string;
401
+ }>;
402
+ referralCode: string | null;
403
+ shareUrl: string | null;
404
+ isEnrolled: boolean;
405
+ referredBy: {
406
+ affiliate_id: string;
407
+ referral_code: string;
408
+ referrer_name: string;
409
+ } | null;
410
+ };
367
411
 
368
412
  interface QRLandingPageProps {
369
413
  code: string;
@@ -393,8 +437,13 @@ interface SectionTheme {
393
437
  fontDisplay?: string;
394
438
  fontBody?: string;
395
439
  }
440
+ interface ClickTrackingContext {
441
+ gatewayUrl?: string;
442
+ code?: string;
443
+ }
396
444
  interface SectionData {
397
445
  store?: {
446
+ id?: string;
398
447
  name?: string | null;
399
448
  logo_url?: string | null;
400
449
  tagline?: string | null;
@@ -406,11 +455,16 @@ interface SectionData {
406
455
  viewer_url?: string | null;
407
456
  document_name: string;
408
457
  } | null;
458
+ gatewayUrl?: string;
459
+ landing_page?: {
460
+ slug?: string;
461
+ } | null;
409
462
  }
410
- declare function SectionRenderer({ section, data, theme, }: {
463
+ declare function SectionRenderer({ section, data, theme, tracking, }: {
411
464
  section: LandingSection;
412
465
  data: SectionData;
413
466
  theme: SectionTheme;
467
+ tracking?: ClickTrackingContext;
414
468
  }): react_jsx_runtime.JSX.Element;
415
469
 
416
470
  /**
@@ -449,4 +503,12 @@ interface PixelInitializerProps {
449
503
  */
450
504
  declare function PixelInitializer({ onReady, onTheme }: PixelInitializerProps): null;
451
505
 
452
- export { AnalyticsTracker, type AuthActions, AuthInitializer, type AuthState, type AuthStore, type CartActions, CartInitializer, type CartState, type CartStore, LandingPage, type LandingPageProps, PixelInitializer, QRLandingPage, type QRLandingPageProps, type SearchParams, SectionRenderer, type SectionTheme, WhaleContext, type WhaleContextValue, WhaleProvider, type WhaleProviderProps, useAnalytics, useAuth, useCart, useCartItemCount, useCartTotal, useCategories, useCheckout, useCoupons, useCustomerAnalytics, useCustomerOrders, useLocations, useLoyalty, useProduct, useProducts, useRecommendations, useReviews, useSearch, useShipping, useWhaleClient, useWishlist };
506
+ declare function BehavioralTrackerComponent({ pathname }: {
507
+ pathname: string | null;
508
+ }): null;
509
+
510
+ declare function FingerprintCollector(): null;
511
+
512
+ declare function SessionRecorderComponent(): null;
513
+
514
+ export { AnalyticsTracker, type AuthActions, AuthInitializer, type AuthState, type AuthStore, BehavioralTrackerComponent, type CartActions, CartInitializer, type CartState, type CartStore, type ClickTrackingContext, FingerprintCollector, LandingPage, type LandingPageProps, PixelInitializer, QRLandingPage, type QRLandingPageProps, type SearchParams, SectionRenderer, type SectionTheme, SessionRecorderComponent, WhaleContext, type WhaleContextValue, WhaleProvider, type WhaleProviderProps, useAnalytics, useAuth, useCart, useCartItemCount, useCartTotal, useCategories, useCheckout, useCoupons, useCustomerAnalytics, useCustomerOrders, useDeals, useLocations, useLoyalty, useProduct, useProducts, useRecommendations, useReferral, useReviews, useSearch, useShipping, useWhaleClient, useWishlist };