medusa-storefront-data 2.3.0 → 2.5.1

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 (369) hide show
  1. package/HOMEPAGE_CONFIG.md +133 -0
  2. package/dist/segment-data/default-page-input.json +191 -0
  3. package/dist/src/config.d.ts.map +1 -0
  4. package/dist/src/cookies.d.ts.map +1 -0
  5. package/dist/src/dynamic-config-schema/index.d.ts +103 -0
  6. package/dist/src/dynamic-config-schema/index.d.ts.map +1 -0
  7. package/dist/src/dynamic-config-schema/index.js +172 -0
  8. package/dist/src/dynamic-config-schema/sections/about-brand.d.ts +5 -0
  9. package/dist/src/dynamic-config-schema/sections/about-brand.d.ts.map +1 -0
  10. package/dist/src/dynamic-config-schema/sections/about-brand.js +30 -0
  11. package/dist/src/dynamic-config-schema/sections/baptism-picks.d.ts +5 -0
  12. package/dist/src/dynamic-config-schema/sections/baptism-picks.d.ts.map +1 -0
  13. package/dist/src/dynamic-config-schema/sections/baptism-picks.js +17 -0
  14. package/dist/src/dynamic-config-schema/sections/baptism.d.ts +5 -0
  15. package/dist/src/dynamic-config-schema/sections/baptism.d.ts.map +1 -0
  16. package/dist/src/dynamic-config-schema/sections/baptism.js +4 -0
  17. package/dist/src/dynamic-config-schema/sections/blog-posts.d.ts +5 -0
  18. package/dist/src/dynamic-config-schema/sections/blog-posts.d.ts.map +1 -0
  19. package/dist/src/dynamic-config-schema/sections/blog-posts.js +31 -0
  20. package/dist/src/dynamic-config-schema/sections/brand-marquee.d.ts +5 -0
  21. package/dist/src/dynamic-config-schema/sections/brand-marquee.d.ts.map +1 -0
  22. package/dist/src/dynamic-config-schema/sections/brand-marquee.js +9 -0
  23. package/dist/src/dynamic-config-schema/sections/brand-pillars.d.ts +5 -0
  24. package/dist/src/dynamic-config-schema/sections/brand-pillars.d.ts.map +1 -0
  25. package/dist/src/dynamic-config-schema/sections/brand-pillars.js +29 -0
  26. package/dist/src/dynamic-config-schema/sections/category-pills.d.ts +5 -0
  27. package/dist/src/dynamic-config-schema/sections/category-pills.d.ts.map +1 -0
  28. package/dist/src/dynamic-config-schema/sections/category-pills.js +4 -0
  29. package/dist/src/dynamic-config-schema/sections/celebrity-trust.d.ts +5 -0
  30. package/dist/src/dynamic-config-schema/sections/celebrity-trust.d.ts.map +1 -0
  31. package/dist/src/dynamic-config-schema/sections/celebrity-trust.js +4 -0
  32. package/dist/src/dynamic-config-schema/sections/features.d.ts +5 -0
  33. package/dist/src/dynamic-config-schema/sections/features.d.ts.map +1 -0
  34. package/dist/src/dynamic-config-schema/sections/features.js +12 -0
  35. package/dist/src/dynamic-config-schema/sections/hero.d.ts +6 -0
  36. package/dist/src/dynamic-config-schema/sections/hero.d.ts.map +1 -0
  37. package/dist/src/dynamic-config-schema/sections/hero.js +9 -0
  38. package/dist/src/dynamic-config-schema/sections/index.d.ts +24 -0
  39. package/dist/src/dynamic-config-schema/sections/index.d.ts.map +1 -0
  40. package/dist/src/dynamic-config-schema/sections/index.js +23 -0
  41. package/dist/src/dynamic-config-schema/sections/instagram-posts.d.ts +5 -0
  42. package/dist/src/dynamic-config-schema/sections/instagram-posts.d.ts.map +1 -0
  43. package/dist/src/dynamic-config-schema/sections/instagram-posts.js +30 -0
  44. package/dist/src/dynamic-config-schema/sections/loved-by-moms.d.ts +5 -0
  45. package/dist/src/dynamic-config-schema/sections/loved-by-moms.d.ts.map +1 -0
  46. package/dist/src/dynamic-config-schema/sections/loved-by-moms.js +4 -0
  47. package/dist/src/dynamic-config-schema/sections/luxe-favourites.d.ts +5 -0
  48. package/dist/src/dynamic-config-schema/sections/luxe-favourites.d.ts.map +1 -0
  49. package/dist/src/dynamic-config-schema/sections/luxe-favourites.js +4 -0
  50. package/dist/src/dynamic-config-schema/sections/new-arrivals-classic.d.ts +5 -0
  51. package/dist/src/dynamic-config-schema/sections/new-arrivals-classic.d.ts.map +1 -0
  52. package/dist/src/dynamic-config-schema/sections/new-arrivals-classic.js +12 -0
  53. package/dist/src/dynamic-config-schema/sections/new-arrivals.d.ts +5 -0
  54. package/dist/src/dynamic-config-schema/sections/new-arrivals.d.ts.map +1 -0
  55. package/dist/src/dynamic-config-schema/sections/new-arrivals.js +12 -0
  56. package/dist/src/dynamic-config-schema/sections/promo-announcements.d.ts +5 -0
  57. package/dist/src/dynamic-config-schema/sections/promo-announcements.d.ts.map +1 -0
  58. package/dist/src/dynamic-config-schema/sections/promo-announcements.js +16 -0
  59. package/dist/src/dynamic-config-schema/sections/promo-countdown.d.ts +5 -0
  60. package/dist/src/dynamic-config-schema/sections/promo-countdown.d.ts.map +1 -0
  61. package/dist/src/dynamic-config-schema/sections/promo-countdown.js +16 -0
  62. package/dist/src/dynamic-config-schema/sections/shop-by-age.d.ts +5 -0
  63. package/dist/src/dynamic-config-schema/sections/shop-by-age.d.ts.map +1 -0
  64. package/dist/src/dynamic-config-schema/sections/shop-by-age.js +4 -0
  65. package/dist/src/dynamic-config-schema/sections/shop-by-category.d.ts +5 -0
  66. package/dist/src/dynamic-config-schema/sections/shop-by-category.d.ts.map +1 -0
  67. package/dist/src/dynamic-config-schema/sections/shop-by-category.js +4 -0
  68. package/dist/src/dynamic-config-schema/sections/testimonials.d.ts +5 -0
  69. package/dist/src/dynamic-config-schema/sections/testimonials.d.ts.map +1 -0
  70. package/dist/src/dynamic-config-schema/sections/testimonials.js +9 -0
  71. package/dist/src/dynamic-config-schema/sections/theme-dresses.d.ts +5 -0
  72. package/dist/src/dynamic-config-schema/sections/theme-dresses.d.ts.map +1 -0
  73. package/dist/src/dynamic-config-schema/sections/theme-dresses.js +4 -0
  74. package/dist/src/dynamic-config-schema/sections/video-stories.d.ts +5 -0
  75. package/dist/src/dynamic-config-schema/sections/video-stories.d.ts.map +1 -0
  76. package/dist/src/dynamic-config-schema/sections/video-stories.js +24 -0
  77. package/dist/src/dynamic-config-schema/sections/why-choose-us.d.ts +5 -0
  78. package/dist/src/dynamic-config-schema/sections/why-choose-us.d.ts.map +1 -0
  79. package/dist/src/dynamic-config-schema/sections/why-choose-us.js +9 -0
  80. package/dist/src/dynamic-config-schema/shared.d.ts +35 -0
  81. package/dist/src/dynamic-config-schema/shared.d.ts.map +1 -0
  82. package/dist/src/dynamic-config-schema/shared.js +99 -0
  83. package/dist/src/dynamic-config-schema/site-configs.d.ts +11 -0
  84. package/dist/src/dynamic-config-schema/site-configs.d.ts.map +1 -0
  85. package/dist/src/dynamic-config-schema/site-configs.js +70 -0
  86. package/dist/src/edge.d.ts.map +1 -0
  87. package/dist/src/middleware.d.ts.map +1 -0
  88. package/dist/src/server/brand-pillars-from-categories.d.ts +8 -0
  89. package/dist/src/server/brand-pillars-from-categories.d.ts.map +1 -0
  90. package/dist/src/server/brand-pillars-from-categories.js +92 -0
  91. package/dist/src/server/cart.d.ts.map +1 -0
  92. package/dist/{server → src/server}/cart.js +20 -20
  93. package/dist/src/server/categories.d.ts.map +1 -0
  94. package/dist/src/server/collections.d.ts.map +1 -0
  95. package/dist/src/server/config-merge.d.ts +3 -0
  96. package/dist/src/server/config-merge.d.ts.map +1 -0
  97. package/dist/src/server/config-merge.js +31 -0
  98. package/dist/src/server/contact.d.ts.map +1 -0
  99. package/dist/src/server/customer-registration.d.ts.map +1 -0
  100. package/dist/src/server/customer.d.ts.map +1 -0
  101. package/dist/{server → src/server}/customer.js +11 -11
  102. package/dist/src/server/dynamic-config-api.d.ts +11 -0
  103. package/dist/src/server/dynamic-config-api.d.ts.map +1 -0
  104. package/dist/src/server/dynamic-config-api.js +46 -0
  105. package/dist/src/server/dynamic-config.d.ts +157 -0
  106. package/dist/src/server/dynamic-config.d.ts.map +1 -0
  107. package/dist/src/server/dynamic-config.js +573 -0
  108. package/dist/src/server/fulfillment.d.ts.map +1 -0
  109. package/dist/{server → src/server}/fulfillment.js +3 -3
  110. package/dist/src/server/guest.d.ts.map +1 -0
  111. package/dist/src/server/home-sections/about-brand.d.ts +9 -0
  112. package/dist/src/server/home-sections/about-brand.d.ts.map +1 -0
  113. package/dist/src/server/home-sections/about-brand.js +9 -0
  114. package/dist/src/server/home-sections/baptism-picks.d.ts +10 -0
  115. package/dist/src/server/home-sections/baptism-picks.d.ts.map +1 -0
  116. package/dist/src/server/home-sections/baptism-picks.js +27 -0
  117. package/dist/src/server/home-sections/baptism.d.ts +13 -0
  118. package/dist/src/server/home-sections/baptism.d.ts.map +1 -0
  119. package/dist/src/server/home-sections/baptism.js +43 -0
  120. package/dist/src/server/home-sections/blog-posts.d.ts +9 -0
  121. package/dist/src/server/home-sections/blog-posts.d.ts.map +1 -0
  122. package/dist/src/server/home-sections/blog-posts.js +9 -0
  123. package/dist/src/server/home-sections/brand-marquee.d.ts +8 -0
  124. package/dist/src/server/home-sections/brand-marquee.d.ts.map +1 -0
  125. package/dist/src/server/home-sections/brand-marquee.js +7 -0
  126. package/dist/src/server/home-sections/brand-pillars.d.ts +9 -0
  127. package/dist/src/server/home-sections/brand-pillars.d.ts.map +1 -0
  128. package/dist/src/server/home-sections/brand-pillars.js +9 -0
  129. package/dist/src/server/home-sections/category-pills.d.ts +9 -0
  130. package/dist/src/server/home-sections/category-pills.d.ts.map +1 -0
  131. package/dist/src/server/home-sections/category-pills.js +19 -0
  132. package/dist/src/server/home-sections/celebrity-trust.d.ts +12 -0
  133. package/dist/src/server/home-sections/celebrity-trust.d.ts.map +1 -0
  134. package/dist/src/server/home-sections/celebrity-trust.js +27 -0
  135. package/dist/src/server/home-sections/features.d.ts +9 -0
  136. package/dist/src/server/home-sections/features.d.ts.map +1 -0
  137. package/dist/src/server/home-sections/features.js +9 -0
  138. package/dist/src/server/home-sections/hero.d.ts +9 -0
  139. package/dist/src/server/home-sections/hero.d.ts.map +1 -0
  140. package/dist/src/server/home-sections/hero.js +9 -0
  141. package/dist/src/server/home-sections/instagram-posts.d.ts +9 -0
  142. package/dist/src/server/home-sections/instagram-posts.d.ts.map +1 -0
  143. package/dist/src/server/home-sections/instagram-posts.js +9 -0
  144. package/dist/src/server/home-sections/loved-by-moms.d.ts +12 -0
  145. package/dist/src/server/home-sections/loved-by-moms.d.ts.map +1 -0
  146. package/dist/src/server/home-sections/loved-by-moms.js +20 -0
  147. package/dist/src/server/home-sections/luxe-favourites.d.ts +11 -0
  148. package/dist/src/server/home-sections/luxe-favourites.d.ts.map +1 -0
  149. package/dist/src/server/home-sections/luxe-favourites.js +19 -0
  150. package/dist/src/server/home-sections/new-arrivals-classic.d.ts +8 -0
  151. package/dist/src/server/home-sections/new-arrivals-classic.d.ts.map +1 -0
  152. package/dist/src/server/home-sections/new-arrivals-classic.js +10 -0
  153. package/dist/src/server/home-sections/new-arrivals.d.ts +12 -0
  154. package/dist/src/server/home-sections/new-arrivals.d.ts.map +1 -0
  155. package/dist/src/server/home-sections/new-arrivals.js +28 -0
  156. package/dist/src/server/home-sections/promo-announcements.d.ts +7 -0
  157. package/dist/src/server/home-sections/promo-announcements.d.ts.map +1 -0
  158. package/dist/src/server/home-sections/promo-announcements.js +7 -0
  159. package/dist/src/server/home-sections/promo-countdown.d.ts +6 -0
  160. package/dist/src/server/home-sections/promo-countdown.d.ts.map +1 -0
  161. package/dist/src/server/home-sections/promo-countdown.js +5 -0
  162. package/dist/src/server/home-sections/shared.d.ts +10 -0
  163. package/dist/src/server/home-sections/shared.d.ts.map +1 -0
  164. package/dist/src/server/home-sections/shared.js +29 -0
  165. package/dist/src/server/home-sections/shop-by-age.d.ts +9 -0
  166. package/dist/src/server/home-sections/shop-by-age.d.ts.map +1 -0
  167. package/dist/src/server/home-sections/shop-by-age.js +17 -0
  168. package/dist/src/server/home-sections/shop-by-category.d.ts +10 -0
  169. package/dist/src/server/home-sections/shop-by-category.d.ts.map +1 -0
  170. package/dist/src/server/home-sections/shop-by-category.js +17 -0
  171. package/dist/src/server/home-sections/testimonials.d.ts +9 -0
  172. package/dist/src/server/home-sections/testimonials.d.ts.map +1 -0
  173. package/dist/src/server/home-sections/testimonials.js +9 -0
  174. package/dist/src/server/home-sections/theme-dresses.d.ts +12 -0
  175. package/dist/src/server/home-sections/theme-dresses.d.ts.map +1 -0
  176. package/dist/src/server/home-sections/theme-dresses.js +27 -0
  177. package/dist/src/server/home-sections/video-stories.d.ts +9 -0
  178. package/dist/src/server/home-sections/video-stories.d.ts.map +1 -0
  179. package/dist/src/server/home-sections/video-stories.js +9 -0
  180. package/dist/src/server/home-sections/why-choose-us.d.ts +9 -0
  181. package/dist/src/server/home-sections/why-choose-us.d.ts.map +1 -0
  182. package/dist/src/server/home-sections/why-choose-us.js +9 -0
  183. package/dist/{server → src/server}/home.d.ts +18 -9
  184. package/dist/src/server/home.d.ts.map +1 -0
  185. package/dist/src/server/home.js +1 -0
  186. package/dist/src/server/homepage-config.types.d.ts +274 -0
  187. package/dist/src/server/homepage-config.types.d.ts.map +1 -0
  188. package/dist/src/server/homepage-config.types.js +33 -0
  189. package/dist/{server → src/server}/homepage-section-defaults.d.ts +35 -2
  190. package/dist/src/server/homepage-section-defaults.d.ts.map +1 -0
  191. package/dist/{server → src/server}/homepage-section-defaults.js +41 -2
  192. package/dist/{server → src/server}/index.d.ts +2 -0
  193. package/dist/src/server/index.d.ts.map +1 -0
  194. package/dist/{server → src/server}/index.js +2 -0
  195. package/dist/src/server/locale-actions.d.ts.map +1 -0
  196. package/dist/src/server/locales.d.ts.map +1 -0
  197. package/dist/src/server/normalize-homepage-config.d.ts +7 -0
  198. package/dist/src/server/normalize-homepage-config.d.ts.map +1 -0
  199. package/dist/src/server/normalize-homepage-config.js +213 -0
  200. package/dist/src/server/notifications.d.ts.map +1 -0
  201. package/dist/src/server/onboarding.d.ts.map +1 -0
  202. package/dist/src/server/orders.d.ts.map +1 -0
  203. package/dist/{server → src/server}/orders.js +6 -6
  204. package/dist/src/server/page-input.d.ts +19 -0
  205. package/dist/src/server/page-input.d.ts.map +1 -0
  206. package/dist/src/server/page-input.js +42 -0
  207. package/dist/src/server/payment-details.d.ts.map +1 -0
  208. package/dist/{server → src/server}/payment-details.js +5 -5
  209. package/dist/src/server/payment.d.ts.map +1 -0
  210. package/dist/{server → src/server}/payment.js +2 -2
  211. package/dist/src/server/pincode.d.ts.map +1 -0
  212. package/dist/src/server/products.d.ts.map +1 -0
  213. package/dist/src/server/regions.d.ts.map +1 -0
  214. package/dist/{server → src/server}/regions.js +2 -2
  215. package/dist/src/server/resolve-home-segment-data.d.ts +25 -0
  216. package/dist/src/server/resolve-home-segment-data.d.ts.map +1 -0
  217. package/dist/src/server/resolve-home-segment-data.js +20 -0
  218. package/dist/src/server/returns.d.ts.map +1 -0
  219. package/dist/src/server/shoppable-looks.d.ts +17 -0
  220. package/dist/src/server/shoppable-looks.d.ts.map +1 -0
  221. package/dist/src/server/shoppable-looks.js +136 -0
  222. package/dist/src/server/swaps.d.ts.map +1 -0
  223. package/dist/src/server/variants.d.ts.map +1 -0
  224. package/dist/src/server/wishlist.d.ts.map +1 -0
  225. package/dist/src/util/get-locale-header.d.ts.map +1 -0
  226. package/dist/src/util/medusa-error.d.ts.map +1 -0
  227. package/dist/src/util/revalidate-cart.d.ts.map +1 -0
  228. package/dist/src/util/sort-products.d.ts.map +1 -0
  229. package/dist/{util → src/util}/store-client.d.ts +0 -2
  230. package/dist/src/util/store-client.d.ts.map +1 -0
  231. package/dist/{util → src/util}/store-client.js +0 -2
  232. package/homepage-config.example.json +209 -0
  233. package/homepage-sections.example.json +55 -0
  234. package/package.json +120 -156
  235. package/segment-data/default-page-input.json +191 -0
  236. package/src/server/brand-pillars-from-categories.ts +156 -0
  237. package/src/server/cart.ts +20 -20
  238. package/src/server/config-merge.ts +31 -0
  239. package/src/server/customer.ts +11 -11
  240. package/src/server/dynamic-config.ts +507 -566
  241. package/src/server/fulfillment.ts +3 -3
  242. package/src/server/home-sections/about-brand.ts +24 -0
  243. package/src/server/home-sections/baptism-picks.ts +46 -0
  244. package/src/server/home-sections/baptism.ts +64 -0
  245. package/src/server/home-sections/blog-posts.ts +23 -0
  246. package/src/server/home-sections/brand-marquee.ts +17 -0
  247. package/src/server/home-sections/brand-pillars.ts +23 -0
  248. package/src/server/home-sections/category-pills.ts +32 -0
  249. package/src/server/home-sections/celebrity-trust.ts +42 -0
  250. package/src/server/home-sections/features.ts +23 -0
  251. package/src/server/home-sections/hero.ts +24 -0
  252. package/src/server/home-sections/instagram-posts.ts +23 -0
  253. package/src/server/home-sections/loved-by-moms.ts +34 -0
  254. package/src/server/home-sections/luxe-favourites.ts +30 -0
  255. package/src/server/home-sections/new-arrivals-classic.ts +21 -0
  256. package/src/server/home-sections/new-arrivals.ts +47 -0
  257. package/src/server/home-sections/promo-announcements.ts +17 -0
  258. package/src/server/home-sections/promo-countdown.ts +15 -0
  259. package/src/server/home-sections/shared.ts +44 -0
  260. package/src/server/home-sections/shop-by-age.ts +26 -0
  261. package/src/server/home-sections/shop-by-category.ts +28 -0
  262. package/src/server/home-sections/testimonials.ts +23 -0
  263. package/src/server/home-sections/theme-dresses.ts +49 -0
  264. package/src/server/home-sections/video-stories.ts +23 -0
  265. package/src/server/home-sections/why-choose-us.ts +23 -0
  266. package/src/server/home.ts +46 -207
  267. package/src/server/homepage-config.types.ts +335 -0
  268. package/src/server/homepage-section-defaults.ts +41 -2
  269. package/src/server/index.ts +2 -0
  270. package/src/server/normalize-homepage-config.ts +240 -0
  271. package/src/server/orders.ts +6 -6
  272. package/src/server/page-input.ts +66 -0
  273. package/src/server/payment-details.ts +5 -5
  274. package/src/server/payment.ts +2 -2
  275. package/src/server/regions.ts +2 -2
  276. package/src/server/resolve-home-segment-data.ts +63 -0
  277. package/src/server/shoppable-looks.ts +178 -0
  278. package/src/util/store-client.ts +0 -3
  279. package/dist/config.d.ts.map +0 -1
  280. package/dist/cookies.d.ts.map +0 -1
  281. package/dist/edge.d.ts.map +0 -1
  282. package/dist/middleware.d.ts.map +0 -1
  283. package/dist/server/cart.d.ts.map +0 -1
  284. package/dist/server/categories.d.ts.map +0 -1
  285. package/dist/server/collections.d.ts.map +0 -1
  286. package/dist/server/contact.d.ts.map +0 -1
  287. package/dist/server/customer-registration.d.ts.map +0 -1
  288. package/dist/server/customer.d.ts.map +0 -1
  289. package/dist/server/dynamic-config.d.ts +0 -202
  290. package/dist/server/dynamic-config.d.ts.map +0 -1
  291. package/dist/server/dynamic-config.js +0 -675
  292. package/dist/server/fulfillment.d.ts.map +0 -1
  293. package/dist/server/guest.d.ts.map +0 -1
  294. package/dist/server/home.d.ts.map +0 -1
  295. package/dist/server/home.js +0 -124
  296. package/dist/server/homepage-section-defaults.d.ts.map +0 -1
  297. package/dist/server/index.d.ts.map +0 -1
  298. package/dist/server/locale-actions.d.ts.map +0 -1
  299. package/dist/server/locales.d.ts.map +0 -1
  300. package/dist/server/notifications.d.ts.map +0 -1
  301. package/dist/server/onboarding.d.ts.map +0 -1
  302. package/dist/server/orders.d.ts.map +0 -1
  303. package/dist/server/payment-details.d.ts.map +0 -1
  304. package/dist/server/payment.d.ts.map +0 -1
  305. package/dist/server/pincode.d.ts.map +0 -1
  306. package/dist/server/products.d.ts.map +0 -1
  307. package/dist/server/regions.d.ts.map +0 -1
  308. package/dist/server/returns.d.ts.map +0 -1
  309. package/dist/server/swaps.d.ts.map +0 -1
  310. package/dist/server/variants.d.ts.map +0 -1
  311. package/dist/server/wishlist.d.ts.map +0 -1
  312. package/dist/util/get-locale-header.d.ts.map +0 -1
  313. package/dist/util/medusa-error.d.ts.map +0 -1
  314. package/dist/util/revalidate-cart.d.ts.map +0 -1
  315. package/dist/util/sort-products.d.ts.map +0 -1
  316. package/dist/util/store-client.d.ts.map +0 -1
  317. /package/dist/{config.d.ts → src/config.d.ts} +0 -0
  318. /package/dist/{config.js → src/config.js} +0 -0
  319. /package/dist/{cookies.d.ts → src/cookies.d.ts} +0 -0
  320. /package/dist/{cookies.js → src/cookies.js} +0 -0
  321. /package/dist/{edge.d.ts → src/edge.d.ts} +0 -0
  322. /package/dist/{edge.js → src/edge.js} +0 -0
  323. /package/dist/{middleware.d.ts → src/middleware.d.ts} +0 -0
  324. /package/dist/{middleware.js → src/middleware.js} +0 -0
  325. /package/dist/{server → src/server}/cart.d.ts +0 -0
  326. /package/dist/{server → src/server}/categories.d.ts +0 -0
  327. /package/dist/{server → src/server}/categories.js +0 -0
  328. /package/dist/{server → src/server}/collections.d.ts +0 -0
  329. /package/dist/{server → src/server}/collections.js +0 -0
  330. /package/dist/{server → src/server}/contact.d.ts +0 -0
  331. /package/dist/{server → src/server}/contact.js +0 -0
  332. /package/dist/{server → src/server}/customer-registration.d.ts +0 -0
  333. /package/dist/{server → src/server}/customer-registration.js +0 -0
  334. /package/dist/{server → src/server}/customer.d.ts +0 -0
  335. /package/dist/{server → src/server}/fulfillment.d.ts +0 -0
  336. /package/dist/{server → src/server}/guest.d.ts +0 -0
  337. /package/dist/{server → src/server}/guest.js +0 -0
  338. /package/dist/{server → src/server}/locale-actions.d.ts +0 -0
  339. /package/dist/{server → src/server}/locale-actions.js +0 -0
  340. /package/dist/{server → src/server}/locales.d.ts +0 -0
  341. /package/dist/{server → src/server}/locales.js +0 -0
  342. /package/dist/{server → src/server}/notifications.d.ts +0 -0
  343. /package/dist/{server → src/server}/notifications.js +0 -0
  344. /package/dist/{server → src/server}/onboarding.d.ts +0 -0
  345. /package/dist/{server → src/server}/onboarding.js +0 -0
  346. /package/dist/{server → src/server}/orders.d.ts +0 -0
  347. /package/dist/{server → src/server}/payment-details.d.ts +0 -0
  348. /package/dist/{server → src/server}/payment.d.ts +0 -0
  349. /package/dist/{server → src/server}/pincode.d.ts +0 -0
  350. /package/dist/{server → src/server}/pincode.js +0 -0
  351. /package/dist/{server → src/server}/products.d.ts +0 -0
  352. /package/dist/{server → src/server}/products.js +0 -0
  353. /package/dist/{server → src/server}/regions.d.ts +0 -0
  354. /package/dist/{server → src/server}/returns.d.ts +0 -0
  355. /package/dist/{server → src/server}/returns.js +0 -0
  356. /package/dist/{server → src/server}/swaps.d.ts +0 -0
  357. /package/dist/{server → src/server}/swaps.js +0 -0
  358. /package/dist/{server → src/server}/variants.d.ts +0 -0
  359. /package/dist/{server → src/server}/variants.js +0 -0
  360. /package/dist/{server → src/server}/wishlist.d.ts +0 -0
  361. /package/dist/{server → src/server}/wishlist.js +0 -0
  362. /package/dist/{util → src/util}/get-locale-header.d.ts +0 -0
  363. /package/dist/{util → src/util}/get-locale-header.js +0 -0
  364. /package/dist/{util → src/util}/medusa-error.d.ts +0 -0
  365. /package/dist/{util → src/util}/medusa-error.js +0 -0
  366. /package/dist/{util → src/util}/revalidate-cart.d.ts +0 -0
  367. /package/dist/{util → src/util}/revalidate-cart.js +0 -0
  368. /package/dist/{util → src/util}/sort-products.d.ts +0 -0
  369. /package/dist/{util → src/util}/sort-products.js +0 -0
