@ecomiq/storefront 2.1.4 → 3.0.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 (310) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +150 -103
  3. package/dist/account-Dx4e3syi.js +258 -0
  4. package/dist/account-forms-AVk71ko7.js +39 -0
  5. package/dist/account-forms.d.ts +13 -0
  6. package/dist/account.d.ts +240 -0
  7. package/dist/address-defaults-BqjRhS82.js +14 -0
  8. package/dist/address-defaults.d.ts +11 -0
  9. package/dist/analytics/analytics-CG1Qagwl.js +148 -0
  10. package/dist/analytics/analytics.d.ts +1 -0
  11. package/dist/analytics/config-DJr-GRhs.js +62 -0
  12. package/dist/analytics/config.d.ts +22 -0
  13. package/dist/analytics/consent-B13rBpBs.js +57 -0
  14. package/dist/analytics/consent-banner-9QvRRy8v.js +239 -0
  15. package/dist/analytics/consent-banner.d.ts +20 -0
  16. package/dist/analytics/cookies-pLozllyB.js +100 -0
  17. package/dist/analytics/cookies.d.ts +6 -0
  18. package/dist/analytics/destinations-iECrlLIr.js +144 -0
  19. package/dist/analytics/events-Dt81tIp1.js +102 -0
  20. package/dist/analytics/events.d.ts +51 -0
  21. package/dist/analytics/tracker-p4yaoOyk.js +51 -0
  22. package/dist/api-cache-DsuIn5hX.js +159 -0
  23. package/dist/bank-accounts-DlEczQQ5.js +81 -0
  24. package/dist/bank-accounts.d.ts +4 -0
  25. package/dist/captcha-DAqaIx8m.js +117 -0
  26. package/dist/captcha.d.ts +34 -0
  27. package/dist/cart-D7DxZ2lD.js +30 -0
  28. package/dist/cart-actions-Bsub_FFG.js +116 -0
  29. package/dist/cart-actions.d.ts +15 -0
  30. package/dist/cart-drawer-B7PPsR69.js +22 -0
  31. package/dist/cart-drawer.d.ts +9 -0
  32. package/dist/cart-form-y9P1r_EX.js +81 -0
  33. package/dist/cart-form.d.ts +24 -0
  34. package/dist/cart-summary-ur2VWKr-.js +89 -0
  35. package/dist/cart-summary.d.ts +31 -0
  36. package/dist/cart.d.ts +4 -0
  37. package/dist/catalog-7gJ-l5hW.js +67 -0
  38. package/dist/catalog-hooks-B7ZP4wYY.js +312 -0
  39. package/dist/catalog-hooks.d.ts +111 -0
  40. package/dist/catalog.d.ts +5 -0
  41. package/dist/checkout-DVWSXANi.js +474 -0
  42. package/dist/checkout-form-CbOIdENC.js +131 -0
  43. package/dist/checkout-form.d.ts +20 -0
  44. package/dist/checkout.d.ts +86 -0
  45. package/dist/complaint-book-BvwLvfx0.js +117 -0
  46. package/dist/complaint-book.d.ts +62 -0
  47. package/dist/culqi-authentication-BGr20vAJ.js +204 -0
  48. package/dist/culqi-authentication.d.ts +15 -0
  49. package/dist/culqi-checkout-CTXpKgp_.js +55 -0
  50. package/dist/culqi-three-ds-HP3mfrvV.js +33 -0
  51. package/dist/culqi-three-ds.d.ts +29 -0
  52. package/dist/customer-avatar-CJXSDroK.js +12 -0
  53. package/dist/customer-avatar.d.ts +5 -0
  54. package/dist/customer-cookies-DHOgFAMV.js +45 -0
  55. package/dist/customer-csrf-C1oDX-Py.js +17 -0
  56. package/dist/customer-csrf.d.ts +3 -0
  57. package/dist/customer-document-fields-C1K-_DAD.js +70 -0
  58. package/dist/customer-document-fields.d.ts +9 -0
  59. package/dist/customer-login-form-C7AC6vXd.js +144 -0
  60. package/dist/customer-login-form.d.ts +17 -0
  61. package/dist/customer-registration-form-BEm_NEfP.js +93 -0
  62. package/dist/customer-registration-form.d.ts +8 -0
  63. package/dist/document-url-CGsAl5Tf.js +9 -0
  64. package/dist/documents-T1mzc_j8.js +38 -0
  65. package/dist/documents.d.ts +16 -0
  66. package/dist/entries/account.d.ts +11 -0
  67. package/dist/entries/account.js +10 -0
  68. package/dist/entries/analytics.d.ts +6 -0
  69. package/dist/entries/analytics.js +5 -0
  70. package/dist/entries/cart.d.ts +8 -0
  71. package/dist/entries/cart.js +7 -0
  72. package/dist/entries/checkout.d.ts +12 -0
  73. package/dist/entries/checkout.js +11 -0
  74. package/dist/entries/order.d.ts +11 -0
  75. package/dist/entries/order.js +11 -0
  76. package/dist/favicon-YpyhVJ9H.js +28 -0
  77. package/dist/favicon.d.ts +4 -0
  78. package/dist/form-BtQcbXlJ.js +18 -0
  79. package/dist/form-contracts-BNpHaTGJ.js +166 -0
  80. package/dist/form-contracts.d.ts +42 -0
  81. package/dist/form.d.ts +3 -0
  82. package/dist/hidden-CCWtOWKR.js +3 -0
  83. package/dist/hidden.d.ts +4 -0
  84. package/dist/index.d.ts +50 -0
  85. package/dist/index.js +50 -0
  86. package/dist/invoice-fields-BG0HjL6T.js +103 -0
  87. package/dist/invoice-fields.d.ts +39 -0
  88. package/dist/links-kFxBZfdb.js +96 -0
  89. package/dist/links.d.ts +21 -0
  90. package/dist/mercadopago-checkout-DC7RXa8k.js +27 -0
  91. package/dist/mercadopago-dialog-UTQev0MG.js +180 -0
  92. package/dist/mercadopago-dialog.d.ts +21 -0
  93. package/dist/money-DtGOtDri.js +32 -0
  94. package/dist/money.d.ts +1 -0
  95. package/dist/optimistic-cart-BveVOHuh.js +53 -0
  96. package/dist/optimistic-cart.d.ts +16 -0
  97. package/dist/order-display-DTt5WBbc.js +112 -0
  98. package/dist/order-display.d.ts +20 -0
  99. package/dist/order-draft-DxV1Uhm3.js +38 -0
  100. package/dist/order-draft.d.ts +16 -0
  101. package/dist/order-pages-Dm6l5m0m.js +38 -0
  102. package/dist/order-pages.d.ts +12 -0
  103. package/dist/order-payment-continuation-D_d5PGA4.js +212 -0
  104. package/dist/order-payment-continuation.d.ts +10 -0
  105. package/dist/order-payment-in-review-x4gdLFHZ.js +65 -0
  106. package/dist/order-payment-in-review.d.ts +5 -0
  107. package/dist/order-status-BJXLJwxq.js +162 -0
  108. package/dist/order-status.d.ts +89 -0
  109. package/dist/order-view-9IlBg5AF.js +62 -0
  110. package/dist/order-view.d.ts +12 -0
  111. package/dist/page-action-Ctkf4xC6.js +7 -0
  112. package/dist/page-seo-a5FJl8x5.js +262 -0
  113. package/dist/page-seo.d.ts +34 -0
  114. package/dist/pages-Ca_Gt6mq.js +150 -0
  115. package/dist/pages.d.ts +45 -0
  116. package/dist/payment-dialog-frame-B-Q_xQ94.js +57 -0
  117. package/dist/payment-logo-BoPaGJc_.js +46 -0
  118. package/dist/payment-logo-svgs-By9lDTLK.js +20 -0
  119. package/dist/payment-logo.d.ts +11 -0
  120. package/dist/payment-logos-BYvdwYyJ.js +23 -0
  121. package/dist/payment-methods-B8ocTgFZ.js +73 -0
  122. package/dist/payment-methods.d.ts +58 -0
  123. package/dist/payment-return-5cjypwIw.js +7 -0
  124. package/dist/place-CmW4hBWY.js +13 -0
  125. package/dist/place.d.ts +4 -0
  126. package/dist/preview-BiIBif3C.js +427 -0
  127. package/dist/preview-address-Cf0sJ-9p.js +21 -0
  128. package/dist/preview-cart-Dg2CVktS.js +376 -0
  129. package/dist/product-preview-BspMAecJ.js +51 -0
  130. package/dist/product-preview.d.ts +5 -0
  131. package/dist/product-variants-BNDHvs1y.js +46 -0
  132. package/dist/product-variants.d.ts +12 -0
  133. package/dist/public-pages-XtwlaLwt.js +194 -0
  134. package/dist/public-pages.d.ts +67 -0
  135. package/dist/registration-CpDcv8ql.js +91 -0
  136. package/dist/registration.d.ts +12 -0
  137. package/dist/request-security-CRsRMgwj.js +76 -0
  138. package/dist/rich-text-M-Ju8RL4.js +9 -0
  139. package/dist/rich-text.d.ts +5 -0
  140. package/dist/route-text-DcJw2SsK.js +9 -0
  141. package/dist/route-text.d.ts +4 -0
  142. package/dist/section-preview-CmsMl3yu.js +83 -0
  143. package/dist/section-preview.d.ts +12 -0
  144. package/dist/sections/account-addresses.d.ts +18 -0
  145. package/dist/sections/account-addresses.js +375 -0
  146. package/dist/sections/account-order.d.ts +12 -0
  147. package/dist/sections/account-order.js +592 -0
  148. package/dist/sections/account-orders.d.ts +8 -0
  149. package/dist/sections/account-orders.js +359 -0
  150. package/dist/sections/account-profile.d.ts +16 -0
  151. package/dist/sections/account-profile.js +123 -0
  152. package/dist/sections/checkout.d.ts +24 -0
  153. package/dist/sections/checkout.js +963 -0
  154. package/dist/sections/complaint-book.d.ts +8 -0
  155. package/dist/sections/complaint-book.js +538 -0
  156. package/dist/sections/design-system.d.ts +1 -0
  157. package/dist/sections/design-system.js +310 -0
  158. package/dist/sections/draft-invoice.d.ts +20 -0
  159. package/dist/sections/draft-invoice.js +158 -0
  160. package/dist/sections/order-tracking.d.ts +19 -0
  161. package/dist/sections/order-tracking.js +141 -0
  162. package/dist/sections-CNUMWTF_.js +77 -0
  163. package/dist/sections.d.ts +19 -0
  164. package/dist/seo-GpDRhAAA.js +78 -0
  165. package/dist/session-CKvmFJyg.js +379 -0
  166. package/dist/session.d.ts +24 -0
  167. package/dist/settings-B0NO2A6Y.js +78 -0
  168. package/dist/settings.d.ts +51 -0
  169. package/dist/source-marker-DhqSkW7n.js +4 -0
  170. package/dist/sources-B-3JFJfb.js +46 -0
  171. package/dist/sources.d.ts +7 -0
  172. package/dist/store-8Q-_LFrQ.js +152 -0
  173. package/dist/store-contact--hY6CoFb.js +19 -0
  174. package/dist/store-contact.d.ts +6 -0
  175. package/dist/store.d.ts +17 -0
  176. package/dist/storefront-language-DrMjVbmk.js +29 -0
  177. package/dist/storefront-language.d.ts +14 -0
  178. package/dist/storefront-text-D25ae1qf.js +11 -0
  179. package/dist/storefront-text-en-ljjjSS4q.js +1030 -0
  180. package/dist/storefront-text-pt-BtHaJLcp.js +1030 -0
  181. package/dist/storefront-text.d.ts +4 -0
  182. package/dist/stripe-dialog-Ev9s3Z62.js +396 -0
  183. package/dist/stripe-dialog.d.ts +30 -0
  184. package/dist/telemetry-HuZXWBPi.js +114 -0
  185. package/dist/telemetry.d.ts +10 -0
  186. package/dist/templates-CAqoNyTW.js +40 -0
  187. package/dist/templates.d.ts +15 -0
  188. package/dist/urls-CpGQPxvf.js +71 -0
  189. package/dist/urls.d.ts +18 -0
  190. package/dist/use-checkout-CZcxXJXi.js +42 -0
  191. package/dist/use-checkout-payment-9R-zacrJ.js +80 -0
  192. package/dist/use-checkout-payment.d.ts +18 -0
  193. package/dist/use-checkout.d.ts +36 -0
  194. package/dist/use-culqi-checkout-CrjLAipU.js +109 -0
  195. package/dist/use-order-payment-BKIz_IO0.js +45 -0
  196. package/dist/use-order-payment.d.ts +18 -0
  197. package/dist/use-payment-token-CErx-tN-.js +105 -0
  198. package/dist/vite-payment-logos-kziu7wKb.js +27 -0
  199. package/dist/vite-payment-logos.d.ts +24 -0
  200. package/dist/vite-public-assets-DW2fgtVb.js +209 -0
  201. package/dist/vite-public-assets.d.ts +29 -0
  202. package/dist/vite-sections-DTBr0-Kg.js +464 -0
  203. package/dist/vite-sections.d.ts +21 -0
  204. package/dist/vite-theme-ui-BMO-CDi3.js +41 -0
  205. package/dist/vite-theme-ui.d.ts +10 -0
  206. package/dist/vite.d.ts +36 -0
  207. package/dist/vite.js +127 -0
  208. package/dist/voucher-payment-CVFDZ1L8.js +66 -0
  209. package/dist/worker-CNi-gzCu.js +86 -0
  210. package/dist/worker.d.ts +27 -0
  211. package/package.json +100 -76
  212. package/src/sections/account-addresses.tsx +215 -0
  213. package/src/sections/account-order.tsx +424 -0
  214. package/src/sections/account-orders.tsx +259 -0
  215. package/src/sections/account-profile.tsx +70 -0
  216. package/src/sections/checkout.tsx +586 -0
  217. package/src/sections/complaint-book.tsx +325 -0
  218. package/src/sections/design-system.tsx +146 -0
  219. package/src/sections/draft-invoice.tsx +105 -0
  220. package/src/sections/order-tracking.tsx +81 -0
  221. package/src/vite-client.d.ts +4 -0
  222. package/bin/ecomiq.mjs +0 -179
  223. package/public/design-bridge.js +0 -318
  224. package/src/api-proxy.ts +0 -194
  225. package/src/auth/create-storefront-auth.ts +0 -94
  226. package/src/auth/ecomiq-oauth-password-client.ts +0 -26
  227. package/src/auth/ecomiq-oauth-password-constants.ts +0 -24
  228. package/src/auth/ecomiq-oauth-password-plugin.ts +0 -294
  229. package/src/auth/ecomiq-oauth-password-types.ts +0 -24
  230. package/src/auth/ecomiq-storefront-sign-in.ts +0 -44
  231. package/src/auth/env.ts +0 -7
  232. package/src/auth/secure-cookies.ts +0 -23
  233. package/src/auth/storefront-auth-base-url.ts +0 -117
  234. package/src/auth/storefront-auth.ts +0 -7
  235. package/src/cart-session.ts +0 -239
  236. package/src/client.ts +0 -48
  237. package/src/codegen.mjs +0 -801
  238. package/src/components/account/customer-addresses-panel.tsx +0 -678
  239. package/src/components/account/customer-order-detail-panel.tsx +0 -285
  240. package/src/components/account/customer-orders-panel.tsx +0 -192
  241. package/src/components/account/customer-profile-panel.tsx +0 -379
  242. package/src/components/checkout/cart-sync.ts +0 -143
  243. package/src/components/checkout/checkout-contact-section.tsx +0 -76
  244. package/src/components/checkout/checkout-external-update-banner.tsx +0 -15
  245. package/src/components/checkout/checkout-form-controls.tsx +0 -139
  246. package/src/components/checkout/checkout-line-items.tsx +0 -43
  247. package/src/components/checkout/checkout-order-summary.tsx +0 -165
  248. package/src/components/checkout/checkout-payment-section.tsx +0 -212
  249. package/src/components/checkout/checkout-session-view.tsx +0 -564
  250. package/src/components/checkout/checkout-shipping-address-section.tsx +0 -400
  251. package/src/components/checkout/checkout-shipping-section.tsx +0 -98
  252. package/src/components/checkout/checkout-states.tsx +0 -73
  253. package/src/components/checkout/checkout-step-card.tsx +0 -101
  254. package/src/components/checkout/checkout-steps.ts +0 -111
  255. package/src/components/checkout/form-schema.ts +0 -281
  256. package/src/components/checkout/format.ts +0 -15
  257. package/src/components/checkout/index.ts +0 -5
  258. package/src/components/checkout/map-customer-to-checkout.ts +0 -188
  259. package/src/components/checkout/types.ts +0 -41
  260. package/src/components/checkout/use-checkout-customer-prefill.ts +0 -409
  261. package/src/components/checkout/use-checkout-geo.ts +0 -50
  262. package/src/components/checkout/use-checkout-session.ts +0 -640
  263. package/src/components/hero.tsx +0 -291
  264. package/src/config.d.ts +0 -94
  265. package/src/config.mjs +0 -146
  266. package/src/format-money.ts +0 -31
  267. package/src/health.ts +0 -90
  268. package/src/hooks/index.ts +0 -9
  269. package/src/hooks/recently-viewed.ts +0 -125
  270. package/src/index.ts +0 -349
  271. package/src/link.tsx +0 -2
  272. package/src/pages/account/account-page-skeleton.tsx +0 -69
  273. package/src/pages/account/account-page-view.tsx +0 -270
  274. package/src/pages/account/account-shell.tsx +0 -101
  275. package/src/pages/account/parse-account-route.ts +0 -36
  276. package/src/pages/account.tsx +0 -16
  277. package/src/pages/api.$.ts +0 -20
  278. package/src/pages/api.auth.$.ts +0 -16
  279. package/src/pages/checkout.$checkoutId.tsx +0 -60
  280. package/src/pages/checkout.tsx +0 -31
  281. package/src/pages/pages.$pageSlug.tsx +0 -74
  282. package/src/pages/thank-you.tsx +0 -53
  283. package/src/providers/auth.tsx +0 -96
  284. package/src/providers/cart.tsx +0 -275
  285. package/src/providers/ecomiq.ts +0 -137
  286. package/src/providers/index.ts +0 -26
  287. package/src/proxy-api.ts +0 -20
  288. package/src/public-config.ts +0 -24
  289. package/src/review-submission.ts +0 -89
  290. package/src/runtime/context.ts +0 -2
  291. package/src/runtime/default-layout.tsx +0 -64
  292. package/src/runtime/head.ts +0 -149
  293. package/src/runtime/page.tsx +0 -143
  294. package/src/runtime/postcss-browser-stub.mjs +0 -5
  295. package/src/server-config-store.ts +0 -35
  296. package/src/server.ts +0 -286
  297. package/src/styles.css +0 -76
  298. package/src/ui/badge.tsx +0 -32
  299. package/src/ui/button.tsx +0 -31
  300. package/src/ui/card.tsx +0 -31
  301. package/src/ui/carousel.tsx +0 -218
  302. package/src/ui/cn.ts +0 -6
  303. package/src/ui/index.ts +0 -8
  304. package/src/ui/separator.tsx +0 -6
  305. package/src/ui/skeleton.tsx +0 -6
  306. package/src/ui/storefront-error.tsx +0 -49
  307. package/src/utils.ts +0 -36
  308. package/src/vite-inline.mjs +0 -263
  309. package/templates/__root.tsx +0 -83
  310. package/templates/router.tsx +0 -19
