@storepecker/storefront-core 2.1.0 → 2.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 (39) hide show
  1. package/dist/{address-DQEZzyUG.d.cts → address-DwBZHzbI.d.cts} +2 -2
  2. package/dist/{address-DQEZzyUG.d.ts → address-DwBZHzbI.d.ts} +2 -2
  3. package/dist/api/index.cjs +8 -0
  4. package/dist/api/index.d.cts +49 -16
  5. package/dist/api/index.d.ts +49 -16
  6. package/dist/api/index.js +8 -1
  7. package/dist/{booking-CZ59BXk3.d.ts → booking-BGvxHd-t.d.cts} +2 -2
  8. package/dist/{booking-BgZoXUBv.d.cts → booking-BSZ6NP-e.d.ts} +2 -2
  9. package/dist/{cart-BY8D8w-s.d.cts → cart-CfsntcpS.d.ts} +38 -5
  10. package/dist/{cart-GuhgeBBt.d.ts → cart-XumsY-y0.d.cts} +38 -5
  11. package/dist/checkout/index.d.cts +3 -3
  12. package/dist/checkout/index.d.ts +3 -3
  13. package/dist/collections-D4tvWcZp.d.ts +23 -0
  14. package/dist/collections-dCr3VEJo.d.cts +23 -0
  15. package/dist/components/index.d.cts +4 -4
  16. package/dist/components/index.d.ts +4 -4
  17. package/dist/hooks/index.d.cts +20 -17
  18. package/dist/hooks/index.d.ts +20 -17
  19. package/dist/models/index.d.cts +8 -8
  20. package/dist/models/index.d.ts +8 -8
  21. package/dist/{orders-DHJhJ3xz.d.cts → orders-CvCa7XWm.d.ts} +19 -17
  22. package/dist/{orders-DHJhJ3xz.d.ts → orders-Dm5Dq02y.d.cts} +19 -17
  23. package/dist/{phonepe-D7vn-9SR.d.cts → phonepe-dWMLZel6.d.cts} +3 -3
  24. package/dist/{phonepe-D7vn-9SR.d.ts → phonepe-dWMLZel6.d.ts} +3 -3
  25. package/dist/{product-Dfi0ke-4.d.cts → product-Daxj09p9.d.cts} +64 -61
  26. package/dist/{product-Dfi0ke-4.d.ts → product-Daxj09p9.d.ts} +64 -61
  27. package/dist/store/index.d.cts +8 -4
  28. package/dist/store/index.d.ts +8 -4
  29. package/dist/{useAddressForm-DgkCP1nG.d.cts → useAddressForm-DGbEn91-.d.cts} +1 -1
  30. package/dist/{useAddressForm-C-Uzug4d.d.ts → useAddressForm-cO3Au33k.d.ts} +1 -1
  31. package/dist/utils/index.d.cts +7 -6
  32. package/dist/utils/index.d.ts +7 -6
  33. package/dist/wishlist-Cow1wVqf.d.cts +10 -0
  34. package/dist/wishlist-gamNg0T1.d.ts +10 -0
  35. package/package.json +1 -1
  36. package/dist/collections-CenI9AlQ.d.cts +0 -40
  37. package/dist/collections-CenI9AlQ.d.ts +0 -40
  38. package/dist/wishlist-DHOvXmJj.d.cts +0 -41
  39. package/dist/wishlist-LfdFxddw.d.ts +0 -41
@@ -30,6 +30,22 @@ declare namespace Product {
30
30
  inventory?: number;
31
31
  }>;
32
32
  }