@@ -0,0 +1,136 @@
1
+ import "server-only";
2
+ import { sdk } from "../config";
3
+ import { getRegion } from "./regions";
4
+ import { DEFAULT_HOMEPAGE_SECTIONS } from "./homepage-section-defaults";
5
+ import { getMergedSectionBlock } from "./dynamic-config";
6
+ function parseLookRow(row) {
7
+ const nested = (row.look ?? row["shop-look"] ?? row);
8
+ const image = String(nested.image ?? nested["look-image"] ?? nested.thumbnail ?? "").trim();
9
+ if (!image)
10
+ return null;
11
+ const idsRaw = nested["product-ids"] ?? nested.productIds ?? nested.products;
12
+ const handlesRaw = nested["product-handles"] ?? nested.productHandles ?? nested.handles;
13
+ const productIds = [];
14
+ const productHandles = [];
15
+ if (Array.isArray(idsRaw)) {
16
+ idsRaw.forEach((entry) => {
17
+ if (typeof entry === "string" && entry.trim())
18
+ productIds.push(entry.trim());
19
+ if (entry && typeof entry === "object") {
20
+ const id = entry.id ?? entry["product-id"];
21
+ if (typeof id === "string" && id.trim())
22
+ productIds.push(id.trim());
23
+ }
24
+ });
25
+ }
26
+ if (Array.isArray(handlesRaw)) {
27
+ handlesRaw.forEach((entry) => {
28
+ if (typeof entry === "string" && entry.trim())
29
+ productHandles.push(entry.trim());
30
+ if (entry && typeof entry === "object") {
31
+ const handle = entry.handle;
32
+ if (typeof handle === "string" && handle.trim())
33
+ productHandles.push(handle.trim());
34
+ }
35
+ });
36
+ }
37
+ return { image, productIds, productHandles };
38
+ }
39
+ export function readShoppableLooksBlock(block) {
40
+ if (!block || typeof block !== "object")
41
+ return [];
42
+ const row = block;
43
+ const raw = row.looks ??
44
+ row["shop-looks"] ??
45
+ row["looks-array"] ??
46
+ row["baptism-picks"] ??
47
+ [];
48
+ if (!Array.isArray(raw))
49
+ return [];
50
+ return raw
51
+ .map((item) => {
52
+ if (!item || typeof item !== "object")
53
+ return null;
54
+ return parseLookRow(item);
55
+ })
56
+ .filter((x) => x !== null);
57
+ }
58
+ async function fetchProductsForLook(countryCode, productIds, productHandles) {
59
+ const region = await getRegion(countryCode);
60
+ if (!region?.id)
61
+ return [];
62
+ const fields = "*thumbnail,*images,*variants,*variants.calculated_price,*options,*options.values";
63
+ const byId = new Map();
64
+ if (productIds.length > 0) {
65
+ const { products } = await sdk.store.product.list({ id: productIds, region_id: region.id, fields, limit: productIds.length }, {});
66
+ products.forEach((p) => {
67
+ if (p.id)
68
+ byId.set(p.id, p);
69
+ });
70
+ }
71
+ for (const handle of productHandles) {
72
+ if (byId.has(handle))
73
+ continue;
74
+ try {
75
+ const { products } = await sdk.store.product.list({ handle, region_id: region.id, fields, limit: 1 }, {});
76
+ const product = products?.[0];
77
+ if (product?.id)
78
+ byId.set(product.id, product);
79
+ }
80
+ catch {
81
+ /* skip */
82
+ }
83
+ }
84
+ const ordered = [];
85
+ for (const id of productIds) {
86
+ const p = byId.get(id);
87
+ if (p)
88
+ ordered.push(p);
89
+ }
90
+ for (const handle of productHandles) {
91
+ const p = Array.from(byId.values()).find((x) => x.handle === handle);
92
+ if (p && !ordered.some((o) => o.id === p.id))
93
+ ordered.push(p);
94
+ }
95
+ return ordered;
96
+ }
97
+ export function looksFromProducts(products) {
98
+ return products
99
+ .map((product, index) => {
100
+ const image = product.metadata?.look_image ??
101
+ product.thumbnail ??
102
+ product.images?.[0]?.url ??
103
+ "";
104
+ if (!image)
105
+ return null;
106
+ return {
107
+ id: product.id ?? `look-${index}`,
108
+ image,
109
+ products: [product],
110
+ };
111
+ })
112
+ .filter((x) => x !== null);
113
+ }
114
+ export async function getBaptismPicksLooks(countryCode, fallbackProducts, pageInput) {
115
+ const block = getMergedSectionBlock("baptismPicks", pageInput);
116
+ let configs = readShoppableLooksBlock(block);
117
+ if (configs.length === 0) {
118
+ configs = readShoppableLooksBlock(DEFAULT_HOMEPAGE_SECTIONS.baptismPicks);
119
+ }
120
+ if (configs.length === 0) {
121
+ return looksFromProducts(fallbackProducts);
122
+ }
123
+ const looks = [];
124
+ for (let i = 0; i < configs.length; i++) {
125
+ const config = configs[i];
126
+ const products = await fetchProductsForLook(countryCode, config.productIds, config.productHandles);
127
+ if (products.length === 0)
128
+ continue;
129
+ looks.push({
130
+ id: `look-${i}`,
131
+ image: config.image,
132
+ products,
133
+ });
134
+ }
135
+ return looks.length > 0 ? looks : looksFromProducts(fallbackProducts);
136
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swaps.d.ts","sourceRoot":"","sources":["../../../src/server/swaps.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CACrC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,YAAY,eAAe,EAC3B,UAAU,QAAQ,KACjB,OAAO,CAAC,eAAe,CAsEzB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,GAAU,UAAU,MAAM,mEAoB/C,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variants.d.ts","sourceRoot":"","sources":["../../../src/server/variants.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAI3C,eAAO,MAAM,eAAe,GAC1B,YAAY,MAAM,KACjB,OAAO,CAAC,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAU9C,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wishlist.d.ts","sourceRoot":"","sources":["../../../src/server/wishlist.ts"],"names":[],"mappings":"AAOA,mEAAmE;AACnE,wBAAsB,WAAW,CAAC,cAAc,UAAO,EAAE,WAAW,CAAC,EAAE,MAAM;;;UAGF,OAAO,EAAE;;;;;GAoDnF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-locale-header.d.ts","sourceRoot":"","sources":["../../../src/util/get-locale-header.ts"],"names":[],"mappings":"AAEA,wBAAsB,eAAe;;GAKpC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"medusa-error.d.ts","sourceRoot":"","sources":["../../../src/util/medusa-error.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAkBrD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revalidate-cart.d.ts","sourceRoot":"","sources":["../../../src/util/revalidate-cart.ts"],"names":[],"mappings":"AAGA,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAMxD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sort-products.d.ts","sourceRoot":"","sources":["../../../src/util/sort-products.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC"}
@@ -4,8 +4,6 @@ import { type MedusaAuthClientOptions } from "medusa-services/auth";
4
4
  * Builds portable Medusa store client options from Next.js cookies and env.
5
5
  */
6
6
  export declare function getStoreClientOptions(): Promise<MedusaStoreClientOptions>;
7
- /** @deprecated Use getStoreClientOptions */
8
- export declare const getStoreCartClientOptions: typeof getStoreClientOptions;
9
7
  export declare function getMedusaBackendUrl(): string;
10
8
  export declare function getGuestStoreClientOptions(): Promise<MedusaStoreClientOptions | null>;
11
9
  export declare function getStoreClientOptionsWithToken(token: string): Promise<MedusaStoreClientOptions>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store-client.d.ts","sourceRoot":"","sources":["../../../src/util/store-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAuB,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAqBxF;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,wBAAwB,CAAC,CAY/E;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAuB3F;AAED,wBAAsB,8BAA8B,CAClD,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,wBAAwB,CAAC,CAMnC;AAED,wBAAsB,oBAAoB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAWnG"}
@@ -29,8 +29,6 @@ export async function getStoreClientOptions() {
29
29
  : undefined,
30
30
  };
31
31
  }
32
- /** @deprecated Use getStoreClientOptions */
33
- export const getStoreCartClientOptions = getStoreClientOptions;
34
32
  export function getMedusaBackendUrl() {
35
33
  return getBackendUrl();
36
34
  }
@@ -0,0 +1,209 @@
1
+ {
2
+ "_comment": "Paste under dynamic-config value as homepage-config. Omitted fields use medusa-storefront-data package defaults.",
3
+ "homepage-config": {
4
+ "logo": "/Logo.png",
5
+ "website-description": "Premium kids fashion for everyday wear and special occasions.",
6
+
7
+ "homepage-banner-array": [
8
+ {
9
+ "homepage-banner": {
10
+ "homepage-banner-image": "/banners/hero-1.jpg",
11
+ "homepage-banner-title": "New Collection",
12
+ "homepage-banner-subtitle": "Shop the latest styles",
13
+ "homepage-banner-description": "Discover outfits for every celebration.",
14
+ "homepage-banner-button-name": "Shop Now",
15
+ "homepage-banner-button-link": "/store"
16
+ }
17
+ }
18
+ ],
19
+
20
+ "promo-bar": {
21
+ "promo-text": "Free shipping on orders over $99",
22
+ "promo-code": "FREESHIP",
23
+ "promo-active": false
24
+ },
25
+
26
+ "contact-us": {
27
+ "contact-phone": "+1 000 000 0000",
28
+ "contact-email": "hello@yourstore.com",
29
+ "contact-address": "Your store address"
30
+ },
31
+
32
+ "social-links": [
33
+ {
34
+ "social-link": {
35
+ "social-platform-name": "Instagram",
36
+ "social-platform-icon": "/icons/instagram.svg",
37
+ "social-platform-url": "https://www.instagram.com/yourbrand/"
38
+ }
39
+ }
40
+ ],
41
+
42
+ "ratings": [
43
+ {
44
+ "text": "Beautiful quality and fast delivery.",
45
+ "name": "Happy Customer",
46
+ "rating": 5
47
+ }
48
+ ],
49
+
50
+ "sections": {
51
+ "promoAnnouncements": {
52
+ "messages": [
53
+ "Free shipping on orders over a threshold",
54
+ "Worldwide shipping available"
55
+ ]
56
+ },
57
+
58
+ "newArrivals": {
59
+ "title": "New Arrivals",
60
+ "subtitle": "Fresh styles just landed",
61
+ "variant": "grid"
62
+ },
63
+
64
+ "newArrivalsClassic": {
65
+ "title": "New Arrivals",
66
+ "subtitle": "Classic product preview layout",
67
+ "variant": "classic"
68
+ },
69
+
70
+ "promoCountdown": {
71
+ "code": "SAVE50",
72
+ "text": "Up to 50% off — shop your favourites before they're gone!",
73
+ "end-at": "2026-12-31T23:59:59.000Z",
74
+ "active": true,
75
+ "cta-label": "Shop Offers",
76
+ "cta-href": "/store"
77
+ },
78
+
79
+ "celebrityTrust": {
80
+ "title": "Trusted by Celebrities",
81
+ "text": "When the stars dress their little ones in our collections."
82
+ },
83
+
84
+ "luxeFavourites": {
85
+ "title": "Luxe Favourites"
86
+ },
87
+
88
+ "shopByCategory": {
89
+ "title": "Shop By Categories",
90
+ "description": "Browse by style and occasion"
91
+ },
92
+
93
+ "baptism": {
94
+ "title": "Baptism"
95
+ },
96
+
97
+ "baptismPicks": {
98
+ "title": "Baptism Picks",
99
+ "looks": [
100
+ {
101
+ "image": "https://your-cdn.com/looks/baptism-1.jpg",
102
+ "product-ids": ["prod_REPLACE_ME_1", "prod_REPLACE_ME_2"]
103
+ },
104
+ {
105
+ "image": "https://your-cdn.com/looks/baptism-2.jpg",
106
+ "product-handles": ["off-white-baptism-gown"]
107
+ }
108
+ ]
109
+ },
110
+
111
+ "themeDresses": {
112
+ "title": "Theme",
113
+ "description": "Dress her in a dreamy theme outfit for her birthday celebration"
114
+ },
115
+
116
+ "brandMarquee": {
117
+ "text": "est. 2012"
118
+ },
119
+
120
+ "aboutBrand": {
121
+ "eyebrow": "Who We Are",
122
+ "title": "Discover what makes us different",
123
+ "description": "We offer stylish, comfortable, and high-quality clothing for children.",
124
+ "readMoreHref": "/about",
125
+ "stats": [
126
+ { "label": "Visit us in store", "value": "Find a location" },
127
+ { "label": "Happy customers", "value": "150k+" },
128
+ { "label": "Products", "value": "3000+" }
129
+ ]
130
+ },
131
+
132
+ "testimonials": {
133
+ "title": "What Clients Talk About Us",
134
+ "description": "The Trust We've Earned",
135
+ "items": [
136
+ {
137
+ "text": "Your review text here.",
138
+ "name": "Customer Name",
139
+ "rating": 5
140
+ }
141
+ ]
142
+ },
143
+
144
+ "brandPillars": {
145
+ "title": "Why families choose us",
146
+ "pillars": [
147
+ {
148
+ "title": "Your favorite kids destination",
149
+ "description": "Trendy, high-quality outfits for little ones.",
150
+ "image": "/features/store.jpg"
151
+ }
152
+ ]
153
+ },
154
+
155
+ "instagramPosts": {
156
+ "title": "Follow Us on Instagram",
157
+ "handle": "yourbrand",
158
+ "profile-url": "https://www.instagram.com/yourbrand/",
159
+ "profile-image": "/Logo.png",
160
+ "posts": [
161
+ {
162
+ "image": "https://your-cdn.com/instagram/post-1.jpg",
163
+ "url": "https://www.instagram.com/p/EXAMPLE/"
164
+ }
165
+ ]
166
+ },
167
+
168
+ "features": {
169
+ "title": "Why shop with us",
170
+ "description": "Secure checkout, fast delivery, and easy exchanges",
171
+ "features": [
172
+ { "name": "100% Secure", "icon": "/secure.svg" },
173
+ { "name": "Easy Exchanges", "icon": "/exchnage.svg" }
174
+ ]
175
+ },
176
+
177
+ "whyChooseUs": {
178
+ "title": "Why Choose Us?",
179
+ "features": [
180
+ { "feature-name": "Premium Quality", "feature-icon": "/icons/quality.svg" }
181
+ ]
182
+ },
183
+
184
+ "videoStories": {
185
+ "title": "Watch Stories & Reviews",
186
+ "video-urls": [
187
+ "https://your-cdn.com/videos/story-1.mp4",
188
+ {
189
+ "video-story": {
190
+ "video-url": "https://your-cdn.com/videos/story-2.mp4"
191
+ }
192
+ }
193
+ ]
194
+ },
195
+
196
+ "blogPosts": {
197
+ "title": "Blog posts",
198
+ "posts": [
199
+ {
200
+ "title": "Which Theme Dress Matches Her Vibe?",
201
+ "href": "/blog/theme-dress-vibe",
202
+ "category": "Theme Dress",
203
+ "date": "May 24, 2026"
204
+ }
205
+ ]
206
+ }
207
+ }
208
+ }
209
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "_comment": "Minimal sections override. Full backend template: homepage-config.example.json. Docs: HOMEPAGE_CONFIG.md",
3
+ "homepage-config": {
4
+ "sections": {
5
+ "newArrivals": {
6
+ "title": "New Arrivals",
7
+ "subtitle": "Your custom subtitle from CMS",
8
+ "variant": "grid"
9
+ },
10
+ "newArrivalsClassic": {
11
+ "title": "New Arrivals",
12
+ "subtitle": "Classic ProductPreview layout",
13
+ "variant": "classic"
14
+ },
15
+ "promoCountdown": {
16
+ "code": "SAVE50",
17
+ "text": "Up to 50% off — shop your favourites before they're gone!",
18
+ "end-at": "2026-12-31T23:59:59.000Z",
19
+ "active": true,
20
+ "cta-label": "Shop Offers",
21
+ "cta-href": "/store"
22
+ },
23
+ "promoAnnouncements": {
24
+ "messages": [
25
+ "Custom announcement line 1",
26
+ "Custom announcement line 2"
27
+ ]
28
+ },
29
+ "testimonials": {
30
+ "title": "What Clients Talk About Us",
31
+ "description": "The Trust We've Earned",
32
+ "items": [
33
+ {
34
+ "text": "Your review text here.",
35
+ "name": "Customer Name"
36
+ }
37
+ ]
38
+ },
39
+ "baptismPicks": {
40
+ "title": "Baptism Picks",
41
+ "looks": [
42
+ {
43
+ "image": "https://your-cdn.com/looks/baptism-1.jpg",
44
+ "product-ids": ["prod_REPLACE_ME_1", "prod_REPLACE_ME_2"]
45
+ },
46
+ {
47
+ "image": "https://your-cdn.com/looks/baptism-2.jpg",
48
+ "product-handles": ["off-white-baptism-gown"]
49
+ }
50
+ ]
51
+ }
52
+ },
53
+ "ratings": []
54
+ }
55
+ }