@@ -0,0 +1,427 @@
1
+ import { previewAddress } from "./preview-address-Cf0sJ-9p.js";
2
+ import { paymentMethods, previewCart } from "./preview-cart-Dg2CVktS.js";
3
+ // src/preview.ts
4
+ const PREVIEW_TOKEN = "ecomiq-editor-preview";
5
+ const PREVIEW_REVIEW = "preview-review";
6
+ const PREVIEW_ORDER_STATUS = "preview-order";
7
+ const PREVIEW_DRAFT = "preview-draft";
8
+ function previewing(options) {
9
+ return options?.headers?.["X-Customer-Session"] === PREVIEW_TOKEN;
10
+ }
11
+ const ME = {
12
+ id: "preview-customer",
13
+ storeId: "preview-store",
14
+ email: "ana.torres@example.com",
15
+ firstName: "Ana",
16
+ lastName: "Torres",
17
+ phone: null,
18
+ identificationNumber: null,
19
+ identificationType: null,
20
+ entityName: null,
21
+ dateOfBirth: null,
22
+ gender: "unspecified",
23
+ role: null,
24
+ companyName: null,
25
+ consent: true,
26
+ userId: null,
27
+ customerType: "person",
28
+ status: "active",
29
+ isVerified: true,
30
+ entityIdentificationNumber: null,
31
+ defaultAddressId: "preview-address-1",
32
+ metadata: null,
33
+ totalOrders: 3,
34
+ avgOrders: 1,
35
+ lastOrderId: "1042",
36
+ lastOrderDate: null,
37
+ loyaltyPoints: 120,
38
+ addresses: [],
39
+ createdOn: "2026-01-15T00:00:00.000Z",
40
+ updatedOn: null
41
+ };
42
+ const REGISTRATION = {
43
+ fields: {
44
+ firstName: "required",
45
+ lastName: "optional",
46
+ phone: "optional",
47
+ dateOfBirth: "optional"
48
+ },
49
+ firstName: null,
50
+ lastName: null,
51
+ phone: null,
52
+ dateOfBirth: null,
53
+ requiresCompletion: true
54
+ };
55
+ async function addresses(store) {
56
+ const address = await previewAddress(store);
57
+ return [{
58
+ id: "preview-address-1",
59
+ addressKey: address.address1,
60
+ department: address.department ?? null,
61
+ addressNumber: null,
62
+ province: address.province,
63
+ district: address.district,
64
+ phone: address.phone,
65
+ cellPhone: null,
66
+ addressLine: address.address1,
67
+ reference: null,
68
+ countryIsoCode: address.countryCode,
69
+ postalCode: address.postalCode,
70
+ latitude: null,
71
+ longitude: null,
72
+ hasCoordinates: false,
73
+ isDefault: true
74
+ }];
75
+ }
76
+ const SAMPLES = [
77
+ {
78
+ status: "Delivered",
79
+ step: "delivered",
80
+ paid: true
81
+ },
82
+ {
83
+ status: "InTransit",
84
+ step: "shipped",
85
+ paid: true
86
+ },
87
+ {
88
+ status: "Confirmed",
89
+ step: "confirmed",
90
+ paid: false
91
+ }
92
+ ];
93
+ const PAYMENTS = [
94
+ {
95
+ paymentMethod: "Tarjeta",
96
+ paymentCode: "card",
97
+ cardBrand: "Visa",
98
+ cardLast4: "4242",
99
+ installments: 3
100
+ },
101
+ {
102
+ paymentMethod: "Tarjeta",
103
+ paymentCode: "card",
104
+ cardBrand: "Mastercard",
105
+ cardLast4: "4444",
106
+ installments: null
107
+ },
108
+ {
109
+ paymentMethod: "Yape",
110
+ paymentCode: "yape",
111
+ cardBrand: null,
112
+ cardLast4: null,
113
+ installments: null
114
+ }
115
+ ];
116
+ function days(ago) {
117
+ return (/* @__PURE__ */ new Date(Date.now() - ago * 864e5)).toISOString();
118
+ }
119
+ function items(orderId, products, sample) {
120
+ return products.map((product, index) => ({
121
+ id: `${orderId}-${index}`,
122
+ orderId,
123
+ productId: product.id,
124
+ variantId: product.availableVariantId,
125
+ title: product.name,
126
+ subtitle: null,
127
+ thumbnail: product.imageUrl || null,
128
+ variantTitle: null,
129
+ productHandle: product.slug,
130
+ productUrl: product.url,
131
+ quantity: index + 1,
132
+ unitPrice: product.price,
133
+ total: product.price * (index + 1),
134
+ status: sample.status,
135
+ step: sample.step,
136
+ carrierName: sample.step === "confirmed" ? null : "Olva Courier",
137
+ trackingNumber: sample.step === "confirmed" ? null : "DEMO123456",
138
+ trackingLink: null,
139
+ shippedAt: sample.step === "confirmed" ? null : days(3),
140
+ deliveredAt: sample.step === "delivered" ? days(1) : null,
141
+ returnableQuantity: sample.step === "delivered" ? index + 1 : 0
142
+ }));
143
+ }
144
+ async function orders(client) {
145
+ const [settings, catalog] = await Promise.all([client.getSettings(), client.getProducts({ pageSize: 6 }).catch(() => null)]);
146
+ const products = catalog?.products ?? [];
147
+ const address = await previewAddress(settings.store);
148
+ return SAMPLES.map((sample, index) => {
149
+ const orderId = `${1042 - index}`;
150
+ const lines = items(orderId, products.length === 0 ? [] : [.../* @__PURE__ */ new Set([products[index * 2 % products.length], products[(index * 2 + 1) % products.length]])], sample);
151
+ const total = lines.reduce((sum, line) => sum + line.total, 0);
152
+ return {
153
+ orderId,
154
+ orderNumber: `${1042 - index}`,
155
+ orderGroup: orderId,
156
+ orderIds: [orderId],
157
+ status: sample.status,
158
+ step: sample.step,
159
+ total,
160
+ totalPaid: sample.paid ? total : 0,
161
+ currencyCode: settings.store.currency,
162
+ orderDate: days(index * 9 + 2),
163
+ createdOn: days(index * 9 + 2),
164
+ updatedOn: null,
165
+ paymentAt: sample.paid ? days(index * 9 + 2) : null,
166
+ shippingAddress: {
167
+ ...address,
168
+ metadata: {}
169
+ },
170
+ shippingAddressSummary: `${address.address1}, ${address.city}`,
171
+ items: lines,
172
+ payments: [{
173
+ id: `${orderId}-payment`,
174
+ ...PAYMENTS[index],
175
+ amount: total,
176
+ paymentStatus: sample.paid ? "captured" : "pending",
177
+ receiptUrl: null,
178
+ createdOn: days(index * 9 + 2)
179
+ }]
180
+ };
181
+ });
182
+ }
183
+ /** The preview list honours the same search, status and sort the API applies. */
184
+ function filterOrders(list, options) {
185
+ const search = options.search?.trim().toLowerCase() ?? "";
186
+ const matches = list.filter((item) => {
187
+ if (search !== "" && !item.orderNumber.toLowerCase().includes(search) && !item.items.some((line) => line.title.toLowerCase().includes(search))) return false;
188
+ if (options.status === "delivered") return item.step === "delivered";
189
+ if (options.status === "cancelled") return item.step === "cancelled";
190
+ if (options.status === "open") return item.step !== "delivered" && item.step !== "cancelled";
191
+ return true;
192
+ });
193
+ return options.sortDirection === "asc" ? matches.reverse() : matches;
194
+ }
195
+ async function order(client, id) {
196
+ const list = await orders(client);
197
+ const summary = list.find((item) => item.orderId === id) ?? list[0];
198
+ return {
199
+ id: summary.orderId,
200
+ orderNumber: summary.orderNumber,
201
+ orderGroup: summary.orderGroup,
202
+ status: summary.status,
203
+ step: summary.step,
204
+ total: summary.total,
205
+ totalPaid: summary.totalPaid,
206
+ currencyCode: summary.currencyCode,
207
+ orderDate: summary.orderDate,
208
+ createdOn: summary.createdOn,
209
+ updatedOn: null,
210
+ paymentAt: summary.paymentAt,
211
+ subTotal: summary.total,
212
+ discount: 0,
213
+ shipping: 0,
214
+ tax: 0,
215
+ email: ME.email,
216
+ phone: ME.phone,
217
+ firstName: ME.firstName,
218
+ lastName: ME.lastName,
219
+ shippingAddress: summary.shippingAddress,
220
+ shippingAddressSummary: summary.shippingAddressSummary,
221
+ billingAddress: summary.shippingAddress,
222
+ items: summary.items,
223
+ payments: summary.payments,
224
+ statusTimeline: [{
225
+ key: "placed",
226
+ label: "Pedido realizado",
227
+ occurredAt: summary.createdOn,
228
+ description: null,
229
+ status: "New",
230
+ source: "store"
231
+ }, {
232
+ key: "status",
233
+ label: "Estado actual",
234
+ occurredAt: summary.createdOn,
235
+ description: null,
236
+ status: summary.status,
237
+ source: "store"
238
+ }],
239
+ shipments: [{
240
+ carrierName: null,
241
+ trackingNumber: "DEMO123456",
242
+ trackingLink: null
243
+ }],
244
+ paymentPath: summary.totalPaid < summary.total ? `/orders/${PREVIEW_ORDER_STATUS}` : null,
245
+ returnStatus: "none",
246
+ returnDeadline: summary.step === "delivered" ? days(-29) : null,
247
+ canRequestReturn: summary.step === "delivered",
248
+ cancellationRequestedAt: null,
249
+ canRequestCancellation: summary.step === "confirmed"
250
+ };
251
+ }
252
+ async function review(client) {
253
+ const [delivered] = await orders(client);
254
+ return {
255
+ orderId: delivered.orderId,
256
+ orderNumber: delivered.orderNumber,
257
+ customerName: `${ME.firstName} ${ME.lastName}`,
258
+ email: ME.email,
259
+ deliveredAt: delivered.orderDate,
260
+ items: delivered.items.map((item) => ({
261
+ productId: item.productId ?? "",
262
+ title: item.title,
263
+ variantTitle: item.variantTitle,
264
+ thumbnail: item.thumbnail
265
+ }))
266
+ };
267
+ }
268
+ async function orderStatus(client) {
269
+ const [sample, methods] = await Promise.all([order(client, "1041"), paymentMethods(client)]);
270
+ const balanceDue = Math.min(sample.total, 50);
271
+ return {
272
+ order: {
273
+ ...sample,
274
+ totalPaid: sample.total - balanceDue
275
+ },
276
+ step: "shipped",
277
+ balanceDue,
278
+ paymentMethods: methods.map((method) => ({
279
+ ...method,
280
+ providerId: null,
281
+ checkoutMode: null,
282
+ publicConfiguration: null
283
+ })),
284
+ pendingPayment: null,
285
+ paymentInReview: null
286
+ };
287
+ }
288
+ async function draft(client) {
289
+ const [settings, sample] = await Promise.all([client.getSettings(), order(client, "1042")]);
290
+ const items = sample.items.map((item) => ({
291
+ id: item.id,
292
+ productId: item.productId,
293
+ variantId: item.variantId,
294
+ title: item.title,
295
+ subtitle: item.variantTitle,
296
+ thumbnail: item.thumbnail,
297
+ quantity: item.quantity,
298
+ unitPrice: item.unitPrice,
299
+ subTotal: item.total,
300
+ discount: 0,
301
+ total: item.total,
302
+ requiresShipping: true
303
+ }));
304
+ const subTotal = items.reduce((sum, item) => sum + item.total, 0);
305
+ return {
306
+ id: "preview-draft",
307
+ orderPaths: null,
308
+ draftNumber: "#D1007",
309
+ currencyCode: settings.store.currency,
310
+ status: "sent",
311
+ email: ME.email,
312
+ phone: ME.phone,
313
+ firstName: ME.firstName,
314
+ lastName: ME.lastName,
315
+ subTotal,
316
+ discount: 0,
317
+ shipping: 15,
318
+ tax: 0,
319
+ total: subTotal + 15,
320
+ items
321
+ };
322
+ }
323
+ function previewClient(client) {
324
+ return {
325
+ ...client,
326
+ ...previewCart(client),
327
+ get: (path, schema, options) => path === `orders/review-context/preview-review` ? review(client).then((value) => schema.parse(value)) : client.get(path, schema, options),
328
+ createProductReview: (params) => params.reviewToken === "preview-review" ? Promise.resolve({
329
+ id: "preview-review",
330
+ productId: params.productId,
331
+ isVerifiedPurchase: true,
332
+ rating: params.rating,
333
+ title: params.title ?? null,
334
+ content: params.content,
335
+ reviewerName: params.reviewerName,
336
+ createdOn: (/* @__PURE__ */ new Date()).toISOString()
337
+ }) : client.createProductReview(params),
338
+ createCustomerProductReview: (params, options) => previewing(options) ? Promise.resolve({
339
+ id: "preview-review",
340
+ productId: params.productId,
341
+ isVerifiedPurchase: false,
342
+ rating: params.rating,
343
+ title: params.title ?? null,
344
+ content: params.content,
345
+ reviewerName: params.reviewerName,
346
+ createdOn: (/* @__PURE__ */ new Date()).toISOString()
347
+ }) : client.createCustomerProductReview(params, options),
348
+ getCustomerRegistration: (options) => previewing(options) ? Promise.resolve(REGISTRATION) : client.getCustomerRegistration(options),
349
+ completeCustomerRegistration: (input, options) => previewing(options) ? Promise.resolve({
350
+ ...REGISTRATION,
351
+ ...input,
352
+ requiresCompletion: false
353
+ }) : client.completeCustomerRegistration(input, options),
354
+ getCustomerMe: async (options) => {
355
+ if (!previewing(options)) return client.getCustomerMe(options);
356
+ const { store } = await client.getSettings();
357
+ return {
358
+ ...ME,
359
+ countryIsoCode: store.countryCode,
360
+ addresses: await addresses(store)
361
+ };
362
+ },
363
+ patchCustomer: (data, options) => previewing(options) ? Promise.resolve() : client.patchCustomer(data, options),
364
+ getCustomerAddresses: async (options) => {
365
+ if (!previewing(options)) return client.getCustomerAddresses(options);
366
+ const { store } = await client.getSettings();
367
+ return addresses(store);
368
+ },
369
+ createCustomerAddress: (data, options) => previewing(options) ? Promise.resolve({ id: "preview-address-new" }) : client.createCustomerAddress(data, options),
370
+ updateCustomerAddress: (id, data, options) => previewing(options) ? Promise.resolve() : client.updateCustomerAddress(id, data, options),
371
+ deleteCustomerAddress: (id, options) => previewing(options) ? Promise.resolve() : client.deleteCustomerAddress(id, options),
372
+ getCustomerOrders: async (options) => {
373
+ if (!previewing(options)) return client.getCustomerOrders(options);
374
+ const list = filterOrders(await orders(client), options ?? {});
375
+ return {
376
+ data: list,
377
+ hasNextPage: false,
378
+ nextCursor: null,
379
+ totalCount: list.length
380
+ };
381
+ },
382
+ getCustomerOrder: (id, options) => previewing(options) ? order(client, id) : client.getCustomerOrder(id, options),
383
+ requestCustomerOrderReturn: (id, input, options) => previewing(options) ? Promise.resolve() : client.requestCustomerOrderReturn(id, input, options),
384
+ requestCustomerOrderCancellation: (id, input, options) => previewing(options) ? Promise.resolve() : client.requestCustomerOrderCancellation(id, input, options),
385
+ getOrderStatus: (token) => token === "preview-order" ? orderStatus(client) : client.getOrderStatus(token),
386
+ startOrderPayment: (token, input) => token === "preview-order" ? Promise.resolve({
387
+ actionUrl: null,
388
+ isCaptured: false,
389
+ transactionId: null,
390
+ externalId: null,
391
+ actionKind: "none",
392
+ providerId: null,
393
+ publicConfiguration: {},
394
+ clientSecret: null,
395
+ qrCode: null,
396
+ receiptUrl: null,
397
+ expiresAt: null,
398
+ paymentMethodCode: null,
399
+ amount: null,
400
+ currencyCode: null,
401
+ voucherCode: null,
402
+ qrImageUrl: null
403
+ }) : client.startOrderPayment(token, input),
404
+ authenticateOrderPayment: (token, transactionId, input) => token === "preview-order" ? Promise.reject(/* @__PURE__ */ new Error("La vista previa no tiene pagos pendientes de autenticación.")) : client.authenticateOrderPayment(token, transactionId, input),
405
+ uploadOrderPaymentReceipt: (token, input) => token === "preview-order" ? Promise.resolve({
406
+ actionUrl: null,
407
+ isCaptured: false,
408
+ transactionId: null,
409
+ externalId: null,
410
+ actionKind: "none",
411
+ providerId: null,
412
+ publicConfiguration: {},
413
+ clientSecret: null,
414
+ qrCode: null,
415
+ receiptUrl: null,
416
+ expiresAt: null,
417
+ paymentMethodCode: null,
418
+ amount: null,
419
+ currencyCode: null,
420
+ voucherCode: null,
421
+ qrImageUrl: null
422
+ }) : client.uploadOrderPaymentReceipt(token, input),
423
+ getOrderDraft: (token) => token === "preview-draft" ? draft(client) : client.getOrderDraft(token),
424
+ checkoutOrderDraft: (token) => token === "preview-draft" ? Promise.resolve({ orderPaths: [`/orders/${PREVIEW_ORDER_STATUS}`] }) : client.checkoutOrderDraft(token)
425
+ };
426
+ }
427
+ export { PREVIEW_DRAFT, PREVIEW_ORDER_STATUS, PREVIEW_REVIEW, PREVIEW_TOKEN, previewClient };
@@ -0,0 +1,21 @@
1
+ import { loadStorefrontTranslations, storefrontText } from "./storefront-text-D25ae1qf.js";
2
+ // src/preview-address.ts
3
+ async function previewAddress(store) {
4
+ const translations = await loadStorefrontTranslations(store.language);
5
+ return {
6
+ name: "Ana Torres",
7
+ company: null,
8
+ address1: storefrontText(translations, "Calle de ejemplo 123"),
9
+ address2: null,
10
+ city: storefrontText(translations, "Ciudad de ejemplo"),
11
+ countryCode: store.countryCode,
12
+ department: null,
13
+ province: null,
14
+ postalCode: "00000",
15
+ district: null,
16
+ phone: null,
17
+ latitude: null,
18
+ longitude: null
19
+ };
20
+ }
21
+ export { previewAddress };