33
+ interface Product extends BaseProduct {
34
+ videos: any[];
35
+ variants_grouped_by: string;
36
+ category_name: string;
37
+ brand_name: string;
38
+ is_digital: boolean;
39
+ live_customisation_enabled: boolean;
40
+ customizations: Customization[];
41
+ }
42
+ interface Customization {
43
+ name: string;
44
+ customization_type: string;
45
+ customization_options?: Customization[];
46
+ is_mandatory?: boolean;
47
+ additional_price?: string;
48
+ }
33
49
  interface ProductVariant {
34
50
  id: number;
35
51
  name: string;
@@ -37,7 +53,7 @@ declare namespace Product {
37
53
  actual_price: string;
38
54
  selling_price: string;
39
55
  stock_quantity: number;
40
- product: number;
56
+ product: Product;
41
57
  is_active: boolean;
42
58
  is_featured: boolean;
43
59
  product_measurements: string;
@@ -46,7 +62,7 @@ declare namespace Product {
46
62
  back_order_limit: number;
47
63
  user_purchase_limit: number;
48
64
  status: string;
49
- product_photos: any[];
65
+ product_photos: Photos[];
50
66
  media: string;
51
67
  }
52
68
  interface ProductDetails {
@@ -59,12 +75,12 @@ declare namespace Product {
59
75
  description: string;
60
76
  slug: string;
61
77
  item_code: string;
62
- photos: any[];
78
+ photos: Photos[];
63
79
  product_category: number;
64
- brand: any;
80
+ brand: Brand | null;
65
81
  badge: string;
66
82
  multi_size: boolean;
67
- size_chart: any;
83
+ size_chart: string[];
68
84
  is_featured: boolean;
69
85
  back_order: boolean;
70
86
  back_order_limit: number;
@@ -79,17 +95,17 @@ declare namespace Product {
79
95
  description: string;
80
96
  slug: string;
81
97
  item_code: string;
82
- photos: any[];
98
+ photos: Photos[];
83
99
  product_category: number;
84
- brand: any;
100
+ brand: Brand | null;
85
101
  badge: string;
86
102
  multi_size: boolean;
87
- size_chart: any;
103
+ size_chart: string[];
88
104
  sku: string;
89
105
  actual_price: string;
90
106
  selling_price: string;
91
107
  stock_quantity: number;
92
- product: number;
108
+ product: Product;
93
109
  is_active: boolean;
94
110
  is_featured: boolean;
95
111
  is_wishlisted: boolean;
@@ -148,6 +164,37 @@ interface Photos {
148
164
  image: string;
149
165
  order: number;
150
166
  }
167
+ interface Brand {
168
+ id: number;
169
+ name: string;
170
+ }
171
+ interface ProductAttribute {
172
+ order: number;
173
+ name: string;
174
+ value: string;
175
+ }
176
+ interface BaseProduct {
177
+ id: number;
178
+ name: string;
179
+ description: string;
180
+ slug: string;
181
+ item_code: string;
182
+ product_category: number;
183
+ brand: Brand | null;
184
+ badge: string;
185
+ multi_size: boolean;
186
+ size_chart: string[];
187
+ is_featured: boolean;
188
+ back_order: boolean;
189
+ back_order_limit: number;
190
+ user_purchase_limit: number;
191
+ product_status: string;
192
+ is_active: boolean;
193
+ photos: string[];
194
+ attributes: {
195
+ [key: string]: ProductAttribute[];
196
+ };
197
+ }
151
198
  interface Attributes {
152
199
  [key: string]: {
153
200
  name: string;
@@ -169,7 +216,7 @@ declare namespace ProductDetail {
169
216
  product_photos: Photos[];
170
217
  media: string;
171
218
  sku: string;
172
- variants: Variant[];
219
+ variants: Product.ProductVariant[];
173
220
  variantAttributes: Array<VariantAttribute>;
174
221
  quantity: number;
175
222
  is_wishlisted: boolean;
@@ -196,30 +243,10 @@ declare namespace ProductDetail {
196
243
  [key: string]: {
197
244
  name: string;
198
245
  value: string;
199
- };
200
- slug: any;
201
- }
202
- interface Product {
203
- id: number;
204
- name: string;
205
- description: string;
246
+ } | string;
206
247
  slug: string;
207
- item_code: string;
208
- product_category: number;
209
- brand: any;
210
- badge: string;
211
- multi_size: boolean;
212
- size_chart: string[];
213
- is_featured: boolean;
214
- back_order: boolean;
215
- back_order_limit: number;
216
- user_purchase_limit: number;
217
- status: string;
218
- is_active: boolean;
219
- photos: any[];
220
- attributes: {
221
- [key: string]: ProductAttribute[];
222
- };
248
+ }
249
+ interface Product extends BaseProduct {
223
250
  customizations: Customization[];
224
251
  }
225
252
  interface Customization {
@@ -233,11 +260,6 @@ declare namespace ProductDetail {
233
260
  name: string;
234
261
  value: string;
235
262
  }
236
- interface ProductAttribute {
237
- order: number;
238
- name: string;
239
- value: string;
240
- }
241
263
  interface Variant {
242
264
  id: number;
243
265
  name: string;
@@ -245,33 +267,14 @@ declare namespace ProductDetail {
245
267
  actual_price: string;
246
268
  selling_price: string;
247
269
  stock_quantity: number;
248
- product: Product2;
270
+ product: Product;
249
271
  is_featured: boolean;
250
272
  product_measurements: string;
251
273
  attributes: Attributes;
252
274
  status: string;
253
- product_photos: any[];
275
+ product_photos: Photos[];
254
276
  media: string;
255
277
  }
256
- interface Product2 {
257
- id: number;
258
- name: string;
259
- description: string;
260
- slug: string;
261
- item_code: string;
262
- product_category: number;
263
- brand: any;
264
- badge: string;
265
- multi_size: boolean;
266
- size_chart: string[];
267
- is_featured: boolean;
268
- back_order: boolean;
269
- back_order_limit: number;
270
- user_purchase_limit: number;
271
- status: string;
272
- is_active: boolean;
273
- photos: any[];
274
- }
275
278
  interface DigitalProductVariant {
276
279
  status: "active" | "inactive";
277
280
  download_link: string;
@@ -304,7 +307,7 @@ interface BookingService {
304
307
  slot_duration: number;
305
308
  available_days: string[];
306
309
  operating_hours: OperatingHours;
307
- blocked_dates: any[];
310
+ blocked_dates: string[];
308
311
  special_hours: SpecialHours;
309
312
  slot_duration_unit: string;
310
313
  max_bookings_per_slot: number;
@@ -327,4 +330,4 @@ interface TimeSlot {
327
330
  interface SpecialHours {
328
331
  }
329
332
 
330
- export { type Attributes as A, type BookingService as B, type CustomField as C, DEFAULT_TOAST_CONFIG as D, type OperatingHours as O, type Photos as P, type SpecialHours as S, type TimeSlot as T, USER_CART as U, type WishlistState as W, type BookingServiceDate as a, Product as b, ProductDetail as c, SLICE_STATUS as d, ADDRESS_FORM_SESSION_KEY as e, ALLOWED_COUNTRIES as f, PRODUCT_STATUSES as g, USER_CREDENTIALS as h, USER_CRED_REFRESH_TOKEN as i, USER_CRED_TOKEN as j, pathNameMap as p };
333
+ export { type Attributes as A, type BaseProduct as B, type CustomField as C, DEFAULT_TOAST_CONFIG as D, type OperatingHours as O, type Photos as P, type SpecialHours as S, type TimeSlot as T, USER_CART as U, type WishlistState as W, type BookingService as a, type BookingServiceDate as b, type Brand as c, Product as d, type ProductAttribute as e, ProductDetail as f, SLICE_STATUS as g, ADDRESS_FORM_SESSION_KEY as h, ALLOWED_COUNTRIES as i, PRODUCT_STATUSES as j, USER_CREDENTIALS as k, USER_CRED_REFRESH_TOKEN as l, USER_CRED_TOKEN as m, pathNameMap as p };
@@ -1,7 +1,7 @@
1
1
  import * as zustand from 'zustand';
2
- import { a as CartState, C as Cart } from '../cart-BY8D8w-s.cjs';
3
- import { U as User, W as Wishlist } from '../wishlist-DHOvXmJj.cjs';
4
- import { b as Product } from '../product-Dfi0ke-4.cjs';
2
+ import { a as CartState, C as Cart, U as User } from '../cart-XumsY-y0.cjs';
3
+ import { W as Wishlist } from '../wishlist-Cow1wVqf.cjs';
4
+ import { d as Product } from '../product-Daxj09p9.cjs';
5
5
  import 'react-toastify';
6
6
 
7
7
  interface CartStore extends CartState {
@@ -20,7 +20,11 @@ interface CartStore extends CartState {
20
20
  addToCart: (items: Array<{
21
21
  variant_id: number;
22
22
  quantity: number;
23
- }>, customizationInputs?: any, addressId?: number) => Promise<void>;
23
+ }>, customizationInputs?: Array<{
24
+ customization_option: number;
25
+ customer_input: string;
26
+ product_variant: number;
27
+ }>, addressId?: number) => Promise<void>;
24
28
  removeFromCart: (items: Array<{
25
29
  variant_id: number;
26
30
  quantity: number;
@@ -1,7 +1,7 @@
1
1
  import * as zustand from 'zustand';
2
- import { a as CartState, C as Cart } from '../cart-GuhgeBBt.js';
3
- import { U as User, W as Wishlist } from '../wishlist-LfdFxddw.js';
4
- import { b as Product } from '../product-Dfi0ke-4.js';
2
+ import { a as CartState, C as Cart, U as User } from '../cart-CfsntcpS.js';
3
+ import { W as Wishlist } from '../wishlist-gamNg0T1.js';
4
+ import { d as Product } from '../product-Daxj09p9.js';
5
5
  import 'react-toastify';
6
6
 
7
7
  interface CartStore extends CartState {
@@ -20,7 +20,11 @@ interface CartStore extends CartState {
20
20
  addToCart: (items: Array<{
21
21
  variant_id: number;
22
22
  quantity: number;
23
- }>, customizationInputs?: any, addressId?: number) => Promise<void>;
23
+ }>, customizationInputs?: Array<{
24
+ customization_option: number;
25
+ customer_input: string;
26
+ product_variant: number;
27
+ }>, addressId?: number) => Promise<void>;
24
28
  removeFromCart: (items: Array<{
25
29
  variant_id: number;
26
30
  quantity: number;
@@ -1,6 +1,6 @@
1
1
  import { ChangeEvent } from 'react';
2
2
  import { useFormik } from 'formik';
3
- import { A as Address } from './address-DQEZzyUG.cjs';
3
+ import { A as Address } from './address-DwBZHzbI.cjs';
4
4
 
5
5
  interface UseAddressFormOptions {
6
6
  /** Existing address for edit mode. When provided, form prefills from this address. */
@@ -1,6 +1,6 @@
1
1
  import { ChangeEvent } from 'react';
2
2
  import { useFormik } from 'formik';
3
- import { A as Address } from './address-DQEZzyUG.js';
3
+ import { A as Address } from './address-DwBZHzbI.js';
4
4
 
5
5
  interface UseAddressFormOptions {
6
6
  /** Existing address for edit mode. When provided, form prefills from this address. */
@@ -1,11 +1,11 @@
1
- import { c as ProductDetail, b as Product, O as OperatingHours, T as TimeSlot, A as Attributes } from '../product-Dfi0ke-4.cjs';
2
- export { e as ADDRESS_FORM_SESSION_KEY, f as ALLOWED_COUNTRIES, D as DEFAULT_TOAST_CONFIG, g as PRODUCT_STATUSES, d as SLICE_STATUS, U as USER_CART, h as USER_CREDENTIALS, i as USER_CRED_REFRESH_TOKEN, j as USER_CRED_TOKEN, p as pathNameMap } from '../product-Dfi0ke-4.cjs';
3
- import { C as Cart, b as Category$1 } from '../cart-BY8D8w-s.cjs';
1
+ import { f as ProductDetail, d as Product, O as OperatingHours, T as TimeSlot, A as Attributes } from '../product-Daxj09p9.cjs';
2
+ export { h as ADDRESS_FORM_SESSION_KEY, i as ALLOWED_COUNTRIES, D as DEFAULT_TOAST_CONFIG, j as PRODUCT_STATUSES, g as SLICE_STATUS, U as USER_CART, k as USER_CREDENTIALS, l as USER_CRED_REFRESH_TOKEN, m as USER_CRED_TOKEN, p as pathNameMap } from '../product-Daxj09p9.cjs';
3
+ import { C as Cart, b as Category$1 } from '../cart-XumsY-y0.cjs';
4
4
  export { S as SnapstoreConfig, g as getApiEndpoint, a as getCloudFront, b as getConfig, c as getPhonePeApiEndpoint, d as getPublicApiEndpoint, e as getSecretKey, f as getStoreId, i as initConfig } from '../index-DTyIuLuI.cjs';
5
- import { C as CollectionResponse } from '../collections-CenI9AlQ.cjs';
5
+ import { C as CollectionResponse } from '../collections-dCr3VEJo.cjs';
6
6
  import { AxiosResponse } from 'axios';
7
- import { a as PhonePe } from '../phonepe-D7vn-9SR.cjs';
8
- import { O as Order } from '../orders-DHJhJ3xz.cjs';
7
+ import { a as PhonePe } from '../phonepe-dWMLZel6.cjs';
8
+ import { O as Order } from '../orders-Dm5Dq02y.cjs';
9
9
  import 'react-toastify';
10
10
 
11
11
  declare function setAuthTokenChangeCallback(callback: (token: string | undefined) => void): void;
@@ -348,6 +348,7 @@ interface ImageWithText {
348
348
  showCta: boolean;
349
349
  ctaText: string;
350
350
  ctaLink: string;
351
+ imagePosition: 'left' | 'right';
351
352
  }
352
353
  interface Collections {
353
354
  type: "collections";
@@ -1,11 +1,11 @@
1
- import { c as ProductDetail, b as Product, O as OperatingHours, T as TimeSlot, A as Attributes } from '../product-Dfi0ke-4.js';
2
- export { e as ADDRESS_FORM_SESSION_KEY, f as ALLOWED_COUNTRIES, D as DEFAULT_TOAST_CONFIG, g as PRODUCT_STATUSES, d as SLICE_STATUS, U as USER_CART, h as USER_CREDENTIALS, i as USER_CRED_REFRESH_TOKEN, j as USER_CRED_TOKEN, p as pathNameMap } from '../product-Dfi0ke-4.js';
3
- import { C as Cart, b as Category$1 } from '../cart-GuhgeBBt.js';
1
+ import { f as ProductDetail, d as Product, O as OperatingHours, T as TimeSlot, A as Attributes } from '../product-Daxj09p9.js';
2
+ export { h as ADDRESS_FORM_SESSION_KEY, i as ALLOWED_COUNTRIES, D as DEFAULT_TOAST_CONFIG, j as PRODUCT_STATUSES, g as SLICE_STATUS, U as USER_CART, k as USER_CREDENTIALS, l as USER_CRED_REFRESH_TOKEN, m as USER_CRED_TOKEN, p as pathNameMap } from '../product-Daxj09p9.js';
3
+ import { C as Cart, b as Category$1 } from '../cart-CfsntcpS.js';
4
4
  export { S as SnapstoreConfig, g as getApiEndpoint, a as getCloudFront, b as getConfig, c as getPhonePeApiEndpoint, d as getPublicApiEndpoint, e as getSecretKey, f as getStoreId, i as initConfig } from '../index-DTyIuLuI.js';
5
- import { C as CollectionResponse } from '../collections-CenI9AlQ.js';
5
+ import { C as CollectionResponse } from '../collections-D4tvWcZp.js';
6
6
  import { AxiosResponse } from 'axios';
7
- import { a as PhonePe } from '../phonepe-D7vn-9SR.js';
8
- import { O as Order } from '../orders-DHJhJ3xz.js';
7
+ import { a as PhonePe } from '../phonepe-dWMLZel6.js';
8
+ import { O as Order } from '../orders-CvCa7XWm.js';
9
9
  import 'react-toastify';
10
10
 
11
11
  declare function setAuthTokenChangeCallback(callback: (token: string | undefined) => void): void;
@@ -348,6 +348,7 @@ interface ImageWithText {
348
348
  showCta: boolean;
349
349
  ctaText: string;
350
350
  ctaLink: string;
351
+ imagePosition: 'left' | 'right';
351
352
  }
352
353
  interface Collections {
353
354
  type: "collections";
@@ -0,0 +1,10 @@
1
+ import { f as ProductDetail } from './product-Daxj09p9.cjs';
2
+
3
+ declare namespace Wishlist {
4
+ interface Root {
5
+ wishlist_count: number;
6
+ product_variants: ProductDetail.Root[];
7
+ }
8
+ }
9
+
10
+ export { Wishlist as W };
@@ -0,0 +1,10 @@
1
+ import { f as ProductDetail } from './product-Daxj09p9.js';
2
+
3
+ declare namespace Wishlist {
4
+ interface Root {
5
+ wishlist_count: number;
6
+ product_variants: ProductDetail.Root[];
7
+ }
8
+ }
9
+
10
+ export { Wishlist as W };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storepecker/storefront-core",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "description": "Shared logic and utilities for Snapstore themes",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,40 +0,0 @@
1
- interface CollectionResponse {
2
- id: number;
3
- title: string;
4
- description: string;
5
- slug: string;
6
- is_published: boolean;
7
- image: string | null;
8
- published_at: string | null;
9
- variants?: any[];
10
- }
11
- interface singleCollection {
12
- slug: string;
13
- }
14
- interface Attributes {
15
- [key: string]: {
16
- name: string;
17
- value: string;
18
- };
19
- }
20
- interface CollectionVariant {
21
- id: number;
22
- name: string;
23
- sku: string;
24
- actual_price: string;
25
- selling_price: string;
26
- stock_quantity: number;
27
- product: number;
28
- is_active: boolean;
29
- is_featured: boolean;
30
- product_measurements: string;
31
- attributes: Attributes;
32
- back_order: boolean;
33
- back_order_limit: number;
34
- user_purchase_limit: number;
35
- status: string;
36
- product_photos: any[];
37
- media: string;
38
- }
39
-
40
- export type { Attributes as A, CollectionResponse as C, CollectionVariant as a, singleCollection as s };
@@ -1,40 +0,0 @@
1
- interface CollectionResponse {
2
- id: number;
3
- title: string;
4
- description: string;
5
- slug: string;
6
- is_published: boolean;
7
- image: string | null;
8
- published_at: string | null;
9
- variants?: any[];
10
- }
11
- interface singleCollection {
12
- slug: string;
13
- }
14
- interface Attributes {
15
- [key: string]: {
16
- name: string;
17
- value: string;
18
- };
19
- }
20
- interface CollectionVariant {
21
- id: number;
22
- name: string;
23
- sku: string;
24
- actual_price: string;
25
- selling_price: string;
26
- stock_quantity: number;
27
- product: number;
28
- is_active: boolean;
29
- is_featured: boolean;
30
- product_measurements: string;
31
- attributes: Attributes;
32
- back_order: boolean;
33
- back_order_limit: number;
34
- user_purchase_limit: number;
35
- status: string;
36
- product_photos: any[];
37
- media: string;
38
- }
39
-
40
- export type { Attributes as A, CollectionResponse as C, CollectionVariant as a, singleCollection as s };
@@ -1,41 +0,0 @@
1
- import { d as SLICE_STATUS, c as ProductDetail } from './product-Dfi0ke-4.cjs';
2
-
3
- declare namespace User {
4
- interface Root {
5
- customer_name: string;
6
- phone: string;
7
- email: string;
8
- date_of_birth: string;
9
- country_code: string;
10
- gender: string;
11
- }
12
- interface UserState {
13
- user: LoginUserData | null;
14
- isAuthenticated: boolean;
15
- status: SLICE_STATUS;
16
- }
17
- interface LoginUserData {
18
- email: string;
19
- first_name: string;
20
- last_name: string;
21
- access: string;
22
- refresh: string;
23
- user_id: number;
24
- phone_number: string;
25
- }
26
- interface UserDetailsPayload {
27
- customer_name: string;
28
- gender: string;
29
- date_of_birth: string;
30
- }
31
- type LoginMethod = "email_otp" | "phone_otp";
32
- }
33
-
34
- declare namespace Wishlist {
35
- interface Root {
36
- wishlist_count: number;
37
- product_variants: ProductDetail.Root[];
38
- }
39
- }
40
-
41
- export { User as U, Wishlist as W };
@@ -1,41 +0,0 @@
1
- import { d as SLICE_STATUS, c as ProductDetail } from './product-Dfi0ke-4.js';
2
-
3
- declare namespace User {
4
- interface Root {
5
- customer_name: string;
6
- phone: string;
7
- email: string;
8
- date_of_birth: string;
9
- country_code: string;
10
- gender: string;
11
- }
12
- interface UserState {
13
- user: LoginUserData | null;
14
- isAuthenticated: boolean;
15
- status: SLICE_STATUS;
16
- }
17
- interface LoginUserData {
18
- email: string;
19
- first_name: string;
20
- last_name: string;
21
- access: string;
22
- refresh: string;
23
- user_id: number;
24
- phone_number: string;
25
- }
26
- interface UserDetailsPayload {
27
- customer_name: string;
28
- gender: string;
29
- date_of_birth: string;
30
- }
31
- type LoginMethod = "email_otp" | "phone_otp";
32
- }
33
-
34
- declare namespace Wishlist {
35
- interface Root {
36
- wishlist_count: number;
37
- product_variants: ProductDetail.Root[];
38
- }
39
- }
40
-
41
- export { User as U, Wishlist as W };