medusa-storefront-data 2.4.0 → 2.5.3

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 (214) hide show
  1. package/HOMEPAGE_CONFIG.md +113 -6
  2. package/package.json +6 -116
  3. package/src/server/brand-pillars-from-categories.ts +156 -0
  4. package/src/server/cart.ts +21 -21
  5. package/src/server/customer.ts +11 -11
  6. package/src/server/dynamic-config.ts +130 -181
  7. package/src/server/fulfillment.ts +3 -3
  8. package/src/server/help-faq-section-defaults.json +92 -0
  9. package/src/server/help-sections/help-faq.ts +25 -0
  10. package/src/server/help-sections/index.ts +8 -0
  11. package/src/server/home.ts +36 -211
  12. package/src/server/homepage-config.types.ts +24 -0
  13. package/src/server/homepage-section-defaults.ts +3 -0
  14. package/src/server/normalize-homepage-config.ts +279 -0
  15. package/src/server/orders.ts +6 -6
  16. package/src/server/page-input.ts +3 -1
  17. package/src/server/payment-details.ts +5 -5
  18. package/src/server/payment.ts +2 -2
  19. package/src/server/regions.ts +2 -2
  20. package/src/server/shoppable-looks.ts +1 -1
  21. package/src/util/store-client.ts +0 -3
  22. package/dist/segment-data/default-page-input.json +0 -191
  23. package/dist/src/config.d.ts +0 -3
  24. package/dist/src/config.d.ts.map +0 -1
  25. package/dist/src/config.js +0 -31
  26. package/dist/src/cookies.d.ts +0 -23
  27. package/dist/src/cookies.d.ts.map +0 -1
  28. package/dist/src/cookies.js +0 -140
  29. package/dist/src/edge.d.ts +0 -3
  30. package/dist/src/edge.d.ts.map +0 -1
  31. package/dist/src/edge.js +0 -1
  32. package/dist/src/middleware.d.ts +0 -3
  33. package/dist/src/middleware.d.ts.map +0 -1
  34. package/dist/src/middleware.js +0 -1
  35. package/dist/src/server/cart.d.ts +0 -96
  36. package/dist/src/server/cart.d.ts.map +0 -1
  37. package/dist/src/server/cart.js +0 -797
  38. package/dist/src/server/categories.d.ts +0 -4
  39. package/dist/src/server/categories.d.ts.map +0 -1
  40. package/dist/src/server/categories.js +0 -34
  41. package/dist/src/server/collections.d.ts +0 -8
  42. package/dist/src/server/collections.d.ts.map +0 -1
  43. package/dist/src/server/collections.js +0 -39
  44. package/dist/src/server/config-merge.d.ts +0 -3
  45. package/dist/src/server/config-merge.d.ts.map +0 -1
  46. package/dist/src/server/config-merge.js +0 -31
  47. package/dist/src/server/contact.d.ts +0 -34
  48. package/dist/src/server/contact.d.ts.map +0 -1
  49. package/dist/src/server/contact.js +0 -57
  50. package/dist/src/server/customer-registration.d.ts +0 -142
  51. package/dist/src/server/customer-registration.d.ts.map +0 -1
  52. package/dist/src/server/customer-registration.js +0 -295
  53. package/dist/src/server/customer.d.ts +0 -48
  54. package/dist/src/server/customer.d.ts.map +0 -1
  55. package/dist/src/server/customer.js +0 -413
  56. package/dist/src/server/dynamic-config.d.ts +0 -240
  57. package/dist/src/server/dynamic-config.d.ts.map +0 -1
  58. package/dist/src/server/dynamic-config.js +0 -703
  59. package/dist/src/server/fulfillment.d.ts +0 -5
  60. package/dist/src/server/fulfillment.d.ts.map +0 -1
  61. package/dist/src/server/fulfillment.js +0 -47
  62. package/dist/src/server/guest.d.ts +0 -81
  63. package/dist/src/server/guest.d.ts.map +0 -1
  64. package/dist/src/server/guest.js +0 -183
  65. package/dist/src/server/home-sections/about-brand.d.ts +0 -9
  66. package/dist/src/server/home-sections/about-brand.d.ts.map +0 -1
  67. package/dist/src/server/home-sections/about-brand.js +0 -9
  68. package/dist/src/server/home-sections/baptism-picks.d.ts +0 -10
  69. package/dist/src/server/home-sections/baptism-picks.d.ts.map +0 -1
  70. package/dist/src/server/home-sections/baptism-picks.js +0 -27
  71. package/dist/src/server/home-sections/baptism.d.ts +0 -13
  72. package/dist/src/server/home-sections/baptism.d.ts.map +0 -1
  73. package/dist/src/server/home-sections/baptism.js +0 -43
  74. package/dist/src/server/home-sections/blog-posts.d.ts +0 -9
  75. package/dist/src/server/home-sections/blog-posts.d.ts.map +0 -1
  76. package/dist/src/server/home-sections/blog-posts.js +0 -9
  77. package/dist/src/server/home-sections/brand-marquee.d.ts +0 -8
  78. package/dist/src/server/home-sections/brand-marquee.d.ts.map +0 -1
  79. package/dist/src/server/home-sections/brand-marquee.js +0 -7
  80. package/dist/src/server/home-sections/brand-pillars.d.ts +0 -9
  81. package/dist/src/server/home-sections/brand-pillars.d.ts.map +0 -1
  82. package/dist/src/server/home-sections/brand-pillars.js +0 -9
  83. package/dist/src/server/home-sections/category-pills.d.ts +0 -9
  84. package/dist/src/server/home-sections/category-pills.d.ts.map +0 -1
  85. package/dist/src/server/home-sections/category-pills.js +0 -19
  86. package/dist/src/server/home-sections/celebrity-trust.d.ts +0 -12
  87. package/dist/src/server/home-sections/celebrity-trust.d.ts.map +0 -1
  88. package/dist/src/server/home-sections/celebrity-trust.js +0 -27
  89. package/dist/src/server/home-sections/features.d.ts +0 -9
  90. package/dist/src/server/home-sections/features.d.ts.map +0 -1
  91. package/dist/src/server/home-sections/features.js +0 -9
  92. package/dist/src/server/home-sections/hero.d.ts +0 -9
  93. package/dist/src/server/home-sections/hero.d.ts.map +0 -1
  94. package/dist/src/server/home-sections/hero.js +0 -9
  95. package/dist/src/server/home-sections/instagram-posts.d.ts +0 -9
  96. package/dist/src/server/home-sections/instagram-posts.d.ts.map +0 -1
  97. package/dist/src/server/home-sections/instagram-posts.js +0 -9
  98. package/dist/src/server/home-sections/loved-by-moms.d.ts +0 -12
  99. package/dist/src/server/home-sections/loved-by-moms.d.ts.map +0 -1
  100. package/dist/src/server/home-sections/loved-by-moms.js +0 -20
  101. package/dist/src/server/home-sections/luxe-favourites.d.ts +0 -11
  102. package/dist/src/server/home-sections/luxe-favourites.d.ts.map +0 -1
  103. package/dist/src/server/home-sections/luxe-favourites.js +0 -19
  104. package/dist/src/server/home-sections/new-arrivals-classic.d.ts +0 -8
  105. package/dist/src/server/home-sections/new-arrivals-classic.d.ts.map +0 -1
  106. package/dist/src/server/home-sections/new-arrivals-classic.js +0 -10
  107. package/dist/src/server/home-sections/new-arrivals.d.ts +0 -12
  108. package/dist/src/server/home-sections/new-arrivals.d.ts.map +0 -1
  109. package/dist/src/server/home-sections/new-arrivals.js +0 -28
  110. package/dist/src/server/home-sections/promo-announcements.d.ts +0 -7
  111. package/dist/src/server/home-sections/promo-announcements.d.ts.map +0 -1
  112. package/dist/src/server/home-sections/promo-announcements.js +0 -7
  113. package/dist/src/server/home-sections/promo-countdown.d.ts +0 -6
  114. package/dist/src/server/home-sections/promo-countdown.d.ts.map +0 -1
  115. package/dist/src/server/home-sections/promo-countdown.js +0 -5
  116. package/dist/src/server/home-sections/shared.d.ts +0 -10
  117. package/dist/src/server/home-sections/shared.d.ts.map +0 -1
  118. package/dist/src/server/home-sections/shared.js +0 -29
  119. package/dist/src/server/home-sections/shop-by-age.d.ts +0 -9
  120. package/dist/src/server/home-sections/shop-by-age.d.ts.map +0 -1
  121. package/dist/src/server/home-sections/shop-by-age.js +0 -17
  122. package/dist/src/server/home-sections/shop-by-category.d.ts +0 -10
  123. package/dist/src/server/home-sections/shop-by-category.d.ts.map +0 -1
  124. package/dist/src/server/home-sections/shop-by-category.js +0 -17
  125. package/dist/src/server/home-sections/testimonials.d.ts +0 -9
  126. package/dist/src/server/home-sections/testimonials.d.ts.map +0 -1
  127. package/dist/src/server/home-sections/testimonials.js +0 -9
  128. package/dist/src/server/home-sections/theme-dresses.d.ts +0 -12
  129. package/dist/src/server/home-sections/theme-dresses.d.ts.map +0 -1
  130. package/dist/src/server/home-sections/theme-dresses.js +0 -27
  131. package/dist/src/server/home-sections/video-stories.d.ts +0 -9
  132. package/dist/src/server/home-sections/video-stories.d.ts.map +0 -1
  133. package/dist/src/server/home-sections/video-stories.js +0 -9
  134. package/dist/src/server/home-sections/why-choose-us.d.ts +0 -9
  135. package/dist/src/server/home-sections/why-choose-us.d.ts.map +0 -1
  136. package/dist/src/server/home-sections/why-choose-us.js +0 -9
  137. package/dist/src/server/home.d.ts +0 -62
  138. package/dist/src/server/home.d.ts.map +0 -1
  139. package/dist/src/server/home.js +0 -122
  140. package/dist/src/server/homepage-config.types.d.ts +0 -274
  141. package/dist/src/server/homepage-config.types.d.ts.map +0 -1
  142. package/dist/src/server/homepage-config.types.js +0 -33
  143. package/dist/src/server/homepage-section-defaults.d.ts +0 -188
  144. package/dist/src/server/homepage-section-defaults.d.ts.map +0 -1
  145. package/dist/src/server/homepage-section-defaults.js +0 -188
  146. package/dist/src/server/index.d.ts +0 -25
  147. package/dist/src/server/index.d.ts.map +0 -1
  148. package/dist/src/server/index.js +0 -24
  149. package/dist/src/server/locale-actions.d.ts +0 -14
  150. package/dist/src/server/locale-actions.d.ts.map +0 -1
  151. package/dist/src/server/locale-actions.js +0 -58
  152. package/dist/src/server/locales.d.ts +0 -8
  153. package/dist/src/server/locales.d.ts.map +0 -1
  154. package/dist/src/server/locales.js +0 -12
  155. package/dist/src/server/notifications.d.ts +0 -2
  156. package/dist/src/server/notifications.d.ts.map +0 -1
  157. package/dist/src/server/notifications.js +0 -20
  158. package/dist/src/server/onboarding.d.ts +0 -2
  159. package/dist/src/server/onboarding.d.ts.map +0 -1
  160. package/dist/src/server/onboarding.js +0 -8
  161. package/dist/src/server/orders.d.ts +0 -63
  162. package/dist/src/server/orders.d.ts.map +0 -1
  163. package/dist/src/server/orders.js +0 -230
  164. package/dist/src/server/page-input.d.ts +0 -19
  165. package/dist/src/server/page-input.d.ts.map +0 -1
  166. package/dist/src/server/page-input.js +0 -40
  167. package/dist/src/server/payment-details.d.ts +0 -5
  168. package/dist/src/server/payment-details.d.ts.map +0 -1
  169. package/dist/src/server/payment-details.js +0 -28
  170. package/dist/src/server/payment.d.ts +0 -3
  171. package/dist/src/server/payment.d.ts.map +0 -1
  172. package/dist/src/server/payment.js +0 -13
  173. package/dist/src/server/pincode.d.ts +0 -7
  174. package/dist/src/server/pincode.d.ts.map +0 -1
  175. package/dist/src/server/pincode.js +0 -30
  176. package/dist/src/server/products.d.ts +0 -54
  177. package/dist/src/server/products.d.ts.map +0 -1
  178. package/dist/src/server/products.js +0 -154
  179. package/dist/src/server/regions.d.ts +0 -5
  180. package/dist/src/server/regions.d.ts.map +0 -1
  181. package/dist/src/server/regions.js +0 -57
  182. package/dist/src/server/resolve-home-segment-data.d.ts +0 -25
  183. package/dist/src/server/resolve-home-segment-data.d.ts.map +0 -1
  184. package/dist/src/server/resolve-home-segment-data.js +0 -20
  185. package/dist/src/server/returns.d.ts +0 -29
  186. package/dist/src/server/returns.d.ts.map +0 -1
  187. package/dist/src/server/returns.js +0 -132
  188. package/dist/src/server/shoppable-looks.d.ts +0 -17
  189. package/dist/src/server/shoppable-looks.d.ts.map +0 -1
  190. package/dist/src/server/shoppable-looks.js +0 -136
  191. package/dist/src/server/swaps.d.ts +0 -15
  192. package/dist/src/server/swaps.d.ts.map +0 -1
  193. package/dist/src/server/swaps.js +0 -89
  194. package/dist/src/server/variants.d.ts +0 -3
  195. package/dist/src/server/variants.d.ts.map +0 -1
  196. package/dist/src/server/variants.js +0 -15
  197. package/dist/src/server/wishlist.d.ts +0 -11
  198. package/dist/src/server/wishlist.d.ts.map +0 -1
  199. package/dist/src/server/wishlist.js +0 -49
  200. package/dist/src/util/get-locale-header.d.ts +0 -4
  201. package/dist/src/util/get-locale-header.d.ts.map +0 -1
  202. package/dist/src/util/get-locale-header.js +0 -7
  203. package/dist/src/util/medusa-error.d.ts +0 -2
  204. package/dist/src/util/medusa-error.d.ts.map +0 -1
  205. package/dist/src/util/medusa-error.js +0 -18
  206. package/dist/src/util/revalidate-cart.d.ts +0 -2
  207. package/dist/src/util/revalidate-cart.d.ts.map +0 -1
  208. package/dist/src/util/revalidate-cart.js +0 -8
  209. package/dist/src/util/sort-products.d.ts +0 -3
  210. package/dist/src/util/sort-products.d.ts.map +0 -1
  211. package/dist/src/util/sort-products.js +0 -1
  212. package/dist/src/util/store-client.d.ts +0 -13
  213. package/dist/src/util/store-client.d.ts.map +0 -1
  214. package/dist/src/util/store-client.js +0 -77
