@ecomiq/core 0.1.9 → 1.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 (274) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +39 -2
  3. package/dist/_virtual/_rolldown/runtime-C6LprzCP.cjs +22 -0
  4. package/dist/api.cjs +117 -102
  5. package/dist/api.d.cts +33 -37
  6. package/dist/api.d.ts +33 -37
  7. package/dist/api.js +116 -100
  8. package/dist/client.cjs +499 -1676
  9. package/dist/client.d.cts +156 -15
  10. package/dist/client.d.ts +156 -15
  11. package/dist/client.js +500 -1675
  12. package/dist/index.cjs +333 -2092
  13. package/dist/index.d.cts +53 -1127
  14. package/dist/index.d.ts +53 -1127
  15. package/dist/index.js +52 -1895
  16. package/dist/libs/bounded-read-cache-Abmb5VnJ.js +41 -0
  17. package/dist/libs/bounded-read-cache-D4644LJo.cjs +41 -0
  18. package/dist/libs/catalog-link-key-B7l5KZsF.js +9 -0
  19. package/dist/libs/catalog-link-key-CZTHJBGD.cjs +9 -0
  20. package/dist/libs/catalog-link-key.d.cts +2 -0
  21. package/dist/libs/catalog-link-key.d.ts +2 -0
  22. package/dist/libs/graphql-_6Y8lR_Q.js +49 -0
  23. package/dist/libs/graphql-selection-Cj51WkJn.cjs +21 -0
  24. package/dist/libs/graphql-selection-H1RMh6VD.js +21 -0
  25. package/dist/libs/graphql-selection.d.cts +3 -0
  26. package/dist/libs/graphql-selection.d.ts +3 -0
  27. package/dist/libs/graphql-wJH7HaQU.cjs +50 -0
  28. package/dist/libs/graphql.d.cts +24 -0
  29. package/dist/libs/graphql.d.ts +24 -0
  30. package/dist/models/amounts-cKBCecl7.js +5 -0
  31. package/dist/models/amounts-lmg89eJQ.cjs +4 -0
  32. package/dist/models/articles-C-4JvT2Z.js +27 -0
  33. package/dist/models/articles-xHCXLKDK.cjs +30 -0
  34. package/dist/models/articles.d.cts +46 -0
  35. package/dist/models/articles.d.ts +46 -0
  36. package/dist/models/catalog-links-BzJeyBy4.js +80 -0
  37. package/dist/models/catalog-links-c4LADGf_.cjs +88 -0
  38. package/dist/models/catalog-links.d.cts +39 -0
  39. package/dist/models/catalog-links.d.ts +39 -0
  40. package/dist/models/categories-CKkJY8_P.js +42 -0
  41. package/dist/models/categories-DZ5i5kwi.cjs +45 -0
  42. package/dist/models/categories.d.cts +54 -0
  43. package/dist/models/categories.d.ts +54 -0
  44. package/dist/models/collections.cjs +13 -22
  45. package/dist/models/collections.d.cts +23 -56
  46. package/dist/models/collections.d.ts +23 -56
  47. package/dist/models/collections.js +12 -20
  48. package/dist/models/complaint-book-D5INpuI2.cjs +64 -0
  49. package/dist/models/complaint-book-QpQZe7Xl.js +58 -0
  50. package/dist/models/complaint-book.d.cts +71 -0
  51. package/dist/models/complaint-book.d.ts +71 -0
  52. package/dist/models/customer-address.cjs +39 -38
  53. package/dist/models/customer-address.d.cts +59 -158
  54. package/dist/models/customer-address.d.ts +59 -158
  55. package/dist/models/customer-address.js +38 -36
  56. package/dist/models/customer-order.cjs +181 -142
  57. package/dist/models/customer-order.d.cts +430 -858
  58. package/dist/models/customer-order.d.ts +430 -858
  59. package/dist/models/customer-order.js +178 -141
  60. package/dist/models/customer-profile.cjs +121 -118
  61. package/dist/models/customer-profile.d.cts +89 -174
  62. package/dist/models/customer-profile.d.ts +89 -174
  63. package/dist/models/customer-profile.js +121 -116
  64. package/dist/models/customer-registration-C13knqyv.js +28 -0
  65. package/dist/models/customer-registration-EZ0yZgGr.cjs +31 -0
  66. package/dist/models/customer-registration.d.cts +66 -0
  67. package/dist/models/customer-registration.d.ts +66 -0
  68. package/dist/models/customer-session-BiX0TXhO.js +41 -0
  69. package/dist/models/customer-session-JeQiC8Yx.cjs +45 -0
  70. package/dist/models/customer-session.d.cts +61 -0
  71. package/dist/models/customer-session.d.ts +61 -0
  72. package/dist/models/geo.cjs +52 -49
  73. package/dist/models/geo.d.cts +141 -270
  74. package/dist/models/geo.d.ts +141 -270
  75. package/dist/models/geo.js +51 -47
  76. package/dist/models/ids.cjs +8 -11
  77. package/dist/models/ids.d.cts +7 -10
  78. package/dist/models/ids.d.ts +7 -10
  79. package/dist/models/ids.js +7 -9
  80. package/dist/models/order-draft-CnHJ0btL.js +37 -0
  81. package/dist/models/order-draft-PFBZfRRR.cjs +39 -0
  82. package/dist/models/order-draft.d.cts +51 -0
  83. package/dist/models/order-draft.d.ts +51 -0
  84. package/dist/models/order-review--xGlZKtS.cjs +18 -0
  85. package/dist/models/order-review-egGeCaqB.js +17 -0
  86. package/dist/models/order-review.d.cts +22 -0
  87. package/dist/models/order-review.d.ts +22 -0
  88. package/dist/models/order-status-CS_OeSPY.cjs +66 -0
  89. package/dist/models/order-status-CgaLkU0M.js +60 -0
  90. package/dist/models/order-status.d.cts +298 -0
  91. package/dist/models/order-status.d.ts +298 -0
  92. package/dist/models/payment-methods--VUUZpMz.js +17 -0
  93. package/dist/models/payment-methods-CmK08zBM.cjs +19 -0
  94. package/dist/models/payment-methods.d.cts +28 -0
  95. package/dist/models/payment-methods.d.ts +28 -0
  96. package/dist/models/products.cjs +215 -194
  97. package/dist/models/products.d.cts +612 -1354
  98. package/dist/models/products.d.ts +612 -1354
  99. package/dist/models/products.js +211 -187
  100. package/dist/models/search.cjs +13 -23
  101. package/dist/models/search.d.cts +21 -51
  102. package/dist/models/search.d.ts +21 -51
  103. package/dist/models/search.js +12 -21
  104. package/dist/models/sellers.cjs +44 -0
  105. package/dist/models/sellers.d.cts +82 -0
  106. package/dist/models/sellers.d.ts +82 -0
  107. package/dist/models/sellers.js +38 -0
  108. package/dist/models/settings.cjs +205 -236
  109. package/dist/models/settings.d.cts +853 -6940
  110. package/dist/models/settings.d.ts +853 -6940
  111. package/dist/models/settings.js +213 -239
  112. package/dist/models/storefront-cart.cjs +144 -118
  113. package/dist/models/storefront-cart.d.cts +246 -706
  114. package/dist/models/storefront-cart.d.ts +246 -706
  115. package/dist/models/storefront-cart.js +141 -117
  116. package/dist/models/storefront-checkout.cjs +212 -297
  117. package/dist/models/storefront-checkout.d.cts +654 -2449
  118. package/dist/models/storefront-checkout.d.ts +654 -2449
  119. package/dist/models/storefront-checkout.js +208 -297
  120. package/dist/models/storefront-reviews.cjs +58 -43
  121. package/dist/models/storefront-reviews.d.cts +71 -139
  122. package/dist/models/storefront-reviews.d.ts +71 -139
  123. package/dist/models/storefront-reviews.js +55 -42
  124. package/dist/models/tracking-CiIAhQW0.js +33 -0
  125. package/dist/models/tracking-wNyzQ6Bp.cjs +36 -0
  126. package/dist/models/tracking.d.cts +26 -0
  127. package/dist/models/tracking.d.ts +26 -0
  128. package/dist/models/urls-B0ZODOwH.cjs +35 -0
  129. package/dist/models/urls-Dt_dTt4Q.js +33 -0
  130. package/dist/models/urls.d.cts +201 -0
  131. package/dist/models/urls.d.ts +201 -0
  132. package/dist/redirects.cjs +113 -0
  133. package/dist/redirects.d.cts +11 -0
  134. package/dist/redirects.d.ts +11 -0
  135. package/dist/redirects.js +108 -0
  136. package/dist/services/article.service-DBsOvflH.js +10 -0
  137. package/dist/services/article.service-zmTkbbPV.cjs +11 -0
  138. package/dist/services/article.service.d.cts +4 -0
  139. package/dist/services/article.service.d.ts +4 -0
  140. package/dist/services/cart.service-B0D8s6jI.cjs +37 -0
  141. package/dist/services/cart.service-yMCz9oQP.js +33 -0
  142. package/dist/services/cart.service.d.cts +527 -0
  143. package/dist/services/cart.service.d.ts +527 -0
  144. package/dist/services/catalog-link.service-BQ2d-EPX.js +8 -0
  145. package/dist/services/catalog-link.service-DiB-OVjn.cjs +8 -0
  146. package/dist/services/category.service-8tieYX2r.js +6 -0
  147. package/dist/services/category.service-BsSJZV2B.cjs +6 -0
  148. package/dist/services/checkout.service-CC-3tm2y.js +60 -0
  149. package/dist/services/checkout.service-CG8KrDNY.cjs +69 -0
  150. package/dist/services/checkout.service.d.cts +439 -0
  151. package/dist/services/checkout.service.d.ts +439 -0
  152. package/dist/services/collection.service-C4QETpuI.js +11 -0
  153. package/dist/services/collection.service-DHGN3rhs.cjs +12 -0
  154. package/dist/services/complaint-book.service-C7TxltQe.cjs +13 -0
  155. package/dist/services/complaint-book.service-DXiVyKdD.js +12 -0
  156. package/dist/services/complaint-book.service.d.cts +4 -0
  157. package/dist/services/complaint-book.service.d.ts +4 -0
  158. package/dist/services/customer-address.service-Ca4qla_R.cjs +51 -0
  159. package/dist/services/customer-address.service-xEThx7cQ.js +47 -0
  160. package/dist/services/customer-address.service.d.cts +19 -0
  161. package/dist/services/customer-address.service.d.ts +19 -0
  162. package/dist/services/customer-order.service-DLGgT0xa.cjs +54 -0
  163. package/dist/services/customer-order.service-qHoRBuyX.js +51 -0
  164. package/dist/services/customer-order.service.d.cts +34 -0
  165. package/dist/services/customer-order.service.d.ts +34 -0
  166. package/dist/services/customer-registration.service-C3BNyCHP.cjs +10 -0
  167. package/dist/services/customer-registration.service-CxcWD2hf.js +9 -0
  168. package/dist/services/customer-registration.service.d.cts +5 -0
  169. package/dist/services/customer-registration.service.d.ts +5 -0
  170. package/dist/services/customer-session.service-4YgfbWRB.js +16 -0
  171. package/dist/services/customer-session.service-Bd8pLC2v.cjs +19 -0
  172. package/dist/services/customer.service-BM0NrOxP.cjs +26 -0
  173. package/dist/services/customer.service-BoU6l2-R.js +25 -0
  174. package/dist/services/customer.service.d.cts +10 -0
  175. package/dist/services/customer.service.d.ts +10 -0
  176. package/dist/services/geo.service-C32R7N8W.js +39 -0
  177. package/dist/services/geo.service-JeTT3Wun.cjs +42 -0
  178. package/dist/services/geo.service.d.cts +10 -0
  179. package/dist/services/geo.service.d.ts +10 -0
  180. package/dist/services/layout.service-BkvLzl1g.cjs +50 -0
  181. package/dist/services/layout.service-DmbeMOkK.js +50 -0
  182. package/dist/services/layout.service.d.cts +9 -0
  183. package/dist/services/layout.service.d.ts +9 -0
  184. package/dist/services/order-draft.service-D9gy-OPr.cjs +14 -0
  185. package/dist/services/order-draft.service-DYPR_pcV.js +13 -0
  186. package/dist/services/order-draft.service.d.cts +4 -0
  187. package/dist/services/order-draft.service.d.ts +4 -0
  188. package/dist/services/order-review.service-BEr-FB6_.cjs +11 -0
  189. package/dist/services/order-review.service-PdBPUsxE.js +11 -0
  190. package/dist/services/order-review.service.d.cts +7 -0
  191. package/dist/services/order-review.service.d.ts +7 -0
  192. package/dist/services/order-status.service-Cn7dsaJo.cjs +26 -0
  193. package/dist/services/order-status.service-MC9hVpP-.js +23 -0
  194. package/dist/services/order-status.service.d.cts +16 -0
  195. package/dist/services/order-status.service.d.ts +16 -0
  196. package/dist/services/page.service-CWhWCjMQ.js +7 -0
  197. package/dist/services/page.service-DmCSeMiR.cjs +7 -0
  198. package/dist/services/page.service.d.cts +4 -0
  199. package/dist/services/page.service.d.ts +4 -0
  200. package/dist/services/payment-method.service-CEt_nB4R.cjs +7 -0
  201. package/dist/services/payment-method.service-CjKbAsOh.js +7 -0
  202. package/dist/services/payment-method.service.d.cts +4 -0
  203. package/dist/services/payment-method.service.d.ts +4 -0
  204. package/dist/services/product.service-B05Qmbuh.js +35 -0
  205. package/dist/services/product.service-B7OFZWB1.cjs +37 -0
  206. package/dist/services/product.service.d.cts +231 -0
  207. package/dist/services/product.service.d.ts +231 -0
  208. package/dist/services/review.service-CO2icjpu.cjs +46 -0
  209. package/dist/services/review.service-De1YkhFp.js +43 -0
  210. package/dist/services/review.service.d.cts +28 -0
  211. package/dist/services/review.service.d.ts +28 -0
  212. package/dist/services/search.service-Bx1zbTHJ.cjs +10 -0
  213. package/dist/services/search.service-DSBMhaSY.js +10 -0
  214. package/dist/services/search.service.d.cts +9 -0
  215. package/dist/services/search.service.d.ts +9 -0
  216. package/dist/services/seller.service-D11WHhbC.cjs +10 -0
  217. package/dist/services/seller.service-DUptDTv4.js +9 -0
  218. package/dist/services/seller.service.d.cts +42 -0
  219. package/dist/services/seller.service.d.ts +42 -0
  220. package/dist/services/tracking.service-CPK1B69N.js +11 -0
  221. package/dist/services/tracking.service-DqOoi8qr.cjs +11 -0
  222. package/dist/services/tracking.service.d.cts +7 -0
  223. package/dist/services/tracking.service.d.ts +7 -0
  224. package/dist/services/url.service-B-nC14Ue.cjs +19 -0
  225. package/dist/services/url.service-CLW0Tc7S.js +18 -0
  226. package/dist/storefront-cache-revision.cjs +23 -0
  227. package/dist/storefront-cache-revision.d.cts +16 -0
  228. package/dist/storefront-cache-revision.d.ts +16 -0
  229. package/dist/storefront-cache-revision.js +17 -0
  230. package/dist/storefront-routes.cjs +14 -0
  231. package/dist/storefront-routes.d.cts +11 -0
  232. package/dist/storefront-routes.d.ts +11 -0
  233. package/dist/storefront-routes.js +12 -0
  234. package/dist/utils-CDEC5xcY.cjs +139 -0
  235. package/dist/utils-DK7qa54o.js +136 -0
  236. package/dist/utils.d.cts +3 -0
  237. package/dist/utils.d.ts +3 -0
  238. package/dist/video-links-CbRO0m8V.js +47 -0
  239. package/dist/video-links-ClryQjPH.cjs +47 -0
  240. package/dist/video-links.d.cts +7 -0
  241. package/dist/video-links.d.ts +7 -0
  242. package/package.json +28 -11
  243. package/dist/api.cjs.map +0 -1
  244. package/dist/api.js.map +0 -1
  245. package/dist/client-Ba1r_uiO.d.ts +0 -195
  246. package/dist/client-Cqcnv2tC.d.cts +0 -195
  247. package/dist/client.cjs.map +0 -1
  248. package/dist/client.js.map +0 -1
  249. package/dist/index.cjs.map +0 -1
  250. package/dist/index.js.map +0 -1
  251. package/dist/models/collections.cjs.map +0 -1
  252. package/dist/models/collections.js.map +0 -1
  253. package/dist/models/customer-address.cjs.map +0 -1
  254. package/dist/models/customer-address.js.map +0 -1
  255. package/dist/models/customer-order.cjs.map +0 -1
  256. package/dist/models/customer-order.js.map +0 -1
  257. package/dist/models/customer-profile.cjs.map +0 -1
  258. package/dist/models/customer-profile.js.map +0 -1
  259. package/dist/models/geo.cjs.map +0 -1
  260. package/dist/models/geo.js.map +0 -1
  261. package/dist/models/ids.cjs.map +0 -1
  262. package/dist/models/ids.js.map +0 -1
  263. package/dist/models/products.cjs.map +0 -1
  264. package/dist/models/products.js.map +0 -1
  265. package/dist/models/search.cjs.map +0 -1
  266. package/dist/models/search.js.map +0 -1
  267. package/dist/models/settings.cjs.map +0 -1
  268. package/dist/models/settings.js.map +0 -1
  269. package/dist/models/storefront-cart.cjs.map +0 -1
  270. package/dist/models/storefront-cart.js.map +0 -1
  271. package/dist/models/storefront-checkout.cjs.map +0 -1
  272. package/dist/models/storefront-checkout.js.map +0 -1
  273. package/dist/models/storefront-reviews.cjs.map +0 -1
  274. package/dist/models/storefront-reviews.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,1895 +1,52 @@
1
- import { z } from 'zod';
2
- import sanitize from 'sanitize-html';
3
-
4
- // src/libs/api.ts
5
- var DEFAULT_API_BASE_URL = "https://storefront.ecomiq.pe";
6
- var DEFAULT_API_VERSION = "v1";
7
- var ApiError = class extends Error {
8
- constructor(message, status, url, body) {
9
- super(message);
10
- this.status = status;
11
- this.url = url;
12
- this.body = body;
13
- this.name = "ApiError";
14
- }
15
- status;
16
- url;
17
- body;
18
- };
19
- function resolveApiBaseUrl(baseUrl = DEFAULT_API_BASE_URL, version = DEFAULT_API_VERSION) {
20
- const root = baseUrl.endsWith("/") ? baseUrl : `${baseUrl}/`;
21
- const segment = version.replace(/^\/+|\/+$/g, "");
22
- if (!segment) return root;
23
- return new URL(`${segment}/`, root).toString();
24
- }
25
- function createApi(options = {}) {
26
- const {
27
- baseUrl = DEFAULT_API_BASE_URL,
28
- version = DEFAULT_API_VERSION,
29
- headers: baseHeaders = {},
30
- timeoutMs = 1e4
31
- } = options;
32
- const effectiveBaseUrl = resolveApiBaseUrl(baseUrl, version);
33
- async function request(method, path, schema, opts = {}) {
34
- const url = new URL(path.replace(/^\//, ""), effectiveBaseUrl);
35
- for (const [key, value] of Object.entries(opts.query ?? {})) {
36
- if (value !== void 0) url.searchParams.set(key, String(value));
37
- }
38
- const controller = new AbortController();
39
- const timeout = setTimeout(() => controller.abort(), timeoutMs);
40
- if (opts.signal) opts.signal.addEventListener("abort", () => controller.abort(), { once: true });
41
- const isFormData = typeof FormData !== "undefined" && opts.body instanceof FormData;
42
- let response;
43
- try {
44
- response = await fetch(url.toString(), {
45
- method,
46
- headers: {
47
- accept: "application/json",
48
- ...opts.body !== void 0 && !isFormData ? { "content-type": "application/json" } : {},
49
- ...baseHeaders,
50
- ...opts.headers
51
- },
52
- body: opts.body === void 0 ? void 0 : isFormData ? opts.body : JSON.stringify(opts.body),
53
- signal: controller.signal
54
- });
55
- } catch (err) {
56
- throw new ApiError(
57
- err instanceof DOMException && err.name === "AbortError" ? `Timeout tras ${timeoutMs}ms: ${url}` : `No se pudo conectar con ${url}`,
58
- 0,
59
- url.toString()
60
- );
61
- } finally {
62
- clearTimeout(timeout);
63
- }
64
- if (!response.ok) {
65
- const bodyText2 = await response.text().catch(() => void 0);
66
- let body = bodyText2;
67
- if (bodyText2) {
68
- try {
69
- body = JSON.parse(bodyText2);
70
- } catch {
71
- }
72
- }
73
- throw new ApiError(`${method} ${url} \u2192 ${response.status}`, response.status, url.toString(), body);
74
- }
75
- const bodyText = await response.text();
76
- let json = null;
77
- if (bodyText.trim()) {
78
- try {
79
- json = JSON.parse(bodyText);
80
- } catch {
81
- throw new ApiError(
82
- `Respuesta no JSON de ${url}`,
83
- response.status,
84
- url.toString(),
85
- bodyText
86
- );
87
- }
88
- }
89
- const parsed = schema.safeParse(json);
90
- if (!parsed.success) {
91
- throw new ApiError(
92
- `Respuesta inesperada de ${url}: ${parsed.error.issues[0]?.path.join(".")} ${parsed.error.issues[0]?.message}`,
93
- response.status,
94
- url.toString(),
95
- json
96
- );
97
- }
98
- return parsed.data;
99
- }
100
- return {
101
- request,
102
- get: (path, schema, opts) => request("GET", path, schema, opts),
103
- post: (path, body, schema, opts) => request("POST", path, schema, { ...opts, body }),
104
- postForm: (path, body, schema, opts) => request("POST", path, schema, { ...opts, body })
105
- };
106
- }
107
- var EntityIdSchema = z.string().min(1, "Expected resource id");
108
- var CartTokenSchema = z.string().min(1).max(32).regex(/^[A-Za-z0-9_-]+$/, "Expected cart token");
109
- var NullableEntityIdSchema = EntityIdSchema.nullable();
110
- var OptionalEntityIdSchema = EntityIdSchema.optional();
111
-
112
- // src/models/collections.ts
113
- var CollectionSchema = z.object({
114
- id: EntityIdSchema,
115
- slug: z.string(),
116
- name: z.string(),
117
- description: z.string().nullable().optional(),
118
- imageUrl: z.string().nullable().optional(),
119
- type: z.string(),
120
- productCount: z.number().optional()
121
- });
122
- var CollectionsSchema = z.array(CollectionSchema);
123
- var ProductSummarySchema = z.object({
124
- id: EntityIdSchema,
125
- name: z.string(),
126
- slug: z.string(),
127
- productType: z.string(),
128
- imageUrl: z.string(),
129
- price: z.number().nonnegative(),
130
- compareAtPrice: z.number().nonnegative().nullable(),
131
- variantCount: z.number().int().nonnegative(),
132
- isAvailable: z.boolean(),
133
- totalInventory: z.number().int().nonnegative(),
134
- bundleItemsCount: z.number().int().nonnegative(),
135
- brand: z.string(),
136
- category: z.string(),
137
- status: z.string(),
138
- collections: z.array(z.string()),
139
- tags: z.array(z.string())
140
- });
141
- var ProductSummariesSchema = z.array(ProductSummarySchema);
142
- var ProductSchema = ProductSummarySchema;
143
- var FacetItemSchema = z.object({
144
- value: z.string(),
145
- count: z.number().int().nonnegative(),
146
- label: z.string().nullable(),
147
- selected: z.boolean()
148
- });
149
- var FacetSchema = FacetItemSchema;
150
- var SearchFilterSchema = z.object({
151
- id: z.string(),
152
- label: z.string(),
153
- type: z.enum(["list", "price_range"]),
154
- values: z.array(FacetItemSchema),
155
- min: z.number().nonnegative().nullable(),
156
- max: z.number().nonnegative().nullable(),
157
- selectedMin: z.number().nonnegative().nullable(),
158
- selectedMax: z.number().nonnegative().nullable()
159
- });
160
- var ProductsResponseSchema = z.object({
161
- pageIndex: z.number().int().positive(),
162
- pageSize: z.number().int().positive().max(100),
163
- totalCount: z.number().int().nonnegative(),
164
- totalPages: z.number().int().nonnegative(),
165
- products: z.array(ProductSummarySchema),
166
- filters: z.array(SearchFilterSchema)
167
- });
168
- var ProductSortSchema = z.enum([
169
- "price_asc",
170
- "price_desc",
171
- "name_asc",
172
- "name_desc",
173
- "newest"
174
- ]);
175
- var ProductsParamsSchema = z.object({
176
- page: z.number().int().positive().default(1),
177
- pageSize: z.number().int().positive().max(100).default(24),
178
- sort: ProductSortSchema.optional(),
179
- sellerId: OptionalEntityIdSchema,
180
- search: z.string().optional(),
181
- collection: z.string().optional(),
182
- collections: z.array(z.string()).optional(),
183
- collectionId: EntityIdSchema.optional(),
184
- category: z.string().optional(),
185
- categories: z.array(z.string()).optional(),
186
- brand: z.string().optional(),
187
- brands: z.array(z.string()).optional(),
188
- productType: z.string().optional(),
189
- productTypes: z.array(z.string()).optional(),
190
- tag: z.string().optional(),
191
- tags: z.array(z.string()).optional(),
192
- filters: z.array(z.string()).optional(),
193
- locationId: OptionalEntityIdSchema,
194
- inStock: z.boolean().optional(),
195
- minPrice: z.number().nonnegative().optional(),
196
- maxPrice: z.number().nonnegative().optional()
197
- });
198
- var ProductDetailParamsSchema = z.object({
199
- sellerId: OptionalEntityIdSchema
200
- });
201
- var RelatedProductsParamsSchema = z.object({
202
- productId: EntityIdSchema,
203
- limit: z.number().int().positive().max(12).default(8),
204
- sellerId: OptionalEntityIdSchema
205
- });
206
- var SpecItemSchema = z.object({
207
- key: z.string(),
208
- name: z.string(),
209
- value: z.string()
210
- });
211
- var VariantOptionSchema = SpecItemSchema;
212
- var ProductImageSchema = z.object({
213
- url: z.string(),
214
- name: z.string(),
215
- order: z.number().int().nonnegative()
216
- });
217
- var VariantItemSchema = z.object({
218
- id: EntityIdSchema.nullable(),
219
- sku: z.string(),
220
- status: z.string(),
221
- price: z.number().nonnegative(),
222
- compareAtPrice: z.number().nonnegative().nullable(),
223
- quantity: z.number().int().nonnegative(),
224
- options: z.array(SpecItemSchema),
225
- images: z.array(ProductImageSchema)
226
- });
227
- var VariantSchema = VariantItemSchema;
228
- var ProductPriceTierSchema = z.object({
229
- variantId: EntityIdSchema,
230
- minQuantity: z.number().int().positive(),
231
- maxQuantity: z.number().int().positive().nullable(),
232
- unitPrice: z.number().nonnegative()
233
- });
234
- var PriceTierSchema = ProductPriceTierSchema;
235
- var BundleItemSchema = z.object({
236
- productId: EntityIdSchema,
237
- variantId: EntityIdSchema,
238
- productName: z.string(),
239
- variantName: z.string().nullable(),
240
- sku: z.string().nullable(),
241
- brand: z.string().nullable(),
242
- imageUrl: z.string().nullable(),
243
- quantity: z.number().int().positive(),
244
- available: z.number().int().nonnegative(),
245
- allowBackorders: z.boolean(),
246
- requiresShipping: z.boolean()
247
- });
248
- var SizeGuideMeasurementSchema = z.object({
249
- key: z.string(),
250
- name: z.string(),
251
- min: z.number().nullable(),
252
- max: z.number().nullable(),
253
- value: z.number().nullable(),
254
- description: z.string().nullable()
255
- });
256
- var SizeGuideRowSchema = z.object({
257
- label: z.string(),
258
- sizeKey: z.string(),
259
- order: z.number().int().nonnegative(),
260
- measurements: z.array(SizeGuideMeasurementSchema)
261
- });
262
- var SizeGuideSchema = z.object({
263
- id: EntityIdSchema,
264
- name: z.string(),
265
- slug: z.string(),
266
- description: z.string().nullable(),
267
- imageUrl: z.string().nullable(),
268
- gender: z.string(),
269
- measurementType: z.string(),
270
- unit: z.string(),
271
- notes: z.string().nullable(),
272
- rows: z.array(SizeGuideRowSchema)
273
- });
274
- var ProductDetailSchema = z.object({
275
- id: EntityIdSchema,
276
- name: z.string(),
277
- slug: z.string(),
278
- description: z.string(),
279
- productType: z.string(),
280
- status: z.string(),
281
- imageUrl: z.string(),
282
- price: z.number().nonnegative(),
283
- compareAtPrice: z.number().nonnegative().nullable(),
284
- isAvailable: z.boolean(),
285
- totalInventory: z.number().int().nonnegative(),
286
- brand: z.string(),
287
- category: z.string(),
288
- categoryId: EntityIdSchema.nullable(),
289
- tags: z.array(z.string()),
290
- specifications: z.array(SpecItemSchema),
291
- variants: z.array(VariantItemSchema),
292
- images: z.array(ProductImageSchema),
293
- bundleItems: z.array(BundleItemSchema),
294
- sizeGuide: SizeGuideSchema.nullable(),
295
- priceTiers: z.array(ProductPriceTierSchema),
296
- createdAt: z.string().datetime({ offset: true }).nullable(),
297
- updatedAt: z.string().datetime({ offset: true }).nullable()
298
- });
299
- var JsonElementSchema = z.lazy(
300
- () => z.union([
301
- z.null(),
302
- z.boolean(),
303
- z.number().finite(),
304
- z.string(),
305
- z.array(JsonElementSchema),
306
- z.record(z.string(), JsonElementSchema)
307
- ])
308
- );
309
- var DateTimeOffsetSchema = z.string().datetime({ offset: true });
310
- var NullableDateTimeOffsetSchema = DateTimeOffsetSchema.nullable();
311
- var StoreTypeSchema = z.enum([
312
- "b2C",
313
- "marketplace",
314
- "retail",
315
- "b2B",
316
- "social",
317
- "hub",
318
- "restaurant"
319
- ]);
320
- var StoreVisibilitySchema = z.enum(["public", "private"]);
321
- var StoreThemeSettingsSchema = z.object({
322
- name: z.string().nullable(),
323
- mode: z.string().nullable(),
324
- colors: z.record(z.string(), z.string()),
325
- fonts: z.record(z.string(), z.string()),
326
- assets: z.record(z.string(), z.string())
327
- }).strict();
328
- var StoreFeatureFlagsSchema = z.object({
329
- flags: z.record(z.string(), z.boolean())
330
- }).strict();
331
- var StoreCheckoutGeneralSettingsSchema = z.object({
332
- allowGuestCheckout: z.boolean(),
333
- identityScope: z.enum(["store", "tenant", "global"]),
334
- signInMethods: z.array(z.enum(["password", "emailOtp", "google"])),
335
- useSequentialOrderNumbers: z.boolean(),
336
- automaticallySelectFirstAddress: z.boolean(),
337
- alwaysRequestCustomerAddress: z.boolean(),
338
- requestCustomerDateOfBirth: z.boolean(),
339
- automaticallySelectBestPromotion: z.boolean()
340
- }).strict();
341
- var StoreCheckoutShippingSettingsSchema = z.object({
342
- showDeliveryTime: z.boolean(),
343
- showDeliveryTimeInDays: z.boolean(),
344
- useBusinessDaysForDeliveryTime: z.boolean(),
345
- showEstimatedDeliveryDateInThankYouAndEmails: z.boolean(),
346
- showOriginalShippingPriceWhenFree: z.boolean()
347
- }).strict();
348
- var StoreCheckoutCartPageSettingsSchema = z.object({
349
- showShippingCostCalculation: z.boolean(),
350
- allowProductLinks: z.boolean(),
351
- redirectToCartPage: z.boolean()
352
- }).strict();
353
- var StoreCheckoutOrderBumpSettingsSchema = z.object({
354
- mergeOrderBumpOrders: z.boolean(),
355
- allowOnlyOneAdditionalOffer: z.boolean(),
356
- maxVisibleOffers: z.number().int()
357
- }).strict();
358
- var StoreCheckoutOrdersAndPaymentsSettingsSchema = z.object({
359
- allowPurchasesFrom: z.enum(["any", "individual", "company"]),
360
- creditCardDailyOrderLimitPerIp: z.number().int().nullable(),
361
- maximumItemsPerOrder: z.number().int().nullable(),
362
- deliveryNoteText: z.string().nullable(),
363
- boletoPaymentNoteText: z.string().nullable()
364
- }).strict();
365
- var StoreCheckoutSettingsSchema = z.object({
366
- general: StoreCheckoutGeneralSettingsSchema,
367
- shipping: StoreCheckoutShippingSettingsSchema,
368
- cartPage: StoreCheckoutCartPageSettingsSchema,
369
- orderBumps: StoreCheckoutOrderBumpSettingsSchema,
370
- ordersAndPayments: StoreCheckoutOrdersAndPaymentsSettingsSchema
371
- }).strict();
372
- var StorefrontStoreShape = {
373
- id: EntityIdSchema,
374
- tenantId: EntityIdSchema,
375
- sellerId: NullableEntityIdSchema,
376
- type: StoreTypeSchema,
377
- isActive: z.boolean(),
378
- name: z.string(),
379
- description: z.string(),
380
- logo: z.string().nullable(),
381
- icon: z.string().nullable(),
382
- slug: z.string().nullable(),
383
- domain: z.string().nullable(),
384
- domains: z.array(z.string()),
385
- timeZone: z.string(),
386
- currency: z.string(),
387
- language: z.string(),
388
- visibility: StoreVisibilitySchema,
389
- themeConfig: StoreThemeSettingsSchema,
390
- featuresEnabled: StoreFeatureFlagsSchema,
391
- checkoutSettings: StoreCheckoutSettingsSchema
392
- };
393
- var StoreModelSchema = z.object(StorefrontStoreShape).strict();
394
- var CmsBrandingSettingsDtoSchema = z.object({
395
- logoUrl: z.string().nullable(),
396
- logoDarkUrl: z.string().nullable(),
397
- faviconUrl: z.string().nullable(),
398
- socialImageUrl: z.string().nullable()
399
- }).strict();
400
- var CmsSeoSettingsDtoSchema = z.object({
401
- siteName: z.string().nullable(),
402
- metaTitle: z.string().nullable(),
403
- metaDescription: z.string().nullable(),
404
- titleTemplate: z.string().nullable(),
405
- robotsIndex: z.boolean()
406
- }).strict();
407
- var CmsSocialLinksDtoSchema = z.object({
408
- instagram: z.string().nullable(),
409
- facebook: z.string().nullable(),
410
- tiktok: z.string().nullable(),
411
- youtube: z.string().nullable(),
412
- x: z.string().nullable()
413
- }).strict();
414
- var CmsContactSettingsDtoSchema = z.object({
415
- supportEmail: z.string().nullable(),
416
- phone: z.string().nullable(),
417
- whatsapp: z.string().nullable(),
418
- address: z.string().nullable(),
419
- socialLinks: CmsSocialLinksDtoSchema
420
- }).strict();
421
- var CmsTrackingSettingsDtoSchema = z.object({
422
- googleAnalyticsMeasurementId: z.string().nullable(),
423
- metaPixelId: z.string().nullable(),
424
- googleTagManagerContainerId: z.string().nullable()
425
- }).strict();
426
- var CmsCustomScriptsDtoSchema = z.object({
427
- enabled: z.boolean(),
428
- head: z.string().nullable(),
429
- bodyEnd: z.string().nullable()
430
- }).strict();
431
- var CmsSiteSettingsDtoSchema = z.object({
432
- themeKey: z.string(),
433
- branding: CmsBrandingSettingsDtoSchema,
434
- seo: CmsSeoSettingsDtoSchema,
435
- contact: CmsContactSettingsDtoSchema,
436
- tracking: CmsTrackingSettingsDtoSchema,
437
- customScripts: CmsCustomScriptsDtoSchema,
438
- updatedOn: NullableDateTimeOffsetSchema
439
- }).strict();
440
- var CmsMenuItemSchema = z.lazy(
441
- () => z.object({
442
- label: z.string(),
443
- url: z.string(),
444
- order: z.number().int(),
445
- target: z.string().nullable(),
446
- visible: z.boolean().nullable(),
447
- children: z.array(CmsMenuItemSchema).nullable()
448
- }).strict()
449
- );
450
- var CmsMenuDtoSchema = z.object({
451
- key: z.string(),
452
- name: z.string(),
453
- items: z.array(CmsMenuItemSchema)
454
- }).strict();
455
- var CmsBlockDtoSchema = z.object({
456
- id: EntityIdSchema,
457
- type: z.string(),
458
- order: z.number().int(),
459
- settings: JsonElementSchema
460
- }).strict();
461
- var CmsSectionDtoSchema = z.object({
462
- id: EntityIdSchema,
463
- type: z.string(),
464
- order: z.number().int(),
465
- settings: JsonElementSchema,
466
- blocks: z.array(CmsBlockDtoSchema)
467
- }).strict();
468
- var CmsContentChannelSchema = z.enum(["storefront", "pos"]);
469
- var CmsPageStatusSchema = z.enum(["draft", "published", "archived"]);
470
- var CmsPageDetailsDtoSchema = z.object({
471
- id: EntityIdSchema,
472
- name: z.string(),
473
- slug: z.string(),
474
- channel: CmsContentChannelSchema,
475
- layout: z.string(),
476
- version: z.number().int().nullable(),
477
- settings: JsonElementSchema,
478
- sections: z.array(CmsSectionDtoSchema),
479
- status: CmsPageStatusSchema,
480
- hasPublishedVersion: z.boolean(),
481
- publishedOn: NullableDateTimeOffsetSchema,
482
- publishedBy: NullableEntityIdSchema,
483
- createdOn: DateTimeOffsetSchema,
484
- updatedOn: NullableDateTimeOffsetSchema,
485
- createdBy: NullableEntityIdSchema,
486
- updatedBy: NullableEntityIdSchema,
487
- lastModifiedBy: z.string().nullable()
488
- }).strict();
489
- var CmsSnapshotDtoSchema = z.object({
490
- settings: CmsSiteSettingsDtoSchema,
491
- pages: z.array(CmsPageDetailsDtoSchema),
492
- menus: z.array(CmsMenuDtoSchema)
493
- }).strict();
494
- var StoreSettingsSnapshotV1Schema = z.object({
495
- schemaVersion: z.literal(1),
496
- generatedAt: DateTimeOffsetSchema,
497
- store: z.object(StorefrontStoreShape),
498
- cms: CmsSnapshotDtoSchema
499
- }).strict();
500
- var StoreSettingsSnapshotV2Schema = z.object({
501
- schemaVersion: z.literal(2),
502
- generatedAt: DateTimeOffsetSchema,
503
- store: StoreModelSchema,
504
- cms: CmsSnapshotDtoSchema
505
- }).strict();
506
- var StoreSettingsSnapshotDtoSchema = z.discriminatedUnion(
507
- "schemaVersion",
508
- [StoreSettingsSnapshotV1Schema, StoreSettingsSnapshotV2Schema]
509
- );
510
- var StorefrontCheckoutSettingsSchema = StoreCheckoutSettingsSchema;
511
- var StorefrontFeaturesEnabledSchema = StoreFeatureFlagsSchema;
512
- var StorefrontCmsBrandingSchema = CmsBrandingSettingsDtoSchema;
513
- var StorefrontThemeConfigSchema = StoreThemeSettingsSchema;
514
- var StorefrontStoreTypeSchema = StoreTypeSchema;
515
- var StorefrontStoreSchema = StoreModelSchema;
516
- var StorefrontCmsSeoSchema = CmsSeoSettingsDtoSchema;
517
- var StorefrontCmsSocialLinksSchema = CmsSocialLinksDtoSchema;
518
- var StorefrontCmsContactSchema = CmsContactSettingsDtoSchema;
519
- var StorefrontCmsTrackingSchema = CmsTrackingSettingsDtoSchema;
520
- var StorefrontCmsCustomScriptsSchema = CmsCustomScriptsDtoSchema;
521
- var StorefrontCmsSettingsSchema = CmsSiteSettingsDtoSchema;
522
- var StorefrontMenuItemSchema = CmsMenuItemSchema;
523
- var StorefrontMenuSchema = CmsMenuDtoSchema;
524
- var StorefrontCmsPageSchema = CmsPageDetailsDtoSchema;
525
- var StorefrontSettingsSchema = StoreSettingsSnapshotDtoSchema;
526
- function getMenuItems(settings, key) {
527
- const menu = settings?.cms.menus.find((candidate) => candidate.key === key);
528
- return (menu?.items ?? []).filter((item) => item.visible !== false).slice().sort((a, b) => a.order - b.order);
529
- }
530
-
531
- // src/services/product.service.ts
532
- async function getProducts(api, params = {}) {
533
- const input = ProductsParamsSchema.parse(params);
534
- const query = new URLSearchParams();
535
- query.set("page", String(input.page));
536
- query.set("pageSize", String(input.pageSize));
537
- if (input.sort) query.set("sort", input.sort);
538
- if (input.sellerId) query.set("sellerId", input.sellerId);
539
- if (input.search) query.set("search", input.search);
540
- if (input.collection) query.set("collection", input.collection);
541
- for (const collection of input.collections ?? []) {
542
- query.append("collections", collection);
543
- }
544
- if (input.collectionId) query.set("collectionId", input.collectionId);
545
- if (input.category) query.set("category", input.category);
546
- for (const category of input.categories ?? []) {
547
- query.append("categories", category);
548
- }
549
- if (input.brand) query.set("brand", input.brand);
550
- for (const brand of input.brands ?? []) {
551
- query.append("brands", brand);
552
- }
553
- if (input.productType) query.set("productType", input.productType);
554
- for (const productType of input.productTypes ?? []) {
555
- query.append("productTypes", productType);
556
- }
557
- if (input.tag) query.set("tag", input.tag);
558
- for (const tag of input.tags ?? []) {
559
- query.append("tags", tag);
560
- }
561
- for (const filter of input.filters ?? []) {
562
- query.append("filters", filter);
563
- }
564
- if (input.locationId) query.set("locationId", input.locationId);
565
- if (input.inStock !== void 0) query.set("inStock", String(input.inStock));
566
- if (input.minPrice !== void 0) query.set("minPrice", String(input.minPrice));
567
- if (input.maxPrice !== void 0) query.set("maxPrice", String(input.maxPrice));
568
- return api.get(`products?${query.toString()}`, ProductsResponseSchema);
569
- }
570
- async function getProductBySlug(api, slug, params = {}) {
571
- const input = ProductDetailParamsSchema.parse(params);
572
- const query = new URLSearchParams();
573
- if (input.sellerId) query.set("sellerId", input.sellerId);
574
- const path = `products/${encodeURIComponent(slug)}`;
575
- const search = query.toString();
576
- if (search) {
577
- return api.get(`${path}?${search}`, ProductDetailSchema);
578
- }
579
- return api.get(path, ProductDetailSchema);
580
- }
581
- async function getRelatedProducts(api, params) {
582
- const input = RelatedProductsParamsSchema.parse(params);
583
- return api.get(
584
- `products/${encodeURIComponent(input.productId)}/related`,
585
- ProductSummariesSchema,
586
- {
587
- query: {
588
- limit: input.limit,
589
- sellerId: input.sellerId
590
- }
591
- }
592
- );
593
- }
594
- var ProductAutocompleteParamsSchema = z.object({
595
- search: z.string().min(2).max(80),
596
- limit: z.number().int().positive().max(20).default(8),
597
- sellerId: OptionalEntityIdSchema
598
- });
599
- var ProductSuggestionSchema = z.object({
600
- id: EntityIdSchema,
601
- name: z.string(),
602
- slug: z.string(),
603
- imageUrl: z.string()
604
- });
605
- var ProductSuggestionsSchema = z.array(ProductSuggestionSchema);
606
-
607
- // src/services/search.service.ts
608
- async function autocompleteProducts(api, params) {
609
- const input = ProductAutocompleteParamsSchema.parse(params);
610
- return api.get("search/autocomplete", ProductSuggestionsSchema, {
611
- query: {
612
- search: input.search,
613
- limit: input.limit,
614
- sellerId: input.sellerId
615
- }
616
- });
617
- }
618
- var StorefrontReviewSchema = z.object({
619
- id: EntityIdSchema,
620
- productId: EntityIdSchema,
621
- isVerifiedPurchase: z.boolean(),
622
- rating: z.number().int().min(1).max(5),
623
- title: z.string().nullable(),
624
- content: z.string(),
625
- reviewerName: z.string().nullable(),
626
- createdOn: z.string().datetime({ offset: true })
627
- });
628
- var StorefrontReviewsSchema = z.object({
629
- data: z.array(StorefrontReviewSchema),
630
- hasNextPage: z.boolean(),
631
- nextCursor: z.string().nullable(),
632
- totalCount: z.number().int().nonnegative().nullable()
633
- });
634
- var ListProductReviewsParamsSchema = z.object({
635
- productId: EntityIdSchema,
636
- limit: z.number().int().min(1).max(200).optional(),
637
- cursor: z.string().optional(),
638
- search: z.string().optional(),
639
- sortBy: z.enum(["rating", "createdOn"]).optional(),
640
- sortDirection: z.enum(["asc", "desc"]).optional(),
641
- rating: z.number().int().min(1).max(5).optional()
642
- });
643
- var CreateProductReviewParamsSchema = z.object({
644
- productId: EntityIdSchema,
645
- rating: z.number().int().min(1).max(5),
646
- content: z.string().min(1).max(4e3),
647
- title: z.string().max(200).optional(),
648
- reviewerName: z.string().min(1).max(200),
649
- reviewerEmail: z.string().email().max(320),
650
- orderId: EntityIdSchema.optional()
651
- });
652
-
653
- // src/services/review.service.ts
654
- async function listProductReviews(api, params) {
655
- const input = ListProductReviewsParamsSchema.parse(params);
656
- return api.get(
657
- `products/${encodeURIComponent(input.productId)}/reviews`,
658
- StorefrontReviewsSchema,
659
- {
660
- query: {
661
- limit: input.limit,
662
- cursor: input.cursor,
663
- search: input.search,
664
- sortBy: input.sortBy,
665
- sortDirection: input.sortDirection,
666
- rating: input.rating
667
- }
668
- }
669
- );
670
- }
671
- async function createProductReview(api, params) {
672
- const input = CreateProductReviewParamsSchema.parse(params);
673
- return api.post(
674
- `products/${encodeURIComponent(input.productId)}/reviews`,
675
- {
676
- rating: input.rating,
677
- content: input.content,
678
- title: input.title,
679
- reviewerName: input.reviewerName,
680
- reviewerEmail: input.reviewerEmail,
681
- orderId: input.orderId
682
- },
683
- StorefrontReviewSchema
684
- );
685
- }
686
- var StorefrontAddressSchema = z.object({
687
- name: z.string().nullable(),
688
- address1: z.string(),
689
- city: z.string(),
690
- countryCode: z.string(),
691
- company: z.string().nullable(),
692
- address2: z.string().nullable(),
693
- province: z.string().nullable(),
694
- postalCode: z.string().nullable(),
695
- district: z.string().nullable(),
696
- phone: z.string().nullable(),
697
- latitude: z.number().nullable(),
698
- longitude: z.number().nullable()
699
- });
700
- var StorefrontCartBundleItemSchema = z.object({
701
- productId: EntityIdSchema,
702
- variantId: EntityIdSchema,
703
- productName: z.string(),
704
- variantName: z.string().nullable(),
705
- sku: z.string().nullable(),
706
- brand: z.string().nullable(),
707
- imageUrl: z.string().nullable(),
708
- quantity: z.number().int().positive()
709
- });
710
- var StorefrontCartItemSchema = z.object({
711
- id: EntityIdSchema,
712
- productId: NullableEntityIdSchema,
713
- title: z.string(),
714
- variantLabel: z.string().nullable(),
715
- productHandle: z.string().nullable(),
716
- thumbnail: z.string().nullable(),
717
- quantity: z.number().int().positive(),
718
- variantId: NullableEntityIdSchema,
719
- variantSku: z.string().nullable(),
720
- unitPrice: z.number(),
721
- compareAtUnitPrice: z.number().nullable(),
722
- bundleItems: z.array(StorefrontCartBundleItemSchema)
723
- });
724
- var StorefrontCartShippingMethodSchema = z.object({
725
- id: EntityIdSchema,
726
- shippingMethodId: NullableEntityIdSchema,
727
- rateId: NullableEntityIdSchema,
728
- name: z.string(),
729
- description: z.string().nullable(),
730
- total: z.number(),
731
- locationId: NullableEntityIdSchema,
732
- estimatedDays: z.number().int().nullable(),
733
- pickupPointId: NullableEntityIdSchema,
734
- scheduledDate: z.string().nullable(),
735
- scheduledTime: z.string().nullable(),
736
- serviceCode: z.string().nullable(),
737
- sellerId: NullableEntityIdSchema,
738
- shippingProfileId: NullableEntityIdSchema
739
- });
740
- var StorefrontCartTotalsSchema = z.object({
741
- subtotal: z.number(),
742
- discountTotal: z.number(),
743
- shippingOriginalTotal: z.number(),
744
- shippingTotal: z.number(),
745
- taxTotal: z.number(),
746
- warrantyTotal: z.number(),
747
- total: z.number()
748
- });
749
- var StorefrontCartStatusSchema = z.enum([
750
- "inProgress",
751
- "pending",
752
- "completed",
753
- "abandoned",
754
- "cancelled",
755
- "expired",
756
- "failed"
757
- ]);
758
- var StorefrontCartSchema = z.object({
759
- id: EntityIdSchema,
760
- token: CartTokenSchema,
761
- cartNumber: z.string(),
762
- email: z.string().nullable(),
763
- phone: z.string().nullable(),
764
- firstName: z.string().nullable(),
765
- lastName: z.string().nullable(),
766
- currencyCode: z.string(),
767
- status: StorefrontCartStatusSchema,
768
- completedAt: z.string().datetime({ offset: true }).nullable(),
769
- shippingAddress: StorefrontAddressSchema.nullable(),
770
- billingAddress: StorefrontAddressSchema.nullable(),
771
- promotionCodes: z.array(z.string()),
772
- items: z.array(StorefrontCartItemSchema),
773
- shippingMethods: z.array(StorefrontCartShippingMethodSchema),
774
- totals: StorefrontCartTotalsSchema
775
- });
776
- var CreateCartParamsSchema = z.object({
777
- currencyCode: z.string().length(3),
778
- salesChannelId: z.string().optional(),
779
- email: z.string().email().optional()
780
- });
781
- var GetCartParamsSchema = z.object({
782
- cartToken: CartTokenSchema
783
- });
784
- var CartItemModifierSchema = z.object({
785
- modifierGroupId: EntityIdSchema,
786
- optionIds: z.array(EntityIdSchema).min(1)
787
- });
788
- var AddCartItemParamsSchema = z.object({
789
- cartToken: CartTokenSchema,
790
- variantId: EntityIdSchema,
791
- quantity: z.number().int().positive(),
792
- modifiers: z.array(CartItemModifierSchema).optional()
793
- });
794
- var UpdateCartItemQuantityParamsSchema = z.object({
795
- cartToken: CartTokenSchema,
796
- cartItemId: EntityIdSchema,
797
- quantity: z.number().int().nonnegative()
798
- });
799
- var RemoveCartItemParamsSchema = z.object({
800
- cartToken: CartTokenSchema,
801
- cartItemId: EntityIdSchema
802
- });
803
-
804
- // src/services/cart.service.ts
805
- async function createCart(api, params) {
806
- const input = CreateCartParamsSchema.parse(params);
807
- return api.post(
808
- "carts",
809
- {
810
- currencyCode: input.currencyCode,
811
- salesChannelId: input.salesChannelId,
812
- email: input.email
813
- },
814
- StorefrontCartSchema
815
- );
816
- }
817
- async function getCart(api, params) {
818
- const input = GetCartParamsSchema.parse(params);
819
- return api.get(
820
- `carts/${encodeURIComponent(input.cartToken)}`,
821
- StorefrontCartSchema
822
- );
823
- }
824
- async function addCartItem(api, params) {
825
- const input = AddCartItemParamsSchema.parse(params);
826
- return api.post(
827
- `carts/${encodeURIComponent(input.cartToken)}/items`,
828
- {
829
- variantId: input.variantId,
830
- quantity: input.quantity,
831
- modifiers: input.modifiers
832
- },
833
- StorefrontCartSchema
834
- );
835
- }
836
- async function updateCartItemQuantity(api, params) {
837
- const input = UpdateCartItemQuantityParamsSchema.parse(params);
838
- return api.request(
839
- "PATCH",
840
- `carts/${encodeURIComponent(input.cartToken)}/items/${encodeURIComponent(input.cartItemId)}`,
841
- StorefrontCartSchema,
842
- { body: { quantity: input.quantity } }
843
- );
844
- }
845
- async function removeCartItem(api, params) {
846
- const input = RemoveCartItemParamsSchema.parse(params);
847
- return api.request(
848
- "DELETE",
849
- `carts/${encodeURIComponent(input.cartToken)}/items/${encodeURIComponent(input.cartItemId)}`,
850
- StorefrontCartSchema
851
- );
852
- }
853
-
854
- // src/services/collection.service.ts
855
- async function getCollections(api) {
856
- return api.get("collections", CollectionsSchema);
857
- }
858
- async function getCollectionBySlug(api, collectionSlug) {
859
- return api.get(`collections/${encodeURIComponent(collectionSlug)}`, CollectionSchema);
860
- }
861
-
862
- // src/services/page.service.ts
863
- async function getPageBySlug(api, pageSlug) {
864
- return api.get(`pages/${encodeURIComponent(pageSlug)}`, CmsPageDetailsDtoSchema);
865
- }
866
- var CheckoutMetadataValueSchema = z.lazy(
867
- () => z.union([
868
- z.string(),
869
- z.number(),
870
- z.boolean(),
871
- z.null(),
872
- z.array(CheckoutMetadataValueSchema),
873
- z.record(z.string(), CheckoutMetadataValueSchema)
874
- ])
875
- );
876
- var CartBuyerParamsSchema = z.object({
877
- cartToken: CartTokenSchema,
878
- email: z.string().email(),
879
- firstName: z.string().min(1),
880
- lastName: z.string().min(1),
881
- phone: z.string().min(1)
882
- });
883
- var CartAddressWriteSchema = z.object({
884
- name: z.string().min(1),
885
- address1: z.string().min(1),
886
- city: z.string().min(1),
887
- countryCode: z.string().length(2),
888
- company: z.string().nullable().optional(),
889
- address2: z.string().nullable().optional(),
890
- province: z.string().nullable().optional(),
891
- postalCode: z.string().nullable().optional(),
892
- district: z.string().nullable().optional(),
893
- phone: z.string().nullable().optional(),
894
- latitude: z.number().nullable().optional(),
895
- longitude: z.number().nullable().optional(),
896
- geo: z.object({
897
- departmentCode: z.string().nullable().optional(),
898
- provinceCode: z.string().nullable().optional(),
899
- districtCode: z.string().nullable().optional()
900
- }).nullable().optional()
901
- });
902
- var CartAddressesParamsSchema = z.object({
903
- cartToken: CartTokenSchema,
904
- shippingAddress: CartAddressWriteSchema,
905
- billingAddress: CartAddressWriteSchema
906
- });
907
- var CartPaymentMethodSchema = z.object({
908
- code: z.string(),
909
- name: z.string(),
910
- description: z.string().nullable().optional(),
911
- kind: z.string(),
912
- providerMethodCode: z.string().nullable().optional(),
913
- isActive: z.boolean(),
914
- isDefault: z.boolean(),
915
- isManual: z.boolean(),
916
- sortOrder: z.number(),
917
- phoneNumber: z.string().nullable().optional(),
918
- accountHolder: z.string().nullable().optional(),
919
- qrImageUrl: z.string().nullable().optional()
920
- });
921
- var StorefrontOrderBumpSchema = z.object({
922
- id: EntityIdSchema,
923
- productId: EntityIdSchema,
924
- variantId: EntityIdSchema,
925
- productName: z.string(),
926
- variantName: z.string().nullable().optional(),
927
- imageUrl: z.string().nullable().optional(),
928
- currencyCode: z.string(),
929
- regularPrice: z.number(),
930
- offerPrice: z.number(),
931
- badgeLabel: z.string().nullable().optional(),
932
- callToAction: z.string(),
933
- description: z.string().nullable().optional()
934
- });
935
- var CartCheckoutReadParamsSchema = z.object({
936
- cartToken: CartTokenSchema
937
- });
938
- var CartCheckoutReadResponseSchema = z.object({
939
- cart: StorefrontCartSchema,
940
- paymentMethods: z.object({
941
- methods: z.array(CartPaymentMethodSchema)
942
- }),
943
- orderBumps: z.array(StorefrontOrderBumpSchema).optional().default([])
944
- });
945
- var CartCheckoutPaymentActionSchema = z.object({
946
- publicConfiguration: z.object({
947
- publishableKey: z.string().nullable().optional(),
948
- checkoutMode: z.string().nullable().optional(),
949
- phoneNumber: z.string().nullable().optional(),
950
- accountHolder: z.string().nullable().optional(),
951
- qrImageUrl: z.string().nullable().optional()
952
- }).strip().nullable().optional(),
953
- url: z.string().nullable().optional(),
954
- html: z.string().nullable().optional(),
955
- clientSecret: z.string().nullable().optional(),
956
- qrCode: z.string().nullable().optional(),
957
- expiresAt: z.string().nullable().optional()
958
- }).strip();
959
- var CartCheckoutPaymentSchema = z.object({
960
- transactionId: z.string(),
961
- paymentMethodCode: z.string(),
962
- providerId: z.string().nullable().optional(),
963
- status: z.string(),
964
- amount: z.number(),
965
- reference: z.string(),
966
- actionType: z.string(),
967
- receiptUrl: z.string().nullable().optional(),
968
- action: CartCheckoutPaymentActionSchema.nullable().optional()
969
- }).strip();
970
- var CartCheckoutResponseSchema = z.object({
971
- publicKey: z.string().optional(),
972
- publishableKey: z.string().optional(),
973
- stripePublicKey: z.string().optional(),
974
- clientSecret: z.string().optional(),
975
- intentClientSecret: z.string().optional(),
976
- orderId: EntityIdSchema.optional(),
977
- orderGroup: z.string().optional(),
978
- orderIds: z.array(EntityIdSchema).optional(),
979
- payment: CartCheckoutPaymentSchema.optional(),
980
- cart: StorefrontCartSchema.optional()
981
- }).strip();
982
- var CartCheckoutParamsSchema = z.object({
983
- cartToken: CartTokenSchema,
984
- paymentMethodCode: z.string().min(1),
985
- externalRef: z.string().min(1),
986
- receiptUrl: z.string().min(1).optional()
987
- });
988
- var ShippingRateSchema = z.object({
989
- shippingMethodId: z.string(),
990
- name: z.string(),
991
- displayName: z.string().optional(),
992
- type: z.string().optional(),
993
- price: z.number(),
994
- currency: z.string().optional(),
995
- sortOrder: z.number().optional(),
996
- rateId: z.string(),
997
- description: z.string().nullable().optional(),
998
- deliveryLocationId: z.string().nullable().optional(),
999
- deliveryLocationName: z.string().nullable().optional(),
1000
- estimatedDeliveryDays: z.number().nullable().optional(),
1001
- serviceCode: z.string().nullable().optional(),
1002
- metadata: z.record(z.string(), CheckoutMetadataValueSchema).optional()
1003
- }).strip();
1004
- var ShippingOptionGroupSchema = z.object({
1005
- sellerId: z.string(),
1006
- shippingProfileId: z.string().nullable().optional(),
1007
- orderAmount: z.number().optional(),
1008
- totalWeight: z.number().optional(),
1009
- itemIds: z.array(z.string()).optional(),
1010
- rates: z.array(ShippingRateSchema)
1011
- }).strip();
1012
- var ShippingOptionsResponseSchema = z.object({
1013
- groups: z.array(ShippingOptionGroupSchema)
1014
- });
1015
- var GetShippingOptionsParamsSchema = z.object({
1016
- cartToken: CartTokenSchema,
1017
- postalCode: z.string().min(1)
1018
- });
1019
- var PutShippingMethodParamsSchema = z.object({
1020
- cartToken: CartTokenSchema,
1021
- rateId: z.string().min(1),
1022
- shippingMethodId: z.string().min(1),
1023
- serviceCode: z.string().nullable().optional(),
1024
- sellerId: z.string().nullable().optional(),
1025
- shippingProfileId: z.string().nullable().optional(),
1026
- locationId: z.string().nullable().optional(),
1027
- pickupPointId: z.string().nullable().optional(),
1028
- scheduledDate: z.string().nullable().optional(),
1029
- scheduledTime: z.string().nullable().optional()
1030
- });
1031
- var CartPaymentReceiptResponseSchema = z.object({
1032
- id: z.string(),
1033
- url: z.string()
1034
- });
1035
- var CartPromotionCodeParamsSchema = z.object({
1036
- cartToken: CartTokenSchema,
1037
- code: z.string().min(1)
1038
- });
1039
-
1040
- // src/services/checkout.service.ts
1041
- async function getCartCheckout(api, params) {
1042
- const input = CartCheckoutReadParamsSchema.parse(params);
1043
- return api.get(
1044
- `carts/${encodeURIComponent(input.cartToken)}/checkout`,
1045
- CartCheckoutReadResponseSchema
1046
- );
1047
- }
1048
- async function getShippingOptions(api, params) {
1049
- const input = GetShippingOptionsParamsSchema.parse(params);
1050
- return api.get(
1051
- `carts/${encodeURIComponent(input.cartToken)}/shipping-options`,
1052
- ShippingOptionsResponseSchema,
1053
- { query: { postalCode: input.postalCode } }
1054
- );
1055
- }
1056
- async function putCartShippingMethod(api, params) {
1057
- const input = PutShippingMethodParamsSchema.parse(params);
1058
- const { cartToken, ...body } = input;
1059
- return api.request(
1060
- "PUT",
1061
- `carts/${encodeURIComponent(cartToken)}/shipping-method`,
1062
- StorefrontCartSchema,
1063
- { body }
1064
- );
1065
- }
1066
- async function patchCartBuyer(api, params) {
1067
- const input = CartBuyerParamsSchema.parse(params);
1068
- const { cartToken, ...body } = input;
1069
- return api.request(
1070
- "PATCH",
1071
- `carts/${encodeURIComponent(cartToken)}/buyer`,
1072
- StorefrontCartSchema,
1073
- { body }
1074
- );
1075
- }
1076
- async function patchCartAddresses(api, params) {
1077
- const input = CartAddressesParamsSchema.parse(params);
1078
- const { cartToken, shippingAddress, billingAddress } = input;
1079
- return api.request(
1080
- "PATCH",
1081
- `carts/${encodeURIComponent(cartToken)}/addresses`,
1082
- StorefrontCartSchema,
1083
- { body: { shippingAddress, billingAddress } }
1084
- );
1085
- }
1086
- async function checkoutCart(api, params) {
1087
- const input = CartCheckoutParamsSchema.parse(params);
1088
- const { cartToken, ...body } = input;
1089
- return api.post(
1090
- `carts/${encodeURIComponent(cartToken)}/checkout`,
1091
- body,
1092
- CartCheckoutResponseSchema
1093
- );
1094
- }
1095
- async function uploadPaymentReceipt(api, params) {
1096
- const cartToken = CartCheckoutReadParamsSchema.shape.cartToken.parse(params.cartToken);
1097
- if (!(params.file instanceof Blob)) {
1098
- throw new TypeError("uploadPaymentReceipt requiere un archivo (Blob/File)");
1099
- }
1100
- const form = new FormData();
1101
- const name = params.fileName ?? (params.file instanceof File ? params.file.name : "receipt");
1102
- form.append("file", params.file, name);
1103
- return api.postForm(
1104
- `carts/${encodeURIComponent(cartToken)}/payment-receipt`,
1105
- form,
1106
- CartPaymentReceiptResponseSchema
1107
- );
1108
- }
1109
- async function addCartPromotionCode(api, params) {
1110
- const input = CartPromotionCodeParamsSchema.parse(params);
1111
- return api.post(
1112
- `carts/${encodeURIComponent(input.cartToken)}/promotion-codes`,
1113
- { code: input.code },
1114
- StorefrontCartSchema
1115
- );
1116
- }
1117
- async function removeCartPromotionCode(api, params) {
1118
- const input = CartPromotionCodeParamsSchema.parse(params);
1119
- return api.request(
1120
- "DELETE",
1121
- `carts/${encodeURIComponent(input.cartToken)}/promotion-codes/${encodeURIComponent(input.code)}`,
1122
- StorefrontCartSchema
1123
- );
1124
- }
1125
- var CountrySchema = z.object({
1126
- code: z.string().length(2),
1127
- name: z.string().min(1)
1128
- }).strict();
1129
- var CountriesSchema = z.array(CountrySchema);
1130
- var GeoDivisionTypeSchema = z.enum(["level1", "level2", "level3"]);
1131
- var GeoDivisionSchema = z.object({
1132
- id: EntityIdSchema,
1133
- countryCode: z.string().length(2),
1134
- type: GeoDivisionTypeSchema,
1135
- code: z.string().min(1),
1136
- name: z.string().min(1),
1137
- parentId: NullableEntityIdSchema,
1138
- source: z.string().min(1)
1139
- }).strict();
1140
- var DepartmentSchema = GeoDivisionSchema;
1141
- var DepartmentsSchema = z.array(DepartmentSchema);
1142
- var GetDepartmentsParamsSchema = z.object({
1143
- countryCode: z.string().length(2),
1144
- source: z.string().min(1).default("inei"),
1145
- search: z.string().default(""),
1146
- limit: z.number().int().positive().max(500).default(200)
1147
- });
1148
- var ProvinceSchema = GeoDivisionSchema;
1149
- var ProvincesSchema = z.array(ProvinceSchema);
1150
- var GetProvincesParamsSchema = z.object({
1151
- countryCode: z.string().length(2),
1152
- departmentCode: z.string().min(1),
1153
- source: z.string().min(1).default("inei"),
1154
- search: z.string().default(""),
1155
- limit: z.number().int().positive().max(500).default(200)
1156
- });
1157
- var DistrictSchema = GeoDivisionSchema;
1158
- var DistrictsSchema = z.array(DistrictSchema);
1159
- var GetDistrictsParamsSchema = z.object({
1160
- countryCode: z.string().length(2),
1161
- provinceCode: z.string().min(1),
1162
- source: z.string().min(1).default("inei"),
1163
- search: z.string().default(""),
1164
- limit: z.number().int().positive().max(500).default(200)
1165
- });
1166
-
1167
- // src/services/geo.service.ts
1168
- async function getCountries(api) {
1169
- return api.get("geo/countries", CountriesSchema);
1170
- }
1171
- async function getDepartments(api, params) {
1172
- const input = GetDepartmentsParamsSchema.parse(params);
1173
- return api.get("geo/departments", DepartmentsSchema, {
1174
- query: {
1175
- countryCode: input.countryCode,
1176
- source: input.source,
1177
- search: input.search,
1178
- limit: input.limit
1179
- }
1180
- });
1181
- }
1182
- async function getProvinces(api, params) {
1183
- const input = GetProvincesParamsSchema.parse(params);
1184
- return api.get("geo/provinces", ProvincesSchema, {
1185
- query: {
1186
- countryCode: input.countryCode,
1187
- departmentCode: input.departmentCode,
1188
- source: input.source,
1189
- search: input.search,
1190
- limit: input.limit
1191
- }
1192
- });
1193
- }
1194
- async function getDistricts(api, params) {
1195
- const input = GetDistrictsParamsSchema.parse(params);
1196
- return api.get("geo/districts", DistrictsSchema, {
1197
- query: {
1198
- countryCode: input.countryCode,
1199
- provinceCode: input.provinceCode,
1200
- source: input.source,
1201
- search: input.search,
1202
- limit: input.limit
1203
- }
1204
- });
1205
- }
1206
- var CustomerAddressUpsertInputSchema = z.object({
1207
- addressKey: z.string().trim().min(1),
1208
- countryIsoCode: z.string().trim().length(2),
1209
- addressLine: z.string().trim().min(1),
1210
- addressNumber: z.string().trim().min(1),
1211
- department: z.string().trim().min(1),
1212
- province: z.string().trim().min(1),
1213
- district: z.string().trim().min(1),
1214
- phone: z.string().trim(),
1215
- cellPhone: z.string().trim(),
1216
- postalCode: z.string().trim().min(1),
1217
- reference: z.string().trim(),
1218
- latitude: z.number().nullable(),
1219
- longitude: z.number().nullable(),
1220
- isDefault: z.boolean()
1221
- });
1222
- var CustomerAddressSchema = CustomerAddressUpsertInputSchema.extend({
1223
- id: EntityIdSchema.optional()
1224
- });
1225
- var CustomerAddressesSchema = z.array(CustomerAddressSchema);
1226
- function toCustomerSavedAddresses(addresses) {
1227
- const saved = [];
1228
- for (const address of addresses) {
1229
- if (!address.id?.trim()) continue;
1230
- const { id, ...rest } = address;
1231
- saved.push({ id: id.trim(), ...rest });
1232
- }
1233
- return saved;
1234
- }
1235
-
1236
- // src/services/customer-address.service.ts
1237
- var ADDRESSES_PATH = "customer/addresses";
1238
- var CustomerAddressMutationResponseSchema = z.union([
1239
- CustomerAddressSchema,
1240
- z.object({
1241
- id: EntityIdSchema
1242
- }),
1243
- z.null()
1244
- ]);
1245
- async function getCustomerAddresses(api, options = {}) {
1246
- return api.get(ADDRESSES_PATH, CustomerAddressesSchema, {
1247
- headers: options.headers,
1248
- signal: options.signal
1249
- });
1250
- }
1251
- async function createCustomerAddress(api, data, options = {}) {
1252
- const payload = CustomerAddressUpsertInputSchema.parse(data);
1253
- return api.post(ADDRESSES_PATH, payload, CustomerAddressMutationResponseSchema, {
1254
- headers: options.headers,
1255
- signal: options.signal
1256
- });
1257
- }
1258
- async function updateCustomerAddress(api, addressId, data, options = {}) {
1259
- const id = addressId.trim();
1260
- if (!id) throw new Error("addressId requerido");
1261
- const payload = CustomerAddressUpsertInputSchema.parse(data);
1262
- return api.request(
1263
- "PUT",
1264
- `${ADDRESSES_PATH}/${encodeURIComponent(id)}`,
1265
- CustomerAddressMutationResponseSchema,
1266
- {
1267
- body: payload,
1268
- headers: options.headers,
1269
- signal: options.signal
1270
- }
1271
- );
1272
- }
1273
- async function deleteCustomerAddress(api, addressId, options = {}) {
1274
- const id = addressId.trim();
1275
- if (!id) throw new Error("addressId requerido");
1276
- await api.request(
1277
- "DELETE",
1278
- `${ADDRESSES_PATH}/${encodeURIComponent(id)}`,
1279
- z.null(),
1280
- {
1281
- headers: options.headers,
1282
- signal: options.signal
1283
- }
1284
- );
1285
- }
1286
- var DEFAULT_COUNTRY_CODE = "PE";
1287
- var CustomerRegisterRequestSchema = z.object({
1288
- email: z.string().email(),
1289
- firstName: z.string().trim().min(1),
1290
- lastName: z.string().trim().min(1),
1291
- countryIsoCode: z.string().trim().length(2),
1292
- password: z.string().min(1),
1293
- phone: z.string().trim().min(1).optional()
1294
- });
1295
- var CustomerProfilePatchSchema = z.object({
1296
- firstName: z.string().trim().min(1),
1297
- lastName: z.string().trim().min(1),
1298
- phone: z.string().trim(),
1299
- identificationNumber: z.string().nullable(),
1300
- identificationType: z.string().nullable(),
1301
- entityName: z.string().nullable(),
1302
- entityIdentificationNumber: z.string().nullable(),
1303
- gender: z.string().nullable(),
1304
- role: z.string().nullable(),
1305
- companyName: z.string().nullable(),
1306
- dateOfBirth: z.string().nullable(),
1307
- consent: z.boolean(),
1308
- countryIsoCode: z.string().trim().length(2)
1309
- });
1310
- var CustomerProfileSchema = z.object({
1311
- firstName: z.string(),
1312
- lastName: z.string(),
1313
- phone: z.string(),
1314
- email: z.string().email(),
1315
- identificationNumber: z.string().nullable(),
1316
- identificationType: z.string().nullable(),
1317
- countryIsoCode: z.string(),
1318
- consent: z.boolean(),
1319
- entityName: z.string().nullable(),
1320
- entityIdentificationNumber: z.string().nullable(),
1321
- gender: z.string().nullable(),
1322
- role: z.string().nullable(),
1323
- companyName: z.string().nullable(),
1324
- dateOfBirth: z.string().nullable()
1325
- });
1326
- var nullableString = z.string().nullable().optional().transform((v) => v ?? null);
1327
- var CustomerMeSchema = z.object({
1328
- id: EntityIdSchema,
1329
- storeId: EntityIdSchema.optional(),
1330
- email: z.string().email(),
1331
- firstName: z.string(),
1332
- lastName: z.string(),
1333
- phone: z.union([z.string(), z.null()]).optional().transform((v) => v ?? ""),
1334
- identificationNumber: nullableString,
1335
- identificationType: nullableString,
1336
- entityName: nullableString,
1337
- entityIdentificationNumber: nullableString,
1338
- gender: nullableString,
1339
- role: nullableString,
1340
- companyName: nullableString,
1341
- dateOfBirth: nullableString,
1342
- countryIsoCode: z.string().optional().transform((v) => v?.trim().length === 2 ? v.trim() : DEFAULT_COUNTRY_CODE),
1343
- consent: z.boolean().optional().transform((v) => v ?? false)
1344
- }).passthrough();
1345
- function customerMeToProfile(me) {
1346
- return CustomerProfileSchema.parse({
1347
- firstName: me.firstName,
1348
- lastName: me.lastName,
1349
- phone: me.phone,
1350
- email: me.email,
1351
- identificationNumber: me.identificationNumber,
1352
- identificationType: me.identificationType,
1353
- countryIsoCode: me.countryIsoCode,
1354
- consent: me.consent,
1355
- entityName: me.entityName,
1356
- entityIdentificationNumber: me.entityIdentificationNumber,
1357
- gender: me.gender,
1358
- role: me.role,
1359
- companyName: me.companyName,
1360
- dateOfBirth: me.dateOfBirth
1361
- });
1362
- }
1363
- function customerMeToProfilePatch(me) {
1364
- return CustomerProfilePatchSchema.parse({
1365
- firstName: me.firstName,
1366
- lastName: me.lastName,
1367
- phone: me.phone,
1368
- identificationNumber: me.identificationNumber,
1369
- identificationType: me.identificationType,
1370
- entityName: me.entityName,
1371
- entityIdentificationNumber: me.entityIdentificationNumber,
1372
- gender: me.gender,
1373
- role: me.role,
1374
- companyName: me.companyName,
1375
- dateOfBirth: me.dateOfBirth,
1376
- consent: me.consent,
1377
- countryIsoCode: me.countryIsoCode || DEFAULT_COUNTRY_CODE
1378
- });
1379
- }
1380
- function customerProfileToPatch(profile) {
1381
- return CustomerProfilePatchSchema.parse({
1382
- firstName: profile.firstName,
1383
- lastName: profile.lastName,
1384
- phone: profile.phone,
1385
- identificationNumber: profile.identificationNumber,
1386
- identificationType: profile.identificationType,
1387
- entityName: profile.entityName,
1388
- entityIdentificationNumber: profile.entityIdentificationNumber,
1389
- gender: profile.gender,
1390
- role: profile.role,
1391
- companyName: profile.companyName,
1392
- dateOfBirth: profile.dateOfBirth,
1393
- consent: profile.consent,
1394
- countryIsoCode: profile.countryIsoCode || DEFAULT_COUNTRY_CODE
1395
- });
1396
- }
1397
-
1398
- // src/services/customer.service.ts
1399
- var CUSTOMER_PATH = "customer";
1400
- var CUSTOMER_REGISTER_PATH = "customer/register";
1401
- async function registerCustomer(api, data, options = {}) {
1402
- const payload = CustomerRegisterRequestSchema.parse(data);
1403
- return api.post(CUSTOMER_REGISTER_PATH, payload, z.unknown(), {
1404
- headers: options.headers,
1405
- signal: options.signal
1406
- });
1407
- }
1408
- async function getCustomerMe(api, options = {}) {
1409
- return api.get(CUSTOMER_PATH, CustomerMeSchema, {
1410
- headers: options.headers,
1411
- signal: options.signal
1412
- });
1413
- }
1414
- async function patchCustomer(api, data, options = {}) {
1415
- const payload = CustomerProfilePatchSchema.parse(data);
1416
- await api.request("PATCH", CUSTOMER_PATH, z.null(), {
1417
- body: payload,
1418
- headers: options.headers,
1419
- signal: options.signal
1420
- });
1421
- }
1422
- var CustomerOrderShippingAddressSchema = z.object({
1423
- name: z.string().nullable().optional(),
1424
- company: z.string().nullable().optional(),
1425
- address1: z.string(),
1426
- address2: z.string().nullable().optional(),
1427
- city: z.string().nullable().optional(),
1428
- countryCode: z.string().min(2).max(2),
1429
- province: z.string().nullable().optional(),
1430
- postalCode: z.string().nullable().optional(),
1431
- district: z.string().nullable().optional(),
1432
- phone: z.string().nullable().optional(),
1433
- latitude: z.number().nullable().optional(),
1434
- longitude: z.number().nullable().optional(),
1435
- metadata: z.record(z.unknown()).nullable().optional()
1436
- }).passthrough();
1437
- var CustomerOrderLineItemSchema = z.object({
1438
- id: EntityIdSchema,
1439
- orderId: EntityIdSchema,
1440
- productId: EntityIdSchema.nullable(),
1441
- variantId: EntityIdSchema.nullable(),
1442
- title: z.string(),
1443
- subtitle: z.string().nullable().optional(),
1444
- thumbnail: z.string().nullable().optional(),
1445
- variantTitle: z.string().nullable().optional(),
1446
- productHandle: z.string().nullable().optional(),
1447
- quantity: z.number(),
1448
- unitPrice: z.number(),
1449
- total: z.number(),
1450
- status: z.string()
1451
- });
1452
- var CustomerOrderListItemSchema = z.object({
1453
- orderId: EntityIdSchema,
1454
- orderNumber: z.string(),
1455
- orderGroup: z.string(),
1456
- orderIds: z.array(EntityIdSchema),
1457
- status: z.string(),
1458
- total: z.number(),
1459
- totalPaid: z.number(),
1460
- currencyCode: z.string(),
1461
- orderDate: z.string(),
1462
- createdOn: z.string(),
1463
- updatedOn: z.string().nullable().optional(),
1464
- paymentAt: z.string().nullable().optional(),
1465
- shippingAddress: CustomerOrderShippingAddressSchema.nullable().optional(),
1466
- shippingAddressSummary: z.string().nullable().optional(),
1467
- items: z.array(CustomerOrderLineItemSchema)
1468
- });
1469
- var CustomerOrderListSchema = z.array(CustomerOrderListItemSchema);
1470
- var CustomerOrderPaymentSchema = z.object({
1471
- id: EntityIdSchema,
1472
- paymentMethod: z.string(),
1473
- paymentCode: z.string(),
1474
- amount: z.number(),
1475
- paymentStatus: z.string(),
1476
- receiptUrl: z.string().nullable().optional(),
1477
- createdOn: z.string()
1478
- });
1479
- var CustomerOrderStatusTimelineSchema = z.object({
1480
- key: z.string(),
1481
- label: z.string(),
1482
- occurredAt: z.string(),
1483
- description: z.string().nullable().optional(),
1484
- status: z.string(),
1485
- source: z.string()
1486
- });
1487
- var CustomerOrderDetailSchema = z.object({
1488
- id: EntityIdSchema,
1489
- orderNumber: z.string(),
1490
- orderGroup: z.string(),
1491
- status: z.string(),
1492
- total: z.number(),
1493
- totalPaid: z.number(),
1494
- currencyCode: z.string(),
1495
- orderDate: z.string(),
1496
- createdOn: z.string(),
1497
- updatedOn: z.string().nullable().optional(),
1498
- paymentAt: z.string().nullable().optional(),
1499
- subTotal: z.number(),
1500
- discount: z.number(),
1501
- shipping: z.number(),
1502
- tax: z.number(),
1503
- email: z.string(),
1504
- phone: z.string(),
1505
- firstName: z.string(),
1506
- lastName: z.string(),
1507
- shippingAddress: CustomerOrderShippingAddressSchema.nullable().optional(),
1508
- shippingAddressSummary: z.string().nullable().optional(),
1509
- billingAddress: CustomerOrderShippingAddressSchema.nullable().optional(),
1510
- items: z.array(CustomerOrderLineItemSchema),
1511
- payments: z.array(CustomerOrderPaymentSchema),
1512
- statusTimeline: z.array(CustomerOrderStatusTimelineSchema)
1513
- });
1514
- var ORDER_STATUS_LABELS = {
1515
- New: "Pedido realizado",
1516
- Confirmed: "Confirmado",
1517
- Processing: "En preparaci\xF3n",
1518
- InTransit: "En camino",
1519
- Delivered: "Entregado",
1520
- Cancelled: "Cancelado",
1521
- Canceled: "Cancelado",
1522
- Refunded: "Reembolsado",
1523
- Pending: "Pendiente",
1524
- PendingToConfirm: "Pendiente de confirmaci\xF3n",
1525
- Paid: "Pagado",
1526
- Captured: "Pago confirmado"
1527
- };
1528
- function formatCustomerOrderStatus(status) {
1529
- const trimmed = status.trim();
1530
- if (!trimmed) return "Desconocido";
1531
- return ORDER_STATUS_LABELS[trimmed] ?? trimmed.replace(/([A-Z])/g, " $1").trim();
1532
- }
1533
- function customerOrderStatusTone(status) {
1534
- const s = status.toLowerCase();
1535
- if (s.includes("cancel") || s.includes("refund")) return "danger";
1536
- if (s.includes("deliver")) return "success";
1537
- if (s.includes("transit") || s.includes("ship")) return "info";
1538
- if (s.includes("confirm") || s.includes("paid") || s.includes("capture"))
1539
- return "success";
1540
- if (s.includes("pending") || s.includes("new") || s.includes("process"))
1541
- return "warning";
1542
- return "default";
1543
- }
1544
- function formatOrderDate(iso, locale = "es-PE") {
1545
- const d = new Date(iso);
1546
- if (Number.isNaN(d.getTime())) return iso;
1547
- return new Intl.DateTimeFormat(locale, {
1548
- day: "numeric",
1549
- month: "long",
1550
- year: "numeric"
1551
- }).format(d);
1552
- }
1553
- function formatOrderDateTime(iso, locale = "es-PE") {
1554
- const d = new Date(iso);
1555
- if (Number.isNaN(d.getTime())) return iso;
1556
- return new Intl.DateTimeFormat(locale, {
1557
- day: "numeric",
1558
- month: "short",
1559
- year: "numeric",
1560
- hour: "2-digit",
1561
- minute: "2-digit"
1562
- }).format(d);
1563
- }
1564
-
1565
- // src/services/customer-order.service.ts
1566
- var ORDERS_PATH = "customer/orders";
1567
- async function getCustomerOrders(api, options = {}) {
1568
- return api.get(ORDERS_PATH, CustomerOrderListSchema, {
1569
- headers: options.headers,
1570
- signal: options.signal
1571
- });
1572
- }
1573
- async function getCustomerOrder(api, orderId, options = {}) {
1574
- const id = orderId.trim();
1575
- if (!id) throw new Error("orderId requerido");
1576
- return api.get(
1577
- `${ORDERS_PATH}/${encodeURIComponent(id)}`,
1578
- CustomerOrderDetailSchema,
1579
- {
1580
- headers: options.headers,
1581
- signal: options.signal
1582
- }
1583
- );
1584
- }
1585
-
1586
- // src/client.ts
1587
- var DEFAULT_SETTINGS_CACHE_TTL_MS = 3e4;
1588
- function createClient(options) {
1589
- const {
1590
- domain,
1591
- settingsCacheTtlMs = DEFAULT_SETTINGS_CACHE_TTL_MS,
1592
- ...apiOptions
1593
- } = options;
1594
- if (!domain?.trim()) {
1595
- throw new Error("createClient requiere `domain` (config.domain de ecomiq.config.js)");
1596
- }
1597
- if (!Number.isFinite(settingsCacheTtlMs) || settingsCacheTtlMs < 0) {
1598
- throw new Error("settingsCacheTtlMs debe ser un n\xFAmero mayor o igual a 0");
1599
- }
1600
- const api = createApi(apiOptions);
1601
- const apiClient = async () => {
1602
- const storeId = await getStoreId();
1603
- return createApi({
1604
- ...apiOptions,
1605
- headers: {
1606
- ...apiOptions.headers,
1607
- "x-Store-Id": storeId
1608
- }
1609
- });
1610
- };
1611
- let cache = null;
1612
- let inflight = null;
1613
- function clearCache() {
1614
- cache = null;
1615
- inflight = null;
1616
- }
1617
- async function getSettings() {
1618
- const now = Date.now();
1619
- if (cache && cache.expiresAt > now) return cache.data;
1620
- if (inflight) return inflight;
1621
- const previous = cache?.data;
1622
- inflight = api.get("settings", StorefrontSettingsSchema, {
1623
- headers: { "x-Store-Domain": domain }
1624
- }).then((data) => {
1625
- cache = { data, expiresAt: Date.now() + settingsCacheTtlMs };
1626
- return data;
1627
- }).catch((error) => {
1628
- if (previous) return previous;
1629
- throw error;
1630
- }).finally(() => {
1631
- inflight = null;
1632
- });
1633
- return inflight;
1634
- }
1635
- async function getStoreId() {
1636
- const settings = await getSettings();
1637
- return settings.store.id;
1638
- }
1639
- async function getCollections2() {
1640
- const client = await apiClient();
1641
- return getCollections(client);
1642
- }
1643
- async function getCollectionBySlug2(collectionSlug) {
1644
- const client = await apiClient();
1645
- return getCollectionBySlug(client, collectionSlug);
1646
- }
1647
- async function getPageBySlug2(pageSlug) {
1648
- const client = await apiClient();
1649
- return getPageBySlug(client, pageSlug);
1650
- }
1651
- async function getProducts2(params = {}) {
1652
- const client = await apiClient();
1653
- return getProducts(client, params);
1654
- }
1655
- async function getProductBySlug2(productSlug, params = {}) {
1656
- const client = await apiClient();
1657
- return getProductBySlug(client, productSlug, params);
1658
- }
1659
- async function getRelatedProducts2(params) {
1660
- const client = await apiClient();
1661
- return getRelatedProducts(client, params);
1662
- }
1663
- async function autocompleteProducts2(params) {
1664
- const client = await apiClient();
1665
- return autocompleteProducts(client, params);
1666
- }
1667
- async function listProductReviews2(params) {
1668
- const client = await apiClient();
1669
- return listProductReviews(client, params);
1670
- }
1671
- async function createProductReview2(params) {
1672
- const client = await apiClient();
1673
- return createProductReview(client, params);
1674
- }
1675
- async function createCart2(params) {
1676
- const client = await apiClient();
1677
- return createCart(client, params);
1678
- }
1679
- async function getCart2(params) {
1680
- const client = await apiClient();
1681
- return getCart(client, params);
1682
- }
1683
- async function addCartItem2(params) {
1684
- const client = await apiClient();
1685
- return addCartItem(client, params);
1686
- }
1687
- async function updateCartItemQuantity2(params) {
1688
- const client = await apiClient();
1689
- return updateCartItemQuantity(client, params);
1690
- }
1691
- async function removeCartItem2(params) {
1692
- const client = await apiClient();
1693
- return removeCartItem(client, params);
1694
- }
1695
- async function getCartCheckout2(params) {
1696
- const client = await apiClient();
1697
- return getCartCheckout(client, params);
1698
- }
1699
- async function getShippingOptions2(params) {
1700
- const client = await apiClient();
1701
- return getShippingOptions(client, params);
1702
- }
1703
- async function putCartShippingMethod2(params) {
1704
- const client = await apiClient();
1705
- return putCartShippingMethod(client, params);
1706
- }
1707
- async function patchCartBuyer2(params) {
1708
- const client = await apiClient();
1709
- return patchCartBuyer(client, params);
1710
- }
1711
- async function patchCartAddresses2(params) {
1712
- const client = await apiClient();
1713
- return patchCartAddresses(client, params);
1714
- }
1715
- async function checkoutCart2(params) {
1716
- const client = await apiClient();
1717
- return checkoutCart(client, params);
1718
- }
1719
- async function uploadPaymentReceipt2(params) {
1720
- const client = await apiClient();
1721
- return uploadPaymentReceipt(client, params);
1722
- }
1723
- async function addCartPromotionCode2(params) {
1724
- const client = await apiClient();
1725
- return addCartPromotionCode(client, params);
1726
- }
1727
- async function removeCartPromotionCode2(params) {
1728
- const client = await apiClient();
1729
- return removeCartPromotionCode(client, params);
1730
- }
1731
- async function getCountries2() {
1732
- return getCountries(api);
1733
- }
1734
- async function getDepartments2(params) {
1735
- return getDepartments(api, params);
1736
- }
1737
- async function getProvinces2(params) {
1738
- return getProvinces(api, params);
1739
- }
1740
- async function getDistricts2(params) {
1741
- return getDistricts(api, params);
1742
- }
1743
- async function getCustomerAddresses2(options2 = {}) {
1744
- const client = await apiClient();
1745
- return getCustomerAddresses(client, options2);
1746
- }
1747
- async function createCustomerAddress2(data, options2 = {}) {
1748
- const client = await apiClient();
1749
- return createCustomerAddress(client, data, options2);
1750
- }
1751
- async function updateCustomerAddress2(addressId, data, options2 = {}) {
1752
- const client = await apiClient();
1753
- return updateCustomerAddress(client, addressId, data, options2);
1754
- }
1755
- async function deleteCustomerAddress2(addressId, options2 = {}) {
1756
- const client = await apiClient();
1757
- return deleteCustomerAddress(client, addressId, options2);
1758
- }
1759
- async function getCustomerMe2(options2 = {}) {
1760
- const client = await apiClient();
1761
- return getCustomerMe(client, options2);
1762
- }
1763
- async function patchCustomer2(data, options2 = {}) {
1764
- const client = await apiClient();
1765
- return patchCustomer(client, data, options2);
1766
- }
1767
- async function getCustomerOrders2(options2 = {}) {
1768
- const client = await apiClient();
1769
- return getCustomerOrders(client, options2);
1770
- }
1771
- async function getCustomerOrder2(orderId, options2 = {}) {
1772
- const client = await apiClient();
1773
- return getCustomerOrder(client, orderId, options2);
1774
- }
1775
- return {
1776
- ...api,
1777
- getSettings,
1778
- getStoreId,
1779
- getCollections: getCollections2,
1780
- getCollectionBySlug: getCollectionBySlug2,
1781
- getPageBySlug: getPageBySlug2,
1782
- clearCache,
1783
- getProducts: getProducts2,
1784
- getProductBySlug: getProductBySlug2,
1785
- getRelatedProducts: getRelatedProducts2,
1786
- autocompleteProducts: autocompleteProducts2,
1787
- listProductReviews: listProductReviews2,
1788
- createProductReview: createProductReview2,
1789
- createCart: createCart2,
1790
- getCart: getCart2,
1791
- addCartItem: addCartItem2,
1792
- updateCartItemQuantity: updateCartItemQuantity2,
1793
- removeCartItem: removeCartItem2,
1794
- getCartCheckout: getCartCheckout2,
1795
- getShippingOptions: getShippingOptions2,
1796
- putCartShippingMethod: putCartShippingMethod2,
1797
- patchCartBuyer: patchCartBuyer2,
1798
- patchCartAddresses: patchCartAddresses2,
1799
- checkoutCart: checkoutCart2,
1800
- uploadPaymentReceipt: uploadPaymentReceipt2,
1801
- addCartPromotionCode: addCartPromotionCode2,
1802
- removeCartPromotionCode: removeCartPromotionCode2,
1803
- getCountries: getCountries2,
1804
- getDepartments: getDepartments2,
1805
- getProvinces: getProvinces2,
1806
- getDistricts: getDistricts2,
1807
- getCustomerAddresses: getCustomerAddresses2,
1808
- createCustomerAddress: createCustomerAddress2,
1809
- updateCustomerAddress: updateCustomerAddress2,
1810
- deleteCustomerAddress: deleteCustomerAddress2,
1811
- getCustomerMe: getCustomerMe2,
1812
- patchCustomer: patchCustomer2,
1813
- getCustomerOrders: getCustomerOrders2,
1814
- getCustomerOrder: getCustomerOrder2
1815
- };
1816
- }
1817
- var createStorefrontClient = createClient;
1818
- var STOREFRONT_HTML_ALLOWLIST = {
1819
- allowedTags: [
1820
- "a",
1821
- "b",
1822
- "blockquote",
1823
- "br",
1824
- "code",
1825
- "col",
1826
- "colgroup",
1827
- "div",
1828
- "em",
1829
- "figcaption",
1830
- "figure",
1831
- "h1",
1832
- "h2",
1833
- "h3",
1834
- "h4",
1835
- "h5",
1836
- "h6",
1837
- "hr",
1838
- "i",
1839
- "img",
1840
- "li",
1841
- "ol",
1842
- "p",
1843
- "pre",
1844
- "s",
1845
- "small",
1846
- "span",
1847
- "strong",
1848
- "sub",
1849
- "sup",
1850
- "table",
1851
- "tbody",
1852
- "td",
1853
- "tfoot",
1854
- "th",
1855
- "thead",
1856
- "tr",
1857
- "u",
1858
- "ul"
1859
- ],
1860
- allowedAttributes: {
1861
- a: ["href", "rel", "target", "title"],
1862
- col: ["span"],
1863
- img: ["alt", "height", "loading", "src", "title", "width"],
1864
- td: ["colspan", "rowspan"],
1865
- th: ["colspan", "rowspan", "scope"]
1866
- },
1867
- allowedSchemes: ["http", "https", "mailto", "tel"],
1868
- allowedSchemesAppliedToAttributes: ["href", "src"],
1869
- allowProtocolRelative: false,
1870
- disallowedTagsMode: "discard",
1871
- enforceHtmlBoundary: true,
1872
- parseStyleAttributes: false,
1873
- transformTags: {
1874
- a: (tagName, attributes) => {
1875
- if (attributes.target !== "_blank") return { tagName, attribs: attributes };
1876
- return {
1877
- tagName,
1878
- attribs: {
1879
- ...attributes,
1880
- rel: "noopener noreferrer"
1881
- }
1882
- };
1883
- }
1884
- }
1885
- };
1886
- function sanitizeHtml(html) {
1887
- return sanitize(html, STOREFRONT_HTML_ALLOWLIST);
1888
- }
1889
- function stripHtml(html) {
1890
- return html.replace(/<br\s*\/?>/gi, " ").replace(/<[^>]+>/g, " ").replace(/\s+/g, " ").trim();
1891
- }
1892
-
1893
- export { AddCartItemParamsSchema, ApiError, BundleItemSchema, CartAddressWriteSchema, CartAddressesParamsSchema, CartBuyerParamsSchema, CartCheckoutParamsSchema, CartCheckoutPaymentActionSchema, CartCheckoutPaymentSchema, CartCheckoutReadParamsSchema, CartCheckoutReadResponseSchema, CartCheckoutResponseSchema, CartItemModifierSchema, CartPaymentMethodSchema, CartPaymentReceiptResponseSchema, CartPromotionCodeParamsSchema, CartTokenSchema, CheckoutMetadataValueSchema, CmsBlockDtoSchema, CmsBrandingSettingsDtoSchema, CmsContactSettingsDtoSchema, CmsContentChannelSchema, CmsCustomScriptsDtoSchema, CmsMenuDtoSchema, CmsMenuItemSchema, CmsPageDetailsDtoSchema, CmsPageStatusSchema, CmsSectionDtoSchema, CmsSeoSettingsDtoSchema, CmsSiteSettingsDtoSchema, CmsSnapshotDtoSchema, CmsSocialLinksDtoSchema, CmsTrackingSettingsDtoSchema, CollectionSchema, CollectionsSchema, CountriesSchema, CountrySchema, CreateCartParamsSchema, CreateProductReviewParamsSchema, CustomerAddressMutationResponseSchema, CustomerAddressSchema, CustomerAddressUpsertInputSchema, CustomerAddressesSchema, CustomerMeSchema, CustomerOrderDetailSchema, CustomerOrderLineItemSchema, CustomerOrderListItemSchema, CustomerOrderListSchema, CustomerOrderPaymentSchema, CustomerOrderShippingAddressSchema, CustomerOrderStatusTimelineSchema, CustomerProfilePatchSchema, CustomerProfileSchema, CustomerRegisterRequestSchema, DEFAULT_API_BASE_URL, DEFAULT_API_VERSION, DepartmentSchema, DepartmentsSchema, DistrictSchema, DistrictsSchema, EntityIdSchema, FacetItemSchema, FacetSchema, GeoDivisionSchema, GeoDivisionTypeSchema, GetCartParamsSchema, GetDepartmentsParamsSchema, GetDistrictsParamsSchema, GetProvincesParamsSchema, GetShippingOptionsParamsSchema, JsonElementSchema, ListProductReviewsParamsSchema, NullableEntityIdSchema, OptionalEntityIdSchema, PriceTierSchema, ProductAutocompleteParamsSchema, ProductDetailParamsSchema, ProductDetailSchema, ProductImageSchema, ProductPriceTierSchema, ProductSchema, ProductSortSchema, ProductSuggestionSchema, ProductSuggestionsSchema, ProductSummariesSchema, ProductSummarySchema, ProductsParamsSchema, ProductsResponseSchema, ProvinceSchema, ProvincesSchema, PutShippingMethodParamsSchema, RelatedProductsParamsSchema, RemoveCartItemParamsSchema, SearchFilterSchema, ShippingOptionGroupSchema, ShippingOptionsResponseSchema, ShippingRateSchema, SizeGuideMeasurementSchema, SizeGuideRowSchema, SizeGuideSchema, SpecItemSchema, StoreCheckoutCartPageSettingsSchema, StoreCheckoutGeneralSettingsSchema, StoreCheckoutOrderBumpSettingsSchema, StoreCheckoutOrdersAndPaymentsSettingsSchema, StoreCheckoutSettingsSchema, StoreCheckoutShippingSettingsSchema, StoreFeatureFlagsSchema, StoreModelSchema, StoreSettingsSnapshotDtoSchema, StoreThemeSettingsSchema, StoreTypeSchema, StoreVisibilitySchema, StorefrontAddressSchema, StorefrontCartBundleItemSchema, StorefrontCartItemSchema, StorefrontCartSchema, StorefrontCartShippingMethodSchema, StorefrontCartStatusSchema, StorefrontCartTotalsSchema, StorefrontCheckoutSettingsSchema, StorefrontCmsBrandingSchema, StorefrontCmsContactSchema, StorefrontCmsCustomScriptsSchema, StorefrontCmsPageSchema, StorefrontCmsSeoSchema, StorefrontCmsSettingsSchema, StorefrontCmsSocialLinksSchema, StorefrontCmsTrackingSchema, StorefrontFeaturesEnabledSchema, StorefrontMenuItemSchema, StorefrontMenuSchema, StorefrontOrderBumpSchema, StorefrontReviewSchema, StorefrontReviewsSchema, StorefrontSettingsSchema, StorefrontStoreSchema, StorefrontStoreTypeSchema, StorefrontThemeConfigSchema, UpdateCartItemQuantityParamsSchema, VariantItemSchema, VariantOptionSchema, VariantSchema, addCartItem, addCartPromotionCode, autocompleteProducts, checkoutCart, createApi, createCart, createClient, createCustomerAddress, createProductReview, createStorefrontClient, customerMeToProfile, customerMeToProfilePatch, customerOrderStatusTone, customerProfileToPatch, deleteCustomerAddress, formatCustomerOrderStatus, formatOrderDate, formatOrderDateTime, getCart, getCartCheckout, getCountries, getCustomerAddresses, getCustomerMe, getCustomerOrder, getCustomerOrders, getDepartments, getDistricts, getMenuItems, getPageBySlug, getProductBySlug, getProducts, getProvinces, getRelatedProducts, getShippingOptions, listProductReviews, patchCartAddresses, patchCartBuyer, patchCustomer, putCartShippingMethod, registerCustomer, removeCartItem, removeCartPromotionCode, resolveApiBaseUrl, sanitizeHtml, stripHtml, toCustomerSavedAddresses, updateCartItemQuantity, updateCustomerAddress, uploadPaymentReceipt };
1894
- //# sourceMappingURL=index.js.map
1895
- //# sourceMappingURL=index.js.map
1
+ import { ApiError, DEFAULT_API_BASE_URL, DEFAULT_API_VERSION, createApi, resolveApiBaseUrl } from "./api.js";
2
+ import { GraphQLResponseError } from "./libs/graphql-_6Y8lR_Q.js";
3
+ import { graphQLSelection } from "./libs/graphql-selection-H1RMh6VD.js";
4
+ import { createClient } from "./client.js";
5
+ import { CartTokenSchema, EntityIdSchema, NullableEntityIdSchema, OptionalEntityIdSchema } from "./models/ids.js";
6
+ import { catalogLinkKey } from "./libs/catalog-link-key-B7l5KZsF.js";
7
+ import { CmsBlockDtoSchema, CmsBrandingSettingsDtoSchema, CmsContactSettingsDtoSchema, CmsContentChannelSchema, CmsCustomScriptsDtoSchema, CmsMenuDtoSchema, CmsMenuItemSchema, CmsPageDetailsDtoSchema, CmsPageStatusSchema, CmsSectionDtoSchema, CmsSeoSettingsDtoSchema, CmsSiteSettingsDtoSchema, CmsSnapshotDtoSchema, CmsSocialLinksDtoSchema, CmsTrackingSettingsDtoSchema, JsonElementSchema, STOREFRONT_SETTINGS_SCHEMA_VERSION, StoreBusinessSettingsSchema, StoreCheckoutGeneralSettingsSchema, StoreCheckoutOrderBumpSettingsSchema, StoreCheckoutOrdersAndPaymentsSettingsSchema, StoreCheckoutSettingsSchema, StoreModelSchema, StoreSettingsSnapshotDtoSchema, StoreTypeSchema, StoreVisibilitySchema, StorefrontCheckoutSettingsSchema, StorefrontCmsBrandingSchema, StorefrontCmsContactSchema, StorefrontCmsCustomScriptsSchema, StorefrontCmsPageSchema, StorefrontCmsSeoSchema, StorefrontCmsSettingsSchema, StorefrontCmsSocialLinksSchema, StorefrontCmsTrackingSchema, StorefrontMenuItemSchema, StorefrontMenuSchema, StorefrontSettingsSchema, StorefrontStoreSchema, StorefrontStoreTypeSchema, getMenuItems } from "./models/settings.js";
8
+ import { CollectionSchema, CollectionsSchema } from "./models/collections.js";
9
+ import { CategoryAncestorSchema, CategoryChildSchema, CategoryDetailSchema, CategoryItemSchema } from "./models/categories-CKkJY8_P.js";
10
+ import { SitemapItemSchema, SitemapPageSchema, UrlResolutionSchema } from "./models/urls-Dt_dTt4Q.js";
11
+ import { CATALOG_LINK_ID, CATALOG_LINK_MAX_LENGTH, CatalogLinkReferenceSchema, CatalogLinkSchema, CatalogLinksResponseSchema, catalogLinkCandidates, isCatalogLinkCandidate, readCatalogLink } from "./models/catalog-links-BzJeyBy4.js";
12
+ import { StorefrontPaymentCodeSchema, StorefrontPaymentMethodSchema, StorefrontPaymentMethodsSchema } from "./models/payment-methods--VUUZpMz.js";
13
+ import { ArticleSchema, ArticleSummarySchema, ArticlesSchema, ListArticlesParamsSchema } from "./models/articles-C-4JvT2Z.js";
14
+ import { BundleItemSchema, FacetItemSchema, ProductDetailSchema, ProductImageSchema, ProductMediaTypeSchema, ProductOptionGroupSchema, ProductPriceTierSchema, ProductSellerSchema, ProductSortSchema, ProductSummariesSchema, ProductSummarySchema, ProductsParamsSchema, ProductsResponseSchema, RelatedProductsParamsSchema, SearchFilterSchema, SizeGuideMeasurementSchema, SizeGuideRowSchema, SizeGuideSchema, SpecItemSchema, SpecificationTypeSchema, VariantItemSchema } from "./models/products.js";
15
+ import { ProductAutocompleteParamsSchema, ProductSuggestionSchema, ProductSuggestionsSchema } from "./models/search.js";
16
+ import { AddCartItemParamsSchema, CartItemModifierSchema, CartShippingMethodTypeSchema, CreateCartParamsSchema, GetCartParamsSchema, RemoveCartItemParamsSchema, ShippingMethodTargetSelectionSchema, StorefrontAddressSchema, StorefrontCartBundleItemSchema, StorefrontCartItemSchema, StorefrontCartSchema, StorefrontCartShippingMethodSchema, StorefrontCartStatusSchema, StorefrontCartTotalsSchema, StorefrontInvoiceTypeSchema, UpdateCartItemQuantityParamsSchema } from "./models/storefront-cart.js";
17
+ import { CartAddressWriteSchema, CartAddressesParamsSchema, CartBuyerParamsSchema, CartCheckoutParamsSchema, CartCheckoutPaymentActionSchema, CartCheckoutPaymentMethodSchema, CartCheckoutPaymentSchema, CartCheckoutReadParamsSchema, CartCheckoutReadResponseSchema, CartCheckoutResponseSchema, CartPaymentMethodSchema, CartPaymentReceiptResponseSchema, CartPromotionCodeParamsSchema, CheckoutMetadataValueSchema, CheckoutModeSchema, CheckoutPaymentChargeSchema, GetShippingOptionsParamsSchema, PaymentBankAccountSchema, PutCartPaymentMethodParamsSchema, PutShippingMethodParamsSchema, ShippingOptionGroupSchema, ShippingOptionsResponseSchema, ShippingRateSchema, StorefrontOrderBumpSchema } from "./models/storefront-checkout.js";
18
+ import { CreateCustomerProductReviewParamsSchema, CreateProductReviewParamsSchema, ListProductReviewsParamsSchema, ListStoreReviewsParamsSchema, StorefrontReviewSchema, StorefrontReviewsSchema, StorefrontStoreReviewSchema } from "./models/storefront-reviews.js";
19
+ import { CountriesSchema, CountrySchema, DepartmentSchema, DepartmentsSchema, DistrictSchema, DistrictsSchema, GeoDivisionSchema, GeoDivisionTypeSchema, GetDepartmentsParamsSchema, GetDistrictsParamsSchema, GetProvincesParamsSchema, ProvinceSchema, ProvincesSchema } from "./models/geo.js";
20
+ import { SellerLinkStyleSchema, SellerLinksSchema, SellerProfileSchema, SellerRatingSchema, SellerSummarySchema, SellersSchema } from "./models/sellers.js";
21
+ import { CustomerAddressSchema, CustomerAddressUpsertInputSchema, CustomerAddressesSchema, toCustomerSavedAddresses } from "./models/customer-address.js";
22
+ import { CustomerMeSchema, CustomerProfilePatchSchema, CustomerProfileSchema, customerMeToProfile, customerMeToProfilePatch, customerProfileToPatch } from "./models/customer-profile.js";
23
+ import { CustomerAuthConfigurationSchema, CustomerSessionCreateSchema, CustomerSessionCreatedSchema, CustomerSessionProfileSchema, CustomerSessionSchema } from "./models/customer-session-BiX0TXhO.js";
24
+ import { CustomerRegistrationFieldModeSchema, CustomerRegistrationFieldsSchema, CustomerRegistrationInputSchema, CustomerRegistrationSchema } from "./models/customer-registration-C13knqyv.js";
25
+ import { completeCustomerRegistration, getCustomerRegistration } from "./services/customer-registration.service-CxcWD2hf.js";
26
+ import { CustomerOrderDetailSchema, CustomerOrderLineItemSchema, CustomerOrderListItemSchema, CustomerOrderListSchema, CustomerOrderPageSchema, CustomerOrderPaymentSchema, CustomerOrderShipmentSchema, CustomerOrderShippingAddressSchema, CustomerOrderStatusTimelineSchema, OrderStepSchema, customerOrderStatusTone, formatCustomerOrderStatus, formatOrderDate, formatOrderDateTime } from "./models/customer-order.js";
27
+ import { getProductBySlug, getProducts, getRelatedProducts } from "./services/product.service-B05Qmbuh.js";
28
+ import { autocompleteProducts } from "./services/search.service-DSBMhaSY.js";
29
+ import { createProductReview, listProductReviews } from "./services/review.service-De1YkhFp.js";
30
+ import { addCartItem, createCart, getCart, removeCartItem, updateCartItemQuantity } from "./services/cart.service-yMCz9oQP.js";
31
+ import { getPaymentMethods } from "./services/payment-method.service-CjKbAsOh.js";
32
+ import { addCartPromotionCode, checkoutCart, getCartCheckout, getShippingOptions, patchCartAddresses, patchCartBuyer, putCartPaymentMethod, putCartShippingMethod, removeCartPromotionCode, uploadPaymentReceipt } from "./services/checkout.service-CC-3tm2y.js";
33
+ import { getCountries, getDepartments, getDistricts, getProvinces } from "./services/geo.service-C32R7N8W.js";
34
+ import { getSellerBySlug, getSellers } from "./services/seller.service-DUptDTv4.js";
35
+ import { CustomerAddressCreatedSchema, createCustomerAddress, deleteCustomerAddress, getCustomerAddresses, updateCustomerAddress } from "./services/customer-address.service-xEThx7cQ.js";
36
+ import { getCustomerMe, patchCustomer } from "./services/customer.service-BoU6l2-R.js";
37
+ import { getCustomerOrder, getCustomerOrders, requestCustomerOrderCancellation, requestCustomerOrderReturn } from "./services/customer-order.service-qHoRBuyX.js";
38
+ import { PublicOrderTrackingSchema, ShipmentTrackingEventSchema, TRACKING_STATUS_LABELS, formatTrackingStatus } from "./models/tracking-CiIAhQW0.js";
39
+ import { getOrderTracking } from "./services/tracking.service-CPK1B69N.js";
40
+ import { OrderReviewContextItemSchema, OrderReviewContextSchema } from "./models/order-review-egGeCaqB.js";
41
+ import { getOrderReviewContext } from "./services/order-review.service-PdBPUsxE.js";
42
+ import { AuthenticateOrderPaymentInputSchema, OrderPaymentInReviewSchema, OrderPaymentMethodSchema, OrderPaymentStartSchema, OrderStatusViewSchema, PaymentAuthentication3DSSchema, PaymentPublicConfigurationSchema } from "./models/order-status-CgaLkU0M.js";
43
+ import { authenticateOrderPayment, getOrderStatus, startOrderPayment, uploadOrderPaymentReceipt } from "./services/order-status.service-MC9hVpP-.js";
44
+ import { OrderDraftCheckoutSchema, OrderDraftItemSchema, OrderDraftSchema } from "./models/order-draft-CnHJ0btL.js";
45
+ import { checkoutOrderDraft, getOrderDraft } from "./services/order-draft.service-DYPR_pcV.js";
46
+ import { COMPLAINT_BOOK_ATTACHMENT_TYPES, COMPLAINT_BOOK_MAX_ATTACHMENTS, COMPLAINT_BOOK_MAX_ATTACHMENT_BYTES, ComplaintBookDocumentTypeSchema, ComplaintBookEntryInputSchema, ComplaintBookEntrySchema, ComplaintBookSchema } from "./models/complaint-book-QpQZe7Xl.js";
47
+ import { createComplaintBookEntry, getComplaintBook } from "./services/complaint-book.service-DXiVyKdD.js";
48
+ import { getPageBySlug } from "./services/page.service-CWhWCjMQ.js";
49
+ import { getArticleBySlug, listArticles } from "./services/article.service-DBsOvflH.js";
50
+ import { sanitizeHtml, stripHtml } from "./utils-DK7qa54o.js";
51
+ import { embeddedVideo } from "./video-links-CbRO0m8V.js";
52
+ export { AddCartItemParamsSchema, ApiError, ArticleSchema, ArticleSummarySchema, ArticlesSchema, AuthenticateOrderPaymentInputSchema, BundleItemSchema, CATALOG_LINK_ID, CATALOG_LINK_MAX_LENGTH, COMPLAINT_BOOK_ATTACHMENT_TYPES, COMPLAINT_BOOK_MAX_ATTACHMENTS, COMPLAINT_BOOK_MAX_ATTACHMENT_BYTES, CartAddressWriteSchema, CartAddressesParamsSchema, CartBuyerParamsSchema, CartCheckoutParamsSchema, CartCheckoutPaymentActionSchema, CartCheckoutPaymentMethodSchema, CartCheckoutPaymentSchema, CartCheckoutReadParamsSchema, CartCheckoutReadResponseSchema, CartCheckoutResponseSchema, CartItemModifierSchema, CartPaymentMethodSchema, CartPaymentReceiptResponseSchema, CartPromotionCodeParamsSchema, CartShippingMethodTypeSchema, CartTokenSchema, CatalogLinkReferenceSchema, CatalogLinkSchema, CatalogLinksResponseSchema, CategoryAncestorSchema, CategoryChildSchema, CategoryDetailSchema, CategoryItemSchema, CheckoutMetadataValueSchema, CheckoutModeSchema, CheckoutPaymentChargeSchema, CmsBlockDtoSchema, CmsBrandingSettingsDtoSchema, CmsContactSettingsDtoSchema, CmsContentChannelSchema, CmsCustomScriptsDtoSchema, CmsMenuDtoSchema, CmsMenuItemSchema, CmsPageDetailsDtoSchema, CmsPageStatusSchema, CmsSectionDtoSchema, CmsSeoSettingsDtoSchema, CmsSiteSettingsDtoSchema, CmsSnapshotDtoSchema, CmsSocialLinksDtoSchema, CmsTrackingSettingsDtoSchema, CollectionSchema, CollectionsSchema, ComplaintBookDocumentTypeSchema, ComplaintBookEntryInputSchema, ComplaintBookEntrySchema, ComplaintBookSchema, CountriesSchema, CountrySchema, CreateCartParamsSchema, CreateCustomerProductReviewParamsSchema, CreateProductReviewParamsSchema, CustomerAddressCreatedSchema, CustomerAddressSchema, CustomerAddressUpsertInputSchema, CustomerAddressesSchema, CustomerAuthConfigurationSchema, CustomerMeSchema, CustomerOrderDetailSchema, CustomerOrderLineItemSchema, CustomerOrderListItemSchema, CustomerOrderListSchema, CustomerOrderPageSchema, CustomerOrderPaymentSchema, CustomerOrderShipmentSchema, CustomerOrderShippingAddressSchema, CustomerOrderStatusTimelineSchema, CustomerProfilePatchSchema, CustomerProfileSchema, CustomerRegistrationFieldModeSchema, CustomerRegistrationFieldsSchema, CustomerRegistrationInputSchema, CustomerRegistrationSchema, CustomerSessionCreateSchema, CustomerSessionCreatedSchema, CustomerSessionProfileSchema, CustomerSessionSchema, DEFAULT_API_BASE_URL, DEFAULT_API_VERSION, DepartmentSchema, DepartmentsSchema, DistrictSchema, DistrictsSchema, EntityIdSchema, FacetItemSchema, GeoDivisionSchema, GeoDivisionTypeSchema, GetCartParamsSchema, GetDepartmentsParamsSchema, GetDistrictsParamsSchema, GetProvincesParamsSchema, GetShippingOptionsParamsSchema, GraphQLResponseError, JsonElementSchema, ListArticlesParamsSchema, ListProductReviewsParamsSchema, ListStoreReviewsParamsSchema, NullableEntityIdSchema, OptionalEntityIdSchema, OrderDraftCheckoutSchema, OrderDraftItemSchema, OrderDraftSchema, OrderPaymentInReviewSchema, OrderPaymentMethodSchema, OrderPaymentStartSchema, OrderReviewContextItemSchema, OrderReviewContextSchema, OrderStatusViewSchema, OrderStepSchema, PaymentAuthentication3DSSchema, PaymentBankAccountSchema, PaymentPublicConfigurationSchema, ProductAutocompleteParamsSchema, ProductDetailSchema, ProductImageSchema, ProductMediaTypeSchema, ProductOptionGroupSchema, ProductPriceTierSchema, ProductSellerSchema, ProductSortSchema, ProductSuggestionSchema, ProductSuggestionsSchema, ProductSummariesSchema, ProductSummarySchema, ProductsParamsSchema, ProductsResponseSchema, ProvinceSchema, ProvincesSchema, PublicOrderTrackingSchema, PutCartPaymentMethodParamsSchema, PutShippingMethodParamsSchema, RelatedProductsParamsSchema, RemoveCartItemParamsSchema, STOREFRONT_SETTINGS_SCHEMA_VERSION, SearchFilterSchema, SellerLinkStyleSchema, SellerLinksSchema, SellerProfileSchema, SellerRatingSchema, SellerSummarySchema, SellersSchema, ShipmentTrackingEventSchema, ShippingMethodTargetSelectionSchema, ShippingOptionGroupSchema, ShippingOptionsResponseSchema, ShippingRateSchema, SitemapItemSchema, SitemapPageSchema, SizeGuideMeasurementSchema, SizeGuideRowSchema, SizeGuideSchema, SpecItemSchema, SpecificationTypeSchema, StoreBusinessSettingsSchema, StoreCheckoutGeneralSettingsSchema, StoreCheckoutOrderBumpSettingsSchema, StoreCheckoutOrdersAndPaymentsSettingsSchema, StoreCheckoutSettingsSchema, StoreModelSchema, StoreSettingsSnapshotDtoSchema, StoreTypeSchema, StoreVisibilitySchema, StorefrontAddressSchema, StorefrontCartBundleItemSchema, StorefrontCartItemSchema, StorefrontCartSchema, StorefrontCartShippingMethodSchema, StorefrontCartStatusSchema, StorefrontCartTotalsSchema, StorefrontCheckoutSettingsSchema, StorefrontCmsBrandingSchema, StorefrontCmsContactSchema, StorefrontCmsCustomScriptsSchema, StorefrontCmsPageSchema, StorefrontCmsSeoSchema, StorefrontCmsSettingsSchema, StorefrontCmsSocialLinksSchema, StorefrontCmsTrackingSchema, StorefrontInvoiceTypeSchema, StorefrontMenuItemSchema, StorefrontMenuSchema, StorefrontOrderBumpSchema, StorefrontPaymentCodeSchema, StorefrontPaymentMethodSchema, StorefrontPaymentMethodsSchema, StorefrontReviewSchema, StorefrontReviewsSchema, StorefrontSettingsSchema, StorefrontStoreReviewSchema, StorefrontStoreSchema, StorefrontStoreTypeSchema, TRACKING_STATUS_LABELS, UpdateCartItemQuantityParamsSchema, UrlResolutionSchema, VariantItemSchema, addCartItem, addCartPromotionCode, authenticateOrderPayment, autocompleteProducts, catalogLinkCandidates, catalogLinkKey, checkoutCart, checkoutOrderDraft, completeCustomerRegistration, createApi, createCart, createClient, createComplaintBookEntry, createCustomerAddress, createProductReview, customerMeToProfile, customerMeToProfilePatch, customerOrderStatusTone, customerProfileToPatch, deleteCustomerAddress, embeddedVideo, formatCustomerOrderStatus, formatOrderDate, formatOrderDateTime, formatTrackingStatus, getArticleBySlug, getCart, getCartCheckout, getComplaintBook, getCountries, getCustomerAddresses, getCustomerMe, getCustomerOrder, getCustomerOrders, getCustomerRegistration, getDepartments, getDistricts, getMenuItems, getOrderDraft, getOrderReviewContext, getOrderStatus, getOrderTracking, getPageBySlug, getPaymentMethods, getProductBySlug, getProducts, getProvinces, getRelatedProducts, getSellerBySlug, getSellers, getShippingOptions, graphQLSelection, isCatalogLinkCandidate, listArticles, listProductReviews, patchCartAddresses, patchCartBuyer, patchCustomer, putCartPaymentMethod, putCartShippingMethod, readCatalogLink, removeCartItem, removeCartPromotionCode, requestCustomerOrderCancellation, requestCustomerOrderReturn, resolveApiBaseUrl, sanitizeHtml, startOrderPayment, stripHtml, toCustomerSavedAddresses, updateCartItemQuantity, updateCustomerAddress, uploadOrderPaymentReceipt, uploadPaymentReceipt };