@@ -3,6 +3,7 @@ import "server-only"
3
3
  import defaultPageInputJson from "../../segment-data/default-page-input.json"
4
4
  import type { HomepageConfig } from "./homepage-config.types"
5
5
  import { mergeSectionBlock } from "./config-merge"
6
+ import { normalizeHomepageConfig } from "./normalize-homepage-config"
6
7
 
7
8
  /** Full `homepage-config` blob passed from the main project into pages and layout. */
8
9
  export type StorefrontPageInput = HomepageConfig
@@ -60,5 +61,6 @@ export function resolvePageInput(
60
61
  export function homepageConfigFromDynamicResponse(
61
62
  response: { "homepage-config"?: HomepageConfig | null } | null | undefined
62
63
  ): StorefrontPageInput {
63
- return mergePageInputWithDefaults(response?.["homepage-config"] ?? null)
64
+ const normalized = normalizeHomepageConfig(response?.["homepage-config"] ?? null)
65
+ return mergePageInputWithDefaults(normalized)
64
66
  }
@@ -6,11 +6,11 @@ import {
6
6
  medusaPaymentDetailMakeDefault,
7
7
  medusaPaymentDetailsList,
8
8
  } from "medusa-services/payment"
9
- import { getStoreCartClientOptions } from "../util/store-client"
9
+ import { getStoreClientOptions } from "../util/store-client"
10
10
 
11
11
  export const listPaymentDetails = async () => {
12
12
  try {
13
- const options = await getStoreCartClientOptions()
13
+ const options = await getStoreClientOptions()
14
14
  if (!options.authorization) {
15
15
  return []
16
16
  }
@@ -26,16 +26,16 @@ export const createPaymentDetail = async (
26
26
  type: "upi" | "bank" | "card",
27
27
  detail_json: Record<string, string>
28
28
  ) => {
29
- const options = await getStoreCartClientOptions()
29
+ const options = await getStoreClientOptions()
30
30
  return medusaPaymentDetailCreate(type, detail_json, options)
31
31
  }
32
32
 
33
33
  export const makeDefaultPaymentDetail = async (id: string) => {
34
- const options = await getStoreCartClientOptions()
34
+ const options = await getStoreClientOptions()
35
35
  return medusaPaymentDetailMakeDefault(id, options)
36
36
  }
37
37
 
38
38
  export const deletePaymentDetail = async (id: string) => {
39
- const options = await getStoreCartClientOptions()
39
+ const options = await getStoreClientOptions()
40
40
  return medusaPaymentDetailDelete(id, options)
41
41
  }
@@ -2,11 +2,11 @@
2
2
 
3
3
  import { HttpTypes } from "@medusajs/types"
4
4
  import { medusaPaymentProvidersList } from "medusa-services/payment"
5
- import { getStoreCartClientOptions } from "../util/store-client"
5
+ import { getStoreClientOptions } from "../util/store-client"
6
6
 
7
7
  export const listCartPaymentMethods = async (regionId: string) => {
8
8
  try {
9
- const options = await getStoreCartClientOptions()
9
+ const options = await getStoreClientOptions()
10
10
  const { payment_providers } = await medusaPaymentProvidersList(regionId, options)
11
11
  return payment_providers.sort((a, b) => (a.id > b.id ? 1 : -1)) as HttpTypes.StorePaymentProvider[]
12
12
  } catch {
@@ -6,7 +6,7 @@ import medusaError from "../util/medusa-error"
6
6
  import { HttpTypes } from "@medusajs/types"
7
7
  import { getCacheOptions } from "../cookies"
8
8
  import { medusaRegionList } from "medusa-services/regions"
9
- import { getStoreCartClientOptions } from "../util/store-client"
9
+ import { getStoreClientOptions } from "../util/store-client"
10
10
 
11
11
  export const listRegions = async () => {
12
12
  const next = {
@@ -46,7 +46,7 @@ export const getRegion = async (countryCode: string) => {
46
46
  return regionMap.get(countryCode)
47
47
  }
48
48
 
49
- const options = await getStoreCartClientOptions()
49
+ const options = await getStoreClientOptions()
50
50
  const { regions } = await medusaRegionList(options)
51
51
 
52
52
  if (!regions?.length) {
@@ -116,7 +116,7 @@ async function fetchProductsForLook(
116
116
  if (p) ordered.push(p)
117
117
  }
118
118
  for (const handle of productHandles) {
119
- const p = [...byId.values()].find((x) => x.handle === handle)
119
+ const p = Array.from(byId.values()).find((x) => x.handle === handle)
120
120
  if (p && !ordered.some((o) => o.id === p.id)) ordered.push(p)
121
121
  }
122
122
 
@@ -37,9 +37,6 @@ export async function getStoreClientOptions(): Promise<MedusaStoreClientOptions>
37
37
  }
38
38
  }
39
39
 
40
- /** @deprecated Use getStoreClientOptions */
41
- export const getStoreCartClientOptions = getStoreClientOptions
42
-
43
40
  export function getMedusaBackendUrl(): string {
44
41
  return getBackendUrl()
45
42
  }
@@ -1,191 +0,0 @@
1
- {
2
- "logo": "/Logo.png",
3
- "website-description": "Premium kids fashion for everyday wear and special occasions.",
4
- "homepage-banner-array": [
5
- {
6
- "homepage-banner": {
7
- "homepage-banner-image": "/newbanner.png",
8
- "homepage-banner-title": "Premium Kids Shop",
9
- "homepage-banner-subtitle": "Little Trends, Quality Kids Wear",
10
- "homepage-banner-description": "Shop stylish kids wear for little ones and children of all years—from newborn up to 15 years.",
11
- "homepage-banner-button-name": "Shop Kids Wear",
12
- "homepage-banner-button-link": "/store"
13
- }
14
- }
15
- ],
16
- "app-banner-array": [
17
- {
18
- "app-banner": {
19
- "app-banner-image": "/appbanner.png",
20
- "app-banner-title": "Premium Kids Shop",
21
- "app-banner-subtitle": "Little Trends, Quality Kids Wear",
22
- "app-banner-description": "Shop stylish kids wear for little ones and children of all years—from newborn up to 15 years.",
23
- "app-banner-button-name": "Shop Kids Wear",
24
- "app-banner-button-link": "/store"
25
- }
26
- }
27
- ],
28
- "promo-bar": {
29
- "promo-text": null,
30
- "promo-code": null,
31
- "promo-active": false
32
- },
33
- "contact-us": {
34
- "contact-phone": "+1 000 000 0000",
35
- "contact-email": "hello@yourstore.com",
36
- "contact-address": "Your store address"
37
- },
38
- "social-links": [],
39
- "faq-array": [],
40
- "sections": {
41
- "promoAnnouncements": {
42
- "messages": [
43
- "Free shipping on orders over a threshold",
44
- "Worldwide shipping available",
45
- "Selected products available with customisation",
46
- "Need help choosing? Book a video call consultation"
47
- ]
48
- },
49
- "hero": {},
50
- "categoryPills": {},
51
- "newArrivals": {
52
- "title": "New Arrivals",
53
- "subtitle": "Fresh styles just landed",
54
- "variant": "grid"
55
- },
56
- "newArrivalsClassic": {
57
- "title": "New Arrivals",
58
- "subtitle": "Fresh styles just landed",
59
- "variant": "classic"
60
- },
61
- "promoCountdown": {
62
- "code": "SAVE50",
63
- "text": "Up to 50% off — shop your favourites before they're gone!",
64
- "end-at": "2026-12-31T23:59:59.000Z",
65
- "active": false,
66
- "cta-label": "Shop Offers",
67
- "cta-href": "/store"
68
- },
69
- "celebrityTrust": {
70
- "title": "Trusted by Celebrities",
71
- "text": "When the stars dress their little ones in our collections."
72
- },
73
- "luxeFavourites": {
74
- "title": "Luxe Favourites"
75
- },
76
- "shopByCategory": {
77
- "title": "Shop By Categories",
78
- "description": "Browse by style and occasion"
79
- },
80
- "baptism": {
81
- "title": "Baptism"
82
- },
83
- "baptismPicks": {
84
- "title": "Baptism Picks",
85
- "looks": []
86
- },
87
- "themeDresses": {
88
- "title": "Theme",
89
- "description": "Dress her in a dreamy theme outfit for her birthday celebration"
90
- },
91
- "brandMarquee": {
92
- "text": "est. 2012"
93
- },
94
- "aboutBrand": {
95
- "eyebrow": "Who We Are",
96
- "title": "Discover what makes us different",
97
- "description": "We offer stylish, comfortable, and high-quality clothing for children, crafted for everyday wear and special occasions.",
98
- "readMoreHref": "/about",
99
- "stats": [
100
- {
101
- "label": "Visit us in store",
102
- "value": "Find a location"
103
- },
104
- {
105
- "label": "Happy customers",
106
- "value": "150k+"
107
- },
108
- {
109
- "label": "Products",
110
- "value": "3000+"
111
- }
112
- ]
113
- },
114
- "testimonials": {
115
- "title": "What Clients Talk About Us",
116
- "description": "The Trust We've Earned",
117
- "items": [
118
- {
119
- "text": "Amazing place if you are looking for a dress for ur little girl's special day.",
120
- "name": "Greeshma thottippal shanmughan"
121
- },
122
- {
123
- "text": "I frequently buy dresses for my baby from this store and I am extremely satisfied with the purchase.",
124
- "name": "Priyanka Rajesh"
125
- }
126
- ]
127
- },
128
- "instagramPosts": {
129
- "title": "Follow Us on Instagram",
130
- "handle": "yourbrand",
131
- "profile-url": "https://www.instagram.com/yourbrand/",
132
- "profile-image": "/Logo.png",
133
- "posts": []
134
- },
135
- "brandPillars": {
136
- "title": "This approach resulted in the beautiful structure",
137
- "pillars": [
138
- {
139
- "title": "Your favorite kids destination",
140
- "description": "Trendy, high-quality outfits for little ones.",
141
- "image": "/features/store.jpg"
142
- }
143
- ]
144
- },
145
- "features": {
146
- "title": "Why shop with us",
147
- "description": "Secure checkout, fast delivery, and easy exchanges",
148
- "features": [
149
- {
150
- "name": "100% Secure",
151
- "icon": "/secure.svg"
152
- },
153
- {
154
- "name": "Easy Exchanges",
155
- "icon": "/exchnage.svg"
156
- }
157
- ]
158
- },
159
- "whyChooseUs": {
160
- "title": "Why Choose Us?",
161
- "features": [
162
- {
163
- "feature-name": "Premium Quality",
164
- "feature-icon": "/icons/quality.svg"
165
- }
166
- ]
167
- },
168
- "lovedByMoms": {
169
- "title": "Loved by Moms",
170
- "description": "Top-rated styles loved by parents and kids alike."
171
- },
172
- "shopByAge": {
173
- "title": "Shop By Age"
174
- },
175
- "videoStories": {
176
- "title": "Watch Stories & Reviews",
177
- "video-urls": []
178
- },
179
- "blogPosts": {
180
- "title": "Blog posts",
181
- "posts": [
182
- {
183
- "title": "Which Theme Dress Matches Her Vibe?",
184
- "href": "/blog/theme-dress-vibe",
185
- "category": "Theme Dress",
186
- "date": "May 24, 2026"
187
- }
188
- ]
189
- }
190
- }
191
- }
@@ -1,3 +0,0 @@
1
- import Medusa from "@medusajs/js-sdk";
2
- export declare const sdk: Medusa;
3
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AACA,OAAO,MAAiC,MAAM,kBAAkB,CAAA;AAShE,eAAO,MAAM,GAAG,QAId,CAAA"}
@@ -1,31 +0,0 @@
1
- import { getLocaleHeader } from "./util/get-locale-header";
2
- import Medusa from "@medusajs/js-sdk";
3
- // Defaults to standard port for Medusa server
4
- let MEDUSA_BACKEND_URL = "http://localhost:9000";
5
- if (process.env.MEDUSA_BACKEND_URL) {
6
- MEDUSA_BACKEND_URL = process.env.MEDUSA_BACKEND_URL;
7
- }
8
- export const sdk = new Medusa({
9
- baseUrl: MEDUSA_BACKEND_URL,
10
- debug: process.env.NODE_ENV === "development",
11
- publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
12
- });
13
- const originalFetch = sdk.client.fetch.bind(sdk.client);
14
- sdk.client.fetch = async (input, init) => {
15
- const headers = init?.headers ?? {};
16
- let localeHeader;
17
- try {
18
- localeHeader = await getLocaleHeader();
19
- headers["x-medusa-locale"] ??= localeHeader["x-medusa-locale"];
20
- }
21
- catch { }
22
- const newHeaders = {
23
- ...localeHeader,
24
- ...headers,
25
- };
26
- init = {
27
- ...init,
28
- headers: newHeaders,
29
- };
30
- return originalFetch(input, init);
31
- };
@@ -1,23 +0,0 @@
1
- import "server-only";
2
- export declare const getAuthHeaders: () => Promise<{
3
- authorization: string;
4
- } | {}>;
5
- export declare const getGuestAuthHeaders: () => Promise<{
6
- authorization: string;
7
- } | {}>;
8
- export declare const getCacheTag: (tag: string) => Promise<string>;
9
- export declare const getCacheOptions: (tag: string) => Promise<{
10
- tags: string[];
11
- } | {}>;
12
- export declare const setAuthToken: (token: string) => Promise<void>;
13
- export declare const removeAuthToken: () => Promise<void>;
14
- export declare const getCartId: () => Promise<string | undefined>;
15
- export declare const setCartId: (cartId: string) => Promise<void>;
16
- export declare const removeCartId: () => Promise<void>;
17
- export declare const removeSyncLock: () => Promise<void>;
18
- export declare const setHoldCartId: (cartId: string) => Promise<void>;
19
- export declare const getHoldCartId: () => Promise<string | undefined>;
20
- export declare const removeHoldCartId: () => Promise<void>;
21
- export declare const setBuyNowCartId: (cartId: string) => Promise<void>;
22
- export declare const removeBuyNowCartId: () => Promise<void>;
23
- //# sourceMappingURL=cookies.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../src/cookies.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAGpB,eAAO,MAAM,cAAc,QAAa,OAAO,CAC7C;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,EAAE,CAc/B,CAAA;AAED,eAAO,MAAM,mBAAmB,QAAa,OAAO,CAClD;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,EAAE,CAc/B,CAAA;AAED,eAAO,MAAM,WAAW,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,MAAM,CAa7D,CAAA;AAED,eAAO,MAAM,eAAe,GAC1B,KAAK,MAAM,KACV,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,EAAE,CAYjC,CAAA;AAED,eAAO,MAAM,YAAY,GAAU,OAAO,MAAM,kBAQ/C,CAAA;AAED,eAAO,MAAM,eAAe,qBAK3B,CAAA;AAED,eAAO,MAAM,SAAS,mCAsBrB,CAAA;AAED,eAAO,MAAM,SAAS,GAAU,QAAQ,MAAM,kBAQ7C,CAAA;AAED,eAAO,MAAM,YAAY,qBAKxB,CAAA;AAED,eAAO,MAAM,cAAc,qBAK1B,CAAA;AAED,eAAO,MAAM,aAAa,GAAU,QAAQ,MAAM,kBAQjD,CAAA;AAED,eAAO,MAAM,aAAa,mCAGzB,CAAA;AAED,eAAO,MAAM,gBAAgB,qBAK5B,CAAA;AAED,eAAO,MAAM,eAAe,GAAU,QAAQ,MAAM,kBAQnD,CAAA;AAED,eAAO,MAAM,kBAAkB,qBAK9B,CAAA"}
@@ -1,140 +0,0 @@
1
- import "server-only";
2
- import { cookies as nextCookies, headers } from "next/headers";
3
- export const getAuthHeaders = async () => {
4
- try {
5
- const cookies = await nextCookies();
6
- const token = cookies.get("_medusa_jwt")?.value;
7
- if (!token) {
8
- return {};
9
- }
10
- return { authorization: `Bearer ${token}` };
11
- }
12
- catch {
13
- return {};
14
- }
15
- };
16
- export const getGuestAuthHeaders = async () => {
17
- try {
18
- const cookies = await nextCookies();
19
- const token = cookies.get("_medusa_guest_jwt")?.value;
20
- if (!token) {
21
- return {};
22
- }
23
- return { authorization: `Bearer ${token}` };
24
- }
25
- catch {
26
- return {};
27
- }
28
- };
29
- export const getCacheTag = async (tag) => {
30
- try {
31
- const cookies = await nextCookies();
32
- const cacheId = cookies.get("_medusa_cache_id")?.value;
33
- if (!cacheId) {
34
- return "";
35
- }
36
- return `${tag}-${cacheId}`;
37
- }
38
- catch (error) {
39
- return "";
40
- }
41
- };
42
- export const getCacheOptions = async (tag) => {
43
- if (typeof window !== "undefined") {
44
- return {};
45
- }
46
- const cacheTag = await getCacheTag(tag);
47
- if (!cacheTag) {
48
- return {};
49
- }
50
- return { tags: [`${cacheTag}`] };
51
- };
52
- export const setAuthToken = async (token) => {
53
- const cookies = await nextCookies();
54
- cookies.set("_medusa_jwt", token, {
55
- maxAge: 60 * 60 * 24 * 7,
56
- httpOnly: true,
57
- sameSite: "strict",
58
- secure: process.env.NODE_ENV === "production",
59
- });
60
- };
61
- export const removeAuthToken = async () => {
62
- const cookies = await nextCookies();
63
- cookies.set("_medusa_jwt", "", {
64
- maxAge: -1,
65
- });
66
- };
67
- export const getCartId = async () => {
68
- const cookies = await nextCookies();
69
- const headerList = await headers();
70
- // Check for x-cart-id header FIRST (as it's the most up-to-date from middleware)
71
- const headerId = headerList.get("x-cart-id");
72
- if (headerId) {
73
- return headerId;
74
- }
75
- // Prioritize buy_now_cart_id if it exists
76
- const buyNowId = cookies.get("buy_now_cart_id")?.value;
77
- if (buyNowId) {
78
- return buyNowId;
79
- }
80
- // Fallback to regular cart cookies
81
- const id = cookies.get("_medusa_cart_id")?.value ||
82
- cookies.get("cart_id")?.value ||
83
- cookies.get("medusa_cart_id")?.value;
84
- return id;
85
- };
86
- export const setCartId = async (cartId) => {
87
- const cookies = await nextCookies();
88
- cookies.set("_medusa_cart_id", cartId, {
89
- maxAge: 60 * 60 * 24 * 7,
90
- httpOnly: true,
91
- sameSite: "strict",
92
- secure: process.env.NODE_ENV === "production",
93
- });
94
- };
95
- export const removeCartId = async () => {
96
- const cookies = await nextCookies();
97
- cookies.set("_medusa_cart_id", "", {
98
- maxAge: -1,
99
- });
100
- };
101
- export const removeSyncLock = async () => {
102
- const cookies = await nextCookies();
103
- cookies.set("_medusa_cart_synced", "", {
104
- maxAge: -1,
105
- });
106
- };
107
- export const setHoldCartId = async (cartId) => {
108
- const cookies = await nextCookies();
109
- cookies.set("_medusa_hold_cart_id", cartId, {
110
- maxAge: 60 * 60 * 24,
111
- httpOnly: true,
112
- sameSite: "strict",
113
- secure: process.env.NODE_ENV === "production",
114
- });
115
- };
116
- export const getHoldCartId = async () => {
117
- const cookies = await nextCookies();
118
- return cookies.get("_medusa_hold_cart_id")?.value;
119
- };
120
- export const removeHoldCartId = async () => {
121
- const cookies = await nextCookies();
122
- cookies.set("_medusa_hold_cart_id", "", {
123
- maxAge: -1,
124
- });
125
- };
126
- export const setBuyNowCartId = async (cartId) => {
127
- const cookies = await nextCookies();
128
- cookies.set("buy_now_cart_id", cartId, {
129
- maxAge: 60 * 60 * 24 * 7,
130
- httpOnly: true,
131
- sameSite: "strict",
132
- secure: process.env.NODE_ENV === "production",
133
- });
134
- };
135
- export const removeBuyNowCartId = async () => {
136
- const cookies = await nextCookies();
137
- cookies.set("buy_now_cart_id", "", {
138
- maxAge: -1,
139
- });
140
- };
@@ -1,3 +0,0 @@
1
- export { medusaListRegions, medusaMergeCarts } from "medusa-services/middleware";
2
- export type { MedusaMiddlewareClientOptions } from "medusa-services/middleware";
3
- //# sourceMappingURL=edge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../../src/edge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACjF,YAAY,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC"}
package/dist/src/edge.js DELETED
@@ -1 +0,0 @@
1
- export { medusaListRegions, medusaMergeCarts } from "medusa-services/middleware";
@@ -1,3 +0,0 @@
1
- export { medusaListRegions, medusaMergeCarts } from "medusa-services/middleware";
2
- export type { MedusaMiddlewareClientOptions } from "medusa-services/middleware";
3
- //# sourceMappingURL=middleware.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACjF,YAAY,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC"}
@@ -1 +0,0 @@
1
- export { medusaListRegions, medusaMergeCarts } from "medusa-services/middleware";
@@ -1,96 +0,0 @@
1
- import { HttpTypes } from "@medusajs/types";
2
- /**
3
- * Retrieves a cart by its ID. If no ID is provided, it will use the cart ID from the cookies.
4
- * @param cartId - optional - The ID of the cart to retrieve.
5
- * @returns The cart object if found, or null if not found.
6
- */
7
- export declare const retrieveCart: (cartId?: string, fields?: string) => Promise<HttpTypes.StoreCart | null>;
8
- export declare function getOrSetCart(countryCode: string): Promise<HttpTypes.StoreCart>;
9
- export declare function updateCart(data: HttpTypes.StoreUpdateCart): Promise<HttpTypes.StoreCart>;
10
- export declare function addToCart({ variantId, quantity, countryCode, }: {
11
- variantId: string;
12
- quantity: number;
13
- countryCode: string;
14
- }): Promise<void>;
15
- export declare function buyNow({ variantId, quantity, countryCode, }: {
16
- variantId: string;
17
- quantity: number;
18
- countryCode: string;
19
- }): Promise<void>;
20
- export declare function updateLineItem({ lineId, quantity, }: {
21
- lineId: string;
22
- quantity: number;
23
- }): Promise<void>;
24
- export declare function deleteLineItem(lineId: string): Promise<void>;
25
- export declare function updateLineItemVariant({ lineId, variantId, quantity, countryCode, }: {
26
- lineId: string;
27
- variantId: string;
28
- quantity: number;
29
- countryCode: string;
30
- }): Promise<void>;
31
- export declare function setShippingMethod({ cartId, shippingMethodId, }: {
32
- cartId: string;
33
- shippingMethodId: string;
34
- }): Promise<void>;
35
- /**
36
- * Sets a shipping method silently without triggering a full page revalidation.
37
- */
38
- export declare function setShippingMethodSilently({ cartId, shippingMethodId, }: {
39
- cartId: string;
40
- shippingMethodId: string;
41
- }): Promise<{
42
- success: boolean;
43
- }>;
44
- export declare function initiatePaymentSession(cart: HttpTypes.StoreCart, data: HttpTypes.StoreInitializePaymentSession): Promise<HttpTypes.StoreCart>;
45
- export declare function applyPromotions(codes: string[]): Promise<HttpTypes.StoreCart>;
46
- export declare function applyGiftCard(code: string): Promise<void>;
47
- export declare function removeDiscount(code: string): Promise<void>;
48
- export declare function removeGiftCard(codeToRemove: string, giftCards: any[]): Promise<void>;
49
- export declare function submitPromotionForm(currentState: unknown, formData: FormData): Promise<any>;
50
- export declare function setAddresses(currentState: unknown, formData: FormData): Promise<any>;
51
- /**
52
- * Places an order for a cart. If no cart ID is provided, it will use the cart ID from the cookies.
53
- * @param cartId - optional - The ID of the cart to place an order for.
54
- * @returns The cart object if the order was successful, or null if not.
55
- */
56
- export declare function placeOrder(cartId?: string): Promise<HttpTypes.StoreCart>;
57
- /**
58
- * Updates the countrycode param and revalidates the regions cache
59
- * @param regionId
60
- * @param countryCode
61
- */
62
- export declare function updateRegion(countryCode: string, currentPath: string): Promise<void>;
63
- export declare function listCartOptions(): Promise<{
64
- shipping_options: HttpTypes.StoreCartShippingOption[];
65
- }>;
66
- export declare function addCustomerAddressToCart(currentState: unknown, formData: FormData): Promise<any>;
67
- /**
68
- * Updates address in the background without redirecting.
69
- * Used for real-time shipping calculation when pincode is entered.
70
- */
71
- export declare function updateAddressSilently(data: any): Promise<{
72
- success: boolean;
73
- error: string;
74
- } | {
75
- success: boolean;
76
- error?: undefined;
77
- } | undefined>;
78
- /**
79
- * Updates cart metadata silently without triggering a full page revalidation.
80
- */
81
- export declare function updateCartMetadataSilently(metadata: any): Promise<{
82
- success: boolean;
83
- } | undefined>;
84
- export declare function getAbandonedCarts(): Promise<{
85
- buyNowCarts: HttpTypes.StoreCart[];
86
- reorderCarts: HttpTypes.StoreCart[];
87
- }>;
88
- export declare function resumeAbandonedCart(cartId: string, countryCode: string): Promise<void>;
89
- export declare function deleteCart(cartId: string): Promise<{
90
- success: boolean;
91
- error?: undefined;
92
- } | {
93
- success: boolean;
94
- error: any;
95
- }>;
96
- //# sourceMappingURL=cart.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cart.d.ts","sourceRoot":"","sources":["../../../src/server/cart.ts"],"names":[],"mappings":"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"}